taler-docs

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

commit e24eea3476ced37c4f31ca4b4497bd031c6505f6
parent 746beacf9fd94c3375c70efda76735d00d18d741
Author: Özgür Kesim <oec-taler@kesim.org>
Date:   Thu,  6 Feb 2025 13:13:50 +0100

[exchange] added struct TALER_MeltCommitmentPS

Diffstat:
Mcore/api-common.rst | 37+++++++++++++++++++++++++++++++++----
Mcore/api-exchange.rst | 14++------------
2 files changed, 35 insertions(+), 16 deletions(-)

diff --git a/core/api-common.rst b/core/api-common.rst @@ -1304,12 +1304,10 @@ within the .. sourcecode:: c struct TALER_WithdrawCommitmentP { - /** - * The reserve's public key + * The hash of the reserve's public key */ - struct TALER_ReservePublicKeyP reserve_pub; - + struct TALER_HashReservePublicKeyP h_reserve_pub; /** * The details of the withdraw request */ @@ -1439,6 +1437,37 @@ within the struct TALER_MerchantPublicKeyP merchant; }; + +.. _TALER_MeltCommitmentPS: +.. sourcecode:: c + + struct TALER_MeltCommitmentPS { + /** + * purpose.purpose = TALER_SIGNATURE_WALLET_COIN_MELT + */ + struct GNUNET_CRYPTO_EccSignaturePurpose purpose; + struct TALER_CoinSpendPublicKeyP old_coin_public_key; + struct TALER_AgeCommitmentHash old_h_age_commitment; + struct TALER_AmountNBO value_with_fee; + /** + * rms value, or all zeros, if not applicable + */ + struct TALER_RefreshMasterSecretP rms; + /** + * hash over all entries in denoms_h + */ + struct GNUNET_HashCode h_denoms; + /** + * hash over all entries in coin_evs, depths first + */ + struct GNUNET_HashCode h_coin_evs; + /** + * hash over of the required n*kappa transfer public keys, depths first. + */ + struct GNUNET_hashCode h_transfer_pubs; + }; + + .. _TALER_RefreshMeltCoinAffirmationPS: .. sourcecode:: c diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -2091,7 +2091,7 @@ These endpoints are called by the client corresponding to the ``noreveal_index`` returned by the ``/melt`` step. ``$RCH`` is the hash over the melt commitment from the ``/melt/`` step, - i.e. the value of ``h_melt_commitment`` from that prior request. + i.e. the SHA256 value of the `TALER_MeltCommitmentPS` from that prior request. The base URL for ``/reveal-melt``-request may differ from the main base URL of the exchange. Clients SHOULD respect the ``reveal_base_url`` returned for the @@ -3526,17 +3526,7 @@ the API during normal operation. // matching the respective entries in ``denoms_h``. coin_evs: CoinEnvelope[][kappa]; - // The melt commitment, i.e. the running hash over: - // - the old coin's public key - // - the hash of the old age commitment - // - the value_with_fee - // - rms value, or NULL, if not applicable - // - each entry in denoms_h - // - each entry in coin_evs, depths first - // - each of the required n*kappa transfer public keys, depths first. - h_melt_commitment: HashCode; - - // Signature by the `coin <coin-priv>` over the melt commitment. + // Signature by the `coin <coin-priv>` over `TALER_MeltCommitmentPS`. confirm_sig: EddsaSignature; }