Skip to content

Commit

Permalink
Merge pull request #542 from VenusProtocol/feat/ven-2975
Browse files Browse the repository at this point in the history
[VEN-2975] Chaos labs recommendations (December 12th, 2024)
  • Loading branch information
web3rover authored Dec 31, 2024
2 parents 3c460d7 + ffede77 commit b7efd4e
Show file tree
Hide file tree
Showing 6 changed files with 1,418 additions and 63 deletions.
57 changes: 57 additions & 0 deletions deploy/002-interest-rate-model.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import { BigNumber, BigNumberish } from "ethers";
import { parseUnits } from "ethers/lib/utils";
import { DeployFunction } from "hardhat-deploy/types";
import { HardhatRuntimeEnvironment } from "hardhat/types";

const mantissaToBps = (num: BigNumberish) => {
return BigNumber.from(num).div(parseUnits("1", 14)).toString();
};

const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
const { deployments, getNamedAccounts, network } = hre;
const { deploy } = deployments;
Expand Down Expand Up @@ -34,6 +39,58 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
autoMine: true,
args: [0, parseUnits("0.03", 18), parseUnits("4.5", 18), parseUnits("0.9", 18)],
});

let baseRatePerYear = parseUnits("0", 18);
let multiplierPerYear = parseUnits("0.175", 18);
let jumpMultiplierPerYear = parseUnits("2.5", 18);
let kink = parseUnits("0.8", 18);
const [b, m, j, k] = [baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink].map(mantissaToBps);
let rateModelName = `JumpRateModel_base${b}bps_slope${m}bps_jump${j}bps_kink${k}bps`;

await deploy(rateModelName, {
contract: "JumpRateModel",
from: deployer,
log: true,
autoMine: true,
args: [baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink],
skipIfAlreadyDeployed: true,
});

baseRatePerYear = parseUnits("0", 18);
multiplierPerYear = parseUnits("0.15", 18);
jumpMultiplierPerYear = parseUnits("3", 18);
kink = parseUnits("0.8", 18);
const baseRatePerYear2 = parseUnits("0", 18);
const multiplierPerYear2 = parseUnits("0.9", 18);
const kink2_ = parseUnits("0.9", 18);

const [b1, m1, k1, m2, b2, k2, j2] = [
baseRatePerYear,
multiplierPerYear,
kink,
multiplierPerYear2,
baseRatePerYear2,
kink2_,
jumpMultiplierPerYear,
].map(mantissaToBps);
rateModelName = `TwoKinks_base${b1}bps_slope${m1}bps_kink${k1}bps_slope2${m2}bps_base2${b2}bps_kink2${k2}bps_jump${j2}bps`;

await deploy(rateModelName, {
contract: "TwoKinksInterestRateModel",
from: deployer,
log: true,
autoMine: true,
args: [
baseRatePerYear,
multiplierPerYear,
kink,
multiplierPerYear2,
baseRatePerYear2,
kink2_,
jumpMultiplierPerYear,
],
skipIfAlreadyDeployed: true,
});
}

if (network.name === "bscmainnet" || network.name === "bsctestnet") {
Expand Down
Loading

0 comments on commit b7efd4e

Please sign in to comment.