gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-docs] 20/36: deal with purse auto-refund on expiration, ensure ex


From: gnunet
Subject: [taler-docs] 20/36: deal with purse auto-refund on expiration, ensure exchange has max_deposit_fees always
Date: Tue, 22 Jun 2021 19:35:16 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository docs.

commit d35d8df37b02c23561c5af1d8fc70f69f99a4fab
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue May 18 18:29:25 2021 +0200

    deal with purse auto-refund on expiration, ensure exchange has 
max_deposit_fees always
---
 core/api-common.rst   | 17 +++++++++++++++++
 core/api-exchange.rst | 44 +++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/core/api-common.rst b/core/api-common.rst
index cc69870..e5afa87 100644
--- a/core/api-common.rst
+++ b/core/api-common.rst
@@ -1299,6 +1299,23 @@ within the
   };
 
 
+.. _TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND:
+.. sourcecode:: c
+
+   struct TALER_CoinPurseRefundConfirmationPS {
+     /**
+      * purpose.purpose = TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND.
+      */
+     struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+     struct TALER_PursePublicKey purse_pub;
+     struct TALER_CoinSpendPublicKeyP coin_pub;
+     struct TALER_MerchantPublicKeyP merchant;
+     struct TALER_AmountNBO remaining_amount;
+     struct TALER_AmountNBO purse_fee_share;
+     struct TALER_AmountNBO refund_fee;
+   };
+
+
 .. _TALER_DenominationKeyAnnouncementPS:
 .. sourcecode:: c
 
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
index d588e58..b8f61a8 100644
--- a/core/api-exchange.rst
+++ b/core/api-exchange.rst
@@ -1628,7 +1628,8 @@ denomination.
       | CoinRecoupTransaction
       | CoinOldCoinRecoupTransaction
       | CoinRecoupRefreshTransaction
-      | CoinPurseDepositTransaction;
+      | CoinPurseDepositTransaction
+      | CoinPurseRefundTransaction;
 
 
   .. ts:def:: CoinDepositTransaction
@@ -1874,6 +1875,39 @@ denomination.
 
     }
 
+ .. ts:def:: CoinPurseRefundTransaction
+
+    interface CoinPurseRefundTransaction {
+      type: "PURSE_REFUND";
+
+      // The total amount of the coin's value restored
+      // by this transaction.
+      // The amount given excludes the refund fee.
+      // The current coin value can thus be computed by
+      // adding the amount to the coin's denomination value.
+      amount: Amount;
+
+      // Refund fee (of the coin's denomination). The deposit
+      // fee will be waived.
+      refund_fee: Amount;
+
+      // Share of the purse fee charged to this coin.
+      // The sum of all purse fee shares will match the
+      // total purse fee.
+      purse_fee_share: Amount;
+
+      // Public key of the purse that expired.
+      purse_pub: EddsaPublicKey;
+
+      // Signature by the exchange over a
+      // `TALER_CoinPurseRefundConfirmationPS`
+      // of purpose ``TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND``.
+      exchange_sig: EddsaSignature;
+
+      // Public key used to sign 'exchange_sig'.
+      exchange_pub: EddsaPublicKey;
+
+    }
 
 
 ----------
@@ -2675,6 +2709,9 @@ Wallet-to-wallet transfers
       // purse once the amount given here is reached.
       total_purse_amount: Amount;
 
+      // Maximum deposit fees that can be charged under the contract.
+      max_deposit_fees: Amount;
+
       // SHA-512 hash of the contact of the purse.
       h_contract_terms: HashCode;
 
@@ -2930,6 +2967,11 @@ Wallet-to-wallet transfers
       // reserve can be higher!
       minimum_amount_contributed: Amount;
 
+      // Maximum deposit fees that can be charged under the contract.
+      // The 'total_purse_amount' will be the
+      // 'minimum_amount_contributed' plus the 'max_deposit_fees'.
+      max_deposit_fees: Amount;
+
       // SHA-512 hash of the contact of the purse.
       h_contract_terms: HashCode;
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]