SimplePoolManagementProposal.t.sol
1 pragma solidity >=0.6.0; 2 pragma experimental ABIEncoderV2; 3 4 5 import "../../../contracts/governance/Proposal.sol"; 6 import "../../../contracts/interfaces/IProposalWrapper.sol"; 7 import "../../../contracts/interfaces/IProtocolSettings.sol"; 8 import "../../../contracts/interfaces/IERC20.sol"; 9 import "../../../contracts/utils/OpenZeppelinOwnable.sol"; 10 11 12 contract SimplePoolManagementProposal is Proposal, OpenZeppelinOwnable { 13 14 bytes executionBytes; 15 16 function setExecutionBytes(bytes memory _executionBytes) onlyOwner public { 17 executionBytes = _executionBytes; 18 } 19 20 function getExecutionBytes() public view returns (bytes memory) { 21 return executionBytes; 22 } 23 24 function getExecutionBytesSize() public view returns (uint) { 25 return executionBytes.length; 26 } 27 28 function getName() public override view returns (string memory) { 29 30 return "Pool Management Operation"; 31 } 32 33 function execute(IProtocolSettings _settings) public override { 34 35 } 36 37 function executePool(IERC20 pool) public override { 38 (bool success, ) = address(pool).call(executionBytes); 39 require(success == true, "failed to sucessfully execute"); 40 } 41 }