taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 171d070a83c93082026c9e757f7520139ec655c9
parent ee492b255267b6cb2ceaa4aee065a5d690177ef5
Author: Florian Dold <florian@dold.me>
Date:   Mon, 24 Jan 2022 20:51:44 +0100

make tipping work with latest merchant protocol

Diffstat:
Mpackages/taler-util/src/talerTypes.ts | 11+++++++++++
Mpackages/taler-wallet-core/src/operations/tip.ts | 11++++++++---
2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/packages/taler-util/src/talerTypes.ts b/packages/taler-util/src/talerTypes.ts @@ -1654,3 +1654,14 @@ export enum ExchangeProtocolVersion { V9 = 9, V12 = 12, } + +export enum MerchantProtocolVersion { + /** + * Legacy version that is still supported. + */ + V1 = 1, + /** + * Current version supported by the wallet. + */ + V3 = 3, +} diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts @@ -33,6 +33,7 @@ import { DenomKeyType, BlindedDenominationSignature, codecForMerchantTipResponseV2, + MerchantProtocolVersion, } from "@gnu-taler/taler-util"; import { DerivedTipPlanchet } from "../crypto/cryptoTypes.js"; import { @@ -314,13 +315,15 @@ async function processTipImpl( let blindedSigs: BlindedDenominationSignature[] = []; - if (merchantInfo.protocolVersionCurrent === 2) { + if (merchantInfo.protocolVersionCurrent === MerchantProtocolVersion.V3) { const response = await readSuccessResponseJsonOrThrow( merchantResp, codecForMerchantTipResponseV2(), ); blindedSigs = response.blind_sigs.map((x) => x.blind_sig); - } else if (merchantInfo.protocolVersionCurrent === 1) { + } else if ( + merchantInfo.protocolVersionCurrent === MerchantProtocolVersion.V1 + ) { const response = await readSuccessResponseJsonOrThrow( merchantResp, codecForMerchantTipResponseV1(), @@ -330,7 +333,9 @@ async function processTipImpl( blinded_rsa_signature: x.blind_sig, })); } else { - throw Error("unsupported merchant protocol version"); + throw Error( + `unsupported merchant protocol version (${merchantInfo.protocolVersionCurrent})`, + ); } if (blindedSigs.length !== planchets.length) {