Skip to content

Commit 88b77e7

Browse files
authored
Merge pull request #424 from VenusProtocol/feat/ven-2875
[VEN-2875] [VEN-2877] Deploy XVS and XVS Bridge on Base Sepolia and Mainnet
2 parents a94a957 + 0599679 commit 88b77e7

File tree

108 files changed

+52487
-7
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+52487
-7
lines changed

hardhat.config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ const config: HardhatUserConfig = {
120120
[ChainId.opbnbtestnet]: assumeCancun,
121121
[ChainId.opbnbmainnet]: assumeCancun,
122122
[ChainId.arbitrumsepolia]: assumeCancun,
123-
[ChainId.arbitrumone]: assumeCancun,
123+
// [ChainId.arbitrumone]: assumeCancun,
124124
[ChainId.opsepolia]: assumeCancun,
125125
[ChainId.opmainnet]: assumeCancun,
126126
[ChainId.basesepolia]: assumeCancun,
@@ -190,13 +190,13 @@ const config: HardhatUserConfig = {
190190
},
191191
basesepolia: {
192192
url: process.env.ARCHIVE_NODE_basesepolia || "https://sepolia.base.org",
193-
chainId: 84532,
193+
chainId: ChainId.basesepolia,
194194
accounts: DEPLOYER_PRIVATE_KEY ? [`0x${DEPLOYER_PRIVATE_KEY}`] : [],
195195
blockGasLimit: BLOCK_GAS_LIMIT_PER_NETWORK.basesepolia,
196196
},
197197
basemainnet: {
198198
url: process.env.ARCHIVE_NODE_basemainnet || "https://mainnet.base.org",
199-
chainId: 8453,
199+
chainId: ChainId.basemainnet,
200200
accounts: DEPLOYER_PRIVATE_KEY ? [`0x${DEPLOYER_PRIVATE_KEY}`] : [],
201201
blockGasLimit: BLOCK_GAS_LIMIT_PER_NETWORK.basemainnet,
202202
},
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
import { parseUnits } from "ethers/lib/utils";
2+
import { NETWORK_ADDRESSES } from "src/networkAddresses";
3+
import { LzChainId } from "src/types";
4+
import { makeProposal } from "src/utils";
5+
6+
const { basemainnet } = NETWORK_ADDRESSES;
7+
8+
const ACM = "0x9E6CeEfDC6183e4D0DF8092A9B90cDF659687daB";
9+
10+
export const XVS_BRIDGE_ADMIN_PROXY = "0x6303FEcee7161bF959d65df4Afb9e1ba5701f78e";
11+
export const XVS = "0xebB7873213c8d1d9913D8eA39Aa12d74cB107995";
12+
export const XVS_BRIDGE_DEST = "0x3dD92fB51a5d381Ae78E023dfB5DD1D45D2426Cd";
13+
14+
export const OPBNB_TRUSTED_REMOTE = "0x100D331C1B5Dcd41eACB1eCeD0e83DCEbf3498B2";
15+
export const ETHEREUM_TRUSTED_REMOTE = "0x888E317606b4c590BBAD88653863e8B345702633";
16+
export const BNB_MAINNET_TRUSTED_REMOTE = "0xf8F46791E3dB29a029Ec6c9d946226f3c613e854";
17+
export const ARBITRUM_REMOTE = "0x20cEa49B5F7a6DBD78cAE772CA5973eF360AA1e6";
18+
export const ZYSYNC_REMOTE = "0x16a62B534e09A7534CD5847CFE5Bf6a4b0c1B116";
19+
export const OP_TRUSTED_REMOTE = "0xbBe46bAec851355c3FC4856914c47eB6Cea0B8B4";
20+
21+
export const XVS_MINT_LIMIT = parseUnits("500000", 18);
22+
23+
const vip001 = () => {
24+
return makeProposal([
25+
{
26+
target: ACM,
27+
signature: "giveCallPermission(address,string,address)",
28+
params: [XVS_BRIDGE_ADMIN_PROXY, "setSendVersion(uint16)", basemainnet.GUARDIAN],
29+
},
30+
{
31+
target: ACM,
32+
signature: "giveCallPermission(address,string,address)",
33+
params: [XVS_BRIDGE_ADMIN_PROXY, "setReceiveVersion(uint16)", basemainnet.GUARDIAN],
34+
},
35+
{
36+
target: ACM,
37+
signature: "giveCallPermission(address,string,address)",
38+
params: [XVS_BRIDGE_ADMIN_PROXY, "forceResumeReceive(uint16,bytes)", basemainnet.GUARDIAN],
39+
},
40+
{
41+
target: ACM,
42+
signature: "giveCallPermission(address,string,address)",
43+
params: [XVS_BRIDGE_ADMIN_PROXY, "setOracle(address)", basemainnet.GUARDIAN],
44+
},
45+
{
46+
target: ACM,
47+
signature: "giveCallPermission(address,string,address)",
48+
params: [XVS_BRIDGE_ADMIN_PROXY, "setMaxSingleTransactionLimit(uint16,uint256)", basemainnet.GUARDIAN],
49+
},
50+
{
51+
target: ACM,
52+
signature: "giveCallPermission(address,string,address)",
53+
params: [XVS_BRIDGE_ADMIN_PROXY, "setMaxDailyLimit(uint16,uint256)", basemainnet.GUARDIAN],
54+
},
55+
{
56+
target: ACM,
57+
signature: "giveCallPermission(address,string,address)",
58+
params: [XVS_BRIDGE_ADMIN_PROXY, "setMaxSingleReceiveTransactionLimit(uint16,uint256)", basemainnet.GUARDIAN],
59+
},
60+
{
61+
target: ACM,
62+
signature: "giveCallPermission(address,string,address)",
63+
params: [XVS_BRIDGE_ADMIN_PROXY, "setMaxDailyReceiveLimit(uint16,uint256)", basemainnet.GUARDIAN],
64+
},
65+
{
66+
target: ACM,
67+
signature: "giveCallPermission(address,string,address)",
68+
params: [XVS_BRIDGE_ADMIN_PROXY, "pause()", basemainnet.GUARDIAN],
69+
},
70+
{
71+
target: ACM,
72+
signature: "giveCallPermission(address,string,address)",
73+
params: [XVS_BRIDGE_ADMIN_PROXY, "unpause()", basemainnet.GUARDIAN],
74+
},
75+
{
76+
target: ACM,
77+
signature: "giveCallPermission(address,string,address)",
78+
params: [XVS_BRIDGE_ADMIN_PROXY, "removeTrustedRemote(uint16)", basemainnet.GUARDIAN],
79+
},
80+
{
81+
target: ACM,
82+
signature: "giveCallPermission(address,string,address)",
83+
params: [XVS_BRIDGE_ADMIN_PROXY, "dropFailedMessage(uint16,bytes,uint64)", basemainnet.GUARDIAN],
84+
},
85+
{
86+
target: ACM,
87+
signature: "giveCallPermission(address,string,address)",
88+
params: [XVS_BRIDGE_ADMIN_PROXY, "setPrecrime(address)", basemainnet.GUARDIAN],
89+
},
90+
{
91+
target: ACM,
92+
signature: "giveCallPermission(address,string,address)",
93+
params: [XVS_BRIDGE_ADMIN_PROXY, "setMinDstGas(uint16,uint16,uint256)", basemainnet.GUARDIAN],
94+
},
95+
{
96+
target: ACM,
97+
signature: "giveCallPermission(address,string,address)",
98+
params: [XVS_BRIDGE_ADMIN_PROXY, "setPayloadSizeLimit(uint16,uint256)", basemainnet.GUARDIAN],
99+
},
100+
{
101+
target: ACM,
102+
signature: "giveCallPermission(address,string,address)",
103+
params: [XVS_BRIDGE_ADMIN_PROXY, "setWhitelist(address,bool)", basemainnet.GUARDIAN],
104+
},
105+
{
106+
target: ACM,
107+
signature: "giveCallPermission(address,string,address)",
108+
params: [XVS_BRIDGE_ADMIN_PROXY, "setConfig(uint16,uint16,uint256,bytes)", basemainnet.GUARDIAN],
109+
},
110+
{
111+
target: ACM,
112+
signature: "giveCallPermission(address,string,address)",
113+
params: [XVS_BRIDGE_ADMIN_PROXY, "sweepToken(address,address,uint256)", basemainnet.GUARDIAN],
114+
},
115+
{
116+
target: ACM,
117+
signature: "giveCallPermission(address,string,address)",
118+
params: [XVS_BRIDGE_ADMIN_PROXY, "updateSendAndCallEnabled(bool)", basemainnet.GUARDIAN],
119+
},
120+
{
121+
target: ACM,
122+
signature: "giveCallPermission(address,string,address)",
123+
params: [XVS, "mint(address,uint256)", XVS_BRIDGE_DEST],
124+
},
125+
{
126+
target: ACM,
127+
signature: "giveCallPermission(address,string,address)",
128+
params: [XVS, "burn(address,uint256)", XVS_BRIDGE_DEST],
129+
},
130+
{
131+
target: ACM,
132+
signature: "giveCallPermission(address,string,address)",
133+
params: [XVS_BRIDGE_ADMIN_PROXY, "setTrustedRemoteAddress(uint16,bytes)", basemainnet.GUARDIAN],
134+
},
135+
{
136+
target: ACM,
137+
signature: "giveCallPermission(address,string,address)",
138+
params: [XVS_BRIDGE_ADMIN_PROXY, "transferBridgeOwnership(address)", basemainnet.GUARDIAN],
139+
},
140+
{
141+
target: ACM,
142+
signature: "giveCallPermission(address,string,address)",
143+
params: [XVS, "migrateMinterTokens(address,address)", basemainnet.GUARDIAN],
144+
},
145+
{
146+
target: ACM,
147+
signature: "giveCallPermission(address,string,address)",
148+
params: [XVS, "setMintCap(address,uint256)", basemainnet.GUARDIAN],
149+
},
150+
{
151+
target: ACM,
152+
signature: "giveCallPermission(address,string,address)",
153+
params: [XVS, "updateBlacklist(address,bool)", basemainnet.GUARDIAN],
154+
},
155+
{
156+
target: ACM,
157+
signature: "giveCallPermission(address,string,address)",
158+
params: [XVS, "pause()", basemainnet.GUARDIAN],
159+
},
160+
{
161+
target: ACM,
162+
signature: "giveCallPermission(address,string,address)",
163+
params: [XVS, "unpause()", basemainnet.GUARDIAN],
164+
},
165+
{ target: XVS_BRIDGE_ADMIN_PROXY, signature: "acceptOwnership()", params: [] },
166+
{
167+
target: XVS_BRIDGE_ADMIN_PROXY,
168+
signature: "setTrustedRemoteAddress(uint16,bytes)",
169+
params: [LzChainId.bscmainnet, BNB_MAINNET_TRUSTED_REMOTE],
170+
},
171+
{
172+
target: XVS_BRIDGE_ADMIN_PROXY,
173+
signature: "setTrustedRemoteAddress(uint16,bytes)",
174+
params: [LzChainId.opbnbmainnet, OPBNB_TRUSTED_REMOTE],
175+
},
176+
{
177+
target: XVS_BRIDGE_ADMIN_PROXY,
178+
signature: "setTrustedRemoteAddress(uint16,bytes)",
179+
params: [LzChainId.ethereum, ETHEREUM_TRUSTED_REMOTE],
180+
},
181+
{
182+
target: XVS_BRIDGE_ADMIN_PROXY,
183+
signature: "setTrustedRemoteAddress(uint16,bytes)",
184+
params: [LzChainId.arbitrumone, ARBITRUM_REMOTE],
185+
},
186+
{
187+
target: XVS_BRIDGE_ADMIN_PROXY,
188+
signature: "setTrustedRemoteAddress(uint16,bytes)",
189+
params: [LzChainId.zksyncmainnet, ZYSYNC_REMOTE],
190+
},
191+
{
192+
target: XVS_BRIDGE_ADMIN_PROXY,
193+
signature: "setTrustedRemoteAddress(uint16,bytes)",
194+
params: [LzChainId.opmainnet, OP_TRUSTED_REMOTE],
195+
},
196+
{
197+
target: XVS_BRIDGE_ADMIN_PROXY,
198+
signature: "setWhitelist(address,bool)",
199+
params: [basemainnet.VTREASURY, true],
200+
},
201+
{
202+
target: XVS_BRIDGE_ADMIN_PROXY,
203+
signature: "setWhitelist(address,bool)",
204+
params: [basemainnet.GUARDIAN, true],
205+
},
206+
{
207+
target: XVS,
208+
signature: "setMintCap(address,uint256)",
209+
params: [XVS_BRIDGE_DEST, XVS_MINT_LIMIT],
210+
},
211+
]);
212+
};
213+
214+
export default vip001;
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import { NETWORK_ADDRESSES } from "src/networkAddresses";
2+
import { makeProposal } from "src/utils";
3+
4+
const { basemainnet } = NETWORK_ADDRESSES;
5+
6+
export const XVS_STORE = "0x11b084Cfa559a82AAC0CcD159dBea27899c7955A";
7+
export const ACM = "0x9E6CeEfDC6183e4D0DF8092A9B90cDF659687daB";
8+
9+
const vip002 = () => {
10+
return makeProposal([
11+
{
12+
target: basemainnet.XVS_VAULT_PROXY,
13+
signature: "_acceptAdmin()",
14+
params: [],
15+
},
16+
17+
{
18+
target: XVS_STORE,
19+
signature: "acceptAdmin()",
20+
params: [],
21+
},
22+
23+
{
24+
target: ACM,
25+
signature: "giveCallPermission(address,string,address)",
26+
params: [basemainnet.XVS_VAULT_PROXY, "pause()", basemainnet.GUARDIAN],
27+
},
28+
29+
{
30+
target: ACM,
31+
signature: "giveCallPermission(address,string,address)",
32+
params: [basemainnet.XVS_VAULT_PROXY, "resume()", basemainnet.GUARDIAN],
33+
},
34+
35+
{
36+
target: ACM,
37+
signature: "giveCallPermission(address,string,address)",
38+
params: [basemainnet.XVS_VAULT_PROXY, "add(address,uint256,address,uint256,uint256)", basemainnet.GUARDIAN],
39+
},
40+
41+
{
42+
target: ACM,
43+
signature: "giveCallPermission(address,string,address)",
44+
params: [basemainnet.XVS_VAULT_PROXY, "set(address,uint256,uint256)", basemainnet.GUARDIAN],
45+
},
46+
47+
{
48+
target: ACM,
49+
signature: "giveCallPermission(address,string,address)",
50+
params: [basemainnet.XVS_VAULT_PROXY, "setRewardAmountPerBlockOrSecond(address,uint256)", basemainnet.GUARDIAN], // func name changed from setRewardAmountPerBlock to setRewardAmountPerBlockOrSecond
51+
},
52+
53+
{
54+
target: ACM,
55+
signature: "giveCallPermission(address,string,address)",
56+
params: [
57+
basemainnet.XVS_VAULT_PROXY,
58+
"setWithdrawalLockingPeriod(address,uint256,uint256)",
59+
basemainnet.GUARDIAN,
60+
],
61+
},
62+
63+
{
64+
target: basemainnet.XVS_VAULT_PROXY,
65+
signature: "add(address,uint256,address,uint256,uint256)",
66+
params: [basemainnet.XVS, 100, basemainnet.XVS, "0", 604800],
67+
},
68+
{
69+
target: basemainnet.XVS_VAULT_PROXY,
70+
signature: "pause()",
71+
params: [],
72+
},
73+
]);
74+
};
75+
76+
export default vip002;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { NETWORK_ADDRESSES } from "src/networkAddresses";
2+
import { makeProposal } from "src/utils";
3+
4+
const { basemainnet } = NETWORK_ADDRESSES;
5+
6+
export const ACM = "0x9E6CeEfDC6183e4D0DF8092A9B90cDF659687daB";
7+
export const PSR = "0x3565001d57c91062367C3792B74458e3c6eD910a";
8+
export const NATIVE_TOKEN_GATEWAY_CORE_POOL = "0x8e890ca3829c740895cdEACd4a3BE36ff9343643";
9+
10+
const vip003 = () => {
11+
return makeProposal([
12+
{
13+
target: PSR,
14+
signature: "acceptOwnership()",
15+
params: [],
16+
},
17+
{
18+
target: ACM,
19+
signature: "giveCallPermission(address,string,address)",
20+
params: [PSR, "addOrUpdateDistributionConfigs(DistributionConfig[])", basemainnet.GUARDIAN],
21+
},
22+
{
23+
target: ACM,
24+
signature: "giveCallPermission(address,string,address)",
25+
params: [PSR, "removeDistributionConfig(Schema,address)", basemainnet.GUARDIAN],
26+
},
27+
{
28+
target: PSR,
29+
signature: "addOrUpdateDistributionConfigs((uint8,uint16,address)[])",
30+
params: [
31+
[
32+
[0, 10000, basemainnet.VTREASURY],
33+
[1, 10000, basemainnet.VTREASURY],
34+
],
35+
],
36+
},
37+
{
38+
target: PSR,
39+
signature: "setPoolRegistry(address)",
40+
params: [basemainnet.POOL_REGISTRY],
41+
},
42+
{
43+
target: NATIVE_TOKEN_GATEWAY_CORE_POOL,
44+
signature: "acceptOwnership()",
45+
params: [],
46+
},
47+
]);
48+
};
49+
50+
export default vip003;

0 commit comments

Comments
 (0)