From 1edc144b3595ae1ab6b8af7a43d26b811b2c2623 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 23 Apr 2024 03:09:40 +0200 Subject: wallet-core: pass options object to all transactions --- packages/taler-wallet-core/src/balance.ts | 83 +++++++++++++++++-------------- 1 file changed, 45 insertions(+), 38 deletions(-) (limited to 'packages/taler-wallet-core/src/balance.ts') diff --git a/packages/taler-wallet-core/src/balance.ts b/packages/taler-wallet-core/src/balance.ts index ca7642163..1fef9876e 100644 --- a/packages/taler-wallet-core/src/balance.ts +++ b/packages/taler-wallet-core/src/balance.ts @@ -472,19 +472,21 @@ export async function getBalances( logger.trace("starting to compute balance"); const wbal = await wex.db.runReadWriteTx( - [ - "coinAvailability", - "coins", - "depositGroups", - "exchangeDetails", - "exchanges", - "globalCurrencyAuditors", - "globalCurrencyExchanges", - "purchases", - "refreshGroups", - "withdrawalGroups", - "peerPushDebit", - ], + { + storeNames: [ + "coinAvailability", + "coins", + "depositGroups", + "exchangeDetails", + "exchanges", + "globalCurrencyAuditors", + "globalCurrencyExchanges", + "purchases", + "refreshGroups", + "withdrawalGroups", + "peerPushDebit", + ], + }, async (tx) => { return getBalancesInsideTransaction(wex, tx); }, @@ -557,13 +559,15 @@ export async function getPaymentBalanceDetails( req: PaymentRestrictionsForBalance, ): Promise { return await wex.db.runReadOnlyTx( - [ - "coinAvailability", - "refreshGroups", - "exchanges", - "exchangeDetails", - "denominations", - ], + { + storeNames: [ + "coinAvailability", + "refreshGroups", + "exchanges", + "exchangeDetails", + "denominations", + ], + }, async (tx) => { return getPaymentBalanceDetailsInTx(wex, tx, req); }, @@ -729,25 +733,28 @@ export async function getBalanceDetail( ): Promise { const exchanges: { exchangeBaseUrl: string; exchangePub: string }[] = []; const wires = new Array(); - await wex.db.runReadOnlyTx(["exchanges", "exchangeDetails"], async (tx) => { - const allExchanges = await tx.exchanges.iter().toArray(); - for (const e of allExchanges) { - const details = await getExchangeWireDetailsInTx(tx, e.baseUrl); - if (!details || req.currency !== details.currency) { - continue; - } - details.wireInfo.accounts.forEach((a) => { - const payto = parsePaytoUri(a.payto_uri); - if (payto && !wires.includes(payto.targetType)) { - wires.push(payto.targetType); + await wex.db.runReadOnlyTx( + { storeNames: ["exchanges", "exchangeDetails"] }, + async (tx) => { + const allExchanges = await tx.exchanges.iter().toArray(); + for (const e of allExchanges) { + const details = await getExchangeWireDetailsInTx(tx, e.baseUrl); + if (!details || req.currency !== details.currency) { + continue; } - }); - exchanges.push({ - exchangePub: details.masterPublicKey, - exchangeBaseUrl: e.baseUrl, - }); - } - }); + details.wireInfo.accounts.forEach((a) => { + const payto = parsePaytoUri(a.payto_uri); + if (payto && !wires.includes(payto.targetType)) { + wires.push(payto.targetType); + } + }); + exchanges.push({ + exchangePub: details.masterPublicKey, + exchangeBaseUrl: e.baseUrl, + }); + } + }, + ); return await getPaymentBalanceDetails(wex, { currency: req.currency, -- cgit v1.2.3