summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-07-13 19:03:05 +0200
committerChristian Grothoff <christian@grothoff.org>2020-07-13 19:03:05 +0200
commitb89e433f4f48f5be8d35d7a7eaf45d5ac45169fd (patch)
tree454ddf803651e323e94294b005637cdd4c2928d3
parent5e5a15b01b136b347d15bf7517ad2745a4e1b465 (diff)
downloadexchange-b89e433f4f48f5be8d35d7a7eaf45d5ac45169fd.tar.gz
exchange-b89e433f4f48f5be8d35d7a7eaf45d5ac45169fd.tar.bz2
exchange-b89e433f4f48f5be8d35d7a7eaf45d5ac45169fd.zip
add more detail to coin state machine
-rw-r--r--doc/system/taler/coin.dot4
-rw-r--r--doc/system/taler/coin.pdfbin17066 -> 17151 bytes
-rw-r--r--doc/system/taler/design.tex7
3 files changed, 7 insertions, 4 deletions
diff --git a/doc/system/taler/coin.dot b/doc/system/taler/coin.dot
index ab1f8139..3112a1b6 100644
--- a/doc/system/taler/coin.dot
+++ b/doc/system/taler/coin.dot
@@ -6,7 +6,8 @@ digraph Coin {
partial [color=blue, label="dirty coin", shape="box"];
revoked [color=blue, label="revoked coin", shape="box"];
zombie [color=blue, label="zombie coin", shape="box"];
- spent [color=blue, label="spent coin", shape="doublecircle"];
+ spent [color=blue, label="spent coin", shape="box"];
+ wired [color=blue, label="wired coin", shape="doublecircle"];
expired [color=blue, label="expired coin", shape="doublecircle"];
subgraph {
@@ -36,6 +37,7 @@ digraph Coin {
melt->spent;
spent->refund;
refund->partial;
+ spent->wired [style=dotted];
partial->expired [style=dotted];
partial->melt;
partial->deposit [color=red];
diff --git a/doc/system/taler/coin.pdf b/doc/system/taler/coin.pdf
index a5590b75..dcd47292 100644
--- a/doc/system/taler/coin.pdf
+++ b/doc/system/taler/coin.pdf
Binary files differ
diff --git a/doc/system/taler/design.tex b/doc/system/taler/design.tex
index d78acac1..535dc51a 100644
--- a/doc/system/taler/design.tex
+++ b/doc/system/taler/design.tex
@@ -727,8 +727,9 @@ the {\em withdraw} protocol or the refresh protocol. The most common scenario
is that the {\em fresh coin} is {\em deposited}. This payment creates a
deposit (see Figure~\ref{fig:deposit:states}) and either a {\em dirty coin}
(if the payment was for a fraction of the coin's value) or a {\em spent coin}.
-A spent coin can be {\em refunded} by the merchant (until the deposit is due),
-creating a {\em dirty coin}.
+A spent coin can be {\em refunded} by the merchant, creating a {\em dirty
+ coin}. Once the exchange has aggregated a coin and wired the amount to the
+merchant, a coin can no longer be refunded.
A {\em fresh coin} may also be subject to key {\em revocation}, at which point
the wallet ends up with a {\em revoked coin}. At this point, the wallet can
@@ -754,7 +755,7 @@ when the committment made for the {\em refresh session} is checked during the
\begin{figure}
\begin{center}
- \includegraphics[scale=0.75]{taler/coin.pdf}
+ \includegraphics[scale=0.65]{taler/coin.pdf}
\end{center}
\caption{State machine of a coin.}
\label{fig:coin:states}