Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VEN-2879] Deploy IL Markets and Pools to Base Sepolia and Mainnet #427

Merged
merged 42 commits into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
3d15dec
wip - vip
web3rover Nov 15, 2024
d535f6f
Merge branch 'feat/ven-2878' into feat/ven-2879
web3rover Nov 15, 2024
18c39f1
fix: add other markets
web3rover Nov 15, 2024
6728485
fix: stale addresses and simulations
GitGuru7 Nov 22, 2024
ae4aada
feat: added vip for prime deployment
web3rover Nov 26, 2024
3368314
fix: fixed simulation
web3rover Nov 26, 2024
4759ecd
feat: wip - vip for multichain governance
web3rover Nov 27, 2024
c5077d3
feat: wip - bsctestnet vip
web3rover Nov 28, 2024
bbbfde3
fix: fixed simulation
web3rover Nov 28, 2024
a4fc247
fix: call initialise v2 and set prime in comptroller
web3rover Nov 28, 2024
4015688
fix: fixed prime permissions
web3rover Nov 28, 2024
ceb81a0
Merge branch 'feat/ven-2880' into feat/ven-2882
web3rover Nov 29, 2024
8d40d6a
Merge branch 'feat/ven-2878' into feat/ven-2879
web3rover Dec 2, 2024
fa6d68e
Merge branch 'feat/ven-2879' into feat/ven-2880
web3rover Dec 2, 2024
995c857
fix: updated addresses
web3rover Dec 2, 2024
01ef99e
Merge branch 'feat/ven-2880' into feat/ven-2882
web3rover Dec 2, 2024
953bec0
fix: fixed permissions
web3rover Dec 2, 2024
722b2be
Merge branch 'feat/ven-2878' into feat/ven-2879
chechu Dec 3, 2024
1292331
feat: remove unneeded commands
chechu Dec 3, 2024
3d96b4c
fix: fixed description
web3rover Dec 3, 2024
f383be6
fix: remove grant permissions
web3rover Dec 4, 2024
7630d77
fix: added revoke commands
web3rover Dec 4, 2024
8609c4a
fix: fixed description
web3rover Dec 4, 2024
8e3499b
Merge branch 'feat/ven-2879' into feat/ven-2880
chechu Dec 4, 2024
cbbaa17
chore: move to a new temporary ID to avoid conflicts
chechu Dec 4, 2024
70affb5
Merge branch 'feat/ven-2880' into feat/ven-2882
chechu Dec 4, 2024
4e86f8f
fix: updated revoke commands index
web3rover Dec 4, 2024
9c0e4cf
Merge branch 'feat/ven-2878' into feat/ven-2879
web3rover Dec 6, 2024
98c7fd4
feat: added mainnet multisig txn
web3rover Dec 6, 2024
0f57412
Merge branch 'feat/ven-2879' into feat/ven-2880
web3rover Dec 9, 2024
d2788e7
Merge branch 'feat/ven-2880' of github.com:VenusProtocol/vips into fe…
web3rover Dec 9, 2024
4c326b8
fix: added prime on base mainnet
web3rover Dec 9, 2024
d272e1e
Merge branch 'feat/ven-2880' into feat/ven-2882
web3rover Dec 10, 2024
8ebcad5
feat: update simulation after executing previous TX
chechu Dec 14, 2024
6d3814e
feat: update simulation after executing previous TX
chechu Dec 15, 2024
2914730
feat: added base mainnet vip
web3rover Dec 10, 2024
3952040
feat: refund venus stars account
web3rover Dec 16, 2024
948154d
feat: set id for VIP-408
kkirka Dec 16, 2024
f7f352b
feat: add title and description for VIP-408
kkirka Dec 16, 2024
d758ce5
Merge pull request #433 from VenusProtocol/feat/ven-2882
chechu Dec 18, 2024
c27d26f
chore: fix linter
chechu Dec 18, 2024
9ed2d59
Merge pull request #432 from VenusProtocol/feat/ven-2880
chechu Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
281 changes: 281 additions & 0 deletions multisig/proposals/basemainnet/vip-004/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
import { parseUnits } from "ethers/lib/utils";
import { NETWORK_ADDRESSES, ZERO_ADDRESS } from "src/networkAddresses";
import { makeProposal } from "src/utils";

const { basemainnet } = NETWORK_ADDRESSES;

export const ACM = "0x9E6CeEfDC6183e4D0DF8092A9B90cDF659687daB";
export const COMPTROLLER_CORE = "0x0C7973F9598AA62f9e03B94E92C967fD5437426C";

export const cbBTC = "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
export const WETH = "0x4200000000000000000000000000000000000006";
export const USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";

export const VCBBTC_CORE = "0x7bBd1005bB24Ec84705b04e1f2DfcCad533b6D72";
export const VWETH_CORE = "0xEB8A79bD44cF4500943bf94a2b4434c95C008599";
export const VUSDC_CORE = "0x3cb752d175740043Ec463673094e06ACDa2F9a2e";

// IL configuration
const vip004 = () => {
return makeProposal([
// Permissions
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setCollateralFactor(address,uint256,uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMarketSupplyCaps(address[],uint256[])", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMarketBorrowCaps(address[],uint256[])", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setLiquidationIncentive(uint256)", basemainnet.GUARDIAN],
},

{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setCloseFactor(uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMinLiquidatableCollateral(uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setActionsPaused(address[],uint256[],bool)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setForcedLiquidation(address,bool)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [basemainnet.POOL_REGISTRY, "addPool(string,address,uint256,uint256,uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [basemainnet.POOL_REGISTRY, "setPoolName(address,string)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [basemainnet.POOL_REGISTRY, "updatePoolMetadata(address,VenusPoolMetaData)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setProtocolSeizeShare(uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setReserveFactor(uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setInterestRateModel(address)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "updateJumpRateModel(uint256,uint256,uint256,uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setRewardTokenSpeeds(address[],uint256[],uint256[])", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setLastRewardingBlockTimestamps(address[],uint256[],uint256[])", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setCollateralFactor(address,uint256,uint256)", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [basemainnet.POOL_REGISTRY, "addMarket(AddMarketInput)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setReduceReservesBlockDelta(uint256)", basemainnet.GUARDIAN],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMarketSupplyCaps(address[],uint256[])", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMarketBorrowCaps(address[],uint256[])", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setLiquidationIncentive(uint256)", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setCloseFactor(uint256)", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "setMinLiquidatableCollateral(uint256)", basemainnet.POOL_REGISTRY],
},
{
target: ACM,
signature: "giveCallPermission(address,string,address)",
params: [ZERO_ADDRESS, "supportMarket(address)", basemainnet.POOL_REGISTRY],
},
{ target: basemainnet.POOL_REGISTRY, signature: "acceptOwnership()", params: [] },
{ target: COMPTROLLER_CORE, signature: "acceptOwnership()", params: [] },
{
target: COMPTROLLER_CORE,
signature: "setPriceOracle(address)",
params: [basemainnet.RESILIENT_ORACLE],
},

// Add pool
{
target: basemainnet.POOL_REGISTRY,
signature: "addPool(string,address,uint256,uint256,uint256)",
params: ["Core", COMPTROLLER_CORE, parseUnits("0.5", 18), parseUnits("1.1", 18), parseUnits("100", 18)],
},

// Add cbBTC market
{
target: basemainnet.VTREASURY,
signature: "withdrawTreasuryToken(address,uint256,address)",
params: [cbBTC, parseUnits("0.05", 8), basemainnet.GUARDIAN],
},
{
target: cbBTC,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, 0],
},
{
target: cbBTC,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, parseUnits("0.05", 8)],
},
{
target: VCBBTC_CORE,
signature: "setReduceReservesBlockDelta(uint256)",
params: ["86400"],
},
{
target: basemainnet.POOL_REGISTRY,
signature: "addMarket((address,uint256,uint256,uint256,address,uint256,uint256))",
params: [
[
VCBBTC_CORE,
parseUnits("0.73", 18),
parseUnits("0.78", 18),
parseUnits("0.05", 8),
basemainnet.VTREASURY,
parseUnits("400", 8),
parseUnits("200", 8),
],
],
},

// Add WETH market
{
target: basemainnet.VTREASURY,
signature: "withdrawTreasuryToken(address,uint256,address)",
params: [WETH, parseUnits("2", 18), basemainnet.GUARDIAN],
},
{
target: WETH,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, 0],
},
{
target: WETH,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, parseUnits("2", 18)],
},
{
target: VWETH_CORE,
signature: "setReduceReservesBlockDelta(uint256)",
params: ["86400"],
},
{
target: basemainnet.POOL_REGISTRY,
signature: "addMarket((address,uint256,uint256,uint256,address,uint256,uint256))",
params: [
[
VWETH_CORE,
parseUnits("0.8", 18),
parseUnits("0.83", 18),
parseUnits("2", 18),
basemainnet.VTREASURY,
parseUnits("10000", 18),
parseUnits("9000", 18),
],
],
},

// Add USDC market
{
target: basemainnet.VTREASURY,
signature: "withdrawTreasuryToken(address,uint256,address)",
params: [USDC, parseUnits("5000", 6), basemainnet.GUARDIAN],
},
{
target: USDC,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, 0],
},
{
target: USDC,
signature: "approve(address,uint256)",
params: [basemainnet.POOL_REGISTRY, parseUnits("5000", 6)],
},
{
target: VUSDC_CORE,
signature: "setReduceReservesBlockDelta(uint256)",
params: ["86400"],
},
{
target: basemainnet.POOL_REGISTRY,
signature: "addMarket((address,uint256,uint256,uint256,address,uint256,uint256))",
params: [
[
VUSDC_CORE,
parseUnits("0.75", 18),
parseUnits("0.78", 18),
parseUnits("5000", 6),
basemainnet.VTREASURY,
parseUnits("30000000", 6),
parseUnits("27000000", 6),
],
],
},
]);
};

export default vip004;
Loading
Loading