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