gnunet-svn
[Top][All Lists]
Advanced

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

[taler-docs] branch master updated (e47b50f -> 3a40342)


From: gnunet
Subject: [taler-docs] branch master updated (e47b50f -> 3a40342)
Date: Sun, 09 Apr 2023 13:29:33 +0200

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

grothoff pushed a change to branch master
in repository docs.

    from e47b50f  spec refresh
     new 20c1d0e  spec tip
     new b991acd  spec tip
     new 3a40342  spec tip

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Makefile                                           |  4 +-
 .../037-wallet-transactions-lifecycle.rst          | 76 ++++++++++++++++++----
 transaction-tip-states.dot                         | 45 +++++++++++++
 3 files changed, 113 insertions(+), 12 deletions(-)
 create mode 100644 transaction-tip-states.dot

diff --git a/Makefile b/Makefile
index 4cd644b..771a04e 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,8 @@ transaction-refund-states.png: transaction-refund-states.dot
        dot -Tpng transaction-refund-states.dot > transaction-refund-states.png
 transaction-refresh-states.png: transaction-refresh-states.dot
        dot -Tpng transaction-refresh-states.dot > 
transaction-refresh-states.png
+transaction-tip-states.png: transaction-tip-states.dot
+       dot -Tpng transaction-tip-states.dot > transaction-tip-states.png
 coin.png: coin.dot
        dot -Tpng coin.dot > coin.png
 deposit.png: deposit.dot
@@ -70,7 +72,7 @@ deposit.png: deposit.dot
 reserve.png: reserve.dot
        dot -Tpng reserve.dot > reserve.png
 
-diagrams: arch-api.png coin.png deposit.png reserve.png 
transaction-common-states.png transaction-withdrawal-states.png 
transaction-payment-states.png transaction-refund-states.png 
transaction-refresh-states.png
+diagrams: arch-api.png coin.png deposit.png reserve.png 
transaction-common-states.png transaction-withdrawal-states.png 
transaction-payment-states.png transaction-refund-states.png 
transaction-refresh-states.png transaction-tip-states.png
 
 
 # The html-linked builder does not support caching, so we
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst 
b/design-documents/037-wallet-transactions-lifecycle.rst
index bacfff0..f9db090 100644
--- a/design-documents/037-wallet-transactions-lifecycle.rst
+++ b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -509,38 +509,92 @@ the same as if the double-spending transaction had been 
deleted by the user.
 
   The refresh operation completed.
 
+  * ``[action:delete] => deleted``
+
 * ``deleted``
 
   All memory of the refresh operation is lost, but of course the resulting
   fresh coins are preserved.
 
 .. image:: ../transaction-refresh-states.png
-  :width: 800
+  :width: 400
 
 
 
 Transaction Type: Tip
 ---------------------
 
-* ``initial``
+* ``pending(query)``
 
-  The wallet has downloaded metadata for the tip from the merchant and
-  stored it in the database.  The user needs to accept/refuse it.
+  The wallet is downloading the metadata for the tip from the merchant to 
store it in the database.
 
-  * ``[tip-expired] => failed(expired)``
-  * ``[action:accept-tip] => pending(pickup)``
-  * ``[action:abort] => aborted``
+  * ``[failure] => deleted``: We only show a transient warning that the tip 
was invalid.
+  * ``[action:suspend] => suspended(pickup)``
+  * ``[success] => pending(user)``
+
+* ``suspended(query)``
+
+  The user suspended the operation to download the tip data.
+
+  * ``[action:delete] => deleted``
+  * ``[action:resume] => pending(query)``
+
+* ``pending(user)``
+
+  We have downloaded the metadata for the tip. The user needs to accept/refuse
+  the tip.
+
+  * ``[tip-expired] => failed``
+  * ``[action:accept] => pending(pickup)``
+  * ``[action:abort] => deleted``
 
 * ``pending(pickup)``
 
-  * ``[tip-expired] => failed(expired)``
+  We are picking up the tip.
+
+  * ``[failure] => failed``: any type of failure, including expiration.
   * ``[processed-kyc-required] => pending(kyc-required)``
-  * ``[processed-success] => done``
-  * ``[action:abort] => aborted``
+  * ``[success] => done``
+  * ``[action:suspend] => suspended(pickup)``
 
-* ``pending(kyc-required)``
+* ``suspended(pickup)``
+
+  The user suspended the operation while the tip was being picked up.
+
+  * ``[action:delete] => deleted``
+  * ``[tip-expired] => failed``
+  * ``[action:resume] => pending(pickup)``
+
+* ``pending(kyc)``
+
+  The user needs to perform a KYC check to continue. This usually should only
+  happen if the wallet balance exceeds some threshold.
 
   * ``[poll-success] => pending(pickup)``
+  * ``[action:suspend] => suspended(kyc)``
+
+* ``suspended(kyc)``
+
+  The user suspended the KYC operation.  Note that we do not time out here if
+  the tip expires, as the wallet balance threshold KYC likely applies even
+  without the tip.
+
+  * ``[action:delete] => deleted``
+  * ``[action:resume] => pending(kyc)``
+
+* ``done``
+
+  The tip operation completed.
+
+  * ``[action:delete] => deleted``
+
+* ``deleted``
+
+  All memory of the tip operation is lost, but of course the resulting fresh
+  coins are preserved.
+
+.. image:: ../transaction-tip-states.png
+  :width: 400
 
 
 Transaction Type: Deposit
diff --git a/transaction-tip-states.dot b/transaction-tip-states.dot
new file mode 100644
index 0000000..335ee81
--- /dev/null
+++ b/transaction-tip-states.dot
@@ -0,0 +1,45 @@
+digraph G {
+
+  initial[label="", shape="circle"];
+  pending_query[label="pending(query)"];
+  pending_user[label="pending(user)"];
+  pending_pickup[label="pending(pickup)"];
+  pending_kyc[label="pending(kyc)"];
+  suspended_query[label="suspended(query)", shape="box"];
+  suspended_pickup[label="suspended(pickup)", shape="box"];
+  suspended_kyc[label="suspended(kyc)", shape="box"];
+  done[label="done", shape="box"];
+  failed[label="failed", shape="box"];
+  deleted[label="deleted", shape="box"];
+
+  initial->pending_query [color="blue", label="URI trigger"];
+
+  pending_query->pending_user;
+  pending_user->pending_pickup [color="blue", label="accept"];
+  pending_pickup->pending_kyc;
+  pending_query->suspended_query [color="blue", label="suspend"];
+  pending_pickup->suspended_pickup [color="blue", label="suspend"];
+  pending_kyc->suspended_kyc [color="blue", label="suspend"];
+
+  pending_kyc->pending_pickup [color="purple", label="kyc"];
+
+
+  pending_pickup->done;
+
+  suspended_query->pending_query [color="blue", label="resume"];
+  suspended_pickup->pending_pickup [color="blue", label="resume"];
+  suspended_kyc->pending_kyc [color="blue", label="resume"];
+
+  suspended_query->deleted [color="blue", label="delete"];
+  suspended_pickup->deleted [color="blue", label="delete"];
+  suspended_kyc->deleted [color="blue", label="delete"];
+  pending_user->deleted [color="blue", label="abort"];
+  pending_user->failed [color="red", label="expired"];
+  suspended_pickup->failed [color="red", label="expired"];
+  pending_pickup->failed [color="red", label="failure"];
+  pending_query->deleted [color="red", label="failure"];
+
+  done->deleted [color="blue", label="delete"];
+  failed->deleted [color="blue", label="delete"];
+
+}

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