commit 18405edc4344c98b8d30f182c684da2134ffec7f
parent 9017336e6258cbde96e2f425647cd3ae5117e6eb
Author: Özgür Kesim <oec-taler@kesim.org>
Date: Mon, 7 Apr 2025 14:11:48 +0200
[exchange] update of /blinding-prepare endpoint
Diffstat:
2 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/core/api-common.rst b/core/api-common.rst
@@ -367,6 +367,11 @@ hashed data. See `base32`_.
// 32-byte nonce value, must only be used once.
type RefreshMasterSeed = string;
+.. ts:def:: BlindingMasterSeed
+
+ // 32-byte nonce value, must only be used once.
+ type BlindingMasterSeed = string;
+
.. ts:def:: Cs25519Point
// 32-byte value representing a point on Curve25519.
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
@@ -1538,7 +1538,7 @@ Blinding Prepare
~~~~~~~~~~~~~~~~
.. note:: This endpoint is available since v26 of the API and is a substitute
- for ``/csr-withdraw``.
+ for ``/csr-withdraw`` and ``/csr-melt``.
.. http:post:: /blinding-prepare
@@ -1581,19 +1581,38 @@ Blinding Prepare
// Cipher type
cipher: "CS";
- // Nonces to be used by the exchange to derive
- // its private input from. Must not have ever
- // been used before.
- nonces: CSNonce[];
+ // The request type this blinding is for.
+ request: "withdraw" | "melt";
- // Hashes of the public keys of the denominations the
- // request relates to. The denomination MUST support
- // Clause-Schnorr signatures. The array MUST be of
- // same length as ``nonces``.
- denoms_h: HashCode[];
+ // Master seed for the Clause-Schnorr R-value creation.
+ // MUST not have been used in any prior request of this type.
+ seed: BlindingMasterSeed;
+
+ // Array of denominations and coin offsets for
+ // each of the fresh coins with a CS-cipher
+ // denomination.
+ // The coin_offset values MUST be strongly increasing.
+ nks: BlindingDenomNonce[];
+
+ }
+
+ .. ts:def:: BlindingDenomNonce
+
+ interface BlindingDenomNonce {
+ // Offset of this coin in the list of
+ // fresh coins. May not match the array offset
+ // as the fresh coins may include non-CS
+ // denominations as well.
+ coin_offset: Integer;
+
+ // Hash of the public key of the denomination the
+ // request relates to. Must be a CS denomination type.
+ denom_pub_hash: HashCode;
}
+
+
.. ts:def:: BlindingPrepareResponse
type BlindingPrepareResponse = BlindingPrepareResponseCS;