diff options
Diffstat (limited to 'src/exchangedb/exchangedb_transactions.c')
-rw-r--r-- | src/exchangedb/exchangedb_transactions.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/exchangedb/exchangedb_transactions.c b/src/exchangedb/exchangedb_transactions.c index 81a33b172..f78393776 100644 --- a/src/exchangedb/exchangedb_transactions.c +++ b/src/exchangedb/exchangedb_transactions.c @@ -119,6 +119,49 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals ( return GNUNET_SYSERR; } break; + case TALER_EXCHANGEDB_TT_PURSE_DEPOSIT: + /* spent += pos->amount_with_fee */ + if (0 > + TALER_amount_add (&spent, + &spent, + &pos->details.purse_deposit->amount)) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + deposit_fee = pos->details.purse_deposit->deposit_fee; + break; + case TALER_EXCHANGEDB_TT_PURSE_REFUND: + /* refunded += pos->refund_amount - pos->refund_fee */ + if (0 > + TALER_amount_add (&refunded, + &refunded, + &pos->details.purse_refund->refund_amount)) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + if (0 > + TALER_amount_add (&spent, + &spent, + &pos->details.purse_refund->refund_fee)) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + have_refund = true; + break; + case TALER_EXCHANGEDB_TT_RESERVE_OPEN: + /* spent += pos->amount_with_fee */ + if (0 > + TALER_amount_add (&spent, + &spent, + &pos->details.reserve_open->coin_contribution)) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + break; } } if (have_refund) |