{
  "_format": "hh-sol-artifact-1",
  "contractName": "TokenDataTest",
  "sourceName": "contracts/test/liquidity/TokenDataTest.sol",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "TokenAddressIsZero",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "getNativeTokenIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum ITokenData.TokenType",
          "name": "tokenType",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "tokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getOrCreateTokenIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum ITokenData.TokenType",
          "name": "tokenType",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "tokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getTokenIndex",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "tokenIndex",
          "type": "uint32"
        }
      ],
      "name": "getTokenInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum ITokenData.TokenType",
              "name": "tokenType",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "tokenAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            }
          ],
          "internalType": "struct ITokenData.TokenInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "initialERC20Tokens",
          "type": "address[]"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestTokenIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506108ba8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063219cd26314610067578063381175f6146100845780633ed1b576146100b35780635cc08ba3146100c3578063a224cee7146100d6578063cbd90cd0146100eb575b600080fd5b60005b60405163ffffffff90911681526020015b60405180910390f35b6100976100923660046106bf565b61010b565b60408051921515835263ffffffff90911660208301520161007b565b60035461006a9063ffffffff1681565b61006a6100d13660046106bf565b610226565b6100e96100e4366004610717565b610256565b005b6100fe6100f93660046107e7565b610366565b60405161007b9190610823565b600080808560038111156101215761012161080d565b03610132575060019050600061021e565b6001600160a01b0384166101595760405163dc2e5e8d60e01b815260040160405180910390fd5b600185600381111561016d5761016d61080d565b036101a4576001600160a01b03841660009081526001602052604090205463ffffffff1680156101a25760019250905061021e565b505b60028560038111156101b8576101b861080d565b14806101d5575060038560038111156101d3576101d361080d565b145b15610217576001600160a01b038416600090815260026020908152604080832086845290915290205463ffffffff1680156102155760019250905061021e565b505b5060009050805b935093915050565b6000610233848484610409565b6003805463ffffffff191663ffffffff92909216918217905590505b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561029c5750825b905060008267ffffffffffffffff1660011480156102b95750303b155b9050811580156102c7575080155b156102e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561030f57845460ff60401b1916600160401b1785555b61031886610441565b831561035e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b604080516060810182526000808252602082018190529181019190915260008263ffffffff168154811061039c5761039c61086e565b6000918252602090912060408051606081019091526002909202018054829060ff1660038111156103cf576103cf61080d565b60038111156103e0576103e061080d565b8152815461010090046001600160a01b0316602082015260019091015460409091015292915050565b600080600061041986868661010b565b91509150811561042c57915061024f9050565b610437868686610496565b9695505050505050565b610449610658565b6104566000806000610496565b5060005b815181101561049257610489600183838151811061047a5761047a61086e565b60200260200101516000610496565b5060010161045a565b5050565b6000805460408051606081019091528290808760038111156104ba576104ba61080d565b81526001600160a01b038716602080830191909152604090910186905282546001818101855560009485529190932082516002909402018054929390929091839160ff1916908360038111156105125761051261080d565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155600085600381111561055d5761055d61080d565b036105a6576000805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805463ffffffff191663ffffffff8316179055905061024f565b6001600160a01b0384166105cd5760405163dc2e5e8d60e01b815260040160405180910390fd5b60018560038111156105e1576105e161080d565b03610618576001600160a01b0384166000908152600160205260409020805463ffffffff191663ffffffff8316179055905061024f565b6001600160a01b0393909316600090815260026020908152604080832094835293905291909120805463ffffffff191663ffffffff841617905550919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166106a157604051631afcd79f60e31b815260040160405180910390fd5b565b80356001600160a01b03811681146106ba57600080fd5b919050565b6000806000606084860312156106d457600080fd5b8335600481106106e357600080fd5b92506106f1602085016106a3565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561072957600080fd5b813567ffffffffffffffff81111561074057600080fd5b8201601f8101841361075157600080fd5b803567ffffffffffffffff81111561076b5761076b610701565b8060051b604051601f19603f830116810181811067ffffffffffffffff8211171561079857610798610701565b6040529182526020818401810192908101878411156107b657600080fd5b6020850194505b838510156107dc576107ce856106a3565b8152602094850194016107bd565b509695505050505050565b6000602082840312156107f957600080fd5b813563ffffffff8116811461024f57600080fd5b634e487b7160e01b600052602160045260246000fd5b815160608201906004811061084857634e487b7160e01b600052602160045260246000fd5b82526020838101516001600160a01b031690830152604092830151929091019190915290565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220de3f1c12757a53f197542c7ea64a5d6be07b095bcbecce19d8818193eb4775c764736f6c634300081b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063219cd26314610067578063381175f6146100845780633ed1b576146100b35780635cc08ba3146100c3578063a224cee7146100d6578063cbd90cd0146100eb575b600080fd5b60005b60405163ffffffff90911681526020015b60405180910390f35b6100976100923660046106bf565b61010b565b60408051921515835263ffffffff90911660208301520161007b565b60035461006a9063ffffffff1681565b61006a6100d13660046106bf565b610226565b6100e96100e4366004610717565b610256565b005b6100fe6100f93660046107e7565b610366565b60405161007b9190610823565b600080808560038111156101215761012161080d565b03610132575060019050600061021e565b6001600160a01b0384166101595760405163dc2e5e8d60e01b815260040160405180910390fd5b600185600381111561016d5761016d61080d565b036101a4576001600160a01b03841660009081526001602052604090205463ffffffff1680156101a25760019250905061021e565b505b60028560038111156101b8576101b861080d565b14806101d5575060038560038111156101d3576101d361080d565b145b15610217576001600160a01b038416600090815260026020908152604080832086845290915290205463ffffffff1680156102155760019250905061021e565b505b5060009050805b935093915050565b6000610233848484610409565b6003805463ffffffff191663ffffffff92909216918217905590505b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561029c5750825b905060008267ffffffffffffffff1660011480156102b95750303b155b9050811580156102c7575080155b156102e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561030f57845460ff60401b1916600160401b1785555b61031886610441565b831561035e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b604080516060810182526000808252602082018190529181019190915260008263ffffffff168154811061039c5761039c61086e565b6000918252602090912060408051606081019091526002909202018054829060ff1660038111156103cf576103cf61080d565b60038111156103e0576103e061080d565b8152815461010090046001600160a01b0316602082015260019091015460409091015292915050565b600080600061041986868661010b565b91509150811561042c57915061024f9050565b610437868686610496565b9695505050505050565b610449610658565b6104566000806000610496565b5060005b815181101561049257610489600183838151811061047a5761047a61086e565b60200260200101516000610496565b5060010161045a565b5050565b6000805460408051606081019091528290808760038111156104ba576104ba61080d565b81526001600160a01b038716602080830191909152604090910186905282546001818101855560009485529190932082516002909402018054929390929091839160ff1916908360038111156105125761051261080d565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155600085600381111561055d5761055d61080d565b036105a6576000805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805463ffffffff191663ffffffff8316179055905061024f565b6001600160a01b0384166105cd5760405163dc2e5e8d60e01b815260040160405180910390fd5b60018560038111156105e1576105e161080d565b03610618576001600160a01b0384166000908152600160205260409020805463ffffffff191663ffffffff8316179055905061024f565b6001600160a01b0393909316600090815260026020908152604080832094835293905291909120805463ffffffff191663ffffffff841617905550919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166106a157604051631afcd79f60e31b815260040160405180910390fd5b565b80356001600160a01b03811681146106ba57600080fd5b919050565b6000806000606084860312156106d457600080fd5b8335600481106106e357600080fd5b92506106f1602085016106a3565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561072957600080fd5b813567ffffffffffffffff81111561074057600080fd5b8201601f8101841361075157600080fd5b803567ffffffffffffffff81111561076b5761076b610701565b8060051b604051601f19603f830116810181811067ffffffffffffffff8211171561079857610798610701565b6040529182526020818401810192908101878411156107b657600080fd5b6020850194505b838510156107dc576107ce856106a3565b8152602094850194016107bd565b509695505050505050565b6000602082840312156107f957600080fd5b813563ffffffff8116811461024f57600080fd5b634e487b7160e01b600052602160045260246000fd5b815160608201906004811061084857634e487b7160e01b600052602160045260246000fd5b82526020838101516001600160a01b031690830152604092830151929091019190915290565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220de3f1c12757a53f197542c7ea64a5d6be07b095bcbecce19d8818193eb4775c764736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
