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

如何通过API或SDK获取Uniswap与Sushiswap的交易手续费?

获取Uniswap/Sushiswap兑换交易成本的可行方案

1. 利用官方SDK计算

Uniswap和Sushiswap的官方SDK都内置了兑换成本计算能力,具体用法如下:

  • Uniswap V2/V3 SDK:以V3为例,SDK中的quoteExactInput方法可直接传入代币兑换路径、输入金额、滑点容忍度等参数,返回扣除手续费和滑点影响后的实际输出金额。示例代码片段:
    import { Pool, Route, Trade, Token, CurrencyAmount } from '@uniswap/v3-sdk';
    import { ethers } from 'ethers';
    
    // 假设已获取目标池的储备、手续费率、当前价格等链上数据
    const pool = new Pool(tokenA, tokenB, fee, sqrtPriceX96, liquidity, tickCurrent);
    const route = new Route([pool], tokenA, tokenB);
    const trade = Trade.exactIn(route, CurrencyAmount.fromRawAmount(tokenA, inputAmount));
    
    // 输出金额即为扣除手续费后的实际可获代币数量,兑换成本可通过输入/输出比例反向推导
    const outputAmount = trade.outputAmount.toExact();
    
  • Sushiswap SDK:由于Sushiswap fork自Uniswap V2,其SDK用法与Uniswap V2完全兼容,支持相同的报价计算逻辑;针对V3版本,同样适配Uniswap V3的SDK调用方式。

2. 直接调用链上合约视图方法

无需依赖SDK时,可直接调用合约的视图接口获取精准数据:

  • 交易对合约:Uniswap V2的Pair合约提供getReserves方法,返回当前代币储备量;V3的Pool合约通过slot0方法获取当前价格与手续费率。拿到这些数据后,结合官方手续费规则(V2固定0.3%,V3分0.05%/0.3%/1%三档),即可手动计算兑换净成本。
  • Router合约:Uniswap/Sushiswap的Router合约(如UniswapV3Router02)内置quoteExactInput等视图方法,传入兑换路径和输入金额后,会直接返回扣除手续费后的预期输出金额,省去手动计算步骤。

3. 本地链上数据索引

若需批量获取或查询历史兑换成本,可基于Uniswap/Sushiswap的开源子图模板,自行部署TheGraph子图,通过子图查询实时交易对数据后计算成本;也可直接连接以太坊节点,通过eth_call调用合约方法获取所需参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:15:34