taler-typescript-core

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

commit e44a841656c330faf75347e923076626ddbc4a56
parent 28b50a4707a78991901361fdfd7f905034e25a4d
Author: Iván Ávalos <avalos@disroot.org>
Date:   Thu,  3 Apr 2025 14:16:59 +0200

WIP: fix contract version check

Diffstat:
Mpackages/taler-wallet-core/src/deposits.ts | 10++++++++--
Mpackages/taler-wallet-core/src/pay-merchant.ts | 8++++++--
2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/packages/taler-wallet-core/src/deposits.ts b/packages/taler-wallet-core/src/deposits.ts @@ -1535,8 +1535,12 @@ async function processDepositGroupPendingDeposit( depositGroup.contractTermsHash, "", ); - if (contractData.version !== MerchantContractVersion.V0) + if ( + contractData.version !== undefined && + contractData.version !== MerchantContractVersion.V0 + ) { throw Error("assertion failed"); + } const ctx = new DepositTransactionContext(wex, depositGroupId); @@ -2189,7 +2193,9 @@ export async function createDepositGroup( "", ); - if (contractData.version !== MerchantContractVersion.V0) { + if (contractData.version !== undefined && + contractData.version !== MerchantContractVersion.V0 + ) { throw Error(`unsupported contract version ${contractData.version}`); } diff --git a/packages/taler-wallet-core/src/pay-merchant.ts b/packages/taler-wallet-core/src/pay-merchant.ts @@ -259,7 +259,9 @@ export class PayMerchantTransactionContext implements TransactionContext { ); let amountRaw: AmountString = "UNKNOWN:0"; - if (contractData.version === MerchantContractVersion.V0) { + if (contractData.version === undefined || + contractData.version === MerchantContractVersion.V0 + ) { amountRaw = contractData.amount; } else if (contractData.version === MerchantContractVersion.V1) { const index = purchaseRec.choiceIndex; @@ -1194,7 +1196,9 @@ async function processDownloadProposal( // v1: currency is resolved after choice selection let currency: string = "UNKNOWN"; - if (contractData.version === MerchantContractVersion.V0) { + if (contractData.version === undefined || + contractData.version === MerchantContractVersion.V0 + ) { currency = Amounts.currencyOf(contractData.amount); }