diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-04-03 16:40:31 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-04-03 16:40:31 +0200 |
commit | 29a2f9b345ecd8a6c062b3b3cfa719a8a4ec2a08 (patch) | |
tree | 5b8849767e0eb1941e03a99ef3eaa53fb6e427d7 /src/include | |
parent | 5b867c4b8ece4b4f92ff206fa75a4ea29d870221 (diff) |
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.h | 4 | ||||
-rw-r--r-- | src/include/taler_exchangedb_plugin.h | 4 | ||||
-rw-r--r-- | src/include/taler_signatures.h | 48 |
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 |