taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit fb727bfcffe8f88140f17ba95b69a93527a1d7f9
parent 7944885e71fbf970d21e0d9f4fe88dcc08146457
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 13 Oct 2026 00:24:11 +0200

add reserve_pub to reveal-withdraw to avoid needing an extra index

Diffstat:
Mcore/api-exchange.rst | 6+++++-
Mcore/exchange/post-reveal-withdraw.rst | 15++++++++++++++-
2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -66,7 +66,11 @@ The currently implemented protocol version is **v42**. error codes ``TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY`` and ``TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH``, which now carry the stored denomination signature (and age commitment - hash) of the coin so that clients can verify the conflict + hash) of the coin so that clients can verify the conflict; + adds the required ``reserve_pub`` field to the + :http:post:`/reveal-withdraw </reveal-withdraw>` request body, + so that a withdraw operation is identified by the pair + (reserve, commitment) everywhere **Upcoming versions:** diff --git a/core/exchange/post-reveal-withdraw.rst b/core/exchange/post-reveal-withdraw.rst @@ -12,6 +12,12 @@ The request body is a `RevealWithdrawRequest`. This endpoint was introduced in this form in protocol **v32**. + Since protocol **v42** the request body must also carry the + ``reserve_pub`` of the original :http:post:`/withdraw </withdraw>` + request: a withdraw operation is identified by the pair + (``reserve_pub``, ``planchets_h``), as in + :http:post:`/recoup-withdraw </recoup-withdraw>`. A given + ``planchets_h`` may legitimately exist under more than one reserve. :http:statuscode:`200 OK`: The coin's' secret material matched the commitment and the original request was well-formed. @@ -23,7 +29,8 @@ - ``TALER_EC_EXCHANGE_WITHDRAW_REVEAL_INVALID_HASH`` :http:statuscode:`404 Not found`: - The provided commitment $RCH is unknown. + The given reserve has no withdraw operation under the provided + ``planchets_h``. Error code: ``TALER_EC_EXCHANGE_WITHDRAW_COMMITMENT_UNKNOWN`` :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. @@ -50,6 +57,12 @@ interface RevealWithdrawRequest { + // Public key of the reserve that the original call to + // ``/withdraw`` was made from. Together with ``planchets_h`` + // this identifies the withdraw operation. + // Since protocol **v42**. + reserve_pub: EddsaPublicKey; + // This is the running hash of all blinded planchets // from the previous call to ``/withdraw``. planchets_h: string;