From c077c0d8c08fb83fb6f4ba860a9d600cc22131c3 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 7 Aug 2021 17:59:06 +0200 Subject: consider deposit operations for pending operations --- .../src/integrationtests/test-deposit.ts | 2 ++ .../taler-wallet-core/src/operations/pending.ts | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts b/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts index 585ca9996..156661e46 100644 --- a/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts +++ b/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts @@ -56,7 +56,9 @@ export async function runDepositTest(t: GlobalTestState) { ); console.log("transactions", JSON.stringify(transactions, undefined, 2)); t.assertDeepEqual(transactions.transactions[0].type, "withdrawal"); + t.assertTrue(!transactions.transactions[0].pending); t.assertDeepEqual(transactions.transactions[1].type, "deposit"); + t.assertTrue(!transactions.transactions[1].pending); // The raw amount is what ends up on the bank account, which includes // deposit and wire fees. t.assertDeepEqual(transactions.transactions[1].amountRaw, "TESTKUDOS:9.79"); diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts index 3a6af186e..200e6ccbd 100644 --- a/packages/taler-wallet-core/src/operations/pending.ts +++ b/packages/taler-wallet-core/src/operations/pending.ts @@ -180,6 +180,27 @@ async function gatherProposalPending( }); } +async function gatherDepositPending( + tx: GetReadOnlyAccess<{ depositGroups: typeof WalletStoresV1.depositGroups }>, + now: Timestamp, + resp: PendingOperationsResponse, +): Promise { + await tx.depositGroups.iter().forEach((dg) => { + if (dg.timestampFinished) { + return; + } + const timestampDue = dg.retryInfo?.nextRetry ?? getTimestampNow(); + resp.pendingOperations.push({ + type: PendingTaskType.Deposit, + givesLifeness: true, + timestampDue, + depositGroupId: dg.depositGroupId, + lastError: dg.lastError, + retryInfo: dg.retryInfo, + }); + }); +} + async function gatherTipPending( tx: GetReadOnlyAccess<{ tips: typeof WalletStoresV1.tips }>, now: Timestamp, @@ -313,6 +334,7 @@ export async function getPendingOperations( await gatherRefreshPending(tx, now, resp); await gatherWithdrawalPending(tx, now, resp); await gatherProposalPending(tx, now, resp); + await gatherDepositPending(tx, now, resp); await gatherTipPending(tx, now, resp); await gatherPurchasePending(tx, now, resp); await gatherRecoupPending(tx, now, resp); -- cgit v1.2.3