{
  "_format": "hh-sol-artifact-1",
  "contractName": "NonfungibleTokenPositionDescriptor",
  "sourceName": "contracts/elixir-periphery/NonfungibleTokenPositionDescriptor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_WETH9",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "WETH9",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "flipRatio",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "tokenRatioPriority",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "positionManager",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b5060405161143238038061143283398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61139f6100936000398060d15280610116525061139f6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634aa4a4fc146100515780637e5af7711461006f5780639d7b0ea81461008f578063e9dc6375146100af575b600080fd5b6100596100cf565b60405161006691906111f1565b60405180910390f35b61008261007d366004610ef7565b6100f3565b6040516100669190611205565b6100a261009d366004610f37565b610112565b6040516100669190611210565b6100c26100bd366004610f37565b610343565b6040516100669190611219565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006100ff8383610112565b6101098584610112565b13949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415610157575060631961033d565b816001141561024a576001600160a01b03831673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48141561018e575061012c61033d565b6001600160a01b03831673dac17f958d2ee523a2206206994597c13d831ec714156101bb575060c861033d565b6001600160a01b038316736b175474e89094c44da98b954eedeac495271d0f14156101e85750606461033d565b6001600160a01b038316738daebade922df735c38c80c7ebd708af50815faa1415610216575060c71961033d565b6001600160a01b038316732260fac5e5542a773aa44fbcfedf7c193bc2c5991415610245575061012b1961033d565b610339565b8161a86a1415610339576001600160a01b03831673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e1415610282575061012c61033d565b6001600160a01b038316739702230a8ea53601f5cd2dc00fdbc13d4df4a8c714156102af575060c861033d565b6001600160a01b038316739c9e5fd8bbc25984b178fdce6117defa39d2db3914156102dc5750606461033d565b6001600160a01b0383167349d5c2bdffac6ce2bfdb6640f4f80f226bc10bab141561030a575060c71961033d565b6001600160a01b03831673152b9d0fdc40c096757f570a51e494bd4b943e501415610339575061012b1961033d565b5060005b92915050565b60606000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b81526004016103799190611210565b6101806040518083038186803b15801561039257600080fd5b505afa1580156103a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ca91906110bc565b50505050509650965096509650965050506000610488896001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104519190610ed4565b6040518060600160405280896001600160a01b03168152602001886001600160a01b031681526020018762ffffff168152506107c7565b90506000610499878761007d6108c3565b9050600081156104a957876104ab565b865b9050600082156104bb57876104bd565b885b90506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b1580156104fa57600080fd5b505afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611013565b505050505091505073__$03b049dbd0a8907e50a245c5244098aa28$__63c49917d7604051806101c001604052808f8152602001866001600160a01b03168152602001856001600160a01b0316815260200161058d876108c7565b815260200161059b866108c7565b8152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061191906110a2565b60ff168152602001856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561065257600080fd5b505afa158015610666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068a91906110a2565b60ff16815260200187151581526020018a60020b81526020018960020b81526020018460020b8152602001886001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ee57600080fd5b505afa158015610702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107269190610f62565b60020b81526020018b62ffffff168152602001886001600160a01b03168152506040518263ffffffff1660e01b8152600401610762919061122c565b60006040518083038186803b15801561077a57600080fd5b505af415801561078e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107b69190810190610f7c565b9d9c50505050505050505050505050565b600081602001516001600160a01b031682600001516001600160a01b0316106107ef57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f41a723f9e6457830b1b7a44df4435fab88581d073226894b33131815dd674c2260d5808301919091528251808303909101815260f5909101909152805191012090565b4690565b606060006108f5837f95d89b410000000000000000000000000000000000000000000000000000000061091a565b90508051600014156109125761090a83610b6f565b915050610915565b90505b919050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000085161781529151815160609360009384936001600160a01b03891693919290918291908083835b602083106109b35780518252601f199092019160209182019101610994565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610a13576040519150601f19603f3d011682016040523d82523d6000602084013e610a18565b606091505b5091509150811580610a2957508051155b15610a4757604051806020016040528060008152509250505061033d565b805160201415610a7f576000818060200190516020811015610a6857600080fd5b50519050610a7581610b7c565b935050505061033d565b604081511115610b5757808060200190516020811015610a9e57600080fd5b8101908080516040519392919084640100000000821115610abe57600080fd5b908301906020820185811115610ad357600080fd5b8251640100000000811182820188101715610aed57600080fd5b82525081516020918201929091019080838360005b83811015610b1a578181015183820152602001610b02565b50505050905090810190601f168015610b475780820380516001836020036101000a031916815260200191505b506040525050509250505061033d565b50506040805160208101909152600081529392505050565b6060610912826006610cbc565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015610c1e576000858260208110610bbc57fe5b1a60f81b90507fff00000000000000000000000000000000000000000000000000000000000000811615610c155780848481518110610bf757fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101610ba5565b5060008167ffffffffffffffff81118015610c3857600080fd5b506040519080825280601f01601f191660200182016040528015610c63576020820181803683370190505b50905060005b82811015610cb357838181518110610c7d57fe5b602001015160f81c60f81b828281518110610c9457fe5b60200101906001600160f81b031916908160001a905350600101610c69565b50949350505050565b606060028206158015610ccf5750600082115b8015610cdc575060288211155b610d4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff81118015610d6057600080fd5b506040519080825280601f01601f191660200182016040528015610d8b576020820181803683370190505b5090506001600160a01b03841660005b60028504811015610e2f57600860138290030282901c600f600482901c1660f082168203610dc882610e39565b868560020281518110610dd757fe5b60200101906001600160f81b031916908160001a905350610df781610e39565b868560020260010181518110610e0957fe5b60200101906001600160f81b031916908160001a9053505060019092019150610d9b9050565b5090949350505050565b6000600a8260ff161015610e5457506030810160f81b610915565b506037810160f81b610915565b80516109158161137a565b8051600281900b811461091557600080fd5b80516fffffffffffffffffffffffffffffffff8116811461091557600080fd5b805161ffff8116811461091557600080fd5b805162ffffff8116811461091557600080fd5b805160ff8116811461091557600080fd5b600060208284031215610ee5578081fd5b8151610ef08161137a565b9392505050565b600080600060608486031215610f0b578182fd5b8335610f168161137a565b92506020840135610f268161137a565b929592945050506040919091013590565b60008060408385031215610f49578182fd5b8235610f548161137a565b946020939093013593505050565b600060208284031215610f73578081fd5b610ef082610e6c565b600060208284031215610f8d578081fd5b815167ffffffffffffffff80821115610fa4578283fd5b818401915084601f830112610fb7578283fd5b815181811115610fc357fe5b604051601f8201601f191681016020018381118282101715610fe157fe5b604052818152838201602001871015610ff8578485fd5b61100982602083016020870161134a565b9695505050505050565b600080600080600080600060e0888a03121561102d578283fd5b87516110388161137a565b965061104660208901610e6c565b955061105460408901610e9e565b945061106260608901610e9e565b935061107060808901610e9e565b925061107e60a08901610ec3565b915060c08801518015158114611092578182fd5b8091505092959891949750929550565b6000602082840312156110b3578081fd5b610ef082610ec3565b6000806000806000806000806000806000806101808d8f0312156110de578485fd5b8c516bffffffffffffffffffffffff811681146110f9578586fd5b9b5061110760208e01610e61565b9a5061111560408e01610e61565b995061112360608e01610e61565b985061113160808e01610eb0565b975061113f60a08e01610e6c565b965061114d60c08e01610e6c565b955061115b60e08e01610e7e565b94506101008d015193506101208d0151925061117a6101408e01610e7e565b91506111896101608e01610e7e565b90509295989b509295989b509295989b565b6001600160a01b03169052565b15159052565b60020b9052565b600081518084526111cd81602086016020860161134a565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b600060208252610ef060208301846111b5565b60006020825282516020830152602083015161124b604084018261119b565b50604083015161125e606084018261119b565b5060608301516101c080608085015261127b6101e08501836111b5565b91506080850151601f198584030160a086015261129883826111b5565b92505060a08501516112ad60c08601826111ea565b5060c08501516112c060e08601826111ea565b5060e08501516101006112d5818701836111a8565b86015190506101206112e9868201836111ae565b86015190506101406112fd868201836111ae565b8601519050610160611311868201836111ae565b8601519050610180611325868201836111ae565b86015190506101a0611339868201836111e1565b8601519050610e2f8583018261119b565b60005b8381101561136557818101518382015260200161134d565b83811115611374576000848401525b50505050565b6001600160a01b038116811461138f57600080fd5b5056fea164736f6c6343000706000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634aa4a4fc146100515780637e5af7711461006f5780639d7b0ea81461008f578063e9dc6375146100af575b600080fd5b6100596100cf565b60405161006691906111f1565b60405180910390f35b61008261007d366004610ef7565b6100f3565b6040516100669190611205565b6100a261009d366004610f37565b610112565b6040516100669190611210565b6100c26100bd366004610f37565b610343565b6040516100669190611219565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006100ff8383610112565b6101098584610112565b13949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415610157575060631961033d565b816001141561024a576001600160a01b03831673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48141561018e575061012c61033d565b6001600160a01b03831673dac17f958d2ee523a2206206994597c13d831ec714156101bb575060c861033d565b6001600160a01b038316736b175474e89094c44da98b954eedeac495271d0f14156101e85750606461033d565b6001600160a01b038316738daebade922df735c38c80c7ebd708af50815faa1415610216575060c71961033d565b6001600160a01b038316732260fac5e5542a773aa44fbcfedf7c193bc2c5991415610245575061012b1961033d565b610339565b8161a86a1415610339576001600160a01b03831673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e1415610282575061012c61033d565b6001600160a01b038316739702230a8ea53601f5cd2dc00fdbc13d4df4a8c714156102af575060c861033d565b6001600160a01b038316739c9e5fd8bbc25984b178fdce6117defa39d2db3914156102dc5750606461033d565b6001600160a01b0383167349d5c2bdffac6ce2bfdb6640f4f80f226bc10bab141561030a575060c71961033d565b6001600160a01b03831673152b9d0fdc40c096757f570a51e494bd4b943e501415610339575061012b1961033d565b5060005b92915050565b60606000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b81526004016103799190611210565b6101806040518083038186803b15801561039257600080fd5b505afa1580156103a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ca91906110bc565b50505050509650965096509650965050506000610488896001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104519190610ed4565b6040518060600160405280896001600160a01b03168152602001886001600160a01b031681526020018762ffffff168152506107c7565b90506000610499878761007d6108c3565b9050600081156104a957876104ab565b865b9050600082156104bb57876104bd565b885b90506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b1580156104fa57600080fd5b505afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611013565b505050505091505073__$03b049dbd0a8907e50a245c5244098aa28$__63c49917d7604051806101c001604052808f8152602001866001600160a01b03168152602001856001600160a01b0316815260200161058d876108c7565b815260200161059b866108c7565b8152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061191906110a2565b60ff168152602001856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561065257600080fd5b505afa158015610666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068a91906110a2565b60ff16815260200187151581526020018a60020b81526020018960020b81526020018460020b8152602001886001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ee57600080fd5b505afa158015610702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107269190610f62565b60020b81526020018b62ffffff168152602001886001600160a01b03168152506040518263ffffffff1660e01b8152600401610762919061122c565b60006040518083038186803b15801561077a57600080fd5b505af415801561078e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107b69190810190610f7c565b9d9c50505050505050505050505050565b600081602001516001600160a01b031682600001516001600160a01b0316106107ef57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f41a723f9e6457830b1b7a44df4435fab88581d073226894b33131815dd674c2260d5808301919091528251808303909101815260f5909101909152805191012090565b4690565b606060006108f5837f95d89b410000000000000000000000000000000000000000000000000000000061091a565b90508051600014156109125761090a83610b6f565b915050610915565b90505b919050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000085161781529151815160609360009384936001600160a01b03891693919290918291908083835b602083106109b35780518252601f199092019160209182019101610994565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610a13576040519150601f19603f3d011682016040523d82523d6000602084013e610a18565b606091505b5091509150811580610a2957508051155b15610a4757604051806020016040528060008152509250505061033d565b805160201415610a7f576000818060200190516020811015610a6857600080fd5b50519050610a7581610b7c565b935050505061033d565b604081511115610b5757808060200190516020811015610a9e57600080fd5b8101908080516040519392919084640100000000821115610abe57600080fd5b908301906020820185811115610ad357600080fd5b8251640100000000811182820188101715610aed57600080fd5b82525081516020918201929091019080838360005b83811015610b1a578181015183820152602001610b02565b50505050905090810190601f168015610b475780820380516001836020036101000a031916815260200191505b506040525050509250505061033d565b50506040805160208101909152600081529392505050565b6060610912826006610cbc565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015610c1e576000858260208110610bbc57fe5b1a60f81b90507fff00000000000000000000000000000000000000000000000000000000000000811615610c155780848481518110610bf757fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101610ba5565b5060008167ffffffffffffffff81118015610c3857600080fd5b506040519080825280601f01601f191660200182016040528015610c63576020820181803683370190505b50905060005b82811015610cb357838181518110610c7d57fe5b602001015160f81c60f81b828281518110610c9457fe5b60200101906001600160f81b031916908160001a905350600101610c69565b50949350505050565b606060028206158015610ccf5750600082115b8015610cdc575060288211155b610d4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff81118015610d6057600080fd5b506040519080825280601f01601f191660200182016040528015610d8b576020820181803683370190505b5090506001600160a01b03841660005b60028504811015610e2f57600860138290030282901c600f600482901c1660f082168203610dc882610e39565b868560020281518110610dd757fe5b60200101906001600160f81b031916908160001a905350610df781610e39565b868560020260010181518110610e0957fe5b60200101906001600160f81b031916908160001a9053505060019092019150610d9b9050565b5090949350505050565b6000600a8260ff161015610e5457506030810160f81b610915565b506037810160f81b610915565b80516109158161137a565b8051600281900b811461091557600080fd5b80516fffffffffffffffffffffffffffffffff8116811461091557600080fd5b805161ffff8116811461091557600080fd5b805162ffffff8116811461091557600080fd5b805160ff8116811461091557600080fd5b600060208284031215610ee5578081fd5b8151610ef08161137a565b9392505050565b600080600060608486031215610f0b578182fd5b8335610f168161137a565b92506020840135610f268161137a565b929592945050506040919091013590565b60008060408385031215610f49578182fd5b8235610f548161137a565b946020939093013593505050565b600060208284031215610f73578081fd5b610ef082610e6c565b600060208284031215610f8d578081fd5b815167ffffffffffffffff80821115610fa4578283fd5b818401915084601f830112610fb7578283fd5b815181811115610fc357fe5b604051601f8201601f191681016020018381118282101715610fe157fe5b604052818152838201602001871015610ff8578485fd5b61100982602083016020870161134a565b9695505050505050565b600080600080600080600060e0888a03121561102d578283fd5b87516110388161137a565b965061104660208901610e6c565b955061105460408901610e9e565b945061106260608901610e9e565b935061107060808901610e9e565b925061107e60a08901610ec3565b915060c08801518015158114611092578182fd5b8091505092959891949750929550565b6000602082840312156110b3578081fd5b610ef082610ec3565b6000806000806000806000806000806000806101808d8f0312156110de578485fd5b8c516bffffffffffffffffffffffff811681146110f9578586fd5b9b5061110760208e01610e61565b9a5061111560408e01610e61565b995061112360608e01610e61565b985061113160808e01610eb0565b975061113f60a08e01610e6c565b965061114d60c08e01610e6c565b955061115b60e08e01610e7e565b94506101008d015193506101208d0151925061117a6101408e01610e7e565b91506111896101608e01610e7e565b90509295989b509295989b509295989b565b6001600160a01b03169052565b15159052565b60020b9052565b600081518084526111cd81602086016020860161134a565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b600060208252610ef060208301846111b5565b60006020825282516020830152602083015161124b604084018261119b565b50604083015161125e606084018261119b565b5060608301516101c080608085015261127b6101e08501836111b5565b91506080850151601f198584030160a086015261129883826111b5565b92505060a08501516112ad60c08601826111ea565b5060c08501516112c060e08601826111ea565b5060e08501516101006112d5818701836111a8565b86015190506101206112e9868201836111ae565b86015190506101406112fd868201836111ae565b8601519050610160611311868201836111ae565b8601519050610180611325868201836111ae565b86015190506101a0611339868201836111e1565b8601519050610e2f8583018261119b565b60005b8381101561136557818101518382015260200161134d565b83811115611374576000848401525b50505050565b6001600160a01b038116811461138f57600080fd5b5056fea164736f6c6343000706000a",
  "linkReferences": {
    "contracts/elixir-periphery/libraries/NFTDescriptor.sol": {
      "NFTDescriptor": [
        {
          "length": 20,
          "start": 1487
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/elixir-periphery/libraries/NFTDescriptor.sol": {
      "NFTDescriptor": [
        {
          "length": 20,
          "start": 1340
        }
      ]
    }
  }
}
