mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-19 11:15:49 +00:00
- SVG diagrams can adapt to the visual theme of the site through CSS. - Use the include_svg filter to include a diagram that adapts to the theme. - The styles/_diagrams.scss file controls the color mappings for theme-aware digrams. - Theme-aware diagrams are limited to specific colors and diagram styles. Use UMLet or Google Draw and confirm that the diagram is still legible when you build it. - This commit updates existing diagrams in most places to be theme-aware.
690 lines
16 KiB
XML
690 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<diagram program="umlet" version="14.2">
|
|
<zoom_level>10</zoom_level>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>160</x>
|
|
<y>60</y>
|
|
<w>180</w>
|
|
<h>90</h>
|
|
</coordinates>
|
|
<panel_attributes>Find the latest validated ledger index. Call this value A.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>50</x>
|
|
<y>50</y>
|
|
<w>130</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>110.0;50.0;10.0;50.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>50</x>
|
|
<y>40</y>
|
|
<w>20</w>
|
|
<h>20</h>
|
|
</coordinates>
|
|
<panel_attributes>type=initial</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>390</x>
|
|
<y>50</y>
|
|
<w>180</w>
|
|
<h>110</h>
|
|
</coordinates>
|
|
<panel_attributes>Construct transaction JSON including Sequence and LastLedgerSequence.
|
|
(LastLedgerSequence is > A)
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>330</x>
|
|
<y>90</y>
|
|
<w>80</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>560</x>
|
|
<y>90</y>
|
|
<w>70</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>50.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>610</x>
|
|
<y>80</y>
|
|
<w>180</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>Sign transaction.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>840</x>
|
|
<y>50</y>
|
|
<w>180</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>Save transaction to persistent storage. Be sure to include the hash, Sequence, LastLedgerSequence, and the validated ledger index.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>780</x>
|
|
<y>90</y>
|
|
<w>80</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>1010</x>
|
|
<y>90</y>
|
|
<w>80</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Text</id>
|
|
<coordinates>
|
|
<x>10</x>
|
|
<y>10</y>
|
|
<w>160</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>New transaction
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>1070</x>
|
|
<y>80</y>
|
|
<w>180</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>Submit transaction.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLTimer</id>
|
|
<coordinates>
|
|
<x>1080</x>
|
|
<y>230</y>
|
|
<w>140</w>
|
|
<h>90</h>
|
|
</coordinates>
|
|
<panel_attributes>Wait ~4s for next
|
|
validated ledger</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>90</x>
|
|
<y>530</y>
|
|
<w>180</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>Check status of transaction by hash.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>370</x>
|
|
<y>530</y>
|
|
<w>40</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>type=decision</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>260</x>
|
|
<y>540</y>
|
|
<w>130</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>400</x>
|
|
<y>530</y>
|
|
<w>240</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[transaction not found,
|
|
or is found in a
|
|
non-validated ledger]</panel_attributes>
|
|
<additional_attributes>220.0;20.0;10.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>160</x>
|
|
<y>560</y>
|
|
<w>250</w>
|
|
<h>120</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[transaction is
|
|
in a validated ledger]</panel_attributes>
|
|
<additional_attributes>10.0;100.0;10.0;60.0;230.0;60.0;230.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>90</x>
|
|
<y>660</y>
|
|
<w>180</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>Save final outcome to persistent storage.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>160</x>
|
|
<y>740</y>
|
|
<w>20</w>
|
|
<h>20</h>
|
|
</coordinates>
|
|
<panel_attributes>type=final</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>160</x>
|
|
<y>700</y>
|
|
<w>30</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>10.0;40.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Text</id>
|
|
<coordinates>
|
|
<x>150</x>
|
|
<y>760</y>
|
|
<w>60</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>Done
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>620</x>
|
|
<y>530</y>
|
|
<w>40</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>type=decision</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>630</x>
|
|
<y>240</y>
|
|
<w>640</w>
|
|
<h>310</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
r2=[latest validated ledger \nis < LastLedgerSequence]
|
|
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>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>650</x>
|
|
<y>540</y>
|
|
<w>240</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
r1=[latest validated ledger \nis ≥ LastLedgerSequence]
|
|
r1pos=-10,30</panel_attributes>
|
|
<additional_attributes>220.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>870</x>
|
|
<y>530</y>
|
|
<w>40</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>type=decision</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>420</x>
|
|
<y>560</y>
|
|
<w>490</w>
|
|
<h>160</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[server has continuous ledger history
|
|
from A to LastLedgerSequence, inclusive]
|
|
</panel_attributes>
|
|
<additional_attributes>10.0;140.0;10.0;90.0;470.0;90.0;470.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>630</x>
|
|
<y>710</y>
|
|
<w>40</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>type=decision</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>520</x>
|
|
<y>720</y>
|
|
<w>130</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>110.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>900</x>
|
|
<y>530</y>
|
|
<w>230</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[server does not
|
|
have continuous
|
|
ledger history
|
|
from A to
|
|
LastLedgerSequence
|
|
(inclusive)]
|
|
</panel_attributes>
|
|
<additional_attributes>210.0;20.0;10.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>1110</x>
|
|
<y>530</y>
|
|
<w>180</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>Wait for gaps to fill in or ask a different server.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>1240</x>
|
|
<y>240</y>
|
|
<w>90</w>
|
|
<h>330</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>10.0;10.0;70.0;10.0;70.0;310.0;50.0;310.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>350</x>
|
|
<y>700</y>
|
|
<w>180</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>Look up account Sequence number in latest validated ledger.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>240</x>
|
|
<y>740</y>
|
|
<w>430</w>
|
|
<h>140</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[Account Sequence is
|
|
less than or equal to
|
|
transaction Sequence]</panel_attributes>
|
|
<additional_attributes>10.0;120.0;10.0;70.0;410.0;70.0;410.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>690</x>
|
|
<y>880</y>
|
|
<w>20</w>
|
|
<h>20</h>
|
|
</coordinates>
|
|
<panel_attributes>type=flow_final</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>200</x>
|
|
<y>860</y>
|
|
<w>180</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes>Transaction has not been included in any validated ledger and never will be.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>450</x>
|
|
<y>870</y>
|
|
<w>180</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>Save final outcome to persistent storage.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>370</x>
|
|
<y>880</y>
|
|
<w>100</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>80.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>620</x>
|
|
<y>880</y>
|
|
<w>90</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>70.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Text</id>
|
|
<coordinates>
|
|
<x>680</x>
|
|
<y>900</y>
|
|
<w>60</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>Done
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>50</x>
|
|
<y>220</y>
|
|
<w>20</w>
|
|
<h>20</h>
|
|
</coordinates>
|
|
<panel_attributes>type=initial</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Text</id>
|
|
<coordinates>
|
|
<x>10</x>
|
|
<y>190</y>
|
|
<w>190</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>Recover from outage
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>660</x>
|
|
<y>710</y>
|
|
<w>240</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[Account Sequence is
|
|
greater than transaction
|
|
Sequence]</panel_attributes>
|
|
<additional_attributes>220.0;20.0;10.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>880</x>
|
|
<y>700</y>
|
|
<w>180</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes>Unknown transaction has been validated. Manual intervention recommended.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>160</x>
|
|
<y>240</y>
|
|
<w>180</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes>Check persistent storage for transactions without a final outcome saved.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>50</x>
|
|
<y>230</y>
|
|
<w>130</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>110.0;40.0;10.0;40.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>330</x>
|
|
<y>260</y>
|
|
<w>100</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>80.0;10.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>410</x>
|
|
<y>250</y>
|
|
<w>40</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>type=decision</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>420</x>
|
|
<y>280</y>
|
|
<w>150</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[final outcomes of
|
|
all transactions
|
|
are recorded]</panel_attributes>
|
|
<additional_attributes>10.0;110.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Text</id>
|
|
<coordinates>
|
|
<x>410</x>
|
|
<y>410</y>
|
|
<w>60</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>Done
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLSpecialState</id>
|
|
<coordinates>
|
|
<x>420</x>
|
|
<y>390</y>
|
|
<w>20</w>
|
|
<h>20</h>
|
|
</coordinates>
|
|
<panel_attributes>type=final</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>440</x>
|
|
<y>250</y>
|
|
<w>230</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
[final outcomes of
|
|
some transactions
|
|
are not recorded]</panel_attributes>
|
|
<additional_attributes>210.0;20.0;10.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>1140</x>
|
|
<y>120</y>
|
|
<w>30</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_attributes>
|
|
<additional_attributes>10.0;110.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>650</x>
|
|
<y>220</y>
|
|
<w>180</w>
|
|
<h>100</h>
|
|
</coordinates>
|
|
<panel_attributes>Repeat the following steps for each transaction without a final outcome recorded.
|
|
style=wordwrap</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>850</x>
|
|
<y>310</y>
|
|
<w>320</w>
|
|
<h>160</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-</panel_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=yellow
|
|
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=<-</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>
|
|
</diagram>
|