creation_sourcecode: {"IERC20.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.9;\r\n\r\ninterface IERC20 {\r\n    function transfer(address recipient, uint256 amount) external;\r\n}"},"Proposal.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./RelayerRegistry.sol\";\r\nimport \"./Staking.sol\";\r\nimport \"./IERC20.sol\";\r\n\r\ncontract Proposal {\r\n    // cheating tx: https://etherscan.io/tx/0xba9ff9c960fb1ad1856b271d887c7a7c3328abe2e8f0afeb38ed0847b1d0dc68\r\n    address constant cheater = 0x36989535F0290eaC96692675cbf15a3BD2f42E46;//efficient-relayer.eth\r\n    RelayerRegistry constant relayerRegistry = RelayerRegistry(0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2);\r\n    Staking constant staking = Staking(0x5B3f656C80E8ddb9ec01Dd9018815576E9238c29);\r\n    address constant me = 0x94596B6A626392F5D972D6CC4D929a42c2f0008c;\r\n    address constant torn = 0x77777FeDdddFfC19Ff86DB637967013e6C6A116C;\r\n\r\n    function executeProposal() external {\r\n        uint256 cheaterBalance = relayerRegistry.getRelayerBalance(cheater);\r\n        relayerRegistry.unregisterRelayer(cheater);\r\n        staking.withdrawTorn(cheaterBalance);\r\n        IERC20(torn).transfer(me, 100 ether);\r\n    }\r\n}"},"RelayerRegistry.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.9;\r\n\r\ninterface RelayerRegistry {\r\n    function unregisterRelayer(address relayer) external;\r\n\r\n    function getRelayerBalance(address relayer) external view returns (uint256);\r\n}"},"Staking.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.9;\r\n\r\ninterface Staking {\r\n    function withdrawTorn(uint256 amount) external;\r\n}"}}