summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-06-27 18:49:12 +0200
committerChristian Grothoff <christian@grothoff.org>2020-07-05 16:50:15 +0200
commitb0311807ff8c7702a87b99da1e21a963eb280633 (patch)
treebddcdd2f049f4190ac5dfe523ac6a91fa344bdf0 /src/include
parentc88af6df724a47919fd8b0fc1d25f1273120c4e6 (diff)
downloadexchange-b0311807ff8c7702a87b99da1e21a963eb280633.tar.gz
exchange-b0311807ff8c7702a87b99da1e21a963eb280633.tar.bz2
exchange-b0311807ff8c7702a87b99da1e21a963eb280633.zip
fix FIXME by exposing deposit permission signing in API instead of doing it inside of the testing logic
Diffstat (limited to 'src/include')
-rw-r--r--src/include/taler_exchange_service.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index e61a07c91..02ab182f2 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -745,6 +745,32 @@ TALER_EXCHANGE_wire_cancel (struct TALER_EXCHANGE_WireHandle *wh);
/**
+ * Sign a deposit permission. Function for wallets.
+ *
+ * @param amount the amount to be deposited
+ * @param deposit_fee the deposit fee we expect to pay
+ * @param h_wire hash of the merchant’s account details
+ * @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange)
+ * @param coin_priv coin’s private key
+ * @param wallet_timestamp timestamp when the contract was finalized, must not be too far in the future
+ * @param merchant_pub the public key of the merchant (used to identify the merchant for refund requests)
+ * @param refund_deadline date until which the merchant can issue a refund to the customer via the exchange (can be zero if refunds are not allowed); must not be after the @a wire_deadline
+ * @param[out] coin_sig set to the signature made with purpose #TALER_SIGNATURE_WALLET_COIN_DEPOSIT
+ */
+void
+TALER_EXCHANGE_deposit_permission_sign (
+ const struct TALER_Amount *amount,
+ const struct TALER_Amount *deposit_fee,
+ const struct GNUNET_HashCode *h_wire,
+ const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_CoinSpendPrivateKeyP *coin_priv,
+ struct GNUNET_TIME_Absolute wallet_timestamp,
+ const struct TALER_MerchantPublicKeyP *merchant_pub,
+ struct GNUNET_TIME_Absolute refund_deadline,
+ struct TALER_CoinSpendSignatureP *coin_sig);
+
+
+/**
* @brief A Deposit Handle
*/
struct TALER_EXCHANGE_DepositHandle;