exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 6772037321c96aed73e898e3328286c219bcf7c8
parent de61e06eb164c5cb05778aba8e448a001462b783
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 24 Apr 2020 00:52:33 +0200

fix invariant check

Diffstat:
Msrc/exchangedb/exchangedb_transactions.c | 9+++++----
Msrc/exchangedb/plugin_exchangedb_postgres.c | 9+++++----
2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/exchangedb/exchangedb_transactions.c b/src/exchangedb/exchangedb_transactions.c @@ -42,13 +42,13 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals ( struct TALER_Amount refunded; struct TALER_Amount deposit_fee; bool have_refund; - bool have_deposit; + bool have_deposit_or_melt; GNUNET_assert (GNUNET_OK == TALER_amount_get_zero (spent.currency, &refunded)); have_refund = false; - have_deposit = false; + have_deposit_or_melt = false; for (struct TALER_EXCHANGEDB_TransactionList *pos = tl; NULL != pos; pos = pos->next) @@ -57,7 +57,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals ( { case TALER_EXCHANGEDB_TT_DEPOSIT: /* spent += pos->amount_with_fee */ - have_deposit = true; + have_deposit_or_melt = true; if (0 > TALER_amount_add (&spent, &spent, @@ -70,6 +70,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals ( break; case TALER_EXCHANGEDB_TT_MELT: /* spent += pos->amount_with_fee */ + have_deposit_or_melt = true; if (0 > TALER_amount_add (&spent, &spent, @@ -155,7 +156,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals ( GNUNET_break (0); return GNUNET_SYSERR; } - GNUNET_break (have_deposit); + GNUNET_break (have_deposit_or_melt); *ret = spent; return GNUNET_OK; } diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c @@ -4006,9 +4006,9 @@ struct CoinHistoryContext bool failed; /** - * Set to 'true' if we found a deposit (for invariant check). + * Set to 'true' if we found a deposit or melt (for invariant check). */ - bool have_deposit; + bool have_deposit_or_melt; }; @@ -4034,7 +4034,7 @@ add_coin_deposit (void *cls, struct TALER_EXCHANGEDB_TransactionList *tl; uint64_t serial_id; - chc->have_deposit = true; + chc->have_deposit_or_melt = true; deposit = GNUNET_new (struct TALER_EXCHANGEDB_DepositListEntry); { struct GNUNET_PQ_ResultSpec rs[] = { @@ -4106,6 +4106,7 @@ add_coin_melt (void *cls, struct TALER_EXCHANGEDB_TransactionList *tl; uint64_t serial_id; + chc->have_deposit_or_melt = true; melt = GNUNET_new (struct TALER_EXCHANGEDB_MeltListEntry); { struct GNUNET_PQ_ResultSpec rs[] = { @@ -4512,7 +4513,7 @@ postgres_get_coin_transactions ( *tlp = chc.head; if (NULL == chc.head) return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS; - GNUNET_break (chc.have_deposit); + GNUNET_break (chc.have_deposit_or_melt); return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT; }