From 2ac4e3ec71117ec41ecf25941714174db3dc4ed6 Mon Sep 17 00:00:00 2001 From: Thrilok kumar Date: Thu, 21 Mar 2024 18:31:22 -0400 Subject: [PATCH] deployment --- deployments/mainnet_1/PayloadIGP13.json | 2 +- deployments/mainnet_1/PayloadIGP14.json | 1 + scripts/deployIGP14.js | 22 ++++++++++++++++++++++ scripts/deploySimulation.js | 4 ++-- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 deployments/mainnet_1/PayloadIGP14.json create mode 100644 scripts/deployIGP14.js diff --git a/deployments/mainnet_1/PayloadIGP13.json b/deployments/mainnet_1/PayloadIGP13.json index bb50097..32663b0 100644 --- a/deployments/mainnet_1/PayloadIGP13.json +++ b/deployments/mainnet_1/PayloadIGP13.json @@ -1 +1 @@ -{"metadata":"{\"defaultCompiler\":{\"version\":\"0.7.3\"},\"sources\":{\"contracts/payloads/IGP13/PayloadIGP13.sol\":{\"content\":\"pragma solidity ^0.7.0;\\npragma experimental ABIEncoderV2;\\n\\ninterface IGovernorBravo {\\n function _acceptAdmin() external;\\n\\n function _setVotingDelay(uint newVotingDelay) external;\\n\\n function _setVotingPeriod(uint newVotingPeriod) external;\\n\\n function _acceptAdminOnTimelock() external;\\n\\n function _setImplementation(address implementation_) external;\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) external returns (uint);\\n\\n function admin() external view returns (address);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function timelock() external view returns (address);\\n\\n function votingDelay() external view returns (uint256);\\n\\n function votingPeriod() external view returns (uint256);\\n}\\n\\ninterface ITimelock {\\n function acceptAdmin() external;\\n\\n function setDelay(uint delay_) external;\\n\\n function setPendingAdmin(address pendingAdmin_) external;\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external payable returns (bytes memory);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function admin() external view returns (address);\\n\\n function delay() external view returns (uint256);\\n}\\n\\ninterface ILite {\\n function setAdmin(address newAdmin) external;\\n\\n function getAdmin() external view returns (address);\\n\\n function removeImplementation(address implementation_) external;\\n\\n function addImplementation(\\n address implementation_,\\n bytes4[] calldata sigs_\\n ) external;\\n\\n function setDummyImplementation(address newDummyImplementation_) external;\\n\\n function updateMaxRiskRatio(\\n uint8[] memory protocolId_,\\n uint256[] memory newRiskRatio_\\n ) external;\\n\\n function updateAggrMaxVaultRatio(uint256 newAggrMaxVaultRatio_) external;\\n}\\n\\ninterface IFluidVaultT1 {\\n /// @notice updates the Vault oracle to `newOracle_`. Must implement the FluidOracle interface.\\n function updateOracle(address newOracle_) external;\\n\\n /// @notice updates the all Vault core settings according to input params.\\n /// All input values are expected in 1e2 (1% = 100, 100% = 10_000).\\n function updateCoreSettings(\\n uint256 supplyRateMagnifier_,\\n uint256 borrowRateMagnifier_,\\n uint256 collateralFactor_,\\n uint256 liquidationThreshold_,\\n uint256 liquidationMaxLimit_,\\n uint256 withdrawGap_,\\n uint256 liquidationPenalty_,\\n uint256 borrowFee_\\n ) external;\\n\\n /// @notice updates the allowed rebalancer to `newRebalancer_`.\\n function updateRebalancer(address newRebalancer_) external;\\n\\n /// @notice updates the supply rate magnifier to `supplyRateMagnifier_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateSupplyRateMagnifier(uint supplyRateMagnifier_) external;\\n}\\n\\ncontract PayloadIGP13 {\\n uint256 public constant PROPOSAL_ID = 13;\\n\\n address public constant PROPOSER =\\n 0xA45f7bD6A5Ff45D31aaCE6bCD3d426D9328cea01;\\n\\n address public constant PROPOSER_AVO_MULTISIG =\\n 0x059A94A72951c0ae1cc1CE3BF0dB52421bbE8210;\\n\\n IGovernorBravo public constant GOVERNOR =\\n IGovernorBravo(0x0204Cd037B2ec03605CFdFe482D8e257C765fA1B);\\n ITimelock public immutable TIMELOCK =\\n ITimelock(0x2386DC45AdDed673317eF068992F19421B481F4c);\\n\\n address public immutable ADDRESS_THIS;\\n\\n address public constant TEAM_MULTISIG = \\n 0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e;\\n\\n ILite public constant LITE =\\n ILite(0xA0D3707c569ff8C87FA923d3823eC5D81c98Be78);\\n\\n address public constant WITHDRAWALS_MODULE =\\n 0x6A64A3E0af38279ac7455c85b2C683f5621cE2e7;\\n address public constant FLUID_STETH_MODULE =\\n 0x0F1679FB1d5B2981423c757e8ea91979fabDB2D1;\\n\\n address public constant DUMMY_IMPLEMENTATION =\\n 0xd58ca26C8e888Fb628753F08816bED4a07d0E4af;\\n\\n address public constant VAULT_WEETH_WSTETH = 0x40D9b8417E6E1DcD358f04E3328bCEd061018A82;\\n address public constant VAULT_WEETH_WSTETH_ORACLE = 0x322F7FCEA001bEBB63413f42B0028E5A81b933EF;\\n\\n constructor() {\\n ADDRESS_THIS = address(this);\\n }\\n\\n function propose(string memory description) external {\\n require(\\n (\\n msg.sender == PROPOSER || \\n msg.sender == TEAM_MULTISIG\\n ) || \\n address(this) == PROPOSER_AVO_MULTISIG,\\n \\\"msg.sender-not-allowed\\\"\\n );\\n\\n uint256 totalActions = 1;\\n address[] memory targets = new address[](totalActions);\\n uint256[] memory values = new uint256[](totalActions);\\n string[] memory signatures = new string[](totalActions);\\n bytes[] memory calldatas = new bytes[](totalActions);\\n\\n // Action 1: call executePayload on timelock contract to execute payload related to lite & fluid\\n targets[0] = address(TIMELOCK);\\n values[0] = 0;\\n signatures[0] = \\\"executePayload(address,string,bytes)\\\";\\n calldatas[0] = abi.encode(ADDRESS_THIS, \\\"execute()\\\", abi.encode());\\n\\n uint256 proposedId = GOVERNOR.propose(\\n targets,\\n values,\\n signatures,\\n calldatas,\\n description\\n );\\n\\n require(proposedId == PROPOSAL_ID, \\\"PROPOSAL_IS_NOT_SAME\\\");\\n }\\n\\n function execute() external {\\n // Action 1: Update withdraw implementation\\n action1();\\n\\n // Action 2: Add Fluid stETH Implementation\\n action2();\\n\\n // Action 3: Set dummy implementations\\n action3();\\n\\n // Action 4: Change oracle address of weETH/wstETH vault\\n action4();\\n }\\n\\n function verifyProposal() external view {}\\n\\n /***********************************|\\n | Proposal Payload Actions |\\n |__________________________________*/\\n\\n /// @notice Action 1: Update withdraw implementation\\n function action1() internal {\\n // remove implementation\\n LITE.removeImplementation(WITHDRAWALS_MODULE);\\n\\n // add same implementation with update signature\\n LITE.addImplementation(WITHDRAWALS_MODULE, withdrawalsSigs());\\n }\\n\\n /// @notice Action 2: Add Fluid stETH Implementation\\n function action2() internal {\\n LITE.addImplementation(FLUID_STETH_MODULE, fluidStETHSigs());\\n }\\n\\n /// @notice Action 3: Change dummy implementation.\\n function action3() internal {\\n LITE.setDummyImplementation(DUMMY_IMPLEMENTATION);\\n }\\n\\n /// @notice Action 4: Change oracle address of weETH/wstETH vault\\n function action4() internal {\\n IFluidVaultT1(VAULT_WEETH_WSTETH).updateOracle(VAULT_WEETH_WSTETH_ORACLE);\\n }\\n\\n /***********************************|\\n | Function Signatures |\\n |__________________________________*/\\n \\n function withdrawalsSigs() public pure returns (bytes4[] memory sigs_) {\\n sigs_ = new bytes4[](2);\\n sigs_[0] = bytes4(keccak256(\\\"paybackDebt(uint8)\\\"));\\n sigs_[1] = bytes4(keccak256(\\\"claimEthWithdrawal(uint256,uint8)\\\"));\\n }\\n\\n function fluidStETHSigs() public pure returns (bytes4[] memory sigs_) {\\n sigs_ = new bytes4[](3);\\n sigs_[0] = bytes4(keccak256(\\\"queueSteth(uint8,uint256,uint256,uint256)\\\"));\\n sigs_[1] = bytes4(keccak256(\\\"claimSteth(uint256)\\\"));\\n sigs_[2] = bytes4(keccak256(\\\"claimStethAndPaybackFluid(uint256)\\\"));\\n }\\n}\\n\",\"versionPragma\":\"^0.7.0\"}}}","address":"0x3dF4FfAA4649eCb3463EFA370fAAfb453453d4b3","bytecode":"0x60c06040527f2386dc45added673317ef068992f19421b481f4c00000000000000000000000060805234801561003457600080fd5b5030606081811b60a052608051901c90610e0a61006b600039806105c7528061070652508061034352806105185250610e0a6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637aadef8b116100a2578063b788f3a111610071578063b788f3a1146101c0578063bffa7f0f146101c8578063cc025f7c146101d0578063d9091d57146101d8578063f474d2fd146101e057610116565b80637aadef8b146101955780637be875ff1461019d5780637e2f35fa146101a5578063aa98df39146101ad57610116565b806353588752116100e9578063535887521461015e578063614619541461017357806366760d7d1461017d5780636dc0ae22146101855780637a54f8c91461018d57610116565b80630680f4171461011b5780630bc9136e146101395780633b1269bf1461014e5780635028197814610156575b600080fd5b6101236101e8565b6040516101309190610c0f565b60405180910390f35b610141610200565b6040516101309190610da7565b610123610205565b61012361021d565b610166610235565b6040516101309190610d2f565b61017b6102ef565b005b61017b61030f565b610123610311565b610123610329565b610123610341565b610123610365565b61012361037d565b61017b6101bb366004610a0b565b610395565b6101236106d4565b6101236106ec565b610123610704565b610166610728565b610123610818565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600d81565b736a64a3e0af38279ac7455c85b2c683f5621ce2e781565b7340d9b8417e6e1dcd358f04e3328bced061018a8281565b60408051600280825260608083018452926020830190803683370190505090507f05e3b28207a8c944c4170e2b0569d4dbc2e9d800973f9b87a4250eb41de54b1a8160008151811061028357fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507f9b47a13a1e03c1e6a9d98f69e668da9fe74c9fcaf9adf62f6f218562444f79b6816001815181106102d357fe5b6001600160e01b03199092166020928302919091019091015290565b6102f7610830565b6102ff61093e565b610307610975565b61030f6109c0565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b73322f7fcea001bebb63413f42b0028e5a81b933ef81565b7f000000000000000000000000000000000000000000000000000000000000000081565b730f1679fb1d5b2981423c757e8ea91979fabdb2d181565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea0114806103ca575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b806103e857503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b61040d5760405162461bcd60e51b815260040161040490610d49565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff8111801561044957600080fd5b50604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561048f57600080fd5b506040519080825280602002602001820160405280156104c357816020015b60608152602001906001900390816104ae5790505b50905060608467ffffffffffffffff811180156104df57600080fd5b5060405190808252806020026020018201604052801561051357816020015b60608152602001906001900390816104fe5790505b5090507f00000000000000000000000000000000000000000000000000000000000000008460008151811061054457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061057357fe5b602002602001018181525050604051806060016040528060248152602001610db160249139826000815181106105a557fe5b602090810291909101810191909152604080516000815291820181526105ee917f0000000000000000000000000000000000000000000000000000000000000000918101610c4f565b6040516020818303038152906040528160008151811061060a57fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906106579088908890889088908e90600401610c90565b602060405180830381600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190610aa0565b9050600d81146106cb5760405162461bcd60e51b815260040161040490610d79565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080516003808252608082019092526060916020820183803683370190505090507f7e2efbf5549345e9287ad4b3e9ed98e31cc0a1a2efb79a2c44836b61d5dc71ca8160008151811061077857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507ffcda7e942596b6c734b5ed4d6e314ee9596ade0715cf3a6e96da8846d160647d816001815181106107c857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507fc74c80f15680b67804c2c5bc80162582406e268900c0466b1a16ded013bca611816002815181106102d357fe5b73d58ca26c8e888fb628753f08816bed4a07d0e4af81565b60405163110bad1960e11b815273a0d3707c569ff8c87fa923d3823ec5d81c98be78906322175a329061087b90736a64a3e0af38279ac7455c85b2c683f5621ce2e790600401610c0f565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b5050505073a0d3707c569ff8c87fa923d3823ec5d81c98be786001600160a01b031663f0c01b42736a64a3e0af38279ac7455c85b2c683f5621ce2e76108ed610235565b6040518363ffffffff1660e01b815260040161090a929190610c23565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50505050565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7863f0c01b42730f1679fb1d5b2981423c757e8ea91979fabdb2d16108ed610728565b60405163c39aa07d60e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be789063c39aa07d9061090a9073d58ca26c8e888fb628753f08816bed4a07d0e4af90600401610c0f565b60405163072d137f60e21b81527340d9b8417e6e1dcd358f04e3328bced061018a8290631cb44dfc9061090a9073322f7fcea001bebb63413f42b0028e5a81b933ef90600401610c0f565b60006020808385031215610a1d578182fd5b823567ffffffffffffffff80821115610a34578384fd5b818501915085601f830112610a47578384fd5b813581811115610a5357fe5b604051601f8201601f1916810185018381118282101715610a7057fe5b6040528181528382018501881015610a86578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610ab1578081fd5b5051919050565b6000815180845260208085019450808401835b83811015610af15781516001600160e01b03191687529582019590820190600101610acb565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b30848351610bc4565b98850198935090840190600101610b18565b5091979650505050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b83848351610bc4565b98850198935090840190600101610b6b565b6000815180845260208085019450808401835b83811015610af157815187529582019590820190600101610ba8565b60008151808452815b81811015610be957602081850181015186830182015201610bcd565b81811115610bfa5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090610c4790830184610ab8565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a06040830152610c4760a0830184610bc4565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610cd25781516001600160a01b031684529284019290840190600101610cad565b50505083810382850152610ce68189610b95565b9150508281036040840152610cfb8187610b4f565b90508281036060840152610d0f8186610afc565b90508281036080840152610d238185610bc4565b98975050505050505050565b600060208252610d426020830184610ab8565b9392505050565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a264697066735822122093b05ba1fec7d1005cb7bd1ed3ae350dfa94a4a160bfd4d86d4e09c95ea9033b64736f6c63430007030033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101165760003560e01c80637aadef8b116100a2578063b788f3a111610071578063b788f3a1146101c0578063bffa7f0f146101c8578063cc025f7c146101d0578063d9091d57146101d8578063f474d2fd146101e057610116565b80637aadef8b146101955780637be875ff1461019d5780637e2f35fa146101a5578063aa98df39146101ad57610116565b806353588752116100e9578063535887521461015e578063614619541461017357806366760d7d1461017d5780636dc0ae22146101855780637a54f8c91461018d57610116565b80630680f4171461011b5780630bc9136e146101395780633b1269bf1461014e5780635028197814610156575b600080fd5b6101236101e8565b6040516101309190610c0f565b60405180910390f35b610141610200565b6040516101309190610da7565b610123610205565b61012361021d565b610166610235565b6040516101309190610d2f565b61017b6102ef565b005b61017b61030f565b610123610311565b610123610329565b610123610341565b610123610365565b61012361037d565b61017b6101bb366004610a0b565b610395565b6101236106d4565b6101236106ec565b610123610704565b610166610728565b610123610818565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600d81565b736a64a3e0af38279ac7455c85b2c683f5621ce2e781565b7340d9b8417e6e1dcd358f04e3328bced061018a8281565b60408051600280825260608083018452926020830190803683370190505090507f05e3b28207a8c944c4170e2b0569d4dbc2e9d800973f9b87a4250eb41de54b1a8160008151811061028357fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507f9b47a13a1e03c1e6a9d98f69e668da9fe74c9fcaf9adf62f6f218562444f79b6816001815181106102d357fe5b6001600160e01b03199092166020928302919091019091015290565b6102f7610830565b6102ff61093e565b610307610975565b61030f6109c0565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b73322f7fcea001bebb63413f42b0028e5a81b933ef81565b7f000000000000000000000000000000000000000000000000000000000000000081565b730f1679fb1d5b2981423c757e8ea91979fabdb2d181565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea0114806103ca575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b806103e857503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b61040d5760405162461bcd60e51b815260040161040490610d49565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff8111801561044957600080fd5b50604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561048f57600080fd5b506040519080825280602002602001820160405280156104c357816020015b60608152602001906001900390816104ae5790505b50905060608467ffffffffffffffff811180156104df57600080fd5b5060405190808252806020026020018201604052801561051357816020015b60608152602001906001900390816104fe5790505b5090507f00000000000000000000000000000000000000000000000000000000000000008460008151811061054457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061057357fe5b602002602001018181525050604051806060016040528060248152602001610db160249139826000815181106105a557fe5b602090810291909101810191909152604080516000815291820181526105ee917f0000000000000000000000000000000000000000000000000000000000000000918101610c4f565b6040516020818303038152906040528160008151811061060a57fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906106579088908890889088908e90600401610c90565b602060405180830381600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190610aa0565b9050600d81146106cb5760405162461bcd60e51b815260040161040490610d79565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080516003808252608082019092526060916020820183803683370190505090507f7e2efbf5549345e9287ad4b3e9ed98e31cc0a1a2efb79a2c44836b61d5dc71ca8160008151811061077857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507ffcda7e942596b6c734b5ed4d6e314ee9596ade0715cf3a6e96da8846d160647d816001815181106107c857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507fc74c80f15680b67804c2c5bc80162582406e268900c0466b1a16ded013bca611816002815181106102d357fe5b73d58ca26c8e888fb628753f08816bed4a07d0e4af81565b60405163110bad1960e11b815273a0d3707c569ff8c87fa923d3823ec5d81c98be78906322175a329061087b90736a64a3e0af38279ac7455c85b2c683f5621ce2e790600401610c0f565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b5050505073a0d3707c569ff8c87fa923d3823ec5d81c98be786001600160a01b031663f0c01b42736a64a3e0af38279ac7455c85b2c683f5621ce2e76108ed610235565b6040518363ffffffff1660e01b815260040161090a929190610c23565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50505050565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7863f0c01b42730f1679fb1d5b2981423c757e8ea91979fabdb2d16108ed610728565b60405163c39aa07d60e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be789063c39aa07d9061090a9073d58ca26c8e888fb628753f08816bed4a07d0e4af90600401610c0f565b60405163072d137f60e21b81527340d9b8417e6e1dcd358f04e3328bced061018a8290631cb44dfc9061090a9073322f7fcea001bebb63413f42b0028e5a81b933ef90600401610c0f565b60006020808385031215610a1d578182fd5b823567ffffffffffffffff80821115610a34578384fd5b818501915085601f830112610a47578384fd5b813581811115610a5357fe5b604051601f8201601f1916810185018381118282101715610a7057fe5b6040528181528382018501881015610a86578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610ab1578081fd5b5051919050565b6000815180845260208085019450808401835b83811015610af15781516001600160e01b03191687529582019590820190600101610acb565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b30848351610bc4565b98850198935090840190600101610b18565b5091979650505050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b83848351610bc4565b98850198935090840190600101610b6b565b6000815180845260208085019450808401835b83811015610af157815187529582019590820190600101610ba8565b60008151808452815b81811015610be957602081850181015186830182015201610bcd565b81811115610bfa5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090610c4790830184610ab8565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a06040830152610c4760a0830184610bc4565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610cd25781516001600160a01b031684529284019290840190600101610cad565b50505083810382850152610ce68189610b95565b9150508281036040840152610cfb8187610b4f565b90508281036060840152610d0f8186610afc565b90508281036080840152610d238185610bc4565b98975050505050505050565b600060208252610d426020830184610ab8565b9392505050565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a264697066735822122093b05ba1fec7d1005cb7bd1ed3ae350dfa94a4a160bfd4d86d4e09c95ea9033b64736f6c63430007030033","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ADDRESS_THIS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DUMMY_IMPLEMENTATION","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FLUID_STETH_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR","outputs":[{"internalType":"contract IGovernorBravo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LITE","outputs":[{"internalType":"contract ILite","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_AVO_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_WEETH_WSTETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_WEETH_WSTETH_ORACLE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAWALS_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fluidStETHSigs","outputs":[{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verifyProposal","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalsSigs","outputs":[{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"stateMutability":"pure","type":"function"}]} \ No newline at end of file +{"metadata":"{\"defaultCompiler\":{\"version\":\"0.7.3\"},\"sources\":{\"contracts/payloads/IGP13/PayloadIGP13.sol\":{\"content\":\"pragma solidity ^0.7.0;\\npragma experimental ABIEncoderV2;\\n\\ninterface IGovernorBravo {\\n function _acceptAdmin() external;\\n\\n function _setVotingDelay(uint newVotingDelay) external;\\n\\n function _setVotingPeriod(uint newVotingPeriod) external;\\n\\n function _acceptAdminOnTimelock() external;\\n\\n function _setImplementation(address implementation_) external;\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) external returns (uint);\\n\\n function admin() external view returns (address);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function timelock() external view returns (address);\\n\\n function votingDelay() external view returns (uint256);\\n\\n function votingPeriod() external view returns (uint256);\\n}\\n\\ninterface ITimelock {\\n function acceptAdmin() external;\\n\\n function setDelay(uint delay_) external;\\n\\n function setPendingAdmin(address pendingAdmin_) external;\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external payable returns (bytes memory);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function admin() external view returns (address);\\n\\n function delay() external view returns (uint256);\\n}\\n\\ninterface ILite {\\n function setAdmin(address newAdmin) external;\\n\\n function getAdmin() external view returns (address);\\n\\n function removeImplementation(address implementation_) external;\\n\\n function addImplementation(\\n address implementation_,\\n bytes4[] calldata sigs_\\n ) external;\\n\\n function setDummyImplementation(address newDummyImplementation_) external;\\n\\n function updateMaxRiskRatio(\\n uint8[] memory protocolId_,\\n uint256[] memory newRiskRatio_\\n ) external;\\n\\n function updateAggrMaxVaultRatio(uint256 newAggrMaxVaultRatio_) external;\\n}\\n\\ninterface IFluidVaultT1 {\\n /// @notice updates the Vault oracle to `newOracle_`. Must implement the FluidOracle interface.\\n function updateOracle(address newOracle_) external;\\n\\n /// @notice updates the all Vault core settings according to input params.\\n /// All input values are expected in 1e2 (1% = 100, 100% = 10_000).\\n function updateCoreSettings(\\n uint256 supplyRateMagnifier_,\\n uint256 borrowRateMagnifier_,\\n uint256 collateralFactor_,\\n uint256 liquidationThreshold_,\\n uint256 liquidationMaxLimit_,\\n uint256 withdrawGap_,\\n uint256 liquidationPenalty_,\\n uint256 borrowFee_\\n ) external;\\n\\n /// @notice updates the allowed rebalancer to `newRebalancer_`.\\n function updateRebalancer(address newRebalancer_) external;\\n\\n /// @notice updates the supply rate magnifier to `supplyRateMagnifier_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateSupplyRateMagnifier(uint supplyRateMagnifier_) external;\\n}\\n\\ncontract PayloadIGP13 {\\n uint256 public constant PROPOSAL_ID = 13;\\n\\n address public constant PROPOSER =\\n 0xA45f7bD6A5Ff45D31aaCE6bCD3d426D9328cea01;\\n\\n address public constant PROPOSER_AVO_MULTISIG =\\n 0x059A94A72951c0ae1cc1CE3BF0dB52421bbE8210;\\n\\n IGovernorBravo public constant GOVERNOR =\\n IGovernorBravo(0x0204Cd037B2ec03605CFdFe482D8e257C765fA1B);\\n ITimelock public immutable TIMELOCK =\\n ITimelock(0x2386DC45AdDed673317eF068992F19421B481F4c);\\n\\n address public immutable ADDRESS_THIS;\\n\\n address public constant TEAM_MULTISIG = \\n 0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e;\\n\\n ILite public constant LITE =\\n ILite(0xA0D3707c569ff8C87FA923d3823eC5D81c98Be78);\\n\\n address public constant WITHDRAWALS_MODULE =\\n 0x6A64A3E0af38279ac7455c85b2C683f5621cE2e7;\\n address public constant FLUID_STETH_MODULE =\\n 0x0F1679FB1d5B2981423c757e8ea91979fabDB2D1;\\n\\n address public constant DUMMY_IMPLEMENTATION =\\n 0xd58ca26C8e888Fb628753F08816bED4a07d0E4af;\\n\\n address public constant VAULT_WEETH_WSTETH = 0x40D9b8417E6E1DcD358f04E3328bCEd061018A82;\\n address public constant VAULT_WEETH_WSTETH_ORACLE = 0x322F7FCEA001bEBB63413f42B0028E5A81b933EF;\\n\\n constructor() {\\n ADDRESS_THIS = address(this);\\n }\\n\\n function propose(string memory description) external {\\n require(\\n (\\n msg.sender == PROPOSER || \\n msg.sender == TEAM_MULTISIG\\n ) || \\n address(this) == PROPOSER_AVO_MULTISIG,\\n \\\"msg.sender-not-allowed\\\"\\n );\\n\\n uint256 totalActions = 1;\\n address[] memory targets = new address[](totalActions);\\n uint256[] memory values = new uint256[](totalActions);\\n string[] memory signatures = new string[](totalActions);\\n bytes[] memory calldatas = new bytes[](totalActions);\\n\\n // Action 1: call executePayload on timelock contract to execute payload related to lite & fluid\\n targets[0] = address(TIMELOCK);\\n values[0] = 0;\\n signatures[0] = \\\"executePayload(address,string,bytes)\\\";\\n calldatas[0] = abi.encode(ADDRESS_THIS, \\\"execute()\\\", abi.encode());\\n\\n uint256 proposedId = GOVERNOR.propose(\\n targets,\\n values,\\n signatures,\\n calldatas,\\n description\\n );\\n\\n require(proposedId == PROPOSAL_ID, \\\"PROPOSAL_IS_NOT_SAME\\\");\\n }\\n\\n function execute() external {\\n // Action 1: Update withdraw implementation\\n action1();\\n\\n // Action 2: Add Fluid stETH Implementation\\n action2();\\n\\n // Action 3: Set dummy implementations\\n action3();\\n\\n // Action 4: Change oracle address of weETH/wstETH vault\\n action4();\\n }\\n\\n function verifyProposal() external view {}\\n\\n /***********************************|\\n | Proposal Payload Actions |\\n |__________________________________*/\\n\\n /// @notice Action 1: Update withdraw implementation\\n function action1() internal {\\n // remove implementation\\n LITE.removeImplementation(WITHDRAWALS_MODULE);\\n\\n // add same implementation with update signature\\n LITE.addImplementation(WITHDRAWALS_MODULE, withdrawalsSigs());\\n }\\n\\n /// @notice Action 2: Add Fluid stETH Implementation\\n function action2() internal {\\n LITE.addImplementation(FLUID_STETH_MODULE, fluidStETHSigs());\\n }\\n\\n /// @notice Action 3: Change dummy implementation.\\n function action3() internal {\\n LITE.setDummyImplementation(DUMMY_IMPLEMENTATION);\\n }\\n\\n /// @notice Action 4: Change oracle address of weETH/wstETH vault\\n function action4() internal {\\n IFluidVaultT1(VAULT_WEETH_WSTETH).updateOracle(VAULT_WEETH_WSTETH_ORACLE);\\n }\\n\\n /***********************************|\\n | Function Signatures |\\n |__________________________________*/\\n \\n function withdrawalsSigs() public pure returns (bytes4[] memory sigs_) {\\n sigs_ = new bytes4[](2);\\n sigs_[0] = bytes4(keccak256(\\\"paybackDebt(uint8)\\\"));\\n sigs_[1] = bytes4(keccak256(\\\"claimEthWithdrawal(uint256,uint8)\\\"));\\n }\\n\\n function fluidStETHSigs() public pure returns (bytes4[] memory sigs_) {\\n sigs_ = new bytes4[](3);\\n sigs_[0] = bytes4(keccak256(\\\"queueSteth(uint8,uint256,uint256,uint256)\\\"));\\n sigs_[1] = bytes4(keccak256(\\\"claimSteth(uint256)\\\"));\\n sigs_[2] = bytes4(keccak256(\\\"claimStethAndPaybackFluid(uint256)\\\"));\\n }\\n}\\n\",\"versionPragma\":\"^0.7.0\"}}}","address":"0x956a9d64D8061aEDD43B5b63576Ae71a9B73AFb8","bytecode":"0x60c06040527f2386dc45added673317ef068992f19421b481f4c00000000000000000000000060805234801561003457600080fd5b5030606081811b60a052608051901c90610e0a61006b600039806105c7528061070652508061034352806105185250610e0a6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637aadef8b116100a2578063b788f3a111610071578063b788f3a1146101c0578063bffa7f0f146101c8578063cc025f7c146101d0578063d9091d57146101d8578063f474d2fd146101e057610116565b80637aadef8b146101955780637be875ff1461019d5780637e2f35fa146101a5578063aa98df39146101ad57610116565b806353588752116100e9578063535887521461015e578063614619541461017357806366760d7d1461017d5780636dc0ae22146101855780637a54f8c91461018d57610116565b80630680f4171461011b5780630bc9136e146101395780633b1269bf1461014e5780635028197814610156575b600080fd5b6101236101e8565b6040516101309190610c0f565b60405180910390f35b610141610200565b6040516101309190610da7565b610123610205565b61012361021d565b610166610235565b6040516101309190610d2f565b61017b6102ef565b005b61017b61030f565b610123610311565b610123610329565b610123610341565b610123610365565b61012361037d565b61017b6101bb366004610a0b565b610395565b6101236106d4565b6101236106ec565b610123610704565b610166610728565b610123610818565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600d81565b736a64a3e0af38279ac7455c85b2c683f5621ce2e781565b7340d9b8417e6e1dcd358f04e3328bced061018a8281565b60408051600280825260608083018452926020830190803683370190505090507f05e3b28207a8c944c4170e2b0569d4dbc2e9d800973f9b87a4250eb41de54b1a8160008151811061028357fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507f9b47a13a1e03c1e6a9d98f69e668da9fe74c9fcaf9adf62f6f218562444f79b6816001815181106102d357fe5b6001600160e01b03199092166020928302919091019091015290565b6102f7610830565b6102ff61093e565b610307610975565b61030f6109c0565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b73322f7fcea001bebb63413f42b0028e5a81b933ef81565b7f000000000000000000000000000000000000000000000000000000000000000081565b730f1679fb1d5b2981423c757e8ea91979fabdb2d181565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea0114806103ca575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b806103e857503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b61040d5760405162461bcd60e51b815260040161040490610d49565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff8111801561044957600080fd5b50604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561048f57600080fd5b506040519080825280602002602001820160405280156104c357816020015b60608152602001906001900390816104ae5790505b50905060608467ffffffffffffffff811180156104df57600080fd5b5060405190808252806020026020018201604052801561051357816020015b60608152602001906001900390816104fe5790505b5090507f00000000000000000000000000000000000000000000000000000000000000008460008151811061054457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061057357fe5b602002602001018181525050604051806060016040528060248152602001610db160249139826000815181106105a557fe5b602090810291909101810191909152604080516000815291820181526105ee917f0000000000000000000000000000000000000000000000000000000000000000918101610c4f565b6040516020818303038152906040528160008151811061060a57fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906106579088908890889088908e90600401610c90565b602060405180830381600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190610aa0565b9050600d81146106cb5760405162461bcd60e51b815260040161040490610d79565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080516003808252608082019092526060916020820183803683370190505090507f7e2efbf5549345e9287ad4b3e9ed98e31cc0a1a2efb79a2c44836b61d5dc71ca8160008151811061077857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507ffcda7e942596b6c734b5ed4d6e314ee9596ade0715cf3a6e96da8846d160647d816001815181106107c857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507fc74c80f15680b67804c2c5bc80162582406e268900c0466b1a16ded013bca611816002815181106102d357fe5b73d58ca26c8e888fb628753f08816bed4a07d0e4af81565b60405163110bad1960e11b815273a0d3707c569ff8c87fa923d3823ec5d81c98be78906322175a329061087b90736a64a3e0af38279ac7455c85b2c683f5621ce2e790600401610c0f565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b5050505073a0d3707c569ff8c87fa923d3823ec5d81c98be786001600160a01b031663f0c01b42736a64a3e0af38279ac7455c85b2c683f5621ce2e76108ed610235565b6040518363ffffffff1660e01b815260040161090a929190610c23565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50505050565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7863f0c01b42730f1679fb1d5b2981423c757e8ea91979fabdb2d16108ed610728565b60405163c39aa07d60e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be789063c39aa07d9061090a9073d58ca26c8e888fb628753f08816bed4a07d0e4af90600401610c0f565b60405163072d137f60e21b81527340d9b8417e6e1dcd358f04e3328bced061018a8290631cb44dfc9061090a9073322f7fcea001bebb63413f42b0028e5a81b933ef90600401610c0f565b60006020808385031215610a1d578182fd5b823567ffffffffffffffff80821115610a34578384fd5b818501915085601f830112610a47578384fd5b813581811115610a5357fe5b604051601f8201601f1916810185018381118282101715610a7057fe5b6040528181528382018501881015610a86578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610ab1578081fd5b5051919050565b6000815180845260208085019450808401835b83811015610af15781516001600160e01b03191687529582019590820190600101610acb565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b30848351610bc4565b98850198935090840190600101610b18565b5091979650505050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b83848351610bc4565b98850198935090840190600101610b6b565b6000815180845260208085019450808401835b83811015610af157815187529582019590820190600101610ba8565b60008151808452815b81811015610be957602081850181015186830182015201610bcd565b81811115610bfa5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090610c4790830184610ab8565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a06040830152610c4760a0830184610bc4565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610cd25781516001600160a01b031684529284019290840190600101610cad565b50505083810382850152610ce68189610b95565b9150508281036040840152610cfb8187610b4f565b90508281036060840152610d0f8186610afc565b90508281036080840152610d238185610bc4565b98975050505050505050565b600060208252610d426020830184610ab8565b9392505050565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a264697066735822122093b05ba1fec7d1005cb7bd1ed3ae350dfa94a4a160bfd4d86d4e09c95ea9033b64736f6c63430007030033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101165760003560e01c80637aadef8b116100a2578063b788f3a111610071578063b788f3a1146101c0578063bffa7f0f146101c8578063cc025f7c146101d0578063d9091d57146101d8578063f474d2fd146101e057610116565b80637aadef8b146101955780637be875ff1461019d5780637e2f35fa146101a5578063aa98df39146101ad57610116565b806353588752116100e9578063535887521461015e578063614619541461017357806366760d7d1461017d5780636dc0ae22146101855780637a54f8c91461018d57610116565b80630680f4171461011b5780630bc9136e146101395780633b1269bf1461014e5780635028197814610156575b600080fd5b6101236101e8565b6040516101309190610c0f565b60405180910390f35b610141610200565b6040516101309190610da7565b610123610205565b61012361021d565b610166610235565b6040516101309190610d2f565b61017b6102ef565b005b61017b61030f565b610123610311565b610123610329565b610123610341565b610123610365565b61012361037d565b61017b6101bb366004610a0b565b610395565b6101236106d4565b6101236106ec565b610123610704565b610166610728565b610123610818565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600d81565b736a64a3e0af38279ac7455c85b2c683f5621ce2e781565b7340d9b8417e6e1dcd358f04e3328bced061018a8281565b60408051600280825260608083018452926020830190803683370190505090507f05e3b28207a8c944c4170e2b0569d4dbc2e9d800973f9b87a4250eb41de54b1a8160008151811061028357fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507f9b47a13a1e03c1e6a9d98f69e668da9fe74c9fcaf9adf62f6f218562444f79b6816001815181106102d357fe5b6001600160e01b03199092166020928302919091019091015290565b6102f7610830565b6102ff61093e565b610307610975565b61030f6109c0565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b73322f7fcea001bebb63413f42b0028e5a81b933ef81565b7f000000000000000000000000000000000000000000000000000000000000000081565b730f1679fb1d5b2981423c757e8ea91979fabdb2d181565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea0114806103ca575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b806103e857503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b61040d5760405162461bcd60e51b815260040161040490610d49565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff8111801561044957600080fd5b50604051908082528060200260200182016040528015610473578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561048f57600080fd5b506040519080825280602002602001820160405280156104c357816020015b60608152602001906001900390816104ae5790505b50905060608467ffffffffffffffff811180156104df57600080fd5b5060405190808252806020026020018201604052801561051357816020015b60608152602001906001900390816104fe5790505b5090507f00000000000000000000000000000000000000000000000000000000000000008460008151811061054457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061057357fe5b602002602001018181525050604051806060016040528060248152602001610db160249139826000815181106105a557fe5b602090810291909101810191909152604080516000815291820181526105ee917f0000000000000000000000000000000000000000000000000000000000000000918101610c4f565b6040516020818303038152906040528160008151811061060a57fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906106579088908890889088908e90600401610c90565b602060405180830381600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190610aa0565b9050600d81146106cb5760405162461bcd60e51b815260040161040490610d79565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080516003808252608082019092526060916020820183803683370190505090507f7e2efbf5549345e9287ad4b3e9ed98e31cc0a1a2efb79a2c44836b61d5dc71ca8160008151811061077857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507ffcda7e942596b6c734b5ed4d6e314ee9596ade0715cf3a6e96da8846d160647d816001815181106107c857fe5b60200260200101906001600160e01b03191690816001600160e01b031916815250507fc74c80f15680b67804c2c5bc80162582406e268900c0466b1a16ded013bca611816002815181106102d357fe5b73d58ca26c8e888fb628753f08816bed4a07d0e4af81565b60405163110bad1960e11b815273a0d3707c569ff8c87fa923d3823ec5d81c98be78906322175a329061087b90736a64a3e0af38279ac7455c85b2c683f5621ce2e790600401610c0f565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b5050505073a0d3707c569ff8c87fa923d3823ec5d81c98be786001600160a01b031663f0c01b42736a64a3e0af38279ac7455c85b2c683f5621ce2e76108ed610235565b6040518363ffffffff1660e01b815260040161090a929190610c23565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50505050565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7863f0c01b42730f1679fb1d5b2981423c757e8ea91979fabdb2d16108ed610728565b60405163c39aa07d60e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be789063c39aa07d9061090a9073d58ca26c8e888fb628753f08816bed4a07d0e4af90600401610c0f565b60405163072d137f60e21b81527340d9b8417e6e1dcd358f04e3328bced061018a8290631cb44dfc9061090a9073322f7fcea001bebb63413f42b0028e5a81b933ef90600401610c0f565b60006020808385031215610a1d578182fd5b823567ffffffffffffffff80821115610a34578384fd5b818501915085601f830112610a47578384fd5b813581811115610a5357fe5b604051601f8201601f1916810185018381118282101715610a7057fe5b6040528181528382018501881015610a86578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610ab1578081fd5b5051919050565b6000815180845260208085019450808401835b83811015610af15781516001600160e01b03191687529582019590820190600101610acb565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b30848351610bc4565b98850198935090840190600101610b18565b5091979650505050505050565b6000815180845260208085018081965082840281019150828601855b85811015610b42578284038952610b83848351610bc4565b98850198935090840190600101610b6b565b6000815180845260208085019450808401835b83811015610af157815187529582019590820190600101610ba8565b60008151808452815b81811015610be957602081850181015186830182015201610bcd565b81811115610bfa5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0383168152604060208201819052600090610c4790830184610ab8565b949350505050565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a06040830152610c4760a0830184610bc4565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610cd25781516001600160a01b031684529284019290840190600101610cad565b50505083810382850152610ce68189610b95565b9150508281036040840152610cfb8187610b4f565b90508281036060840152610d0f8186610afc565b90508281036080840152610d238185610bc4565b98975050505050505050565b600060208252610d426020830184610ab8565b9392505050565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b604082015260600190565b9081526020019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a264697066735822122093b05ba1fec7d1005cb7bd1ed3ae350dfa94a4a160bfd4d86d4e09c95ea9033b64736f6c63430007030033","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ADDRESS_THIS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DUMMY_IMPLEMENTATION","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FLUID_STETH_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR","outputs":[{"internalType":"contract IGovernorBravo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LITE","outputs":[{"internalType":"contract ILite","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_AVO_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_WEETH_WSTETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_WEETH_WSTETH_ORACLE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAWALS_MODULE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fluidStETHSigs","outputs":[{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verifyProposal","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalsSigs","outputs":[{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"stateMutability":"pure","type":"function"}]} \ No newline at end of file diff --git a/deployments/mainnet_1/PayloadIGP14.json b/deployments/mainnet_1/PayloadIGP14.json new file mode 100644 index 0000000..918d0e0 --- /dev/null +++ b/deployments/mainnet_1/PayloadIGP14.json @@ -0,0 +1 @@ +{"metadata":"{\"defaultCompiler\":{\"version\":\"0.7.3\"},\"sources\":{\"contracts/payloads/IGP14/PayloadIGP14.sol\":{\"content\":\"pragma solidity ^0.7.0;\\npragma experimental ABIEncoderV2;\\n\\ninterface IGovernorBravo {\\n function _acceptAdmin() external;\\n\\n function _setVotingDelay(uint newVotingDelay) external;\\n\\n function _setVotingPeriod(uint newVotingPeriod) external;\\n\\n function _acceptAdminOnTimelock() external;\\n\\n function _setImplementation(address implementation_) external;\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) external returns (uint);\\n\\n function admin() external view returns (address);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function timelock() external view returns (address);\\n\\n function votingDelay() external view returns (uint256);\\n\\n function votingPeriod() external view returns (uint256);\\n}\\n\\ninterface ITimelock {\\n function acceptAdmin() external;\\n\\n function setDelay(uint delay_) external;\\n\\n function setPendingAdmin(address pendingAdmin_) external;\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string memory signature,\\n bytes memory data,\\n uint eta\\n ) external payable returns (bytes memory);\\n\\n function pendingAdmin() external view returns (address);\\n\\n function admin() external view returns (address);\\n\\n function delay() external view returns (uint256);\\n}\\n\\ninterface ILite {\\n function setAdmin(address newAdmin) external;\\n\\n function getAdmin() external view returns (address);\\n\\n function removeImplementation(address implementation_) external;\\n\\n function addImplementation(\\n address implementation_,\\n bytes4[] calldata sigs_\\n ) external;\\n\\n function setDummyImplementation(address newDummyImplementation_) external;\\n\\n function updateMaxRiskRatio(\\n uint8[] memory protocolId_,\\n uint256[] memory newRiskRatio_\\n ) external;\\n\\n function updateAggrMaxVaultRatio(uint256 newAggrMaxVaultRatio_) external;\\n}\\n\\ninterface IFluidVaultT1 {\\n /// @notice updates the Vault oracle to `newOracle_`. Must implement the FluidOracle interface.\\n function updateOracle(address newOracle_) external;\\n\\n /// @notice updates the all Vault core settings according to input params.\\n /// All input values are expected in 1e2 (1% = 100, 100% = 10_000).\\n function updateCoreSettings(\\n uint256 supplyRateMagnifier_,\\n uint256 borrowRateMagnifier_,\\n uint256 collateralFactor_,\\n uint256 liquidationThreshold_,\\n uint256 liquidationMaxLimit_,\\n uint256 withdrawGap_,\\n uint256 liquidationPenalty_,\\n uint256 borrowFee_\\n ) external;\\n\\n /// @notice updates the allowed rebalancer to `newRebalancer_`.\\n function updateRebalancer(address newRebalancer_) external;\\n\\n /// @notice updates the supply rate magnifier to `supplyRateMagnifier_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateSupplyRateMagnifier(uint supplyRateMagnifier_) external;\\n\\n /// @notice updates the collateral factor to `collateralFactor_`. Input in 1e2 (1% = 100, 100% = 10_000).\\n function updateCollateralFactor(uint collateralFactor_) external;\\n}\\n\\ninterface IstETHProtocol {\\n /// @notice initializes the contract with `owner_` as owner\\n function initialize(address owner_) external;\\n\\n /// @notice Sets an address as allowed user or not. Only callable by auths.\\n /// @param user_ address to set allowed value for\\n /// @param allowed_ bool flag for whether address is allowed as user or not\\n function setUserAllowed(address user_, bool allowed_) external;\\n\\n /// @notice Sets `maxLTV` to `maxLTV_` (in 1e2: 1% = 100, 100% = 10000). Must be > 0 and < 100%.\\n function setMaxLTV(uint16 maxLTV_) external;\\n\\n /// @notice Sets an address as allowed guardian or not. Only callable by owner.\\n /// @param guardian_ address to set guardian value for\\n /// @param allowed_ bool flag for whether address is allowed as guardian or not\\n function setGuardian(address guardian_, bool allowed_) external;\\n}\\n\\ncontract PayloadIGP14 {\\n uint256 public constant PROPOSAL_ID = 14;\\n\\n address public constant PROPOSER =\\n 0xA45f7bD6A5Ff45D31aaCE6bCD3d426D9328cea01;\\n\\n address public constant PROPOSER_AVO_MULTISIG =\\n 0x059A94A72951c0ae1cc1CE3BF0dB52421bbE8210;\\n\\n IGovernorBravo public constant GOVERNOR =\\n IGovernorBravo(0x0204Cd037B2ec03605CFdFe482D8e257C765fA1B);\\n ITimelock public immutable TIMELOCK =\\n ITimelock(0x2386DC45AdDed673317eF068992F19421B481F4c);\\n\\n address public immutable ADDRESS_THIS;\\n\\n address public constant TEAM_MULTISIG = \\n 0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e;\\n\\n ILite public constant LITE =\\n ILite(0xA0D3707c569ff8C87FA923d3823eC5D81c98Be78);\\n\\n IstETHProtocol public constant STETH_PROTOCOL = IstETHProtocol(0x1F6B2bFDd5D1e6AdE7B17027ff5300419a56Ad6b);\\n address public constant VAULT_WSTETH_ETH = 0xA0F83Fc5885cEBc0420ce7C7b139Adc80c4F4D91;\\n\\n constructor() {\\n ADDRESS_THIS = address(this);\\n }\\n\\n function propose(string memory description) external {\\n require(\\n (\\n msg.sender == PROPOSER || \\n msg.sender == TEAM_MULTISIG\\n ) || \\n address(this) == PROPOSER_AVO_MULTISIG,\\n \\\"msg.sender-not-allowed\\\"\\n );\\n\\n uint256 totalActions = 1;\\n address[] memory targets = new address[](totalActions);\\n uint256[] memory values = new uint256[](totalActions);\\n string[] memory signatures = new string[](totalActions);\\n bytes[] memory calldatas = new bytes[](totalActions);\\n\\n // Action 1: call executePayload on timelock contract to execute payload related to lite & fluid\\n targets[0] = address(TIMELOCK);\\n values[0] = 0;\\n signatures[0] = \\\"executePayload(address,string,bytes)\\\";\\n calldatas[0] = abi.encode(ADDRESS_THIS, \\\"execute()\\\", abi.encode());\\n\\n uint256 proposedId = GOVERNOR.propose(\\n targets,\\n values,\\n signatures,\\n calldatas,\\n description\\n );\\n\\n require(proposedId == PROPOSAL_ID, \\\"PROPOSAL_IS_NOT_SAME\\\");\\n }\\n\\n function execute() external {\\n // Action 1: Update collateral factor for wstETH/ETH vault on fluid\\n action1();\\n\\n // Action 2: Update fluid max risk ratio on lite\\n action2();\\n\\n // Action 3: Update aggregated ratio on lite\\n action3();\\n\\n // Action 4: Whitelisting address on stETH Redemption Protocol\\n action4();\\n }\\n\\n function verifyProposal() external view {}\\n\\n /***********************************|\\n | Proposal Payload Actions |\\n |__________________________________*/\\n\\n /// @notice Action 1: Update collateral factor for wstETH/ETH vault on fluid\\n function action1() internal {\\n // Updating C.F from 91% to 93%\\n IFluidVaultT1(VAULT_WSTETH_ETH).updateCollateralFactor(93 * 1e2); // 93% or 93 * 1e2\\n }\\n\\n /// @notice Action 2: Update fluid max risk ratio on lite\\n function action2() internal {\\n uint8[] memory protocolIds_ = new uint8[](1);\\n uint256[] memory newRiskRatios_ = new uint256[](1);\\n\\n protocolIds_[0] = 8; // Protocol Id of fluid: 8\\n newRiskRatios_[0] = 92.5 * 1e4; // 92.5% or 92.5 * 1e4\\n\\n // Update max risky ratio of fluid from 91% to 92.5%\\n LITE.updateMaxRiskRatio(protocolIds_, newRiskRatios_);\\n }\\n\\n /// @notice Action 3: Update aggregated ratio on lite\\n function action3() internal {\\n\\n // Update aggregated max risk ratio from 83.5% to 90%\\n LITE.updateAggrMaxVaultRatio(90 * 1e4); // 90% or 90 * 1e4\\n }\\n\\n /// @notice Action 4: Whitelisting address on stETH Redemption Protocol\\n function action4() internal {\\n STETH_PROTOCOL.setUserAllowed(0xA02744dc2245e84fF3e309bAdfb4e54Bb0EC2Cf8, true);\\n }\\n}\\n\",\"versionPragma\":\"^0.7.0\"}}}","address":"0x3e243C07eDa53f90f4EbdA41bA12946E07B8ff80","bytecode":"0x60c06040527f2386dc45added673317ef068992f19421b481f4c00000000000000000000000060805234801561003457600080fd5b5030606081811b60a052608051901c90610bad61006b6000398061046152806105a05250806101f552806103b25250610bad6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636dc0ae221161008c578063aa98df3911610066578063aa98df3914610141578063b788f3a114610154578063bffa7f0f1461015c578063cc025f7c14610164576100cf565b80636dc0ae22146101295780637aadef8b146101315780637e2f35fa14610139576100cf565b80630680f417146100d45780630bc9136e146100f25780631e4a1a8c1461010757806353e568201461010f578063614619541461011757806366760d7d14610121575b600080fd5b6100dc61016c565b6040516100e9919061097b565b60405180910390f35b6100fa610184565b6040516100e99190610aec565b6100dc610189565b6100dc6101a1565b61011f6101b9565b005b61011f6101d9565b6100dc6101db565b6100dc6101f3565b6100dc610217565b61011f61014f3660046107aa565b61022f565b6100dc61056e565b6100dc610586565b6100dc61059e565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600e81565b731f6b2bfdd5d1e6ade7b17027ff5300419a56ad6b81565b73a0f83fc5885cebc0420ce7c7b139adc80c4f4d9181565b6101c16105c2565b6101c961062f565b6101d1610722565b6101d961075c565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea011480610264575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b8061028257503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b6102a75760405162461bcd60e51b815260040161029e90610af5565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff811180156102e357600080fd5b5060405190808252806020026020018201604052801561030d578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561032957600080fd5b5060405190808252806020026020018201604052801561035d57816020015b60608152602001906001900390816103485790505b50905060608467ffffffffffffffff8111801561037957600080fd5b506040519080825280602002602001820160405280156103ad57816020015b60608152602001906001900390816103985790505b5090507f0000000000000000000000000000000000000000000000000000000000000000846000815181106103de57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061040d57fe5b602002602001018181525050604051806060016040528060248152602001610b54602491398260008151811061043f57fe5b60209081029190910181019190915260408051600081529182018152610488917f00000000000000000000000000000000000000000000000000000000000000009181016109aa565b604051602081830303815290604052816000815181106104a457fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906104f19088908890889088908e906004016109f3565b602060405180830381600087803b15801561050b57600080fd5b505af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610543919061083f565b9050600e81146105655760405162461bcd60e51b815260040161029e90610b25565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051631427086960e21b815273a0f83fc5885cebc0420ce7c7b139adc80c4f4d919063509c21a4906105fb9061245490600401610aec565b600060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b50505050565b60408051600180825281830190925260609160208083019080368337505060408051600180825281830190925292935060609291506020808301908036833701905050905060088260008151811061068357fe5b602002602001019060ff16908160ff1681525050620e1d48816000815181106106a857fe5b60209081029190910101526040516307ac73b360e31b815273a0d3707c569ff8c87fa923d3823ec5d81c98be7890633d639d98906106ec9085908590600401610a92565b600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b505050505050565b604051637dc7b23960e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be7890637dc7b239906105fb90620dbba090600401610aec565b60405163d1a81a8d60e01b8152731f6b2bfdd5d1e6ade7b17027ff5300419a56ad6b9063d1a81a8d906105fb9073a02744dc2245e84ff3e309badfb4e54bb0ec2cf89060019060040161098f565b600060208083850312156107bc578182fd5b823567ffffffffffffffff808211156107d3578384fd5b818501915085601f8301126107e6578384fd5b8135818111156107f257fe5b604051601f8201601f191681018501838111828210171561080f57fe5b6040528181528382018501881015610825578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610850578081fd5b5051919050565b60008282518085526020808601955080818302840101818601855b848110156108a057601f1986840301895261088e838351610930565b98840198925090830190600101610872565b5090979650505050505050565b60008282518085526020808601955080818302840101818601855b848110156108a057601f198684030189526108e4838351610930565b988401989250908301906001016108c8565b6000815180845260208085019450808401835b8381101561092557815187529582019590820190600101610909565b509495945050505050565b60008151808452815b8181101561095557602081850181015186830182015201610939565b818111156109665782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039290921682521515602082015260400190565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a060408301526109eb60a0830184610930565b949350505050565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610a355781516001600160a01b031684529284019290840190600101610a10565b50505083810382850152610a4981896108f6565b9150508281036040840152610a5e81876108ad565b90508281036060840152610a728186610857565b90508281036080840152610a868185610930565b98975050505050505050565b604080825283519082018190526000906020906060840190828701845b82811015610ace57815160ff1684529284019290840190600101610aaf565b50505083810382850152610ae281866108f6565b9695505050505050565b90815260200190565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b60408201526060019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a2646970667358221220c33224cbd4165928c471bb1726d9836b733ca5c730e73cd30f8c8195b5ab2e9d64736f6c63430007030033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636dc0ae221161008c578063aa98df3911610066578063aa98df3914610141578063b788f3a114610154578063bffa7f0f1461015c578063cc025f7c14610164576100cf565b80636dc0ae22146101295780637aadef8b146101315780637e2f35fa14610139576100cf565b80630680f417146100d45780630bc9136e146100f25780631e4a1a8c1461010757806353e568201461010f578063614619541461011757806366760d7d14610121575b600080fd5b6100dc61016c565b6040516100e9919061097b565b60405180910390f35b6100fa610184565b6040516100e99190610aec565b6100dc610189565b6100dc6101a1565b61011f6101b9565b005b61011f6101d9565b6100dc6101db565b6100dc6101f3565b6100dc610217565b61011f61014f3660046107aa565b61022f565b6100dc61056e565b6100dc610586565b6100dc61059e565b73a0d3707c569ff8c87fa923d3823ec5d81c98be7881565b600e81565b731f6b2bfdd5d1e6ade7b17027ff5300419a56ad6b81565b73a0f83fc5885cebc0420ce7c7b139adc80c4f4d9181565b6101c16105c2565b6101c961062f565b6101d1610722565b6101d961075c565b565b730204cd037b2ec03605cfdfe482d8e257c765fa1b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b73059a94a72951c0ae1cc1ce3bf0db52421bbe821081565b3373a45f7bd6a5ff45d31aace6bcd3d426d9328cea011480610264575033734f6f977acdd1177dcd81ab83074855ecb9c2d49e145b8061028257503073059a94a72951c0ae1cc1ce3bf0db52421bbe8210145b6102a75760405162461bcd60e51b815260040161029e90610af5565b60405180910390fd5b604080516001808252818301909252606090826020808301908036833701905050905060608267ffffffffffffffff811180156102e357600080fd5b5060405190808252806020026020018201604052801561030d578160200160208202803683370190505b50905060608367ffffffffffffffff8111801561032957600080fd5b5060405190808252806020026020018201604052801561035d57816020015b60608152602001906001900390816103485790505b50905060608467ffffffffffffffff8111801561037957600080fd5b506040519080825280602002602001820160405280156103ad57816020015b60608152602001906001900390816103985790505b5090507f0000000000000000000000000000000000000000000000000000000000000000846000815181106103de57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060008360008151811061040d57fe5b602002602001018181525050604051806060016040528060248152602001610b54602491398260008151811061043f57fe5b60209081029190910181019190915260408051600081529182018152610488917f00000000000000000000000000000000000000000000000000000000000000009181016109aa565b604051602081830303815290604052816000815181106104a457fe5b6020908102919091010152604051636d4ab48d60e11b8152600090730204cd037b2ec03605cfdfe482d8e257c765fa1b9063da95691a906104f19088908890889088908e906004016109f3565b602060405180830381600087803b15801561050b57600080fd5b505af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610543919061083f565b9050600e81146105655760405162461bcd60e51b815260040161029e90610b25565b50505050505050565b734f6f977acdd1177dcd81ab83074855ecb9c2d49e81565b73a45f7bd6a5ff45d31aace6bcd3d426d9328cea0181565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051631427086960e21b815273a0f83fc5885cebc0420ce7c7b139adc80c4f4d919063509c21a4906105fb9061245490600401610aec565b600060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b50505050565b60408051600180825281830190925260609160208083019080368337505060408051600180825281830190925292935060609291506020808301908036833701905050905060088260008151811061068357fe5b602002602001019060ff16908160ff1681525050620e1d48816000815181106106a857fe5b60209081029190910101526040516307ac73b360e31b815273a0d3707c569ff8c87fa923d3823ec5d81c98be7890633d639d98906106ec9085908590600401610a92565b600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b505050505050565b604051637dc7b23960e01b815273a0d3707c569ff8c87fa923d3823ec5d81c98be7890637dc7b239906105fb90620dbba090600401610aec565b60405163d1a81a8d60e01b8152731f6b2bfdd5d1e6ade7b17027ff5300419a56ad6b9063d1a81a8d906105fb9073a02744dc2245e84ff3e309badfb4e54bb0ec2cf89060019060040161098f565b600060208083850312156107bc578182fd5b823567ffffffffffffffff808211156107d3578384fd5b818501915085601f8301126107e6578384fd5b8135818111156107f257fe5b604051601f8201601f191681018501838111828210171561080f57fe5b6040528181528382018501881015610825578586fd5b818585018683013790810190930193909352509392505050565b600060208284031215610850578081fd5b5051919050565b60008282518085526020808601955080818302840101818601855b848110156108a057601f1986840301895261088e838351610930565b98840198925090830190600101610872565b5090979650505050505050565b60008282518085526020808601955080818302840101818601855b848110156108a057601f198684030189526108e4838351610930565b988401989250908301906001016108c8565b6000815180845260208085019450808401835b8381101561092557815187529582019590820190600101610909565b509495945050505050565b60008151808452815b8181101561095557602081850181015186830182015201610939565b818111156109665782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039290921682521515602082015260400190565b600060018060a01b038416825260606020830152600960608301526865786563757465282960b81b608083015260a060408301526109eb60a0830184610930565b949350505050565b60a0808252865190820181905260009060209060c0840190828a01845b82811015610a355781516001600160a01b031684529284019290840190600101610a10565b50505083810382850152610a4981896108f6565b9150508281036040840152610a5e81876108ad565b90508281036060840152610a728186610857565b90508281036080840152610a868185610930565b98975050505050505050565b604080825283519082018190526000906020906060840190828701845b82811015610ace57815160ff1684529284019290840190600101610aaf565b50505083810382850152610ae281866108f6565b9695505050505050565b90815260200190565b6020808252601690820152751b5cd9cb9cd95b99195c8b5b9bdd0b585b1b1bddd95960521b604082015260600190565b60208082526014908201527350524f504f53414c5f49535f4e4f545f53414d4560601b60408201526060019056fe657865637574655061796c6f616428616464726573732c737472696e672c627974657329a2646970667358221220c33224cbd4165928c471bb1726d9836b733ca5c730e73cd30f8c8195b5ab2e9d64736f6c63430007030033","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ADDRESS_THIS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR","outputs":[{"internalType":"contract IGovernorBravo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LITE","outputs":[{"internalType":"contract ILite","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_AVO_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STETH_PROTOCOL","outputs":[{"internalType":"contract IstETHProtocol","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_MULTISIG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VAULT_WSTETH_ETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verifyProposal","outputs":[],"stateMutability":"view","type":"function"}]} \ No newline at end of file diff --git a/scripts/deployIGP14.js b/scripts/deployIGP14.js new file mode 100644 index 0000000..fa4146c --- /dev/null +++ b/scripts/deployIGP14.js @@ -0,0 +1,22 @@ +const hre = require("hardhat"); +const { ethers } = hre; + +async function main() { + // const PayloadIGP14 = await ethers.getContractFactory("PayloadIGP14") + // const payloadIGP14 = await PayloadIGP14.deploy() + // await payloadIGP14.deployed() + + // console.log("PayloadIGP14: ", payloadIGP14.address) + + await hre.run("verify:verify", { + address: "0x9C5F9e5987EBc5cb589215d6cE9Af8FE72560AE8", + constructorArguments: [] + }) +} + +main() + .then(() => process.exit(0)) + .catch(error => { + console.error(error); + process.exit(1); + }); diff --git a/scripts/deploySimulation.js b/scripts/deploySimulation.js index dc79aad..1b22901 100644 --- a/scripts/deploySimulation.js +++ b/scripts/deploySimulation.js @@ -2,10 +2,10 @@ const hre = require("hardhat"); const { ethers } = hre; async function main() { - const payload = await ethers.deployContract("PayloadIGP13", []) + const payload = await ethers.deployContract("PayloadIGP14", []) await payload.waitForDeployment() - console.log("PayloadIGP13: ", payload.target) + console.log("PayloadIGP14: ", payload.target) console.log() }