import { expect } from 'chai'; import { BigNumber, utils } from 'ethers'; export const expectToEqualWithThreshold = ({ value, to, threshold, }: { value: BigNumber | number | string; to: BigNumber | number | string; threshold: BigNumber | number | string; }): void => { value = toBN(value); to = toBN(to); threshold = toBN(threshold); expect( to.sub(threshold).lte(value) && to.add(threshold).gte(value), `Expected ${value.toString()} to be between ${to.sub(threshold).toString()} and ${to.add(threshold).toString()}` ).to.be.true; }; export const toBN = (value: string | number | BigNumber): BigNumber => { return BigNumber.isBigNumber(value) ? value : BigNumber.from(value); }; export const toUnit = (value: number): BigNumber => { return utils.parseUnits(value.toString()); }; export const toGwei = (value: number): BigNumber => { return utils.parseUnits(value.toString(), 'gwei'); };