Encodings: Array
Do you want to help improve these docs? Edit this page on GitHub
FIXED_TYPED_ARRAY
The encoding consists of the elements of the fixed array encoded in order. The
encoding of the element at index i
is either prefixEncodings[i]
if set, or
encoding
.
Options
Option | Type | Description |
---|---|---|
size |
uint |
The array length |
prefixEncodings |
encoding[] |
Positional encodings |
encoding |
encoding |
Element encoding |
Conditions
Condition | Description |
---|---|
len(prefixEncodings) <= size |
The number of prefix encodings must be less than or equal to the size |
len(value) == size |
The input array must have the declared size |
Examples
Given the array [ 1, 2, true ]
where the prefixEncodings
corresponds to
BOUNDED_MULTIPLE_8BITS_ENUM_FIXED
(minimum 0, maximum 10,
multiplier 1) and BOUNDED_MULTIPLE_8BITS_ENUM_FIXED
(minimum 0,
maximum 10, multiplier 1) and encoding
corresponds to
BYTE_CHOICE_INDEX
with choices [ false, true ]
, the encoding
results in:
+------+------+------+
| 0x00 | 0x01 | 0x01 |
+------+------+------+
1 2 true
BOUNDED_8BITS_TYPED_ARRAY
The encoding consists of the length of the array minus minimum
encoded as an
8-bit fixed-length unsigned integer followed by the elements of the array
encoded in order. The encoding of the element at index i
is either
prefixEncodings[i]
if set, or encoding
.
Options
Option | Type | Description |
---|---|---|
minimum |
uint |
The minimum length of the array |
maximum |
uint |
The maximum length of the array |
prefixEncodings |
encoding[] |
Positional encodings |
encoding |
encoding |
Element encoding |
Conditions
Condition | Description |
---|---|
len(value) >= minimum |
The length of the array must be greater than or equal to the minimum |
len(value) <= maximum |
The length of the array must be less than or equal to the maximum |
len(prefixEncodings) <= maximum |
The number of prefix encodings must be less than or equal to the maximum array length |
len(maximum) - len(minimum) < 2 ** 8 |
The array length must be representable in 8 bits |
Examples
Given the array [ true, false, 5 ]
where the minimum is 1 and the maximum is
3, the prefixEncodings
corresponds to BYTE_CHOICE_INDEX
with
choices [ false, true ]
and BYTE_CHOICE_INDEX
with choices [
false, true ]
and encoding
corresponds to
BOUNDED_MULTIPLE_8BITS_ENUM_FIXED
with minimum 0 and maximum
255, the encoding results in:
+------+------+------+------+
| 0x02 | 0x01 | 0x00 | 0x05 |
+------+------+------+------+
size true false 5
FLOOR_TYPED_ARRAY
The encoding consists of the length of the array minus minimum
encoded as a
Base-128 64-bit Little Endian variable-length unsigned integer followed by the
elements of the array encoded in order. The encoding of the element at index
i
is either prefixEncodings[i]
if set, or encoding
.
Options
Option | Type | Description |
---|---|---|
minimum |
uint |
The minimum length of the array |
prefixEncodings |
encoding[] |
Positional encodings |
encoding |
encoding |
Element encoding |
Conditions
Condition | Description |
---|---|
len(value) >= minimum |
The length of the array must be greater than or equal to the minimum |
Examples
Given the array [ true, false, 5 ]
where the minimum is 1, the
prefixEncodings
corresponds to BYTE_CHOICE_INDEX
with choices [
false, true ]
and BYTE_CHOICE_INDEX
with choices [ false, true ]
and encoding
corresponds to BOUNDED_MULTIPLE_8BITS_ENUM_FIXED
with minimum 0 and maximum 255, the encoding results in:
+------+------+------+------+
| 0x02 | 0x01 | 0x00 | 0x05 |
+------+------+------+------+
size true false 5
ROOF_TYPED_ARRAY
The encoding consists of maximum
minus the length of the array encoded as a
Base-128 64-bit Little Endian variable-length unsigned integer followed by the
elements of the array encoded in order. The encoding of the element at index
i
is either prefixEncodings[i]
if set, or encoding
.
Options
Option | Type | Description |
---|---|---|
maximum |
uint |
The maximum length of the array |
prefixEncodings |
encoding[] |
Positional encodings |
encoding |
encoding |
Element encoding |
Conditions
Condition | Description |
---|---|
len(prefixEncodings) <= maximum |
The number of prefix encodings must be less than or equal to the maximum array length |
Examples
Given the array [ true, false, 5 ]
where the maximum is 3, the
prefixEncodings
options corresponds to BYTE_CHOICE_INDEX
with
choices [ false, true ]
and BYTE_CHOICE_INDEX
with choices [
false, true ]
and encoding
corresponds to
BOUNDED_MULTIPLE_8BITS_ENUM_FIXED
with minimum 0 and maximum
255, the encoding results in:
+------+------+------+------+
| 0x00 | 0x01 | 0x00 | 0x05 |
+------+------+------+------+
size true false 5