summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-04-25 12:47:27 +0200
committerFlorian Dold <florian@dold.me>2023-04-25 12:47:27 +0200
commit859affd6de78917540d66638f1b02e011521cf77 (patch)
tree4aab57cf394745b6d7ff041dbb5212ab5373126d /design-documents
parentf677d455d3e92f88f60c3ba5b7ac3674f2a04ccc (diff)
downloaddocs-859affd6de78917540d66638f1b02e011521cf77.tar.gz
docs-859affd6de78917540d66638f1b02e011521cf77.tar.bz2
docs-859affd6de78917540d66638f1b02e011521cf77.zip
-fix
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/037-wallet-transactions-lifecycle.rst24
1 files changed, 14 insertions, 10 deletions
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst
index fe0f7e5f..e9380862 100644
--- a/design-documents/037-wallet-transactions-lifecycle.rst
+++ b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -55,8 +55,8 @@ include more information information relevant to the transaction in `abortReason
``suspended``: Similar to a ``aborted`` transaction, but the transaction was could be
resumed and may then still succeed.
-``failed``: Similar to ``done``, but the transaction could be completed or
-possible not even be aborted properly. The user may have lost money. In some
+``failed``: Similar to ``done``, but the transaction could not be completed or
+possibly not even be aborted properly. The user may have lost money. In some
cases, a report to the auditor would make sense in this state.
``deleted``: A ``deleted`` state is always a final state. We only use this
@@ -170,12 +170,12 @@ Transaction Type: Withdrawal
user aborts at this stage, we do not know if the bank is in the confirmation stage,
so we must still *try* to abort the transaction at the bank.
- * ``[processed-success] => pending(bank-confirming)``
+ * ``[processed-success] => pending(bank-confirm-transfer)``
* ``[processed-error] => failed``: On permanent errors (like 404 for the withdrawal operation),
the wallet gives up.
- * ``[action:abort] => aborting(bank-to-wallet)``
+ * ``[action:abort] => aborting(bank)``
-* ``pending(bank-confirming)``
+* ``pending(bank-confirm-transfer)``
The wallet waits until the bank has confirmed the withdrawal operation;
usually the user has to complete a 2FA step to *approve* that the money is
@@ -192,18 +192,18 @@ Transaction Type: Withdrawal
* ``[bank-aborted] => aborted``: Bank denied the operation.
* ``[exchange-poll-success] => pending(withdrawing-coins)``: Optional
short-cut transition. Exchange was faster than the bank.
- * ``[action:abort] => aborting(wallet-to-bank)``
+ * ``[action:abort] => aborting(bank)``
-* ``aborting(wallet-to-bank)``
+* ``aborting(bank)``
The user aborted the withdraw operation in the wallet. The wallet must now
try to signal the bank that the wire transfer should no longer be performed.
Note that it is possible that the bank registration never succeeded (if the
- user aborted us during ``pending(bank-register-service)``) and in this case
+ user aborted us during ``pending(bank-register-reserve)``) and in this case
we get an ``unknown transaction`` failure here. It is also theoretically
possible that the user approved the transaction in the bank while
simultaneously aborting in the wallet. In this case, we transition to
- ``suspended(after-wired)`` (treating the ``abort`` action as a ``suspend``
+ ``suspended(exchange-wait-reserve)`` (treating the ``abort`` action as a ``suspend``
action).
* ``[processed-success] => aborted``
@@ -232,7 +232,7 @@ Transaction Type: Withdrawal
at the exchange.
* ``[exchange-poll-success] => pending(withdrawing-coins)``
- * ``[action:suspend] => suspended(after-wired)``
+ * ``[action:suspend] => suspended(exchange-wait-reserve)``
* ``pending(withdrawing-coins)``
@@ -240,9 +240,13 @@ Transaction Type: Withdrawal
the AML and KYC thresholds, we may at any time transition into a
holding pattern on the AML or KYC checks of the exchange.
+ It is possible that the selected denominations expired.
+ In that case, the wallet will re-select denominations.
+
* ``[processed-success] => done``
* ``[processed-kyc-required] => pending(kyc)``
* ``[processed-aml-required] => pending(aml)``
+ * ``[reserve-expired] => fail``
* ``[action:suspend] => suspended(withdrawing-coins)``
* ``pending(kyc)``