Skip to content

Commit 5d6f21c

Browse files
authored
Merge pull request #496 from VenusProtocol/feat/ven-3068
[VEN-3068]: Reward Distributor and XVS Vault rewards on Unichain
2 parents c82aeb1 + 702e2e2 commit 5d6f21c

File tree

6 files changed

+2592
-0
lines changed

6 files changed

+2592
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import { parseUnits } from "ethers/lib/utils";
2+
import { ethers } from "hardhat";
3+
import { NETWORK_ADDRESSES } from "src/networkAddresses";
4+
import { makeProposal } from "src/utils";
5+
6+
const { unichainmainnet } = NETWORK_ADDRESSES;
7+
8+
export const REWARD_TOKEN_SPEED = "77160493827160"; // 200 XVS / 30 days (77160493827160 XVS/second)
9+
export const XVS = unichainmainnet.XVS;
10+
export const XVS_REWARD_AMOUNT = parseUnits("1500", 18);
11+
export const REWARD_DISTRIBUTOR_AMOUNT = parseUnits("18000", 18);
12+
export const XVS_STORE = "0x0ee4b35c2cEAb19856Bf35505F81608d12B2a7Bb";
13+
export const XVS_VAULT_PROXY = "0x5ECa0FBBc5e7bf49dbFb1953a92784F8e4248eF6";
14+
export const REWARD_DISTRIBUTOR_CORE_0 = "0x4630B71C1BD27c99DD86aBB2A18C50c3F75C88fb";
15+
export const COMPTROLLER_CORE = "0xe22af1e6b78318e1Fe1053Edbd7209b8Fc62c4Fe";
16+
export const VUSDC_CORE = "0xB953f92B9f759d97d2F2Dec10A8A3cf75fcE3A95";
17+
export const VWETH_CORE = "0xc219BC179C7cDb37eACB03f993f9fDc2495e3374";
18+
const ACM = "0x1f12014c497a9d905155eB9BfDD9FaC6885e61d0";
19+
20+
export const vip008 = () => {
21+
return makeProposal([
22+
// ACM Permissions
23+
{
24+
target: ACM,
25+
signature: "giveCallPermission(address,string,address)",
26+
params: [
27+
ethers.constants.AddressZero,
28+
"setLastRewardingBlockTimestamps(address[],uint256[],uint256[])",
29+
unichainmainnet.GUARDIAN,
30+
],
31+
},
32+
{
33+
target: ACM,
34+
signature: "giveCallPermission(address,string,address)",
35+
params: [
36+
ethers.constants.AddressZero,
37+
"setRewardTokenSpeeds(address[],uint256[],uint256[])",
38+
unichainmainnet.GUARDIAN,
39+
],
40+
},
41+
42+
// Configure pool rewards
43+
{
44+
target: unichainmainnet.VTREASURY,
45+
signature: "withdrawTreasuryToken(address,uint256,address)",
46+
params: [unichainmainnet.XVS, XVS_REWARD_AMOUNT, XVS_STORE],
47+
},
48+
{
49+
target: XVS_VAULT_PROXY,
50+
signature: "setRewardAmountPerBlockOrSecond(address,uint256)",
51+
params: [unichainmainnet.XVS, REWARD_TOKEN_SPEED],
52+
},
53+
{ target: REWARD_DISTRIBUTOR_CORE_0, signature: "acceptOwnership()", params: [] },
54+
{
55+
target: unichainmainnet.VTREASURY,
56+
signature: "withdrawTreasuryToken(address,uint256,address)",
57+
params: [unichainmainnet.XVS, REWARD_DISTRIBUTOR_AMOUNT, REWARD_DISTRIBUTOR_CORE_0],
58+
},
59+
{
60+
target: COMPTROLLER_CORE,
61+
signature: "addRewardsDistributor(address)",
62+
params: [REWARD_DISTRIBUTOR_CORE_0],
63+
},
64+
{
65+
target: REWARD_DISTRIBUTOR_CORE_0,
66+
signature: "setRewardTokenSpeeds(address[],uint256[],uint256[])",
67+
params: [
68+
[VWETH_CORE, VUSDC_CORE],
69+
["578703703703704", "578703703703704"],
70+
["192901234567901", "192901234567901"],
71+
],
72+
},
73+
]);
74+
};
75+
76+
export default vip008;

0 commit comments

Comments
 (0)