commit 86c3900aef29d298276e81b7ac76292c6e8317de
parent 65feb2782cd5e9b5ec786a11bbcbae36df9bfbc7
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 28 Mar 2026 20:20:27 +0100
fix specification inconsistencies
Diffstat:
6 files changed, 58 insertions(+), 9 deletions(-)
diff --git a/core/exchange/get-aml-OFFICER_PUB-kyc-statistics-NAMES.rst b/core/exchange/get-aml-OFFICER_PUB-kyc-statistics-NAMES.rst
@@ -50,7 +50,7 @@
interface EventCounter {
// Name of the statistic that is being returned.
- name: string;
+ event: string;
// Number of events of the specified type in
// the given range.
diff --git a/core/exchange/post-management-global-fees.rst b/core/exchange/post-management-global-fees.rst
@@ -4,7 +4,7 @@
**Request:**
- The request must be a `GlobalFees` message.
+ The request must be a `GlobalFeesRequest` message.
**Response:**
@@ -14,3 +14,52 @@
The signature is invalid.
:http:statuscode:`409 Conflict`:
The exchange has previously received a conflicting configuration message.
+
+ **Details:**
+
+ .. ts:def:: GlobalFeesRequest
+
+ interface GlobalFeesRequest {
+
+ // What date (inclusive) does these fees go into effect?
+ start_date: Timestamp;
+
+ // What date (exclusive) does this fees stop going into effect?
+ end_date: Timestamp;
+
+ // Account history fee, charged when a user wants to
+ // obtain a reserve/account history.
+ history_fee: Amount;
+
+ // Annual fee charged for having an open account at the
+ // exchange. Charged to the account. If the account
+ // balance is insufficient to cover this fee, the account
+ // is automatically deleted/closed. (Note that the exchange
+ // will keep the account history around for longer for
+ // regulatory reasons.)
+ account_fee: Amount;
+
+ // Purse fee, charged only if a purse is abandoned
+ // and was not covered by the account limit.
+ purse_fee: Amount;
+
+ // How long will the exchange preserve the account history?
+ // After an account was deleted/closed, the exchange will
+ // retain the account history for legal reasons until this time.
+ history_expiration: RelativeTime;
+
+ // Non-negative number of concurrent purses that any
+ // account holder is allowed to create without having
+ // to pay the purse_fee.
+ purse_account_limit: Integer;
+
+ // How long does an exchange keep a purse around after a purse
+ // has expired (or been successfully merged)? A 'GET' request
+ // for a purse will succeed until the purse expiration time
+ // plus this value.
+ purse_timeout: RelativeTime;
+
+ // Signature of `TALER_GlobalFeesPS`.
+ master_sig: EddsaSignature;
+
+ }
diff --git a/core/exchange/post-management-keys.rst b/core/exchange/post-management-keys.rst
@@ -48,7 +48,7 @@
interface SignKeySignature {
// The actual exchange's EdDSA signing public key.
- key: EddsaPublicKey;
+ exchange_pub: EddsaPublicKey;
// Signature by the exchange master key over
// `TALER_ExchangeSigningKeyValidityPS`.
diff --git a/core/exchange/post-management-wire-fee.rst b/core/exchange/post-management-wire-fee.rst
@@ -26,7 +26,7 @@
// Signature using the exchange's offline key
// with purpose ``TALER_SIGNATURE_MASTER_WIRE_FEES``.
- master_sig_wire: EddsaSignature;
+ master_sig: EddsaSignature;
// When does the wire fee validity period start?
fee_start: Timestamp;
diff --git a/core/exchange/post-reveal-withdraw.rst b/core/exchange/post-reveal-withdraw.rst
@@ -45,12 +45,12 @@
.. ts:def:: RevealWithdrawRequest
interface RevealWithdrawRequest {
- // The reserve's public key from the previous call to /withdraw.
+ // The reserve's public key from the previous call to ``/withdraw``.
reserve_pub: string;
// This is the h_planchets running hash of all blinded planchets
- // from the previous call to /withdraw.
- h_planchets: string;
+ // from the previous call to ``/withdraw``.
+ planchets_h: string;
// Array of ``(kappa - 1)`` disclosed batch secrets,
// from which for each of the n coins in a batch
diff --git a/core/exchange/post-withdraw.rst b/core/exchange/post-withdraw.rst
@@ -60,7 +60,7 @@
The response comes with a standard `ErrorDetail` response with
an error-code of
``TALER_EC_EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED``
- and an additional field ``maximum_allowed_age`` for the
+ and an additional field ``allowed_maximum_age`` for the
maximum age (in years)
that the client can commit to in a call to ``/withdraw``, this time
with ``max_age`` set accordingly and ``coin_evs`` being an array
@@ -69,7 +69,7 @@
according to the reserve's birthday. The response comes with a
standard `ErrorDetail` response with error-code
``TALER_EC_EXCHANGE_AGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE``
- and an additional field ``maximum_allowed_age`` for the maximum
+ and an additional field ``allowed_maximum_age`` for the maximum
age (in years) that the client can commit to in a call
to ``/withdraw``.
4. The request uses a nonce value that was previously seen by