{
  "_format": "hh-sol-artifact-1",
  "contractName": "ModuleManager",
  "sourceName": "lib/safe-contracts/contracts/base/ModuleManager.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "DisabledModule",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "EnabledModule",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "ExecutionFromModuleFailure",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "ExecutionFromModuleSuccess",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "prevModule",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "disableModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "enableModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "name": "execTransactionFromModule",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "name": "execTransactionFromModuleReturnData",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "start",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "pageSize",
          "type": "uint256"
        }
      ],
      "name": "getModulesPaginated",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "array",
          "type": "address[]"
        },
        {
          "internalType": "address",
          "name": "next",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "module",
          "type": "address"
        }
      ],
      "name": "isModuleEnabled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506109ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063610b592511610050578063610b5925146100d3578063cc2f8452146100e8578063e009cfde1461010957600080fd5b80632d9ad53d14610077578063468721a71461009f5780635229073f146100b2575b600080fd5b61008a6100853660046106f4565b61011c565b60405190151581526020015b60405180910390f35b61008a6100ad366004610773565b610157565b6100c56100c0366004610773565b61024b565b6040516100969291906108ac565b6100e66100e13660046106f4565b610281565b005b6100fb6100f6366004610749565b6103e6565b60405161009692919061084f565b6100e6610117366004610716565b6104df565b600060016001600160a01b0383161480159061015157506001600160a01b038281166000908152602081905260409020541615155b92915050565b6000336001148015906101815750336000908152602081905260409020546001600160a01b031615155b6101d25760405162461bcd60e51b815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6101df858585855a610630565b905080156102175760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2610243565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b6000606061025b86868686610157565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b610289610678565b6001600160a01b038116158015906102ab57506001600160a01b038116600114155b6102df5760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016101c9565b6001600160a01b0381811660009081526020819052604090205416156103475760405162461bcd60e51b815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016101c9565b600060208181527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d80546001600160a01b03858116808652604080872080549390941673ffffffffffffffffffffffffffffffffffffffff199384161790935560019095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440910160405180910390a150565b606060008267ffffffffffffffff81111561040357610403610960565b60405190808252806020026020018201604052801561042c578160200160208202803683370190505b506001600160a01b0380861660009081526020819052604081205492945091165b6001600160a01b0381161580159061046f57506001600160a01b038116600114155b801561047a57508482105b156104d157808483815181106104925761049261094a565b6001600160a01b0392831660209182029290920181019190915291811660009081529182905260409091205416816104c98161090b565b92505061044d565b908352919491935090915050565b6104e7610678565b6001600160a01b0381161580159061050957506001600160a01b038116600114155b61053d5760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016101c9565b6001600160a01b038281166000908152602081905260409020548116908216146105a95760405162461bcd60e51b815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016101c9565b6001600160a01b038181166000818152602081815260408083208054888716855282852080549190971673ffffffffffffffffffffffffffffffffffffffff199182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276910160405180910390a15050565b6000600183600181111561064657610646610934565b141561065f576000808551602087018986f4905061066f565b600080855160208701888a87f190505b95945050505050565b3330146106c75760405162461bcd60e51b815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016101c9565b565b80356001600160a01b03811681146106e057600080fd5b919050565b8035600281106106e057600080fd5b60006020828403121561070657600080fd5b61070f826106c9565b9392505050565b6000806040838503121561072957600080fd5b610732836106c9565b9150610740602084016106c9565b90509250929050565b6000806040838503121561075c57600080fd5b610765836106c9565b946020939093013593505050565b6000806000806080858703121561078957600080fd5b610792856106c9565b935060208501359250604085013567ffffffffffffffff808211156107b657600080fd5b818701915087601f8301126107ca57600080fd5b8135818111156107dc576107dc610960565b604051601f8201601f19908116603f0116810190838211818310171561080457610804610960565b816040528281528a602084870101111561081d57600080fd5b826020860160208301376000602084830101528096505050505050610844606086016106e5565b905092959194509250565b604080825283519082018190526000906020906060840190828701845b828110156108915781516001600160a01b03168452928401929084019060010161086c565b5050506001600160a01b039490941692019190915250919050565b821515815260006020604081840152835180604085015260005b818110156108e2578581018301518582016060015282016108c6565b818111156108f4576000606083870101525b50601f01601f191692909201606001949350505050565b600060001982141561092d57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212205e4be9a43bd695d97397520f30bc32edf2d93f821bf63af7ce72a1964d341c4964736f6c63430008070033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063610b592511610050578063610b5925146100d3578063cc2f8452146100e8578063e009cfde1461010957600080fd5b80632d9ad53d14610077578063468721a71461009f5780635229073f146100b2575b600080fd5b61008a6100853660046106f4565b61011c565b60405190151581526020015b60405180910390f35b61008a6100ad366004610773565b610157565b6100c56100c0366004610773565b61024b565b6040516100969291906108ac565b6100e66100e13660046106f4565b610281565b005b6100fb6100f6366004610749565b6103e6565b60405161009692919061084f565b6100e6610117366004610716565b6104df565b600060016001600160a01b0383161480159061015157506001600160a01b038281166000908152602081905260409020541615155b92915050565b6000336001148015906101815750336000908152602081905260409020546001600160a01b031615155b6101d25760405162461bcd60e51b815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6101df858585855a610630565b905080156102175760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2610243565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b6000606061025b86868686610157565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b610289610678565b6001600160a01b038116158015906102ab57506001600160a01b038116600114155b6102df5760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016101c9565b6001600160a01b0381811660009081526020819052604090205416156103475760405162461bcd60e51b815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016101c9565b600060208181527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d80546001600160a01b03858116808652604080872080549390941673ffffffffffffffffffffffffffffffffffffffff199384161790935560019095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f8440910160405180910390a150565b606060008267ffffffffffffffff81111561040357610403610960565b60405190808252806020026020018201604052801561042c578160200160208202803683370190505b506001600160a01b0380861660009081526020819052604081205492945091165b6001600160a01b0381161580159061046f57506001600160a01b038116600114155b801561047a57508482105b156104d157808483815181106104925761049261094a565b6001600160a01b0392831660209182029290920181019190915291811660009081529182905260409091205416816104c98161090b565b92505061044d565b908352919491935090915050565b6104e7610678565b6001600160a01b0381161580159061050957506001600160a01b038116600114155b61053d5760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016101c9565b6001600160a01b038281166000908152602081905260409020548116908216146105a95760405162461bcd60e51b815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016101c9565b6001600160a01b038181166000818152602081815260408083208054888716855282852080549190971673ffffffffffffffffffffffffffffffffffffffff199182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace4054276910160405180910390a15050565b6000600183600181111561064657610646610934565b141561065f576000808551602087018986f4905061066f565b600080855160208701888a87f190505b95945050505050565b3330146106c75760405162461bcd60e51b815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016101c9565b565b80356001600160a01b03811681146106e057600080fd5b919050565b8035600281106106e057600080fd5b60006020828403121561070657600080fd5b61070f826106c9565b9392505050565b6000806040838503121561072957600080fd5b610732836106c9565b9150610740602084016106c9565b90509250929050565b6000806040838503121561075c57600080fd5b610765836106c9565b946020939093013593505050565b6000806000806080858703121561078957600080fd5b610792856106c9565b935060208501359250604085013567ffffffffffffffff808211156107b657600080fd5b818701915087601f8301126107ca57600080fd5b8135818111156107dc576107dc610960565b604051601f8201601f19908116603f0116810190838211818310171561080457610804610960565b816040528281528a602084870101111561081d57600080fd5b826020860160208301376000602084830101528096505050505050610844606086016106e5565b905092959194509250565b604080825283519082018190526000906020906060840190828701845b828110156108915781516001600160a01b03168452928401929084019060010161086c565b5050506001600160a01b039490941692019190915250919050565b821515815260006020604081840152835180604085015260005b818110156108e2578581018301518582016060015282016108c6565b818111156108f4576000606083870101525b50601f01601f191692909201606001949350505050565b600060001982141561092d57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212205e4be9a43bd695d97397520f30bc32edf2d93f821bf63af7ce72a1964d341c4964736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
