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

如何获取Quickswap(Uniswap v2)的最优兑换路径?

Quickswap 最优兑换路径获取方案(Node.js 环境)

实现前提

你已经完成了基础兑换功能的开发,接下来只需接入Quickswap官方维护的智能路由SDK,即可得到和官网完全一致的最优兑换路径,两者底层路由逻辑完全相同。

具体实现步骤

  • 首先安装核心依赖:@quickswap-sdk/smart-router、@uniswap/sdk-core、ethers,安装命令如下:
    npm install @quickswap-sdk/smart-router @uniswap/sdk-core ethers
    
  • 初始化Polygon主网的RPC provider,Quickswap核心部署在Polygon链上,需要对应链的节点支持
  • 导入需要兑换的两种代币的合约地址、精度、符号等元数据,构造sdk-core中的Token实例
  • 调用路由SDK的对应方法:如果是固定输入数量兑换调用getBestTradeExactIn,固定输出数量兑换调用getBestTradeExactOut,传入对应参数即可拿到最优路径、预计兑换数量等数据

注意:如果涉及稳定币兑换场景,需要在调用路由方法时开启稳定币配对的匹配开关,否则可能出现路径计算结果和官网不一致的情况

代码示例片段

import { AlphaRouter } from '@quickswap-sdk/smart-router'
import { ethers } from 'ethers'
import { Token, CurrencyAmount, TradeType } from '@uniswap/sdk-core'

// 初始化RPC Provider
const provider = new ethers.providers.JsonRpcProvider('你的Polygon主网RPC地址')

// 初始化路由实例
const router = new AlphaRouter({ chainId: 137, provider })

// 构造代币实例,示例为WMATIC和USDC
const WMATIC = new Token(137, '0x0d500B1d8E8eF31E23C969f40848ec6e63257911', 18, 'WMATIC', 'Wrapped Matic')
const USDC = new Token(137, '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', 6, 'USDC', 'USD Coin')

// 示例:查询1个WMATIC兑换USDC的最优路径
const inputAmount = CurrencyAmount.fromRawAmount(WMATIC, ethers.utils.parseEther('1').toString())

const getBestRoute = async () => {
  const trade = await router.route(
    inputAmount,
    USDC,
    TradeType.EXACT_INPUT
  )
  // 打印最优路径代币顺序
  console.log(trade?.route.path.map(token => token.symbol))
  // 打印预计输出数量
  console.log(trade?.quote.toExact())
}

getBestRoute()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:03