aave-protocol-v2/test/helpers/utils/math.ts

80 lines
2.6 KiB
TypeScript

// import {RAY, WAD, HALF_RAY, HALF_WAD, WAD_RAY_RATIO} from "../../utils/constants"
// import BigNumber from "bignumber.js"
// declare module "bignumber.js" {
// interface BigNumber {
// ray: () => BigNumber
// wad: () => BigNumber
// halfRay: () => BigNumber
// halfWad: () => BigNumber
// wadMul: (a: BigNumber) => BigNumber
// wadDiv: (a: BigNumber) => BigNumber
// rayMul: (a: BigNumber) => BigNumber
// rayDiv: (a: BigNumber) => BigNumber
// rayToWad: () => BigNumber
// wadToRay: () => BigNumber
// rayPow: (n: BigNumber) => BigNumber
// }
// }
// BigNumber.prototype.ray = (): BigNumber => {
// return new BigNumber(RAY).decimalPlaces(0)
// }
// BigNumber.prototype.wad = (): BigNumber => {
// return new BigNumber(WAD).decimalPlaces(0)
// }
// BigNumber.prototype.halfRay = (): BigNumber => {
// return new BigNumber(HALF_RAY).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.halfWad = (): BigNumber => {
// return new BigNumber(HALF_WAD).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.wadMul = function(b: BigNumber): BigNumber {
// return this.halfWad().plus(this.multipliedBy(b)).div(WAD).decimalPlaces(0,BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.wadDiv = function(a: BigNumber) : BigNumber {
// const halfA = a.div(2).decimalPlaces(0,BigNumber.ROUND_DOWN)
// return halfA.plus(this.multipliedBy(WAD)).div(a).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.rayMul = function(a: BigNumber) : BigNumber {
// return this.halfRay().plus(this.multipliedBy(a)).div(RAY).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.rayDiv = function(a: BigNumber) : BigNumber{
// const halfA = a.div(2).decimalPlaces(0,BigNumber.ROUND_DOWN)
// return halfA.plus(this.multipliedBy(RAY)).decimalPlaces(0,BigNumber.ROUND_DOWN).div(a).decimalPlaces(0,BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.rayToWad = function(): BigNumber{
// const halfRatio = new BigNumber(WAD_RAY_RATIO).div(2);
// return halfRatio.plus(this).div(WAD_RAY_RATIO).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.wadToRay = function() : BigNumber {
// return this.multipliedBy(WAD_RAY_RATIO).decimalPlaces(0, BigNumber.ROUND_DOWN)
// }
// BigNumber.prototype.rayPow = function(n: BigNumber) : BigNumber {
// let z = !n.modulo(2).eq(0) ? this : new BigNumber(RAY);
// let x = new BigNumber(this)
// for (n = n.div(2); !n.eq(0); n = n.div(2)) {
// x = x.rayMul(x);
// if (!n.modulo(2).eq(0)) {
// z = z.rayMul(x);
// }
// }
// return z;
// }