commit 2ffe5228d8252417630f681472675054a31e5186
parent e44a841656c330faf75347e923076626ddbc4a56
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu, 3 Apr 2025 16:23:19 +0200
WIP: fix contract terms hashing
Diffstat:
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/packages/taler-util/src/types-taler-merchant.ts b/packages/taler-util/src/types-taler-merchant.ts
@@ -960,6 +960,7 @@ const codecForMerchantContractTermsCommon =
"fulfillment_message_i18n",
codecOptional(codecForInternationalizedString()),
)
+ .property("public_reorder_url", codecOptional(codecForString()))
.property("merchant_base_url", codecForString())
.property("h_wire", codecForString())
.property("auto_refund", codecOptional(codecForDuration))
diff --git a/packages/taler-wallet-core/src/pay-merchant.ts b/packages/taler-wallet-core/src/pay-merchant.ts
@@ -1264,6 +1264,7 @@ async function generateSlate(
wex: WalletExecutionContext,
purchase: PurchaseRecord,
contractData: MerchantContractTermsV1,
+ contractTermsRaw: any,
choiceIndex: number,
outputIndex: number,
): Promise<void> {
@@ -1300,7 +1301,7 @@ async function generateSlate(
genTokenUseSig: true,
contractTerms: contractData,
contractTermsHash: ContractTermsUtil
- .hashContractTerms(contractData),
+ .hashContractTerms(contractTermsRaw),
});
const newSlate: SlateRecord = {
@@ -2927,7 +2928,7 @@ export async function confirmPay(
if (choiceIndex !== undefined && contractData.version === MerchantContractVersion.V1) {
const choice = contractData.choices[choiceIndex];
for (let j = 0; j < choice.outputs.length; j++) {
- await generateSlate(wex, proposal, contractData, choiceIndex!, j);
+ await generateSlate(wex, proposal, contractData, d.contractTermsRaw, choiceIndex!, j);
}
}