V2 Functions

获取流动性信息

getPair

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

  • 调用合约:Factory

  • 参数:

参数名
类型
描述

tokenA

address

tokenA 的地址

tokenB

address

tokenB 的地址

  • 返回值:pool 的地址

  • 示例:查找 TRX/USDT 的池子地址

const factory_v2 = await tronWeb.contract(V2factoryAbi, config.nile.v2Factory)
const pairaddress_ = await factory_v2.getPair(config.nile.wtrxToken, config.nile.usdtToken).call()
console.log(tronWeb.address.fromHex(pairaddress_))
  • 返回

TKioHQsGLkaEWwBwkUB2T4Rm6nwGATtJyh

增删流动性

addLiquidity

function addLiquidity(
    address tokenA,
    address tokenB,
    uint256 amountADesired,
    uint256 amountBDesired,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline,
).send()
  • 描述:添加流动性(tokenA和tokenB中不包含TRX)

  • 调用合约:Router

  • 参数:

参数名
类型
描述

tokenA

address

tokenA 的地址

tokenB

address

tokenB 的地址

amountADesired

uint256

tokenA预期添加的数量

amountBDesired

uint256

tokenB预期添加的数量

amountAMin

uint256

tokenA添加的数量最小接受额

amountBMin

uint256

tokenB添加的数量最小接受额

to

address

lp token 的接收者

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:TUSD/USDT 池子添加流动性

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const addLiquidity_t = await swap_v2.addLiquidity(config.nile.usdtToken, config.nile.tusdToken, 25000000, 1000000000000000, 1, 1, "TXXXXXXXXXXXXXXXXXXXX",Math.floor(Date.now() / 1000 + 86400)).send()
console.log(addLiquidity_t)

addLiquidityETH

function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
).send()
  • 描述:添加流动性(其中一个代币是TRX)

  • 调用合约:Router

  • 参数:

参数名
类型
描述

token

address

token 的地址

amountTokenDesired

uint256

token 预期添加的数量

amountTokenMin

uint256

token 添加的数量最小接受额

amountETHMin

uint256

TRX 添加的数量最小接受额

to

address

lp token 的接收者

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:TRX/USDT 池子添加流动性

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const addLiquidityETH_t = await swap_v2.addLiquidityETH(config.nile.usdtToken, 100, 1, 1, "TXXXXXXXXXXXXXXXXXXX",Math.floor(Date.now() / 1000 + 86400)).send({callValue:1000000})
console.log(addLiquidityETH_t)

removeLiquidity

function removeLiquidity(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline,
).send()
  • 描述:移除流动性(tokenA和tokenB中不包含TRX)

  • 调用合约:Router

  • 参数:

参数名
类型
描述

tokenA

address

tokenA 的地址

tokenB

address

tokenB 的地址

liquidity

uint256

移除的流动性

amountAMin

uint256

预期获得tokenA数量的最小值

amountBMin

uint256

预期获得tokenB数量的最小值

to

address

token接收地址

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:TUSD/USDT 池子移除流动性

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const removeLiquidity_t = await swap_v2.removeLiquidity(config.nile.usdtToken,config.nile.tusdToken, 1, 1, 1, 'TXXXXXXXXXXXXXXXXXXXX',Math.floor(Date.now() / 1000 + 86400)).send()
console.log(removeLiquidity_t)

removeLiquidityETH

function removeLiquidityETH(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
).send()
  • 描述:移除流动性(其中一个代币是TRX)

  • 调用合约:Router

  • 参数:

参数名
类型
描述

token

address

token 的地址

liquidity

uint256

移除的流动性

amountTokenMin

uint256

预期获得token数量的最小值

amountETHMin

uint256

预期获得TRX数量的最小值

to

address

token接收地址

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:TRX/USDT 池子移除流动性

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const removeLiquidityETH_t = await swap_v2.removeLiquidityETH(config.nile.usdtToken,1, 1, 1, 'TXXXXXXXXXXXXXXXXXXXX',Math.floor(Date.now() / 1000 + 86400)).send()
console.log(removeLiquidityETH_t)

执行兑换

swapExactTokensForTokens

function swapExactTokensForTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] path,
    address to,
    uint256 deadline,
).send()
  • 描述:卖出 Token 买入 Token

  • 调用合约:Router

  • 参数:

参数名
类型
描述

amountIn

uint256

出售币数量

amountOutMin

uint256

预期购买币最小值

path

address[]

兑换路径

to

address

收款地址

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:USDT 兑换 SUN

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const swapExactTokensForTokens_t = await swap_v2.swapExactTokensForTokens(20000000, 0, [config.nile.usdtToken, config.nile.sunToken], "TXXXXXXXXXXXXXXXXXXX", Math.floor(Date.now() / 1000 + 86400)).send()
console.log(swapExactTokensForTokens_t)

swapExactETHForTokens

function swapExactETHForTokens(
    uint256 amountOutMin,
    address[] path,
    address to,
    uint256 deadline,
).send()
  • 描述:卖出 TRX 买入 Token

  • 调用合约:Router

  • 参数:

参数名
类型
描述

amountOutMin

uint256

预期购买币最小值

path

address[]

兑换路径

to

address

收款地址

deadline

uint256

时间期限

  • 返回值:交易hash

  • 示例:TRX 兑换 USDT

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const swapExactETHForTokens_t = await swap_v2.swapExactETHForTokens(1, [config.nile.wtrxToken, config.nile.usdtToken], "TXXXXXXXXXXXXXXXXXXXX", Math.floor(Date.now() / 1000 + 86400)).send({callValue:1000000})
console.log(swapExactETHForTokens_t)

swapExactTokensForETH

function swapExactTokensForETH(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] path,
    address to,
    uint256 deadline,
).send()
  • 描述:卖出 Token 买入 TRX

  • 调用合约:Router

  • 参数:

参数名
类型
描述

amountIn

uint256

出售币数量

amountOutMin

uint256

预期购买TRX最小值

path

address[]

兑换路径

to

address

收款地址

deadline

uint256

时间期限

  • 返回值:交易 hash

  • 示例:USDT 兑换 TRX

const swap_v2 = await tronWeb.contract(V2RouterAbi, config.nile.routerV2)
const swapExactTokensForETH_t = await swap_v2.swapExactTokensForETH(20000000, 0, [config.nile.usdtToken, config.nile.wtrxToken], "TXXXXXXXXXXXXXXXXXXXX", Math.floor(Date.now() / 1000 + 86400)).send()
console.log(swapExactTokensForETH_t)

Last updated