View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0007852 | Taler | exchange | public | 2023-06-02 12:46 | 2023-09-23 15:09 |
| Reporter | Florian Dold | Assigned To | Florian Dold | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | closed | Resolution | fixed | ||
| Target Version | 0.9.3 | Fixed in Version | 0.9.3 | ||
| Summary | 0007852: deposit endpoint idempotency regression | ||||
| Description | The deposit endpoint used to be idempotent, and we have a test for that in taler-harness. However, in the current git master it is not idempotent anymore: $ taler-harness run-integrationtests exchange-deposit [... fails at doing exactly the same deposit POST request twice ...] | ||||
| Tags | No tags attached. | ||||
|
|
I ran the latest test with wireshark against the latest exchange, and (1) the test passed and (2) the wireshark result suggests everything is fine. Relevant TCP stream attached. test (6,725 bytes)
POST /reserves/M7HM8DF7KXPBGYSD0FAYEKRJV51X1JVCB73AF3BZ95616JWV7R9G/withdraw HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8081
Connection: keep-alive
Transfer-Encoding: chunked
1f6
{"denom_pub_hash":"TTCWFSY56C0QJXHVD6BYE4ZJTX651TQWWREEZ9P6R3ZW2EYAFYHKM30C5V2RGB72MH4P7A7T6T7AV3K7MXW3GMMAZW7NYF0RSR356TG","reserve_sig":"T4A4AS5K3BFMWNAQPBM4Z7X639SY9PHD3MDJFWAWFQB42MB773KPQ7JG8MJB1VRQDKAWQVC41M6Z97Q32KR5D34WT530E4KPFFGNT3R","coin_ev":{"cipher":"RSA","rsa_blinded_planchet":"B3PFN1DJS2H7KZSAN397MSNR8NQPNZH1ERN5WEXA5DN5D2STMA7N4FREDRZW98CNGYWAJ9G6QF57NPCJ0ST33RHKD4HEQNHZD6D6WCEXZDECVB2V6V1VKNKHCMG7S0PDYB2ETZ6D5W5X0BK21C64KYVJRRNJQDQQ7CXM7F53NS5CBDBZ3M59ATZV5D6BXTWEF022E8W4Q5A38"}}
0
HTTP/1.1 200 OK
Date: Sat, 03 Jun 2023 11:03:36 GMT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Content-Type: application/json
Content-Length: 279
{
"ev_sig": {
"cipher": "RSA",
"blinded_rsa_signature": "2WG4NWD388J6JHTGNXR1YZPF1KZ3KQ39KPKY4819TZ9DCTND318JTRECTDJVNZX6WCD6EZ7TY87XA3Q45YHEE8BXP9JE9MHTXJD4VDK5YF7ZK5FB8B9Y24KS7Z8JZF08DXMJB4P0RM3W77YAY67BH0SB87DXDQPAJ2WRQEN9GW9M8E1SYW732QGMRX0VF03HXAT27W5TAA7NM"
}
}POST /coins/DH2931Q33790EAH2YG8QAH8E047BCJ5663F2JZNX2GXDW10MX55G/deposit HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8081
Connection: keep-alive
Transfer-Encoding: chunked
39e
{"contribution":"TESTKUDOS:4","merchant_payto_uri":"payto://x-taler-bank/localhost/foo","wire_salt":"HTTYCGBKD96VH84BJR10S9G1ZR","h_contract_terms":"V6048T4S0862E8722NRKABDRNDZBWBW57YSKGQ6XWEEG3R1CYCN6F459VXKSA86E7KKQN16SQ3R545E7ZFGHNYT061VKF5FQQTX8ER0","ub_sig":{"cipher":"RSA","rsa_signature":"9C0FS2FNE0Z7T908KWF5301QCNBVCSXWJXFSXFE7DXJAV8M1YXPV33YKQMMADNPCPPA47CJQEYX30BYTJMF1DZJN0YBEN7P5D29FJ8JY52W07TTYSP3W74G2YHWXR0PWEKY1YSTGPA5DDAT8PNY9MHTX1J9YHC8ZSVSDMNV4S19P3GC7HJ2Z3TCT2716K340ENVTSDNXSE2C6"},"timestamp":{"t_s":1685790216},"wire_transfer_deadline":{"t_s":1685790216},"refund_deadline":{"t_s":1685790216},"coin_sig":"J6TTRB3F748BFDCFGRH72AAM180SJA0ENYZXSWG94G7SWT0N9SH9YSJZGBQXS6RKMQ3E68SS8NCB97EN3KB8M1M9M3FVXZ0VET28R0G","denom_pub_hash":"TTCWFSY56C0QJXHVD6BYE4ZJTX651TQWWREEZ9P6R3ZW2EYAFYHKM30C5V2RGB72MH4P7A7T6T7AV3K7MXW3GMMAZW7NYF0RSR356TG","merchant_pub":"C6HWTKVXKXWN5PAJTYW04FQT38JNZA76PAPPQAR58XBB8BDZ0D20"}
0
HTTP/1.1 200 OK
Date: Sat, 03 Jun 2023 11:03:36 GMT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Content-Type: application/json
Content-Length: 254
{
"exchange_timestamp": {
"t_s": 1685790216
},
"exchange_sig": "1J3V8FXGFAEBS5TN9JDPACDFKHE4FF9XYZ80KY6VHN80VJV3M99MRB8Q9ZTV9JA31D0YEYPPGFJAP9E4FFVHSCEBYYN90HW41T7MJ00",
"exchange_pub": "X5FBRNTM7RJ40G0KJJC0BPPN0XDG7JD9DATP9P7Y330C3W449QM0"
}POST /coins/DH2931Q33790EAH2YG8QAH8E047BCJ5663F2JZNX2GXDW10MX55G/deposit HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8081
Connection: keep-alive
Transfer-Encoding: chunked
39e
{"contribution":"TESTKUDOS:4","merchant_payto_uri":"payto://x-taler-bank/localhost/foo","wire_salt":"HTTYCGBKD96VH84BJR10S9G1ZR","h_contract_terms":"V6048T4S0862E8722NRKABDRNDZBWBW57YSKGQ6XWEEG3R1CYCN6F459VXKSA86E7KKQN16SQ3R545E7ZFGHNYT061VKF5FQQTX8ER0","ub_sig":{"cipher":"RSA","rsa_signature":"9C0FS2FNE0Z7T908KWF5301QCNBVCSXWJXFSXFE7DXJAV8M1YXPV33YKQMMADNPCPPA47CJQEYX30BYTJMF1DZJN0YBEN7P5D29FJ8JY52W07TTYSP3W74G2YHWXR0PWEKY1YSTGPA5DDAT8PNY9MHTX1J9YHC8ZSVSDMNV4S19P3GC7HJ2Z3TCT2716K340ENVTSDNXSE2C6"},"timestamp":{"t_s":1685790216},"wire_transfer_deadline":{"t_s":1685790216},"refund_deadline":{"t_s":1685790216},"coin_sig":"J6TTRB3F748BFDCFGRH72AAM180SJA0ENYZXSWG94G7SWT0N9SH9YSJZGBQXS6RKMQ3E68SS8NCB97EN3KB8M1M9M3FVXZ0VET28R0G","denom_pub_hash":"TTCWFSY56C0QJXHVD6BYE4ZJTX651TQWWREEZ9P6R3ZW2EYAFYHKM30C5V2RGB72MH4P7A7T6T7AV3K7MXW3GMMAZW7NYF0RSR356TG","merchant_pub":"C6HWTKVXKXWN5PAJTYW04FQT38JNZA76PAPPQAR58XBB8BDZ0D20"}
0
HTTP/1.1 200 OK
Date: Sat, 03 Jun 2023 11:03:36 GMT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Content-Type: application/json
Content-Length: 254
{
"exchange_timestamp": {
"t_s": 1685790216
},
"exchange_sig": "1J3V8FXGFAEBS5TN9JDPACDFKHE4FF9XYZ80KY6VHN80VJV3M99MRB8Q9ZTV9JA31D0YEYPPGFJAP9E4FFVHSCEBYYN90HW41T7MJ00",
"exchange_pub": "X5FBRNTM7RJ40G0KJJC0BPPN0XDG7JD9DATP9P7Y330C3W449QM0"
}POST /coins/DH2931Q33790EAH2YG8QAH8E047BCJ5663F2JZNX2GXDW10MX55G/deposit HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8081
Connection: keep-alive
Transfer-Encoding: chunked
3a0
{"contribution":"TESTKUDOS:3.5","merchant_payto_uri":"payto://x-taler-bank/localhost/foo","wire_salt":"HTTYCGBKD96VH84BJR10S9G1ZR","h_contract_terms":"V6048T4S0862E8722NRKABDRNDZBWBW57YSKGQ6XWEEG3R1CYCN6F459VXKSA86E7KKQN16SQ3R545E7ZFGHNYT061VKF5FQQTX8ER0","ub_sig":{"cipher":"RSA","rsa_signature":"9C0FS2FNE0Z7T908KWF5301QCNBVCSXWJXFSXFE7DXJAV8M1YXPV33YKQMMADNPCPPA47CJQEYX30BYTJMF1DZJN0YBEN7P5D29FJ8JY52W07TTYSP3W74G2YHWXR0PWEKY1YSTGPA5DDAT8PNY9MHTX1J9YHC8ZSVSDMNV4S19P3GC7HJ2Z3TCT2716K340ENVTSDNXSE2C6"},"timestamp":{"t_s":1685790216},"wire_transfer_deadline":{"t_s":1685790216},"refund_deadline":{"t_s":1685790216},"coin_sig":"HB47DQWZ0RCEB4JJCQ5WAAXQETRRJ0SDJBQ2QZZ1J90PW0YHA4KBGSBF3563CQB5928X6P3MNFJ5S2WMRTY40ENGNT4F5V974N22M1R","denom_pub_hash":"TTCWFSY56C0QJXHVD6BYE4ZJTX651TQWWREEZ9P6R3ZW2EYAFYHKM30C5V2RGB72MH4P7A7T6T7AV3K7MXW3GMMAZW7NYF0RSR356TG","merchant_pub":"C6HWTKVXKXWN5PAJTYW04FQT38JNZA76PAPPQAR58XBB8BDZ0D20"}
0
HTTP/1.1 409 Conflict
Date: Sat, 03 Jun 2023 11:03:37 GMT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Content-Type: application/json
Content-Length: 1101
{
"hint": "The same coin was already deposited for the same merchant and contract with other details.",
"code": 1206,
"coin_pub": "DH2931Q33790EAH2YG8QAH8E047BCJ5663F2JZNX2GXDW10MX55G",
"h_denom_pub": "TTCWFSY56C0QJXHVD6BYE4ZJTX651TQWWREEZ9P6R3ZW2EYAFYHKM30C5V2RGB72MH4P7A7T6T7AV3K7MXW3GMMAZW7NYF0RSR356TG",
"history": [
{
"type": "DEPOSIT",
"amount": "TESTKUDOS:4",
"deposit_fee": "TESTKUDOS:0.16",
"timestamp": {
"t_s": 1685790216
},
"refund_deadline": {
"t_s": 1685790216
},
"merchant_pub": "C6HWTKVXKXWN5PAJTYW04FQT38JNZA76PAPPQAR58XBB8BDZ0D20",
"h_contract_terms": "V6048T4S0862E8722NRKABDRNDZBWBW57YSKGQ6XWEEG3R1CYCN6F459VXKSA86E7KKQN16SQ3R545E7ZFGHNYT061VKF5FQQTX8ER0",
"h_wire": "5E28NWVT4PTKGPZPAQCKZ3M40KR6Y7CC0DEKERY6Y895XRVHFJX8W5YNW6HVCGYG4AC1GQ5DP5ZC8HDXS9XM1B0Q64ZBGPKFGXDY3K8",
"h_age_commitment": "0000000000000000000000000000000000000000000000000000",
"coin_sig": "J6TTRB3F748BFDCFGRH72AAM180SJA0ENYZXSWG94G7SWT0N9SH9YSJZGBQXS6RKMQ3E68SS8NCB97EN3KB8M1M9M3FVXZ0VET28R0G"
}
]
} |
|
|
It does indeed pass again with the latest exchange. Maybe I was on some commit where it didn't work? |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2023-06-02 12:46 | Florian Dold | New Issue | |
| 2023-06-02 12:46 | Florian Dold | Status | new => assigned |
| 2023-06-02 12:46 | Florian Dold | Assigned To | => Christian Grothoff |
| 2023-06-03 13:09 | Christian Grothoff | Note Added: 0020252 | |
| 2023-06-03 13:09 | Christian Grothoff | File Added: test | |
| 2023-06-03 13:09 | Christian Grothoff | Assigned To | Christian Grothoff => Florian Dold |
| 2023-06-03 13:09 | Christian Grothoff | Status | assigned => feedback |
| 2023-06-05 11:13 | Florian Dold | Note Added: 0020255 | |
| 2023-06-05 11:13 | Florian Dold | Status | feedback => resolved |
| 2023-06-05 11:13 | Florian Dold | Resolution | open => fixed |
| 2023-09-23 15:07 | Christian Grothoff | Fixed in Version | => 0.9.3 |
| 2023-09-23 15:09 | Christian Grothoff | Status | resolved => closed |