diff options
-rw-r--r-- | packages/taler-wallet-core/src/operations/exchanges.ts | 13 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/operations/pending.ts | 11 |
2 files changed, 9 insertions, 15 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts index 2975c860f..c14f27656 100644 --- a/packages/taler-wallet-core/src/operations/exchanges.ts +++ b/packages/taler-wallet-core/src/operations/exchanges.ts @@ -123,7 +123,7 @@ async function handleExchangeUpdateError( ): Promise<void> { await ws.db .mktx((x) => ({ exchanges: x.exchanges })) - .runReadOnly(async (tx) => { + .runReadWrite(async (tx) => { const exchange = await tx.exchanges.get(baseUrl); if (!exchange) { return; @@ -131,6 +131,7 @@ async function handleExchangeUpdateError( exchange.retryInfo.retryCounter++; updateRetryInfoTimeout(exchange.retryInfo); exchange.lastError = err; + await tx.exchanges.put(exchange) }); if (err) { ws.notify({ type: NotificationType.ExchangeOperationError, error: err }); @@ -526,11 +527,11 @@ async function updateExchangeFromUrlImpl( tosFound !== undefined ? tosFound : await downloadExchangeWithTermsOfService( - baseUrl, - ws.http, - timeout, - "text/plain", - ); + baseUrl, + ws.http, + timeout, + "text/plain", + ); let recoupGroupId: string | undefined = undefined; diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts index 99d275836..b2f13625a 100644 --- a/packages/taler-wallet-core/src/operations/pending.ts +++ b/packages/taler-wallet-core/src/operations/pending.ts @@ -51,25 +51,18 @@ async function gatherExchangePending( resp: PendingOperationsResponse, ): Promise<void> { await tx.exchanges.iter().forEachAsync(async (e) => { - let exchangeUpdateTimestampDue: Timestamp; - - if (e.lastError) { - exchangeUpdateTimestampDue = e.retryInfo.nextRetry; - } else { - exchangeUpdateTimestampDue = e.nextUpdate; - } resp.pendingOperations.push({ type: PendingTaskType.ExchangeUpdate, givesLifeness: false, - timestampDue: exchangeUpdateTimestampDue, + timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextUpdate, exchangeBaseUrl: e.baseUrl, lastError: e.lastError, }); resp.pendingOperations.push({ type: PendingTaskType.ExchangeCheckRefresh, - timestampDue: e.nextRefreshCheck, + timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextRefreshCheck, givesLifeness: false, exchangeBaseUrl: e.baseUrl, }); |