{
  "_format": "hh-sol-artifact-1",
  "contractName": "ElixirFactory",
  "sourceName": "contracts/elixir-core/ElixirFactory.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_implementation",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        }
      ],
      "name": "FeeAmountEnabled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnerChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "indexed": false,
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "name": "PoolCreated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        }
      ],
      "name": "createPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        }
      ],
      "name": "enableFeeAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint24",
          "name": "",
          "type": "uint24"
        }
      ],
      "name": "feeAmountTickSpacing",
      "outputs": [
        {
          "internalType": "int24",
          "name": "",
          "type": "int24"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint24",
          "name": "",
          "type": "uint24"
        }
      ],
      "name": "getPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b506040516108ae3803806108ae8339818101604052602081101561003357600080fd5b50516001600160601b0319606082901b16608052600080546001600160a01b0319163390811782556040519091907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a36101f4600081815260016020527f344a86d038cc67650617710ee5afca4f5d1ed60d199ecd86852cac7a55b2d3e5805462ffffff1916600a90811790915560405190929160008051602061088e83398151915291a3610bb8600081815260016020527f8bf1273959200f3b11670b7338c174c40286607d4b851c000be7fc007987b275805462ffffff1916603c90811790915560405190929160008051602061088e83398151915291a3612710600081815260016020527f1ca239af1d44623dfaa87ee0cbbbe4bbeb2112df36e66deedafd694350d045cd805462ffffff191660c890811790915560405190929160008051602061088e83398151915291a35060805160601c6106e66101a860003980610274528061043252506106e66000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80635c60da1b1161005b5780635c60da1b1461013b5780638a7c195f146101435780638da5cb5b1461016e578063a1671295146101765761007d565b806313af4035146100825780631698ee82146100aa57806322afcccb14610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101b2565b005b6100e6600480360360608110156100c057600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610231565b604080516001600160a01b039092168252519081900360200190f35b6101246004803603602081101561011857600080fd5b503562ffffff1661025d565b6040805160029290920b8252519081900360200190f35b6100e6610272565b6100a86004803603604081101561015957600080fd5b5062ffffff813516906020013560020b610296565b6100e6610359565b6100e66004803603606081101561018c57600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610368565b6000546001600160a01b031633146101c957600080fd5b600080546040516001600160a01b03808516939216917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60026020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b60016020526000908152604090205460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146102ad57600080fd5b620f42408262ffffff16106102c157600080fd5b60008160020b1380156102d857506140008160020b125b6102e157600080fd5b62ffffff8216600090815260016020526040902054600290810b900b1561030757600080fd5b62ffffff828116600081815260016020526040808220805462ffffff1916600287900b958616179055517fc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc9190a35050565b6000546001600160a01b031681565b6000826001600160a01b0316846001600160a01b0316141561038957600080fd5b600080846001600160a01b0316866001600160a01b0316106103ac5784866103af565b85855b90925090506001600160a01b0382166103c757600080fd5b62ffffff8416600090815260016020526040902054600290810b9081900b6103ee57600080fd5b6001600160a01b0383811660009081526002602090815260408083208685168452825280832062ffffff8a168452909152902054161561042d57600080fd5b6104a47f000000000000000000000000000000000000000000000000000000000000000084848860405160200180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff1681526020019350505050604051602081830303815290604052805190602001206105ee565b6040805163053c9c1760e21b81526001600160a01b038681166004830152858116602483015262ffffff89166044830152600285900b60648301529151929650908616916314f2705c9160848082019260009290919082900301818387803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b5050506001600160a01b03808516600081815260026020818152604080842089871680865290835281852062ffffff8e168087529084528286208054988e1673ffffffffffffffffffffffffffffffffffffffff19998a16811790915582875285855283872088885285528387208288528552958390208054909816861790975581519389900b8452918301939093528251949550937f783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118929181900390910190a45050509392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f59150506001600160a01b0381166106aa576040805162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015290519081900360640190fd5b9291505056fea2646970667358221220b15baa4561cce14aa5a28dc466def5f1ec2a76e46a6c15fbc7bf87b693e9560c64736f6c63430007060033c66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80635c60da1b1161005b5780635c60da1b1461013b5780638a7c195f146101435780638da5cb5b1461016e578063a1671295146101765761007d565b806313af4035146100825780631698ee82146100aa57806322afcccb14610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101b2565b005b6100e6600480360360608110156100c057600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610231565b604080516001600160a01b039092168252519081900360200190f35b6101246004803603602081101561011857600080fd5b503562ffffff1661025d565b6040805160029290920b8252519081900360200190f35b6100e6610272565b6100a86004803603604081101561015957600080fd5b5062ffffff813516906020013560020b610296565b6100e6610359565b6100e66004803603606081101561018c57600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610368565b6000546001600160a01b031633146101c957600080fd5b600080546040516001600160a01b03808516939216917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60026020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b60016020526000908152604090205460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146102ad57600080fd5b620f42408262ffffff16106102c157600080fd5b60008160020b1380156102d857506140008160020b125b6102e157600080fd5b62ffffff8216600090815260016020526040902054600290810b900b1561030757600080fd5b62ffffff828116600081815260016020526040808220805462ffffff1916600287900b958616179055517fc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc9190a35050565b6000546001600160a01b031681565b6000826001600160a01b0316846001600160a01b0316141561038957600080fd5b600080846001600160a01b0316866001600160a01b0316106103ac5784866103af565b85855b90925090506001600160a01b0382166103c757600080fd5b62ffffff8416600090815260016020526040902054600290810b9081900b6103ee57600080fd5b6001600160a01b0383811660009081526002602090815260408083208685168452825280832062ffffff8a168452909152902054161561042d57600080fd5b6104a47f000000000000000000000000000000000000000000000000000000000000000084848860405160200180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff1681526020019350505050604051602081830303815290604052805190602001206105ee565b6040805163053c9c1760e21b81526001600160a01b038681166004830152858116602483015262ffffff89166044830152600285900b60648301529151929650908616916314f2705c9160848082019260009290919082900301818387803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b5050506001600160a01b03808516600081815260026020818152604080842089871680865290835281852062ffffff8e168087529084528286208054988e1673ffffffffffffffffffffffffffffffffffffffff19998a16811790915582875285855283872088885285528387208288528552958390208054909816861790975581519389900b8452918301939093528251949550937f783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118929181900390910190a45050509392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f59150506001600160a01b0381166106aa576040805162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015290519081900360640190fd5b9291505056fea2646970667358221220b15baa4561cce14aa5a28dc466def5f1ec2a76e46a6c15fbc7bf87b693e9560c64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
