{"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"}]}