From 02bbf082832d6ad4f6099b2aa2e3ebf8b081350c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 8 Dec 2021 01:52:24 +0100 Subject: wallet-core: fix computation of timestamp for exchange update --- packages/taler-wallet-core/src/db.ts | 4 ++++ packages/taler-wallet-core/src/operations/pending.ts | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'packages/taler-wallet-core/src') diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts index 4296d0503..07e0f4b0a 100644 --- a/packages/taler-wallet-core/src/db.ts +++ b/packages/taler-wallet-core/src/db.ts @@ -539,6 +539,10 @@ export interface ExchangeRecord { */ nextRefreshCheck: Timestamp; + /** + * Last error (if any) for fetching updated information about the + * exchange. + */ lastError?: TalerErrorDetails; /** diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts index a87b1c8b1..e3d22bfe6 100644 --- a/packages/taler-wallet-core/src/operations/pending.ts +++ b/packages/taler-wallet-core/src/operations/pending.ts @@ -52,10 +52,18 @@ async function gatherExchangePending( resp: PendingOperationsResponse, ): Promise { 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: e.nextUpdate, + timestampDue: exchangeUpdateTimestampDue, exchangeBaseUrl: e.baseUrl, lastError: e.lastError, }); -- cgit v1.2.3