aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-03-28 20:46:57 +0100
committerChristian Grothoff <christian@grothoff.org>2020-03-28 20:46:57 +0100
commitae9f751a7cddeeb27fda10921fa47c1fa0260bac (patch)
tree93a42a929853b8011246c074fd83d20dd3e0d1db
parent82b18857e2c71d340acaf17bdff02d6a7a53a2ce (diff)
do return fees in history
-rw-r--r--src/include/taler_exchange_service.h24
-rw-r--r--src/lib/exchange_api_common.c10
2 files changed, 26 insertions, 8 deletions
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;