From de32e0217c54f26a54813f56c378155bcacf4416 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 9 Apr 2024 23:45:07 -0300 Subject: evict cache when updating exchange database --- packages/taler-wallet-core/src/exchanges.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'packages/taler-wallet-core') 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 { 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(); }, ); -- cgit v1.2.3