Byte Manipulation
Many of these operations are used internally, but can also be used to help normalize binary data representations from the output of various functions and methods.
The Bytes package is directly imported from the The Ethers Project. The complete documentation can be found in the official ethers docs.
A Bytes is any object which is an Array or TypedArray with each value in the valid byte range (i.e. between 0 and 255 inclusive), or is an Object with a
length
property where each indexed property is in the valid byte range.A DataHexstring is identical to a HexString except that it has an even number of nibbles, and therefore is a valid representation of binary data as a string.
A Hexstring is a string which has a
0x
prefix followed by any number of nibbles (i.e. case-insensitive hexadecimal characters, 0-9
and a-f
).- r and s --- The x co-ordinate of r and the s value of the signature
- v --- The parity of the y co-ordinate of r
- recoveryParam --- The normalized (i.e. 0 or 1) value of v
A Raw Signature is a common Signature format where the r, s and v are concatenated into a 65 byte (130 nibble) DataHexString.
A SignatureLike is similar to a Signature, except redundant properties may be omitted or it may be a Raw Signature.
For example, if _vs is specified, s and v may be omitted. Likewise, if recoveryParam is provided, v may be omitted (as in these cases the missing values can be computed).
Returns true if and only if object is a valid hex string. If length is specified and object is not a valid DataHexString of length bytes, an InvalidArgument error is thrown.
Converts DataHexStringOrArrayish to a Uint8Array.
// Convert a hexstring to a Uint8Array
arrayify("0x1234")
// Uint8Array [ 18, 52 ]
// Convert an Array to a hexstring
hexlify([1, 2, 3, 4])
// '0x01020304'
// Convert an Object to a hexstring
hexlify({ length: 2, "0": 1, "1": 2 })
// '0x0102'
// Convert an Array to a hexstring
hexlify([ 1 ])
// '0x01'
// Convert a number to a stripped hex value
hexValue(1)
// '0x1'
// Convert an Array to a stripped hex value
hexValue([ 1, 2 ])
// '0x102'
Returns a Uint8Array with all leading
0
bytes of aBtyesLike removed.Returns a Uint8Array of the data in aBytesLike with
0
bytes prepended to length bytes long.If aBytesLike is already longer than length bytes long, an InvalidArgument error will be thrown.
Returns the length (in bytes) of aBytesLike.
Returns a DataHexString representation of a slice of aBytesLike, from offset (in bytes) to endOffset (in bytes). If endOffset is omitted, the length of aBytesLike is used.
If aBytesLike is already longer than length bytes long, an InvalidArgument error will be thrown.
Return the raw-format of aSignaturelike, which is 65 bytes (130 nibbles) long, concatenating the r, s and (normalized) v of a Signature.
Return the full expanded-format of aSignaturelike or a raw-format DataHexString. Any missing properties will be computed.
Return a new Uint8Array of length random bytes.
utils.randomBytes(8)
// Uint8Array [ 238, 239, 73, 38, 25, 219, 132, 179 ]
const data = [ 1, 2, 3, 4, 5, 6, 7 ];
// Returns a new Array
utils.shuffled(data);
// [
// 4,
// 6,
// 5,
// 2,
// 1,
// 7,
// 3
// ]
// The Original is unscathed...
data
// [
// 1,
// 2,
// 3,
// 4,
// 5,
// 6,
// 7
// ]
Last modified 1yr ago