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

Uniswap V3 IQuoter/IQuoterV2在Arbitrum/Base网络无返回值问题排查

在Arbitrum/Base网络调用Uniswap V3 Quoter合约返回结果解码失败问题

在Solidity合约中调用Uniswap V3的IQuoter.quoteExactInputSingle()或IQuoterV2.quoteExactInputSingle()方法时,在Arbitrum/Base网络的Remix环境中始终显示解码输出为'-'。已确认所有地址正确、对应代币池/交易对存在,且仅在以太坊分叉环境中代码可正常运行。

合约代码如下:

function verifyV3PriceV2(uint amountIn, address tokenIn, address tokenOut) external returns (uint) {
    IQuoterV2.QuoteExactInputSingleParams memory params = IQuoterV2.QuoteExactInputSingleParams({
        tokenIn: tokenIn,
        tokenOut: tokenOut,
        fee: 3000,
        amountIn: amountIn,
        sqrtPriceLimitX96: 0
    });
    uint amountOut;
    (amountOut,,,) = IQuoterV2(0x61fFE014bA17989E743c5F6cB21bF9697530B21e).quoteExactInputSingle(params);
    // uint amountOut = IQuoter(0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6).quoteExactInputSingle(WETH, tokenAddress, 10000, amountIn, 0);
    return amountOut;
}

可能的问题原因及解决方案

  • RPC节点连接异常:Arbitrum/Base的公共节点可能存在延迟或调用限制,导致Quoter合约的返回数据未被正确获取。切换到官方推荐的RPC节点,或使用付费节点提供的Arbitrum/Base端点重试。
  • Quoter合约地址不匹配:确认使用的IQuoterV2地址是否对应目标L2网络的官方地址。Uniswap V3 Quoter合约地址在不同网络存在差异,比如Base网络的QuoterV2地址并非代码中的0x61fFE014bA17989E743c5F6cB21bF9697530B21e,需核对官方合约部署列表确认正确地址。
  • Remix解码兼容性问题:部分L2合约的多返回值在Remix中解码存在bug。可以修改合约,添加事件日志输出amountOut,通过查看交易日志确认实际返回值是否正常;或者将多返回值拆分为单独变量接收,避免解码异常。
  • Gas限制不足:调用Quoter合约需要足够的Gas,若Remix默认设置的Gas上限过低,可能导致调用未完全执行,返回数据异常。手动调高Gas限制至2000000左右后重新调用。

内容的提问来源于stack exchange,提问作者Rodion Krat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:46:00