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:
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);
}