diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-06-04 21:59:55 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-06-04 22:00:02 +0200 |
commit | a17781ba8d5f875b5150e524174c5f144aa6c0ba (patch) | |
tree | c01f11a3810428471e6399b4961942732a21a1f1 /src/lib/exchange_api_common.c | |
parent | 6512456dc2559577867fdce1f7fe7f1b5a12291f (diff) | |
download | exchange-a17781ba8d5f875b5150e524174c5f144aa6c0ba.tar.xz |
-more work on p2p payments and tests thereof
Diffstat (limited to 'src/lib/exchange_api_common.c')
-rw-r--r-- | src/lib/exchange_api_common.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c index d60327831..9cbcdeb26 100644 --- a/src/lib/exchange_api_common.c +++ b/src/lib/exchange_api_common.c @@ -398,6 +398,7 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh, const json_t *transaction) { uint32_t flags32; + struct TALER_Amount total; struct GNUNET_JSON_Specification merge_spec[] = { GNUNET_JSON_spec_fixed_auto ("h_contract_terms", &rh->details.merge_details.h_contract_terms), @@ -433,13 +434,21 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh, } rh->details.merge_details.flags = (enum TALER_WalletAccountMergeFlags) flags32; + if (0 > + TALER_amount_add (&total, + &rh->amount, + &rh->details.merge_details.purse_fee)) + { + GNUNET_break_op (0); + return GNUNET_SYSERR; + } if (GNUNET_OK != TALER_wallet_account_merge_verify ( rh->details.merge_details.merge_timestamp, &rh->details.merge_details.purse_pub, rh->details.merge_details.purse_expiration, &rh->details.merge_details.h_contract_terms, - &rh->amount, + &total, &rh->details.merge_details.purse_fee, rh->details.merge_details.min_age, rh->details.merge_details.flags, |