{
  "contractName": "ConfirmedTransactionModule",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "masterCopy",
          "type": "address"
        }
      ],
      "name": "ChangedMasterCopy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "manager",
          "type": "address"
        }
      ],
      "name": "Confirmed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "executor",
          "type": "address"
        }
      ],
      "name": "Executed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "allowed",
          "type": "bool"
        }
      ],
      "name": "ExecutorUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "manager",
          "type": "address"
        }
      ],
      "name": "Revoked",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_masterCopy",
          "type": "address"
        }
      ],
      "name": "changeMasterCopy",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isExecutor",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "manager",
      "outputs": [
        {
          "internalType": "contract ModuleManager",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "setup",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "executor",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "allowed",
          "type": "bool"
        }
      ],
      "name": "setExecutor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        }
      ],
      "name": "confirmTransaction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        }
      ],
      "name": "revokeTransaction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "enum Enum.Operation",
          "name": "operation",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "witness",
          "type": "bytes32"
        }
      ],
      "name": "executeTransaction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "transactionHash",
          "type": "bytes32"
        }
      ],
      "name": "getTransactionStatus",
      "outputs": [
        {
          "internalType": "bool",
          "name": "confirmed",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "executed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "enum Enum.Operation",
          "name": "operation",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "witness",
          "type": "bytes32"
        }
      ],
      "name": "getTransactionHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"masterCopy\",\"type\":\"address\"}],\"name\":\"ChangedMasterCopy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"Confirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"ExecutorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"Revoked\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_masterCopy\",\"type\":\"address\"}],\"name\":\"changeMasterCopy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"}],\"name\":\"getTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"}],\"name\":\"getTransactionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"confirmed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isExecutor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"manager\",\"outputs\":[{\"internalType\":\"contract ModuleManager\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"}],\"name\":\"revokeTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setExecutor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"setup\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"changeMasterCopy(address)\":{\"details\":\"Allows to upgrade the contract. This can only be done via a Safe transaction.\",\"params\":{\"_masterCopy\":\"New contract address.\"}},\"confirmTransaction(bytes32)\":{\"details\":\"Confirms a transaction to make it executable. This can only be done via a Safe transaction.\",\"params\":{\"transactionHash\":\"Transaction hash to be confirmed.\"}},\"executeTransaction(address,uint256,bytes,uint8,bytes32)\":{\"details\":\"Executes a confirmed transaction. Only designated executors can execute.\",\"params\":{\"data\":\"Data payload.\",\"operation\":\"Operation type.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\",\"witness\":\"Witness for hash commitment.\"}},\"getTransactionHash(address,uint256,bytes,uint8,bytes32)\":{\"details\":\"Returns hash to be signed by owners.\",\"params\":{\"data\":\"Data payload.\",\"operation\":\"Operation type.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\",\"witness\":\"Witness for hash commitment.\"},\"return\":\"Transaction hash.\"},\"getTransactionStatus(bytes32)\":{\"details\":\"Gets the status of a transaction.\",\"params\":{\"transactionHash\":\"Hash of transaction whose status is queried.\"},\"return\":\"A tuple of bools (confirmed, executed) indicating whether the transactions has been confirmed and executed.\"},\"revokeTransaction(bytes32)\":{\"details\":\"Revokes a previous confirmation. This can only be done via a Safe transaction.\",\"params\":{\"transactionHash\":\"Transaction hash to be revoked.\"}},\"setExecutor(address,bool)\":{\"details\":\"Adds an address to the executor allowlist. This can only be done via a Safe transaction.\",\"params\":{\"allowed\":\"true if executor should be allowed, false otherwise.\",\"executor\":\"Executor address.\"}},\"setup()\":{\"details\":\"Setup function sets manager\"}},\"title\":\"Confirmed Transaction Module - Enables the Safe to designate transactions that can be executed by an executor at any time. The set of executors is managed by the Safe.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/yosriady/safe/contracts/modules/ConfirmedTransactionModule.sol\":\"ConfirmedTransactionModule\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/yosriady/safe/contracts/base/Executor.sol\":{\"keccak256\":\"0xd2835623a200b6f14979751aff14e48362b5db0d86fff17dfb6a982790ff6c67\",\"urls\":[\"bzz-raw://df85c3b4dc546ffd8790a155bf6190b55168a69f469624a9134f1e7a9e079880\",\"dweb:/ipfs/QmXozPPHk7KAyoihdx4FEn4dEaR2x9yDJthQcZPR3Knxpv\"]},\"/Users/yosriady/safe/contracts/base/Module.sol\":{\"keccak256\":\"0x0d168bb2c28fe04185e992692705925d700ecc32692e1a1f997478c55722b9ad\",\"urls\":[\"bzz-raw://72b39ab237628e99e68b89269a99efbf7f4c977ce8dcda9e947e74ffffc2bf36\",\"dweb:/ipfs/QmekYYrv5X2wdg2QqaP96qhkxpwTT8nt47CHvuBxzHv9hp\"]},\"/Users/yosriady/safe/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0xb37522d525b7bc868df406e3779ff764f74d74354dc8e86ad4590afb62722117\",\"urls\":[\"bzz-raw://797f422109bdb6517916c41697cf834cafc14ce2bab8140b26847aa27fc95523\",\"dweb:/ipfs/QmNMXB1tBH9tJfmNqteUKdD8RXKXX9jNscz6Y5ijxqzGAL\"]},\"/Users/yosriady/safe/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0x0b4e23b1ba1f82475822f9fd3c7286190219f930f8917e8c5abb7e934a2fa9ef\",\"urls\":[\"bzz-raw://30adee483c783750415a0ebac930e9d97d1da49d90c52ceeb02a65263ab4d1e5\",\"dweb:/ipfs/Qma7RcT3LfzQrdpG2uBMbpx1qQbL2TF91UfANdeGUct2AT\"]},\"/Users/yosriady/safe/contracts/common/Enum.sol\":{\"keccak256\":\"0x7bc6e5afb9436d9f7e376c2cdba51ca1f337e1b31c04cca5769db3a77ed40081\",\"urls\":[\"bzz-raw://88b3a68baaff962b69b040af62698034bf9c99319e4a6dce71abc2c0c88fba91\",\"dweb:/ipfs/QmTefyhXcMALQew96u7YRLQBnye9vapqkKBWxbynWpMHDM\"]},\"/Users/yosriady/safe/contracts/common/MasterCopy.sol\":{\"keccak256\":\"0x1577fad0dc06cb3ac2c7d66816a00d3b70c053a21ab5834ec7aceace9a7803a7\",\"urls\":[\"bzz-raw://7f23c1e11ebb2fbd3b55a4074b4a9f343c0ac02b372cbbe66a90d71a88ce1885\",\"dweb:/ipfs/QmexSrdAm4DqBjGi29yQTxSGKqJ5qC8jy1b5NJH6Zy9Cvh\"]},\"/Users/yosriady/safe/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0x4c4f094227fc466846a97fe375c47ecdfcab050c303baeb69b5970d28db717a6\",\"urls\":[\"bzz-raw://42759fe6b2433ea24fd0fbe98a144ef55e464f87861a13aa364db8a6f4a01cf1\",\"dweb:/ipfs/QmTWPnHdfcBbddkMJxvEvoWs3CZoKB5rtz3s8K2ii9z9CG\"]},\"/Users/yosriady/safe/contracts/modules/ConfirmedTransactionModule.sol\":{\"keccak256\":\"0x51a2ef551b947eb514bb0b8308239baae57052faa087b7611efedd59c4320cdd\",\"urls\":[\"bzz-raw://cc11db955c02775059a0be3949e6766b92c5011b9583f14721e98adc60478c95\",\"dweb:/ipfs/QmeNyqJQgZMqMLsP5dtxxwfP4Hv5D9GirWbKqnr9V25brP\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5061154b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637de7edef116100715780637de7edef146103bb57806394407465146103ff578063a3f4df7e14610450578063ba0bba40146104d3578063debfda30146104dd578063ffa1ad7414610539576100b4565b80631e1bff3f146100b95780632c09b32914610109578063481c6a75146102055780634884ef741461024f57806379716e431461027d5780637b346ea1146102ab575b600080fd5b610107600480360360408110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506105bc565b005b610203600480360360a081101561011f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016657600080fd5b82018360208201111561017857600080fd5b8035906020019184600183028401116401000000008311171561019a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610767565b005b61020d610b3c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027b6004803603602081101561026557600080fd5b8101908080359060200190929190505050610b62565b005b6102a96004803603602081101561029357600080fd5b8101908080359060200190929190505050610d30565b005b6103a5600480360360a08110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561030857600080fd5b82018360208201111561031a57600080fd5b8035906020019184600183028401116401000000008311171561033c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610efe565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109c565b005b61042b6004803603602081101561041557600080fd5b810190808035906020019092919050505061126e565b6040518083151515158152602001821515151581526020019250505060405180910390f35b610458611329565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561049857808201518184015260208101905061047d565b50505050905090810190601f1680156104c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104db611362565b005b61051f600480360360208110156104f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136c565b604051808215151515815260200191505060405180910390f35b61054161138c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610581578082015181840152602081019050610566565b50505050905090810190601f1680156105ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b801515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146107635780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea282604051808215151515815260200191505060405180910390a25b5050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6f6e6c79206578656375746f722063616e2063616c6c0000000000000000000081525060200191505060405180910390fd5b60006108358686868686610efe565b90506001600281111561084457fe5b6002600083815260200190815260200160002060009054906101000a900460ff16600281111561087057fe5b146108e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f747820756e6b6e6f776e206f7220616c7265616479206578656375746564000081525060200191505060405180910390fd5b600280600083815260200190815260200160002060006101000a81548160ff0219169083600281111561091257fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7878787876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018360018111156109b457fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156109f45780820151818401526020810190506109d9565b50505050905090810190601f168015610a215780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a4357600080fd5b505af1158015610a57573d6000803e3d6000fd5b505050506040513d6020811015610a6d57600080fd5b8101908080519060200190929190505050610af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f657865637574696f6e206661696c65640000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16817f59c3746e635078efc737fb3f37dd8188203b8df10bbad35878a7d156f4f51c4160405160405180910390a3505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b60016002811115610c1557fe5b6002600083815260200190815260200160002060009054906101000a900460ff166002811115610c4157fe5b14610cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f747820756e6b6e6f776e206f7220616c7265616479206578656375746564000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060006101000a81548160ff02191690836002811115610ce457fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff16817f5bc2baf870c5baf189838b5e0b0e3b04a3263e2df5d305d1c15f3e6022f5dc4560405160405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b60006002811115610de357fe5b6002600083815260200190815260200160002060009054906101000a900460ff166002811115610e0f57fe5b14610e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f747820616c726561647920636f6e6669726d656400000000000000000000000081525060200191505060405180910390fd5b60016002600083815260200190815260200160002060006101000a81548160ff02191690836002811115610eb257fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff16817fd4964a7cd99f5c1fa8f2420fb5e1d3bd26eadf16e2658cf2e29a67dfda38601e60405160405180910390a350565b6000806001811115610f0c57fe5b836001811115610f1857fe5b1480610f395750600180811115610f2b57fe5b836001811115610f3757fe5b145b610fab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f756e6b6e6f776e206f7065726174696f6e00000000000000000000000000000081525060200191505060405180910390fd5b8585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200180602001846001811115610fff57fe5b60ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561104557808201518184015260208101905061102a565b50505050905090810190601f1680156110725780820380516001836020036101000a031916815260200191505b50965050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806114cd6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060006002600085815260200190815260200160002060009054906101000a900460ff169050600060028111156112a357fe5b8160028111156112af57fe5b14156112c2576000809250925050611324565b600160028111156112cf57fe5b8160028111156112db57fe5b14156112ef57600160009250925050611324565b6002808111156112fb57fe5b81600281111561130757fe5b141561131a576001809250925050611324565b600061132257fe5b505b915091565b6040518060400160405280601c81526020017f436f6e6669726d6564205472616e73616374696f6e204d6f64756c650000000081525081565b61136a6113c5565b565b60036020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a265627a7a72315820ef088e400f8572fd885e36348bcc199d7e0dd5d5ff73d8a70906daebcbe5fbf764736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637de7edef116100715780637de7edef146103bb57806394407465146103ff578063a3f4df7e14610450578063ba0bba40146104d3578063debfda30146104dd578063ffa1ad7414610539576100b4565b80631e1bff3f146100b95780632c09b32914610109578063481c6a75146102055780634884ef741461024f57806379716e431461027d5780637b346ea1146102ab575b600080fd5b610107600480360360408110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506105bc565b005b610203600480360360a081101561011f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561016657600080fd5b82018360208201111561017857600080fd5b8035906020019184600183028401116401000000008311171561019a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610767565b005b61020d610b3c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027b6004803603602081101561026557600080fd5b8101908080359060200190929190505050610b62565b005b6102a96004803603602081101561029357600080fd5b8101908080359060200190929190505050610d30565b005b6103a5600480360360a08110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561030857600080fd5b82018360208201111561031a57600080fd5b8035906020019184600183028401116401000000008311171561033c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610efe565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109c565b005b61042b6004803603602081101561041557600080fd5b810190808035906020019092919050505061126e565b6040518083151515158152602001821515151581526020019250505060405180910390f35b610458611329565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561049857808201518184015260208101905061047d565b50505050905090810190601f1680156104c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104db611362565b005b61051f600480360360208110156104f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136c565b604051808215151515815260200191505060405180910390f35b61054161138c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610581578082015181840152602081019050610566565b50505050905090810190601f1680156105ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b801515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146107635780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea282604051808215151515815260200191505060405180910390a25b5050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6f6e6c79206578656375746f722063616e2063616c6c0000000000000000000081525060200191505060405180910390fd5b60006108358686868686610efe565b90506001600281111561084457fe5b6002600083815260200190815260200160002060009054906101000a900460ff16600281111561087057fe5b146108e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f747820756e6b6e6f776e206f7220616c7265616479206578656375746564000081525060200191505060405180910390fd5b600280600083815260200190815260200160002060006101000a81548160ff0219169083600281111561091257fe5b0217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7878787876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018360018111156109b457fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156109f45780820151818401526020810190506109d9565b50505050905090810190601f168015610a215780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a4357600080fd5b505af1158015610a57573d6000803e3d6000fd5b505050506040513d6020811015610a6d57600080fd5b8101908080519060200190929190505050610af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f657865637574696f6e206661696c65640000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16817f59c3746e635078efc737fb3f37dd8188203b8df10bbad35878a7d156f4f51c4160405160405180910390a3505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b60016002811115610c1557fe5b6002600083815260200190815260200160002060009054906101000a900460ff166002811115610c4157fe5b14610cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f747820756e6b6e6f776e206f7220616c7265616479206578656375746564000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060006101000a81548160ff02191690836002811115610ce457fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff16817f5bc2baf870c5baf189838b5e0b0e3b04a3263e2df5d305d1c15f3e6022f5dc4560405160405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b60006002811115610de357fe5b6002600083815260200190815260200160002060009054906101000a900460ff166002811115610e0f57fe5b14610e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f747820616c726561647920636f6e6669726d656400000000000000000000000081525060200191505060405180910390fd5b60016002600083815260200190815260200160002060006101000a81548160ff02191690836002811115610eb257fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff16817fd4964a7cd99f5c1fa8f2420fb5e1d3bd26eadf16e2658cf2e29a67dfda38601e60405160405180910390a350565b6000806001811115610f0c57fe5b836001811115610f1857fe5b1480610f395750600180811115610f2b57fe5b836001811115610f3757fe5b145b610fab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f756e6b6e6f776e206f7065726174696f6e00000000000000000000000000000081525060200191505060405180910390fd5b8585858585604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200180602001846001811115610fff57fe5b60ff168152602001838152602001828103825285818151815260200191508051906020019080838360005b8381101561104557808201518184015260208101905061102a565b50505050905090810190601f1680156110725780820380516001836020036101000a031916815260200191505b50965050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f16026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806114cd6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060006002600085815260200190815260200160002060009054906101000a900460ff169050600060028111156112a357fe5b8160028111156112af57fe5b14156112c2576000809250925050611324565b600160028111156112cf57fe5b8160028111156112db57fe5b14156112ef57600160009250925050611324565b6002808111156112fb57fe5b81600281111561130757fe5b141561131a576001809250925050611324565b600061132257fe5b505b915091565b6040518060400160405280601c81526020017f436f6e6669726d6564205472616e73616374696f6e204d6f64756c650000000081525081565b61136a6113c5565b565b60036020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a265627a7a72315820ef088e400f8572fd885e36348bcc199d7e0dd5d5ff73d8a70906daebcbe5fbf764736f6c63430005110032",
  "sourceMap": "342:5116:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;342:5116:24;;;;;;;",
  "deployedSourceMap": "342:5116:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;342:5116:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1692:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1692:252:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3242:644;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3242:644:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3242:644:24;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3242:644:24;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3242:644:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3242:644:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;278:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2612:338:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2612:338:24;;;;;;;;;;;;;;;;;:::i;:::-;;2120:331;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2120:331:24;;;;;;;;;;;;;;;;;:::i;:::-;;5037:419;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5037:419:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5037:419:24;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5037:419:24;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5037:419:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;5037:419:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;804:302:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;804:302:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;4147:600:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4147:600:24;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;395:60:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:65;;;:::i;:::-;;1195:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1195:43:24;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;461:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;461:40:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1692:252;375:7:4;;;;;;;;;;;353:30;;:10;:30;;;345:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1821:7:24;1797:31;;:10;:20;1808:8;1797:20;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;1793:145;;1867:7;1844:10;:20;1855:8;1844:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1909:8;1893:34;;;1919:7;1893:34;;;;;;;;;;;;;;;;;;;;;;1793:145;1692:252;;:::o;3242:644::-;1287:10;:22;1298:10;1287:22;;;;;;;;;;;;;;;;;;;;;;;;;1279:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:23;3481:55;3500:2;3504:5;3511:4;3517:9;3528:7;3481:18;:55::i;:::-;3455:81;;3592:27;3554:65;;;;;;;;:17;:34;3572:15;3554:34;;;;;;;;;;;;;;;;;;;;;:65;;;;;;;;;3546:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:26;3664:17;:34;3682:15;3664:34;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;;;;;;;3745:7;;;;;;;;;;;:33;;;3779:2;3783:5;3790:4;3796:9;3745:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3745:61:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3745:61:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3745:61:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3745:61:24;;;;;;;;;;;;;;;;3737:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3868:10;3842:37;;3851:15;3842:37;;;;;;;;;;1346:1;3242:644;;;;;:::o;278:28:4:-;;;;;;;;;;;;;:::o;2612:338:24:-;375:7:4;;;;;;;;;;;353:30;;:10;:30;;;345:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2758:27:24;2720:65;;;;;;;;:17;:34;2738:15;2720:34;;;;;;;;;;;;;;;;;;;;;:65;;;;;;;;;2712:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2867:25;2830:17;:34;2848:15;2830:34;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;;;;;;;2932:10;2907:36;;2915:15;2907:36;;;;;;;;;;2612:338;:::o;2120:331::-;375:7:4;;;;;;;;;;;353:30;;:10;:30;;;345:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:25:24;2229:63;;;;;;;;:17;:34;2247:15;2229:34;;;;;;;;;;;;;;;;;;;;;:63;;;;;;;;;2221:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:27;2327:17;:34;2345:15;2327:34;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;;;;;;;2433:10;2406:38;;2416:15;2406:38;;;;;;;;;;2120:331;:::o;5037:419::-;5245:7;5289:19;5276:32;;;;;;;;:9;:32;;;;;;;;;:76;;;;5325:27;5312:40;;;;;;;;:9;:40;;;;;;;;;5276:76;5268:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5412:2;5416:5;5423:4;5429:9;5440:7;5401:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5401:47:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5401:47:24;;;5391:58;;;;;;5384:65;;5037:419;;;;;;;:::o;804:302:9:-;375:7:4;;;;;;;;;;;353:30;;:10;:30;;;345:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:1:9;954:25;;:11;:25;;;;946:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1043:11;1030:10;;:24;;;;;;;;;;;;;;;;;;1069:30;1087:11;1069:30;;;;;;;;;;;;;;;;;;;;;;804:302;:::o;4147:600:24:-;4261:14;4277:13;4306:24;4333:17;:34;4351:15;4333:34;;;;;;;;;;;;;;;;;;;;;4306:61;;4391:25;4381:35;;;;;;;;:6;:35;;;;;;;;;4377:364;;;4440:5;4447;4432:21;;;;;;;4377:364;4484:27;4474:37;;;;;;;;:6;:37;;;;;;;;;4470:271;;;4535:4;4541:5;4527:20;;;;;;;4470:271;4578:26;4568:36;;;;;;;;:6;:36;;;;;;;;;4564:177;;;4628:4;4634;4620:19;;;;;;;4564:177;4724:5;4717:13;;;;4147:600;;;;;:::o;395:60::-;;;;;;;;;;;;;;;;;;;:::o;1401:65::-;1447:12;:10;:12::i;:::-;1401:65::o;1195:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;461:40::-;;;;;;;;;;;;;;;;;;;:::o;450:309:4:-;672:1;644:30;;652:7;;;;;;;;;;;644:30;;;636:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;741:10;717:7;;:35;;;;;;;;;;;;;;;;;;450:309::o",
  "source": "\npragma solidity >=0.5.0 <0.7.0;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n/// @title Confirmed Transaction Module - Enables the Safe to designate transactions that can be executed by an executor at any time. The set of executors is managed by the Safe.\ncontract ConfirmedTransactionModule is Module {\n\n    string public constant NAME = \"Confirmed Transaction Module\";\n    string public constant VERSION = \"0.1.0\";\n\n    event Confirmed(\n        bytes32 indexed transactionHash,\n        address indexed manager\n    );\n    event Revoked(\n        bytes32 indexed transactionHash,\n        address indexed manager\n    );\n    event Executed(\n        bytes32 indexed transactionHash,\n        address indexed executor\n    );\n    event ExecutorUpdated(\n        address indexed executor,\n        bool allowed\n    );\n\n\n    enum TransactionStatus {\n        Unknown,\n        Confirmed,\n        Executed\n    }\n\n    // transactionStatus maps transactionsHashes to their status\n    mapping (bytes32 => TransactionStatus) private transactionStatus;\n\n    // isExecutor mapping maps executor's address to executor status.\n    mapping (address => bool) public isExecutor;\n\n    modifier onlyExecutor() {\n        require(isExecutor[msg.sender], \"only executor can call\");\n        _;\n    }\n\n    /// @dev Setup function sets manager\n    function setup()\n        public\n    {\n        setManager();\n    }\n\n    /// @dev Adds an address to the executor allowlist. This can only be done via a Safe transaction.\n    /// @param executor Executor address.\n    /// @param allowed true if executor should be allowed, false otherwise.\n    function setExecutor(address executor, bool allowed)\n        public\n        authorized\n    {\n        if (isExecutor[executor] != allowed) {\n            isExecutor[executor] = allowed;\n            emit ExecutorUpdated(executor, allowed);\n        }\n    }\n\n    /// @dev Confirms a transaction to make it executable. This can only be done via a Safe transaction.\n    /// @param transactionHash Transaction hash to be confirmed.\n    function confirmTransaction(bytes32 transactionHash)\n        public\n        authorized\n    {\n        require(transactionStatus[transactionHash] == TransactionStatus.Unknown, \"tx already confirmed\");\n        transactionStatus[transactionHash] = TransactionStatus.Confirmed;\n        emit Confirmed(transactionHash, msg.sender);\n    }\n\n    /// @dev Revokes a previous confirmation. This can only be done via a Safe transaction.\n    /// @param transactionHash Transaction hash to be revoked.\n    function revokeTransaction(bytes32 transactionHash)\n        public\n        authorized\n    {\n        require(transactionStatus[transactionHash] == TransactionStatus.Confirmed, \"tx unknown or already executed\");\n        transactionStatus[transactionHash] = TransactionStatus.Unknown;\n        emit Revoked(transactionHash, msg.sender);\n    }\n\n    /// @dev Executes a confirmed transaction. Only designated executors can execute.\n    /// @param to Destination address.\n    /// @param value Ether value.\n    /// @param data Data payload.\n    /// @param operation Operation type.\n    /// @param witness Witness for hash commitment.\n    function executeTransaction(\n        address to,\n        uint256 value,\n        bytes memory data,\n        Enum.Operation operation,\n        bytes32 witness\n    )\n        public\n        onlyExecutor\n    {\n        bytes32 transactionHash = getTransactionHash(to, value, data, operation, witness);\n        require(transactionStatus[transactionHash] == TransactionStatus.Confirmed, \"tx unknown or already executed\");\n        transactionStatus[transactionHash] = TransactionStatus.Executed;\n        require(manager.execTransactionFromModule(to, value, data, operation), \"execution failed\");\n        emit Executed(transactionHash, msg.sender);\n    }\n\n    /// @dev Gets the status of a transaction.\n    /// @param transactionHash Hash of transaction whose status is queried.\n    /// @return A tuple of bools (confirmed, executed) indicating whether the\n    /// transactions has been confirmed and executed.\n    function getTransactionStatus(\n        bytes32 transactionHash\n    )\n        public\n        view\n        returns (bool confirmed, bool executed)\n    {\n        TransactionStatus status = transactionStatus[transactionHash];\n        if (status == TransactionStatus.Unknown) {\n            return (false, false);\n        } else if (status == TransactionStatus.Confirmed) {\n            return (true, false);\n        } else if (status == TransactionStatus.Executed) {\n            return (true, true);\n        } else {\n            // We should never reach this case\n            assert(false);\n        }\n    }\n\n    /// @dev Returns hash to be signed by owners.\n    /// @param to Destination address.\n    /// @param value Ether value.\n    /// @param data Data payload.\n    /// @param operation Operation type.\n    /// @param witness Witness for hash commitment.\n    /// @return Transaction hash.\n    function getTransactionHash(\n        address to,\n        uint256 value,\n        bytes memory data,\n        Enum.Operation operation,\n        bytes32 witness\n    )\n        public\n        pure\n        returns (bytes32)\n    {\n        require(operation == Enum.Operation.Call || operation == Enum.Operation.DelegateCall, \"unknown operation\");\n        return keccak256(abi.encode(to, value, data, operation, witness));\n    }\n}",
  "sourcePath": "/Users/yosriady/safe/contracts/modules/ConfirmedTransactionModule.sol",
  "ast": {
    "absolutePath": "/Users/yosriady/safe/contracts/modules/ConfirmedTransactionModule.sol",
    "exportedSymbols": {
      "ConfirmedTransactionModule": [
        3177
      ]
    },
    "id": 3178,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2866,
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1:31:24"
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/Module.sol",
        "file": "../base/Module.sol",
        "id": 2867,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 1163,
        "src": "33:28:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/ModuleManager.sol",
        "file": "../base/ModuleManager.sol",
        "id": 2868,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 1554,
        "src": "62:35:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/OwnerManager.sol",
        "file": "../base/OwnerManager.sol",
        "id": 2869,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 2020,
        "src": "98:34:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/common/Enum.sol",
        "file": "../common/Enum.sol",
        "id": 2870,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 2026,
        "src": "133:28:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2871,
              "name": "Module",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1162,
              "src": "381:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Module_$1162",
                "typeString": "contract Module"
              }
            },
            "id": 2872,
            "nodeType": "InheritanceSpecifier",
            "src": "381:6:24"
          }
        ],
        "contractDependencies": [
          1162,
          2069,
          2111
        ],
        "contractKind": "contract",
        "documentation": "@title Confirmed Transaction Module - Enables the Safe to designate transactions that can be executed by an executor at any time. The set of executors is managed by the Safe.",
        "fullyImplemented": true,
        "id": 3177,
        "linearizedBaseContracts": [
          3177,
          1162,
          2069,
          2111
        ],
        "name": "ConfirmedTransactionModule",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 2875,
            "name": "NAME",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "395:60:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2873,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "395:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "436f6e6669726d6564205472616e73616374696f6e204d6f64756c65",
              "id": 2874,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "425:30:24",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_43bbd3accd783f0f311a8e788cebddf5f1e93a5cf864ac31938190271d65d8f3",
                "typeString": "literal_string \"Confirmed Transaction Module\""
              },
              "value": "Confirmed Transaction Module"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 2878,
            "name": "VERSION",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "461:40:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2876,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "461:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e312e30",
              "id": 2877,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "494:7:24",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f",
                "typeString": "literal_string \"0.1.0\""
              },
              "value": "0.1.0"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2884,
            "name": "Confirmed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2880,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2884,
                  "src": "533:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2879,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "533:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2882,
                  "indexed": true,
                  "name": "manager",
                  "nodeType": "VariableDeclaration",
                  "scope": 2884,
                  "src": "574:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2881,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "574:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "523:80:24"
            },
            "src": "508:96:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2890,
            "name": "Revoked",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2886,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2890,
                  "src": "632:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2885,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "632:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2888,
                  "indexed": true,
                  "name": "manager",
                  "nodeType": "VariableDeclaration",
                  "scope": 2890,
                  "src": "673:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2887,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "673:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "622:80:24"
            },
            "src": "609:94:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2896,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2892,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2896,
                  "src": "732:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2891,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2894,
                  "indexed": true,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2896,
                  "src": "773:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2893,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "773:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "722:81:24"
            },
            "src": "708:96:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2902,
            "name": "ExecutorUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2898,
                  "indexed": true,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2902,
                  "src": "840:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2897,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "840:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2900,
                  "indexed": false,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2902,
                  "src": "874:12:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2899,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "874:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "830:62:24"
            },
            "src": "809:84:24"
          },
          {
            "canonicalName": "ConfirmedTransactionModule.TransactionStatus",
            "id": 2906,
            "members": [
              {
                "id": 2903,
                "name": "Unknown",
                "nodeType": "EnumValue",
                "src": "933:7:24"
              },
              {
                "id": 2904,
                "name": "Confirmed",
                "nodeType": "EnumValue",
                "src": "950:9:24"
              },
              {
                "id": 2905,
                "name": "Executed",
                "nodeType": "EnumValue",
                "src": "969:8:24"
              }
            ],
            "name": "TransactionStatus",
            "nodeType": "EnumDefinition",
            "src": "900:83:24"
          },
          {
            "constant": false,
            "id": 2910,
            "name": "transactionStatus",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "1054:64:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
            },
            "typeName": {
              "id": 2909,
              "keyType": {
                "id": 2907,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1063:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1054:38:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2908,
                "name": "TransactionStatus",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2906,
                "src": "1074:17:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                  "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2914,
            "name": "isExecutor",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "1195:43:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 2913,
              "keyType": {
                "id": 2911,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1204:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1195:25:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 2912,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1215:4:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2925,
              "nodeType": "Block",
              "src": "1269:85:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2917,
                          "name": "isExecutor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2914,
                          "src": "1287:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                            "typeString": "mapping(address => bool)"
                          }
                        },
                        "id": 2920,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2918,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5529,
                            "src": "1298:3:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1298:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1287:22:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f6e6c79206578656375746f722063616e2063616c6c",
                        "id": 2921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1311:24:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ecd20db312fd8836e972f67db05f59851ee03fcf7da6fd39b19322a8e06fe027",
                          "typeString": "literal_string \"only executor can call\""
                        },
                        "value": "only executor can call"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ecd20db312fd8836e972f67db05f59851ee03fcf7da6fd39b19322a8e06fe027",
                          "typeString": "literal_string \"only executor can call\""
                        }
                      ],
                      "id": 2916,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "1279:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1279:57:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2923,
                  "nodeType": "ExpressionStatement",
                  "src": "1279:57:24"
                },
                {
                  "id": 2924,
                  "nodeType": "PlaceholderStatement",
                  "src": "1346:1:24"
                }
              ]
            },
            "documentation": null,
            "id": 2926,
            "name": "onlyExecutor",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2915,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1266:2:24"
            },
            "src": "1245:109:24",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "1437:29:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2929,
                      "name": "setManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1161,
                      "src": "1447:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1447:12:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "1447:12:24"
                }
              ]
            },
            "documentation": "@dev Setup function sets manager",
            "id": 2933,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setup",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2927,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1415:2:24"
            },
            "returnParameters": {
              "id": 2928,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1437:0:24"
            },
            "scope": 3177,
            "src": "1401:65:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2960,
              "nodeType": "Block",
              "src": "1783:161:24",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "isExecutor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2914,
                        "src": "1797:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 2944,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2943,
                        "name": "executor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "1808:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1797:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2945,
                      "name": "allowed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2937,
                      "src": "1821:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1797:31:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2959,
                  "nodeType": "IfStatement",
                  "src": "1793:145:24",
                  "trueBody": {
                    "id": 2958,
                    "nodeType": "Block",
                    "src": "1830:108:24",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2951,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2947,
                              "name": "isExecutor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2914,
                              "src": "1844:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 2949,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2948,
                              "name": "executor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2935,
                              "src": "1855:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1844:20:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 2950,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2937,
                            "src": "1867:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1844:30:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 2952,
                        "nodeType": "ExpressionStatement",
                        "src": "1844:30:24"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2954,
                              "name": "executor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2935,
                              "src": "1909:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2955,
                              "name": "allowed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2937,
                              "src": "1919:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 2953,
                            "name": "ExecutorUpdated",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2902,
                            "src": "1893:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$",
                              "typeString": "function (address,bool)"
                            }
                          },
                          "id": 2956,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1893:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2957,
                        "nodeType": "EmitStatement",
                        "src": "1888:39:24"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Adds an address to the executor allowlist. This can only be done via a Safe transaction.\n @param executor Executor address.\n @param allowed true if executor should be allowed, false otherwise.",
            "id": 2961,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2940,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2939,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "1768:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1768:10:24"
              }
            ],
            "name": "setExecutor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2961,
                  "src": "1713:16:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1713:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2937,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2961,
                  "src": "1731:12:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2936,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1731:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1712:32:24"
            },
            "returnParameters": {
              "id": 2941,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1783:0:24"
            },
            "scope": 3177,
            "src": "1692:252:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2991,
              "nodeType": "Block",
              "src": "2211:240:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "2229:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 2971,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2970,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2963,
                            "src": "2247:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2229:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2972,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "2267:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 2973,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Unknown",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2267:25:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "2229:63:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820616c726561647920636f6e6669726d6564",
                        "id": 2975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2294:22:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626",
                          "typeString": "literal_string \"tx already confirmed\""
                        },
                        "value": "tx already confirmed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626",
                          "typeString": "literal_string \"tx already confirmed\""
                        }
                      ],
                      "id": 2968,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "2221:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2221:96:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2977,
                  "nodeType": "ExpressionStatement",
                  "src": "2221:96:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2978,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "2327:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 2980,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2963,
                        "src": "2345:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2327:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2981,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "2364:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 2982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Confirmed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2364:27:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "2327:64:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 2984,
                  "nodeType": "ExpressionStatement",
                  "src": "2327:64:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2986,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2963,
                        "src": "2416:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2987,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "2433:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2433:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 2985,
                      "name": "Confirmed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2884,
                      "src": "2406:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2406:38:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2990,
                  "nodeType": "EmitStatement",
                  "src": "2401:43:24"
                }
              ]
            },
            "documentation": "@dev Confirms a transaction to make it executable. This can only be done via a Safe transaction.\n @param transactionHash Transaction hash to be confirmed.",
            "id": 2992,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2966,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2965,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "2196:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2196:10:24"
              }
            ],
            "name": "confirmTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2963,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2992,
                  "src": "2148:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2962,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2148:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2147:25:24"
            },
            "returnParameters": {
              "id": 2967,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2211:0:24"
            },
            "scope": 3177,
            "src": "2120:331:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3022,
              "nodeType": "Block",
              "src": "2702:248:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3000,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "2720:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3002,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3001,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "2738:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2720:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3003,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "2758:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3004,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Confirmed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2758:27:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "2720:65:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820756e6b6e6f776e206f7220616c7265616479206578656375746564",
                        "id": 3006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2787:32:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        },
                        "value": "tx unknown or already executed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        }
                      ],
                      "id": 2999,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "2712:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2712:108:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3008,
                  "nodeType": "ExpressionStatement",
                  "src": "2712:108:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3009,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "2830:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3011,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3010,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2994,
                        "src": "2848:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2830:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3012,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "2867:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Unknown",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2867:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "2830:62:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 3015,
                  "nodeType": "ExpressionStatement",
                  "src": "2830:62:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3017,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2994,
                        "src": "2915:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3018,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "2932:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2932:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3016,
                      "name": "Revoked",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2890,
                      "src": "2907:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2907:36:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3021,
                  "nodeType": "EmitStatement",
                  "src": "2902:41:24"
                }
              ]
            },
            "documentation": "@dev Revokes a previous confirmation. This can only be done via a Safe transaction.\n @param transactionHash Transaction hash to be revoked.",
            "id": 3023,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2997,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2996,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "2687:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2687:10:24"
              }
            ],
            "name": "revokeTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2994,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3023,
                  "src": "2639:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2639:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2638:25:24"
            },
            "returnParameters": {
              "id": 2998,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2702:0:24"
            },
            "scope": 3177,
            "src": "2612:338:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3082,
              "nodeType": "Block",
              "src": "3445:441:24",
              "statements": [
                {
                  "assignments": [
                    3039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3039,
                      "name": "transactionHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3082,
                      "src": "3455:23:24",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3455:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3047,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3041,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3025,
                        "src": "3500:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3042,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3027,
                        "src": "3504:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3043,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3029,
                        "src": "3511:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3044,
                        "name": "operation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "3517:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Operation_$2024",
                          "typeString": "enum Enum.Operation"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3045,
                        "name": "witness",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3033,
                        "src": "3528:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_enum$_Operation_$2024",
                          "typeString": "enum Enum.Operation"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3040,
                      "name": "getTransactionHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3176,
                      "src": "3481:18:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$2024_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 3046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3481:55:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3455:81:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3049,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "3554:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3051,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3050,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3039,
                            "src": "3572:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3554:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3052,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "3592:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Confirmed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3592:27:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "3554:65:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820756e6b6e6f776e206f7220616c7265616479206578656375746564",
                        "id": 3055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3621:32:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        },
                        "value": "tx unknown or already executed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        }
                      ],
                      "id": 3048,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "3546:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3546:108:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3057,
                  "nodeType": "ExpressionStatement",
                  "src": "3546:108:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3058,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "3664:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3060,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3059,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3039,
                        "src": "3682:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3664:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3061,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "3701:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3062,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Executed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3701:26:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "3664:63:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 3064,
                  "nodeType": "ExpressionStatement",
                  "src": "3664:63:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3068,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3025,
                            "src": "3779:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3069,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3027,
                            "src": "3783:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3070,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3029,
                            "src": "3790:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3071,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3031,
                            "src": "3796:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3066,
                            "name": "manager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1125,
                            "src": "3745:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ModuleManager_$1553",
                              "typeString": "contract ModuleManager"
                            }
                          },
                          "id": 3067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "execTransactionFromModule",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1418,
                          "src": "3745:33:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$2024_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
                          }
                        },
                        "id": 3072,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3745:61:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "657865637574696f6e206661696c6564",
                        "id": 3073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3808:18:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b5b2a1e5b54667bec5e397fc652415862c0650a066f41f5e3f0c978c1d8559d8",
                          "typeString": "literal_string \"execution failed\""
                        },
                        "value": "execution failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b5b2a1e5b54667bec5e397fc652415862c0650a066f41f5e3f0c978c1d8559d8",
                          "typeString": "literal_string \"execution failed\""
                        }
                      ],
                      "id": 3065,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "3737:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3737:90:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3075,
                  "nodeType": "ExpressionStatement",
                  "src": "3737:90:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3077,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3039,
                        "src": "3851:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3078,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "3868:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3868:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3076,
                      "name": "Executed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2896,
                      "src": "3842:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3842:37:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3081,
                  "nodeType": "EmitStatement",
                  "src": "3837:42:24"
                }
              ]
            },
            "documentation": "@dev Executes a confirmed transaction. Only designated executors can execute.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param witness Witness for hash commitment.",
            "id": 3083,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3036,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3035,
                  "name": "onlyExecutor",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2926,
                  "src": "3428:12:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3428:12:24"
              }
            ],
            "name": "executeTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3025,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3279:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3024,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3279:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3027,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3299:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3026,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3299:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3029,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3322:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3028,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3031,
                  "name": "operation",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3349:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Operation_$2024",
                    "typeString": "enum Enum.Operation"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3030,
                    "name": "Enum.Operation",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2024,
                    "src": "3349:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Operation_$2024",
                      "typeString": "enum Enum.Operation"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3033,
                  "name": "witness",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3383:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3032,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3269:135:24"
            },
            "returnParameters": {
              "id": 3037,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3445:0:24"
            },
            "scope": 3177,
            "src": "3242:644:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3133,
              "nodeType": "Block",
              "src": "4296:451:24",
              "statements": [
                {
                  "assignments": [
                    3093
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3093,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3133,
                      "src": "4306:24:24",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3092,
                        "name": "TransactionStatus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2906,
                        "src": "4306:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3097,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3094,
                      "name": "transactionStatus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2910,
                      "src": "4333:17:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                        "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                      }
                    },
                    "id": 3096,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3095,
                      "name": "transactionHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3085,
                      "src": "4351:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4333:34:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4306:61:24"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    },
                    "id": 3101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3098,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3093,
                      "src": "4381:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3099,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "4391:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3100,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Unknown",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4391:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "4381:35:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      },
                      "id": 3110,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 3107,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3093,
                        "src": "4474:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3108,
                          "name": "TransactionStatus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2906,
                          "src": "4484:17:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                            "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                          }
                        },
                        "id": 3109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Confirmed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4484:27:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "src": "4474:37:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3119,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3116,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3093,
                          "src": "4568:6:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3117,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "4578:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3118,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Executed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4578:26:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "4568:36:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 3129,
                        "nodeType": "Block",
                        "src": "4656:85:24",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "66616c7365",
                                  "id": 3126,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4724:5:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "false"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                ],
                                "id": 3125,
                                "name": "assert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5518,
                                "src": "4717:6:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                  "typeString": "function (bool) pure"
                                }
                              },
                              "id": 3127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4717:13:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 3128,
                            "nodeType": "ExpressionStatement",
                            "src": "4717:13:24"
                          }
                        ]
                      },
                      "id": 3130,
                      "nodeType": "IfStatement",
                      "src": "4564:177:24",
                      "trueBody": {
                        "id": 3124,
                        "nodeType": "Block",
                        "src": "4606:44:24",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "74727565",
                                  "id": 3120,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4628:4:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "74727565",
                                  "id": 3121,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4634:4:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                }
                              ],
                              "id": 3122,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4627:12:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                                "typeString": "tuple(bool,bool)"
                              }
                            },
                            "functionReturnParameters": 3091,
                            "id": 3123,
                            "nodeType": "Return",
                            "src": "4620:19:24"
                          }
                        ]
                      }
                    },
                    "id": 3131,
                    "nodeType": "IfStatement",
                    "src": "4470:271:24",
                    "trueBody": {
                      "id": 3115,
                      "nodeType": "Block",
                      "src": "4513:45:24",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 3111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4535:4:24",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3112,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4541:5:24",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "id": 3113,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4534:13:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                              "typeString": "tuple(bool,bool)"
                            }
                          },
                          "functionReturnParameters": 3091,
                          "id": 3114,
                          "nodeType": "Return",
                          "src": "4527:20:24"
                        }
                      ]
                    }
                  },
                  "id": 3132,
                  "nodeType": "IfStatement",
                  "src": "4377:364:24",
                  "trueBody": {
                    "id": 3106,
                    "nodeType": "Block",
                    "src": "4418:46:24",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4440:5:24",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3103,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4447:5:24",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "id": 3104,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "4439:14:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                            "typeString": "tuple(bool,bool)"
                          }
                        },
                        "functionReturnParameters": 3091,
                        "id": 3105,
                        "nodeType": "Return",
                        "src": "4432:21:24"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Gets the status of a transaction.\n @param transactionHash Hash of transaction whose status is queried.\n @return A tuple of bools (confirmed, executed) indicating whether the\n transactions has been confirmed and executed.",
            "id": 3134,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTransactionStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3085,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4186:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3084,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4186:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4176:39:24"
            },
            "returnParameters": {
              "id": 3091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3088,
                  "name": "confirmed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4261:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3087,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4261:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3090,
                  "name": "executed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4277:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3089,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4277:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4260:31:24"
            },
            "scope": 3177,
            "src": "4147:600:24",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3175,
              "nodeType": "Block",
              "src": "5258:198:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Operation_$2024",
                            "typeString": "enum Enum.Operation"
                          },
                          "id": 3154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3150,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5276:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3151,
                                "name": "Enum",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2025,
                                "src": "5289:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Enum_$2025_$",
                                  "typeString": "type(contract Enum)"
                                }
                              },
                              "id": 3152,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Operation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "5289:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Operation_$2024_$",
                                "typeString": "type(enum Enum.Operation)"
                              }
                            },
                            "id": 3153,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Call",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5289:19:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "src": "5276:32:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Operation_$2024",
                            "typeString": "enum Enum.Operation"
                          },
                          "id": 3159,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3155,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5312:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3156,
                                "name": "Enum",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2025,
                                "src": "5325:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Enum_$2025_$",
                                  "typeString": "type(contract Enum)"
                                }
                              },
                              "id": 3157,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Operation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "5325:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Operation_$2024_$",
                                "typeString": "type(enum Enum.Operation)"
                              }
                            },
                            "id": 3158,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "DelegateCall",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5325:27:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "src": "5312:40:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5276:76:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "756e6b6e6f776e206f7065726174696f6e",
                        "id": 3161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5354:19:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4b4cf083b3a9d0defceae402143cf7fb8162fa5d50bd18bcba2b172f48059614",
                          "typeString": "literal_string \"unknown operation\""
                        },
                        "value": "unknown operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4b4cf083b3a9d0defceae402143cf7fb8162fa5d50bd18bcba2b172f48059614",
                          "typeString": "literal_string \"unknown operation\""
                        }
                      ],
                      "id": 3149,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "5268:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5268:106:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "5268:106:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3167,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "5412:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3168,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3138,
                            "src": "5416:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3169,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3140,
                            "src": "5423:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3170,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5429:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3171,
                            "name": "witness",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3144,
                            "src": "5440:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3165,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5516,
                            "src": "5401:3:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5401:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3172,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:47:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3164,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5523,
                      "src": "5391:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5391:58:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3148,
                  "id": 3174,
                  "nodeType": "Return",
                  "src": "5384:65:24"
                }
              ]
            },
            "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param witness Witness for hash commitment.\n @return Transaction hash.",
            "id": 3176,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTransactionHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3136,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5074:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3135,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5074:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3138,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5094:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3137,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5094:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3140,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5117:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3139,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5117:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3142,
                  "name": "operation",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5144:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Operation_$2024",
                    "typeString": "enum Enum.Operation"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3141,
                    "name": "Enum.Operation",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2024,
                    "src": "5144:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Operation_$2024",
                      "typeString": "enum Enum.Operation"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3144,
                  "name": "witness",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5178:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3143,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5178:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5064:135:24"
            },
            "returnParameters": {
              "id": 3148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3147,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5245:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5245:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5244:9:24"
            },
            "scope": 3177,
            "src": "5037:419:24",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3178,
        "src": "342:5116:24"
      }
    ],
    "src": "1:5457:24"
  },
  "legacyAST": {
    "absolutePath": "/Users/yosriady/safe/contracts/modules/ConfirmedTransactionModule.sol",
    "exportedSymbols": {
      "ConfirmedTransactionModule": [
        3177
      ]
    },
    "id": 3178,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2866,
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1:31:24"
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/Module.sol",
        "file": "../base/Module.sol",
        "id": 2867,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 1163,
        "src": "33:28:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/ModuleManager.sol",
        "file": "../base/ModuleManager.sol",
        "id": 2868,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 1554,
        "src": "62:35:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/base/OwnerManager.sol",
        "file": "../base/OwnerManager.sol",
        "id": 2869,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 2020,
        "src": "98:34:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/yosriady/safe/contracts/common/Enum.sol",
        "file": "../common/Enum.sol",
        "id": 2870,
        "nodeType": "ImportDirective",
        "scope": 3178,
        "sourceUnit": 2026,
        "src": "133:28:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2871,
              "name": "Module",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1162,
              "src": "381:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Module_$1162",
                "typeString": "contract Module"
              }
            },
            "id": 2872,
            "nodeType": "InheritanceSpecifier",
            "src": "381:6:24"
          }
        ],
        "contractDependencies": [
          1162,
          2069,
          2111
        ],
        "contractKind": "contract",
        "documentation": "@title Confirmed Transaction Module - Enables the Safe to designate transactions that can be executed by an executor at any time. The set of executors is managed by the Safe.",
        "fullyImplemented": true,
        "id": 3177,
        "linearizedBaseContracts": [
          3177,
          1162,
          2069,
          2111
        ],
        "name": "ConfirmedTransactionModule",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 2875,
            "name": "NAME",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "395:60:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2873,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "395:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "436f6e6669726d6564205472616e73616374696f6e204d6f64756c65",
              "id": 2874,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "425:30:24",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_43bbd3accd783f0f311a8e788cebddf5f1e93a5cf864ac31938190271d65d8f3",
                "typeString": "literal_string \"Confirmed Transaction Module\""
              },
              "value": "Confirmed Transaction Module"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 2878,
            "name": "VERSION",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "461:40:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2876,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "461:6:24",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e312e30",
              "id": 2877,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "494:7:24",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f",
                "typeString": "literal_string \"0.1.0\""
              },
              "value": "0.1.0"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2884,
            "name": "Confirmed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2880,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2884,
                  "src": "533:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2879,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "533:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2882,
                  "indexed": true,
                  "name": "manager",
                  "nodeType": "VariableDeclaration",
                  "scope": 2884,
                  "src": "574:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2881,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "574:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "523:80:24"
            },
            "src": "508:96:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2890,
            "name": "Revoked",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2886,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2890,
                  "src": "632:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2885,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "632:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2888,
                  "indexed": true,
                  "name": "manager",
                  "nodeType": "VariableDeclaration",
                  "scope": 2890,
                  "src": "673:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2887,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "673:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "622:80:24"
            },
            "src": "609:94:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2896,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2892,
                  "indexed": true,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2896,
                  "src": "732:31:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2891,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2894,
                  "indexed": true,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2896,
                  "src": "773:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2893,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "773:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "722:81:24"
            },
            "src": "708:96:24"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2902,
            "name": "ExecutorUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2898,
                  "indexed": true,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2902,
                  "src": "840:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2897,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "840:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2900,
                  "indexed": false,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2902,
                  "src": "874:12:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2899,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "874:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "830:62:24"
            },
            "src": "809:84:24"
          },
          {
            "canonicalName": "ConfirmedTransactionModule.TransactionStatus",
            "id": 2906,
            "members": [
              {
                "id": 2903,
                "name": "Unknown",
                "nodeType": "EnumValue",
                "src": "933:7:24"
              },
              {
                "id": 2904,
                "name": "Confirmed",
                "nodeType": "EnumValue",
                "src": "950:9:24"
              },
              {
                "id": 2905,
                "name": "Executed",
                "nodeType": "EnumValue",
                "src": "969:8:24"
              }
            ],
            "name": "TransactionStatus",
            "nodeType": "EnumDefinition",
            "src": "900:83:24"
          },
          {
            "constant": false,
            "id": 2910,
            "name": "transactionStatus",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "1054:64:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
            },
            "typeName": {
              "id": 2909,
              "keyType": {
                "id": 2907,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1063:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1054:38:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2908,
                "name": "TransactionStatus",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2906,
                "src": "1074:17:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                  "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2914,
            "name": "isExecutor",
            "nodeType": "VariableDeclaration",
            "scope": 3177,
            "src": "1195:43:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 2913,
              "keyType": {
                "id": 2911,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1204:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1195:25:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 2912,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1215:4:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2925,
              "nodeType": "Block",
              "src": "1269:85:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2917,
                          "name": "isExecutor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2914,
                          "src": "1287:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                            "typeString": "mapping(address => bool)"
                          }
                        },
                        "id": 2920,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2918,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5529,
                            "src": "1298:3:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1298:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1287:22:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f6e6c79206578656375746f722063616e2063616c6c",
                        "id": 2921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1311:24:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ecd20db312fd8836e972f67db05f59851ee03fcf7da6fd39b19322a8e06fe027",
                          "typeString": "literal_string \"only executor can call\""
                        },
                        "value": "only executor can call"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ecd20db312fd8836e972f67db05f59851ee03fcf7da6fd39b19322a8e06fe027",
                          "typeString": "literal_string \"only executor can call\""
                        }
                      ],
                      "id": 2916,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "1279:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1279:57:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2923,
                  "nodeType": "ExpressionStatement",
                  "src": "1279:57:24"
                },
                {
                  "id": 2924,
                  "nodeType": "PlaceholderStatement",
                  "src": "1346:1:24"
                }
              ]
            },
            "documentation": null,
            "id": 2926,
            "name": "onlyExecutor",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2915,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1266:2:24"
            },
            "src": "1245:109:24",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "1437:29:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2929,
                      "name": "setManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1161,
                      "src": "1447:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1447:12:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "1447:12:24"
                }
              ]
            },
            "documentation": "@dev Setup function sets manager",
            "id": 2933,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setup",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2927,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1415:2:24"
            },
            "returnParameters": {
              "id": 2928,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1437:0:24"
            },
            "scope": 3177,
            "src": "1401:65:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2960,
              "nodeType": "Block",
              "src": "1783:161:24",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "isExecutor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2914,
                        "src": "1797:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 2944,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2943,
                        "name": "executor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "1808:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1797:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2945,
                      "name": "allowed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2937,
                      "src": "1821:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1797:31:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2959,
                  "nodeType": "IfStatement",
                  "src": "1793:145:24",
                  "trueBody": {
                    "id": 2958,
                    "nodeType": "Block",
                    "src": "1830:108:24",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2951,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2947,
                              "name": "isExecutor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2914,
                              "src": "1844:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 2949,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2948,
                              "name": "executor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2935,
                              "src": "1855:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1844:20:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 2950,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2937,
                            "src": "1867:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1844:30:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 2952,
                        "nodeType": "ExpressionStatement",
                        "src": "1844:30:24"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2954,
                              "name": "executor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2935,
                              "src": "1909:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2955,
                              "name": "allowed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2937,
                              "src": "1919:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 2953,
                            "name": "ExecutorUpdated",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2902,
                            "src": "1893:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$",
                              "typeString": "function (address,bool)"
                            }
                          },
                          "id": 2956,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1893:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2957,
                        "nodeType": "EmitStatement",
                        "src": "1888:39:24"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Adds an address to the executor allowlist. This can only be done via a Safe transaction.\n @param executor Executor address.\n @param allowed true if executor should be allowed, false otherwise.",
            "id": 2961,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2940,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2939,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "1768:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1768:10:24"
              }
            ],
            "name": "setExecutor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "executor",
                  "nodeType": "VariableDeclaration",
                  "scope": 2961,
                  "src": "1713:16:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1713:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2937,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2961,
                  "src": "1731:12:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2936,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1731:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1712:32:24"
            },
            "returnParameters": {
              "id": 2941,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1783:0:24"
            },
            "scope": 3177,
            "src": "1692:252:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2991,
              "nodeType": "Block",
              "src": "2211:240:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "2229:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 2971,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2970,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2963,
                            "src": "2247:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2229:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2972,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "2267:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 2973,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Unknown",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2267:25:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "2229:63:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820616c726561647920636f6e6669726d6564",
                        "id": 2975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2294:22:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626",
                          "typeString": "literal_string \"tx already confirmed\""
                        },
                        "value": "tx already confirmed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626",
                          "typeString": "literal_string \"tx already confirmed\""
                        }
                      ],
                      "id": 2968,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "2221:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2221:96:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2977,
                  "nodeType": "ExpressionStatement",
                  "src": "2221:96:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2978,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "2327:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 2980,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2963,
                        "src": "2345:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2327:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2981,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "2364:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 2982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Confirmed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2364:27:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "2327:64:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 2984,
                  "nodeType": "ExpressionStatement",
                  "src": "2327:64:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2986,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2963,
                        "src": "2416:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2987,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "2433:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2433:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 2985,
                      "name": "Confirmed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2884,
                      "src": "2406:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2406:38:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2990,
                  "nodeType": "EmitStatement",
                  "src": "2401:43:24"
                }
              ]
            },
            "documentation": "@dev Confirms a transaction to make it executable. This can only be done via a Safe transaction.\n @param transactionHash Transaction hash to be confirmed.",
            "id": 2992,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2966,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2965,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "2196:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2196:10:24"
              }
            ],
            "name": "confirmTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2963,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2992,
                  "src": "2148:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2962,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2148:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2147:25:24"
            },
            "returnParameters": {
              "id": 2967,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2211:0:24"
            },
            "scope": 3177,
            "src": "2120:331:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3022,
              "nodeType": "Block",
              "src": "2702:248:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3000,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "2720:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3002,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3001,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "2738:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2720:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3003,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "2758:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3004,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Confirmed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2758:27:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "2720:65:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820756e6b6e6f776e206f7220616c7265616479206578656375746564",
                        "id": 3006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2787:32:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        },
                        "value": "tx unknown or already executed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        }
                      ],
                      "id": 2999,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "2712:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2712:108:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3008,
                  "nodeType": "ExpressionStatement",
                  "src": "2712:108:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3009,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "2830:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3011,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3010,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2994,
                        "src": "2848:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2830:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3012,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "2867:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Unknown",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2867:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "2830:62:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 3015,
                  "nodeType": "ExpressionStatement",
                  "src": "2830:62:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3017,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2994,
                        "src": "2915:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3018,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "2932:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2932:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3016,
                      "name": "Revoked",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2890,
                      "src": "2907:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2907:36:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3021,
                  "nodeType": "EmitStatement",
                  "src": "2902:41:24"
                }
              ]
            },
            "documentation": "@dev Revokes a previous confirmation. This can only be done via a Safe transaction.\n @param transactionHash Transaction hash to be revoked.",
            "id": 3023,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 2997,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2996,
                  "name": "authorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1139,
                  "src": "2687:10:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2687:10:24"
              }
            ],
            "name": "revokeTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2994,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3023,
                  "src": "2639:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2639:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2638:25:24"
            },
            "returnParameters": {
              "id": 2998,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2702:0:24"
            },
            "scope": 3177,
            "src": "2612:338:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3082,
              "nodeType": "Block",
              "src": "3445:441:24",
              "statements": [
                {
                  "assignments": [
                    3039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3039,
                      "name": "transactionHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3082,
                      "src": "3455:23:24",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3455:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3047,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3041,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3025,
                        "src": "3500:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3042,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3027,
                        "src": "3504:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3043,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3029,
                        "src": "3511:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3044,
                        "name": "operation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "3517:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Operation_$2024",
                          "typeString": "enum Enum.Operation"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3045,
                        "name": "witness",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3033,
                        "src": "3528:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_enum$_Operation_$2024",
                          "typeString": "enum Enum.Operation"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3040,
                      "name": "getTransactionHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3176,
                      "src": "3481:18:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$2024_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 3046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3481:55:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3455:81:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3049,
                            "name": "transactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2910,
                            "src": "3554:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3051,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3050,
                            "name": "transactionHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3039,
                            "src": "3572:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3554:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3052,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "3592:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Confirmed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3592:27:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "3554:65:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "747820756e6b6e6f776e206f7220616c7265616479206578656375746564",
                        "id": 3055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3621:32:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        },
                        "value": "tx unknown or already executed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc3f0ff4b461c4b0292fa08efefeacd9275965b28b7d514d951763f400a059e5",
                          "typeString": "literal_string \"tx unknown or already executed\""
                        }
                      ],
                      "id": 3048,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "3546:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3546:108:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3057,
                  "nodeType": "ExpressionStatement",
                  "src": "3546:108:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3058,
                        "name": "transactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2910,
                        "src": "3664:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3060,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3059,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3039,
                        "src": "3682:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3664:34:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3061,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "3701:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3062,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Executed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3701:26:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "3664:63:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "id": 3064,
                  "nodeType": "ExpressionStatement",
                  "src": "3664:63:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3068,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3025,
                            "src": "3779:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3069,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3027,
                            "src": "3783:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3070,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3029,
                            "src": "3790:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3071,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3031,
                            "src": "3796:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3066,
                            "name": "manager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1125,
                            "src": "3745:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ModuleManager_$1553",
                              "typeString": "contract ModuleManager"
                            }
                          },
                          "id": 3067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "execTransactionFromModule",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1418,
                          "src": "3745:33:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$2024_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
                          }
                        },
                        "id": 3072,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3745:61:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "657865637574696f6e206661696c6564",
                        "id": 3073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3808:18:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b5b2a1e5b54667bec5e397fc652415862c0650a066f41f5e3f0c978c1d8559d8",
                          "typeString": "literal_string \"execution failed\""
                        },
                        "value": "execution failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b5b2a1e5b54667bec5e397fc652415862c0650a066f41f5e3f0c978c1d8559d8",
                          "typeString": "literal_string \"execution failed\""
                        }
                      ],
                      "id": 3065,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "3737:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3737:90:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3075,
                  "nodeType": "ExpressionStatement",
                  "src": "3737:90:24"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3077,
                        "name": "transactionHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3039,
                        "src": "3851:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3078,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5529,
                          "src": "3868:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3868:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3076,
                      "name": "Executed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2896,
                      "src": "3842:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3842:37:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3081,
                  "nodeType": "EmitStatement",
                  "src": "3837:42:24"
                }
              ]
            },
            "documentation": "@dev Executes a confirmed transaction. Only designated executors can execute.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param witness Witness for hash commitment.",
            "id": 3083,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3036,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3035,
                  "name": "onlyExecutor",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2926,
                  "src": "3428:12:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3428:12:24"
              }
            ],
            "name": "executeTransaction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3025,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3279:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3024,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3279:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3027,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3299:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3026,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3299:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3029,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3322:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3028,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3322:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3031,
                  "name": "operation",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3349:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Operation_$2024",
                    "typeString": "enum Enum.Operation"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3030,
                    "name": "Enum.Operation",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2024,
                    "src": "3349:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Operation_$2024",
                      "typeString": "enum Enum.Operation"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3033,
                  "name": "witness",
                  "nodeType": "VariableDeclaration",
                  "scope": 3083,
                  "src": "3383:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3032,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3269:135:24"
            },
            "returnParameters": {
              "id": 3037,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3445:0:24"
            },
            "scope": 3177,
            "src": "3242:644:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3133,
              "nodeType": "Block",
              "src": "4296:451:24",
              "statements": [
                {
                  "assignments": [
                    3093
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3093,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3133,
                      "src": "4306:24:24",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3092,
                        "name": "TransactionStatus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2906,
                        "src": "4306:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3097,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3094,
                      "name": "transactionStatus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2910,
                      "src": "4333:17:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_enum$_TransactionStatus_$2906_$",
                        "typeString": "mapping(bytes32 => enum ConfirmedTransactionModule.TransactionStatus)"
                      }
                    },
                    "id": 3096,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3095,
                      "name": "transactionHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3085,
                      "src": "4351:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4333:34:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4306:61:24"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                      "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                    },
                    "id": 3101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3098,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3093,
                      "src": "4381:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3099,
                        "name": "TransactionStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2906,
                        "src": "4391:17:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                          "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                        }
                      },
                      "id": 3100,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Unknown",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4391:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      }
                    },
                    "src": "4381:35:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                        "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                      },
                      "id": 3110,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 3107,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3093,
                        "src": "4474:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3108,
                          "name": "TransactionStatus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2906,
                          "src": "4484:17:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                            "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                          }
                        },
                        "id": 3109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Confirmed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4484:27:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        }
                      },
                      "src": "4474:37:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                          "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                        },
                        "id": 3119,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3116,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3093,
                          "src": "4568:6:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3117,
                            "name": "TransactionStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2906,
                            "src": "4578:17:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TransactionStatus_$2906_$",
                              "typeString": "type(enum ConfirmedTransactionModule.TransactionStatus)"
                            }
                          },
                          "id": 3118,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Executed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4578:26:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TransactionStatus_$2906",
                            "typeString": "enum ConfirmedTransactionModule.TransactionStatus"
                          }
                        },
                        "src": "4568:36:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 3129,
                        "nodeType": "Block",
                        "src": "4656:85:24",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "66616c7365",
                                  "id": 3126,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4724:5:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "false"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                ],
                                "id": 3125,
                                "name": "assert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5518,
                                "src": "4717:6:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                  "typeString": "function (bool) pure"
                                }
                              },
                              "id": 3127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4717:13:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 3128,
                            "nodeType": "ExpressionStatement",
                            "src": "4717:13:24"
                          }
                        ]
                      },
                      "id": 3130,
                      "nodeType": "IfStatement",
                      "src": "4564:177:24",
                      "trueBody": {
                        "id": 3124,
                        "nodeType": "Block",
                        "src": "4606:44:24",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "74727565",
                                  "id": 3120,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4628:4:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "74727565",
                                  "id": 3121,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4634:4:24",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                }
                              ],
                              "id": 3122,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4627:12:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                                "typeString": "tuple(bool,bool)"
                              }
                            },
                            "functionReturnParameters": 3091,
                            "id": 3123,
                            "nodeType": "Return",
                            "src": "4620:19:24"
                          }
                        ]
                      }
                    },
                    "id": 3131,
                    "nodeType": "IfStatement",
                    "src": "4470:271:24",
                    "trueBody": {
                      "id": 3115,
                      "nodeType": "Block",
                      "src": "4513:45:24",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 3111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4535:4:24",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3112,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4541:5:24",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "id": 3113,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4534:13:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                              "typeString": "tuple(bool,bool)"
                            }
                          },
                          "functionReturnParameters": 3091,
                          "id": 3114,
                          "nodeType": "Return",
                          "src": "4527:20:24"
                        }
                      ]
                    }
                  },
                  "id": 3132,
                  "nodeType": "IfStatement",
                  "src": "4377:364:24",
                  "trueBody": {
                    "id": 3106,
                    "nodeType": "Block",
                    "src": "4418:46:24",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4440:5:24",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3103,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4447:5:24",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "id": 3104,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "4439:14:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$",
                            "typeString": "tuple(bool,bool)"
                          }
                        },
                        "functionReturnParameters": 3091,
                        "id": 3105,
                        "nodeType": "Return",
                        "src": "4432:21:24"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Gets the status of a transaction.\n @param transactionHash Hash of transaction whose status is queried.\n @return A tuple of bools (confirmed, executed) indicating whether the\n transactions has been confirmed and executed.",
            "id": 3134,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTransactionStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3085,
                  "name": "transactionHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4186:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3084,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4186:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4176:39:24"
            },
            "returnParameters": {
              "id": 3091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3088,
                  "name": "confirmed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4261:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3087,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4261:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3090,
                  "name": "executed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3134,
                  "src": "4277:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3089,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4277:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4260:31:24"
            },
            "scope": 3177,
            "src": "4147:600:24",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3175,
              "nodeType": "Block",
              "src": "5258:198:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Operation_$2024",
                            "typeString": "enum Enum.Operation"
                          },
                          "id": 3154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3150,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5276:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3151,
                                "name": "Enum",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2025,
                                "src": "5289:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Enum_$2025_$",
                                  "typeString": "type(contract Enum)"
                                }
                              },
                              "id": 3152,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Operation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "5289:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Operation_$2024_$",
                                "typeString": "type(enum Enum.Operation)"
                              }
                            },
                            "id": 3153,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Call",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5289:19:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "src": "5276:32:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Operation_$2024",
                            "typeString": "enum Enum.Operation"
                          },
                          "id": 3159,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3155,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5312:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3156,
                                "name": "Enum",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2025,
                                "src": "5325:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Enum_$2025_$",
                                  "typeString": "type(contract Enum)"
                                }
                              },
                              "id": 3157,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Operation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "5325:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Operation_$2024_$",
                                "typeString": "type(enum Enum.Operation)"
                              }
                            },
                            "id": 3158,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "DelegateCall",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5325:27:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          "src": "5312:40:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5276:76:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "756e6b6e6f776e206f7065726174696f6e",
                        "id": 3161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5354:19:24",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4b4cf083b3a9d0defceae402143cf7fb8162fa5d50bd18bcba2b172f48059614",
                          "typeString": "literal_string \"unknown operation\""
                        },
                        "value": "unknown operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4b4cf083b3a9d0defceae402143cf7fb8162fa5d50bd18bcba2b172f48059614",
                          "typeString": "literal_string \"unknown operation\""
                        }
                      ],
                      "id": 3149,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5532,
                        5533
                      ],
                      "referencedDeclaration": 5533,
                      "src": "5268:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5268:106:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "5268:106:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3167,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "5412:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3168,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3138,
                            "src": "5416:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3169,
                            "name": "data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3140,
                            "src": "5423:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3170,
                            "name": "operation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3142,
                            "src": "5429:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3171,
                            "name": "witness",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3144,
                            "src": "5440:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_enum$_Operation_$2024",
                              "typeString": "enum Enum.Operation"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3165,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5516,
                            "src": "5401:3:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5401:10:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3172,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:47:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3164,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5523,
                      "src": "5391:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5391:58:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3148,
                  "id": 3174,
                  "nodeType": "Return",
                  "src": "5384:65:24"
                }
              ]
            },
            "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param witness Witness for hash commitment.\n @return Transaction hash.",
            "id": 3176,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTransactionHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3136,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5074:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3135,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5074:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3138,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5094:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3137,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5094:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3140,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5117:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3139,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5117:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3142,
                  "name": "operation",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5144:24:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Operation_$2024",
                    "typeString": "enum Enum.Operation"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3141,
                    "name": "Enum.Operation",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2024,
                    "src": "5144:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Operation_$2024",
                      "typeString": "enum Enum.Operation"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3144,
                  "name": "witness",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5178:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3143,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5178:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5064:135:24"
            },
            "returnParameters": {
              "id": 3148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3147,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3176,
                  "src": "5245:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5245:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5244:9:24"
            },
            "scope": 3177,
            "src": "5037:419:24",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3178,
        "src": "342:5116:24"
      }
    ],
    "src": "1:5457:24"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.17+commit.d19bba13.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {
        "0x75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "masterCopy",
              "type": "address"
            }
          ],
          "name": "ChangedMasterCopy",
          "type": "event"
        },
        "0xd4964a7cd99f5c1fa8f2420fb5e1d3bd26eadf16e2658cf2e29a67dfda38601e": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "manager",
              "type": "address"
            }
          ],
          "name": "Confirmed",
          "type": "event"
        },
        "0x59c3746e635078efc737fb3f37dd8188203b8df10bbad35878a7d156f4f51c41": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "executor",
              "type": "address"
            }
          ],
          "name": "Executed",
          "type": "event"
        },
        "0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "executor",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bool",
              "name": "allowed",
              "type": "bool"
            }
          ],
          "name": "ExecutorUpdated",
          "type": "event"
        },
        "0x5bc2baf870c5baf189838b5e0b0e3b04a3263e2df5d305d1c15f3e6022f5dc45": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "manager",
              "type": "address"
            }
          ],
          "name": "Revoked",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x2e1B5a40Edc922bCE489668b11749B8eAbd67f6b",
      "transactionHash": "0xdd09ee54e1f2b84ba49c61085b2935be9a4ceb9647163c36eef9ce07b1724282"
    },
    "4": {
      "events": {
        "0x75e41bc35ff1bf14d81d1d2f649c0084a0f974f9289c803ec9898eeec4c8d0b8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "masterCopy",
              "type": "address"
            }
          ],
          "name": "ChangedMasterCopy",
          "type": "event"
        },
        "0xd4964a7cd99f5c1fa8f2420fb5e1d3bd26eadf16e2658cf2e29a67dfda38601e": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "manager",
              "type": "address"
            }
          ],
          "name": "Confirmed",
          "type": "event"
        },
        "0x59c3746e635078efc737fb3f37dd8188203b8df10bbad35878a7d156f4f51c41": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "executor",
              "type": "address"
            }
          ],
          "name": "Executed",
          "type": "event"
        },
        "0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "executor",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bool",
              "name": "allowed",
              "type": "bool"
            }
          ],
          "name": "ExecutorUpdated",
          "type": "event"
        },
        "0x5bc2baf870c5baf189838b5e0b0e3b04a3263e2df5d305d1c15f3e6022f5dc45": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "transactionHash",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "manager",
              "type": "address"
            }
          ],
          "name": "Revoked",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x8804facbe85d1AC21794253dD2411Bdb59c936c9",
      "transactionHash": "0xcf7f3a05b759433d7f80666b726dd810f7e63506a2db745e1dbdb1093fc3b4ab"
    }
  },
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-11-25T11:51:11.374Z",
  "devdoc": {
    "methods": {
      "changeMasterCopy(address)": {
        "details": "Allows to upgrade the contract. This can only be done via a Safe transaction.",
        "params": {
          "_masterCopy": "New contract address."
        }
      },
      "confirmTransaction(bytes32)": {
        "details": "Confirms a transaction to make it executable. This can only be done via a Safe transaction.",
        "params": {
          "transactionHash": "Transaction hash to be confirmed."
        }
      },
      "executeTransaction(address,uint256,bytes,uint8,bytes32)": {
        "details": "Executes a confirmed transaction. Only designated executors can execute.",
        "params": {
          "data": "Data payload.",
          "operation": "Operation type.",
          "to": "Destination address.",
          "value": "Ether value.",
          "witness": "Witness for hash commitment."
        }
      },
      "getTransactionHash(address,uint256,bytes,uint8,bytes32)": {
        "details": "Returns hash to be signed by owners.",
        "params": {
          "data": "Data payload.",
          "operation": "Operation type.",
          "to": "Destination address.",
          "value": "Ether value.",
          "witness": "Witness for hash commitment."
        },
        "return": "Transaction hash."
      },
      "getTransactionStatus(bytes32)": {
        "details": "Gets the status of a transaction.",
        "params": {
          "transactionHash": "Hash of transaction whose status is queried."
        },
        "return": "A tuple of bools (confirmed, executed) indicating whether the transactions has been confirmed and executed."
      },
      "revokeTransaction(bytes32)": {
        "details": "Revokes a previous confirmation. This can only be done via a Safe transaction.",
        "params": {
          "transactionHash": "Transaction hash to be revoked."
        }
      },
      "setExecutor(address,bool)": {
        "details": "Adds an address to the executor allowlist. This can only be done via a Safe transaction.",
        "params": {
          "allowed": "true if executor should be allowed, false otherwise.",
          "executor": "Executor address."
        }
      },
      "setup()": {
        "details": "Setup function sets manager"
      }
    },
    "title": "Confirmed Transaction Module - Enables the Safe to designate transactions that can be executed by an executor at any time. The set of executors is managed by the Safe."
  },
  "userdoc": {
    "methods": {}
  }
}