From 7bd10aaaa16e14cb3614bc5abdbb12096a0a5998 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Thu, 6 Dec 2018 17:11:43 -0800 Subject: [PATCH] Serialization: updates per reviews --- .../tx-serialization/serialize.py | 12 +- .../tx-serialization/xrpl_num.py | 10 +- content/_img-sources/serialization-amount.uxf | 103 +++++++++----- content/_img-sources/serialization-array.uxf | 69 +++++---- content/_img-sources/serialization-object.uxf | 134 ++++++++++-------- .../_img-sources/serialization-pathset.uxf | 74 ++++++---- .../api-conventions/serialization.md | 108 ++++++++------ img/serialization-amount.png | Bin 34377 -> 34352 bytes img/serialization-array.png | Bin 9203 -> 9703 bytes img/serialization-object.png | Bin 11960 -> 12384 bytes img/serialization-pathset.png | Bin 16722 -> 16556 bytes 11 files changed, 310 insertions(+), 200 deletions(-) diff --git a/content/_code-samples/tx-serialization/serialize.py b/content/_code-samples/tx-serialization/serialize.py index 837be3cae2..695c1308f8 100755 --- a/content/_code-samples/tx-serialization/serialize.py +++ b/content/_code-samples/tx-serialization/serialize.py @@ -87,7 +87,7 @@ def field_id(field_name): def vl_encode(vl_contents): """ - Helper function for variable-length fields including Blob types + Helper function for length-prefixed fields including Blob types and some AccountID types. Encodes arbitrary binary data with a length prefix. The length of the prefix @@ -121,10 +121,10 @@ def vl_encode(vl_contents): def accountid_to_bytes(address): """ - Serialize an AccountID field type. These are variable-length encoded. + Serialize an AccountID field type. These are length-prefixed. - Some fields contain nested non-VL-encoded AccountIDs directly; those call - decode_address() instead of this function. + Some fields contain nested non-length-prefixed AccountIDs directly; those + call decode_address() instead of this function. """ return vl_encode(decode_address(address)) @@ -182,9 +182,7 @@ def array_to_bytes(array): def blob_to_bytes(field_val): """ - Serializes a string of hex as binary data with a variable-length encoded - length prefix. (The prefix is 1-3 bytes depending on the length of the - contents.) + Serializes a string of hex as binary data with a length prefix. """ vl_contents = bytes.fromhex(field_val) return vl_encode(vl_contents) diff --git a/content/_code-samples/tx-serialization/xrpl_num.py b/content/_code-samples/tx-serialization/xrpl_num.py index ad82690496..6d0c25c79d 100644 --- a/content/_code-samples/tx-serialization/xrpl_num.py +++ b/content/_code-samples/tx-serialization/xrpl_num.py @@ -54,12 +54,10 @@ class IssuedAmount: def canonical_zero_serial(self): """ - Returns canonical format for zero: + Returns canonical format for zero (a special case): - "Not XRP" bit = 1 - - "Sign bit" = 1 (for positive !!) - - exponent ??? + - Everything else is zeroes + - Arguably this means it's canonically written as "negative zero" + because the encoding usually uses 1 for positive. """ - # Mantissa is all zeroes. Must be positive zero. - #bitval = 0b1100000001000000000000000000000000000000000000000000000000000000 - #return bitval.to_bytes(8, byteorder="big", signed=False) return (0x8000000000000000).to_bytes(8, byteorder="big", signed=False) diff --git a/content/_img-sources/serialization-amount.uxf b/content/_img-sources/serialization-amount.uxf index a8818ce839..f30fd7c59a 100644 --- a/content/_img-sources/serialization-amount.uxf +++ b/content/_img-sources/serialization-amount.uxf @@ -1,17 +1,6 @@ 10 - - UMLPackage - - 30 - 240 - 850 - 70 - - Issued Currency Amount Format - - UMLClass @@ -192,17 +181,6 @@ style=wordwrap ISO code (24 bits) - - UMLPackage - - 30 - 480 - 620 - 70 - - Issued Currency Code Format - - Relation @@ -231,10 +209,10 @@ style=wordwrap 20 290 460 - 210 + 230 lt=.. - 10.0;190.0;440.0;10.0 + 10.0;210.0;440.0;10.0 Relation @@ -247,17 +225,6 @@ style=wordwrap lt=.. 10.0;210.0;20.0;10.0 - - UMLPackage - - 30 - 30 - 620 - 70 - - XRP Amount Format - - UMLClass @@ -338,4 +305,70 @@ style=wordwrap integer drops (62 bits) + + UMLClass + + 30 + 50 + 620 + 50 + + + + + + Text + + 30 + 20 + 160 + 30 + + XRP Amount Format + + + + Text + + 30 + 230 + 240 + 30 + + Issued Currency Amount Format + + + + UMLClass + + 30 + 260 + 850 + 50 + + + + + + Text + + 90 + 470 + 240 + 30 + + Issued Currency Code Format + + + + UMLClass + + 30 + 500 + 620 + 50 + + + + diff --git a/content/_img-sources/serialization-array.uxf b/content/_img-sources/serialization-array.uxf index f5b443c100..8b389748c8 100644 --- a/content/_img-sources/serialization-array.uxf +++ b/content/_img-sources/serialization-array.uxf @@ -4,8 +4,8 @@ UMLClass - 140 - 120 + 90 + 80 40 30 @@ -15,8 +15,8 @@ Relation - 150 - 140 + 100 + 100 30 80 @@ -26,8 +26,8 @@ Text - 80 - 200 + 30 + 160 110 50 @@ -38,8 +38,8 @@ Field ID UMLClass - 190 - 120 + 140 + 80 50 30 @@ -49,8 +49,8 @@ Field ID UMLClass - 670 - 120 + 620 + 80 50 30 @@ -60,8 +60,8 @@ Field ID Relation - 680 - 140 + 630 + 100 30 80 @@ -71,8 +71,8 @@ Field ID Text - 640 - 200 + 590 + 160 100 60 @@ -84,8 +84,8 @@ no contents UMLClass - 240 - 120 + 190 + 80 180 30 @@ -95,8 +95,8 @@ no contents Relation - 210 - 140 + 160 + 100 100 80 @@ -106,8 +106,8 @@ no contents Text - 300 - 180 + 250 + 140 110 50 @@ -118,8 +118,8 @@ Field ID UMLClass - 430 - 120 + 380 + 80 50 30 @@ -129,8 +129,8 @@ Field ID UMLClass - 480 - 120 + 430 + 80 180 30 @@ -138,14 +138,25 @@ Field ID - UMLPackage + UMLClass - 130 - 90 + 80 + 70 600 - 70 + 50 - SignerEntries field + + + + + Text + + 80 + 40 + 210 + 30 + + SignerEntries (array) field diff --git a/content/_img-sources/serialization-object.uxf b/content/_img-sources/serialization-object.uxf index 37ee31ac98..50bc2f0950 100644 --- a/content/_img-sources/serialization-object.uxf +++ b/content/_img-sources/serialization-object.uxf @@ -4,8 +4,8 @@ UMLClass - 90 - 170 + 50 + 80 40 30 @@ -15,8 +15,8 @@ Relation - 100 - 190 + 60 + 100 30 60 @@ -26,8 +26,8 @@ Text - 70 - 230 + 30 + 140 80 50 @@ -38,8 +38,8 @@ Field ID UMLClass - 140 - 170 + 100 + 80 50 30 @@ -49,8 +49,8 @@ Field ID UMLClass - 620 - 170 + 580 + 80 50 30 @@ -60,8 +60,8 @@ Field ID Relation - 630 - 190 + 590 + 100 80 60 @@ -71,8 +71,8 @@ Field ID Text - 640 - 230 + 600 + 140 100 60 @@ -84,8 +84,8 @@ no contents UMLClass - 220 - 170 + 180 + 80 150 30 @@ -95,19 +95,19 @@ no contents Relation - 160 - 190 + 120 + 100 50 - 60 + 80 lt=<<- - 10.0;10.0;10.0;40.0;30.0;40.0 + 10.0;10.0;10.0;60.0;30.0;60.0 UMLClass - 380 - 170 + 340 + 80 50 30 @@ -117,8 +117,8 @@ no contents UMLClass - 190 - 170 + 150 + 80 30 30 @@ -128,8 +128,8 @@ no contents Text - 190 - 210 + 150 + 140 110 50 @@ -140,8 +140,8 @@ Field ID UMLClass - 460 - 170 + 420 + 80 150 30 @@ -151,8 +151,8 @@ Field ID UMLClass - 430 - 170 + 390 + 80 30 30 @@ -162,8 +162,8 @@ Field ID Relation - 130 - 210 + 90 + 120 500 90 @@ -173,8 +173,8 @@ Field ID Text - 300 - 280 + 260 + 190 170 50 @@ -185,8 +185,8 @@ style=wordwrap Text - 290 - 230 + 370 + 30 150 30 @@ -197,29 +197,18 @@ style=wordwrap Relation 350 - 190 - 70 - 60 - - lt=<<- - 50.0;10.0;50.0;30.0;10.0;30.0;10.0;40.0 - - - UMLPackage - - 80 - 140 - 600 + 30 + 40 70 - Memos field - + lt=<<- + 10.0;50.0;10.0;10.0;20.0;10.0 Relation - 430 - 190 + 390 + 100 50 50 @@ -229,12 +218,45 @@ style=wordwrap Text - 460 - 210 + 420 + 120 140 40 - Length prefix + Length prefixes + + UMLClass + + 40 + 70 + 600 + 50 + + + + + + Text + + 40 + 40 + 160 + 30 + + Memo (object) field + + + + Relation + + 150 + 100 + 290 + 50 + + lt=<<- + 10.0;10.0;10.0;30.0;270.0;30.0 + diff --git a/content/_img-sources/serialization-pathset.uxf b/content/_img-sources/serialization-pathset.uxf index 84eb14431a..b38268357a 100644 --- a/content/_img-sources/serialization-pathset.uxf +++ b/content/_img-sources/serialization-pathset.uxf @@ -1,17 +1,6 @@ 10 - - UMLPackage - - 40 - 40 - 650 - 70 - - PathSet - - UMLClass @@ -122,27 +111,16 @@ 0x00 - - UMLPackage - - 40 - 180 - 650 - 70 - - Path - - Relation 30 90 40 - 110 + 130 lt=.. - 10.0;90.0;20.0;10.0 + 10.0;110.0;20.0;10.0 Relation @@ -292,11 +270,11 @@ 410 20 - 60 + 70 70 lt=<<- - 10.0;50.0;10.0;10.0;40.0;10.0 + 10.0;50.0;10.0;10.0;50.0;10.0 Text @@ -320,4 +298,48 @@ lt=<<- 10.0;40.0;40.0;40.0;40.0;10.0 + + UMLClass + + 40 + 60 + 650 + 50 + + + + + + Text + + 40 + 30 + 100 + 30 + + PathSet + + + + Text + + 50 + 170 + 100 + 30 + + Path + + + + UMLClass + + 40 + 200 + 650 + 50 + + + + diff --git a/content/references/rippled-api/api-conventions/serialization.md b/content/references/rippled-api/api-conventions/serialization.md index 3ba2a4b057..9ff6a05ddf 100644 --- a/content/references/rippled-api/api-conventions/serialization.md +++ b/content/references/rippled-api/api-conventions/serialization.md @@ -10,14 +10,33 @@ The process of serializing a transaction from JSON or any other representation i **Note:** The `SigningPubKey` must also be provided at this step. When signing, you can derive this key from the secret key that is provided for signing. 2. Convert each field's data into its "internal" binary format. + 3. Sort the fields in canonical order. + 4. Prefix each field with a Field ID. + 5. Concatenate the fields (including prefixes) in their sorted order. -The result is a single binary blob that can be signed using well-known signature algorithms such as ECDSA (with the secp256k1 elliptic curve) and Ed25519. After signing, you must attach the signature to the transaction, calculate the transaction's identifying hash, then re-serialize the transaction with the additional fields. +The result is a single binary blob that can be signed using well-known signature algorithms such as ECDSA (with the secp256k1 elliptic curve) and Ed25519. After signing, you must re-serialize the transaction with the `TxnSignature` field included. **Note:** The XRP Ledger uses the same serialization format to represent other types of data, such as [ledger objects](ledger-object-types.html) and processed transactions. However, only certain fields are appropriate for including in a transaction that gets signed. (For example, the `TxnSignature` field, containing the signature itself, should not be present in the binary blob that you sign.) Thus, some fields are designated as "Signing" fields, which are included in objects when those objects are signed, and "non-signing" fields, which are not. +### Examples + +Both signed and unsigned transactions can be represented in both JSON and binary formats. The following samples show the same signed transaction in its JSON and binary formats: + +**JSON:** + +```json +{% include '_code-samples/tx-serialization/test-cases/tx1.json' %} +``` + +**Binary (represented as hexadecimal):** + +```text +{% include '_code-samples/tx-serialization/test-cases/tx1-binary.txt' %} +``` + ## Sample Code The serialization processes described here are implemented in multiple places and programming languages: @@ -49,7 +68,7 @@ The following table defines the top-level fields from the definitions file: | `TYPES` | Map of data types to their "type code" for constructing field IDs and sorting fields in canonical order. Codes below 1 should not appear in actual data; codes above 10000 represent special "high-level" object types such as "Transaction" that cannot be serialized inside other objects. | | `LEDGER_ENTRY_TYPES` | Map of [ledger objects](ledger-object-types.html) to their data type. These appear in ledger state data, and in the "affected nodes" section of processed transactions' [metadata](transaction-metadata.html). | | `FIELDS` | A sorted array of tuples representing all fields that may appear in transactions, ledger objects, or other data. The first member of each tuple is the string name of the field and the second member is an object with that field's properties. (See the "Field properties" table below for definitions of those fields.) | -| `TRANSACTION_RESULTS` | Map of [transaction result codes](transaction-results.html) to their numeric values. Result types not included in ledgers have negative values;`tesSUCCESS` has numeric value 0; [`tec`-class codes](tec-codes.html) represent failures that are included in ledgers. | +| `TRANSACTION_RESULTS` | Map of [transaction result codes](transaction-results.html) to their numeric values. Result types not included in ledgers have negative values; `tesSUCCESS` has numeric value 0; [`tec`-class codes](tec-codes.html) represent failures that are included in ledgers. | | `TRANSACTION_TYPES` | Map of all [transaction types](transaction-types.html) to their numeric values. | For purposes of serializing transactions for signing and submitting, the `FIELDS`, `TYPES`, and `TRANSACTION_TYPES` fields are necessary. @@ -59,7 +78,7 @@ The field definition objects in the `FIELDS` array have the following fields: | Field | Type | Contents | |:-----------------|:--------|:------------------------------------------------| | `nth` | Number | The [field code](#field-codes) of this field, for use in constructing its [Field ID](#field-ids) and ordering it with other fields of the same data type. | -| `isVLEncoded` | Boolean | If `true`, this field is [variable-length encoded](#variable-length-encoding). | +| `isVLEncoded` | Boolean | If `true`, this field is [length-prefixed](#length-prefixing). | | `isSerialized` | Boolean | If `true`, this field should be encoded into serialized binary data. When this field is `false`, the field is typically reconstructed on demand rather than stored. | | `isSigningField` | Boolean | If `true` this field should be serialized when preparing a transaction for signing. If `false`, this field should be omitted from the data to be signed. (It may not be part of transactions at all.) | | `type` | String | The internal data type of this field. This maps to a key in the `TYPES` map, which gives the [type code](#type-codes) for this field. | @@ -68,15 +87,14 @@ The field definition objects in the `FIELDS` array have the following fields: ## Canonical Field Order -All fields in a transaction are sorted in a specific order based on the field's type first, then the field itself second. (Think of it as sorting by family name, then given name, where the family name is the field's type and the given name is the field itself.) +All fields in a transaction are sorted in a specific order based first on the field's type, then on the field itself (a "field code"). (Think of it as sorting by family name, then given name, where the family name is the field's type and the given name is the field itself.) ### Field IDs [[Source - Encoding]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L117-L148 "Source") [[Source - Decoding]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L484-L509 "Source") - -When you combine the type code and sort code, you get the field's identifier, which is prefixed before the field in the final serialized blob. The size of the Field ID is one to three bytes depending on the type code and field codes it combines. See the following table: +When you combine the type code and field code, you get the field's unique identifier, which is prefixed before the field in the final serialized blob. The size of the Field ID is one to three bytes depending on the type code and field codes it combines. See the following table: | | Type Code < 16 | Type Code >= 16 | |:-----------------|:------------------------------------------------------------------------------|:--| @@ -90,29 +108,31 @@ When decoding, you can tell how many bytes the field ID is by which bits **of th | **Low 4 bits are nonzero** | 1 byte: high 4 bits define type; low 4 bits define field. | 2 bytes: low 4 bits of the first byte define field; next byte defines type | | **Low 4 bits are zero** | 2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field | 3 bytes: first byte is 0x00, second byte defines type; third byte defines field | +**Caution:** Even though the Field ID consists of the two elements that are used to sort fields, you should not sort by the serialized Field ID itself, because the byte structure of the Field ID changes the sort order. + ### Type Codes -Each field type has an arbitrary sort code, with lower codes sorting first. These codes are defined in [`SField.h`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/SField.h#L57-L74). +Each field type has an arbitrary type code, with lower codes sorting first. These codes are defined in [`SField.h`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/SField.h#L57-L74). For example, [UInt32 has sort order 2](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L59), so all UInt32 fields come before all [Amount fields with order 6](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L63). ### Field Codes -Each field also has a field code, which is used to sort fields that have the same type as one another, with lower codes sorting first. These fields are defined in [`SField.cpp`](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L72-L266). +Each field has a field code, which is used to sort fields that have the same type as one another, with lower codes sorting first. These fields are defined in [`SField.cpp`](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L72-L266). For example, the `Account` field of a [Payment transaction][] [has sort code 1](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L219), so it comes before the `Destination` field which [has sort code 3](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L221). -The field code is combined with the type code to make a field's [Field ID](#field-ids). +Field codes are reused for fields of different field types, but fields of the same type never have the same field code. When you combine the type code with the field code, you get the field's unique [Field ID](#field-ids). -### Variable-Length Encoding +### Length Prefixing -Some types of fields are Variable-Length encoding, which means they are not always the same byte length and are prefixed with a length indicator to indicate how much data they contain. `Blob` fields (containing arbitrary binary data) are one such variable-length encoded type. For a list of which types are variable-length encoded, see the [Type List](#type-list) table. +Some types of variable-length fields are prefixed with a length indicator. `Blob` fields (containing arbitrary binary data) are one such type. For a list of which types are length-prefixed, see the [Type List](#type-list) table. -**Note:** Some types that are not variable-length encoded nonetheless vary in length. These types have different ways of indicating how long they are. +**Note:** Some types of fields that vary in length are not length-prefixed. Those types have other ways of indicating the end of their contents. -Variable-length fields are encoded with one to three bytes indicating the length of the field immediately after the type prefix and before the contents. +The length prefix consists of one to three bytes indicating the length of the field immediately after the type prefix and before the contents. -- If the field contains 0 to 192 bytes of data, the first byte defines the length of the VariableLength data, then that many bytes of data follow immediately after the length byte. +- If the field contains 0 to 192 bytes of data, the first byte defines the length of the contents, then that many bytes of data follow immediately after the length byte. - If the field contains 193 to 12480 bytes of data, the first two bytes indicate the length of the field with the following formula: @@ -122,7 +142,7 @@ Variable-length fields are encoded with one to three bytes indicating the length 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 -- A variable-length field cannot contain more than 918744 bytes of data. +- A length-prefixed field cannot contain more than 918744 bytes of data. When decoding, you can tell from the value of the first length byte whether there are 0, 1, or 2 additional length bytes: @@ -135,39 +155,41 @@ When decoding, you can tell from the value of the first length byte whether ther Transaction instructions may contain fields of any of the following types: -| Type Name | Type Code | Variable-Length? | Description | -|:--------------|:----------|:-----------------|:------------------------------| -| [AccountID][] | 8 | Yes | The unique identifier for an [account](accounts.html). This field is variable-length encoded, but always exactly 20 bytes. | -| [Amount][] | 6 | No | An amount of XRP or issued currency. The length of the field is 64 bits for XRP or 384 bits (64+160+160) for issued currencies. | -| [Blob][] | 7 | Yes | Arbitrary binary data. One important such field is `TxnSignature`, the signature that authorizes a transaction. | -| [Hash128][] | 4 | No | A 128-bit arbitrary binary value. The only such field is `EmailHash`, which is intended to store the MD-5 hash of an account owner's email for purposes of fetching a [Gravatar](https://www.gravatar.com/). | -| [Hash160][] | 17 | No | A 160-bit arbitrary binary value. This may define a currency code or issuer. | -| [Hash256][] | 5 | No | A 256-bit arbitrary binary value. This usually represents the "SHA-512Half" hash of a transaction, ledger version, or ledger data object. | -| [PathSet][] | 18 | No | A set of possible [payment paths](paths.html) for a [cross-currency payment](cross-currency-payments.html). | -| [STArray][] | 15 | No | An array containing a variable number of members, which can be different types depending on the field. Two cases of this include [memos](transaction-common-fields.html#memos-field) and lists of signers used in [multi-signing](multi-signing.html). | -| [STObject][] | 14 | No | An object containing one or more nested fields. | -| [UInt8][] | 16 | No | An 8-bit unsigned integer. | -| [UInt16][] | 1 | No | A 16-bit unsigned integer. The `TransactionType` is a special case of this type, with specific strings mapping to integer values. | -| [UInt32][] | 2 | No | A 32-bit unsigned integer. The `Flags` and `Sequence` fields on all transactions are examples of this type. | +| Type Name | Type Code | Bit Length | [Length-prefixed]? | Description | +|:--------------|:----------|:-----------|:-------------------|----------------| +| [AccountID][] | 8 | 160 | Yes | The unique identifier for an [account](accounts.html). | +| [Amount][] | 6 | 64 or 384 | No | An amount of XRP or issued currency. The length of the field is 64 bits for XRP or 384 bits (64+160+160) for issued currencies. | +| [Blob][] | 7 | Variable | Yes | Arbitrary binary data. One important such field is `TxnSignature`, the signature that authorizes a transaction. | +| [Hash128][] | 4 | 128 | No | A 128-bit arbitrary binary value. The only such field is `EmailHash`, which is intended to store the MD-5 hash of an account owner's email for purposes of fetching a [Gravatar](https://www.gravatar.com/). | +| [Hash160][] | 17 | 160 | No | A 160-bit arbitrary binary value. This may define a currency code or issuer. | +| [Hash256][] | 5 | 256 | No | A 256-bit arbitrary binary value. This usually represents the "SHA-512Half" hash of a transaction, ledger version, or ledger data object. | +| [PathSet][] | 18 | Variable | No | A set of possible [payment paths](paths.html) for a [cross-currency payment](cross-currency-payments.html). | +| [STArray][] | 15 | Variable | No | An array containing a variable number of members, which can be different types depending on the field. Two cases of this include [memos](transaction-common-fields.html#memos-field) and lists of signers used in [multi-signing](multi-signing.html). | +| [STObject][] | 14 | Variable | No | An object containing one or more nested fields. | +| [UInt8][] | 16 | 8 | No | An 8-bit unsigned integer. | +| [UInt16][] | 1 | 16 | No | A 16-bit unsigned integer. The `TransactionType` is a special case of this type, with specific strings mapping to integer values. | +| [UInt32][] | 2 | 32 | No | A 32-bit unsigned integer. The `Flags` and `Sequence` fields on all transactions are examples of this type. | + +[Length-prefixed]: #length-prefixing In addition to all of the above field types, the following types may appear in other contexts, such as [ledger objects](ledger-object-types.html) and [transaction metadata](transaction-metadata.html): -| Type Name | Type Code | Variable-Length? | Description | -|:------------|:----------|:-----------------|:--------------------------------| -| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transaction-formats.html). | -| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger object](ledger-object-types.html). | -| Validation | 10003 | No | A "high-level" type used in peer-to-peer communications to represent a validation vote in the [consensus process](consensus.html). | -| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transaction-metadata.html). | -| [UInt64][] | 3 | No | A 64-bit unsigned integer. This type does not appear in transaction instructions, but several ledger objects use fields of this type. | -| Vector256 | 19 | Yes | This type does not appear in transaction instructions, but the [Amendments ledger object](amendments-object.html)'s `Amendments` field uses this to represent which [amendments](amendments.html) are currently enabled. | +| Type Name | Type Code | [Length-prefixed]? | Description | +|:------------|:----------|:-------------------|:------------------------------| +| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transaction-formats.html). | +| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger object](ledger-object-types.html). | +| Validation | 10003 | No | A "high-level" type used in peer-to-peer communications to represent a validation vote in the [consensus process](consensus.html). | +| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transaction-metadata.html). | +| [UInt64][] | 3 | No | A 64-bit unsigned integer. This type does not appear in transaction instructions, but several ledger objects use fields of this type. | +| Vector256 | 19 | Yes | This type does not appear in transaction instructions, but the [Amendments ledger object](amendments-object.html)'s `Amendments` field uses this to represent which [amendments](amendments.html) are currently enabled. | ### AccountID Fields [AccountID]: #accountid-fields -Fields of this type contain the 160-bit identifier for an XRP Ledger [account](accounts.html). In JSON, these fields are represented as base58 XRP Ledger "addresses", with additional checksum data so that typos are unlikely to result in valid addresses. (This encoding, sometimes called "Base58Check", prevents accidentally sending money to the wrong address.) The binary format for these fields does not contain any checksum data. (However, since the binary format is used mostly for signed transactions, a typo or other error in transcribing a signed transaction would invalidate the signature, preventing it from sending money.) +Fields of this type contain the 160-bit identifier for an XRP Ledger [account](accounts.html). In JSON, these fields are represented as base58 XRP Ledger "addresses", with additional checksum data so that typos are unlikely to result in valid addresses. (This encoding, sometimes called "Base58Check", prevents accidentally sending money to the wrong address.) The binary format for these fields does not contain any checksum data nor does it include the `0x00` "type prefix" used in [address base58 encoding](accounts.html#address-encoding). (However, since the binary format is used mostly for signed transactions, a typo or other error in transcribing a signed transaction would invalidate the signature, preventing it from sending money.) -AccountIDs that appear as stand-alone fields (such as `Account` and `Destination`) are [variable-length encoded](#variable-length-encoding) despite being a fixed 160 bits in length. As a result, the length indicator for these fields is always the byte `0x14`. AccountIDs that appear as children of special fields ([Amount `issuer`][Amount] and [PathSet `account`][PathSet]) are _not_ variable-length encoded. +AccountIDs that appear as stand-alone fields (such as `Account` and `Destination`) are [length-prefixed](#length-prefixing) despite being a fixed 160 bits in length. As a result, the length indicator for these fields is always the byte `0x14`. AccountIDs that appear as children of special fields ([Amount `issuer`][Amount] and [PathSet `account`][PathSet]) are _not_ length-prefixed. ### Amount Fields @@ -176,9 +198,13 @@ AccountIDs that appear as stand-alone fields (such as `Account` and `Destination The "Amount" type is a special field type that represents an amount of currency, either XRP or an issued currency. This type consists of two sub-types: - **XRP** + XRP is serialized as a 64-bit unsigned integer (big-endian order), except that the most significant bit is always 0 to indicate that it's XRP, and the second-most-significant bit is `1` to indicate that it is positive. Since the maximum amount of XRP (1017 drops) only requires 57 bits, you can calculate XRP serialized format by taking standard 64-bit unsigned integer and performing a bitwise-OR with `0x4000000000000000`. + - **Issued Currencies** + Issued currencies consist of three segments in order: + 1. 64 bits indicating the amount in the [internal currency format](currency-formats.html#issued-currency-math). The first bit is `1` to indicate that this is not XRP. 2. 160 bits indicating the [currency code](currency-formats.html#currency-codes). The standard API converts 3-character codes such as "USD" into 160-bit codes using the [standard currency code format](currency-formats.html#standard-currency-codes), but custom 160-bit codes are also possible. 3. 160 bits indicating the issuer's Account ID. (See also: [Account Address Encoding](accounts.html#address-encoding)) @@ -207,7 +233,7 @@ The following example shows the serialization format for an array (the `SignerEn ### Blob Fields [Blob]: #blob-fields -The Blob type is a [variable-length encoded](#variable-length-encoding) field with arbitrary data. Two common fields that use this type are `SigningPubKey` and `TxnSignature`, which contain (respectively) the public key and signature that authorize a transaction to be executed. +The Blob type is a [length-prefixed](#length-prefixing) field with arbitrary data. Two common fields that use this type are `SigningPubKey` and `TxnSignature`, which contain (respectively) the public key and signature that authorize a transaction to be executed. Blob fields have no further structure to their contents, so they consist of exactly the amount of bytes indicated in the variable-length encoding, after the Field ID and length prefixes. @@ -258,7 +284,7 @@ The following table describes the possible fields and the bitwise flags to set i Some combinations are invalid; see [Path Specifications](paths.html#path-specifications) for details. -The AccountIDs in the `account` and `issuer` fields are presented _without_ a variable-length encoding prefix. When the `currency` is XRP, the currency code is represented as 160 bits of zeroes. +The AccountIDs in the `account` and `issuer` fields are presented _without_ a length prefix. When the `currency` is XRP, the currency code is represented as 160 bits of zeroes. Each step is followed directly by the next step of the path. As described above, last step of a path is followed by either `0xff` (if another path follows) or `0x00` (if this ends the last path). diff --git a/img/serialization-amount.png b/img/serialization-amount.png index 6f0bd314f3c7c6e4b5b2c7052812139c2c333571..70446e114838f3a53c21b9f32c1f8830238050e6 100644 GIT binary patch literal 34352 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

mXcv9S+S=)X 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%0Dd1em;M>(ccJ%y&DysSr-?yvo&_+~Vg3Fc zX||>chcGVrp5i|0{Za?BX2wb{uDi-c|JL)gQ7V-uHl8!dw<)*$ov;!#vn?^&WU|{Y z2l(+Xr+bBm~_w;v-Lwqd;~~0uAcW zeC(#;19w%o$ix|=$t1kzu)k^dpHEHtI!}7>K_Ph*%)I20J4v5lK&&1{-n(~lVq)#i z0KBW{3!gNb07AnO5(=ee;$Kv#{{o&)jz=J~S94$m%upkWz*Zf1*$kfKLU zQ~>c!Fb6~$9)sBHh&`CDK_A-gqt^`TLx+MIPb)nETV{BvhCH@-Zvh_e&d!9 z^s>grj*?;B7Upmo@14R}qf!`s9LHSGf{wH=aCrOYHU?9m@6*8rkmJkJpT7MID=QyC z9>Z3z+<49~oEqQ?A`E(&M1S~CCxNyCxft;~T1ZCTfBjmC-gf?RoQHGSD}njrPhei0 z1r-dbRtEOQGPN;+cff0S5pmkx_aE>9P{_~#q3@8DZNXDO>NJ1_;yraq&8R2$@I{eU zq*~K8qEHo2ooH4|vl#$01_N3K1_m%6$+_a>u;G^0nkhI10m@*!e~)5q`-F=BsN

DS8p}*Q)4#&p9`&S z4}FP%uq+y7!S3LM2RN|N!j9nMDFQlFjKN_hgtrxr?kT|bioY-YSRd}FGQyu2uqaI= z3aX~q_`#8{PUm={Y|bz{Q2j%y(W3)u&K?OiOY0Y4-|u_VKG0d2oUHAv2E$~_4(h#o zv#$?dKLdv?syfr&_~6SiY*?0tUcD?4M*{u)ZtWM#7D19^s^_-LvI}?>h7t(qkxfrE z@PW+EGhl6P4dehOHHlv3wirWx+16BBQBPmL1)xqr9URB30}Uf@aMF3w8m%1)8tFYf z7%N=I5?{pcamgax*E}A(0NEJ2<^-)*jq{1!o~=C>oGxceP`9P{7H zEwvb-ju=lBr~=IwZ0FD)K;eD3_5L2#!hduyQtjxa>(|W=b{9llaRl&GNEM~OU>^i1 zqZcQCb7x!>(c!3P4n;C&#?mx0(j)~!i4xzu2>EJFldOcn{^R{%HZad)5XP>Db!qGeCY1t3SlXM0T;c9x?5s`c^%6DdKlL`ou=r5r|h3%FOL&V&60^H z?%Zsu@OpWn{s;z4<<(fAZegm+g2H292(w)F3Ns>%w9lQ&>EUxN2ck(;IGe z!(lpdqKGMKa|0&082wsAo@>pHmd?@7&3wT?oVg-i!n2=)jiSBVnCCnO;@-r7 zdCFbf)GP@sj+m5gZ1}Dtv*X28lnI2ut>Tida+^2r+gNgp81TdV`7n?U!ke*TAoe>{K!pR{_*|$O)}_09GQUb#WO?6d;rO-t0+%7MkIN!Av>kqiI0cW zURP>e!&dtG_uK~U9nu|}|FJxtZ2ssNzk<7vvnYp&qwk_%40~e)OIcpsK+FdS-(6u- z>}8D%ka_S4LFTYfvp$NPc%cp=;`HLFv#yPd06+uZK(q5~}G=OYf2X3da7T8gA3KGa5tKACLv);+InVX&y2QcAmxdw##)e-+?KvkU_0_S zA*0oV!yw1i4UU!#C#7vGvmBJ0&k%S*=I#{n&RMt;zUb&MVcAJJm`=I|@LnGia6xL? z{X^<~np$kiMm^xsTvXAjQ{QY%n)!5t0&3$>GF1HsToAlN9fHiOmlVl7t*!KG5MwaJTYy(LsnV}890e#Tu>y7-#lCe0 zgza_BE1N*Q`P!ML*#+&-IM!|B$B{_Of65}gg44^iD+?L21DHjym|~={Q@7Is=0((u z)_ww2QS>t5nAv$dGF(<7^UK$-I64w!z~!S8z-dqQ7x{`02O21Uc^r(;Q2+y3(qw>K zXe$;Jqa12E(5~w#bSJgAaD!WEcLxJ=#$G?#NKi#2h^$xYLLMqIwCUtkRm;&V{Gv=8 zIgG?Afp+xym`aDK{iS$-;F<%UM0)N(RM5}+{(gsOGb^R`zkG;tkvp;0j~x&4M?Kqg zwHR9fxQb4{4u!Iqld~;oSH{DtTZ ziSQg`if0urxdmU93~4*Vh3rl~f2%qFZBkO8Qu;ECe`B>ea{ib0k@6kdD}x9NSR6o| zmzA-fF-H%P5Uq=0%uj{p#M0)mqq`PevrzZb*w`4b=vN3gMn*;^J_1?$QtasoS3K~f zuO{v*1jGx*N9@|Sgusw>d!H}YqDA_}8MB}SnIwj8xJ)JZ^xhD>CtsYoKKpxF$aQ1o zT2p>B7ynjZS^eF0O`DQVuR4q;T$#@M2{MWaUi%WPOA;2x9D36Q^Mu=F4Jkk zM3FdmHyUPD=Rjxe`2z K>#)L#z!;6V#B|(ifcJRcYw+_t3ik78YYS5=>pAH7n#0 zVD8@K#B#sC4ca96Kr0FRg1ahcIwU2%2PG+ej%pFU+`d5lC){ODowCh!U^kf?6-%UM z1PgX9sRz7?KLYI`b`H?TKe^l7OTYvEKVBm6%6~JyIdU!WTYuhm?xnf6{qu>3e$J9+ YXG&!M&NbiIe=^d#O1Vp8` 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 R7DNM4yrp`xNY3bw{{z2b?%)6b literal 9203 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 diff --git a/img/serialization-object.png b/img/serialization-object.png index d62f99922d8b888f232c735b2eaa3ab04baff1d6..d47128ebc3a7e722c23bc8b83893f73b3a4a2a41 100644 GIT binary patch literal 12384 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 z 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 Vi#3dwufZfqWF!>s<%;P)|38?N3C{ok diff --git a/img/serialization-pathset.png b/img/serialization-pathset.png index 2f1d528f0f4c2a8ed2c9b386444e37c0ef939b10..09217c839c076c6e0f338335b76daadd3c144147 100644 GIT binary patch literal 16556 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 literal 16722 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 Sn>fO4%1SEUD!gI*=>Gtg;~