gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: wallet-core: fix withdrawal s


From: gnunet
Subject: [taler-wallet-core] branch master updated: wallet-core: fix withdrawal state machine
Date: Fri, 23 Sep 2022 21:47:43 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new 2337ddab6 wallet-core: fix withdrawal state machine
2337ddab6 is described below

commit 2337ddab6126722b46a0ea0b6e244955a38b09df
Author: Florian Dold <florian@dold.me>
AuthorDate: Fri Sep 23 21:47:38 2022 +0200

    wallet-core: fix withdrawal state machine
---
 .../src/integrationtests/test-wallet-backup-basic.ts                 | 2 ++
 .../src/integrationtests/test-wallet-backup-doublespend.ts           | 2 ++
 packages/taler-wallet-core/src/db.ts                                 | 5 +++++
 packages/taler-wallet-core/src/operations/withdraw.ts                | 5 ++++-
 packages/taler-wallet-core/src/wallet.ts                             | 1 +
 5 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
index c82d1e650..af294da8e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
@@ -84,6 +84,8 @@ export async function runWalletBackupBasicTest(t: 
GlobalTestState) {
 
   await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:10" });
 
+  await wallet.runUntilDone();
+
   await wallet.client.call(WalletApiOperation.RunBackupCycle, {});
 
   {
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
index f5c9af07e..228712da5 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
@@ -59,6 +59,8 @@ export async function runWalletBackupDoublespendTest(t: 
GlobalTestState) {
 
   await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:10" });
 
+  await wallet.runUntilDone();
+
   await wallet.client.call(WalletApiOperation.RunBackupCycle, {});
   await wallet.runUntilDone();
   await wallet.client.call(WalletApiOperation.RunBackupCycle, {});
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index 3bbe5f002..f8fddb255 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -126,6 +126,11 @@ export enum WithdrawalGroupStatus {
    */
   QueryingStatus = OperationStatusRange.ACTIVE_START + 2,
 
+  /**
+   * Ready for withdrawal.
+   */
+  Ready = OperationStatusRange.ACTIVE_START + 3,
+
   /**
    * The corresponding withdraw record has been created.
    * No further processing is done, unless explicitly requested
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts 
b/packages/taler-wallet-core/src/operations/withdraw.ts
index 4901fdc86..461b96079 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -1023,7 +1023,7 @@ async function queryReserve(
         logger.warn(`withdrawal group ${withdrawalGroupId} not found`);
         return;
       }
-      wg.status = WithdrawalGroupStatus.Finished;
+      wg.status = WithdrawalGroupStatus.Ready;
       await tx.withdrawalGroups.put(wg);
     });
 
@@ -1138,6 +1138,9 @@ export async function processWithdrawalGroup(
     case WithdrawalGroupStatus.Finished:
       // We can try to withdraw, nothing needs to be done with the reserve.
       break;
+    case WithdrawalGroupStatus.Ready:
+      // Continue with the actual withdrawal!
+      break;
     default:
       throw new InvariantViolatedError(
         `unknown reserve record status: ${withdrawalGroup.status}`,
diff --git a/packages/taler-wallet-core/src/wallet.ts 
b/packages/taler-wallet-core/src/wallet.ts
index 3b9a323a7..4323f68f5 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -492,6 +492,7 @@ async function runTaskLoop(
   ws: InternalWalletState,
   opts: RetryLoopOpts = {},
 ): Promise<TaskLoopResult> {
+  logger.info(`running task loop opts=${j2s(opts)}`);
   let retriesExceeded = false;
   for (let iteration = 0; !ws.stopped; iteration++) {
     const pending = await getPendingOperations(ws);

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]