aboutsummaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_common.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-06-04 21:59:55 +0200
committerChristian Grothoff <christian@grothoff.org>2022-06-04 22:00:02 +0200
commita17781ba8d5f875b5150e524174c5f144aa6c0ba (patch)
treec01f11a3810428471e6399b4961942732a21a1f1 /src/lib/exchange_api_common.c
parent6512456dc2559577867fdce1f7fe7f1b5a12291f (diff)
downloadexchange-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.c11
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,