UNPKG

ethers-maths

Version:

➗ Useful ethers-based math libraries to ease the journey through off-chain fixed-point arithmetics

87 lines (86 loc) 4.12 kB
import { BigNumberish } from "ethers"; declare global { interface BigInt { approxEqAbs: (other: BigNumberish, tolerance?: BigNumberish) => boolean; abs: () => bigint; min: (other: BigNumberish, ...others: BigNumberish[]) => bigint; max: (other: BigNumberish, ...others: BigNumberish[]) => bigint; sum: (others: BigNumberish[]) => bigint; format: (decimals?: number, digits?: number) => string; toFloat: (decimals?: number) => number; mulDiv: (other: BigNumberish, scale: BigNumberish) => bigint; mulDivUp: (other: BigNumberish, scale: BigNumberish) => bigint; mulDivDown: (other: BigNumberish, scale: BigNumberish) => bigint; compMul: (other: BigNumberish) => bigint; compDiv: (other: BigNumberish) => bigint; percentAdd: (pct: BigNumberish) => bigint; percentSub: (pct: BigNumberish) => bigint; percentMul: (other: BigNumberish) => bigint; percentMulUp: (other: BigNumberish) => bigint; percentMulDown: (other: BigNumberish) => bigint; percentDiv: (other: BigNumberish) => bigint; percentDivUp: (other: BigNumberish) => bigint; percentDivDown: (other: BigNumberish) => bigint; percentAvg: (other: BigNumberish, pct: BigNumberish) => bigint; percentPow: (exponent: BigNumberish) => bigint; percentPowUp: (exponent: BigNumberish) => bigint; percentPowDown: (exponent: BigNumberish) => bigint; percentExpN: (exponent: BigNumberish) => bigint; percentToDecimals: (decimals: number) => bigint; percentToWad: () => bigint; percentToRay: () => bigint; formatPercent: (digits?: number) => string; toPercentFloat: () => number; wadAdd: (wad: BigNumberish) => bigint; wadSub: (wad: BigNumberish) => bigint; wadMul: (other: BigNumberish) => bigint; wadMulUp: (other: BigNumberish) => bigint; wadMulDown: (other: BigNumberish) => bigint; wadDiv: (other: BigNumberish) => bigint; wadDivUp: (other: BigNumberish) => bigint; wadDivDown: (other: BigNumberish) => bigint; wadAvg: (other: BigNumberish, wad: BigNumberish) => bigint; wadPow: (exponent: BigNumberish) => bigint; wadPowUp: (exponent: BigNumberish) => bigint; wadPowDown: (exponent: BigNumberish) => bigint; wadExpN: (exponent: BigNumberish) => bigint; wadToDecimals: (decimals: number) => bigint; wadToPercent: () => bigint; wadToRay: () => bigint; formatWad: (digits?: number) => string; toWadFloat: () => number; rayAdd: (ray: BigNumberish) => bigint; raySub: (ray: BigNumberish) => bigint; rayMul: (other: BigNumberish) => bigint; rayMulUp: (other: BigNumberish) => bigint; rayMulDown: (other: BigNumberish) => bigint; rayDiv: (other: BigNumberish) => bigint; rayDivUp: (other: BigNumberish) => bigint; rayDivDown: (other: BigNumberish) => bigint; rayAvg: (other: BigNumberish, ray: BigNumberish) => bigint; rayPow: (exponent: BigNumberish) => bigint; rayPowUp: (exponent: BigNumberish) => bigint; rayPowDown: (exponent: BigNumberish) => bigint; rayExpN: (exponent: BigNumberish) => bigint; rayToDecimals: (decimals: number) => bigint; rayToPercent: () => bigint; rayToWad: () => bigint; formatRay: (digits?: number) => string; toRayFloat: () => number; } interface BigIntConstructor { PERCENT: bigint; HALF_PERCENT: bigint; WAD: bigint; HALF_WAD: bigint; RAY: bigint; HALF_RAY: bigint; min: (other: BigNumberish, ...others: BigNumberish[]) => bigint; max: (other: BigNumberish, ...others: BigNumberish[]) => bigint; sum: (others: BigNumberish[]) => bigint; pow10: (power: BigNumberish) => bigint; parsePercent: (value: string) => bigint; parseWad: (value: string) => bigint; parseRay: (value: string) => bigint; } }