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:
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,
});