Skip to content
This repository has been archived by the owner on May 26, 2023. It is now read-only.

Latest commit

 

History

History

zilliqa-js-util

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

@zilliqa-js/util

Utility functions useful in Zilliqa-related programs.

Classes

BN

See documentation at bn.js. This is simply a re-export of that library to prevent bloating other @zilliqa-js packages, most of which depend on bn.js in small ways.

Long

See documentation at long.js. This is simply a re-export for similar reasons. Note that long is only required if you need to serialise integers with size greater than or equal to 2^53.

PRESETS

Commonly used variables such as DEVNET_URL. See source for more info.

Functions

intToHexArray(int: number, size: number): string[]

Converts an integer to an array of hexadecimal strings (little endian). Size is the total length of bytes to pad to.

Parameters

  • int: number - the decimal number to convert.

Returns

  • string[] - hexadecimal array representation of the decimal number.

intToByteArray(num: number, size: number): Uint8Array

Converts an integer to a Uint8Array (i.e., byte array).

Parameters

  • num: number - the decimal number to convert

Returns

  • Uint8Array - byte array, padded to size.

hexToByteArray(hex: string): Uint8Array

Converts a hex-encoded string to a Uint8Array. Endianess is not important.

Parameters

  • hex: string

Returns

  • Uint8Array

hexToIntArray(hex: string): number[]

Converts a hex-encoded string to an array of integers.

Parameters

  • hex: string

Returns

  • number[]

pack(a: number, b: number): number

Performs bitwise addition of two 16-bit numbers, returning a 32-bit number. Throws if either number exceeds 16 bits.

Parameters

  • a: number - a 16-bit number.
  • b: number - a 16-bit number.

Returns

  • number - the combined 32-bit number.

compareBytes(a: string, b: string): boolean

Performs a constant time comparison of two hexadecimal values. This avoids timing attacks.

Parameters

  • a: string - hex-encoded string.
  • b: string - hex-encoded string.

Returns

  • boolean - true if the values are equal.

isHex(str: string): boolean

Determines if a given string is hex-encoded.

Parameters

  • str: string.

Returns

  • boolean - true if the string is hex-encoded.

isAddress(address: string): boolean

Determines if a given string is a valid address.

Parameters

  • address: string.

Returns

  • boolean - true if the string is an address.

isBech32(address: string): boolean

Determines if a given string is a valid Zilliqa bech32 address.

Parameters

  • address: string.

Returns

  • boolean - true if the string is a valid Zilliqa bech32 address.

isPrivateKey(privateKey: string): boolean

Determines if a given string is a valid private key.

Parameters

  • privateKey: string.

Returns

  • boolean - true if the string is a valid private key.

isPubKey(pubKey: string): boolean

Determines if a given string is a valid uncompressed public key.

Parameters

  • pubKey: string.

Returns

  • boolean - true if the string is a valid public key.

isSignature(sig: string): boolean

Determines if a given string is a valid Schnorr signature.

Parameters

  • sig: string

Returns

  • boolean - true if the string is a valid signature.

isNumber(x: unknown): boolean

Determines if a given value is a valid JS number.

Parameters

  • x: unknown

Returns

  • boolean - true if the string is a valid signature.

isBN(x: unknown): boolean

Determines if a given value is an instance of BN.js.

Parameters

  • x: unknown

Returns

  • boolean - true if the value is a BN instance.

isString(x: unknown): boolean

Determines if a given value is a valid JS string.

Parameters

  • x: unknown

Returns

  • boolean - true if the value is a string.

isPlainObject(x: unknown): boolean

Determines if a given value is a plain JS object (i.e. directly below Object in the prototype chain).

Parameters

  • x: unknown

Returns

  • boolean - true if the value is a plain object.

matchesObject(x: unknown, test: { [key: string]: Validator[] }): boolean

Determines if a value has the shape specified by test.

Parameters

  • x: unknown
  • test: { [key: string]: Validator[] }

Returns

  • boolean - true if the value matches test.

fromQa(qa: BN, unit: Units, options: Options)

Converts from qa (smallest unit) to zil or li.

Parameters

  • qa: BN - the value to convert from.
  • unit: Units - the unit to be converted to ('zil' | 'qa').
  • options: Options - an object specifying options.

toQa(input: string | number | BN, unit: Units)

Converts zil or li to qa (smallest unit).

Parameters

  • input: string | number | BN - the value to convert from.
  • unit: Units - the unit to be converted from ('zil' | 'li').