Reliable transaction submission diagram draft finished

This commit is contained in:
mDuo13
2019-03-15 17:13:35 -07:00
parent 36cc55e75a
commit 62fa289c04
4 changed files with 835 additions and 199 deletions

View File

@@ -4,8 +4,8 @@
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>470</x> <x>160</x>
<y>80</y> <y>60</y>
<w>180</w> <w>180</w>
<h>90</h> <h>90</h>
</coordinates> </coordinates>
@@ -16,19 +16,19 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>50</x>
<y>40</y> <y>50</y>
<w>30</w> <w>130</w>
<h>60</h> <h>70</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>110.0;50.0;10.0;50.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>540</x> <x>50</x>
<y>30</y> <y>40</y>
<w>20</w> <w>20</w>
<h>20</h> <h>20</h>
</coordinates> </coordinates>
@@ -38,8 +38,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>470</x> <x>390</x>
<y>200</y> <y>50</y>
<w>180</w> <w>180</w>
<h>110</h> <h>110</h>
</coordinates> </coordinates>
@@ -51,30 +51,30 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>330</x>
<y>160</y> <y>90</y>
<w>30</w> <w>80</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>560</x>
<y>300</y> <y>90</y>
<w>30</w> <w>70</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>50.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>470</x> <x>610</x>
<y>340</y> <y>80</y>
<w>180</w> <w>180</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
@@ -85,8 +85,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>470</x> <x>840</x>
<y>420</y> <y>50</y>
<w>180</w> <w>180</w>
<h>130</h> <h>130</h>
</coordinates> </coordinates>
@@ -97,30 +97,30 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>780</x>
<y>380</y> <y>90</y>
<w>30</w> <w>80</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>1010</x>
<y>540</y> <y>90</y>
<w>30</w> <w>80</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>490</x> <x>10</x>
<y>0</y> <y>10</y>
<w>160</w> <w>160</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@@ -131,8 +131,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>470</x> <x>1070</x>
<y>580</y> <y>80</y>
<w>180</w> <w>180</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
@@ -143,8 +143,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLTimer</id> <id>UMLTimer</id>
<coordinates> <coordinates>
<x>480</x> <x>1080</x>
<y>660</y> <y>230</y>
<w>140</w> <w>140</w>
<h>90</h> <h>90</h>
</coordinates> </coordinates>
@@ -155,8 +155,8 @@ validated ledger</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>460</x> <x>90</x>
<y>790</y> <y>530</y>
<w>180</w> <w>180</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
@@ -164,22 +164,11 @@ validated ledger</panel_attributes>
style=wordwrap</panel_attributes> style=wordwrap</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>740</y>
<w>30</w>
<h>70</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;50.0;10.0;10.0</additional_attributes>
</element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>530</x> <x>370</x>
<y>880</y> <y>530</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@@ -189,45 +178,46 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>260</x>
<y>830</y> <y>540</y>
<w>30</w> <w>130</w>
<h>70</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;50.0;10.0;10.0</additional_attributes> <additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>560</x> <x>400</x>
<y>880</y> <y>530</y>
<w>220</w> <w>240</w>
<h>50</h> <h>60</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[transaction is not [transaction not found,
in a validated ledger]</panel_attributes> or is found in a
<additional_attributes>200.0;20.0;10.0;20.0</additional_attributes> non-validated ledger]</panel_attributes>
<additional_attributes>220.0;20.0;10.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>160</x>
<y>910</y> <y>560</y>
<w>180</w> <w>250</w>
<h>130</h> <h>120</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[transaction is [transaction is
in a validated ledger]</panel_attributes> in a validated ledger]</panel_attributes>
<additional_attributes>10.0;110.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;100.0;10.0;60.0;230.0;60.0;230.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>460</x> <x>90</x>
<y>1020</y> <y>660</y>
<w>180</w> <w>180</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
@@ -238,8 +228,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>540</x> <x>160</x>
<y>1100</y> <y>740</y>
<w>20</w> <w>20</w>
<h>20</h> <h>20</h>
</coordinates> </coordinates>
@@ -249,8 +239,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>160</x>
<y>1060</y> <y>700</y>
<w>30</w> <w>30</w>
<h>60</h> <h>60</h>
</coordinates> </coordinates>
@@ -260,8 +250,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>530</x> <x>150</x>
<y>1120</y> <y>760</y>
<w>60</w> <w>60</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@@ -272,8 +262,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>760</x> <x>620</x>
<y>880</y> <y>530</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@@ -283,32 +273,34 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>570</x> <x>630</x>
<y>670</y> <y>240</y>
<w>410</w> <w>640</w>
<h>230</h> <h>310</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
r2=[latest validated leger \nis &lt; LastLedgerSequence]</panel_attributes> r2=[latest validated ledger \nis &lt; LastLedgerSequence]
<additional_attributes>10.0;10.0;210.0;10.0;210.0;210.0</additional_attributes> r2pos=20,5</panel_attributes>
<additional_attributes>550.0;10.0;620.0;10.0;620.0;270.0;10.0;270.0;10.0;290.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>770</x> <x>650</x>
<y>910</y> <y>540</y>
<w>280</w> <w>240</w>
<h>70</h> <h>50</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
r1=[latest validated leger \nis ≥ LastLedgerSequence]</panel_attributes> r1=[latest validated ledger \nis ≥ LastLedgerSequence]
<additional_attributes>260.0;50.0;10.0;50.0;10.0;10.0</additional_attributes> r1pos=-10,30</panel_attributes>
<additional_attributes>220.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>1030</x> <x>870</x>
<y>940</y> <y>530</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@@ -318,22 +310,22 @@ r1=[latest validated leger \nis ≥ LastLedgerSequence]</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1040</x> <x>420</x>
<y>970</y> <y>560</y>
<w>320</w> <w>490</w>
<h>90</h> <h>160</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[server has continuous ledger history [server has continuous ledger history
from A to LastLedgerSequence, inclusive] from A to LastLedgerSequence, inclusive]
</panel_attributes> </panel_attributes>
<additional_attributes>10.0;70.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;140.0;10.0;90.0;470.0;90.0;470.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>1030</x> <x>630</x>
<y>1140</y> <y>710</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@@ -343,35 +335,37 @@ from A to LastLedgerSequence, inclusive]
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1040</x> <x>520</x>
<y>1100</y> <y>720</y>
<w>30</w> <w>130</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1060</x> <x>900</x>
<y>710</y> <y>530</y>
<w>300</w> <w>230</w>
<h>270</h> <h>130</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[server does not have [server does not
continuous ledger history have continuous
from A to LastLedgerSequence ledger history
from A to
LastLedgerSequence
(inclusive)] (inclusive)]
</panel_attributes> </panel_attributes>
<additional_attributes>70.0;10.0;70.0;250.0;10.0;250.0</additional_attributes> <additional_attributes>210.0;20.0;10.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>1020</x> <x>1110</x>
<y>660</y> <y>530</y>
<w>180</w> <w>180</w>
<h>60</h> <h>60</h>
</coordinates> </coordinates>
@@ -382,19 +376,19 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>770</x> <x>1240</x>
<y>670</y> <y>240</y>
<w>270</w> <w>90</w>
<h>30</h> <h>330</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;250.0;10.0</additional_attributes> <additional_attributes>10.0;10.0;70.0;10.0;70.0;310.0;50.0;310.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>970</x> <x>350</x>
<y>1040</y> <y>700</y>
<w>180</w> <w>180</w>
<h>70</h> <h>70</h>
</coordinates> </coordinates>
@@ -405,22 +399,22 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>860</x> <x>240</x>
<y>1140</y> <y>740</y>
<w>190</w> <w>430</w>
<h>60</h> <h>140</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[Account Sequence is [Account Sequence is
less than or equal to less than or equal to
transaction Sequence]</panel_attributes> transaction Sequence]</panel_attributes>
<additional_attributes>10.0;20.0;170.0;20.0</additional_attributes> <additional_attributes>10.0;120.0;10.0;70.0;410.0;70.0;410.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>770</x> <x>690</x>
<y>1310</y> <y>880</y>
<w>20</w> <w>20</w>
<h>20</h> <h>20</h>
</coordinates> </coordinates>
@@ -430,8 +424,8 @@ transaction Sequence]</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>690</x> <x>200</x>
<y>1120</y> <y>860</y>
<w>180</w> <w>180</w>
<h>80</h> <h>80</h>
</coordinates> </coordinates>
@@ -442,8 +436,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>690</x> <x>450</x>
<y>1230</y> <y>870</y>
<w>180</w> <w>180</w>
<h>50</h> <h>50</h>
</coordinates> </coordinates>
@@ -454,30 +448,30 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>770</x> <x>370</x>
<y>1190</y> <y>880</y>
<w>30</w> <w>100</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>80.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>770</x> <x>620</x>
<y>1270</y> <y>880</y>
<w>30</w> <w>90</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>70.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>760</x> <x>680</x>
<y>1330</y> <y>900</y>
<w>60</w> <w>60</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@@ -488,8 +482,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>210</x> <x>50</x>
<y>250</y> <y>220</y>
<w>20</w> <w>20</w>
<h>20</h> <h>20</h>
</coordinates> </coordinates>
@@ -499,8 +493,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>140</x> <x>10</x>
<y>220</y> <y>190</y>
<w>190</w> <w>190</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@@ -511,22 +505,22 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>1060</x> <x>660</x>
<y>1140</y> <y>710</y>
<w>260</w> <w>240</w>
<h>60</h> <h>60</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[Account Sequence is [Account Sequence is
greater than transaction greater than transaction
Sequence]</panel_attributes> Sequence]</panel_attributes>
<additional_attributes>240.0;20.0;10.0;20.0</additional_attributes> <additional_attributes>220.0;20.0;10.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>1300</x> <x>880</x>
<y>1130</y> <y>700</y>
<w>180</w> <w>180</w>
<h>80</h> <h>80</h>
</coordinates> </coordinates>
@@ -537,8 +531,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>140</x> <x>160</x>
<y>300</y> <y>240</y>
<w>180</w> <w>180</w>
<h>80</h> <h>80</h>
</coordinates> </coordinates>
@@ -549,30 +543,30 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>210</x> <x>50</x>
<y>260</y> <y>230</y>
<w>30</w> <w>130</w>
<h>60</h> <h>60</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>110.0;40.0;10.0;40.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>210</x> <x>330</x>
<y>370</y> <y>260</y>
<w>30</w> <w>100</w>
<h>60</h> <h>30</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>80.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>200</x> <x>410</x>
<y>410</y> <y>250</y>
<w>40</w> <w>40</w>
<h>40</h> <h>40</h>
</coordinates> </coordinates>
@@ -582,22 +576,22 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>230</x> <x>420</x>
<y>420</y> <y>280</y>
<w>210</w> <w>150</w>
<h>110</h> <h>130</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
[final outcomes of [final outcomes of
all transactions all transactions
are recorded]</panel_attributes> are recorded]</panel_attributes>
<additional_attributes>70.0;90.0;70.0;10.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;110.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>Text</id> <id>Text</id>
<coordinates> <coordinates>
<x>280</x> <x>410</x>
<y>530</y> <y>410</y>
<w>60</w> <w>60</w>
<h>30</h> <h>30</h>
</coordinates> </coordinates>
@@ -608,8 +602,8 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>UMLSpecialState</id> <id>UMLSpecialState</id>
<coordinates> <coordinates>
<x>290</x> <x>420</x>
<y>510</y> <y>390</y>
<w>20</w> <w>20</w>
<h>20</h> <h>20</h>
</coordinates> </coordinates>
@@ -619,32 +613,33 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>0</x> <x>440</x>
<y>420</y> <y>250</y>
<w>240</w> <w>230</w>
<h>250</h> <h>60</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;- <panel_attributes>lt=&lt;-
r2=[final outcomes of\nsome transactions\nare not recorded] [final outcomes of
r2pos=-50,100</panel_attributes> some transactions
<additional_attributes>220.0;230.0;220.0;190.0;140.0;190.0;140.0;10.0;200.0;10.0</additional_attributes> are not recorded]</panel_attributes>
<additional_attributes>210.0;20.0;10.0;20.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>540</x> <x>1140</x>
<y>620</y> <y>120</y>
<w>30</w> <w>30</w>
<h>60</h> <h>130</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;110.0;10.0;10.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>140</x> <x>650</x>
<y>650</y> <y>220</y>
<w>180</w> <w>180</w>
<h>100</h> <h>100</h>
</coordinates> </coordinates>
@@ -655,12 +650,40 @@ style=wordwrap</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>220</x> <x>850</x>
<y>740</y> <y>310</y>
<w>260</w> <w>320</w>
<h>90</h> <h>160</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;-</panel_attributes> <panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>240.0;70.0;10.0;70.0;10.0;10.0</additional_attributes> <additional_attributes>10.0;140.0;300.0;140.0;300.0;10.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>1080</x>
<y>700</y>
<w>230</w>
<h>230</h>
</coordinates>
<panel_attributes>bg=#fed74c
transparency=0
style=wordwrap
Some reasons an unknown transaction may have been validated:
- The transaction was malleable and succeeded with a different hash.
- A different program or person with your secret key is also sending transactions from the same account.
- You previously sent a transaction, but lost your record of it.</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>50</x>
<y>260</y>
<w>830</w>
<h>310</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>40.0;290.0;10.0;290.0;10.0;190.0;810.0;190.0;810.0;10.0;780.0;10.0</additional_attributes>
</element> </element>
</diagram> </diagram>

View File

@@ -66,6 +66,10 @@ RippleAPI uses the `maxLedgerVersion` field of [Transaction Instructions](ripple
## Best Practices ## Best Practices
The following diagram summarizes the recommended flow for submitting a transaction and determining its outcome:
[![Reliable transaction submission flowchart](img/reliable-tx-submission.svg)](img/reliable-tx-submission.svg)
### Reliable Transactions Submission ### Reliable Transactions Submission

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -0,0 +1,609 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="1360" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" viewBox="-10 -10 1360 970" height="970" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L2147483647 0 L2147483647 2147483647 L0 2147483647 L0 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"
><path d="M0 0 L0 230 L230 230 L230 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"
><path d="M0 0 L0 100 L180 100 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"
><path d="M0 0 L0 20 L20 20 L20 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"
><path d="M0 0 L0 30 L60 30 L60 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"
><path d="M0 0 L0 40 L40 40 L40 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"
><path d="M0 0 L0 80 L180 80 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"
><path d="M0 0 L0 30 L190 30 L190 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"
><path d="M0 0 L0 50 L180 50 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"
><path d="M0 0 L0 70 L180 70 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath11"
><path d="M0 0 L0 60 L180 60 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath12"
><path d="M0 0 L0 90 L140 90 L140 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath13"
><path d="M0 0 L0 30 L160 30 L160 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath14"
><path d="M0 0 L0 130 L180 130 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath15"
><path d="M0 0 L0 110 L180 110 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath16"
><path d="M0 0 L0 90 L180 90 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath17"
><path d="M0 0 L0 310 L830 310 L830 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath18"
><path d="M0 0 L0 160 L320 160 L320 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath19"
><path d="M0 0 L0 130 L30 130 L30 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath20"
><path d="M0 0 L0 60 L230 60 L230 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath21"
><path d="M0 0 L0 130 L150 130 L150 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath22"
><path d="M0 0 L0 30 L100 30 L100 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath23"
><path d="M0 0 L0 60 L130 60 L130 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath24"
><path d="M0 0 L0 60 L240 60 L240 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath25"
><path d="M0 0 L0 30 L90 30 L90 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath26"
><path d="M0 0 L0 140 L430 140 L430 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath27"
><path d="M0 0 L0 330 L90 330 L90 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath28"
><path d="M0 0 L0 130 L230 130 L230 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath29"
><path d="M0 0 L0 30 L130 30 L130 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath30"
><path d="M0 0 L0 160 L490 160 L490 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath31"
><path d="M0 0 L0 50 L240 50 L240 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath32"
><path d="M0 0 L0 310 L640 310 L640 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath33"
><path d="M0 0 L0 60 L30 60 L30 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath34"
><path d="M0 0 L0 120 L250 120 L250 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath35"
><path d="M0 0 L0 30 L80 30 L80 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath36"
><path d="M0 0 L0 30 L70 30 L70 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath37"
><path d="M0 0 L0 70 L130 70 L130 0 Z"
/></clipPath
></defs
><g fill="rgb(254,215,76)" transform="translate(1080,700)" stroke="rgb(254,215,76)"
><path d="M0.5 0.5 L218.5 0.5 L229 12.5 L229 229 L0.5 229 Z" stroke="none" clip-path="url(#clipPath2)"
/><path fill="none" d="M0.5 0.5 L218.5 0.5 L229 12.5 L229 229 L0.5 229 Z" clip-path="url(#clipPath2)" stroke="black"
/><path fill="none" d="M218.5 0.5 L218.5 12.5 L229 12.5" clip-path="url(#clipPath2)" stroke="black"
/></g
><g font-family="sans-serif" font-size="14px" transform="translate(1080,700)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath2)" stroke="none"
>Some reasons an unknown</text
><text x="5" xml:space="preserve" y="34.2188" clip-path="url(#clipPath2)" stroke="none"
>transaction may have been</text
><text x="5" xml:space="preserve" y="50.3281" clip-path="url(#clipPath2)" stroke="none"
>validated:</text
><text x="5" xml:space="preserve" y="66.4375" clip-path="url(#clipPath2)" stroke="none"
>- The transaction was</text
><text x="5" xml:space="preserve" y="82.5469" clip-path="url(#clipPath2)" stroke="none"
>malleable and succeeded with</text
><text x="5" xml:space="preserve" y="98.6562" clip-path="url(#clipPath2)" stroke="none"
>a different hash.</text
><text x="5" xml:space="preserve" y="114.7656" clip-path="url(#clipPath2)" stroke="none"
>- A different program or</text
><text x="5" xml:space="preserve" y="130.875" clip-path="url(#clipPath2)" stroke="none"
>person with your secret key is</text
><text x="5" xml:space="preserve" y="146.9844" clip-path="url(#clipPath2)" stroke="none"
>also sending transactions</text
><text x="5" xml:space="preserve" y="163.0938" clip-path="url(#clipPath2)" stroke="none"
>from the same account.</text
><text x="5" xml:space="preserve" y="179.2031" clip-path="url(#clipPath2)" stroke="none"
>- You previously sent a</text
><text x="5" xml:space="preserve" y="195.3125" clip-path="url(#clipPath2)" stroke="none"
>transaction, but lost your</text
><text x="5" xml:space="preserve" y="211.4219" clip-path="url(#clipPath2)" stroke="none"
>record of it.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(650,220)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="98.5" y="0.5" clip-path="url(#clipPath3)" stroke="none"
/></g
><g transform="translate(650,220)"
><rect fill="none" x="0.5" width="178.5" height="98.5" y="0.5" clip-path="url(#clipPath3)"
/><text x="17" font-size="14px" y="18.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Repeat the following</text
><text x="40" font-size="14px" y="34.2188" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
>steps for each</text
><text x="15" font-size="14px" y="50.3281" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
>transaction without a</text
><text x="41" font-size="14px" y="66.4375" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
>final outcome</text
><text x="56" font-size="14px" y="82.5469" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
>recorded.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(420,390)" stroke-opacity="0" stroke="rgb(255,255,255)"
><circle r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75" stroke="none"
/></g
><g transform="translate(420,390)"
><circle fill="none" r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75"
/><circle r="6.2273" clip-path="url(#clipPath4)" cx="10" cy="10" stroke="none"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(420,390)" stroke-opacity="0" stroke="rgb(255,255,255)"
><circle fill="none" r="6.2273" clip-path="url(#clipPath4)" cx="10" cy="10"
/></g
><g font-family="sans-serif" font-size="14px" transform="translate(410,410)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath5)" stroke="none"
>Done</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(410,250)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" stroke="none" clip-path="url(#clipPath6)"
/></g
><g transform="translate(410,250)"
><path fill="none" d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" clip-path="url(#clipPath6)"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(160,240)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)" stroke="none"
/></g
><g transform="translate(160,240)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)"
/><text x="31" font-size="14px" y="18.1094" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Check persistent</text
><text x="51" font-size="14px" y="34.2188" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>storage for</text
><text x="11" font-size="14px" y="50.3281" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>transactions without a</text
><text x="16" font-size="14px" y="66.4375" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>final outcome saved.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(880,700)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)" stroke="none"
/></g
><g transform="translate(880,700)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)"
/><text x="15" font-size="14px" y="18.1094" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Unknown transaction</text
><text x="20" font-size="14px" y="34.2188" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>has been validated.</text
><text x="19" font-size="14px" y="50.3281" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Manual intervention</text
><text x="36" font-size="14px" y="66.4375" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>recommended.</text
></g
><g font-family="sans-serif" font-size="14px" transform="translate(10,190)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath8)" stroke="none"
>Recover from outage</text
></g
><g transform="translate(50,220)"
><circle r="8.75" clip-path="url(#clipPath4)" cx="10.25" cy="10.25" stroke="none"
/><circle fill="none" r="8.75" clip-path="url(#clipPath4)" cx="10.25" cy="10.25"
/></g
><g font-family="sans-serif" font-size="14px" transform="translate(680,900)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath5)" stroke="none"
>Done</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(450,870)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)" stroke="none"
/></g
><g transform="translate(450,870)"
><rect fill="none" x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)"
/><text x="13" font-size="14px" y="18.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Save final outcome to</text
><text x="23" font-size="14px" y="34.2188" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>persistent storage.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(200,860)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)" stroke="none"
/></g
><g transform="translate(200,860)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath7)"
/><text x="20" font-size="14px" y="18.1094" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Transaction has not</text
><text x="16" font-size="14px" y="34.2188" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>been included in any</text
><text x="17" font-size="14px" y="50.3281" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>validated ledger and</text
><text x="42" font-size="14px" y="66.4375" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>never will be.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(690,880)" stroke-opacity="0" stroke="rgb(255,255,255)"
><circle r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75" stroke="none"
/></g
><g transform="translate(690,880)"
><circle fill="none" r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75"
/><path fill="none" d="M2.9191 3.6667 L17.0809 16.3333" clip-path="url(#clipPath4)"
/><path fill="none" d="M2.9191 16.3333 L17.0809 3.6667" clip-path="url(#clipPath4)"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(350,700)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="68.5" y="0.5" clip-path="url(#clipPath10)" stroke="none"
/></g
><g transform="translate(350,700)"
><rect fill="none" x="0.5" width="178.5" height="68.5" y="0.5" clip-path="url(#clipPath10)"
/><text x="32" font-size="14px" y="18.1094" clip-path="url(#clipPath10)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Look up account</text
><text x="17" font-size="14px" y="34.2188" clip-path="url(#clipPath10)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Sequence number in</text
><text x="8" font-size="14px" y="50.3281" clip-path="url(#clipPath10)" font-family="sans-serif" stroke="none" xml:space="preserve"
>latest validated ledger.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(1110,530)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="58.5" y="0.5" clip-path="url(#clipPath11)" stroke="none"
/></g
><g transform="translate(1110,530)"
><rect fill="none" x="0.5" width="178.5" height="58.5" y="0.5" clip-path="url(#clipPath11)"
/><text x="14" font-size="14px" y="18.1094" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Wait for gaps to fill in</text
><text x="29" font-size="14px" y="34.2188" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
>or ask a different</text
><text x="65" font-size="14px" y="50.3281" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
>server.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(630,710)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" stroke="none" clip-path="url(#clipPath6)"
/></g
><g transform="translate(630,710)"
><path fill="none" d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" clip-path="url(#clipPath6)"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(870,530)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" stroke="none" clip-path="url(#clipPath6)"
/></g
><g transform="translate(870,530)"
><path fill="none" d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" clip-path="url(#clipPath6)"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(620,530)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" stroke="none" clip-path="url(#clipPath6)"
/></g
><g transform="translate(620,530)"
><path fill="none" d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" clip-path="url(#clipPath6)"
/></g
><g font-family="sans-serif" font-size="14px" transform="translate(150,760)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath5)" stroke="none"
>Done</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(160,740)" stroke-opacity="0" stroke="rgb(255,255,255)"
><circle r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75" stroke="none"
/></g
><g transform="translate(160,740)"
><circle fill="none" r="9.25" clip-path="url(#clipPath4)" cx="9.75" cy="9.75"
/><circle r="6.2273" clip-path="url(#clipPath4)" cx="10" cy="10" stroke="none"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(160,740)" stroke-opacity="0" stroke="rgb(255,255,255)"
><circle fill="none" r="6.2273" clip-path="url(#clipPath4)" cx="10" cy="10"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(90,660)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)" stroke="none"
/></g
><g transform="translate(90,660)"
><rect fill="none" x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)"
/><text x="13" font-size="14px" y="18.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Save final outcome to</text
><text x="23" font-size="14px" y="34.2188" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>persistent storage.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(370,530)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" stroke="none" clip-path="url(#clipPath6)"
/></g
><g transform="translate(370,530)"
><path fill="none" d="M20.5 1.5 L39 20.5 L20.5 39 L1.5 20.5 Z" clip-path="url(#clipPath6)"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(90,530)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)" stroke="none"
/></g
><g transform="translate(90,530)"
><rect fill="none" x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)"
/><text x="35" font-size="14px" y="18.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Check status of</text
><text x="18" font-size="14px" y="34.2188" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>transaction by hash.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(1080,230)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M50.5 0.5 L90.5 40.5 L50.5 40.5 L90.5 0.5 Z" stroke="none" clip-path="url(#clipPath12)"
/></g
><g transform="translate(1080,230)"
><path fill="none" d="M50.5 0.5 L90.5 40.5 L50.5 40.5 L90.5 0.5 Z" clip-path="url(#clipPath12)"
/><text x="8" font-size="14px" y="63.1094" clip-path="url(#clipPath12)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Wait ~4s for next</text
><text x="12" font-size="14px" y="79.2188" clip-path="url(#clipPath12)" font-family="sans-serif" stroke="none" xml:space="preserve"
>validated ledger</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(1070,80)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)" stroke="none"
/></g
><g transform="translate(1070,80)"
><rect fill="none" x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)"
/><text x="21" font-size="14px" y="18.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Submit transaction.</text
></g
><g font-family="sans-serif" font-size="14px" transform="translate(10,10)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath13)" stroke="none"
>New transaction</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(840,50)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="128.5" y="0.5" clip-path="url(#clipPath14)" stroke="none"
/></g
><g transform="translate(840,50)"
><rect fill="none" x="0.5" width="178.5" height="128.5" y="0.5" clip-path="url(#clipPath14)"
/><text x="21" font-size="14px" y="18.1094" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Save transaction to</text
><text x="12" font-size="14px" y="34.2188" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>persistent storage. Be</text
><text x="24" font-size="14px" y="50.3281" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>sure to include the</text
><text x="31" font-size="14px" y="66.4375" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>hash, Sequence,</text
><text x="14" font-size="14px" y="82.5469" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>LastLedgerSequence,</text
><text x="28" font-size="14px" y="98.6562" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>and the validated</text
><text x="43" font-size="14px" y="114.7656" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
>ledger index.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(610,80)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)" stroke="none"
/></g
><g transform="translate(610,80)"
><rect fill="none" x="0.5" width="178.5" height="48.5" y="0.5" clip-path="url(#clipPath9)"
/><text x="30" font-size="14px" y="18.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Sign transaction.</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(390,50)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="108.5" y="0.5" clip-path="url(#clipPath15)" stroke="none"
/></g
><g transform="translate(390,50)"
><rect fill="none" x="0.5" width="178.5" height="108.5" y="0.5" clip-path="url(#clipPath15)"
/><text x="14" font-size="14px" y="18.1094" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Construct transaction</text
><text x="38" font-size="14px" y="34.2188" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>JSON including</text
><text x="40" font-size="14px" y="50.3281" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Sequence and</text
><text x="14" font-size="14px" y="66.4375" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>LastLedgerSequence.</text
><text x="13" font-size="14px" y="82.5469" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>(LastLedgerSequence</text
><text x="66" font-size="14px" y="98.6562" clip-path="url(#clipPath15)" font-family="sans-serif" stroke="none" xml:space="preserve"
>is &gt; A)</text
></g
><g transform="translate(50,40)"
><circle r="8.75" clip-path="url(#clipPath4)" cx="10.25" cy="10.25" stroke="none"
/><circle fill="none" r="8.75" clip-path="url(#clipPath4)" cx="10.25" cy="10.25"
/></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(160,60)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="88.5" y="0.5" clip-path="url(#clipPath16)" stroke="none"
/></g
><g transform="translate(160,60)"
><rect fill="none" x="0.5" width="178.5" height="88.5" y="0.5" clip-path="url(#clipPath16)"
/><text x="39" font-size="14px" y="18.1094" clip-path="url(#clipPath16)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Find the latest</text
><text x="9" font-size="14px" y="34.2188" clip-path="url(#clipPath16)" font-family="sans-serif" stroke="none" xml:space="preserve"
>validated ledger index.</text
><text x="31" font-size="14px" y="50.3281" clip-path="url(#clipPath16)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Call this value A.</text
></g
><g transform="translate(50,260)"
><path fill="none" d="M39.5 290.5 L10.5 290.5" clip-path="url(#clipPath17)"
/><path fill="none" d="M10.5 290.5 L10.5 190.5" clip-path="url(#clipPath17)"
/><path fill="none" d="M10.5 190.5 L810.5 190.5" clip-path="url(#clipPath17)"
/><path fill="none" d="M810.5 190.5 L810.5 10.5" clip-path="url(#clipPath17)"
/><path fill="none" d="M810.5 10.5 L780.5 10.5" clip-path="url(#clipPath17)"
/><path fill="none" d="M28.7417 284 L40 290.5 L28.7417 297" clip-path="url(#clipPath17)"
/></g
><g transform="translate(850,310)"
><path fill="none" d="M11.5 140.5 L300.5 140.5" clip-path="url(#clipPath18)"
/><path fill="none" d="M300.5 140.5 L300.5 10.5" clip-path="url(#clipPath18)"
/><path fill="none" d="M22.2583 147 L11 140.5 L22.2583 134" clip-path="url(#clipPath18)"
/></g
><g transform="translate(1140,120)"
><path fill="none" d="M10.5 109.5 L10.5 10.5" clip-path="url(#clipPath19)"
/><path fill="none" d="M17 98.7417 L10.5 110 L4 98.7417" clip-path="url(#clipPath19)"
/></g
><g transform="translate(440,250)"
><path fill="none" d="M209.5 20.5 L10.5 20.5" clip-path="url(#clipPath20)"
/><path fill="none" d="M198.7417 14 L210 20.5 L198.7417 27" clip-path="url(#clipPath20)"
/><text x="47.0884" font-size="14px" y="16" clip-path="url(#clipPath20)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[final outcomes of</text
><text x="46.2554" font-size="14px" y="32.1094" clip-path="url(#clipPath20)" font-family="sans-serif" stroke="none" xml:space="preserve"
>some transactions</text
><text x="49.5137" font-size="14px" y="48.2188" clip-path="url(#clipPath20)" font-family="sans-serif" stroke="none" xml:space="preserve"
>are not recorded]</text
></g
><g transform="translate(420,280)"
><path fill="none" d="M10.5 109.5 L10.5 10.5" clip-path="url(#clipPath21)"
/><path fill="none" d="M17 98.7417 L10.5 110 L4 98.7417" clip-path="url(#clipPath21)"
/><text x="14" font-size="14px" y="51.9453" clip-path="url(#clipPath21)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[final outcomes of</text
><text x="14" font-size="14px" y="68.0547" clip-path="url(#clipPath21)" font-family="sans-serif" stroke="none" xml:space="preserve"
>all transactions</text
><text x="14" font-size="14px" y="84.1641" clip-path="url(#clipPath21)" font-family="sans-serif" stroke="none" xml:space="preserve"
>are recorded]</text
></g
><g transform="translate(330,260)"
><path fill="none" d="M79.5 10.5 L10.5 10.5" clip-path="url(#clipPath22)"
/><path fill="none" d="M68.7417 4 L80 10.5 L68.7417 17" clip-path="url(#clipPath22)"
/></g
><g transform="translate(50,230)"
><path fill="none" d="M109.5 40.5 L10.5 40.5" clip-path="url(#clipPath23)"
/><path fill="none" d="M10.5 40.5 L10.5 10.5" clip-path="url(#clipPath23)"
/><path fill="none" d="M98.7417 34 L110 40.5 L98.7417 47" clip-path="url(#clipPath23)"
/></g
><g transform="translate(660,710)"
><path fill="none" d="M219.5 20.5 L10.5 20.5" clip-path="url(#clipPath24)"
/><path fill="none" d="M208.7417 14 L220 20.5 L208.7417 27" clip-path="url(#clipPath24)"
/><text x="40.2563" font-size="14px" y="16" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[Account Sequence is</text
><text x="30.229" font-size="14px" y="32.1094" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>greater than transaction </text
><text x="78.7998" font-size="14px" y="48.2188" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Sequence]</text
></g
><g transform="translate(620,880)"
><path fill="none" d="M69.5 10.5 L10.5 10.5" clip-path="url(#clipPath25)"
/><path fill="none" d="M58.7417 4 L70 10.5 L58.7417 17" clip-path="url(#clipPath25)"
/></g
><g transform="translate(370,880)"
><path fill="none" d="M79.5 10.5 L10.5 10.5" clip-path="url(#clipPath22)"
/><path fill="none" d="M68.7417 4 L80 10.5 L68.7417 17" clip-path="url(#clipPath22)"
/></g
><g transform="translate(240,740)"
><path fill="none" d="M10.5 119.5 L10.5 70.5" clip-path="url(#clipPath26)"
/><path fill="none" d="M10.5 70.5 L410.5 70.5" clip-path="url(#clipPath26)"
/><path fill="none" d="M410.5 70.5 L410.5 10.5" clip-path="url(#clipPath26)"
/><path fill="none" d="M17 108.7417 L10.5 120 L4 108.7417" clip-path="url(#clipPath26)"
/><text x="135.2563" font-size="14px" y="66" clip-path="url(#clipPath26)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[Account Sequence is </text
><text x="139.0786" font-size="14px" y="82.1094" clip-path="url(#clipPath26)" font-family="sans-serif" stroke="none" xml:space="preserve"
>less than or equal to</text
><text x="131.7588" font-size="14px" y="98.2188" clip-path="url(#clipPath26)" font-family="sans-serif" stroke="none" xml:space="preserve"
>transaction Sequence]</text
></g
><g transform="translate(1240,240)"
><path fill="none" d="M11.5 10.5 L70.5 10.5" clip-path="url(#clipPath27)"
/><path fill="none" d="M70.5 10.5 L70.5 310.5" clip-path="url(#clipPath27)"
/><path fill="none" d="M70.5 310.5 L50.5 310.5" clip-path="url(#clipPath27)"
/><path fill="none" d="M22.2583 17 L11 10.5 L22.2583 4" clip-path="url(#clipPath27)"
/></g
><g transform="translate(900,530)"
><path fill="none" d="M209.5 20.5 L10.5 20.5" clip-path="url(#clipPath28)"
/><path fill="none" d="M198.7417 14 L210 20.5 L198.7417 27" clip-path="url(#clipPath28)"
/><text x="53.2847" font-size="14px" y="16" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[server does not </text
><text x="53.0781" font-size="14px" y="32.1094" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>have continuous </text
><text x="62.2373" font-size="14px" y="48.2188" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>ledger history </text
><text x="77.8384" font-size="14px" y="64.3281" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>from A to </text
><text x="37.6694" font-size="14px" y="80.4375" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>LastLedgerSequence </text
><text x="72.3545" font-size="14px" y="96.5469" clip-path="url(#clipPath28)" font-family="sans-serif" stroke="none" xml:space="preserve"
>(inclusive)]</text
></g
><g transform="translate(520,720)"
><path fill="none" d="M109.5 10.5 L10.5 10.5" clip-path="url(#clipPath29)"
/><path fill="none" d="M98.7417 4 L110 10.5 L98.7417 17" clip-path="url(#clipPath29)"
/></g
><g transform="translate(420,560)"
><path fill="none" d="M10.5 139.5 L10.5 90.5" clip-path="url(#clipPath30)"
/><path fill="none" d="M10.5 90.5 L470.5 90.5" clip-path="url(#clipPath30)"
/><path fill="none" d="M470.5 90.5 L470.5 10.5" clip-path="url(#clipPath30)"
/><path fill="none" d="M17 128.7417 L10.5 140 L4 128.7417" clip-path="url(#clipPath30)"
/><text x="109.748" font-size="14px" y="86" clip-path="url(#clipPath30)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[server has continuous ledger history </text
><text x="94.6064" font-size="14px" y="102.1094" clip-path="url(#clipPath30)" font-family="sans-serif" stroke="none" xml:space="preserve"
>from A to LastLedgerSequence, inclusive]</text
></g
><g transform="translate(650,540)"
><path fill="none" d="M219.5 10.5 L10.5 10.5" clip-path="url(#clipPath31)"
/><path fill="none" d="M208.7417 4 L220 10.5 L208.7417 17" clip-path="url(#clipPath31)"
/><text x="27.748" font-size="14px" y="22.8906" clip-path="url(#clipPath31)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[latest validated ledger </text
><text x="8.458" font-size="14px" y="36" clip-path="url(#clipPath31)" font-family="sans-serif" stroke="none" xml:space="preserve"
>is ≥ LastLedgerSequence]</text
></g
><g transform="translate(630,240)"
><path fill="none" d="M551.5 10.5 L620.5 10.5" clip-path="url(#clipPath32)"
/><path fill="none" d="M620.5 10.5 L620.5 270.5" clip-path="url(#clipPath32)"
/><path fill="none" d="M620.5 270.5 L10.5 270.5" clip-path="url(#clipPath32)"
/><path fill="none" d="M10.5 270.5 L10.5 290.5" clip-path="url(#clipPath32)"
/><path fill="none" d="M562.2583 17 L551 10.5 L562.2583 4" clip-path="url(#clipPath32)"
/><text x="34" font-size="14px" y="249.7812" clip-path="url(#clipPath32)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[latest validated ledger </text
><text x="34" font-size="14px" y="262.8906" clip-path="url(#clipPath32)" font-family="sans-serif" stroke="none" xml:space="preserve"
>is &lt; LastLedgerSequence]</text
></g
><g transform="translate(160,700)"
><path fill="none" d="M10.5 39.5 L10.5 10.5" clip-path="url(#clipPath33)"
/><path fill="none" d="M17 28.7417 L10.5 40 L4 28.7417" clip-path="url(#clipPath33)"
/></g
><g transform="translate(160,560)"
><path fill="none" d="M10.5 99.5 L10.5 60.5" clip-path="url(#clipPath34)"
/><path fill="none" d="M10.5 60.5 L230.5 60.5" clip-path="url(#clipPath34)"
/><path fill="none" d="M230.5 60.5 L230.5 10.5" clip-path="url(#clipPath34)"
/><path fill="none" d="M17 88.7417 L10.5 100 L4 88.7417" clip-path="url(#clipPath34)"
/><text x="70.8535" font-size="14px" y="56" clip-path="url(#clipPath34)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[transaction is </text
><text x="46.3052" font-size="14px" y="72.1094" clip-path="url(#clipPath34)" font-family="sans-serif" stroke="none" xml:space="preserve"
>in a validated ledger]</text
></g
><g transform="translate(400,530)"
><path fill="none" d="M219.5 20.5 L10.5 20.5" clip-path="url(#clipPath24)"
/><path fill="none" d="M208.7417 14 L220 20.5 L208.7417 27" clip-path="url(#clipPath24)"
/><text x="35.8115" font-size="14px" y="16" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>[transaction not found,</text
><text x="63.6289" font-size="14px" y="32.1094" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>or is found in a</text
><text x="40.7212" font-size="14px" y="48.2188" clip-path="url(#clipPath24)" font-family="sans-serif" stroke="none" xml:space="preserve"
>non-validated ledger]</text
></g
><g transform="translate(260,540)"
><path fill="none" d="M109.5 10.5 L10.5 10.5" clip-path="url(#clipPath29)"
/><path fill="none" d="M98.7417 4 L110 10.5 L98.7417 17" clip-path="url(#clipPath29)"
/></g
><g transform="translate(1010,90)"
><path fill="none" d="M59.5 10.5 L10.5 10.5" clip-path="url(#clipPath35)"
/><path fill="none" d="M48.7417 4 L60 10.5 L48.7417 17" clip-path="url(#clipPath35)"
/></g
><g transform="translate(780,90)"
><path fill="none" d="M59.5 10.5 L10.5 10.5" clip-path="url(#clipPath35)"
/><path fill="none" d="M48.7417 4 L60 10.5 L48.7417 17" clip-path="url(#clipPath35)"
/></g
><g transform="translate(560,90)"
><path fill="none" d="M49.5 10.5 L10.5 10.5" clip-path="url(#clipPath36)"
/><path fill="none" d="M38.7417 4 L50 10.5 L38.7417 17" clip-path="url(#clipPath36)"
/></g
><g transform="translate(330,90)"
><path fill="none" d="M59.5 10.5 L10.5 10.5" clip-path="url(#clipPath35)"
/><path fill="none" d="M48.7417 4 L60 10.5 L48.7417 17" clip-path="url(#clipPath35)"
/></g
><g transform="translate(50,50)"
><path fill="none" d="M109.5 50.5 L10.5 50.5" clip-path="url(#clipPath37)"
/><path fill="none" d="M10.5 50.5 L10.5 10.5" clip-path="url(#clipPath37)"
/><path fill="none" d="M98.7417 44 L110 50.5 L98.7417 57" clip-path="url(#clipPath37)"
/></g
></g
></svg
>

After

Width:  |  Height:  |  Size: 38 KiB