diff options
Diffstat (limited to 'src/wallet-impl/pending.ts')
-rw-r--r-- | src/wallet-impl/pending.ts | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/src/wallet-impl/pending.ts b/src/wallet-impl/pending.ts index b0ae71f6b..2d4b16cf4 100644 --- a/src/wallet-impl/pending.ts +++ b/src/wallet-impl/pending.ts @@ -139,25 +139,17 @@ async function gatherReservePending( if (!reserve.retryInfo.active) { return; } - resp.nextRetryDelay = updateRetryDelay( - resp.nextRetryDelay, - now, - reserve.retryInfo.nextRetry, - ); - if (onlyDue && reserve.retryInfo.nextRetry.t_ms > now.t_ms) { - return; - } switch (reserve.reserveStatus) { case ReserveRecordStatus.DORMANT: // nothing to report as pending break; - case ReserveRecordStatus.WITHDRAWING: case ReserveRecordStatus.UNCONFIRMED: - case ReserveRecordStatus.QUERYING_STATUS: - case ReserveRecordStatus.REGISTERING_BANK: + if (onlyDue) { + break; + } resp.pendingOperations.push({ type: "reserve", - givesLifeness: true, + givesLifeness: false, stage: reserve.reserveStatus, timestampCreated: reserve.created, reserveType, @@ -166,9 +158,12 @@ async function gatherReservePending( }); break; case ReserveRecordStatus.WAIT_CONFIRM_BANK: + if (onlyDue) { + break; + } resp.pendingOperations.push({ type: "reserve", - givesLifeness: true, + givesLifeness: false, stage: reserve.reserveStatus, timestampCreated: reserve.created, reserveType, @@ -177,6 +172,27 @@ async function gatherReservePending( retryInfo: reserve.retryInfo, }); break; + case ReserveRecordStatus.WITHDRAWING: + case ReserveRecordStatus.QUERYING_STATUS: + case ReserveRecordStatus.REGISTERING_BANK: + resp.nextRetryDelay = updateRetryDelay( + resp.nextRetryDelay, + now, + reserve.retryInfo.nextRetry, + ); + if (onlyDue && reserve.retryInfo.nextRetry.t_ms > now.t_ms) { + return; + } + resp.pendingOperations.push({ + type: "reserve", + givesLifeness: true, + stage: reserve.reserveStatus, + timestampCreated: reserve.created, + reserveType, + reservePub: reserve.reservePub, + retryInfo: reserve.retryInfo, + }); + break; default: resp.pendingOperations.push({ type: "bug", @@ -265,7 +281,10 @@ async function gatherWithdrawalPending( if (onlyDue && wsr.retryInfo.nextRetry.t_ms > now.t_ms) { return; } - const numCoinsWithdrawn = wsr.withdrawn.reduce((a, x) => a + (x ? 1 : 0), 0); + const numCoinsWithdrawn = wsr.withdrawn.reduce( + (a, x) => a + (x ? 1 : 0), + 0, + ); const numCoinsTotal = wsr.withdrawn.length; resp.pendingOperations.push({ type: "withdraw", @@ -352,7 +371,7 @@ async function gatherPurchasePending( resp: PendingOperationsResponse, onlyDue: boolean = false, ): Promise<void> { - await tx.iter(Stores.purchases).forEach((pr) => { + await tx.iter(Stores.purchases).forEach(pr => { if (!pr.firstSuccessfulPayTimestamp) { resp.nextRetryDelay = updateRetryDelay( resp.nextRetryDelay, |