From 0290c5fd379a4b4262d8835d4131b7c4e8a2f2f2 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 7 Mar 2022 12:09:38 +0100 Subject: address protocol changes in the exchange The exchange now has a wad fee and truncates the payto hash in signatures --- packages/taler-wallet-core/src/operations/backup/export.ts | 6 +++--- packages/taler-wallet-core/src/operations/backup/import.ts | 1 + packages/taler-wallet-core/src/operations/exchanges.ts | 14 ++++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'packages/taler-wallet-core/src/operations') diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts index 75724dca7..05ef66883 100644 --- a/packages/taler-wallet-core/src/operations/backup/export.ts +++ b/packages/taler-wallet-core/src/operations/backup/export.ts @@ -113,9 +113,8 @@ export async function exportBackup( } = {}; await tx.withdrawalGroups.iter().forEachAsync(async (wg) => { - const withdrawalGroups = (withdrawalGroupsByReserve[ - wg.reservePub - ] ??= []); + const withdrawalGroups = (withdrawalGroupsByReserve[wg.reservePub] ??= + []); withdrawalGroups.push({ raw_withdrawal_amount: Amounts.stringify(wg.rawWithdrawalAmount), selected_denoms: wg.denomsSel.selectedDenoms.map((x) => ({ @@ -288,6 +287,7 @@ export async function exportBackup( wireFees.push({ wire_type: x, closing_fee: Amounts.stringify(f.closingFee), + wad_fee: Amounts.stringify(f.wadFee), end_stamp: f.endStamp, sig: f.sig, start_stamp: f.startStamp, diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts index 21b10a945..6dafa8c89 100644 --- a/packages/taler-wallet-core/src/operations/backup/import.ts +++ b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -305,6 +305,7 @@ export async function importBackup( sig: fee.sig, startStamp: fee.start_stamp, wireFee: Amounts.parseOrThrow(fee.wire_fee), + wadFee: Amounts.parseOrThrow(fee.wad_fee), }); } await tx.exchangeDetails.put({ diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts index c50afc215..9d4a56fff 100644 --- a/packages/taler-wallet-core/src/operations/exchanges.ts +++ b/packages/taler-wallet-core/src/operations/exchanges.ts @@ -266,6 +266,7 @@ async function validateWireInfo( sig: x.sig, startStamp, wireFee: Amounts.parseOrThrow(x.wire_fee), + wadFee: Amounts.parseOrThrow(x.wad_fee), }; let isValid = false; if (ws.insecureTrustExchange) { @@ -451,7 +452,8 @@ export async function downloadTosFromAcceptedFormat( ws: InternalWalletState, baseUrl: string, timeout: Duration, - acceptedFormat?: string[]): Promise { + acceptedFormat?: string[], +): Promise { let tosFound: ExchangeTosDownloadResult | undefined; //Remove this when exchange supports multiple content-type in accept header if (acceptedFormat) @@ -467,7 +469,7 @@ export async function downloadTosFromAcceptedFormat( break; } } - if (tosFound !== undefined) return tosFound + if (tosFound !== undefined) return tosFound; // If none of the specified format was found try text/plain return await downloadExchangeWithTermsOfService( baseUrl, @@ -550,8 +552,12 @@ async function updateExchangeFromUrlImpl( logger.info("finished validating exchange /wire info"); - - const tosDownload = await downloadTosFromAcceptedFormat(ws, baseUrl, timeout, acceptedFormat) + const tosDownload = await downloadTosFromAcceptedFormat( + ws, + baseUrl, + timeout, + acceptedFormat, + ); let recoupGroupId: string | undefined; -- cgit v1.2.3