taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 702bd918faeb5f85ab516186fd9b0e62eff8f36d
parent 595679436cbd22cac085195d6ab0cb8758ac435b
Author: Florian Dold <florian@dold.me>
Date:   Tue, 17 Feb 2026 17:09:20 +0100

wallet-core: refactor (do not explicitly specify stores)

Diffstat:
Mpackages/taler-wallet-core/src/coinSelection.ts | 13++-----------
Mpackages/taler-wallet-core/src/exchanges.ts | 66++++++++++++++++++++++++++----------------------------------------
2 files changed, 28 insertions(+), 51 deletions(-)

diff --git a/packages/taler-wallet-core/src/coinSelection.ts b/packages/taler-wallet-core/src/coinSelection.ts @@ -1678,17 +1678,8 @@ export async function getMaxPeerPushDebitAmount( ): Promise<GetMaxPeerPushDebitAmountResponse> { logger.trace(`getting max deposit amount for: ${j2s(req)}`); - return await wex.db.runReadOnlyTx( - { - storeNames: [ - "exchanges", - "coinAvailability", - "denominations", - "exchangeDetails", - "globalCurrencyExchanges", - "globalCurrencyAuditors", - ], - }, + return await wex.db.runAllStoresReadWriteTx( + {}, async (tx): Promise<GetMaxPeerPushDebitAmountResponse> => { let result: GetMaxDepositAmountResponse | undefined = undefined; const currency = req.currency; diff --git a/packages/taler-wallet-core/src/exchanges.ts b/packages/taler-wallet-core/src/exchanges.ts @@ -579,46 +579,32 @@ export async function lookupExchangeByUri( wex: WalletExecutionContext, req: GetExchangeEntryByUrlRequest, ): Promise<ExchangeListItem> { - const res = await wex.db.runReadOnlyTx( - { - storeNames: [ - "exchanges", - "reserves", - "exchangeDetails", - "operationRetries", - "globalCurrencyAuditors", - "globalCurrencyExchanges", - ], - }, - async (tx) => { - const exchangeRec = await tx.exchanges.get(req.exchangeBaseUrl); - if (!exchangeRec) { - return undefined; - } - const exchangeDetails = await getExchangeRecordsInternal( - tx, - exchangeRec.baseUrl, - ); - const opRetryRecord = await tx.operationRetries.get( - TaskIdentifiers.forExchangeUpdate(exchangeRec), - ); - let reserveRec: ReserveRecord | undefined = undefined; - if (exchangeRec.currentMergeReserveRowId != null) { - reserveRec = await tx.reserves.get( - exchangeRec.currentMergeReserveRowId, - ); - checkDbInvariant(!!reserveRec, "reserve record not found"); - } - return await makeExchangeListItem( - wex, - tx, - exchangeRec, - exchangeDetails, - reserveRec, - opRetryRecord?.lastError, - ); - }, - ); + const res = await wex.db.runAllStoresReadWriteTx({}, async (tx) => { + const exchangeRec = await tx.exchanges.get(req.exchangeBaseUrl); + if (!exchangeRec) { + return undefined; + } + const exchangeDetails = await getExchangeRecordsInternal( + tx, + exchangeRec.baseUrl, + ); + const opRetryRecord = await tx.operationRetries.get( + TaskIdentifiers.forExchangeUpdate(exchangeRec), + ); + let reserveRec: ReserveRecord | undefined = undefined; + if (exchangeRec.currentMergeReserveRowId != null) { + reserveRec = await tx.reserves.get(exchangeRec.currentMergeReserveRowId); + checkDbInvariant(!!reserveRec, "reserve record not found"); + } + return await makeExchangeListItem( + wex, + tx, + exchangeRec, + exchangeDetails, + reserveRec, + opRetryRecord?.lastError, + ); + }); if (!res) { throw TalerError.fromDetail( TalerErrorCode.WALLET_EXCHANGE_ENTRY_NOT_FOUND,