You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用UniswapV2Router02兑换USDC为USDT报INSUFFICIENT_OUTPUT_AMOUNT错误求解

问题原因及对应解决方法

核心原因

你遇到的INSUFFICIENT_OUTPUT_AMOUNT报错本质是Sushiswap路由实际计算出的可兑换USDT金额低于你设置的amountOutMin阈值,结合你提供的信息,大概率是以下几个问题导致的:

  • 你参考的2万亿美金规模的USDC/USDT流动池不属于Sushiswap
    你看到的高深度稳定币池大概率是Uniswap V2/V3或者Curve的同名交易池,当前Sushiswap主网的USDC/USDT原生池深度极低,3000USDC的兑换量足以触发极高滑点,才会出现仅能兑换出1300余USDT的情况。
  • 主网分叉快照的区块状态异常
    如果你分叉时选择的区块高度刚好对应Sushiswap USDC/USDT池被大额兑换、USDT储备被掏空还未被补充的时间点,也会出现储备计算异常导致的超高滑点。
  • 兑换路径设置不合理
    你当前用的是USDC→USDT的单跳路径,Sushiswap上该路径的池深度不足,可以尝试增加WETH作为中间代币走双跳路径[USDC地址, WETH地址, USDT地址],Sushiswap的WETH稳定币池深度远高于稳定币直接兑换池,滑点会大幅降低。
  • 预计算预期输出时用错了协议参数
    如果你之前是用Uniswap V2的工厂地址计算的预期兑换金额,而实际调用的是Sushiswap的路由,两个协议的流动池地址完全不同,储备数据自然不匹配,会导致你对滑点的预期出现严重偏差。

排查步骤建议

  1. 先在你的分叉测试网中调用Sushiswap路由的getAmountsOut方法,传入3000 * 10 ** 6的amountIn和你当前的兑换路径,确认返回的输出金额是否和报错提示的1327USDT一致,先锁定是储备计算的问题。
  2. 调用Sushiswap工厂合约的getPair方法获取USDC/USDT的交易对地址,直接查询该地址的getReserves返回值,确认池内USDT和USDC的真实储备量,就能验证是不是该池深度不足的问题。
  3. 如果确认是单跳池深度不足,替换兑换路径为USDC→WETH→USDT即可解决问题。
  4. 如果是分叉快照的问题,调高主网分叉的区块高度到最新的区块重新测试即可。

内容的提问来源于stack exchange,提问作者Hristo Todorov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:06:07