ethers.js/docs/api/utils/bytes/README.md
2019-08-22 01:52:17 -04:00

4.7 KiB

Documentation: html

Byte Manipulation

Tra la la...

Types

Bytes

A Bytes object 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.

BytesLike

A BytesLike can be either a Bytes or a Hexstring.

Hexstring

A hexstring is a string which has a 0x prefix followed by

Signature

  • 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
  • _vs --- The compact representation of the (r, s) and v
  • recoveryParam --- The normalized (i.e. 0 or 1) value of v

SignatureLike

A SignatureLike is similar to a Signature, except redundant properties may be omitted.

For example, if _vs is specified, (r, s) and v can be omitted. Likewise, if recoverParam is provided, v can be omitted (as it can be computed).

Inspection

utils . isBytes ( object ) => boolean

Returns true if and only if object is a valid Bytes.

utils . isBytesLike ( object ) => boolean

Returns true if and only if object is a Bytes or an Array or TypedArray where each value is a valid byte (i.e. between 0 and 255 inclusive).

utils . isHexString ( object , [ length ] ) => boolean

Returns true if and only if object is a valid hex string; if length is specified the length (in bytes) is also verified.

Converting between Arrays and Hexstrings

utils . arrayify ( hexstringOrArrayish [ , options ] ) => Uint8Array

Converts hexstringOrArrayish to a Uint8Array. If a Hexstring is passed in, the length must be even.

utils . hexlify ( hexstringOrArrayish ) => string

Converts hexstringOrArrayish to a Hexstring. The result will always be zero-padded to even length.

utils . hexValue ( aBigNumberish ) => string

Converts aBigNumberish to a Hexstring, with no unecessary leading zeros. The result of this function can be of odd-length.

Examples

// Convert a hexstring to a Uint8Array
arrayify("0x1234")
// [ 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

Array Manipulation

utils . concat ( arrayOfBytesLike ) => Uint8Array

Concatenates all the BytesLike in arrayOfBytesLike into a single Uint8Array.

utils . stripZeros ( aBytesLike ) => Uint8Array

Concatenates all the BytesLike in arrayOfBytesLike

utils . zeroPad ( aBytesLike , length ) => Uint8Array

Concatenates all the BytesLike in arrayOfBytesLike

Hexstring Manipulation

utils . hexConcat ( arrayOfBytesLike ) => string

Concatenates all the BytesLike in arrayOfBytesLike into a single Hexstring

utils . hexDataLength ( aBytesLike ) => number

Returns the length (in bytes) of aBytesLike.

This will throw and error if aBytesLike is a Hexstring but is of odd-length.

utils . hexDataSlice ( aBytesLike , offset [ , endOffset ] ) => string

Returns the length (in bytes) of aBytesLike.

utils . hexStripZeros ( aBytesLike ) => string

@TODO

utils . hexZeroPad ( aBytesLike , length ) => string

@TODO

Signature Conversion

utils . joinSignature ( aSignatureLike ) => string

Return the flat-format of a SignatureLike, which is 65 bytes (130 nibbles) long, concatenating the r, s and v of a Signature.

utils . splitSignature ( aSignatureLikeOrBytesLike ) => Signature

Return the full expanded-format of a SignatureLike or a flat-format Hexstring. Any missing properties will be computed.


Content Hash: 1e52066c61f8794d858f02fb8164b146c9379968b0e0ab90efeb2fe16831599f