gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] 01/11: [wallet] Initial work for DD37 transitions


From: gnunet
Subject: [taler-taler-android] 01/11: [wallet] Initial work for DD37 transitions
Date: Tue, 11 Jul 2023 16:23:29 +0200

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

torsten-grote pushed a commit to branch master
in repository taler-android.

commit 255094c5432244ca214055cc9406a31d5b561b5f
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Mon Apr 3 14:47:16 2023 -0600

    [wallet] Initial work for DD37 transitions
---
 .../net/taler/wallet/transactions/Transactions.kt  |  6 --
 .../net/taler/wallet/transactions/Transitions.kt   | 73 ++++++++++++++++++++++
 2 files changed, 73 insertions(+), 6 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/transactions/Transactions.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/Transactions.kt
index 6d753ba..6e00b4f 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/Transactions.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/Transactions.kt
@@ -136,12 +136,6 @@ enum class ExtendedStatus {
     @SerialName("failed")
     Failed,
 
-    @SerialName("kyc-required")
-    KycRequired,
-
-    @SerialName("aml-required")
-    AmlRequired,
-
     @SerialName("deleted")
     Deleted;
 }
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/Transitions.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/Transitions.kt
new file mode 100644
index 0000000..31aa655
--- /dev/null
+++ b/wallet/src/main/java/net/taler/wallet/transactions/Transitions.kt
@@ -0,0 +1,73 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2023 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under 
the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+ * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+package net.taler.wallet.transactions
+
+/**
+ * Based on “DD 37: Wallet Transaction Lifecycle”
+ *
+ * TODO: implement sub-states (pending in wallet-core)
+ * TODO: implement sub-state specific transitions
+ */
+
+enum class Transition {
+    // Common States
+    Delete,
+    Retry,
+    Abort,
+    Suspend,
+    Resume,
+    AbortForce,
+
+    // Payment to Merchant
+    PayAccept,
+    Expired,
+    CheckRefund,
+    PayReplay,
+
+    // Tip
+    AcceptTip,
+
+    // Peer Pull Debit
+    ConfirmPay,
+}
+
+fun Transaction.canPerform(t: Transition): Boolean {
+    return when (t) {
+        Transition.Delete -> extendedStatus in arrayOf(
+            ExtendedStatus.Done,
+            ExtendedStatus.Aborted,
+            ExtendedStatus.Failed,
+        )
+        Transition.Retry -> extendedStatus in arrayOf(
+            ExtendedStatus.Pending,
+            ExtendedStatus.Aborting,
+        )
+        Transition.Abort -> extendedStatus in arrayOf(
+            ExtendedStatus.Pending,
+        )
+        Transition.Suspend -> extendedStatus in arrayOf(
+            ExtendedStatus.Pending,
+        )
+        Transition.Resume -> extendedStatus in arrayOf(
+            ExtendedStatus.Suspended,
+        )
+        Transition.AbortForce -> extendedStatus in arrayOf(
+            ExtendedStatus.Aborting,
+        )
+        else -> false
+    }
+}
\ No newline at end of file

-- 
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]