MCPcopy Create free account
hub / github.com/SmarDex-Dev/smart-contracts / assertBigNumberClosePercent

Function assertBigNumberClosePercent

test/helpers/assert.ts:34–51  ·  view source on GitHub ↗
(
  a: BigNumberish,
  b: BigNumberish,
  variance: string = "0.02",
  reason: string = "",
)

Source from the content-addressed store, hash-verified

32}
33
34export function assertBigNumberClosePercent(
35 a: BigNumberish,
36 b: BigNumberish,
37 variance: string = "0.02",
38 reason: string = "",
39) {
40 const aBigNumber = BigNumber.from(a);
41 const bBigNumber = BigNumber.from(b);
42 const varianceBigNumber = ethers.utils.parseUnits(variance, 16);
43
44 if (aBigNumber.eq(bBigNumber)) return;
45
46 const diff = aBigNumber.sub(bBigNumber).abs().mul(ethers.constants.WeiPerEther).div(aBigNumber.add(bBigNumber));
47 assert.ok(
48 diff.lte(varianceBigNumber),
49 `${reason}: diff exceeded ${variance}: ${aBigNumber.toString()} ${bBigNumber.toString()}`,
50 );
51}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected