[{"inputs":[{"internalType":"contract INonfungiblePositionManager","name":"_positionManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UniswapV3PositionTracker__CallerDoesNotOwnTokenId","type":"error"},{"inputs":[],"name":"UniswapV3PositionTracker__CallerOwnsTokenId","type":"error"},{"inputs":[],"name":"UniswapV3PositionTracker__MaxHoldingsExceeded","type":"error"},{"inputs":[],"name":"UniswapV3PositionTracker__TokenIdAlreadyTracked","type":"error"},{"inputs":[],"name":"UniswapV3PositionTracker__TokenIdMustBeOwnedByDeadAddress","type":"error"},{"inputs":[],"name":"UniswapV3PositionTracker__TokenIdNotFound","type":"error"},{"inputs":[],"name":"MAX_HOLDINGS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"contract ERC20","name":"token0","type":"address"},{"internalType":"contract ERC20","name":"token1","type":"address"}],"name":"addPositionToArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"contract ERC20","name":"token0","type":"address"},{"internalType":"contract ERC20","name":"token1","type":"address"}],"name":"checkIfPositionIsInTracker","outputs":[{"internalType":"bool","name":"tokenFound","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"contract ERC20","name":"token0","type":"address"},{"internalType":"contract ERC20","name":"token1","type":"address"}],"name":"getTokens","outputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"contract ERC20","name":"token0","type":"address"},{"internalType":"contract ERC20","name":"token1","type":"address"}],"name":"removePositionFromArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"contract ERC20","name":"token0","type":"address"},{"internalType":"contract ERC20","name":"token1","type":"address"}],"name":"removePositionFromArrayThatIsNotOwnedByCaller","outputs":[],"stateMutability":"nonpayable","type":"function"}]