@venusprotocol/venus-protocol 7.1.0-dev.2 → 7.1.0-dev.3
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/005-update-governance.ts +15 -6
- package/deploy/008-deploy-prime.ts +44 -35
- package/deploy/009-configure-vaults.ts +1 -0
- package/deployments/ethereum/XVSStore.json +374 -0
- package/deployments/ethereum/XVSVault.json +2373 -0
- package/deployments/ethereum/XVSVaultProxy.json +352 -0
- package/deployments/ethereum/solcInputs/7830d2b3dd486e9651687b362529ec15.json +345 -0
- package/deployments/ethereum.json +2040 -0
- package/deployments/ethereum_addresses.json +4 -1
- package/deployments/opbnbtestnet/XVSStore.json +374 -0
- package/deployments/opbnbtestnet/XVSVault.json +2373 -0
- package/deployments/opbnbtestnet/XVSVaultProxy.json +352 -0
- package/deployments/opbnbtestnet/solcInputs/6955f97c86c4a782497d93a270048fd7.json +345 -0
- package/deployments/opbnbtestnet.json +2040 -0
- package/deployments/opbnbtestnet_addresses.json +4 -1
- package/deployments/sepolia/Prime.json +2047 -0
- package/deployments/sepolia/PrimeLiquidityProvider.json +1118 -0
- package/deployments/sepolia/PrimeLiquidityProvider_Implementation.json +1415 -0
- package/deployments/sepolia/PrimeLiquidityProvider_Proxy.json +277 -0
- package/deployments/sepolia/Prime_Implementation.json +2949 -0
- package/deployments/sepolia/Prime_Proxy.json +287 -0
- package/deployments/sepolia/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
- package/deployments/sepolia/solcInputs/12c4cccf56f76ea87e105d789e4ae67f.json +228 -0
- package/deployments/sepolia/solcInputs/eda719eaabd93845f8c222de346f78bb.json +84 -0
- package/deployments/sepolia.json +5823 -0
- package/deployments/sepolia_addresses.json +6 -0
- package/dist/deploy/005-update-governance.js +11 -5
- package/dist/deploy/008-deploy-prime.js +36 -33
- package/dist/deploy/009-configure-vaults.js +2 -1
- package/dist/deployments/sepolia.json +8063 -0
- package/dist/hardhat.config.js +7 -2
- package/dist/helpers/address.d.ts +28 -48
- package/dist/helpers/address.js +15 -0
- package/package.json +4 -2
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
"name": "sepolia",
|
|
3
3
|
"chainId": "11155111",
|
|
4
4
|
"addresses": {
|
|
5
|
+
"Prime": "0x27A8ca2aFa10B9Bc1E57FC4Ca610d9020Aab3739",
|
|
6
|
+
"PrimeLiquidityProvider": "0x4fCbfE445396f31005b3Fd2F6DE2A986d6E2dCB5",
|
|
7
|
+
"PrimeLiquidityProvider_Implementation": "0x6022165344bBD1DDF1E1F10F4736FD9fb58D5B71",
|
|
8
|
+
"PrimeLiquidityProvider_Proxy": "0x4fCbfE445396f31005b3Fd2F6DE2A986d6E2dCB5",
|
|
9
|
+
"Prime_Implementation": "0xF68E8925d45fb6679aE8caF7f859C76BdD964325",
|
|
10
|
+
"Prime_Proxy": "0x27A8ca2aFa10B9Bc1E57FC4Ca610d9020Aab3739",
|
|
5
11
|
"VTreasuryV8": "0x4116CA92960dF77756aAAc3aFd91361dB657fbF8",
|
|
6
12
|
"XVSStore": "0x03B868C7858F50900fecE4eBc851199e957b5d3D",
|
|
7
13
|
"XVSVault": "0x4129dF6BB93E9ABb9CC40816E63Be77c3042Ef27",
|
|
@@ -44,18 +44,24 @@ const func = async function (hre) {
|
|
|
44
44
|
const { deployer } = await getNamedAccounts();
|
|
45
45
|
const { deploy } = deployments;
|
|
46
46
|
const addresses = address_1.default[networkName];
|
|
47
|
-
|
|
47
|
+
if (!addresses.governorProxy || !addresses.xvsVault || !addresses.normalVipTimelock) {
|
|
48
|
+
throw new Error(`GovernorProxy, XVSVault and NormalTimelock addresses must be defined in ${networkName}`);
|
|
49
|
+
}
|
|
50
|
+
const governorProxyAddress = addresses.governorProxy.toString();
|
|
51
|
+
const xvsVaultAddress = addresses.xvsVault.toString();
|
|
52
|
+
const normalVipTimelockAddress = addresses.normalVipTimelock.toString();
|
|
53
|
+
const governorProxy = await ethers.getContractAt("GovernorBravoDelegator", governorProxyAddress);
|
|
48
54
|
const timeLockFastTrack = await deploy("Timelock_FastTrack", {
|
|
49
55
|
contract: "Timelock",
|
|
50
56
|
from: deployer,
|
|
51
|
-
args: [
|
|
57
|
+
args: [governorProxyAddress, timelockDelays[networkName].FAST_TRACK],
|
|
52
58
|
log: true,
|
|
53
59
|
autoMine: true,
|
|
54
60
|
});
|
|
55
61
|
const timeLockCritical = await deploy("Timelock_Critical", {
|
|
56
62
|
contract: "Timelock",
|
|
57
63
|
from: deployer,
|
|
58
|
-
args: [
|
|
64
|
+
args: [governorProxyAddress, timelockDelays[networkName].CRITICAL],
|
|
59
65
|
log: true,
|
|
60
66
|
autoMine: true,
|
|
61
67
|
});
|
|
@@ -73,8 +79,8 @@ const func = async function (hre) {
|
|
|
73
79
|
await tx.wait();
|
|
74
80
|
console.log("New implementation successfully set to: " + newImplementation.address);
|
|
75
81
|
}
|
|
76
|
-
const governorProxy_Impl = (await ethers.getContractAt("GovernorBravoDelegate",
|
|
77
|
-
tx = await governorProxy_Impl.initialize(
|
|
82
|
+
const governorProxy_Impl = (await ethers.getContractAt("GovernorBravoDelegate", governorProxyAddress));
|
|
83
|
+
tx = await governorProxy_Impl.initialize(xvsVaultAddress, PROPOSAL_CONFIGS, [normalVipTimelockAddress, timeLockFastTrack.address, timeLockCritical.address], deployer);
|
|
78
84
|
await tx.wait();
|
|
79
85
|
console.log("Sucessfully initialized new governance via proxy: " + governorProxy.address);
|
|
80
86
|
}
|
|
@@ -9,20 +9,39 @@ const func = async function (hre) {
|
|
|
9
9
|
const { deployments, network, getNamedAccounts } = hre;
|
|
10
10
|
const { deploy } = deployments;
|
|
11
11
|
const { deployer } = await getNamedAccounts();
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const TEN_MINUTES = 60 * 10;
|
|
13
|
+
const NINETY_DAYS = 90 * 24 * 60 * 60;
|
|
14
|
+
const ZERO_ADDRESS = hardhat_1.ethers.constants.AddressZero;
|
|
15
|
+
const stakingPeriod = {
|
|
16
|
+
bsctestnet: TEN_MINUTES,
|
|
17
|
+
sepolia: TEN_MINUTES,
|
|
18
|
+
bscmainnet: NINETY_DAYS,
|
|
19
|
+
ethereum: NINETY_DAYS,
|
|
20
|
+
};
|
|
21
|
+
const xVSVaultPoolId = {
|
|
22
|
+
bsctestnet: 1,
|
|
23
|
+
sepolia: 0,
|
|
24
|
+
bscmainnet: 0,
|
|
25
|
+
ethereum: 0,
|
|
26
|
+
};
|
|
27
|
+
const blocksPerYear = {
|
|
28
|
+
bsctestnet: 10512000,
|
|
29
|
+
sepolia: 2628000,
|
|
30
|
+
bscmainnet: 10512000,
|
|
31
|
+
ethereum: 2628000,
|
|
32
|
+
};
|
|
33
|
+
const networkName = network.name;
|
|
14
34
|
const maximumXVSCap = hardhat_1.ethers.utils.parseEther("100000");
|
|
15
35
|
const minimumXVS = hardhat_1.ethers.utils.parseEther("1000");
|
|
16
|
-
const xVSVaultPoolId = networkName === "bscmainnet" ? 0 : 1;
|
|
17
36
|
const xvsVaultAlphaNumerator = 1;
|
|
18
37
|
const xvsVaultAlphaDenominator = 2;
|
|
19
|
-
const blocksPeryear = 10512000;
|
|
20
38
|
const loopsLimit = 20;
|
|
39
|
+
const isTimeBased = false; // revise this value when deploying on L2s
|
|
21
40
|
await deploy("PrimeLiquidityProvider", {
|
|
22
41
|
from: deployer,
|
|
23
42
|
log: true,
|
|
24
43
|
deterministicDeployment: false,
|
|
25
|
-
args: [],
|
|
44
|
+
args: [isTimeBased, blocksPerYear[networkName]],
|
|
26
45
|
proxy: {
|
|
27
46
|
owner: address_1.default[networkName].normalVipTimelock,
|
|
28
47
|
proxyContract: "OpenZeppelinTransparentProxy",
|
|
@@ -33,17 +52,21 @@ const func = async function (hre) {
|
|
|
33
52
|
},
|
|
34
53
|
});
|
|
35
54
|
const plp = await hardhat_1.ethers.getContract("PrimeLiquidityProvider");
|
|
55
|
+
const corePoolAddress = address_1.default[networkName].unitroller;
|
|
56
|
+
const wrappedNativeToken = address_1.default[networkName].wbnb;
|
|
57
|
+
const nativeMarket = address_1.default[networkName].vbnb;
|
|
36
58
|
await deploy("Prime", {
|
|
37
59
|
from: deployer,
|
|
38
60
|
log: true,
|
|
39
61
|
deterministicDeployment: false,
|
|
40
62
|
args: [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
stakingPeriod,
|
|
63
|
+
wrappedNativeToken ? wrappedNativeToken : ZERO_ADDRESS,
|
|
64
|
+
nativeMarket ? nativeMarket : ZERO_ADDRESS,
|
|
65
|
+
blocksPerYear[networkName],
|
|
66
|
+
stakingPeriod[networkName],
|
|
45
67
|
minimumXVS,
|
|
46
68
|
maximumXVSCap,
|
|
69
|
+
isTimeBased,
|
|
47
70
|
],
|
|
48
71
|
proxy: {
|
|
49
72
|
owner: address_1.default[networkName].normalVipTimelock,
|
|
@@ -53,41 +76,21 @@ const func = async function (hre) {
|
|
|
53
76
|
args: [
|
|
54
77
|
address_1.default[networkName].xvsVault,
|
|
55
78
|
address_1.default[networkName].xvs,
|
|
56
|
-
xVSVaultPoolId,
|
|
79
|
+
xVSVaultPoolId[networkName],
|
|
57
80
|
xvsVaultAlphaNumerator,
|
|
58
81
|
xvsVaultAlphaDenominator,
|
|
59
82
|
address_1.default[networkName].acm,
|
|
60
83
|
plp.address,
|
|
61
|
-
|
|
84
|
+
corePoolAddress ? corePoolAddress : ZERO_ADDRESS,
|
|
62
85
|
address_1.default[networkName].oracle,
|
|
63
86
|
loopsLimit,
|
|
64
87
|
],
|
|
65
88
|
},
|
|
66
89
|
},
|
|
67
90
|
});
|
|
68
|
-
await deploy("XVSVault", {
|
|
69
|
-
from: deployer,
|
|
70
|
-
log: true,
|
|
71
|
-
deterministicDeployment: false,
|
|
72
|
-
args: [],
|
|
73
|
-
proxy: false,
|
|
74
|
-
});
|
|
75
|
-
await deploy("PolicyFacet", {
|
|
76
|
-
from: deployer,
|
|
77
|
-
log: true,
|
|
78
|
-
deterministicDeployment: false,
|
|
79
|
-
args: [],
|
|
80
|
-
proxy: false,
|
|
81
|
-
});
|
|
82
|
-
await deploy("SetterFacet", {
|
|
83
|
-
from: deployer,
|
|
84
|
-
log: true,
|
|
85
|
-
deterministicDeployment: false,
|
|
86
|
-
args: [],
|
|
87
|
-
proxy: false,
|
|
88
|
-
});
|
|
89
|
-
console.log("Transferring Prime ownership to Timelock");
|
|
90
91
|
const prime = await hardhat_1.ethers.getContract("Prime");
|
|
92
|
+
await prime.initializeV2(address_1.default[networkName].poolRegistry);
|
|
93
|
+
console.log("Transferring Prime ownership to Timelock");
|
|
91
94
|
await prime.transferOwnership(address_1.default[networkName].normalVipTimelock);
|
|
92
95
|
console.log("Transferring PLP ownership to Timelock");
|
|
93
96
|
await plp.transferOwnership(address_1.default[networkName].normalVipTimelock);
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const hardhat_1 = require("hardhat");
|
|
4
4
|
const adminAccount = {
|
|
5
5
|
sepolia: "0x94fa6078b6b8a26f0b6edffbe6501b22a10470fb",
|
|
6
|
-
ethereum: "0x285960C5B22fD66A736C7136967A3eB15e93CC67",
|
|
6
|
+
ethereum: "0x285960C5B22fD66A736C7136967A3eB15e93CC67",
|
|
7
|
+
opbnbtestnet: "0xb15f6EfEbC276A3b9805df81b5FB3D50C2A62BDf", // OPBNBTESTNET MULTISIG
|
|
7
8
|
};
|
|
8
9
|
const func = async function (hre) {
|
|
9
10
|
const { getNamedAccounts } = hre;
|