diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-04-20 02:50:52 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-04-20 02:50:52 +0200 |
commit | edd31c74151d6bfe3d840bcc62b619aacf7542eb (patch) | |
tree | 1bc026290213c1f1244f636627593da3f25ce744 /src/include/taler_signatures.h | |
parent | f693e25793f9e8f75b80b11b066ed209e8aa4c1c (diff) | |
download | exchange-edd31c74151d6bfe3d840bcc62b619aacf7542eb.tar.xz |
implementing parsing of /refund requests
Diffstat (limited to 'src/include/taler_signatures.h')
-rw-r--r-- | src/include/taler_signatures.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h index 154e11610..f1586aa8c 100644 --- a/src/include/taler_signatures.h +++ b/src/include/taler_signatures.h @@ -396,6 +396,64 @@ struct TALER_DepositConfirmationPS /** + * @brief Format used to generate the signature on a request to refund + * a coin into the account of the customer. + */ +struct TALER_RefundRequestPS +{ + /** + * Purpose must be #TALER_SIGNATURE_MERCHANT_REFUND. + */ + struct GNUNET_CRYPTO_EccSignaturePurpose purpose; + + /** + * Hash over the contract which is being refunded. + */ + struct GNUNET_HashCode h_contract GNUNET_PACKED; + + /** + * Merchant-generated transaction ID of the orginal transaction. + */ + uint64_t transaction_id GNUNET_PACKED; + + /** + * The coin's public key. This is the value that must have been + * signed (blindly) by the Exchange. + */ + struct TALER_CoinSpendPublicKeyP coin_pub; + + /** + * The Merchant's public key. Allows the merchant to later refund + * the transaction or to inquire about the wire transfer identifier. + */ + struct TALER_MerchantPublicKeyP merchant; + + /** + * Merchant-generated transaction ID for the refund. + */ + uint64_t rtransaction_id GNUNET_PACKED; + + /** + * Amount to be refunded, including refund fee charged by the + * exchange to the customer. + */ + struct TALER_AmountNBO refund_amount; + + /** + * Refund fee charged by the exchange. This must match the + * Exchange's denomination key's refund fee. If the client puts in + * an invalid refund fee (too high or too low) that does not match + * the Exchange's denomination key, the refund operation is invalid + * and will be rejected by the exchange. The @e amount_with_fee + * minus the @e refund_fee is the amount that will be credited to + * the original coin. + */ + struct TALER_AmountNBO refund_fee; + +}; + + +/** * @brief Message signed by a coin to indicate that the coin should be * melted. */ |