import { BN } from "@project-serum/anchor"; import { DistributionType } from "./types"; // Converts distribution type from Typescript enum to object literal for // Solana program client. export const convertDistributionType = (distributionType: DistributionType) => { let response; switch (distributionType) { case DistributionType.CONSTANT: response = { constant: {} }; break; case DistributionType.PERCENTAGE: response = { percentage: {} }; break; } return response; }; export const calculateRewardUnits = ( stakedAmount: BN, lockUpPeriod: number ) => { // Amount is divided by 100 after multiplication with the reward multiplier. let divisor = new BN(100); let rewardMultiplier; switch (lockUpPeriod) { case 0: rewardMultiplier = 100; break; case 1: rewardMultiplier = 115; break; case 2: rewardMultiplier = 125; break; case 3: rewardMultiplier = 150; break; case 4: rewardMultiplier = 250; break; default: rewardMultiplier = 0; } return stakedAmount.mul(new BN(rewardMultiplier)).div(divisor); };