@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.
Files changed (55) hide show
  1. package/deploy/016-rate-model-checkpoint.ts +98 -0
  2. package/deploy/17-deploy-checkpoint-setter.ts +27 -0
  3. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  4. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  5. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  6. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope1750bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  7. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  8. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope300bps_jump45000bps_kink9000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  9. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump50000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  10. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  11. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  12. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  13. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump35000bps_kink4500bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  14. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope10000bps_jump30000bps_kink100bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  15. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope1200bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  16. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  17. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base200bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  18. package/deployments/bscmainnet/CheckpointView_From_JumpRateModel_base5000bps_slope3000bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  19. package/deployments/bscmainnet/CheckpointView_From_TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  20. package/deployments/bscmainnet/CheckpointView_From_TwoKinks_base0bps_slope350bps_kink8000bps_slope217500bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  21. package/deployments/bscmainnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope0bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  22. package/deployments/bscmainnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope24000bps_bpy10512000_To_bpy21024000_At_1745903100.json +153 -0
  23. package/deployments/bscmainnet/SetCheckpointBscmainnet.json +53 -0
  24. package/deployments/bscmainnet/solcInputs/842e9e01c7cc8fd2f7629c41479754cf.json +34 -0
  25. package/deployments/bscmainnet/solcInputs/a3bade197c2ebe869d361ba22b5c6994.json +40 -0
  26. package/deployments/bscmainnet.json +1757 -0
  27. package/deployments/bscmainnet_addresses.json +21 -0
  28. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump20000bps_kink7500bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  29. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope1000bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  30. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  31. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump10900bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  32. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope500bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  33. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope687bps_jump25000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  34. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope750bps_jump5000bps_kink8000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  35. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump20000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  36. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base0bps_slope900bps_jump35000bps_kink4500bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  37. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base200bps_slope1500bps_jump30000bps_kink6000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  38. package/deployments/bsctestnet/CheckpointView_From_JumpRateModel_base200bps_slope2000bps_jump30000bps_kink5000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  39. package/deployments/bsctestnet/CheckpointView_From_TwoKinks_base0bps_slope350bps_kink8000bps_slope217500bps_base20bps_kink29000bps_jump30000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  40. package/deployments/bsctestnet/CheckpointView_From_WhitePaperInterestRateModel_base0bps_slope10000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  41. package/deployments/bsctestnet/CheckpointView_From_WhitePaperInterestRateModel_base200bps_slope1000bps_bpy10512000_To_bpy21024000_At_1744097580.json +153 -0
  42. package/deployments/bsctestnet/SetCheckpointBsctestnet.json +53 -0
  43. package/deployments/bsctestnet/solcInputs/431836192a34afbbc2d47ed2f35f38e0.json +34 -0
  44. package/deployments/bsctestnet/solcInputs/a3bade197c2ebe869d361ba22b5c6994.json +40 -0
  45. package/deployments/bsctestnet.json +1235 -0
  46. package/deployments/bsctestnet_addresses.json +15 -0
  47. package/dist/deploy/016-rate-model-checkpoint.d.ts +3 -0
  48. package/dist/deploy/016-rate-model-checkpoint.js +89 -0
  49. package/dist/deploy/17-deploy-checkpoint-setter.d.ts +3 -0
  50. package/dist/deploy/17-deploy-checkpoint-setter.js +20 -0
  51. package/dist/deployments/bscmainnet.json +1757 -0
  52. package/dist/deployments/bsctestnet.json +1235 -0
  53. package/dist/helpers/writeFile.d.ts +1 -0
  54. package/dist/helpers/writeFile.js +10 -0
  55. 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,3 @@
1
+ import { DeployFunction } from "hardhat-deploy/types";
2
+ declare const func: DeployFunction;
3
+ export default func;
@@ -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,3 @@
1
+ import { DeployFunction } from "hardhat-deploy/types";
2
+ declare const func: DeployFunction;
3
+ export 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;