{
  "_format": "hh-sol-artifact-1",
  "contractName": "NonfungibleTokenPositionDescriptor",
  "sourceName": "contracts/NonfungibleTokenPositionDescriptor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_WETH9",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "priority",
          "type": "int256"
        }
      ],
      "name": "UpdateTokenRatioPriority",
      "type": "event"
    },
    {
      "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": "0x60a060405234801561001057600080fd5b5060405161137338038061137383398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6112e06100936000398060d1528061011652506112e06000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634aa4a4fc146100515780637e5af7711461006f5780639d7b0ea81461008f578063e9dc6375146100af575b600080fd5b6100596100cf565b6040516100669190611132565b60405180910390f35b61008261007d366004610e38565b6100f3565b6040516100669190611146565b6100a261009d366004610e78565b610112565b6040516100669190611151565b6100c26100bd366004610e78565b610284565b604051610066919061115a565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006100ff8383610112565b6101098584610112565b13949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415610157575060631961027e565b816038141561027a576001600160a01b038316738ac76a51cc950d9822d68b83fe1ad97b32cd580d141561018e575061012c61027e565b6001600160a01b0383167355d398326f99059ff775485246999027b319795514156101bb575060c861027e565b6001600160a01b03831673e9e7cea3dedca5984780bafc599bd69add087d5614156101e8575060c861027e565b6001600160a01b038316731af3f329e8be154074d8769d1ffa4ee058b1dbc314156102155750606461027e565b6001600160a01b038316732170ed0880ac9a755fd29b2688956bd959f933f81415610243575060c71961027e565b6001600160a01b038316737130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c1415610272575061012b1961027e565b50600061027e565b5060005b92915050565b60606000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b81526004016102ba9190611151565b6101806040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b9190610ffd565b505050505096509650965096509650505060006103c9896001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561035a57600080fd5b505afa15801561036e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103929190610e15565b6040518060600160405280896001600160a01b03168152602001886001600160a01b031681526020018762ffffff16815250610708565b905060006103da878761007d610804565b9050600081156103ea57876103ec565b865b9050600082156103fc57876103fe565b885b90506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104739190610f54565b505050505091505073__$cea9be979eee3d87fb124d6cbb244bb0b5$__63c49917d7604051806101c001604052808f8152602001866001600160a01b03168152602001856001600160a01b031681526020016104ce87610808565b81526020016104dc86610808565b8152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105529190610fe3565b60ff168152602001856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561059357600080fd5b505afa1580156105a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cb9190610fe3565b60ff16815260200187151581526020018a60020b81526020018960020b81526020018460020b8152602001886001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062f57600080fd5b505afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106679190610ea3565b60020b81526020018b62ffffff168152602001886001600160a01b03168152506040518263ffffffff1660e01b81526004016106a3919061116d565b60006040518083038186803b1580156106bb57600080fd5b505af41580156106cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106f79190810190610ebd565b9d9c50505050505050505050505050565b600081602001516001600160a01b031682600001516001600160a01b03161061073057600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fb5ab24e1b2b43f49383f808b3789d1f0f02bee4a7e69459b3f6e335c3b5b5b3260d5808301919091528251808303909101815260f5909101909152805191012090565b4690565b60606000610836837f95d89b410000000000000000000000000000000000000000000000000000000061085b565b90508051600014156108535761084b83610ab0565b915050610856565b90505b919050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000085161781529151815160609360009384936001600160a01b03891693919290918291908083835b602083106108f45780518252601f1990920191602091820191016108d5565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610954576040519150601f19603f3d011682016040523d82523d6000602084013e610959565b606091505b509150915081158061096a57508051155b1561098857604051806020016040528060008152509250505061027e565b8051602014156109c05760008180602001905160208110156109a957600080fd5b505190506109b681610abd565b935050505061027e565b604081511115610a98578080602001905160208110156109df57600080fd5b81019080805160405193929190846401000000008211156109ff57600080fd5b908301906020820185811115610a1457600080fd5b8251640100000000811182820188101715610a2e57600080fd5b82525081516020918201929091019080838360005b83811015610a5b578181015183820152602001610a43565b50505050905090810190601f168015610a885780820380516001836020036101000a031916815260200191505b506040525050509250505061027e565b50506040805160208101909152600081529392505050565b6060610853826006610bfd565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015610b5f576000858260208110610afd57fe5b1a60f81b90507fff00000000000000000000000000000000000000000000000000000000000000811615610b565780848481518110610b3857fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101610ae6565b5060008167ffffffffffffffff81118015610b7957600080fd5b506040519080825280601f01601f191660200182016040528015610ba4576020820181803683370190505b50905060005b82811015610bf457838181518110610bbe57fe5b602001015160f81c60f81b828281518110610bd557fe5b60200101906001600160f81b031916908160001a905350600101610baa565b50949350505050565b606060028206158015610c105750600082115b8015610c1d575060288211155b610c8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff81118015610ca157600080fd5b506040519080825280601f01601f191660200182016040528015610ccc576020820181803683370190505b5090506001600160a01b03841660005b60028504811015610d7057600860138290030282901c600f600482901c1660f082168203610d0982610d7a565b868560020281518110610d1857fe5b60200101906001600160f81b031916908160001a905350610d3881610d7a565b868560020260010181518110610d4a57fe5b60200101906001600160f81b031916908160001a9053505060019092019150610cdc9050565b5090949350505050565b6000600a8260ff161015610d9557506030810160f81b610856565b506037810160f81b610856565b8051610856816112bb565b8051600281900b811461085657600080fd5b80516fffffffffffffffffffffffffffffffff8116811461085657600080fd5b805161ffff8116811461085657600080fd5b805162ffffff8116811461085657600080fd5b805160ff8116811461085657600080fd5b600060208284031215610e26578081fd5b8151610e31816112bb565b9392505050565b600080600060608486031215610e4c578182fd5b8335610e57816112bb565b92506020840135610e67816112bb565b929592945050506040919091013590565b60008060408385031215610e8a578182fd5b8235610e95816112bb565b946020939093013593505050565b600060208284031215610eb4578081fd5b610e3182610dad565b600060208284031215610ece578081fd5b815167ffffffffffffffff80821115610ee5578283fd5b818401915084601f830112610ef8578283fd5b815181811115610f0457fe5b604051601f8201601f191681016020018381118282101715610f2257fe5b604052818152838201602001871015610f39578485fd5b610f4a82602083016020870161128b565b9695505050505050565b600080600080600080600060e0888a031215610f6e578283fd5b8751610f79816112bb565b9650610f8760208901610dad565b9550610f9560408901610ddf565b9450610fa360608901610ddf565b9350610fb160808901610ddf565b9250610fbf60a08901610e04565b915060c08801518015158114610fd3578182fd5b8091505092959891949750929550565b600060208284031215610ff4578081fd5b610e3182610e04565b6000806000806000806000806000806000806101808d8f03121561101f578485fd5b8c516bffffffffffffffffffffffff8116811461103a578586fd5b9b5061104860208e01610da2565b9a5061105660408e01610da2565b995061106460608e01610da2565b985061107260808e01610df1565b975061108060a08e01610dad565b965061108e60c08e01610dad565b955061109c60e08e01610dbf565b94506101008d015193506101208d015192506110bb6101408e01610dbf565b91506110ca6101608e01610dbf565b90509295989b509295989b509295989b565b6001600160a01b03169052565b15159052565b60020b9052565b6000815180845261110e81602086016020860161128b565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b600060208252610e3160208301846110f6565b60006020825282516020830152602083015161118c60408401826110dc565b50604083015161119f60608401826110dc565b5060608301516101c08060808501526111bc6101e08501836110f6565b91506080850151601f198584030160a08601526111d983826110f6565b92505060a08501516111ee60c086018261112b565b5060c085015161120160e086018261112b565b5060e0850151610100611216818701836110e9565b860151905061012061122a868201836110ef565b860151905061014061123e868201836110ef565b8601519050610160611252868201836110ef565b8601519050610180611266868201836110ef565b86015190506101a061127a86820183611122565b8601519050610d70858301826110dc565b60005b838110156112a657818101518382015260200161128e565b838111156112b5576000848401525b50505050565b6001600160a01b03811681146112d057600080fd5b5056fea164736f6c6343000706000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634aa4a4fc146100515780637e5af7711461006f5780639d7b0ea81461008f578063e9dc6375146100af575b600080fd5b6100596100cf565b6040516100669190611132565b60405180910390f35b61008261007d366004610e38565b6100f3565b6040516100669190611146565b6100a261009d366004610e78565b610112565b6040516100669190611151565b6100c26100bd366004610e78565b610284565b604051610066919061115a565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006100ff8383610112565b6101098584610112565b13949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415610157575060631961027e565b816038141561027a576001600160a01b038316738ac76a51cc950d9822d68b83fe1ad97b32cd580d141561018e575061012c61027e565b6001600160a01b0383167355d398326f99059ff775485246999027b319795514156101bb575060c861027e565b6001600160a01b03831673e9e7cea3dedca5984780bafc599bd69add087d5614156101e8575060c861027e565b6001600160a01b038316731af3f329e8be154074d8769d1ffa4ee058b1dbc314156102155750606461027e565b6001600160a01b038316732170ed0880ac9a755fd29b2688956bd959f933f81415610243575060c71961027e565b6001600160a01b038316737130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c1415610272575061012b1961027e565b50600061027e565b5060005b92915050565b60606000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b81526004016102ba9190611151565b6101806040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b9190610ffd565b505050505096509650965096509650505060006103c9896001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561035a57600080fd5b505afa15801561036e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103929190610e15565b6040518060600160405280896001600160a01b03168152602001886001600160a01b031681526020018762ffffff16815250610708565b905060006103da878761007d610804565b9050600081156103ea57876103ec565b865b9050600082156103fc57876103fe565b885b90506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104739190610f54565b505050505091505073__$cea9be979eee3d87fb124d6cbb244bb0b5$__63c49917d7604051806101c001604052808f8152602001866001600160a01b03168152602001856001600160a01b031681526020016104ce87610808565b81526020016104dc86610808565b8152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561051a57600080fd5b505afa15801561052e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105529190610fe3565b60ff168152602001856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561059357600080fd5b505afa1580156105a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cb9190610fe3565b60ff16815260200187151581526020018a60020b81526020018960020b81526020018460020b8152602001886001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062f57600080fd5b505afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106679190610ea3565b60020b81526020018b62ffffff168152602001886001600160a01b03168152506040518263ffffffff1660e01b81526004016106a3919061116d565b60006040518083038186803b1580156106bb57600080fd5b505af41580156106cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106f79190810190610ebd565b9d9c50505050505050505050505050565b600081602001516001600160a01b031682600001516001600160a01b03161061073057600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fb5ab24e1b2b43f49383f808b3789d1f0f02bee4a7e69459b3f6e335c3b5b5b3260d5808301919091528251808303909101815260f5909101909152805191012090565b4690565b60606000610836837f95d89b410000000000000000000000000000000000000000000000000000000061085b565b90508051600014156108535761084b83610ab0565b915050610856565b90505b919050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000085161781529151815160609360009384936001600160a01b03891693919290918291908083835b602083106108f45780518252601f1990920191602091820191016108d5565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610954576040519150601f19603f3d011682016040523d82523d6000602084013e610959565b606091505b509150915081158061096a57508051155b1561098857604051806020016040528060008152509250505061027e565b8051602014156109c05760008180602001905160208110156109a957600080fd5b505190506109b681610abd565b935050505061027e565b604081511115610a98578080602001905160208110156109df57600080fd5b81019080805160405193929190846401000000008211156109ff57600080fd5b908301906020820185811115610a1457600080fd5b8251640100000000811182820188101715610a2e57600080fd5b82525081516020918201929091019080838360005b83811015610a5b578181015183820152602001610a43565b50505050905090810190601f168015610a885780820380516001836020036101000a031916815260200191505b506040525050509250505061027e565b50506040805160208101909152600081529392505050565b6060610853826006610bfd565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015610b5f576000858260208110610afd57fe5b1a60f81b90507fff00000000000000000000000000000000000000000000000000000000000000811615610b565780848481518110610b3857fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101610ae6565b5060008167ffffffffffffffff81118015610b7957600080fd5b506040519080825280601f01601f191660200182016040528015610ba4576020820181803683370190505b50905060005b82811015610bf457838181518110610bbe57fe5b602001015160f81c60f81b828281518110610bd557fe5b60200101906001600160f81b031916908160001a905350600101610baa565b50949350505050565b606060028206158015610c105750600082115b8015610c1d575060288211155b610c8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff81118015610ca157600080fd5b506040519080825280601f01601f191660200182016040528015610ccc576020820181803683370190505b5090506001600160a01b03841660005b60028504811015610d7057600860138290030282901c600f600482901c1660f082168203610d0982610d7a565b868560020281518110610d1857fe5b60200101906001600160f81b031916908160001a905350610d3881610d7a565b868560020260010181518110610d4a57fe5b60200101906001600160f81b031916908160001a9053505060019092019150610cdc9050565b5090949350505050565b6000600a8260ff161015610d9557506030810160f81b610856565b506037810160f81b610856565b8051610856816112bb565b8051600281900b811461085657600080fd5b80516fffffffffffffffffffffffffffffffff8116811461085657600080fd5b805161ffff8116811461085657600080fd5b805162ffffff8116811461085657600080fd5b805160ff8116811461085657600080fd5b600060208284031215610e26578081fd5b8151610e31816112bb565b9392505050565b600080600060608486031215610e4c578182fd5b8335610e57816112bb565b92506020840135610e67816112bb565b929592945050506040919091013590565b60008060408385031215610e8a578182fd5b8235610e95816112bb565b946020939093013593505050565b600060208284031215610eb4578081fd5b610e3182610dad565b600060208284031215610ece578081fd5b815167ffffffffffffffff80821115610ee5578283fd5b818401915084601f830112610ef8578283fd5b815181811115610f0457fe5b604051601f8201601f191681016020018381118282101715610f2257fe5b604052818152838201602001871015610f39578485fd5b610f4a82602083016020870161128b565b9695505050505050565b600080600080600080600060e0888a031215610f6e578283fd5b8751610f79816112bb565b9650610f8760208901610dad565b9550610f9560408901610ddf565b9450610fa360608901610ddf565b9350610fb160808901610ddf565b9250610fbf60a08901610e04565b915060c08801518015158114610fd3578182fd5b8091505092959891949750929550565b600060208284031215610ff4578081fd5b610e3182610e04565b6000806000806000806000806000806000806101808d8f03121561101f578485fd5b8c516bffffffffffffffffffffffff8116811461103a578586fd5b9b5061104860208e01610da2565b9a5061105660408e01610da2565b995061106460608e01610da2565b985061107260808e01610df1565b975061108060a08e01610dad565b965061108e60c08e01610dad565b955061109c60e08e01610dbf565b94506101008d015193506101208d015192506110bb6101408e01610dbf565b91506110ca6101608e01610dbf565b90509295989b509295989b509295989b565b6001600160a01b03169052565b15159052565b60020b9052565b6000815180845261110e81602086016020860161128b565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b600060208252610e3160208301846110f6565b60006020825282516020830152602083015161118c60408401826110dc565b50604083015161119f60608401826110dc565b5060608301516101c08060808501526111bc6101e08501836110f6565b91506080850151601f198584030160a08601526111d983826110f6565b92505060a08501516111ee60c086018261112b565b5060c085015161120160e086018261112b565b5060e0850151610100611216818701836110e9565b860151905061012061122a868201836110ef565b860151905061014061123e868201836110ef565b8601519050610160611252868201836110ef565b8601519050610180611266868201836110ef565b86015190506101a061127a86820183611122565b8601519050610d70858301826110dc565b60005b838110156112a657818101518382015260200161128e565b838111156112b5576000848401525b50505050565b6001600160a01b03811681146112d057600080fd5b5056fea164736f6c6343000706000a",
  "linkReferences": {
    "contracts/libraries/NFTDescriptor.sol": {
      "NFTDescriptor": [
        {
          "length": 20,
          "start": 1296
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/libraries/NFTDescriptor.sol": {
      "NFTDescriptor": [
        {
          "length": 20,
          "start": 1149
        }
      ]
    }
  }
}
