From d5a933e4cb685aab3e5e6bae5ca2358291e59130 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 8 Mar 2022 20:39:52 +0100 Subject: wallet-core: handle reserve retries better We now always increment the next retry timeout before doing anything else, so that it is impossible to accidentally retry immediately. This fixes a bug where we previously made many, very frequent requests to the bank integration API. --- packages/taler-wallet-core/src/operations/pending.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/pending.ts') diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts index 7e82236f0..f615e8e5d 100644 --- a/packages/taler-wallet-core/src/operations/pending.ts +++ b/packages/taler-wallet-core/src/operations/pending.ts @@ -48,7 +48,6 @@ async function gatherExchangePending( resp: PendingOperationsResponse, ): Promise { await tx.exchanges.iter().forEachAsync(async (e) => { - resp.pendingOperations.push({ type: PendingTaskType.ExchangeUpdate, givesLifeness: false, @@ -79,16 +78,16 @@ async function gatherReservePending( ? ReserveType.TalerBankWithdraw : ReserveType.Manual; switch (reserve.reserveStatus) { - case ReserveRecordStatus.DORMANT: + case ReserveRecordStatus.Dormant: // nothing to report as pending break; - case ReserveRecordStatus.WAIT_CONFIRM_BANK: - case ReserveRecordStatus.QUERYING_STATUS: - case ReserveRecordStatus.REGISTERING_BANK: + case ReserveRecordStatus.WaitConfirmBank: + case ReserveRecordStatus.QueryingStatus: + case ReserveRecordStatus.RegisteringBank: { resp.pendingOperations.push({ type: PendingTaskType.Reserve, givesLifeness: true, - timestampDue: reserve.retryInfo.nextRetry, + timestampDue: reserve.retryInfo?.nextRetry ?? Timestamp.now(), stage: reserve.reserveStatus, timestampCreated: reserve.timestampCreated, reserveType, @@ -96,6 +95,7 @@ async function gatherReservePending( retryInfo: reserve.retryInfo, }); break; + } default: // FIXME: report problem! break; -- cgit v1.2.3