From ae9f751a7cddeeb27fda10921fa47c1fa0260bac Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 28 Mar 2020 20:46:57 +0100 Subject: do return fees in history --- src/include/taler_exchange_service.h | 24 ++++++++++++++++++++---- src/lib/exchange_api_common.c | 10 ++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 928a808a2..e935c9196 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -946,7 +946,7 @@ enum TALER_EXCHANGE_ReserveTransactionType /** * Deposit into the reserve. */ - TALER_EXCHANGE_RTT_DEPOSIT, + TALER_EXCHANGE_RTT_CREDIT, /** * Withdrawal from the reserve. @@ -990,7 +990,7 @@ struct TALER_EXCHANGE_ReserveHistory /** * Information about a deposit that filled this reserve. - * @e type is #TALER_EXCHANGE_RTT_DEPOSIT. + * @e type is #TALER_EXCHANGE_RTT_CREDIT. */ struct { @@ -1017,10 +1017,21 @@ struct TALER_EXCHANGE_ReserveHistory } in_details; /** - * Signature authorizing the withdrawal for outgoing transaction. + * Information about withdraw operation. * @e type is #TALER_EXCHANGE_RTT_WITHDRAWAL. */ - json_t *out_authorization_sig; + struct + { + /** + * Signature authorizing the withdrawal for outgoing transaction. + */ + json_t *out_authorization_sig; + + /** + * Fee that was charged for the withdrawal. + */ + struct TALER_Amount fee; + } withdraw; /** * Information provided if the reserve was filled via /recoup. @@ -1084,6 +1095,11 @@ struct TALER_EXCHANGE_ReserveHistory */ struct GNUNET_TIME_Absolute timestamp; + /** + * Fee that was charged for the closing. + */ + struct TALER_Amount fee; + } close_details; } details; diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c index 70d1432ff..2748b8fc3 100644 --- a/src/lib/exchange_api_common.c +++ b/src/lib/exchange_api_common.c @@ -109,7 +109,7 @@ TALER_EXCHANGE_parse_reserve_history ( GNUNET_JSON_spec_end () }; - rhistory[off].type = TALER_EXCHANGE_RTT_DEPOSIT; + rhistory[off].type = TALER_EXCHANGE_RTT_CREDIT; if (GNUNET_OK != TALER_amount_add (&total_in, &total_in, @@ -201,8 +201,9 @@ TALER_EXCHANGE_parse_reserve_history ( GNUNET_JSON_parse_free (withdraw_spec); return GNUNET_SYSERR; } + rhistory[off].details.withdraw.fee = fee; } - rhistory[off].details.out_authorization_sig + rhistory[off].details.withdraw.out_authorization_sig = json_object_get (transaction, "signature"); /* Check check that the same withdraw transaction @@ -355,7 +356,8 @@ TALER_EXCHANGE_parse_reserve_history ( rcc.reserve_pub = *reserve_pub; timestamp = GNUNET_TIME_absolute_ntoh (rcc.timestamp); rhistory[off].details.close_details.timestamp = timestamp; - + TALER_amount_ntoh (&rhistory[off].details.close_details.fee, + &rcc.closing_fee); key_state = TALER_EXCHANGE_get_keys (exchange); if (GNUNET_OK != TALER_EXCHANGE_test_signing_key (key_state, @@ -424,7 +426,7 @@ TALER_EXCHANGE_free_reserve_history ( { switch (rhistory[i].type) { - case TALER_EXCHANGE_RTT_DEPOSIT: + case TALER_EXCHANGE_RTT_CREDIT: GNUNET_free_non_null (rhistory[i].details.in_details.wire_reference); GNUNET_free_non_null (rhistory[i].details.in_details.sender_url); break; -- cgit v1.2.3