{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockCustomPoolCreator",
  "sourceName": "contracts/test/MockCustomPoolCreator.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "deployer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "BeforeCreateHook",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "plugin",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "deployer",
          "type": "address"
        }
      ],
      "name": "afterCreatePoolHook",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "deployer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "beforeCreatePoolHook",
      "outputs": [
        {
          "internalType": "address",
          "name": "plugin",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createCustomPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "pluginsForPools",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506103bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d0338d9146100515780633197ec2e1461010e578063819dbd89146101435780638d5ef8d1146101d4575b600080fd5b6100f2600480360360c081101561006757600080fd5b6001600160a01b03823581169260208101358216926040820135831692606083013581169260808101359091169181019060c0810160a08201356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b5090925090506101f0565b604080516001600160a01b039092168252519081900360200190f35b6100f26004803603602081101561012457600080fd5b50600060208190526001600160a01b0391358216815260409020541681565b6100f26004803603608081101561015957600080fd5b6001600160a01b038235811692602081013582169260408201359092169181019060808101606082013564010000000081111561019557600080fd5b8201836020820111156101a757600080fd5b803590602001918460018302840111640100000000831117156101c957600080fd5b5090925090506102d0565b6101ee600480360360608110156101ea57600080fd5b5050565b005b6001600160a01b0380881660008181526020818152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905580519384528a851691840191909152888416908301528683166060830152918516608082015260c060a082018181529082018490527fdd276959d2e021d69e5879de20d5c6f2e98717c637b8e5ef00ac4e6946c83082918a918a918a918a918a918a918a9160e08201848480828437600083820152604051601f909101601f19169092018290039a509098505050505050505050a1979650505050505050565b6000856001600160a01b031663dbbf3db43033888888886040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b03168152602001846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509750505050505050506020604051808303816000875af115801561038d573d6000803e3d6000fd5b505050506040513d60208110156103a357600080fd5b5051969550505050505056fea164736f6c6343000814000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d0338d9146100515780633197ec2e1461010e578063819dbd89146101435780638d5ef8d1146101d4575b600080fd5b6100f2600480360360c081101561006757600080fd5b6001600160a01b03823581169260208101358216926040820135831692606083013581169260808101359091169181019060c0810160a08201356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b5090925090506101f0565b604080516001600160a01b039092168252519081900360200190f35b6100f26004803603602081101561012457600080fd5b50600060208190526001600160a01b0391358216815260409020541681565b6100f26004803603608081101561015957600080fd5b6001600160a01b038235811692602081013582169260408201359092169181019060808101606082013564010000000081111561019557600080fd5b8201836020820111156101a757600080fd5b803590602001918460018302840111640100000000831117156101c957600080fd5b5090925090506102d0565b6101ee600480360360608110156101ea57600080fd5b5050565b005b6001600160a01b0380881660008181526020818152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905580519384528a851691840191909152888416908301528683166060830152918516608082015260c060a082018181529082018490527fdd276959d2e021d69e5879de20d5c6f2e98717c637b8e5ef00ac4e6946c83082918a918a918a918a918a918a918a9160e08201848480828437600083820152604051601f909101601f19169092018290039a509098505050505050505050a1979650505050505050565b6000856001600160a01b031663dbbf3db43033888888886040518763ffffffff1660e01b815260040180876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b03168152602001846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509750505050505050506020604051808303816000875af115801561038d573d6000803e3d6000fd5b505050506040513d60208110156103a357600080fd5b5051969550505050505056fea164736f6c6343000814000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
