UNPKG

deth

Version:

Ethereum node focused on Developer Experience

29 lines (28 loc) 892 B
import { BN } from 'ethereumjs-util'; // eslint-disable-next-line import { BigNumber } from 'ethers/utils'; const HEX_NO_LEADING_ZERO_REGEX = /^0x[1-9a-fA-F][\da-fA-F]*$/; export function makeQuantity(value) { if (value === '0x' || value === '0x0') { return '0x0'; } if (!HEX_NO_LEADING_ZERO_REGEX.test(value)) { throw new TypeError(`Value "${value}" is not a valid hex number (leading zeroes)`); } return value.toLowerCase(); } export function bufferToQuantity(buffer) { return bnToQuantity(new BN(buffer)); } export function bnToQuantity(bn) { return makeQuantity('0x' + bn.toString(16)); } export function numberToQuantity(number) { return makeQuantity('0x' + number.toString(16)); } /** * NOTE: this might throw when dealing with big number */ export function quantityToNumber(quantity) { return new BigNumber(quantity).toNumber(); }