summaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_common.c
AgeCommit message (Collapse)Author
2022-01-11The current recoup API is broken. I guess this is another example where ↵Christian Grothoff
"trivial" API changes turn out to have (multiple!) unexpected consequences. The current "/recoup" API does not have clear idempotency semantics, as we've discussed on the phone. This is already bad by itself, as it makes it hard to write down what the API does other than "whatever the implementation does". However, it actually breaks correctness in this (admittedly kinda contrived, but not impossible) case: Say that we have a coin A obtained via withdrawal and a coin B obtained via refreshing coin A. Now the denominations of A gets revoked.. The wallet does a recoup of A for EUR:1. Now the denomination of B also gets revoked. The wallet recoups B (incidentally also for EUR:1) and now A can be recouped again for EUR:1. But now the exchange is in a state where it will refuse a legitimate recoup request for A because the detection for an idempotent request kicks in. This is IMHO bad API design, and the exchange should simply always recoup the maximum amount. Furthermore, we usually follow the principle of "API calls that take up DB space are paid". With the current recoup API, I can do many tiny recoup requests which the exchange then has to store, right? I guess it would not be a big change to remove the "amount" value from the recoup/recoup-refresh request bodies, right? - Florian
2021-12-25v12: also do not sign over merchant_pub in REFUND signature, centralize logicChristian Grothoff
2021-12-25protocol v12 changes (/recoup split, signature changes) plus database ↵Christian Grothoff
sharding plus O(n^2)=>O(n) worst-case complexity reduction on coin balance checks
2021-12-16-fix recoup uglinessChristian Grothoff
2021-12-14introducing GNUNET_TIME_Timestamp, recoup now with amountsChristian Grothoff
2021-12-11fix #7123Christian Grothoff
2021-12-06-fix balance calculationChristian Grothoff
2021-12-05-add FIXMEsChristian Grothoff
2021-11-19-fix leaks and compiler warningsChristian Grothoff
2021-11-06introduce TALER_wallet_deposit_verifyChristian Grothoff
2021-10-27fix lib/ FTBFSChristian Grothoff
2021-10-27-work on FTBFS;Christian Grothoff
2021-10-27-fix misc FTBFSChristian Grothoff
2021-10-17implement /kyc-wallet in libtalerexchangeChristian Grothoff
2021-10-10-finish implemnetation of /kyc-check client libraryChristian Grothoff
2021-08-01-allow 0 for refund deadlineChristian Grothoff
2021-07-24fix #6939 in exchangeChristian Grothoff
2021-07-23-rename TALER_amount_get_zero to TALER_amount_set_zeroChristian Grothoff
2021-01-08change wire_reference to be uint64_t always; more work on lrbt_callbacksChristian Grothoff
2020-08-13extend tests to discover corner cases from #6478, fix code to actually work ↵Christian Grothoff
for those cases
2020-08-12implement #6478, but untested as shown by FIXMEsChristian Grothoff
2020-07-10remove unused/unusable coin_sig, return correct coin_pub in recoup-reveal ↵Christian Grothoff
failure context
2020-07-08implement new behavior in exchange httpd and libtalerexchange (for #6416)Christian Grothoff
2020-07-08add h_denom to melt signatures (for #6416)Christian Grothoff
2020-07-08add h_denom_pub to deposit signaturesChristian Grothoff
2020-07-05fix #6408: make sure all timestamps are always rounded when they arrive over ↵Christian Grothoff
JSON, or 400 the requester; similarly don't tolerate anything else as client
2020-07-05GNUNET_free_non_null is gone, use GNUNET_freeChristian Grothoff
2020-07-05towards changing timestamp in deposit confirmation (tests failing)Christian Grothoff
2020-07-05fix status codeChristian Grothoff
2020-04-08fix #6170 and rest of #6164Christian Grothoff
2020-04-08adapt to new GNUnet sign API (#6164)Christian Grothoff
2020-04-03check amount compatibility in history logicChristian Grothoff
2020-04-01better types/scoping/indentationChristian Grothoff
2020-03-30match updated specification, use CREDIT instead of DEPOSIT for transfers ↵Christian Grothoff
into a reserve
2020-03-28do return fees in historyChristian Grothoff
2020-03-17style, indentation and type fixes for lib/Christian Grothoff
2020-03-01bad FIXME, we should notChristian Grothoff
2020-02-29big rename fest related to #6067 API renamingChristian Grothoff
2020-02-27rename fest, make symbols better match new endpoint namesChristian Grothoff
2020-01-18payback -> recoup stranglersChristian Grothoff
2020-01-18fix compiler warningsChristian Grothoff
2020-01-18allow skipping of denom fees checkFlorian Dold
2020-01-17doxygen fixesChristian Grothoff
2020-01-17sort out URL types more nicelyChristian Grothoff
2020-01-17check currencies match firstChristian Grothoff
2020-01-17TODO is already doneChristian Grothoff
2020-01-17prepare API to enable verification of fees in coin history checkChristian Grothoff
2020-01-17help crappy indenterChristian Grothoff
2019-10-31tighten formatting rulesChristian Grothoff
2019-08-25re-format codeFlorian Dold