summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-04-03 16:40:31 +0200
committerChristian Grothoff <christian@grothoff.org>2017-04-03 16:40:31 +0200
commit29a2f9b345ecd8a6c062b3b3cfa719a8a4ec2a08 (patch)
tree5b8849767e0eb1941e03a99ef3eaa53fb6e427d7 /src/include
parent5b867c4b8ece4b4f92ff206fa75a4ea29d870221 (diff)
downloadexchange-29a2f9b345ecd8a6c062b3b3cfa719a8a4ec2a08.tar.gz
exchange-29a2f9b345ecd8a6c062b3b3cfa719a8a4ec2a08.tar.bz2
exchange-29a2f9b345ecd8a6c062b3b3cfa719a8a4ec2a08.zip
implement rest of exchange logic for #3887 (return payback information in reserve and coin histories)
Diffstat (limited to 'src/include')
-rw-r--r--src/include/taler_exchange_service.h4
-rw-r--r--src/include/taler_exchangedb_plugin.h4
-rw-r--r--src/include/taler_signatures.h48
3 files changed, 48 insertions, 8 deletions
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index 39aa96d11..4aa3d0240 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -1344,7 +1344,7 @@ struct TALER_EXCHANGE_PaybackHandle;
* 0 if the exchange's reply is bogus (fails to follow the protocol)
* @param ec taler-specific error code, #TALER_EC_NONE on success
* @param amount amount the exchange will wire back for this coin
- * @param deadline by when will the exchange wire the funds?
+ * @param timestamp what time did the exchange receive the /payback request
* @param reserve_pub public key of the reserve receiving the payback
* @param full_response full response from the exchange (for logging, in case of errors)
*/
@@ -1353,7 +1353,7 @@ typedef void
unsigned int http_status,
enum TALER_ErrorCode ec,
const struct TALER_Amount *amount,
- struct GNUNET_TIME_Absolute deadline,
+ struct GNUNET_TIME_Absolute timestamp,
const struct TALER_ReservePublicKeyP *reserve_pub,
const json_t *full_response);
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index b578abf95..8a1a82838 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -1956,7 +1956,7 @@ struct TALER_EXCHANGEDB_Plugin
* @param amount total amount to be paid back
* @param receiver_account_details who should receive the funds
* @parma h_blind_ev hash of the blinded coin's envelope (must match reserves_out entry)
- * @param[out] deadline set to absolute time by when the exchange plans to pay it back
+ * @param now timestamp to store
* @return #GNUNET_OK on success,
* #GNUNET_SYSERR on DB errors
*/
@@ -1969,7 +1969,7 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct TALER_Amount *amount,
const struct GNUNET_HashCode *h_blind_ev,
- struct GNUNET_TIME_Absolute *deadline);
+ struct GNUNET_TIME_Absolute timestamp);
/**
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h
index 2d0e8bb37..c58ea1915 100644
--- a/src/include/taler_signatures.h
+++ b/src/include/taler_signatures.h
@@ -131,6 +131,11 @@
*/
#define TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK 1039
+/**
+ * Signature where the Exchange confirms it closed a reserve.
+ */
+#define TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED 1040
+
/*********************/
/* Wallet signatures */
@@ -1170,15 +1175,16 @@ struct TALER_PaybackConfirmationPS
{
/**
- * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK
+ * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK
*/
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
/**
- * By what deadline does the exchange promise to initiate
- * the wire transfer?
+ * When did the exchange receive the payback request?
+ * Indirectly determines when the wire transfer is (likely)
+ * to happen.
*/
- struct GNUNET_TIME_AbsoluteNBO payback_deadline;
+ struct GNUNET_TIME_AbsoluteNBO timestamp;
/**
* How much of the coin's value will the exchange transfer?
@@ -1198,6 +1204,40 @@ struct TALER_PaybackConfirmationPS
};
+/**
+ * Response by which the exchange affirms that it has
+ * closed a reserve and send back the funds.
+ */
+struct TALER_ReserveCloseConfirmationPS
+{
+
+ /**
+ * Purpose is #TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED
+ */
+ struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+
+ /**
+ * When did the exchange initiate the wire transfer.
+ */
+ struct GNUNET_TIME_AbsoluteNBO timestamp;
+
+ /**
+ * How much did the exchange send?
+ */
+ struct TALER_AmountNBO closing_amount;
+
+ /**
+ * Public key of the reserve that received the payback.
+ */
+ struct TALER_ReservePublicKeyP reserve_pub;
+
+ /**
+ * Hash of the receiver's bank account.
+ */
+ struct GNUNET_HashCode h_wire;
+};
+
+
GNUNET_NETWORK_STRUCT_END
#endif