@venusprotocol/isolated-pools 3.8.0-dev.3 → 3.8.0-dev.5
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/deployments/arbitrumone/TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps.json +552 -0
- package/deployments/arbitrumone.json +352 -0
- package/deployments/arbitrumone_addresses.json +1 -0
- package/deployments/bscmainnet/JumpRateModelV2_base0bps_slope2000bps_jump25000bps_kink8000bps.json +608 -0
- package/deployments/bscmainnet/JumpRateModelV2_base200bps_slope2000bps_jump25000bps_kink8000bps.json +608 -0
- package/deployments/bscmainnet.json +825 -105
- package/deployments/bscmainnet_addresses.json +2 -0
- package/deployments/ethereum/JumpRateModelV2_base0bps_slope1750bps_jump25000bps_kink8000bps.json +608 -0
- package/deployments/ethereum/JumpRateModelV2_base0bps_slope2000bps_jump25000bps_kink8000bps.json +608 -0
- package/deployments/ethereum/TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps.json +552 -0
- package/deployments/ethereum.json +2011 -939
- package/deployments/ethereum_addresses.json +3 -0
- package/deployments/zksyncmainnet/JumpRateModelV2_base0bps_slope687bps_jump25000bps_kink8000bps.json +668 -0
- package/deployments/zksyncmainnet/TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps.json +651 -0
- package/deployments/zksyncmainnet/VToken_vwUSDM_Core.json +317 -0
- package/deployments/zksyncmainnet/solcInputs/7ee56954f4157666c7d07cfa8db6f8de.json +445 -0
- package/deployments/zksyncmainnet/solcInputs/c84b0f085ad65b3aa38a5f0d3790c387.json +448 -0
- package/deployments/zksyncmainnet.json +1243 -457
- package/deployments/zksyncmainnet_addresses.json +4 -1
- package/deployments/zksyncsepolia/JumpRateModelV2_base0bps_slope687bps_jump25000bps_kink8000bps.json +668 -0
- package/deployments/zksyncsepolia/MockUSDM.json +519 -0
- package/deployments/zksyncsepolia/MockwUSDM.json +576 -0
- package/deployments/zksyncsepolia/VToken_vwUSDM_Core.json +317 -0
- package/deployments/zksyncsepolia/solcInputs/c84b0f085ad65b3aa38a5f0d3790c387.json +448 -0
- package/deployments/zksyncsepolia.json +1160 -89
- package/deployments/zksyncsepolia_addresses.json +5 -1
- package/dist/deploy/001-deploy-mock-tokens.js +3 -2
- package/dist/deploy/009-deploy-vtokens.js +47 -3
- package/dist/deploy/019-deploy-ir-models.js +36 -2
- package/dist/deployments/arbitrumone.json +352 -0
- package/dist/deployments/bscmainnet.json +825 -105
- package/dist/deployments/ethereum.json +2011 -939
- package/dist/deployments/zksyncmainnet.json +1243 -457
- package/dist/deployments/zksyncsepolia.json +1160 -89
- package/dist/hardhat.config.js +7 -0
- package/dist/helpers/deploymentConfig.d.ts +6 -1
- package/dist/helpers/deploymentConfig.js +125 -38
- package/dist/helpers/deploymentUtils.d.ts +2 -0
- package/dist/helpers/deploymentUtils.js +6 -1
- package/dist/typechain/factories/IVToken__factory.d.ts +5 -1
- package/dist/typechain/factories/IVToken__factory.js +201 -1
- package/package.json +1 -1
- package/typechain/IVToken.d.ts +341 -4
- package/typechain/factories/IVToken__factory.ts +201 -1
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
"DefaultProxyAdmin": "0x18E44f588a4DcF2F7145d35A5C226e129040b6D3",
|
|
9
9
|
"JumpRateModelV2_base0bps_slope1500bps_jump25000bps_kink4500bps": "0xb130560618698D9A1e5184De02Dc940080f3159F",
|
|
10
10
|
"JumpRateModelV2_base0bps_slope350bps_jump25000bps_kink8000bps": "0x8138db52D03bb2740207AB7c0dc188AC6B3C3500",
|
|
11
|
+
"JumpRateModelV2_base0bps_slope687bps_jump25000bps_kink8000bps": "0xCD6f2137182affDA1883135C3351D556721B81dE",
|
|
11
12
|
"JumpRateModelV2_base0bps_slope875bps_jump25000bps_kink8000bps": "0x5454be0683eDeceD065D9A4Bd9F376a0396cDCd9",
|
|
12
13
|
"JumpRateModelV2_base0bps_slope875bps_jump8000bps_kink8000bps": "0x782D1BA04d28dbbf1Ff664B62993f69cd6225466",
|
|
13
14
|
"MockUSDC.e": "0xF98780C8a0843829f98e624d83C3FfDDf43BE984",
|
|
14
15
|
"MockUSDC": "0x512F8b4a3c466a30e8c9BAC9c64638dd710968c2",
|
|
16
|
+
"MockUSDM": "0x5d5334dBa9C727eD81b549b6106aE37Ea137076D",
|
|
15
17
|
"MockUSDT": "0x9Bf62C9C6AaB7AB8e01271f0d7A401306579709B",
|
|
16
18
|
"MockWBTC": "0xeF891B3FA37FfD83Ce8cC7b682E4CADBD8fFc6F0",
|
|
17
19
|
"MockZK": "0x8A2E9048F5d658E88D6eD89DdD1F3B5cA0250B9F",
|
|
20
|
+
"MockwUSDM": "0x0b3C8fB109f144f6296bF4Ac52F191181bEa003a",
|
|
18
21
|
"NativeTokenGateway_vWETH_Core": "0xC2bc5881f2c1ee08a1f0fee65Fbf2BB4C4DD81e9",
|
|
19
22
|
"PoolLens": "0x214Ed51c798EE53f0be79d810E9Fc91662FDE243",
|
|
20
23
|
"PoolRegistry": "0x1401404e6279BB8C06E5E3999eCA3e2008B46A76",
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
"VToken_vUSDT_Core": "0x7Bfd185eF8380a72027bF65bFEEAb0242b147778",
|
|
31
34
|
"VToken_vWBTC_Core": "0x9c2379ed8ab06B44328487f61873C7c44BD6E87D",
|
|
32
35
|
"VToken_vWETH_Core": "0x31eb7305f9fE281027028D0ba0d7f57ddA836d49",
|
|
33
|
-
"VToken_vZK_Core": "0x92f4BD794303c0BD0791B350Be5531DB38414f47"
|
|
36
|
+
"VToken_vZK_Core": "0x92f4BD794303c0BD0791B350Be5531DB38414f47",
|
|
37
|
+
"VToken_vwUSDM_Core": "0x63abcB1f579dB71b4b8A1E182adbA2F131b75681"
|
|
34
38
|
}
|
|
35
39
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const deploymentConfig_1 = require("../helpers/deploymentConfig");
|
|
4
|
+
const deploymentUtils_1 = require("../helpers/deploymentUtils");
|
|
4
5
|
const func = async function (hre) {
|
|
5
6
|
const { deployments, getNamedAccounts } = hre;
|
|
6
7
|
const { deploy } = deployments;
|
|
@@ -11,7 +12,7 @@ const func = async function (hre) {
|
|
|
11
12
|
const contractName = `Mock${token.symbol}`;
|
|
12
13
|
await deploy(contractName, {
|
|
13
14
|
from: deployer,
|
|
14
|
-
contract: "MockToken",
|
|
15
|
+
contract: token.standard === "ERC-4626" ? "MockERC4626Token" : "MockToken",
|
|
15
16
|
args: [token.name, token.symbol, token.decimals],
|
|
16
17
|
log: true,
|
|
17
18
|
autoMine: true,
|
|
@@ -21,5 +22,5 @@ const func = async function (hre) {
|
|
|
21
22
|
}
|
|
22
23
|
};
|
|
23
24
|
func.tags = ["MockTokens"];
|
|
24
|
-
func.skip =
|
|
25
|
+
func.skip = (0, deploymentUtils_1.skipMainnets)();
|
|
25
26
|
exports.default = func;
|
|
@@ -23,7 +23,16 @@ const func = async function (hre) {
|
|
|
23
23
|
const { isTimeBased, blocksPerYear } = (0, deploymentUtils_1.getBlockOrTimestampBasedDeploymentInfo)(hre.network.name);
|
|
24
24
|
const maxBorrowRateMantissa = (0, deploymentConfig_1.getMaxBorrowRateMantissa)(hre.network.name);
|
|
25
25
|
await (0, _001_source_timelocks_1.default)(hre);
|
|
26
|
+
const timelock = await (0, deploymentUtils_1.toAddress)(preconfiguredAddresses.NormalTimelock || "NormalTimelock");
|
|
26
27
|
const accessControlManagerAddress = await (0, deploymentUtils_1.toAddress)(preconfiguredAddresses.AccessControlManager || "AccessControlManager");
|
|
28
|
+
let vTokenOwner = timelock;
|
|
29
|
+
if (!vTokenOwner || !hre.network.live) {
|
|
30
|
+
console.warn("Using deployer as vToken owner");
|
|
31
|
+
vTokenOwner = deployer;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
console.warn("Using timelock as vToken owner");
|
|
35
|
+
}
|
|
27
36
|
console.log("Is Time based", isTimeBased);
|
|
28
37
|
// VToken Beacon
|
|
29
38
|
const vTokenImpl = await deploy("VTokenImpl", {
|
|
@@ -47,7 +56,7 @@ const func = async function (hre) {
|
|
|
47
56
|
const comptrollerProxy = await hardhat_1.ethers.getContract(`Comptroller_${pool.id}`);
|
|
48
57
|
// Deploy Markets
|
|
49
58
|
for (const vtoken of pool.vtokens) {
|
|
50
|
-
const { name, asset, symbol, rateModel, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, reserveFactor, } = vtoken;
|
|
59
|
+
const { name, asset, symbol, rateModel, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, reserveFactor, multiplierPerYear2, baseRatePerYear2, kink2_, } = vtoken;
|
|
51
60
|
const token = (0, deploymentConfig_1.getTokenConfig)(asset, tokensConfig);
|
|
52
61
|
let tokenContract;
|
|
53
62
|
if (token.isMock) {
|
|
@@ -78,7 +87,7 @@ const func = async function (hre) {
|
|
|
78
87
|
});
|
|
79
88
|
rateModelAddress = result.address;
|
|
80
89
|
}
|
|
81
|
-
else {
|
|
90
|
+
else if (rateModel === deploymentConfig_2.InterestRateModels.WhitePaper.toString()) {
|
|
82
91
|
const [b, m] = [baseRatePerYear, multiplierPerYear].map(mantissaToBps);
|
|
83
92
|
const rateModelName = `WhitePaperInterestRateModel_base${b}bps_slope${m}bps`;
|
|
84
93
|
const result = await deploy(rateModelName, {
|
|
@@ -91,6 +100,41 @@ const func = async function (hre) {
|
|
|
91
100
|
});
|
|
92
101
|
rateModelAddress = result.address;
|
|
93
102
|
}
|
|
103
|
+
else {
|
|
104
|
+
if (!multiplierPerYear2 || !baseRatePerYear2 || !kink2_) {
|
|
105
|
+
throw new Error(`Invalid IR model parameters for ${rateModel}`);
|
|
106
|
+
}
|
|
107
|
+
const [b, m, k, m2, b2, k2, j] = [
|
|
108
|
+
baseRatePerYear,
|
|
109
|
+
multiplierPerYear,
|
|
110
|
+
kink_,
|
|
111
|
+
multiplierPerYear2,
|
|
112
|
+
baseRatePerYear2,
|
|
113
|
+
kink2_,
|
|
114
|
+
jumpMultiplierPerYear,
|
|
115
|
+
].map(mantissaToBps);
|
|
116
|
+
const rateModelName = `TwoKinks_base${b}bps_slope${m}bps_kink${k}bps_slope2${m2}bps_base2${b2}bps_kink2${k2}bps_jump${j}bps`;
|
|
117
|
+
console.log(`Deploying interest rate model ${rateModelName}`);
|
|
118
|
+
const result = await deploy(rateModelName, {
|
|
119
|
+
from: deployer,
|
|
120
|
+
contract: "TwoKinksInterestRateModel",
|
|
121
|
+
args: [
|
|
122
|
+
baseRatePerYear,
|
|
123
|
+
multiplierPerYear,
|
|
124
|
+
kink_,
|
|
125
|
+
multiplierPerYear2,
|
|
126
|
+
baseRatePerYear2,
|
|
127
|
+
kink2_,
|
|
128
|
+
jumpMultiplierPerYear,
|
|
129
|
+
isTimeBased,
|
|
130
|
+
blocksPerYear,
|
|
131
|
+
],
|
|
132
|
+
log: true,
|
|
133
|
+
autoMine: true,
|
|
134
|
+
skipIfAlreadyDeployed: true,
|
|
135
|
+
});
|
|
136
|
+
rateModelAddress = result.address;
|
|
137
|
+
}
|
|
94
138
|
const VToken = await hardhat_1.ethers.getContractFactory("VToken");
|
|
95
139
|
const underlyingDecimals = Number(await tokenContract.decimals());
|
|
96
140
|
const vTokenDecimals = 8;
|
|
@@ -116,7 +160,7 @@ const func = async function (hre) {
|
|
|
116
160
|
name,
|
|
117
161
|
symbol,
|
|
118
162
|
vTokenDecimals,
|
|
119
|
-
|
|
163
|
+
vTokenOwner,
|
|
120
164
|
accessControlManagerAddress,
|
|
121
165
|
[utils_2.AddressOne, protocolShareReserveAddress],
|
|
122
166
|
reserveFactor,
|
|
@@ -18,7 +18,7 @@ const func = async function (hre) {
|
|
|
18
18
|
for (const pool of poolConfig) {
|
|
19
19
|
// Deploy IR Models
|
|
20
20
|
for (const vtoken of pool.vtokens) {
|
|
21
|
-
const { rateModel, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_ } = vtoken;
|
|
21
|
+
const { rateModel, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, kink2_, multiplierPerYear2, baseRatePerYear2, } = vtoken;
|
|
22
22
|
if (rateModel === deploymentConfig_2.InterestRateModels.JumpRate.toString()) {
|
|
23
23
|
const [b, m, j, k] = [baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_].map(mantissaToBps);
|
|
24
24
|
const rateModelName = `JumpRateModelV2_base${b}bps_slope${m}bps_jump${j}bps_kink${k}bps`;
|
|
@@ -39,7 +39,7 @@ const func = async function (hre) {
|
|
|
39
39
|
skipIfAlreadyDeployed: true,
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
else {
|
|
42
|
+
else if (rateModel === deploymentConfig_2.InterestRateModels.WhitePaper.toString()) {
|
|
43
43
|
const [b, m] = [baseRatePerYear, multiplierPerYear].map(mantissaToBps);
|
|
44
44
|
const rateModelName = `WhitePaperInterestRateModel_base${b}bps_slope${m}bps`;
|
|
45
45
|
await deploy(rateModelName, {
|
|
@@ -51,6 +51,40 @@ const func = async function (hre) {
|
|
|
51
51
|
skipIfAlreadyDeployed: true,
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
else {
|
|
55
|
+
if (!multiplierPerYear2 || !baseRatePerYear2 || !kink2_) {
|
|
56
|
+
throw new Error(`Invalid IR model parameters for ${rateModel}`);
|
|
57
|
+
}
|
|
58
|
+
const [b, m, k, m2, b2, k2, j] = [
|
|
59
|
+
baseRatePerYear,
|
|
60
|
+
multiplierPerYear,
|
|
61
|
+
kink_,
|
|
62
|
+
multiplierPerYear2,
|
|
63
|
+
baseRatePerYear2,
|
|
64
|
+
kink2_,
|
|
65
|
+
jumpMultiplierPerYear,
|
|
66
|
+
].map(mantissaToBps);
|
|
67
|
+
const rateModelName = `TwoKinks_base${b}bps_slope${m}bps_kink${k}bps_slope2${m2}bps_base2${b2}bps_kink2${k2}bps_jump${j}bps`;
|
|
68
|
+
console.log(`Deploying interest rate model ${rateModelName}`);
|
|
69
|
+
await deploy(rateModelName, {
|
|
70
|
+
from: deployer,
|
|
71
|
+
contract: "TwoKinksInterestRateModel",
|
|
72
|
+
args: [
|
|
73
|
+
baseRatePerYear,
|
|
74
|
+
multiplierPerYear,
|
|
75
|
+
kink_,
|
|
76
|
+
multiplierPerYear2,
|
|
77
|
+
baseRatePerYear2,
|
|
78
|
+
kink2_,
|
|
79
|
+
jumpMultiplierPerYear,
|
|
80
|
+
isTimeBased,
|
|
81
|
+
blocksPerYear,
|
|
82
|
+
],
|
|
83
|
+
log: true,
|
|
84
|
+
autoMine: true,
|
|
85
|
+
skipIfAlreadyDeployed: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
54
88
|
console.log(`-----------------------------------------`);
|
|
55
89
|
}
|
|
56
90
|
}
|
|
@@ -12654,6 +12654,358 @@
|
|
|
12654
12654
|
}
|
|
12655
12655
|
]
|
|
12656
12656
|
},
|
|
12657
|
+
"TwoKinks_base0bps_slope1500bps_kink8000bps_slope29000bps_base20bps_kink29000bps_jump30000bps": {
|
|
12658
|
+
"address": "0x8fd05f11a175A9b7E6dDcA8Ee2713E2c7f94c011",
|
|
12659
|
+
"abi": [
|
|
12660
|
+
{
|
|
12661
|
+
"inputs": [
|
|
12662
|
+
{
|
|
12663
|
+
"internalType": "int256",
|
|
12664
|
+
"name": "baseRatePerYear_",
|
|
12665
|
+
"type": "int256"
|
|
12666
|
+
},
|
|
12667
|
+
{
|
|
12668
|
+
"internalType": "int256",
|
|
12669
|
+
"name": "multiplierPerYear_",
|
|
12670
|
+
"type": "int256"
|
|
12671
|
+
},
|
|
12672
|
+
{
|
|
12673
|
+
"internalType": "int256",
|
|
12674
|
+
"name": "kink1_",
|
|
12675
|
+
"type": "int256"
|
|
12676
|
+
},
|
|
12677
|
+
{
|
|
12678
|
+
"internalType": "int256",
|
|
12679
|
+
"name": "multiplier2PerYear_",
|
|
12680
|
+
"type": "int256"
|
|
12681
|
+
},
|
|
12682
|
+
{
|
|
12683
|
+
"internalType": "int256",
|
|
12684
|
+
"name": "baseRate2PerYear_",
|
|
12685
|
+
"type": "int256"
|
|
12686
|
+
},
|
|
12687
|
+
{
|
|
12688
|
+
"internalType": "int256",
|
|
12689
|
+
"name": "kink2_",
|
|
12690
|
+
"type": "int256"
|
|
12691
|
+
},
|
|
12692
|
+
{
|
|
12693
|
+
"internalType": "int256",
|
|
12694
|
+
"name": "jumpMultiplierPerYear_",
|
|
12695
|
+
"type": "int256"
|
|
12696
|
+
},
|
|
12697
|
+
{
|
|
12698
|
+
"internalType": "bool",
|
|
12699
|
+
"name": "timeBased_",
|
|
12700
|
+
"type": "bool"
|
|
12701
|
+
},
|
|
12702
|
+
{
|
|
12703
|
+
"internalType": "uint256",
|
|
12704
|
+
"name": "blocksPerYear_",
|
|
12705
|
+
"type": "uint256"
|
|
12706
|
+
}
|
|
12707
|
+
],
|
|
12708
|
+
"stateMutability": "nonpayable",
|
|
12709
|
+
"type": "constructor"
|
|
12710
|
+
},
|
|
12711
|
+
{
|
|
12712
|
+
"inputs": [],
|
|
12713
|
+
"name": "InvalidBlocksPerYear",
|
|
12714
|
+
"type": "error"
|
|
12715
|
+
},
|
|
12716
|
+
{
|
|
12717
|
+
"inputs": [],
|
|
12718
|
+
"name": "InvalidKink",
|
|
12719
|
+
"type": "error"
|
|
12720
|
+
},
|
|
12721
|
+
{
|
|
12722
|
+
"inputs": [],
|
|
12723
|
+
"name": "InvalidTimeBasedConfiguration",
|
|
12724
|
+
"type": "error"
|
|
12725
|
+
},
|
|
12726
|
+
{
|
|
12727
|
+
"inputs": [],
|
|
12728
|
+
"name": "NegativeValueNotAllowed",
|
|
12729
|
+
"type": "error"
|
|
12730
|
+
},
|
|
12731
|
+
{
|
|
12732
|
+
"inputs": [],
|
|
12733
|
+
"name": "BASE_RATE_2_PER_BLOCK_OR_SECOND",
|
|
12734
|
+
"outputs": [
|
|
12735
|
+
{
|
|
12736
|
+
"internalType": "int256",
|
|
12737
|
+
"name": "",
|
|
12738
|
+
"type": "int256"
|
|
12739
|
+
}
|
|
12740
|
+
],
|
|
12741
|
+
"stateMutability": "view",
|
|
12742
|
+
"type": "function"
|
|
12743
|
+
},
|
|
12744
|
+
{
|
|
12745
|
+
"inputs": [],
|
|
12746
|
+
"name": "BASE_RATE_PER_BLOCK_OR_SECOND",
|
|
12747
|
+
"outputs": [
|
|
12748
|
+
{
|
|
12749
|
+
"internalType": "int256",
|
|
12750
|
+
"name": "",
|
|
12751
|
+
"type": "int256"
|
|
12752
|
+
}
|
|
12753
|
+
],
|
|
12754
|
+
"stateMutability": "view",
|
|
12755
|
+
"type": "function"
|
|
12756
|
+
},
|
|
12757
|
+
{
|
|
12758
|
+
"inputs": [],
|
|
12759
|
+
"name": "JUMP_MULTIPLIER_PER_BLOCK_OR_SECOND",
|
|
12760
|
+
"outputs": [
|
|
12761
|
+
{
|
|
12762
|
+
"internalType": "int256",
|
|
12763
|
+
"name": "",
|
|
12764
|
+
"type": "int256"
|
|
12765
|
+
}
|
|
12766
|
+
],
|
|
12767
|
+
"stateMutability": "view",
|
|
12768
|
+
"type": "function"
|
|
12769
|
+
},
|
|
12770
|
+
{
|
|
12771
|
+
"inputs": [],
|
|
12772
|
+
"name": "KINK_1",
|
|
12773
|
+
"outputs": [
|
|
12774
|
+
{
|
|
12775
|
+
"internalType": "int256",
|
|
12776
|
+
"name": "",
|
|
12777
|
+
"type": "int256"
|
|
12778
|
+
}
|
|
12779
|
+
],
|
|
12780
|
+
"stateMutability": "view",
|
|
12781
|
+
"type": "function"
|
|
12782
|
+
},
|
|
12783
|
+
{
|
|
12784
|
+
"inputs": [],
|
|
12785
|
+
"name": "KINK_2",
|
|
12786
|
+
"outputs": [
|
|
12787
|
+
{
|
|
12788
|
+
"internalType": "int256",
|
|
12789
|
+
"name": "",
|
|
12790
|
+
"type": "int256"
|
|
12791
|
+
}
|
|
12792
|
+
],
|
|
12793
|
+
"stateMutability": "view",
|
|
12794
|
+
"type": "function"
|
|
12795
|
+
},
|
|
12796
|
+
{
|
|
12797
|
+
"inputs": [],
|
|
12798
|
+
"name": "MULTIPLIER_2_PER_BLOCK_OR_SECOND",
|
|
12799
|
+
"outputs": [
|
|
12800
|
+
{
|
|
12801
|
+
"internalType": "int256",
|
|
12802
|
+
"name": "",
|
|
12803
|
+
"type": "int256"
|
|
12804
|
+
}
|
|
12805
|
+
],
|
|
12806
|
+
"stateMutability": "view",
|
|
12807
|
+
"type": "function"
|
|
12808
|
+
},
|
|
12809
|
+
{
|
|
12810
|
+
"inputs": [],
|
|
12811
|
+
"name": "MULTIPLIER_PER_BLOCK_OR_SECOND",
|
|
12812
|
+
"outputs": [
|
|
12813
|
+
{
|
|
12814
|
+
"internalType": "int256",
|
|
12815
|
+
"name": "",
|
|
12816
|
+
"type": "int256"
|
|
12817
|
+
}
|
|
12818
|
+
],
|
|
12819
|
+
"stateMutability": "view",
|
|
12820
|
+
"type": "function"
|
|
12821
|
+
},
|
|
12822
|
+
{
|
|
12823
|
+
"inputs": [],
|
|
12824
|
+
"name": "RATE_1",
|
|
12825
|
+
"outputs": [
|
|
12826
|
+
{
|
|
12827
|
+
"internalType": "int256",
|
|
12828
|
+
"name": "",
|
|
12829
|
+
"type": "int256"
|
|
12830
|
+
}
|
|
12831
|
+
],
|
|
12832
|
+
"stateMutability": "view",
|
|
12833
|
+
"type": "function"
|
|
12834
|
+
},
|
|
12835
|
+
{
|
|
12836
|
+
"inputs": [],
|
|
12837
|
+
"name": "RATE_2",
|
|
12838
|
+
"outputs": [
|
|
12839
|
+
{
|
|
12840
|
+
"internalType": "int256",
|
|
12841
|
+
"name": "",
|
|
12842
|
+
"type": "int256"
|
|
12843
|
+
}
|
|
12844
|
+
],
|
|
12845
|
+
"stateMutability": "view",
|
|
12846
|
+
"type": "function"
|
|
12847
|
+
},
|
|
12848
|
+
{
|
|
12849
|
+
"inputs": [],
|
|
12850
|
+
"name": "blocksOrSecondsPerYear",
|
|
12851
|
+
"outputs": [
|
|
12852
|
+
{
|
|
12853
|
+
"internalType": "uint256",
|
|
12854
|
+
"name": "",
|
|
12855
|
+
"type": "uint256"
|
|
12856
|
+
}
|
|
12857
|
+
],
|
|
12858
|
+
"stateMutability": "view",
|
|
12859
|
+
"type": "function"
|
|
12860
|
+
},
|
|
12861
|
+
{
|
|
12862
|
+
"inputs": [],
|
|
12863
|
+
"name": "getBlockNumberOrTimestamp",
|
|
12864
|
+
"outputs": [
|
|
12865
|
+
{
|
|
12866
|
+
"internalType": "uint256",
|
|
12867
|
+
"name": "",
|
|
12868
|
+
"type": "uint256"
|
|
12869
|
+
}
|
|
12870
|
+
],
|
|
12871
|
+
"stateMutability": "view",
|
|
12872
|
+
"type": "function"
|
|
12873
|
+
},
|
|
12874
|
+
{
|
|
12875
|
+
"inputs": [
|
|
12876
|
+
{
|
|
12877
|
+
"internalType": "uint256",
|
|
12878
|
+
"name": "cash",
|
|
12879
|
+
"type": "uint256"
|
|
12880
|
+
},
|
|
12881
|
+
{
|
|
12882
|
+
"internalType": "uint256",
|
|
12883
|
+
"name": "borrows",
|
|
12884
|
+
"type": "uint256"
|
|
12885
|
+
},
|
|
12886
|
+
{
|
|
12887
|
+
"internalType": "uint256",
|
|
12888
|
+
"name": "reserves",
|
|
12889
|
+
"type": "uint256"
|
|
12890
|
+
},
|
|
12891
|
+
{
|
|
12892
|
+
"internalType": "uint256",
|
|
12893
|
+
"name": "badDebt",
|
|
12894
|
+
"type": "uint256"
|
|
12895
|
+
}
|
|
12896
|
+
],
|
|
12897
|
+
"name": "getBorrowRate",
|
|
12898
|
+
"outputs": [
|
|
12899
|
+
{
|
|
12900
|
+
"internalType": "uint256",
|
|
12901
|
+
"name": "",
|
|
12902
|
+
"type": "uint256"
|
|
12903
|
+
}
|
|
12904
|
+
],
|
|
12905
|
+
"stateMutability": "view",
|
|
12906
|
+
"type": "function"
|
|
12907
|
+
},
|
|
12908
|
+
{
|
|
12909
|
+
"inputs": [
|
|
12910
|
+
{
|
|
12911
|
+
"internalType": "uint256",
|
|
12912
|
+
"name": "cash",
|
|
12913
|
+
"type": "uint256"
|
|
12914
|
+
},
|
|
12915
|
+
{
|
|
12916
|
+
"internalType": "uint256",
|
|
12917
|
+
"name": "borrows",
|
|
12918
|
+
"type": "uint256"
|
|
12919
|
+
},
|
|
12920
|
+
{
|
|
12921
|
+
"internalType": "uint256",
|
|
12922
|
+
"name": "reserves",
|
|
12923
|
+
"type": "uint256"
|
|
12924
|
+
},
|
|
12925
|
+
{
|
|
12926
|
+
"internalType": "uint256",
|
|
12927
|
+
"name": "reserveFactorMantissa",
|
|
12928
|
+
"type": "uint256"
|
|
12929
|
+
},
|
|
12930
|
+
{
|
|
12931
|
+
"internalType": "uint256",
|
|
12932
|
+
"name": "badDebt",
|
|
12933
|
+
"type": "uint256"
|
|
12934
|
+
}
|
|
12935
|
+
],
|
|
12936
|
+
"name": "getSupplyRate",
|
|
12937
|
+
"outputs": [
|
|
12938
|
+
{
|
|
12939
|
+
"internalType": "uint256",
|
|
12940
|
+
"name": "",
|
|
12941
|
+
"type": "uint256"
|
|
12942
|
+
}
|
|
12943
|
+
],
|
|
12944
|
+
"stateMutability": "view",
|
|
12945
|
+
"type": "function"
|
|
12946
|
+
},
|
|
12947
|
+
{
|
|
12948
|
+
"inputs": [],
|
|
12949
|
+
"name": "isInterestRateModel",
|
|
12950
|
+
"outputs": [
|
|
12951
|
+
{
|
|
12952
|
+
"internalType": "bool",
|
|
12953
|
+
"name": "",
|
|
12954
|
+
"type": "bool"
|
|
12955
|
+
}
|
|
12956
|
+
],
|
|
12957
|
+
"stateMutability": "pure",
|
|
12958
|
+
"type": "function"
|
|
12959
|
+
},
|
|
12960
|
+
{
|
|
12961
|
+
"inputs": [],
|
|
12962
|
+
"name": "isTimeBased",
|
|
12963
|
+
"outputs": [
|
|
12964
|
+
{
|
|
12965
|
+
"internalType": "bool",
|
|
12966
|
+
"name": "",
|
|
12967
|
+
"type": "bool"
|
|
12968
|
+
}
|
|
12969
|
+
],
|
|
12970
|
+
"stateMutability": "view",
|
|
12971
|
+
"type": "function"
|
|
12972
|
+
},
|
|
12973
|
+
{
|
|
12974
|
+
"inputs": [
|
|
12975
|
+
{
|
|
12976
|
+
"internalType": "uint256",
|
|
12977
|
+
"name": "cash",
|
|
12978
|
+
"type": "uint256"
|
|
12979
|
+
},
|
|
12980
|
+
{
|
|
12981
|
+
"internalType": "uint256",
|
|
12982
|
+
"name": "borrows",
|
|
12983
|
+
"type": "uint256"
|
|
12984
|
+
},
|
|
12985
|
+
{
|
|
12986
|
+
"internalType": "uint256",
|
|
12987
|
+
"name": "reserves",
|
|
12988
|
+
"type": "uint256"
|
|
12989
|
+
},
|
|
12990
|
+
{
|
|
12991
|
+
"internalType": "uint256",
|
|
12992
|
+
"name": "badDebt",
|
|
12993
|
+
"type": "uint256"
|
|
12994
|
+
}
|
|
12995
|
+
],
|
|
12996
|
+
"name": "utilizationRate",
|
|
12997
|
+
"outputs": [
|
|
12998
|
+
{
|
|
12999
|
+
"internalType": "uint256",
|
|
13000
|
+
"name": "",
|
|
13001
|
+
"type": "uint256"
|
|
13002
|
+
}
|
|
13003
|
+
],
|
|
13004
|
+
"stateMutability": "pure",
|
|
13005
|
+
"type": "function"
|
|
13006
|
+
}
|
|
13007
|
+
]
|
|
13008
|
+
},
|
|
12657
13009
|
"VTokenBeacon": {
|
|
12658
13010
|
"address": "0xE9381D8CA7006c12Ae9eB97890575E705996fa66",
|
|
12659
13011
|
"abi": [
|