diff options
author | Florian Dold <florian@dold.me> | 2022-01-10 01:23:46 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-01-10 01:23:46 +0100 |
commit | 14efa23a2b73420593d62cc346466ff0ab322668 (patch) | |
tree | c2beb6e50fdc919ed6b71edfdcc688e290919ca0 | |
parent | e30989c9303105770504f1bdbf26d843adf19468 (diff) |
improve error response for withdrawal
m--------- | contrib/gana | 0 | ||||
-rw-r--r-- | src/exchange/taler-exchange-httpd_withdraw.c | 8 |
2 files changed, 8 insertions, 0 deletions
diff --git a/contrib/gana b/contrib/gana -Subproject b0dd85e8187f33a1f92dd5eb31082050d333e16 +Subproject 9b8a787580307cea5a38359c485d521cd8ece82 diff --git a/src/exchange/taler-exchange-httpd_withdraw.c b/src/exchange/taler-exchange-httpd_withdraw.c index 2e53803a9..53ba270ba 100644 --- a/src/exchange/taler-exchange-httpd_withdraw.c +++ b/src/exchange/taler-exchange-httpd_withdraw.c @@ -40,6 +40,7 @@ * * @param connection connection to the client * @param ebalance expected balance based on our database + * @param withdraw_amount amount that the client requested to withdraw * @param rh reserve history to return * @return MHD result code */ @@ -47,6 +48,7 @@ static MHD_RESULT reply_withdraw_insufficient_funds ( struct MHD_Connection *connection, const struct TALER_Amount *ebalance, + const struct TALER_Amount *withdraw_amount, const struct TALER_EXCHANGEDB_ReserveHistory *rh) { json_t *json_history; @@ -76,6 +78,8 @@ reply_withdraw_insufficient_funds ( TALER_JSON_pack_ec (TALER_EC_EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS), TALER_JSON_pack_amount ("balance", &balance), + TALER_JSON_pack_amount ("requested_amount", + withdraw_amount), GNUNET_JSON_pack_array_steal ("history", json_history)); } @@ -174,6 +178,7 @@ withdraw_transaction (void *cls, { struct TALER_EXCHANGEDB_ReserveHistory *rh; struct TALER_Amount balance; + struct TALER_Amount requested_amount; TEH_plugin->rollback (TEH_plugin->cls); // FIXME: maybe start read-committed here? @@ -204,8 +209,11 @@ withdraw_transaction (void *cls, "reserve history"); return GNUNET_DB_STATUS_HARD_ERROR; } + TALER_amount_ntoh (&requested_amount, + &wc->wsrd.amount_with_fee); *mhd_ret = reply_withdraw_insufficient_funds (connection, &balance, + &requested_amount, rh); TEH_plugin->free_reserve_history (TEH_plugin->cls, rh); |