summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-04-09 19:10:16 +0200
committerChristian Grothoff <christian@grothoff.org>2023-04-09 19:10:16 +0200
commitb40e3af8fd8cb9cd439742c829d1665fbdfb6bb2 (patch)
treed3c4f02a952aedc76c06cdc8828bd4c3aa2df74f /design-documents
parentba420a8d2588e56e61832b11496a8a51f08099a8 (diff)
downloaddocs-b40e3af8fd8cb9cd439742c829d1665fbdfb6bb2.tar.gz
docs-b40e3af8fd8cb9cd439742c829d1665fbdfb6bb2.tar.bz2
docs-b40e3af8fd8cb9cd439742c829d1665fbdfb6bb2.zip
work paying invoices for DD37
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/037-wallet-transactions-lifecycle.rst66
1 files changed, 51 insertions, 15 deletions
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst
index 2e4f0858..bf8831b7 100644
--- a/design-documents/037-wallet-transactions-lifecycle.rst
+++ b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -1046,7 +1046,7 @@ TODO: Also specify variant where account reserve needs to be created / funded fi
* ``done``
- The invoice was successfully paid.
+ The payment for the invoice was successfully received.
* ``[action:delete] => deleted``
@@ -1061,52 +1061,88 @@ Transaction Type: Peer Pull Debit
* ``initial``
- Wallet read the taler:// URI
+ Initial state where we encounter the taler:// URI.
+
+ * ``[trigger] => pending(download)``
+
+* ``pending(download)``
+
+ We are downloading the information about the invoice.
- * ``[action:success] => pending(invoice-downloaded)``
+ * ``[action:suspend] => suspended(download)``
+ * ``[success] => pending(user)``
+* ``suspended(download)``
-* ``pending(invoice-downloaded)``
+ User suspended downloading the information about the invoice.
- We've downloaded information about the pull payment and are waiting
- for the user to confirm.
+ * ``[action:resume] => pending(download)``
+ * ``[action:cancel] => deleted``
+
+``pending(user)``
+
+ We have downloaded information about the pull payment and are waiting for
+ the user to confirm.
- * ``[action:abort] => aborted``: Safe to abort!
* ``[action:confirm-pay] => pending(submit-payment)``
+ * ``[action:cancel] => deleted``
+ * ``[timeout] => aborted``
-* ``pending(submit-payment)``
+* ``pending(deposit)``
The user has confirmed the payment and the wallet tries to deposit
into the provided purse.
- * ``[action:abort] => aborting(refund)``
- * ``[processed-success(auto-refund-enabled)] => pending(refundable)``
+ * ``[action:suspend] => suspended(deposit)``
+ * ``[processed-success(auto-refund-enabled)] => pending(refundable)``. FIXME(CG): I think we should not support auto-refund.
* ``[processed-success(auto-refund-disabled)] => done``
- * ``[processed-error(expired)] => aborting(refresh)``
+ * ``[failure:timeout] => aborting(refresh)``
* ``[processed-success] => done``
- * ``[action:abort] => aborting(refresh)``
+ * ``[failure:other] => aborting(refund)``
+
+* ``suspended(deposit)``
+
+ User suspended depositing into the purse.
+
+ * ``[action:resume] => pending(deposit)``
+ * ``[action:abort] => aborting_refund``
* ``pending(refundable)``
-The payment succeed but if auto-refund-check is active it will be checking for refunds
+ The payment succeed but if auto-refund-check is active it will be checking for refunds.
+ FIXME(CG): I do not think we should support auto-refunds here. Not included in diagram.
* ``[auto-refund-timeout] => done``
* ``aborting(refund)``
+ Aborts the payment, asking for the already deposited coins to be refunded.
+
* ``[processed-success] => aborted(refunded)``
* ``[processed-failure] => aborting(refresh)``
-
+ * ``[action:force-abort] => aborted``
* ``aborting(refresh)``
- XXX Before refreshing, should we not wait until the purse has expired?
+ Refreshes the coins that were previously deposited into the purse to recover their value.
* ``[processed-success] => aborted``
* ``[processed-failed] => failed``
* ``done``
+ The invoice was successfully paid.
+
+ * ``[action:delete] => deleted``
+
+* ``deleted``
+
+ All information about the invoice has been deleted.
+
+.. image:: ../transaction-pull-debit-states.png
+ :width: 800
+
+
Alternatives
============