aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-17 20:02:25 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-17 20:02:25 +0100
commit23cc4a521f7756f44444d46c89cdfdf91196583d (patch)
tree535864ec41ac002b870afd2644b5e15f6fa8f24f /src/lib
parent11c52837112421af755bc7bc21569011274909ad (diff)
TODO is already done
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/exchange_api_common.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c
index 3860a6613..04b87cbb9 100644
--- a/src/lib/exchange_api_common.c
+++ b/src/lib/exchange_api_common.c
@@ -47,6 +47,7 @@ TALER_EXCHANGE_verify_coin_history (const struct
{
size_t len;
struct TALER_Amount rtotal;
+ struct TALER_Amount fee;
if (NULL == history)
{
@@ -135,8 +136,16 @@ TALER_EXCHANGE_verify_coin_history (const struct
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- /* TODO: check that deposit fee and coin value match
- our expectations from /keys! */
+ /* check that deposit fee matches our expectations from /keys! */
+ TALER_amount_ntoh (&fee,
+ &dr.deposit_fee);
+ if (0 !=
+ TALER_amount_cmp (&fee,
+ &dk->fee_deposit))
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
add = GNUNET_YES;
}
else if (0 == strcasecmp (type,
@@ -176,8 +185,16 @@ TALER_EXCHANGE_verify_coin_history (const struct
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- /* TODO: check that deposit fee and coin value match
- our expectations from /keys! */
+ /* check that melt fee matches our expectations from /keys! */
+ TALER_amount_ntoh (&fee,
+ &rm.melt_fee);
+ if (0 !=
+ TALER_amount_cmp (&fee,
+ &dk->fee_refresh))
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
add = GNUNET_YES;
}
else if (0 == strcasecmp (type,
@@ -228,8 +245,17 @@ TALER_EXCHANGE_verify_coin_history (const struct
(an auditor ought to check, though). Then again, we similarly
had no reason to check the merchant's signature (other than a
well-formendess check). *///
- /* TODO: check that deposit fee and coin value match
- our expectations from /keys! *///
+
+ /* check that refund fee matches our expectations from /keys! */
+ TALER_amount_ntoh (&fee,
+ &rr.refund_fee);
+ if (0 !=
+ TALER_amount_cmp (&fee,
+ &dk->fee_refund))
+ {
+ GNUNET_break_op (0);
+ return GNUNET_SYSERR;
+ }
add = GNUNET_NO;
}
else if (0 == strcasecmp (type,