{
  "_format": "hh-sol-artifact-1",
  "contractName": "PositionValueTest",
  "sourceName": "contracts/elixir-periphery/test/PositionValueTest.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "fees",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "feesGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint160",
          "name": "sqrtRatioX96",
          "type": "uint160"
        }
      ],
      "name": "principal",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint160",
          "name": "sqrtRatioX96",
          "type": "uint160"
        }
      ],
      "name": "principalGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint160",
          "name": "sqrtRatioX96",
          "type": "uint160"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INonfungiblePositionManager",
          "name": "nft",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint160",
          "name": "sqrtRatioX96",
          "type": "uint160"
        }
      ],
      "name": "totalGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610f44806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80635b6dc092116100505780635b6dc0921461013057806390594f9114610166578063ee4e9ba31461019c57610072565b80632263539714610077578063263a5362146100c65780633803770c146100f2575b600080fd5b6100ad6004803603606081101561008d57600080fd5b506001600160a01b038135811691602081013591604090910135166101d2565b6040805192835260208301919091528051918290030190f35b6100ad600480360360408110156100dc57600080fd5b506001600160a01b0381351690602001356101ec565b61011e6004803603604081101561010857600080fd5b506001600160a01b038135169060200135610204565b60408051918252519081900360200190f35b6100ad6004803603606081101561014657600080fd5b506001600160a01b03813581169160208101359160409091013516610220565b61011e6004803603606081101561017c57600080fd5b506001600160a01b0381358116916020810135916040909101351661022e565b61011e600480360360608110156101b257600080fd5b506001600160a01b0381358116916020810135916040909101351661024e565b6000806101e085858561025b565b91509150935093915050565b6000806101f98484610317565b915091509250929050565b6000805a90506102148484610317565b50505a90039392505050565b6000806101e08585856104ca565b6000805a905061023f8585856104ca565b50505a900390505b9392505050565b6000805a905061023f8585855b6000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b1580156102a857600080fd5b505afa1580156102bc573d6000803e3d6000fd5b505050506040513d6101808110156102d357600080fd5b5060a081015160c082015160e0909201519094509092509050610308866102f9856104fd565b610302856104fd565b8461082f565b94509450505050935093915050565b6000806000806000806000806000806000808d6001600160a01b03166399fbab888e6040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b15801561036e57600080fd5b505afa158015610382573d6000803e3d6000fd5b505050506040513d61018081101561039957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506001600160801b03169b506001600160801b03169b509b509b509b509b509b509b509b509b5050506104b58e6040518061014001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b62ffffff1681526020018a60020b81526020018960020b8152602001886001600160801b03168152602001878152602001868152602001858152602001848152506108cb565b9b509b50505050505050505050509250929050565b6000806000806104db87878761025b565b915091506000806104ec8989610317565b940195505050019050935093915050565b60008060008360020b12610514578260020b61051c565b8260020b6000035b9050620d89e881111561055a576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661056e57600160801b610580565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156105b4576ffff97272373d413259a46990580e213a0260801c5b60048216156105d3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156105f2576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610611576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610630576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561064f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561066e576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561068e576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156106ae576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156106ce576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156106ee576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561070e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561072e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561074e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561076e576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561078f576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156107af576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156107ce576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156107eb576b048a170391f7dc42444e8fa20260801c5b60008460020b131561080657806000198161080257fe5b0490505b64010000000081061561081a57600161081d565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b03161115610850579293925b846001600160a01b0316866001600160a01b03161161087b576108748585856109e9565b91506108c2565b836001600160a01b0316866001600160a01b031610156108b4576108a08685856109e9565b91506108ad858785610a52565b90506108c2565b6108bf858585610a52565b90505b94509492505050565b600080600080610986610977876001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561091057600080fd5b505afa158015610924573d6000803e3d6000fd5b505050506040513d602081101561093a57600080fd5b50516040805160608101825289516001600160a01b03908116825260208b810151909116908201528982015162ffffff1691810191909152610aa6565b86606001518760800151610ba2565b915091508461010001516109b28660c0015184038760a001516001600160801b0316600160801b610e5f565b0193508461012001516109dd8660e0015183038760a001516001600160801b0316600160801b610e5f565b01925050509250929050565b6000826001600160a01b0316846001600160a01b03161115610a09579192915b836001600160a01b0316610a42606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b0316610e5f565b81610a4957fe5b04949350505050565b6000826001600160a01b0316846001600160a01b03161115610a72579192915b610a9e826001600160801b03168585036001600160a01b03166c01000000000000000000000000610e5f565b949350505050565b600081602001516001600160a01b031682600001516001600160a01b031610610ace57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f41a723f9e6457830b1b7a44df4435fab88581d073226894b33131815dd674c2260d5808301919091528251808303909101815260f5909101909152805191012090565b6000806000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610be057600080fd5b505afa158015610bf4573d6000803e3d6000fd5b505050506040513d60e0811015610c0a57600080fd5b50602001516040805163f30dba9360e01b8152600288900b6004820152905191925060009182916001600160a01b038a169163f30dba939160248082019261012092909190829003018186803b158015610c6357600080fd5b505afa158015610c77573d6000803e3d6000fd5b505050506040513d610120811015610c8e57600080fd5b50604080820151606090920151815163f30dba9360e01b815260028a900b60048201529151929450925060009182916001600160a01b038c169163f30dba939160248082019261012092909190829003018186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d610120811015610d1a57600080fd5b5060408101516060909101519092509050600289810b9086900b1215610d495781840396508083039550610e52565b8760020b8560020b1215610e475760008a6001600160a01b031663f30583996040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d6020811015610dbc57600080fd5b505160408051634614131960e01b815290519192506000916001600160a01b038e16916346141319916004808301926020929190829003018186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d6020811015610e2e57600080fd5b5051918690038490039850508390038190039550610e52565b838203965082810395505b5050505050935093915050565b6000808060001985870986860292508281109083900303905080610e955760008411610e8a57600080fd5b508290049050610247565b808411610ea157600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a0290910302918190038190046001018684119095039490940291909403929092049190911791909102915050939250505056fea264697066735822122089ba45bfa331e01a0f9c52fbd940e356b1b1a0bfe8d5bc5f728fa3fdb8bb31b464736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c80635b6dc092116100505780635b6dc0921461013057806390594f9114610166578063ee4e9ba31461019c57610072565b80632263539714610077578063263a5362146100c65780633803770c146100f2575b600080fd5b6100ad6004803603606081101561008d57600080fd5b506001600160a01b038135811691602081013591604090910135166101d2565b6040805192835260208301919091528051918290030190f35b6100ad600480360360408110156100dc57600080fd5b506001600160a01b0381351690602001356101ec565b61011e6004803603604081101561010857600080fd5b506001600160a01b038135169060200135610204565b60408051918252519081900360200190f35b6100ad6004803603606081101561014657600080fd5b506001600160a01b03813581169160208101359160409091013516610220565b61011e6004803603606081101561017c57600080fd5b506001600160a01b0381358116916020810135916040909101351661022e565b61011e600480360360608110156101b257600080fd5b506001600160a01b0381358116916020810135916040909101351661024e565b6000806101e085858561025b565b91509150935093915050565b6000806101f98484610317565b915091509250929050565b6000805a90506102148484610317565b50505a90039392505050565b6000806101e08585856104ca565b6000805a905061023f8585856104ca565b50505a900390505b9392505050565b6000805a905061023f8585855b6000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b1580156102a857600080fd5b505afa1580156102bc573d6000803e3d6000fd5b505050506040513d6101808110156102d357600080fd5b5060a081015160c082015160e0909201519094509092509050610308866102f9856104fd565b610302856104fd565b8461082f565b94509450505050935093915050565b6000806000806000806000806000806000808d6001600160a01b03166399fbab888e6040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b15801561036e57600080fd5b505afa158015610382573d6000803e3d6000fd5b505050506040513d61018081101561039957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506001600160801b03169b506001600160801b03169b509b509b509b509b509b509b509b509b5050506104b58e6040518061014001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b62ffffff1681526020018a60020b81526020018960020b8152602001886001600160801b03168152602001878152602001868152602001858152602001848152506108cb565b9b509b50505050505050505050509250929050565b6000806000806104db87878761025b565b915091506000806104ec8989610317565b940195505050019050935093915050565b60008060008360020b12610514578260020b61051c565b8260020b6000035b9050620d89e881111561055a576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661056e57600160801b610580565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156105b4576ffff97272373d413259a46990580e213a0260801c5b60048216156105d3576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156105f2576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610611576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610630576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561064f576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561066e576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561068e576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156106ae576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156106ce576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156106ee576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561070e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561072e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561074e576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561076e576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561078f576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156107af576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156107ce576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156107eb576b048a170391f7dc42444e8fa20260801c5b60008460020b131561080657806000198161080257fe5b0490505b64010000000081061561081a57600161081d565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b03161115610850579293925b846001600160a01b0316866001600160a01b03161161087b576108748585856109e9565b91506108c2565b836001600160a01b0316866001600160a01b031610156108b4576108a08685856109e9565b91506108ad858785610a52565b90506108c2565b6108bf858585610a52565b90505b94509492505050565b600080600080610986610977876001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561091057600080fd5b505afa158015610924573d6000803e3d6000fd5b505050506040513d602081101561093a57600080fd5b50516040805160608101825289516001600160a01b03908116825260208b810151909116908201528982015162ffffff1691810191909152610aa6565b86606001518760800151610ba2565b915091508461010001516109b28660c0015184038760a001516001600160801b0316600160801b610e5f565b0193508461012001516109dd8660e0015183038760a001516001600160801b0316600160801b610e5f565b01925050509250929050565b6000826001600160a01b0316846001600160a01b03161115610a09579192915b836001600160a01b0316610a42606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b0316610e5f565b81610a4957fe5b04949350505050565b6000826001600160a01b0316846001600160a01b03161115610a72579192915b610a9e826001600160801b03168585036001600160a01b03166c01000000000000000000000000610e5f565b949350505050565b600081602001516001600160a01b031682600001516001600160a01b031610610ace57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f41a723f9e6457830b1b7a44df4435fab88581d073226894b33131815dd674c2260d5808301919091528251808303909101815260f5909101909152805191012090565b6000806000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610be057600080fd5b505afa158015610bf4573d6000803e3d6000fd5b505050506040513d60e0811015610c0a57600080fd5b50602001516040805163f30dba9360e01b8152600288900b6004820152905191925060009182916001600160a01b038a169163f30dba939160248082019261012092909190829003018186803b158015610c6357600080fd5b505afa158015610c77573d6000803e3d6000fd5b505050506040513d610120811015610c8e57600080fd5b50604080820151606090920151815163f30dba9360e01b815260028a900b60048201529151929450925060009182916001600160a01b038c169163f30dba939160248082019261012092909190829003018186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d610120811015610d1a57600080fd5b5060408101516060909101519092509050600289810b9086900b1215610d495781840396508083039550610e52565b8760020b8560020b1215610e475760008a6001600160a01b031663f30583996040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d6020811015610dbc57600080fd5b505160408051634614131960e01b815290519192506000916001600160a01b038e16916346141319916004808301926020929190829003018186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d6020811015610e2e57600080fd5b5051918690038490039850508390038190039550610e52565b838203965082810395505b5050505050935093915050565b6000808060001985870986860292508281109083900303905080610e955760008411610e8a57600080fd5b508290049050610247565b808411610ea157600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a0290910302918190038190046001018684119095039490940291909403929092049190911791909102915050939250505056fea264697066735822122089ba45bfa331e01a0f9c52fbd940e356b1b1a0bfe8d5bc5f728fa3fdb8bb31b464736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
