SUN.io 中文文档
SUN.ioSunPump
  • SUN.io 简介
    • 入门指南(TRON)
      • 创建钱包
      • TRON 网络代币标准
      • 连接钱包
    • 风险
    • 白皮书
    • 服务条款
    • 隐私协议
    • 最新公告
  • 开始使用
    • 兑换
      • 代币兑换
        • 如何给token授权?
        • 如何兑换token?
        • 如何查看我最近的交易记录?
        • 如何查看交易对价格走势?
      • 稳定币兑换
        • 稳定币池介绍
        • 如何进行稳定币交易?
        • 如何提供稳定币池的流动性?
        • 如何提取稳定币池流动性?
        • 如何查看自己提供的流动性?
      • 智能路由
      • 交易手续费
        • 收取手续费奖励
      • 流动性资金池
        • 如何创建交易对
        • 如何增加流动性?
        • 如何删除流动性?
        • 增加/删除资金池的token比例是如何计算的?
        • 如何录入一个新的token?
        • 创建资金池初始价格是多少?
      • 代币列表
    • 矿池
      • SUN.io 平台挖矿细则
      • 如何参与LP挖矿?
      • 如何获取LP挖矿收益?
      • 如何退出LP挖矿?
      • 如何计算LP矿池加速倍数?
      • 如何锁定SUN?
      • 如何投票?
      • 如何重置投票?
      • 智能矿池
        • 如何参与 LP 矿池的定期质押?
        • 如何在 LP 矿池中追加定期质押?
        • 如何中途延长 LP 矿池定期质押锁定期?
        • 如何提前解锁 LP 矿池中定期质押的资产?
        • 如何领取 LP 矿池的定期质押奖励?
      • Farm
      • 历史矿池
    • SunPump
      • 🌞 怎么运行的?
      • 🚀 如何启动?
      • 💡代币详情
      • 👤 个人主页
      • 🏦 服务费
      • SunPump DLive Streaming 功能使用教程
    • SunPump Referral
      • 参与方式
      • 活动规则
      • FAQ
    • PSM
      • 如何使用 PSM 在 USDD 和其他稳定币之间进行 1:1 兑换?
    • 代币经济
      • SUN 代币经济模型
        • SUN 回购及销毁
      • veSUN
      • 空投
  • 治理
    • SUN DAO 治理
    • 参与治理
      • 提案
        • SUN DAO 论坛
        • 获得选票
        • 发起提案
        • 进行投票
        • SUN DAO 提案查看
      • DAO 权益
        • 矿池权重
        • veSUN
  • 开发者
    • 兑换
      • 稳定币兑换简介
      • SunSwap兑换简介
      • SunSwap v3兑换简介
      • 智能路由
    • 挖矿
      • 智能挖矿V1
      • 智能挖矿V2
      • 治理挖矿
    • Sunpump
      • Sunpump Contracts
    • Github
    • 相关合约及ABIs
  • FAQ
    • 如何在手机 TronLink APP中使用SUN.io?
    • 价格是由什么决定的?
    • 兑换支持哪些Token?
    • 为什么我的兑换会失败?
    • 关于 SUN.io 平台能量补贴的详细说明
Powered by GitBook
On this page
  • 背景
  • 原理简介
  • 智能路由合约
  • 智能路由解算服务
  • 与合约交互
  • 获取智能路由信息
  • 执行交易
  1. 开发者
  2. 兑换

智能路由

一个为用户提供更好交易策略的工具

PreviousSunSwap v3兑换简介Next挖矿

Last updated 3 months ago

背景

为帮助用户获取更大的兑换收益,SUN.io团队推出智能路由功能。智能路由在SUN.io中扮演着重要的角色:

  1. 最佳价格执行:智能路由可以根据不同的交易对之间的价格差异选择最佳的交易路径,以获取最优的交易价格。这意味着用户可以在交易过程中获得更好的价格执行,从而最大化其交易价值。

  2. 流动性优化:智能路由可以利用不同交易对之间的流动性,来提供更好的交易深度和流动性。通过在多个流动性池之间进行交叉交易,智能路由可以减少滑点(slippage)和市场冲击,从而为用户提供更好的交易体验。

  3. 提高流动性效率:智能路由可以帮助提高流动性效率。通过将流动性从较深的交易对引导到较浅的交易对,智能路由可以帮助提高整体的流动性利用率,使得更多的交易能够得到满足。

原理简介

SUN.io智能路由解算服务通过在服务器上构建合约镜像的模式,实现在SunSwap V1,SunSwap V2,SunSwap V3,PSM,SunCurve上的全图搜索;按照兑换出token数量多少排序,返给用户兑换token最多的三条路径。SUN.io智能路由合约是嵌套合约,通过该合约可调用SUN.io下的SunSwap V1,SunSwap V2,SunSwap V3,PSM,SunCurve的交易池,完成交易。

智能路由合约

主网合约地址:TCFNp179Lg46D16zKoumd4Poa2WFFdtqYj

TJ4NNy8xZEqsowCBhLvZ45LCqPdGjkET5j (已弃用)

TFVisXFaijZfeyeSjCEVkHfex7HGdTxzF9(已弃用)

nile测试网合约地址:TB6xBCixqRPUSKiXb45ky1GhChFJ7qrfFj

智能路由解算服务

与合约交互

我们利用TronWeb与合约交互, 初始化TronWeb实例后, 就能很方便的与线上合约交互。

初始化TronWeb实例
const TronWeb = require('tronweb')
const privateKey = process.env.PRIVATE_KEY
const apiKey = process.env.API_KEY

var tronWeb = new TronWeb({
	fullHost: "https://api.trongrid.io",
	headers: { "TRON-PRO-API-KEY": apiKey },
	privateKey: privateKey,
      })

获取智能路由信息

  • 智能路由解算服务接口

    • 类型:GET

    • 参数:

    名称
    解释

    fromToken

    fromToken地址

    toToken

    toToken地址

    amountIn

    要兑换币数量

    typeList

    可兑换类型(PSM,CURVE,CURVE_COMBINATION,WTRX,SUNSWAP_V1,SUNSWAP_V2,SUNSWAP_V3)

    • 返回值:

    名称
    解释

    amountIn

    输入兑换币的数量(除精度)

    amountOut

    路由解算出可兑换币的数量(除精度)

    InUsd

    输入币美元价格

    OutUsd

    输出币美元价格

    impact

    价格影响

    fee

    手续费

    tokens

    fromToken到toToken的路径中走过的token的地址

    symbols

    fromToken到toToken的路径中走过的token的symbol

    poolFees

    fromToken到toToken的路径中走过的池子的费率

    (非SunSwap V3版本的费率均显示为0)

    poolVersions

    fromToken到toToken的路径中走过的池子的版本

    stepAmountsOut

    fromToken到toToken的路径中走过的每个池子兑换出的币的数量

>>> curl 'https://rot.endjgfsv.link/swap/router?fromToken=TWrZRHY9aKQZcyjpovdH6qeCEyYZrRQDZt&toToken=TG9XJ75ZWcUw69W8xViEJZQ365fRupGkFP&amountIn=100000000000000000&typeList=PSM,CURVE,CURVE_COMBINATION,WTRX,SUNSWAP_V1,SUNSWAP_V2,SUNSWAP_V3'
{"code":0,"message":"SUCCESS","data":[{"amountIn":"0.100000000000000000","amountOut":"0.00340809","inUsd":"0.000552211279796638800000000000000000","outUsd":"102.28490008408047256262147451","impact":"-0.004658","fee":"0.001019799010000000","tokens":["TWrZRHY9aKQZcyjpovdH6qeCEyYZrRQDZt","TGfVzt44kg6ZJ4fUqpHzJy3Jb37YMf8pMH","TGjgvdTWWrybVLaVeFqSyVqJQWjxqRYbaK","TG9XJ75ZWcUw69W8xViEJZQ365fRupGkFP"],"symbols":["SUN","HT","USDD","BTC"],"poolFees":["100","10000","100","0"],"poolVersions":["v3","v3","v3"],"stepAmountsOut":["0.204301041106368782","0.306491628388168604","0.00340809"]},{"amountIn":"0.100000000000000000","amountOut":"0.00315241","inUsd":"0.000552211279796638800000000000000000","outUsd":"94.61133417076900038177793499","impact":"-0.000471","fee":"0.001593109000000000","tokens":["TWrZRHY9aKQZcyjpovdH6qeCEyYZrRQDZt","TYsbWxNnyTgsZaTFaue9hqpxkU3Fkco94a","T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb","TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3","TG9XJ75ZWcUw69W8xViEJZQ365fRupGkFP"],"symbols":["SUN","WTRX","TRX","JST","BTC"],"poolFees":["0","0","0","10000","0"],"poolVersions":["v2","v2","v1","v3"],"stepAmountsOut":["9.406036","9.406036","5797.537373084257622564","0.00315241"]},{"amountIn":"0.100000000000000000","amountOut":"0.00311306","inUsd":"0.000552211279796638800000000000000000","outUsd":"93.43034692621015170250621534","impact":"-0.000305","fee":"0.001019799010000000","tokens":["TWrZRHY9aKQZcyjpovdH6qeCEyYZrRQDZt","TRz7J6dD2QWxBoumfYt4b3FaiRG23pXfop","TGjgvdTWWrybVLaVeFqSyVqJQWjxqRYbaK","TG9XJ75ZWcUw69W8xViEJZQ365fRupGkFP"],"symbols":["SUN","TUSD","USDD","BTC"],"poolFees":["10000","100","100","0"],"poolVersions":["v3","v3","v3"],"stepAmountsOut":["0.279484570175183752","0.279951568868017126","0.00311306"]}]}

执行交易

  • 交易

    • 名称:swapExactInput( address[], string[], uint256[], uint24[], SwapData)

    • 参数:路径数组,pool的版本数组,相邻pool版本的长度数组,fee率数组,[要兑换金额,兑换出的最小接受额,接受兑换金额地址,deadline]

>>> let contract = await tronWeb.getContract('TQAvWQpT9H916GckwWDJNhYZvQMkuRL7PN')
>>> await router.swapExactInput(
                    ['TWrZRHY9aKQZcyjpovdH6qeCEyYZrRQDZt','TGfVzt44kg6ZJ4fUqpHzJy3Jb37YMf8pMH','TGjgvdTWWrybVLaVeFqSyVqJQWjxqRYbaK','TG9XJ75ZWcUw69W8xViEJZQ365fRupGkFP'],
                    ['v3'],
                    [4],
                    [100,10000,100,0],
                    ['100000000000000000','1', 'TF5MekHgFz6neU7zTpX4h2tha5miPDUj3z',1662825600]
                ).send({feeLimit: 10000 * 1e6,shouldPollResponse: true});

智能路由解算服务url:

名称:

https://rot.endjgfsv.link/swap/router
https://rot.endjgfsv.link/swap/router
智能路由原理图