UNPKG

namillum

Version:
255 lines (135 loc) 5.13 kB
# @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'`).