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-2715] Add weETHs Market #357

Merged
merged 10 commits into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
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
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ typechain
coverage.json
npm-debug.log*
yarn-debug.log*
yarn-error.log*
yarn-error.log*
107 changes: 107 additions & 0 deletions multisig/proposals/ethereum/vip-055/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
import { parseUnits } from "ethers/lib/utils";
import { ethers } from "hardhat";
import { NETWORK_ADDRESSES } from "src/networkAddresses";
import { makeProposal } from "src/utils";

export const ACCOUNTANT_ORACLE = "0x132f91AA7afc590D591f168A780bB21B4c29f577";
export const weETHs = "0x917ceE801a67f933F2e6b33fC0cD1ED2d5909D88";
const INITIAL_SUPPLY = parseUnits("10.009201470952191487", 18);
export const SUPPLY_CAP = parseUnits("180", 18);
export const BORROW_CAP = parseUnits("0", 18);
const CF = parseUnits("0.8", 18);
const LT = parseUnits("0.85", 18);
export const vweETHs = "0xEF26C64bC06A8dE4CA5D31f119835f9A1d9433b9";
export const LIQUID_STAKED_COMPTROLLER = "0xF522cd0360EF8c2FF48B648d53EA1717Ec0F3Ac3";
export const VTOKEN_RECEIVER = "0x86fBaEB3D6b5247F420590D303a6ffC9cd523790";
const { ethereum } = NETWORK_ADDRESSES;
export const USDT_PRIME_CONVERTER = "0x4f55cb0a24D5542a3478B0E284259A6B850B06BD";
export const USDC_PRIME_CONVERTER = "0xcEB9503f10B781E30213c0b320bCf3b3cE54216E";
export const WBTC_PRIME_CONVERTER = "0xDcCDE673Cd8988745dA384A7083B0bd22085dEA0";
export const WETH_PRIME_CONVERTER = "0xb8fD67f215117FADeF06447Af31590309750529D";
export const XVS_VAULT_CONVERTER = "0x1FD30e761C3296fE36D9067b1e398FD97B4C0407";
export const BaseAssets = [
"0xdAC17F958D2ee523a2206206994597C13D831ec7", // USDT USDTTokenConverter BaseAsset
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC USDCTokenConverter BaseAsset
"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", // WBTC WBTCTokenConverter BaseAsset
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH WETHTokenConverter BaseAsset
"0xd3CC9d8f3689B83c91b7B59cAB4946B063EB894A", // XVS XVSTokenConverter BaseAsset
];

export const vip055 = () => {
return makeProposal([
// Configure Oracle
{
target: ethereum.RESILIENT_ORACLE,
signature: "setTokenConfig((address,address[3],bool[3]))",
params: [
[weETHs, [ACCOUNTANT_ORACLE, ethers.constants.AddressZero, ethers.constants.AddressZero], [true, false, false]],
],
},

// Add Market
{
target: ethereum.VTREASURY,
signature: "withdrawTreasuryToken(address,uint256,address)",
params: [weETHs, INITIAL_SUPPLY, ethereum.GUARDIAN],
},
{
target: weETHs,
signature: "approve(address,uint256)",
params: [ethereum.POOL_REGISTRY, 0],
},
{
target: weETHs,
signature: "approve(address,uint256)",
params: [ethereum.POOL_REGISTRY, INITIAL_SUPPLY],
},
{
target: vweETHs,
signature: "setReduceReservesBlockDelta(uint256)",
params: ["7200"],
},
{
target: ethereum.POOL_REGISTRY,
signature: "addMarket((address,uint256,uint256,uint256,address,uint256,uint256))",
params: [[vweETHs, CF, LT, INITIAL_SUPPLY, VTOKEN_RECEIVER, SUPPLY_CAP, BORROW_CAP]],
},
{
target: vweETHs,
signature: "setProtocolSeizeShare(uint256)",
params: [parseUnits("0.01", 18)],
},
{
target: LIQUID_STAKED_COMPTROLLER,
signature: "setActionsPaused(address[],uint8[],bool)",
params: [[vweETHs], [2], true],
},

// Conversion config
{
target: USDT_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[0], [weETHs], [[0, 1]]],
},
{
target: USDC_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[1], [weETHs], [[0, 1]]],
},
{
target: WBTC_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[2], [weETHs], [[0, 1]]],
},
{
target: WETH_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[3], [weETHs], [[0, 1]]],
},
{
target: XVS_VAULT_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[4], [weETHs], [[0, 1]]],
},
]);
};

export default vip055;
48 changes: 48 additions & 0 deletions multisig/proposals/sepolia/vip-052/addendum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { makeProposal } from "src/utils";

export const weETHs = "0xE233527306c2fa1E159e251a2E5893334505A5E0";
export const USDT_PRIME_CONVERTER = "0x3716C24EA86A67cAf890d7C9e4C4505cDDC2F8A2";
export const USDC_PRIME_CONVERTER = "0x511a559a699cBd665546a1F75908f7E9454Bfc67";
export const WBTC_PRIME_CONVERTER = "0x8a3937F27921e859db3FDA05729CbCea8cfd82AE";
export const WETH_PRIME_CONVERTER = "0x274a834eFFA8D5479502dD6e78925Bc04ae82B46";
export const XVS_VAULT_CONVERTER = "0xc203bfA9dCB0B5fEC510Db644A494Ff7f4968ed2";
export const BaseAssets = [
"0x8d412FD0bc5d826615065B931171Eed10F5AF266", // USDT USDTPrimeConverter BaseAsset
"0x772d68929655ce7234C8C94256526ddA66Ef641E", // USDC USDCPrimeConverter BaseAsset
"0x92A2928f5634BEa89A195e7BeCF0f0FEEDAB885b", // WBTC WBTCPrimeConverter BaseAsset
"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9", // WETH WETHPrimeConverter BaseAsset
"0x66ebd019E86e0af5f228a0439EBB33f045CBe63E", // XVS XVSPrimeConverter BaseAsset
];

export const vip052 = () => {
return makeProposal([
// Conversion config
{
target: USDT_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[0], [weETHs], [[0, 1]]],
},
{
target: USDC_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[1], [weETHs], [[0, 1]]],
},
{
target: WBTC_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[2], [weETHs], [[0, 1]]],
},
{
target: WETH_PRIME_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[3], [weETHs], [[0, 1]]],
},
{
target: XVS_VAULT_CONVERTER,
signature: "setConversionConfigs(address,address[],(uint256,uint8)[])",
params: [BaseAssets[4], [weETHs], [[0, 1]]],
},
]);
};

export default vip052;
75 changes: 75 additions & 0 deletions multisig/proposals/sepolia/vip-052/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { parseUnits } from "ethers/lib/utils";
import { ethers } from "hardhat";
import { NETWORK_ADDRESSES } from "src/networkAddresses";
import { makeProposal } from "src/utils";

const { sepolia } = NETWORK_ADDRESSES;

export const MOCK_ACCOUNTANT = "0x04d7B1244Ff052319D154E627004EaE5b7a05FCf";
export const ACCOUNTANT_ORACLE = "0x64672DD083F847893F307fe85c6f9C122F2EE3EB";
const RATE = "1004263421125944312";
export const weETHs = "0xE233527306c2fa1E159e251a2E5893334505A5E0";
const INITIAL_SUPPLY = parseUnits("10.009201470952191487", 18);
export const SUPPLY_CAP = parseUnits("180", 18);
export const BORROW_CAP = parseUnits("0", 18);
const CF = parseUnits("0.8", 18);
const LT = parseUnits("0.85", 18);
export const vweETHs = "0xB3A201887396F57bad3fF50DFd02022fE1Fd1774";
export const LIQUID_STAKED_COMPTROLLER = "0xd79CeB8EF8188E44b7Eb899094e8A3A4d7A1e236";

export const vip052 = () => {
return makeProposal([
// Configure Oracle
{
target: MOCK_ACCOUNTANT,
signature: "setRate(uint256)",
params: [RATE],
},
{
target: sepolia.RESILIENT_ORACLE,
signature: "setTokenConfig((address,address[3],bool[3]))",
params: [
[weETHs, [ACCOUNTANT_ORACLE, ethers.constants.AddressZero, ethers.constants.AddressZero], [true, false, false]],
],
},

// Add Market
{
target: weETHs,
signature: "faucet(uint256)",
params: [INITIAL_SUPPLY],
},
{
target: weETHs,
signature: "approve(address,uint256)",
params: [sepolia.POOL_REGISTRY, 0],
},
{
target: weETHs,
signature: "approve(address,uint256)",
params: [sepolia.POOL_REGISTRY, INITIAL_SUPPLY],
},
{
target: vweETHs,
signature: "setReduceReservesBlockDelta(uint256)",
params: ["7200"],
},
{
target: sepolia.POOL_REGISTRY,
signature: "addMarket((address,uint256,uint256,uint256,address,uint256,uint256))",
params: [[vweETHs, CF, LT, INITIAL_SUPPLY, sepolia.VTREASURY, SUPPLY_CAP, BORROW_CAP]],
},
{
target: vweETHs,
signature: "setProtocolSeizeShare(uint256)",
params: [parseUnits("0.01", 18)],
},
chechu marked this conversation as resolved.
Show resolved Hide resolved
{
target: LIQUID_STAKED_COMPTROLLER,
signature: "setActionsPaused(address[],uint8[],bool)",
params: [[vweETHs], [2], true],
},
]);
};

export default vip052;
Loading
Loading