[{"type":"constructor","inputs":[{"name":"_poolManager","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"quoteExactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"error","name":"NotEnoughLiquidity","inputs":[{"name":"poolId","type":"bytes32","internalType":"PoolId"}]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"NotSelf","inputs":[]},{"type":"error","name":"QuoteSwap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnexpectedCallSuccess","inputs":[]},{"type":"error","name":"UnexpectedRevertBytes","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}]}]