用途:面向在以太坊及 L2 上集成 Uniswap V3/V4 的开发场景,提供兑换、报价与流动性头寸操作指引。
主要能力:V3 通过 SwapRouter02 的 exactInputSingle/exactOutputSingle 实现精确输入或精确输出兑换;可通过 NFT Position Manager 的 mint 添加集中流动性头寸,需指定 tickLower/tickUpper 且对齐 tickSpacing。报价使用 QuoterV2 的 quoteExactInputSingle,须以 simulateContract 进行静态调用。V4 采用单例 PoolManager 持有全部池状态,池由 PoolKey(currency0、currency1、fee、tickSpacing、hooks)标识而非合约地址;Hooks 在池创建时绑定,通过地址前缀位标志决定回调,创建后不可增删。
关键事实:V3/V4 价格存为 sqrtPriceX96(Q64.96),人类可读价格为 (sqrtPriceX96/2^96)^2 并按代币小数位调整;tick 使用 int24,范围 -887272 到 887272,每 tick 约 0.01%,tickSpacing 随费率档位为 1、10、60、200;fee 以百分之一基点计,3000 即 0.30%;SwapRouter02 取代已弃用的 SwapRouter;UniversalRouter 需先授权 Permit2。
使用方式:安装 npm install viem @uniswap/v3-sdk @uniswap/sdk-core @uniswap/universal-router-sdk,用 viem 创建 publicClient/walletClient,先报价再设置 amountOutMinimum/amountInMaximum 等滑点保护参数,最后 writeContract 并校验回执状态。
适用场景:链上兑换集成、集中流动性做市、V4 Hooks 开发与池初始化。
限制:需自备 RPC 与私钥环境;生产环境必须填写最小输出/最大输入等保护值;合约地址最后核验于 2026 年 2 月,可能随时间变化;部分平台与收费信息暂未提供。