Commit Graph

282 Commits

Author SHA1 Message Date
Christian Grothoff
e7aeec04f4
The current recoup API is broken. I guess this is another example where "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
2022-01-11 12:47:35 +01:00
Christian Grothoff
87376e02eb
protocol v12 changes (/recoup split, signature changes) plus database sharding plus O(n^2)=>O(n) worst-case complexity reduction on coin balance checks 2021-12-25 13:56:40 +01:00
Christian Grothoff
1acc851deb
-fix recoup ugliness 2021-12-16 20:18:44 +01:00
Christian Grothoff
1a1fafbd43
introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
Christian Grothoff
5433c2a475
be more backwards-compatible 2021-12-08 21:14:36 +01:00
Christian Grothoff
e8fc5d8d5c
-fix command to avoid timing-dependent assertion failure 2021-12-02 06:41:49 +01:00
Christian Grothoff
94012d011c
add invariant checks 2021-11-25 13:37:47 +01:00
Christian Grothoff
ed6634f98e
-do not use parallel by default 2021-11-24 22:01:01 +01:00
Christian Grothoff
4ceef77ae5
add -r option to exchange-httpd 2021-11-24 21:57:39 +01:00
Christian Grothoff
61616fe2c8
-fix check 2021-11-24 21:47:21 +01:00
Christian Grothoff
0ac1b7abad
handle revoke followed immediately by a sign request 2021-11-24 17:44:26 +01:00
Christian Grothoff
a5a3b2ea9a
add taler-auditor-offline test command, fixes test_auditor_api warnings 2021-11-20 13:09:16 +01:00
Christian Grothoff
303f105985
-code cleanup 2021-11-20 12:41:50 +01:00
Christian Grothoff
52fe9d657b
-fix leaks and compiler warnings 2021-11-19 20:56:53 +01:00
Christian Grothoff
68a4d90134
-misc bugfixes 2021-11-19 11:47:52 +01:00
Christian Grothoff
bdaaa0f6cb
-fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
Christian Grothoff
2078dd1bfb
-fix FTBFS in testing/ 2021-11-17 21:03:13 +01:00
Christian Grothoff
6e86a3c43c
-sms wip 2021-11-17 13:03:47 +01:00
Christian Grothoff
ed1db63a48
fix DB query and error handling 2021-11-17 11:01:19 +01:00
591cefd315
[age restriction] progress 3/n
- remove redundant struct members for age commitment hash
- undo pre-mature implementation in taler-exchange-secmod-rsa.c
- carry through age restriction parameter for TALER_denom_blind
2021-11-16 14:43:54 +01:00
Christian Grothoff
4b7ee48456
-new option 2021-11-15 20:06:34 +01:00
Christian Grothoff
e5ead88057
complete oauth logic (in theory) 2021-11-15 20:00:45 +01:00
Christian Grothoff
77bab62560
-fixes for test 2021-11-09 22:52:01 +01:00
Christian Grothoff
016551dbb4
misc TODOs for KYC left 2021-11-09 20:36:30 +01:00
Christian Grothoff
a9b2140b1e
get first KYC test to pass 2021-11-09 15:39:31 +01:00
Christian Grothoff
a79cc16067
sleep to get tests to pass 2021-11-08 23:31:16 +01:00
Christian Grothoff
e7d3d9a7b0
skip 2021-11-08 09:21:24 +01:00
Christian Grothoff
b7f0d636e9
-fix NPE 2021-11-08 08:54:12 +01:00
Christian Grothoff
d9690fb087
add KYC test skeleton 2021-11-08 08:52:25 +01:00
Christian Grothoff
398ef9d971
implement OAuth 2.0 service 2021-11-07 23:46:23 +01:00
Christian Grothoff
051deacb97
comment 2021-11-07 23:43:38 +01:00
Christian Grothoff
38c7180806
add oauth service faker 2021-11-07 23:42:03 +01:00
Christian Grothoff
6a611e39d1
add /kyc-proof cmd 2021-11-07 23:07:56 +01:00
Christian Grothoff
6000339fbc
fix comments 2021-11-07 19:37:06 +01:00
Christian Grothoff
6ffb32aaab
add required payto URI traits 2021-11-07 19:35:29 +01:00
Christian Grothoff
f374a5cd38
add wallet for KYC status check 2021-11-07 17:57:23 +01:00
Christian Grothoff
4cde9e3977
add kyc-wallet test command 2021-11-07 17:42:36 +01:00
Christian Grothoff
659cd4439d
expose KYC traits for withdraw/get deposits commands 2021-11-07 14:12:54 +01:00
Christian Grothoff
4fff4895ad
prepare for KYC tests 2021-11-07 12:45:49 +01:00
Christian Grothoff
cd8d4bede1
add missing file 2021-11-07 11:41:53 +01:00
Christian Grothoff
81f9b2c93e
-misc fixes 2021-11-06 19:57:34 +01:00
Christian Grothoff
9d6e104066
include h_extensions in deposit confirmation 2021-11-06 19:43:47 +01:00
Christian Grothoff
8175fdfa0f
introduce TALER_wallet_deposit_verify 2021-11-06 16:52:14 +01:00
Christian Grothoff
938e2ce39c
more RSA cleanup 2021-11-06 16:04:26 +01:00
Christian Grothoff
ba627bf84c
-fixes 2021-11-05 22:22:47 +01:00
Christian Grothoff
32da809fd6
abstract denomination keys a bit more 2021-11-05 14:00:10 +01:00
Christian Grothoff
9358b886f1
bugfix! 2021-11-01 22:57:46 +01:00
Christian Grothoff
8df5fba56a
-code cleanup 2021-11-01 18:15:47 +01:00
Christian Grothoff
22ce5bff77
fix sharding 2021-11-01 18:05:01 +01:00
Christian Grothoff
f02b5b7859
fix bug 2021-11-01 13:17:44 +01:00