diff options
m--------- | contrib/gana | 0 | ||||
-rw-r--r-- | src/exchange/taler-exchange-httpd_melt.c | 11 |
2 files changed, 10 insertions, 1 deletions
diff --git a/contrib/gana b/contrib/gana -Subproject 18a39c29726860af58800a28454446154b89832 +Subproject 0b778cdac372d0b75f3b64501a15a21c9c57f36 diff --git a/src/exchange/taler-exchange-httpd_melt.c b/src/exchange/taler-exchange-httpd_melt.c index f276a72b5..872389543 100644 --- a/src/exchange/taler-exchange-httpd_melt.c +++ b/src/exchange/taler-exchange-httpd_melt.c @@ -254,11 +254,20 @@ refresh_check_melt (struct MHD_Connection *connection, &spent)) { struct TALER_Amount coin_residual; + struct TALER_Amount spent_already; + /* First subtract the melt cost from 'spent' to + compute the total amount already spent of the coin */ GNUNET_assert (0 <= - TALER_amount_subtract (&coin_residual, + TALER_amount_subtract (&spent_already, &spent, &rmc->refresh_session.amount_with_fee)); + /* The residual coin value is the original coin value minus + what we have spent (before the melt) */ + GNUNET_assert (0 <= + TALER_amount_subtract (&coin_residual, + &rmc->coin_value, + &spent_already)); *mhd_ret = reply_melt_insufficient_funds ( connection, &rmc->refresh_session.coin.coin_pub, |