UNPKG

@defi-wonderland/keep3r-v2

Version:

The Keep3r Network is a decentralized network for projects that need external devops, and for external teams to find keeper jobs

25 lines (22 loc) 1.23 kB
import { toUnit } from '@utils/bn'; import { BigNumber } from 'ethers'; export function mathUtilsFactory(rewardPeriodTime: number, inflationPeriodTime: number): MathUtils { return { calcPeriod: (timestamp: number) => timestamp - (timestamp % rewardPeriodTime), calcLiquidityToAdd: (credits: BigNumber) => credits.mul(inflationPeriodTime).div(rewardPeriodTime), calcPeriodCredits: (liquidityAdded: BigNumber) => liquidityAdded.mul(rewardPeriodTime).div(inflationPeriodTime), calcMintedCredits: (jobPeriodCredits: BigNumber, cooldown: number) => jobPeriodCredits.mul(cooldown).div(rewardPeriodTime), increase1Tick: (amount: BigNumber) => amount.mul(10001).div(10000), decrease1Tick: (amount: BigNumber) => amount.mul(10000).div(10001), blockShiftPrecision: toUnit(0.0001).toNumber(), }; } export interface MathUtils { calcPeriod: (timestamp: number) => number; calcLiquidityToAdd: (credits: BigNumber) => BigNumber; calcPeriodCredits: (liquidityAdded: BigNumber) => BigNumber; calcMintedCredits: (jobPeriodCredits: BigNumber, cooldown: number) => BigNumber; increase1Tick: (amount: BigNumber) => BigNumber; decrease1Tick: (amount: BigNumber) => BigNumber; blockShiftPrecision: number; }