Clarify address length & prefix

The type prefix is not part of the 20-byte AccountID, but it is used
when calculating both the checksum and the base58 address itself, so I
have updated the diagram accordingly.

Fixes #1405.
This commit is contained in:
mDuo13
2023-09-26 12:08:15 -07:00
parent 448dd5cfc6
commit 8754393215
2 changed files with 137 additions and 118 deletions

View File

@@ -4,10 +4,10 @@
<element>
<id>UMLObject</id>
<coordinates>
<x>40</x>
<y>70</y>
<x>100</x>
<y>340</y>
<w>220</w>
<h>70</h>
<h>80</h>
</coordinates>
<panel_attributes>Master Public Key
--
@@ -18,8 +18,8 @@
<element>
<id>UMLObject</id>
<coordinates>
<x>340</x>
<y>160</y>
<x>430</x>
<y>340</y>
<w>180</w>
<h>80</h>
</coordinates>
@@ -31,33 +31,34 @@
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>70</y>
<w>220</w>
<x>310</x>
<y>350</y>
<w>140</w>
<h>160</h>
</coordinates>
<panel_attributes>lt=&lt;-
RIPEMD160 of SHA-256
RIPEMD160 of
SHA-256
</panel_attributes>
<additional_attributes>90.0;110.0;40.0;110.0;40.0;40.0;10.0;40.0</additional_attributes>
<additional_attributes>120.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>UMLObject</id>
<coordinates>
<x>670</x>
<y>160</y>
<x>960</x>
<y>320</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>Address
--
Type Prefix (1 byte)
AccountID (20 bytes)
Checksum (4 bytes)</panel_attributes>
<additional_attributes/>
@@ -65,9 +66,9 @@ Checksum (4 bytes)</panel_attributes>
<element>
<id>UMLObject</id>
<coordinates>
<x>40</x>
<y>160</y>
<w>190</w>
<x>430</x>
<y>210</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>Type Prefix
@@ -76,22 +77,11 @@ Checksum (4 bytes)</panel_attributes>
("r" in XRPL base58)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>220</x>
<y>200</y>
<w>140</w>
<h>30</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>120.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLObject</id>
<coordinates>
<x>380</x>
<y>290</y>
<x>670</x>
<y>350</y>
<w>100</w>
<h>70</h>
</coordinates>
@@ -103,32 +93,32 @@ Checksum (4 bytes)</panel_attributes>
<element>
<id>Relation</id>
<coordinates>
<x>470</x>
<y>200</y>
<x>760</x>
<y>360</y>
<w>120</w>
<h>140</h>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>100.0;10.0;80.0;10.0;80.0;120.0;10.0;120.0</additional_attributes>
<additional_attributes>100.0;10.0;80.0;10.0;80.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>510</x>
<y>180</y>
<w>80</w>
<h>30</h>
<x>630</x>
<y>290</y>
<w>250</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
<additional_attributes>230.0;60.0;210.0;60.0;210.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>570</x>
<y>180</y>
<x>860</x>
<y>330</y>
<w>100</w>
<h>40</h>
<h>60</h>
</coordinates>
<panel_attributes>base58
type=sender</panel_attributes>
@@ -137,20 +127,20 @@ type=sender</panel_attributes>
<element>
<id>Relation</id>
<coordinates>
<x>400</x>
<y>230</y>
<w>130</w>
<x>630</x>
<y>290</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;-
SHA-256 twice</panel_attributes>
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
<additional_attributes>60.0;60.0;60.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Text</id>
<coordinates>
<x>40</x>
<y>30</y>
<x>100</x>
<y>210</y>
<w>280</w>
<h>30</h>
</coordinates>
@@ -158,4 +148,26 @@ SHA-256 twice</panel_attributes>
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>610</x>
<y>200</y>
<w>50</w>
<h>240</h>
</coordinates>
<panel_attributes>lt=..</panel_attributes>
<additional_attributes>10.0;10.0;30.0;10.0;30.0;220.0;10.0;220.0</additional_attributes>
</element>
<element>
<id>Text</id>
<coordinates>
<x>510</x>
<y>300</y>
<w>30</w>
<h>30</h>
</coordinates>
<panel_attributes>+</panel_attributes>
<additional_attributes/>
</element>
</diagram>