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:
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,