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