commit fbcc74755c0900ab4c4b89891dd22ec052c43011
parent 309f88d19ebf55620d258806e45172244fd3c325
Author: Florian Dold <florian@dold.me>
Date: Thu, 23 May 2024 22:04:29 +0200
update DD37 withdrawal states
Diffstat:
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -172,9 +172,18 @@ the courts) to avoid losing the funds for good.
Transaction Type: Withdrawal
----------------------------
+* ``dialog(proposed)``
+
+ Initial dialog state for bank-integrated withdrawals. In this state, the user must confirm
+ the withdrawal to proceed, and possibly provide further information (such as the amount).
+
+ Depending on how a bank-integrated withdrawal transaction is created,
+ it starts either in this state or in ``pending(bank-register-reserve)``.
+
+
* ``pending(bank-register-reserve)``
- Initial state for bank-integrated withdrawals. The wallet submits the reserve public key
+ Initial active state for bank-integrated withdrawals. The wallet submits the reserve public key
and selected exchange to the bank (via the bank integration API). Note that if the
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.
diff --git a/images/transaction-withdrawal-states.dot b/images/transaction-withdrawal-states.dot
@@ -1,6 +1,7 @@
digraph G {
initial_manual[label="", xlabel="manual" shape="circle"];
initial_bank[label="", xlabel="bank-integrated" shape="circle"];
+ dialog_proposed[label="dialog(proposed)"];
pending_brr[label="bank-register-reserve"];
pending_bc[label="bank-confirm"];
pending_ewr[label="exchange-wait-reserve"];
@@ -25,6 +26,8 @@ digraph G {
}
initial_bank->pending_brr;
+ initial_bank->dialog_proposed;
+ dialog_proposed->pending_brr;
initial_manual->pending_ewr;
pending_brr->pending_bc [color="green"];
pending_brr->aborting_bank [style="dashed", color="blue", label="abort"];