2020-02-25 14:57:11 -05:00
|
|
|
_section: Encoding Utilities @<encoding>
|
2020-01-10 01:01:00 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_subsection: Base58 @<Bse58> @SRC<basex:Base58>
|
2020-01-10 01:01:00 -05:00
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_property: ethers.utils.base58.decode(textData) => Uint8Array
|
2020-01-10 01:01:00 -05:00
|
|
|
Return a typed Uint8Array representation of //textData// decoded using
|
|
|
|
base-58 encoding.
|
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const base58 = ethers.utils.base58;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base58.decode("TzMhH");
|
|
|
|
//_log:
|
|
|
|
|
2020-02-17 17:56:13 -05:00
|
|
|
_property: ethers.utils.base58.encode(aBytesLike) => string
|
2020-01-10 01:01:00 -05:00
|
|
|
Return //aBytesLike// encoded as a string using the base-58 encoding.
|
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const base58 = ethers.utils.base58;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base58.encode("0x12345678");
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base58.encode([ 0x12, 0x34, 0x56, 0x78 ]);
|
|
|
|
//_log:
|
|
|
|
|
2020-01-10 01:01:00 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_subsection: Base64 @<Base64>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_property: ethers.utils.base64.decode(textData) => Uint8Array @SRC<base64>
|
2020-01-10 01:01:00 -05:00
|
|
|
Return a typed Uint8Array representation of //textData// decoded using
|
|
|
|
base-64 encoding.
|
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const base64 = ethers.utils.base64;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base64.decode("EjQ=");
|
|
|
|
//_log:
|
|
|
|
|
2020-02-25 14:57:11 -05:00
|
|
|
_property: ethers.utils.base64.encode(aBytesLike) => string @SRC<base64>
|
2020-01-10 01:01:00 -05:00
|
|
|
Return //aBytesLike// encoded as a string using the base-64 encoding.
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const base64 = ethers.utils.base64;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base64.encode("0x1234");
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
base64.encode([ 0x12, 0x34 ]);
|
|
|
|
//_log:
|
|
|
|
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_subsection: Recursive-Length Prefix @<rlp--methods>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
The [[link-rlp]] encoding is used throughout Ethereum to serialize nested
|
|
|
|
structures of Arrays and data.
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: ethers.utils.RLP.encode(dataObject) => string<[[DataHexString]]> @<utils-rlpEncode> @SRC<rlp>
|
2021-06-10 17:38:38 -04:00
|
|
|
Encode a structured [Data Object](rlp--dataobject) into its RLP-encoded representation.
|
|
|
|
|
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const RLP = ethers.utils.RLP;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.encode("0x12345678");
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.encode([ "0x12345678" ]);
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.encode([ new Uint8Array([ 0x12, 0x34, 0x56, 0x78 ]) ]);
|
|
|
|
//_log:
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
//_result:
|
|
|
|
RLP.encode([ [ "0x42", [ "0x43" ] ], "0x12345678", [ ] ]);
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.encode([ ]);
|
|
|
|
//_log:
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_property: ethers.utils.RLP.decode(aBytesLike) => [DataObject](rlp--dataobject) @<utils.rlpDecode> @SRC<rlp>
|
2021-06-10 17:38:38 -04:00
|
|
|
Decode an RLP-encoded //aBytesLike// into its structured [Data Object](rlp--dataobject).
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
All Data components will be returned as a [[DataHexString]].
|
2020-02-17 17:56:13 -05:00
|
|
|
|
2021-06-10 17:38:38 -04:00
|
|
|
_code: @lang<javascript>
|
|
|
|
|
|
|
|
//_hide: const RLP = ethers.utils.RLP;
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.decode("0x8412345678");
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.decode("0xcac342c1438412345678c0");
|
|
|
|
//_log:
|
|
|
|
|
|
|
|
//_result:
|
|
|
|
RLP.decode("0xc0");
|
|
|
|
//_log:
|
|
|
|
|
2020-05-08 03:24:40 -04:00
|
|
|
_heading: Data Object @<rlp--dataobject>
|
2020-02-17 17:56:13 -05:00
|
|
|
|
|
|
|
A **Data Object** is a recursive structure which is used to serialize many
|
|
|
|
internal structures in Ethereum. Each **Data Object** can either be:
|
|
|
|
|
|
|
|
- Binary Data
|
|
|
|
- An Array of **Data Objects** (i.e. this recursively includes Nesting)
|
|
|
|
|
|
|
|
_definition: **Examples**
|
|
|
|
|
|
|
|
- ``"0x1234"``
|
|
|
|
- ``[ "0x1234", [ "0xdead", "0xbeef" ], [ ] ]``
|