ethers-maths
Version:
➗ Useful ethers-based math libraries to ease the journey through off-chain fixed-point arithmetics
17 lines (16 loc) • 1.48 kB
TypeScript
import { BigNumberish } from "ethers";
export type MulDiv = (x: BigNumberish, y: BigNumberish, scale: BigNumberish) => bigint;
export declare const pow10: (power: BigNumberish) => bigint;
export declare const approxEqAbs: (x: BigNumberish, y: BigNumberish, tolerance?: BigNumberish) => boolean;
export declare const abs: (x: BigNumberish) => bigint;
export declare const min: (x: BigNumberish, ...others: BigNumberish[]) => bigint;
export declare const max: (x: BigNumberish, ...others: BigNumberish[]) => bigint;
export declare const sum: (initialValue: BigNumberish, others: BigNumberish[]) => bigint;
export declare const mulDivHalfUp: MulDiv;
export declare const mulDivDown: MulDiv;
export declare const mulDivUp: MulDiv;
export declare const avgHalfUp: (x: BigNumberish, y: BigNumberish, pct: BigNumberish, scale: BigNumberish) => bigint;
export declare const pow: (x: BigNumberish, exponent: BigNumberish, scale: bigint, mulDiv?: MulDiv) => bigint;
export declare const expN: (x: BigNumberish, N: BigNumberish, scale: BigNumberish, mulDiv?: MulDiv) => bigint;
export declare const getConvertToAssets: (virtualAssets: BigNumberish, virtualShares: BigNumberish, mulDiv: MulDiv) => (shares: BigNumberish, totalAssets: BigNumberish, totalShares: BigNumberish) => bigint;
export declare const getConvertToShares: (virtualAssets: BigNumberish, virtualShares: BigNumberish, mulDiv: MulDiv) => (assets: BigNumberish, totalAssets: BigNumberish, totalShares: BigNumberish) => bigint;