From b89e433f4f48f5be8d35d7a7eaf45d5ac45169fd Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 13 Jul 2020 19:03:05 +0200 Subject: [PATCH] add more detail to coin state machine --- doc/system/taler/coin.dot | 4 +++- doc/system/taler/coin.pdf | Bin 17066 -> 17151 bytes doc/system/taler/design.tex | 7 ++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/system/taler/coin.dot b/doc/system/taler/coin.dot index ab1f8139f..3112a1b65 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 a5590b75ebc8dcfff9421339325322c5f70b4391..dcd47292e25a8e367910b7b9676939a0df0b0d10 100644 GIT binary patch delta 3217 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 b3>@`O8KZ=RldkAsflA6Kpp=xpxdHG$NYBc? delta 3124 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 diff --git a/doc/system/taler/design.tex b/doc/system/taler/design.tex index d78acac19..535dc51ac 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}