github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/scripts/interfaces/IGnosisSafe.sol (about) 1 // SPDX-License-Identifier: LGPL-3.0-only 2 pragma solidity ^0.8.10; 3 4 /// @title Enum - Collection of enums used in Safe contracts. 5 /// @author Richard Meissner - @rmeissner 6 abstract contract Enum { 7 enum Operation { 8 Call, 9 DelegateCall 10 } 11 } 12 13 /// @title IGnosisSafe - Gnosis Safe Interface 14 interface IGnosisSafe { 15 event AddedOwner(address owner); 16 event ApproveHash(bytes32 indexed approvedHash, address indexed owner); 17 event ChangedFallbackHandler(address handler); 18 event ChangedGuard(address guard); 19 event ChangedThreshold(uint256 threshold); 20 event DisabledModule(address module); 21 event EnabledModule(address module); 22 event ExecutionFailure(bytes32 txHash, uint256 payment); 23 event ExecutionFromModuleFailure(address indexed module); 24 event ExecutionFromModuleSuccess(address indexed module); 25 event ExecutionSuccess(bytes32 txHash, uint256 payment); 26 event RemovedOwner(address owner); 27 event SafeReceived(address indexed sender, uint256 value); 28 event SafeSetup( 29 address indexed initiator, address[] owners, uint256 threshold, address initializer, address fallbackHandler 30 ); 31 event SignMsg(bytes32 indexed msgHash); 32 33 function VERSION() external view returns (string memory); 34 function addOwnerWithThreshold(address owner, uint256 _threshold) external; 35 function approveHash(bytes32 hashToApprove) external; 36 function approvedHashes(address, bytes32) external view returns (uint256); 37 function changeThreshold(uint256 _threshold) external; 38 function checkNSignatures( 39 bytes32 dataHash, 40 bytes memory data, 41 bytes memory signatures, 42 uint256 requiredSignatures 43 ) 44 external 45 view; 46 function checkSignatures(bytes32 dataHash, bytes memory data, bytes memory signatures) external view; 47 function disableModule(address prevModule, address module) external; 48 function domainSeparator() external view returns (bytes32); 49 function enableModule(address module) external; 50 function encodeTransactionData( 51 address to, 52 uint256 value, 53 bytes memory data, 54 Enum.Operation operation, 55 uint256 safeTxGas, 56 uint256 baseGas, 57 uint256 gasPrice, 58 address gasToken, 59 address refundReceiver, 60 uint256 _nonce 61 ) 62 external 63 view 64 returns (bytes memory); 65 function execTransaction( 66 address to, 67 uint256 value, 68 bytes memory data, 69 Enum.Operation operation, 70 uint256 safeTxGas, 71 uint256 baseGas, 72 uint256 gasPrice, 73 address gasToken, 74 address refundReceiver, 75 bytes memory signatures 76 ) 77 external 78 payable 79 returns (bool success); 80 function execTransactionFromModule( 81 address to, 82 uint256 value, 83 bytes memory data, 84 Enum.Operation operation 85 ) 86 external 87 returns (bool success); 88 function execTransactionFromModuleReturnData( 89 address to, 90 uint256 value, 91 bytes memory data, 92 Enum.Operation operation 93 ) 94 external 95 returns (bool success, bytes memory returnData); 96 function getChainId() external view returns (uint256); 97 function getModulesPaginated( 98 address start, 99 uint256 pageSize 100 ) 101 external 102 view 103 returns (address[] memory array, address next); 104 function getOwners() external view returns (address[] memory); 105 function getStorageAt(uint256 offset, uint256 length) external view returns (bytes memory); 106 function getThreshold() external view returns (uint256); 107 function getTransactionHash( 108 address to, 109 uint256 value, 110 bytes memory data, 111 Enum.Operation operation, 112 uint256 safeTxGas, 113 uint256 baseGas, 114 uint256 gasPrice, 115 address gasToken, 116 address refundReceiver, 117 uint256 _nonce 118 ) 119 external 120 view 121 returns (bytes32); 122 function isModuleEnabled(address module) external view returns (bool); 123 function isOwner(address owner) external view returns (bool); 124 function nonce() external view returns (uint256); 125 function removeOwner(address prevOwner, address owner, uint256 _threshold) external; 126 function requiredTxGas( 127 address to, 128 uint256 value, 129 bytes memory data, 130 Enum.Operation operation 131 ) 132 external 133 returns (uint256); 134 function setFallbackHandler(address handler) external; 135 function setGuard(address guard) external; 136 function setup( 137 address[] memory _owners, 138 uint256 _threshold, 139 address to, 140 bytes memory data, 141 address fallbackHandler, 142 address paymentToken, 143 uint256 payment, 144 address paymentReceiver 145 ) 146 external; 147 function signedMessages(bytes32) external view returns (uint256); 148 function simulateAndRevert(address targetContract, bytes memory calldataPayload) external; 149 function swapOwner(address prevOwner, address oldOwner, address newOwner) external; 150 }