namillum
Version:
Bubble Protocol SDK
255 lines (135 loc) • 5.13 kB
Markdown
# @zilliqa-js/util
> Utility functions useful in Zilliqa-related programs.
## Classes
### `BN`
See documentation at [bn.js](https://github.com/indutny/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](https://github.com/dcodeIO/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](./src/presets.ts) 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'`).