ethers.js/lib.commonjs/utils/maths.d.ts
2023-02-02 22:04:33 -05:00

62 lines
2.3 KiB
TypeScript

import type { BytesLike } from "./data.js";
/**
* Any type that can be used where a numeric value is needed.
*/
export type Numeric = number | bigint;
/**
* Any type that can be used where a big number is needed.
*/
export type BigNumberish = string | Numeric;
/**
* Convert %%value%% from a twos-compliment representation of %%width%%
* bits to its value.
*
* If the highest bit is ``1``, the result will be negative.
*/
export declare function fromTwos(_value: BigNumberish, _width: Numeric): bigint;
/**
* Convert %%value%% to a twos-compliment representation of
* %%width%% bits.
*
* The result will always be positive.
*/
export declare function toTwos(_value: BigNumberish, _width: Numeric): bigint;
/**
* Mask %%value%% with a bitmask of %%bits%% ones.
*/
export declare function mask(_value: BigNumberish, _bits: Numeric): bigint;
/**
* Gets a [[BigInt]] from %%value%%. If it is an invalid value for
* a BigInt, then an ArgumentError will be thrown for %%name%%.
*/
export declare function getBigInt(value: BigNumberish, name?: string): bigint;
export declare function getUint(value: BigNumberish, name?: string): bigint;
export declare function toBigInt(value: BigNumberish | Uint8Array): bigint;
/**
* Gets a //number// from %%value%%. If it is an invalid value for
* a //number//, then an ArgumentError will be thrown for %%name%%.
*/
export declare function getNumber(value: BigNumberish, name?: string): number;
/**
* Converts %%value%% to a number. If %%value%% is a Uint8Array, it
* is treated as Big Endian data. Throws if the value is not safe.
*/
export declare function toNumber(value: BigNumberish | Uint8Array): number;
/**
* Converts %%value%% to a Big Endian hexstring, optionally padded to
* %%width%% bytes.
*/
export declare function toBeHex(_value: BigNumberish, _width?: Numeric): string;
/**
* Converts %%value%% to a Big Endian Uint8Array.
*/
export declare function toBeArray(_value: BigNumberish): Uint8Array;
/**
* Returns a [[HexString]] for %%value%% safe to use as a //Quantity//.
*
* A //Quantity// does not have and leading 0 values unless the value is
* the literal value `0x0`. This is most commonly used for JSSON-RPC
* numeric values.
*/
export declare function toQuantity(value: BytesLike | BigNumberish): string;