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  }