summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-04-09 23:45:07 -0300
committerSebastian <sebasjm@gmail.com>2024-04-09 23:45:07 -0300
commitde32e0217c54f26a54813f56c378155bcacf4416 (patch)
treec6767c1e4d1fc7ba300df118cf514fe61b8b3c5b
parent86e02c6ecdde78ed741d89c5a64f6bfb79a2426e (diff)
downloadwallet-core-de32e0217c54f26a54813f56c378155bcacf4416.tar.gz
wallet-core-de32e0217c54f26a54813f56c378155bcacf4416.tar.bz2
wallet-core-de32e0217c54f26a54813f56c378155bcacf4416.zip
evict cache when updating exchange database
-rw-r--r--packages/taler-wallet-core/src/exchanges.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/taler-wallet-core/src/exchanges.ts b/packages/taler-wallet-core/src/exchanges.ts
index 6ee579368..4a784cebb 100644
--- a/packages/taler-wallet-core/src/exchanges.ts
+++ b/packages/taler-wallet-core/src/exchanges.ts
@@ -312,8 +312,8 @@ async function makeExchangeListItem(
): Promise<ExchangeListItem> {
const lastUpdateErrorInfo: OperationErrorInfo | undefined = lastError
? {
- error: lastError,
- }
+ error: lastError,
+ }
: undefined;
let scopeInfo: ScopeInfo | undefined = undefined;
@@ -425,6 +425,7 @@ export async function acceptExchangeTermsOfService(
);
await tx.exchanges.put(exch);
const newExchangeState = getExchangeState(exch);
+ wex.ws.exchangeCache.clear();
return {
type: NotificationType.ExchangeStateTransition,
exchangeBaseUrl,
@@ -457,6 +458,7 @@ export async function forgetExchangeTermsOfService(
exch.tosAcceptedTimestamp = undefined;
await tx.exchanges.put(exch);
const newExchangeState = getExchangeState(exch);
+ wex.ws.exchangeCache.clear();
return {
type: NotificationType.ExchangeStateTransition,
exchangeBaseUrl,
@@ -913,14 +915,14 @@ async function startUpdateExchangeEntry(
const canonBaseUrl = canonicalizeBaseUrl(exchangeBaseUrl);
logger.info(
- `starting update of exchange entry ${canonBaseUrl}, forced=${
- options.forceUpdate ?? false
+ `starting update of exchange entry ${canonBaseUrl}, forced=${options.forceUpdate ?? false
}`,
);
const { notification } = await wex.db.runReadWriteTx(
["exchanges", "exchangeDetails"],
async (tx) => {
+ wex.ws.exchangeCache.clear();
return provideExchangeRecordInTx(wex.ws, tx, exchangeBaseUrl);
},
);
@@ -972,6 +974,7 @@ async function startUpdateExchangeEntry(
r.cachebreakNextUpdate = options.forceUpdate;
break;
}
+ wex.ws.exchangeCache.clear();
await tx.exchanges.put(r);
const newExchangeState = getExchangeState(r);
// Reset retries for updating the exchange entry.
@@ -1728,6 +1731,7 @@ export async function updateExchangeFromUrlHandler(
exchange.nextRefreshCheckStamp = timestampPreciseToDb(
AbsoluteTime.toPreciseTimestamp(minCheckThreshold),
);
+ wex.ws.exchangeCache.clear();
await tx.exchanges.put(exchange);
},
);
@@ -2122,6 +2126,7 @@ export async function getExchangeTos(
const updateExchangeEntry = await tx.exchanges.get(exchangeBaseUrl);
if (updateExchangeEntry) {
updateExchangeEntry.tosCurrentEtag = tosDownload.tosEtag;
+ wex.ws.exchangeCache.clear();
await tx.exchanges.put(updateExchangeEntry);
}
});
@@ -2539,6 +2544,7 @@ export async function deleteExchange(
return;
}
await purgeExchange(tx, exchangeBaseUrl);
+ wex.ws.exchangeCache.clear();
},
);