Line data Source code
1 : // SPDX-License-Identifier: MIT 2 : 3 : pragma solidity ^0.6.12; 4 : pragma experimental ABIEncoderV2; 5 : 6 : import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; 7 : 8 : import { IGovernance } from "common/interfaces/IGovernance.sol"; 9 : import { IGnosisSafe } from "common/interfaces/IGnosisSafe.sol"; 10 : 11 : import { TornadoAddresses } from "common/TornadoAddresses.sol"; 12 : 13 : abstract contract TornadoProposal is TornadoAddresses { 14 : function executeProposal() public virtual; 15 : 16 : function getMultisig() internal pure returns (IGnosisSafe) { 17 0 : return IGnosisSafe(getMultisigAddress()); 18 : } 19 : 20 : function getTornToken() internal pure returns (IERC20) { 21 0 : return IERC20(getTornTokenAddress()); 22 : } 23 : 24 : function getGovernance() internal pure returns (IGovernance) { 25 0 : return IGovernance(getGovernanceProxyAddress()); 26 : } 27 : }