From f22f5f89cc99fb0556b956b6432e4817d52378d2 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 18 Dec 2023 23:00:33 +0100 Subject: wallet-core: update exchange inline, not in task A task (such as refresh) can't wait until the exchange update task updates the exchange, as task handlers don't run concurrently. The previous behavior caused some transactions to block indefinitely when waiting for an updated exchange entry. --- packages/taler-wallet-core/src/wallet.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'packages/taler-wallet-core/src/wallet.ts') diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts index da6ffa41f..2d422e59c 100644 --- a/packages/taler-wallet-core/src/wallet.ts +++ b/packages/taler-wallet-core/src/wallet.ts @@ -844,12 +844,12 @@ async function handlePrepareWithdrawExchange( } const exchangeBaseUrl = parsedUri.exchangeBaseUrl; const exchange = await fetchFreshExchange(ws, exchangeBaseUrl); - if (exchange.exchangeDetails.masterPublicKey != parsedUri.exchangePub) { + if (exchange.masterPub != parsedUri.exchangePub) { throw Error("mismatch of exchange master public key (URI vs actual)"); } if (parsedUri.amount) { const amt = Amounts.parseOrThrow(parsedUri.amount); - if (amt.currency !== exchange.exchangeDetails.currency) { + if (amt.currency !== exchange.currency) { throw Error("mismatch of currency (URI vs exchange)"); } } @@ -1689,7 +1689,7 @@ class InternalWalletStateImpl implements InternalWalletState { exchangeOps: ExchangeOperations = { getExchangeDetails, - updateExchangeFromUrl: fetchFreshExchange, + fetchFreshExchange, }; recoupOps: RecoupOperations = { -- cgit v1.2.3