@venusprotocol/venus-protocol 9.8.0-dev.8 → 9.8.0-dev.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deploy/016-rate-model-checkpoint.ts +98 -0
- package/deploy/17-deploy-checkpoint-setter.ts +27 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1750bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope300bps_jump45000bps_kink9000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump50000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump35000bps_kink4500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope10000bps_jump30000bps_kink100bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope1200bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base5000bps_slope3000bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_TwoKinks_base0bps_slope350bps_kink8000bps_slope217500bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope0bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope24000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
- package/deployments/bscmainnet/SetCheckpointBscmainnet.json +53 -0
- package/deployments/bscmainnet/solcInputs/842e9e01c7cc8fd2f7629c41479754cf.json +34 -0
- package/deployments/bscmainnet/solcInputs/a3bade197c2ebe869d361ba22b5c6994.json +40 -0
- package/deployments/bscmainnet.json +1757 -0
- package/deployments/bscmainnet_addresses.json +21 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump10900bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope687bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump35000bps_kink4500bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base200bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base200bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_TwoKinks_base0bps_slope350bps_kink8000bps_slope217500bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope10000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/CheckpointView_From_WhitePaperInterestRateModel_base200bps_slope1000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
- package/deployments/bsctestnet/SetCheckpointBsctestnet.json +53 -0
- package/deployments/bsctestnet/solcInputs/431836192a34afbbc2d47ed2f35f38e0.json +34 -0
- package/deployments/bsctestnet/solcInputs/a3bade197c2ebe869d361ba22b5c6994.json +40 -0
- package/deployments/bsctestnet.json +1235 -0
- package/deployments/bsctestnet_addresses.json +15 -0
- package/dist/deploy/016-rate-model-checkpoint.d.ts +3 -0
- package/dist/deploy/016-rate-model-checkpoint.js +89 -0
- package/dist/deploy/17-deploy-checkpoint-setter.d.ts +3 -0
- package/dist/deploy/17-deploy-checkpoint-setter.js +20 -0
- package/dist/deployments/bscmainnet.json +1757 -0
- package/dist/deployments/bsctestnet.json +1235 -0
- package/dist/helpers/writeFile.d.ts +1 -0
- package/dist/helpers/writeFile.js +10 -0
- package/package.json +1 -1
|
@@ -5,6 +5,20 @@
|
|
|
5
5
|
"AccessControlManagerMockTest": "0x4eA05Cb383a258212C46D19299d6e7F14D79fDEC",
|
|
6
6
|
"BTCB": "0xA808e341e8e723DC6BA0Bb5204Bafc2330d7B8e4",
|
|
7
7
|
"BUSD": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
|
|
8
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1744097580": "0x962edf115d24240930f7B1CF95EaEC9E49f06F92",
|
|
9
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580": "0xa5f1d44f7D2Ea604aAEba6eEd438E07C31Ee1dd2",
|
|
10
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x9657300eEa812f2920f416cE4008713690253716",
|
|
11
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump10900bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580": "0xdE06A850D42dcff216e1EfCa5358cB167Da247ca",
|
|
12
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x3985fd3fa7975BB08c962797640A84297fDbe262",
|
|
13
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope687bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x2182450eC9780F17511FeAcE6FC3ED8F774157b3",
|
|
14
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x24B5bDe69D8e4280a30e1dAbB2f8B0152c30228c",
|
|
15
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x8f63Ca20A6F0805F44d56Afb4B32520488218540",
|
|
16
|
+
"CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump35000bps_kink4500bps_bpy10512000_To_bpy21024000_At_1744097580": "0x6D95fcD7f086a6EA2e0f1B057c1fbddC1c18C146",
|
|
17
|
+
"CheckpointView_From_JumpRateModel_base200bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x253B09357D5D1CDE57dB6356cDE77cD0bd963a09",
|
|
18
|
+
"CheckpointView_From_JumpRateModel_base200bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x93ad9750cA2F89984EE6790A7cEcc4Aa9C07CfeC",
|
|
19
|
+
"CheckpointView_From_TwoKinks_base0bps_slope350bps_kink8000bps_slope217500bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x4FAE14f71c3ee15635d7161292eC5F1F09f70Ad7",
|
|
20
|
+
"CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope10000bps_bpy10512000_To_bpy21024000_At_1744097580": "0x9c2666E33aee517975D61e573DbF5b829c342c03",
|
|
21
|
+
"CheckpointView_From_WhitePaperInterestRateModel_base200bps_slope1000bps_bpy10512000_To_bpy21024000_At_1744097580": "0xc8dC4a0a29e2423664556a31349Da3FF26850e8D",
|
|
8
22
|
"ComptrollerLens": "0x350d56985A269C148648207E4Cea9f87656E762a",
|
|
9
23
|
"DefaultProxyAdmin": "0x7877ffd62649b6a1557b55d4c20fcbab17344c91",
|
|
10
24
|
"ETH": "0x98f7A83361F7Ac8765CcEBAB1425da6b341958a7",
|
|
@@ -57,6 +71,7 @@
|
|
|
57
71
|
"Prime_Proxy": "0xe840F8EC2Dc50E7D22e5e2991975b9F6e34b62Ad",
|
|
58
72
|
"RewardFacet": "0x905006DCD5DbAa9B67359bcB341a0C49AfC8d0A6",
|
|
59
73
|
"SXP": "0x75107940Cf1121232C0559c747A986DEfbc69DA9",
|
|
74
|
+
"SetCheckpointBsctestnet": "0x1466627df311223bC865EbD9CDBe70c2275F8014",
|
|
60
75
|
"SetterFacet": "0x490DFD07f592452307817C4283866035BDb3b275",
|
|
61
76
|
"SnapshotLens": "0x61610DeC84448Ed17A2a0317667a99ca0CC6f697",
|
|
62
77
|
"SwapRouterCorePool": "0x83edf1deE1B730b7e8e13C00ba76027D63a51ac0",
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const markets_1 = require("../helpers/markets");
|
|
4
|
+
const rateModelHelpers_1 = require("../helpers/rateModelHelpers");
|
|
5
|
+
const writeFile_1 = require("../helpers/writeFile");
|
|
6
|
+
const checkpoints = {
|
|
7
|
+
bsctestnet: {
|
|
8
|
+
at: 1744097580,
|
|
9
|
+
fromBlocksPerYear: 10512000,
|
|
10
|
+
toBlocksPerYear: 21024000,
|
|
11
|
+
},
|
|
12
|
+
bscmainnet: {
|
|
13
|
+
at: 1745903100,
|
|
14
|
+
fromBlocksPerYear: 10512000,
|
|
15
|
+
toBlocksPerYear: 21024000,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
const capitalize = (s) => `${s.charAt(0).toUpperCase()}${s.substring(1)}`;
|
|
19
|
+
const getSetterContractName = (networkName) => `SetCheckpoint${capitalize(networkName)}`;
|
|
20
|
+
const generateSetterContract = (networkName, admin, setterCode) => {
|
|
21
|
+
const body = setterCode.map(line => ` ${line}`).join("\n");
|
|
22
|
+
return `
|
|
23
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
24
|
+
pragma solidity 0.8.25;
|
|
25
|
+
|
|
26
|
+
interface VBNBAdminInterface {
|
|
27
|
+
function setInterestRateModel(address) external;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface VTokenInterface {
|
|
31
|
+
function _setInterestRateModel(address) external;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
contract ${getSetterContractName(networkName)} {
|
|
35
|
+
error Unauthorized();
|
|
36
|
+
|
|
37
|
+
function run() external {
|
|
38
|
+
if (msg.sender != ${admin}) {
|
|
39
|
+
revert Unauthorized();
|
|
40
|
+
}
|
|
41
|
+
${body}
|
|
42
|
+
}
|
|
43
|
+
}`;
|
|
44
|
+
};
|
|
45
|
+
const func = async function (hre) {
|
|
46
|
+
const { deployments, getNamedAccounts } = hre;
|
|
47
|
+
const { deploy } = deployments;
|
|
48
|
+
const { deployer } = await getNamedAccounts();
|
|
49
|
+
const chain = hre.getNetworkName(); // ok since we skip the others
|
|
50
|
+
const timelock = await deployments.get("NormalTimelock");
|
|
51
|
+
const { at, fromBlocksPerYear, toBlocksPerYear } = checkpoints[chain];
|
|
52
|
+
const marketsConfig = markets_1.markets[chain];
|
|
53
|
+
const setterCode = [];
|
|
54
|
+
for (const market of marketsConfig) {
|
|
55
|
+
const { symbol, interestRateModel } = market;
|
|
56
|
+
console.log(`Deploying checkpoint view for ${symbol}`);
|
|
57
|
+
const oldRateModelName = (0, rateModelHelpers_1.getRateModelName)(interestRateModel, fromBlocksPerYear);
|
|
58
|
+
const newRateModelName = (0, rateModelHelpers_1.getRateModelName)(interestRateModel, toBlocksPerYear);
|
|
59
|
+
console.log(" from", oldRateModelName);
|
|
60
|
+
console.log(" to", newRateModelName);
|
|
61
|
+
const oldRateModel = await deployments.get(oldRateModelName);
|
|
62
|
+
const newRateModel = await deployments.get(newRateModelName);
|
|
63
|
+
const checkpointViewName = `CheckpointView_From_${oldRateModelName}_To_bpy${toBlocksPerYear}_At_${at}`;
|
|
64
|
+
const checkpointView = await deploy(checkpointViewName, {
|
|
65
|
+
contract: "CheckpointView",
|
|
66
|
+
from: deployer,
|
|
67
|
+
args: [oldRateModel.address, newRateModel.address, at],
|
|
68
|
+
log: true,
|
|
69
|
+
skipIfAlreadyDeployed: true,
|
|
70
|
+
waitConfirmations: 3,
|
|
71
|
+
});
|
|
72
|
+
const vToken = await deployments.get(`${symbol}`);
|
|
73
|
+
setterCode.push("");
|
|
74
|
+
setterCode.push(`// ${symbol} -> ${checkpointViewName}`);
|
|
75
|
+
if (symbol === "vBNB") {
|
|
76
|
+
const vBNBAdmin = await deployments.get("VBNBAdmin");
|
|
77
|
+
setterCode.push(`VBNBAdminInterface(${vBNBAdmin.address}).setInterestRateModel(${checkpointView.address});`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
setterCode.push(`VTokenInterface(${vToken.address})._setInterestRateModel(${checkpointView.address});`);
|
|
81
|
+
}
|
|
82
|
+
console.log(`-----------------------------------------`);
|
|
83
|
+
}
|
|
84
|
+
const setterContractCode = generateSetterContract(chain, timelock.address, setterCode);
|
|
85
|
+
(0, writeFile_1.writeGeneratedContract)(`${getSetterContractName(chain)}.sol`, setterContractCode);
|
|
86
|
+
};
|
|
87
|
+
func.tags = ["RateModelCheckpoint"];
|
|
88
|
+
func.skip = async (hre) => !Object.keys(checkpoints).includes(hre.network.name);
|
|
89
|
+
exports.default = func;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const capitalize = (s) => `${s.charAt(0).toUpperCase()}${s.substring(1)}`;
|
|
4
|
+
const getSetterContractName = (networkName) => `SetCheckpoint${capitalize(networkName)}`;
|
|
5
|
+
const func = async function (hre) {
|
|
6
|
+
const { deployments, getNamedAccounts } = hre;
|
|
7
|
+
const { deploy } = deployments;
|
|
8
|
+
const { deployer } = await getNamedAccounts();
|
|
9
|
+
const chain = hre.getNetworkName();
|
|
10
|
+
await deploy(getSetterContractName(chain), {
|
|
11
|
+
contract: getSetterContractName(chain),
|
|
12
|
+
from: deployer,
|
|
13
|
+
args: [],
|
|
14
|
+
log: true,
|
|
15
|
+
skipIfAlreadyDeployed: true,
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
func.tags = ["RateModelCheckpointSetter"];
|
|
19
|
+
func.skip = async (hre) => !["bsctestnet", "bscmainnet"].includes(hre.network.name);
|
|
20
|
+
exports.default = func;
|