fix invariant check
This commit is contained in:
parent
de61e06eb1
commit
6772037321
@ -42,13 +42,13 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
|
|||||||
struct TALER_Amount refunded;
|
struct TALER_Amount refunded;
|
||||||
struct TALER_Amount deposit_fee;
|
struct TALER_Amount deposit_fee;
|
||||||
bool have_refund;
|
bool have_refund;
|
||||||
bool have_deposit;
|
bool have_deposit_or_melt;
|
||||||
|
|
||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
TALER_amount_get_zero (spent.currency,
|
TALER_amount_get_zero (spent.currency,
|
||||||
&refunded));
|
&refunded));
|
||||||
have_refund = false;
|
have_refund = false;
|
||||||
have_deposit = false;
|
have_deposit_or_melt = false;
|
||||||
for (struct TALER_EXCHANGEDB_TransactionList *pos = tl;
|
for (struct TALER_EXCHANGEDB_TransactionList *pos = tl;
|
||||||
NULL != pos;
|
NULL != pos;
|
||||||
pos = pos->next)
|
pos = pos->next)
|
||||||
@ -57,7 +57,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
|
|||||||
{
|
{
|
||||||
case TALER_EXCHANGEDB_TT_DEPOSIT:
|
case TALER_EXCHANGEDB_TT_DEPOSIT:
|
||||||
/* spent += pos->amount_with_fee */
|
/* spent += pos->amount_with_fee */
|
||||||
have_deposit = true;
|
have_deposit_or_melt = true;
|
||||||
if (0 >
|
if (0 >
|
||||||
TALER_amount_add (&spent,
|
TALER_amount_add (&spent,
|
||||||
&spent,
|
&spent,
|
||||||
@ -70,6 +70,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
|
|||||||
break;
|
break;
|
||||||
case TALER_EXCHANGEDB_TT_MELT:
|
case TALER_EXCHANGEDB_TT_MELT:
|
||||||
/* spent += pos->amount_with_fee */
|
/* spent += pos->amount_with_fee */
|
||||||
|
have_deposit_or_melt = true;
|
||||||
if (0 >
|
if (0 >
|
||||||
TALER_amount_add (&spent,
|
TALER_amount_add (&spent,
|
||||||
&spent,
|
&spent,
|
||||||
@ -155,7 +156,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
|
|||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
GNUNET_break (have_deposit);
|
GNUNET_break (have_deposit_or_melt);
|
||||||
*ret = spent;
|
*ret = spent;
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
}
|
}
|
||||||
|
@ -4006,9 +4006,9 @@ struct CoinHistoryContext
|
|||||||
bool failed;
|
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;
|
struct TALER_EXCHANGEDB_TransactionList *tl;
|
||||||
uint64_t serial_id;
|
uint64_t serial_id;
|
||||||
|
|
||||||
chc->have_deposit = true;
|
chc->have_deposit_or_melt = true;
|
||||||
deposit = GNUNET_new (struct TALER_EXCHANGEDB_DepositListEntry);
|
deposit = GNUNET_new (struct TALER_EXCHANGEDB_DepositListEntry);
|
||||||
{
|
{
|
||||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||||
@ -4106,6 +4106,7 @@ add_coin_melt (void *cls,
|
|||||||
struct TALER_EXCHANGEDB_TransactionList *tl;
|
struct TALER_EXCHANGEDB_TransactionList *tl;
|
||||||
uint64_t serial_id;
|
uint64_t serial_id;
|
||||||
|
|
||||||
|
chc->have_deposit_or_melt = true;
|
||||||
melt = GNUNET_new (struct TALER_EXCHANGEDB_MeltListEntry);
|
melt = GNUNET_new (struct TALER_EXCHANGEDB_MeltListEntry);
|
||||||
{
|
{
|
||||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||||
@ -4512,7 +4513,7 @@ postgres_get_coin_transactions (
|
|||||||
*tlp = chc.head;
|
*tlp = chc.head;
|
||||||
if (NULL == chc.head)
|
if (NULL == chc.head)
|
||||||
return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
|
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;
|
return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user