summaryrefslogtreecommitdiff
path: root/design-documents/037-wallet-transactions-lifecycle.rst
diff options
context:
space:
mode:
Diffstat (limited to 'design-documents/037-wallet-transactions-lifecycle.rst')
-rw-r--r--design-documents/037-wallet-transactions-lifecycle.rst30
1 files changed, 22 insertions, 8 deletions
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst
index 58fd2c14..2e4f0858 100644
--- a/design-documents/037-wallet-transactions-lifecycle.rst
+++ b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -109,6 +109,11 @@ actively abort the transaction (e.g. to avoid losing money) and puts it in an
``failed`` state. May result in an ultimate loss of funds (beyond fees) to the
user and thus requires additional consent.
+``[action:cancel]``: Like an ``abort``, except that it results in the deletion
+of the transaction state as there is nothing useful to be kept around. Should
+be used instead of ``delete`` if there was no transaction history state yet
+that could be deleted.
+
``[action:delete]``: Deleting a transaction completely deletes the transaction
from the database. Depending on the type of transaction, some of the other
data *resulting* from the transaction might still survive deletion. For
@@ -121,8 +126,9 @@ state. May result in an ultimate loss of funds (beyond fees) to the user and
thus requires additional consent.
-Whether aborting, deleting or suspending are possible depends on the
-transaction type, and usually only one of the three choices should be offered.
+Whether aborting, cancelling, deleting or suspending are possible depends on
+the transaction type, and usually only one of the four choices should be
+offered.
.. image:: ../transaction-common-states.png
@@ -172,7 +178,7 @@ Transaction Type: Withdrawal
* ``[processed-success] => pending(bank-confirming)``
* ``[processed-error] => deleted``: We show a transient warning.
- * ``[action:abort] => aborting(bank-to-wallet)``
+ * ``[action:cancel] => aborting(bank-to-wallet)``
* ``pending(bank-confirming)``
@@ -190,7 +196,7 @@ Transaction Type: Withdrawal
* ``[bank-poll-success] => pending(exchange-wait-reserve)``
* ``[bank-poll-denied] => deleted``: We show a transient message that the operation was denied in the bank.
* ``[exchange-poll-success] => pending(withdrawing-coins)``
- * ``[action:abort] => aborting(wallet-to-bank)``
+ * ``[action:cancel] => aborting(wallet-to-bank)``
* ``aborting(wallet-to-bank)``
@@ -952,10 +958,8 @@ TODO: Also specify variant where account reserve needs to be created / funded fi
* ``pending(purse-create)``
* ``[process-success] => pending(qr-ready)``: The wallet has created the purse.
- * ``[process-failure] => aborted``: The purse creation failed.
- * ``[action:delete] => deleted``: The user aborted the operation.
- FIXME(CG): May want to go into ``aborting(delete-purse)`` instead to make
- sure the purse is not left behind.
+ * ``[process-failure] => deleted``: The purse creation failed. We only show a transient error.
+ * ``[action:cancel] => deleted``: The user aborted the operation.
* ``pending(qr-ready)``
@@ -998,6 +1002,13 @@ TODO: Also specify variant where account reserve needs to be created / funded fi
* ``[processed-aml] => pending(aml)``
* ``[action:suspend] => suspended(withdraw)``
+* ``suspended(withdraw)``
+
+ The user suspended a withdraw operation.
+
+ * ``[action:resume] => pending(withdraw)``
+ * ``[action:force-delete] => deleted``
+
* ``pending(kyc)``
The user must supply KYC information before withdrawing can continue.
@@ -1041,6 +1052,9 @@ TODO: Also specify variant where account reserve needs to be created / funded fi
* ``deleted``
+.. image:: ../transaction-pull-credit-states.png
+ :width: 800
+
Transaction Type: Peer Pull Debit
---------------------------------