taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 02bbf082832d6ad4f6099b2aa2e3ebf8b081350c
parent afaeefb9439b6aab09c8c519742e1472b283efce
Author: Florian Dold <florian@dold.me>
Date:   Wed,  8 Dec 2021 01:52:24 +0100

wallet-core: fix computation of timestamp for exchange update

Diffstat:
Mpackages/taler-wallet-core/src/db.ts | 4++++
Mpackages/taler-wallet-core/src/operations/pending.ts | 10+++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)

diff --git 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 @@ -52,10 +52,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: e.nextUpdate, + timestampDue: exchangeUpdateTimestampDue, exchangeBaseUrl: e.baseUrl, lastError: e.lastError, });