|
| 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