[
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "string", "name": "", "internalType": "string" }],
    "name": "NAME",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "string", "name": "", "internalType": "string" }],
    "name": "VERSION",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "addOwnerWithThreshold",
    "inputs": [
      { "type": "address", "name": "owner", "internalType": "address" },
      { "type": "uint256", "name": "_threshold", "internalType": "uint256" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "approveHash",
    "inputs": [{ "type": "bytes32", "name": "hashToApprove", "internalType": "bytes32" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "uint256", "name": "", "internalType": "uint256" }],
    "name": "approvedHashes",
    "inputs": [
      { "type": "address", "name": "", "internalType": "address" },
      { "type": "bytes32", "name": "", "internalType": "bytes32" }
    ],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "changeMasterCopy",
    "inputs": [{ "type": "address", "name": "_masterCopy", "internalType": "address" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "changeThreshold",
    "inputs": [{ "type": "uint256", "name": "_threshold", "internalType": "uint256" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "disableModule",
    "inputs": [
      { "type": "address", "name": "prevModule", "internalType": "contract Module" },
      { "type": "address", "name": "module", "internalType": "contract Module" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bytes32", "name": "", "internalType": "bytes32" }],
    "name": "domainSeparator",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "enableModule",
    "inputs": [{ "type": "address", "name": "module", "internalType": "contract Module" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bytes", "name": "", "internalType": "bytes" }],
    "name": "encodeTransactionData",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" },
      { "type": "uint256", "name": "safeTxGas", "internalType": "uint256" },
      { "type": "uint256", "name": "baseGas", "internalType": "uint256" },
      { "type": "uint256", "name": "gasPrice", "internalType": "uint256" },
      { "type": "address", "name": "gasToken", "internalType": "address" },
      { "type": "address", "name": "refundReceiver", "internalType": "address" },
      { "type": "uint256", "name": "_nonce", "internalType": "uint256" }
    ],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "payable",
    "payable": true,
    "outputs": [{ "type": "bool", "name": "success", "internalType": "bool" }],
    "name": "execTransaction",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" },
      { "type": "uint256", "name": "safeTxGas", "internalType": "uint256" },
      { "type": "uint256", "name": "baseGas", "internalType": "uint256" },
      { "type": "uint256", "name": "gasPrice", "internalType": "uint256" },
      { "type": "address", "name": "gasToken", "internalType": "address" },
      { "type": "address", "name": "refundReceiver", "internalType": "address payable" },
      { "type": "bytes", "name": "signatures", "internalType": "bytes" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [{ "type": "bool", "name": "success", "internalType": "bool" }],
    "name": "execTransactionFromModule",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [
      { "type": "bool", "name": "success", "internalType": "bool" },
      { "type": "bytes", "name": "returnData", "internalType": "bytes" }
    ],
    "name": "execTransactionFromModuleReturnData",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bytes32", "name": "", "internalType": "bytes32" }],
    "name": "getMessageHash",
    "inputs": [{ "type": "bytes", "name": "message", "internalType": "bytes" }],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "address[]", "name": "", "internalType": "address[]" }],
    "name": "getModules",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [
      { "type": "address[]", "name": "array", "internalType": "address[]" },
      { "type": "address", "name": "next", "internalType": "address" }
    ],
    "name": "getModulesPaginated",
    "inputs": [
      { "type": "address", "name": "start", "internalType": "address" },
      { "type": "uint256", "name": "pageSize", "internalType": "uint256" }
    ],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "address[]", "name": "", "internalType": "address[]" }],
    "name": "getOwners",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "uint256", "name": "", "internalType": "uint256" }],
    "name": "getThreshold",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bytes32", "name": "", "internalType": "bytes32" }],
    "name": "getTransactionHash",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" },
      { "type": "uint256", "name": "safeTxGas", "internalType": "uint256" },
      { "type": "uint256", "name": "baseGas", "internalType": "uint256" },
      { "type": "uint256", "name": "gasPrice", "internalType": "uint256" },
      { "type": "address", "name": "gasToken", "internalType": "address" },
      { "type": "address", "name": "refundReceiver", "internalType": "address" },
      { "type": "uint256", "name": "_nonce", "internalType": "uint256" }
    ],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bool", "name": "", "internalType": "bool" }],
    "name": "isModuleEnabled",
    "inputs": [{ "type": "address", "name": "module", "internalType": "contract Module" }],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "bool", "name": "", "internalType": "bool" }],
    "name": "isOwner",
    "inputs": [{ "type": "address", "name": "owner", "internalType": "address" }],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [{ "type": "bytes4", "name": "", "internalType": "bytes4" }],
    "name": "isValidSignature",
    "inputs": [
      { "type": "bytes", "name": "_data", "internalType": "bytes" },
      { "type": "bytes", "name": "_signature", "internalType": "bytes" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "uint256", "name": "", "internalType": "uint256" }],
    "name": "nonce",
    "inputs": [],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "removeOwner",
    "inputs": [
      { "type": "address", "name": "prevOwner", "internalType": "address" },
      { "type": "address", "name": "owner", "internalType": "address" },
      { "type": "uint256", "name": "_threshold", "internalType": "uint256" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [{ "type": "uint256", "name": "", "internalType": "uint256" }],
    "name": "requiredTxGas",
    "inputs": [
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "uint256", "name": "value", "internalType": "uint256" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "uint8", "name": "operation", "internalType": "enum Enum.Operation" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "setFallbackHandler",
    "inputs": [{ "type": "address", "name": "handler", "internalType": "address" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "setup",
    "inputs": [
      { "type": "address[]", "name": "_owners", "internalType": "address[]" },
      { "type": "uint256", "name": "_threshold", "internalType": "uint256" },
      { "type": "address", "name": "to", "internalType": "address" },
      { "type": "bytes", "name": "data", "internalType": "bytes" },
      { "type": "address", "name": "fallbackHandler", "internalType": "address" },
      { "type": "address", "name": "paymentToken", "internalType": "address" },
      { "type": "uint256", "name": "payment", "internalType": "uint256" },
      { "type": "address", "name": "paymentReceiver", "internalType": "address payable" }
    ],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "signMessage",
    "inputs": [{ "type": "bytes", "name": "_data", "internalType": "bytes" }],
    "constant": false
  },
  {
    "type": "function",
    "stateMutability": "view",
    "payable": false,
    "outputs": [{ "type": "uint256", "name": "", "internalType": "uint256" }],
    "name": "signedMessages",
    "inputs": [{ "type": "bytes32", "name": "", "internalType": "bytes32" }],
    "constant": true
  },
  {
    "type": "function",
    "stateMutability": "nonpayable",
    "payable": false,
    "outputs": [],
    "name": "swapOwner",
    "inputs": [
      { "type": "address", "name": "prevOwner", "internalType": "address" },
      { "type": "address", "name": "oldOwner", "internalType": "address" },
      { "type": "address", "name": "newOwner", "internalType": "address" }
    ],
    "constant": false
  }
]
