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兑换简介
        • 合约
        • Functions
      • 智能路由
        • 智能路由合约
        • 智能路由解算服务
        • 智能路由兑换函数
        • 智能路由兑换开发详细步骤
    • 挖矿
      • 智能挖矿V1
      • 智能挖矿V2
      • 治理挖矿
    • Sunpump
      • Sunpump Contracts
    • Github
    • 相关合约及ABIs
  • FAQ
    • 如何在手机 TronLink APP中使用SUN.io?
    • 价格是由什么决定的?
    • 兑换支持哪些Token?
    • 为什么我的兑换会失败?
    • 关于 SUN.io 平台能量补贴的详细说明
Powered by GitBook
On this page
  • Read functions
  • getPool
  • slot0
  • tokenOfOwnerByIndex
  • positions
  1. 开发者
  2. 兑换
  3. SunSwap v3兑换简介

Functions

Read functions

getPool

function getPool(
    address tokenA,
    address tokenB,
    uint24 fee,
).call()
  • 描述:获得流动性地址

  • 调用合约:Factory

  • 返回值:pool的地址

  • 参数:

参数名
类型
描述

tokenA

address

The contract address of one token

tokenB

address

The contract address of the other token

fee

uint24

The pool's liquidity fee rate multiplied by 1,000,000

  • 示例:查找 TRX/USDT 且费率为 0.05% 的 V3 流动性地址

const factory_v3 = await tronWeb.contract(V3factoryAbi, "TLJWAScHZ4Qmk1axyKMzrnoYuu2pSLer1F");
const pooladderss_ = await factory_v3.getPool("TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf", "TYsbWxNnyTgsZaTFaue9hqpxkU3Fkco94a", 500).call();
console.log(tronWeb.address.fromHex(pooladderss_))
  • 返回

TPypbNrrRZ6FX735BY2wtKLdpnkLPoGrAo

slot0

function slot0().call()
  • 描述:获得 pool 的信息

  • 调用合约:pool 合约 (通过factory可以获得该合约地址,见getPool())

  • 返回值:

字段名
含义说明

sqrtPriceX96

当前价格的平方根(Q64.96格式),需要解码成真实价格

tick

当前的 tick 索引(与价格相关)

observationIndex

当前观测数据索引,用于时间加权平均价(TWAP)计算

observationCardinality

当前可用的观测点数量

observationCardinalityNext

将来预期的观测点数量(用于扩容)

feeProtocol

池子的手续费配置(协议级)

unlocked

表示是否当前池子被锁定(用于防止重入攻击)

  • 参数:None

  • 示例:查询主网 TRX/USDT-0.05 池子的信息

const contract_pool = await tronWeb.contract(poolAbi, "TSUUVjysXV8YqHytSNjfkNXnnB49QDvZpx")
const slot0_ = await contract_pool.slot0().call()
console.log(slot0_)
  • 返回

[
  BigNumber { _hex: '0x84b4ff29997c28cc5848ed8d', _isBigNumber: true },
  -13142,
  0,
  1,
  1,
  0,
  true,
  sqrtPriceX96: BigNumber { _hex: '0x84b4ff29997c28cc5848ed8d', _isBigNumber: true },
  tick: -13142,
  observationIndex: 0,
  observationCardinality: 1,
  observationCardinalityNext: 1,
  feeProtocol: 0,
  unlocked: true
]

tokenOfOwnerByIndex

function tokenOfOwnerByIndex(
    address owner,
    uint256 index,
).call()
  • 描述:获取用户index仓位对应的tokenId

  • 调用合约:NonfungiblePositionManager 合约

  • 返回值:tokenId

  • 参数:

参数名
类型
描述

owner

address

User's address

index

uint256

The user's nth liquidity position

  • 示例

const contract_Nonfungible = await tronWeb.contract(NonfungiblePositionManagerAbi, 'TLSWrv7eC1AZCXkRjpqMZUmvgd99cj7pPF')
const tokenId_ = await contract_Nonfungible.tokenOfOwnerByIndex('TXXXXXXXXXXXXXXXXXXXXXX',0).call();
console.log(tokenId_)
  • 返回

BigNumber { _hex: '0x0207', _isBigNumber: true }

positions

function positions(
    uint256 tokenId,
).call()
  • 描述:获取用户tokenId对应流动性

  • 调用合约:NonfungiblePositionManager 合约

  • 返回值:

字段名
含义说明

nonce

operator

tokenId授权地址

token0

池子中token0地址

token1

池子中token1地址

fee

池子fee率

tickLower

选择的position的最低值

tickUpper

选择的position的最高值

liquidity

流动性

feeGrowthInside0LastX128

feeGrowthInside1LastX128

截至对单个头寸的最后一次操作时总头寸的费用增长

tokensOwed0

tokensOwed1

截至上次计算,该头寸欠多少未收集的代币

  • 参数:

参数名
类型
描述

tokenId

uint256

The user's token ID

  • 示例

const contract_Nonfungible = await tronWeb.contract(NonfungiblePositionManagerAbi, 'TLSWrv7eC1AZCXkRjpqMZUmvgd99cj7pPF')
const pos_ = await contract_Nonfungible.positions(1).call()
console.log(pos_)
  • 返回

[
  BigNumber { _hex: '0x00', _isBigNumber: true },
  '410000000000000000000000000000000000000000',
  '4138d5a8e87a4bcc2f822786a9b1134a3b7836e382',
  '41646dc03a0884cd4b5254297a04a58a56499f242d',
  3000,
  -283380,
  -269520,
  BigNumber { _hex: '0x134c8d6d899dd330', _isBigNumber: true },
  BigNumber { _hex: '0x00', _isBigNumber: true },
  BigNumber { _hex: '0x01bf24ecb68662e15f15eebe', _isBigNumber: true },
  BigNumber { _hex: '0x00', _isBigNumber: true },
  BigNumber { _hex: '0x00', _isBigNumber: true },
  nonce: BigNumber { _hex: '0x00', _isBigNumber: true },
  operator: '410000000000000000000000000000000000000000',
  token0: '4138d5a8e87a4bcc2f822786a9b1134a3b7836e382',
  token1: '41646dc03a0884cd4b5254297a04a58a56499f242d',
  fee: 3000,
  tickLower: -283380,
  tickUpper: -269520,
  liquidity: BigNumber { _hex: '0x134c8d6d899dd330', _isBigNumber: true },
  feeGrowthInside0LastX128: BigNumber { _hex: '0x00', _isBigNumber: true },
  feeGrowthInside1LastX128: BigNumber { _hex: '0x01bf24ecb68662e15f15eebe', _isBigNumber: true },
  tokensOwed0: BigNumber { _hex: '0x00', _isBigNumber: true },
  tokensOwed1: BigNumber { _hex: '0x00', _isBigNumber: true }
]

Previous合约Next智能路由

Last updated 3 days ago