/** * SwapRouter ABI (V3) */ export const SWAP_ROUTER_ABI = [ { type: 'function', name: 'exactInputSingle', inputs: [ { name: 'params', type: 'tuple', components: [ { name: 'tokenIn', type: 'address' }, { name: 'tokenOut', type: 'address' }, { name: 'fee', type: 'uint24' }, { name: 'recipient', type: 'address' }, { name: 'deadline', type: 'uint256' }, { name: 'amountIn', type: 'uint256' }, { name: 'amountOutMinimum', type: 'uint256' }, { name: 'sqrtPriceLimitX96', type: 'uint160' }, ], }, ], outputs: [{ name: 'amountOut', type: 'uint256' }], stateMutability: 'payable', }, { type: 'function', name: 'exactOutputSingle', inputs: [ { name: 'params', type: 'tuple', components: [ { name: 'tokenIn', type: 'address' }, { name: 'tokenOut', type: 'address' }, { name: 'fee', type: 'uint24' }, { name: 'recipient', type: 'address' }, { name: 'deadline', type: 'uint256' }, { name: 'amountOut', type: 'uint256' }, { name: 'amountInMaximum', type: 'uint256' }, { name: 'sqrtPriceLimitX96', type: 'uint160' }, ], }, ], outputs: [{ name: 'amountIn', type: 'uint256' }], stateMutability: 'payable', }, { type: 'function', name: 'exactInput', inputs: [ { name: 'params', type: 'tuple', components: [ { name: 'path', type: 'bytes' }, { name: 'recipient', type: 'address' }, { name: 'deadline', type: 'uint256' }, { name: 'amountIn', type: 'uint256' }, { name: 'amountOutMinimum', type: 'uint256' }, ], }, ], outputs: [{ name: 'amountOut', type: 'uint256' }], stateMutability: 'payable', }, { type: 'function', name: 'multicall', inputs: [{ name: 'data', type: 'bytes[]' }], outputs: [{ name: 'results', type: 'bytes[]' }], stateMutability: 'payable', }, ] as const