summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-08-09 21:50:23 +0200
committerChristian Grothoff <christian@grothoff.org>2015-08-09 21:50:23 +0200
commitcf3345a96f4e5c3fc1085052170e79adfaaff220 (patch)
treeaa70c95d3fc8cb623f2c347dc24eb43a8df1c5d2 /src
parente08f479eb403cfbcb490dd0b07fd3d384136f446 (diff)
downloadexchange-cf3345a96f4e5c3fc1085052170e79adfaaff220.tar.gz
exchange-cf3345a96f4e5c3fc1085052170e79adfaaff220.tar.bz2
exchange-cf3345a96f4e5c3fc1085052170e79adfaaff220.zip
initialize melt_fee in the TALER_MINT_RefreshMelt struct
Diffstat (limited to 'src')
-rw-r--r--src/mint/taler-mint-httpd_db.c1
-rw-r--r--src/mint/taler-mint-httpd_db.h6
-rw-r--r--src/mint/taler-mint-httpd_refresh.c6
3 files changed, 11 insertions, 2 deletions
diff --git a/src/mint/taler-mint-httpd_db.c b/src/mint/taler-mint-httpd_db.c
index 04c2555ec..2a4c16748 100644
--- a/src/mint/taler-mint-httpd_db.c
+++ b/src/mint/taler-mint-httpd_db.c
@@ -582,6 +582,7 @@ refresh_accept_melts (struct MHD_Connection *connection,
melt.coin_sig = coin_details->melt_sig;
melt.session_hash = *session_hash;
melt.amount_with_fee = coin_details->melt_amount_with_fee;
+ melt.melt_fee = coin_details->melt_fee;
if (GNUNET_OK !=
TMH_plugin->insert_refresh_melt (TMH_plugin->cls,
session,
diff --git a/src/mint/taler-mint-httpd_db.h b/src/mint/taler-mint-httpd_db.h
index c2f9a3101..599762179 100644
--- a/src/mint/taler-mint-httpd_db.h
+++ b/src/mint/taler-mint-httpd_db.h
@@ -99,6 +99,12 @@ struct TMH_DB_MeltDetails
* to the melt is this value minus the fee for melting the coin.
*/
struct TALER_Amount melt_amount_with_fee;
+
+ /**
+ * What fee is earned by the mint? Set delayed during
+ * #verify_coin_public_info().
+ */
+ struct TALER_Amount melt_fee;
};
diff --git a/src/mint/taler-mint-httpd_refresh.c b/src/mint/taler-mint-httpd_refresh.c
index 625fcc50c..fcd843083 100644
--- a/src/mint/taler-mint-httpd_refresh.c
+++ b/src/mint/taler-mint-httpd_refresh.c
@@ -223,7 +223,8 @@ get_coin_public_info (struct MHD_Connection *connection,
*
* @param connection the connection to send error responses to
* @param session_hash hash over refresh session the coin is melted into
- * @param melt_detail details about the coin's melting permission (if valid)
+ * @param[in,out] melt_detail details about the coin's melting permission,
+ * the `melt_fee` is updated
* @return #GNUNET_YES if coin public info in JSON was valid
* #GNUNET_NO JSON was invalid, response was generated
* #GNUNET_SYSERR on internal error
@@ -231,7 +232,7 @@ get_coin_public_info (struct MHD_Connection *connection,
static int
verify_coin_public_info (struct MHD_Connection *connection,
const struct GNUNET_HashCode *session_hash,
- const struct TMH_DB_MeltDetails *melt_detail)
+ struct TMH_DB_MeltDetails *melt_detail)
{
struct TALER_RefreshMeltCoinAffirmationPS body;
struct TMH_KS_StateHandle *key_state;
@@ -253,6 +254,7 @@ verify_coin_public_info (struct MHD_Connection *connection,
valid for issuing! (#3634) */
TALER_amount_ntoh (&fee_refresh,
&dki->issue.properties.fee_refresh);
+ melt_detail->melt_fee = fee_refresh;
body.purpose.size = htonl (sizeof (struct TALER_RefreshMeltCoinAffirmationPS));
body.purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_MELT);
body.session_hash = *session_hash;