V1 Functions

获取流动性信息

getExchange

function getExchange(
    address token,
).call()
  • 描述:获得流动性池地址

  • 调用合约:Factory

  • 参数:

参数名
类型
描述

token

address

代币地址

  • 返回值:pool 的地址

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

const factory_v1 = await tronWeb.contract(V1factoryAbi, config.nile.routerV1)
const exchangeaddress_ = await factory_v1.getExchange(config.nile.usdtToken).call()
console.log(tronWeb.address.fromHex(exchangeaddress_)) //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb
  • 返回

TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb

增删流动性

addLiquidity

function addLiquidity(
    uint256 min_liquidity,
    uint256 max_tokens,
    uint256 deadline,
).send()
  • 描述:添加流动性

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

min_liquidity

uint256

预期获取最小流动性

max_tokens

uint256

要添加流动性的最大金额

deadline

uint256

时间期限

  • 返回值:交易hash

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

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const addLiquidity_t = await swap_v1.addLiquidity(10,10000, Math.floor(Date.now() / 1000 + 86400)).send({callValue:100})
console.log(addLiquidity_t)

removeLiquidity

function removeLiquidity(
    uint256 amount,
    uint256 min_trx,
    uint256 min_tokens,
    uint256 deadline,
).send()
  • 描述:移除流动性

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

amount

uint256

移除流动性的数量

min_trx

uint256

预期获取最小的TRX数量

min_token

uint256

预期获取最小token数量

deadline

uint256

时间期限

  • 返回值:交易hash

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

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const removeLiquidity_t = await swap_v1.removeLiquidity(500,1, 1,Math.floor(Date.now() / 1000 + 86400)).send()
console.log(removeLiquidity_t)

执行兑换

trxToTokenSwapInput

function trxToTokenSwapInput(
    uint256 min_tokens,
    uint256 deadline,
).send()
  • 描述:卖出 TRX 买入 Token (指定卖出 TRX 的数量)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

min_tokens

uint256

预期购买金额最小值

deadline

uint256

时间期限

  • 返回值:交易 hash

  • 示例:TRX 兑换 USDT

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const trxToTokenSwapInput_t = await swap_v1.trxToTokenSwapInput(10, Math.floor(Date.now() / 1000 + 86400)).send({callValue:1})
console.log(trxToTokenSwapInput_t)

tokenToTrxSwapInput

function tokenToTrxSwapInput(
    uint256 tokens_sold,
    uint256 min_trx,
    uint256 deadline,
).send()
  • 描述:卖出 Token 买入 TRX (指定卖出 Token 的数量)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

tokens_sold

uint256

出售代币的数量

min_trx

uint256

预期购买TRX的最小额度

deadline

uint256

时间期限

  • 返回值:交易 hash

  • 示例:USDT 兑换 TRX

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const tokenToTrxSwapInput_t = await swap_v1.tokenToTrxSwapInput(1000000, 1, Math.floor(Date.now() / 1000 + 86400)).send() // minTRX不能为0
console.log(tokenToTrxSwapInput_t)

trxToTokenSwapOutput

function trxToTokenSwapOutput(
    uint256 tokens_bought,
    uint256 deadline,
).send()
  • 描述:卖出 TRX 买入 Token (指定买入 Token 的数量)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

tokens_bought

uint256

预期购买金额

deadline

uint256

时间期限

  • 返回值:交易 hash

  • 示例:TRX 兑换 USDT

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const trxToTokenSwapOutput_t = await swap_v1.trxToTokenSwapOutput(10, Math.floor(Date.now() / 1000 + 86400)).send({callValue:100})
console.log(trxToTokenSwapOutput_t)

tokenToTrxSwapOutput

function tokenToTrxSwapOutput(
    uint256 trx_bought,
    uint256 max_tokens,
    uint256 deadline,
).send()
  • 描述:卖出 Token 买入 TRX (指定买入 TRX 的数量)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

trx_bought

uint256

预期购买 TRX 的额度

max_tokens

uint256

出售代币的最大数量

deadline

uint256

时间期限

  • 返回值:交易 hash

  • 示例:USDT 兑换 TRX

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const tokenToTrxSwapOutput_t = await swap_v1.tokenToTrxSwapOutput(100, 100000000, Math.floor(Date.now() / 1000 + 86400)).send()
console.log(tokenToTrxSwapOutput_t)

trxToTokenTransferInput

function trxToTokenTransferInput(
    uint256 min_tokens,
    uint256 deadline,
    address recipient,
).send()
  • 描述:卖出 TRX 买入 Token (指定收款地址)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

min_token

uint256

预期购买金额最小值

deadline

uint256

时间期限

recipient

address

收款地址

  • 返回值:交易 hash

  • 示例:TRX 兑换 USDT

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const trxToTokenTransferInput_t = await swap_v1.trxToTokenTransferInput(10, Math.floor(Date.now() / 1000 + 86400), "TXXXXXXXXXXXXXXXXXX").send({callValue:1})
console.log(trxToTokenTransferInput_t)

tokenToTrxTransferInput

function trxToTokenTransferInput(
    uint256 tokens_sold,
    uint256 min_trx,
    uint256 deadline,
    address recipient,
).send()
  • 描述:卖出 Token 买入 TRX (指定收款地址)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

tokens_sold

uint256

出售代币的数量

min_trx

uint256

预期购买TRX的最小额度

deadline

uint256

时间期限

recipient

address

收款地址

  • 返回值:交易 hash

  • 示例:USDT 兑换 TRX

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const tokenToTrxTransferInput_t = await swap_v1.tokenToTrxTransferInput(100000, 1, Math.floor(Date.now() / 1000 + 1000), "TXXXXXXXXXXXXXXXXXX").send() //minTRX 不能为0
console.log(tokenToTrxTransferInput_t)

tokenToTokenSwapInput

function tokenToTokenSwapInput(
    uint256 tokens_sold,
    uint256 min_tokens_bought,
    uint256 min_trx_bought,
    uint256 deadline,
    address token_addr,
).send()
  • 描述:卖出 Token 买入 Token (以 TRX 为桥接)

  • 调用合约:pool 合约

  • 参数:

参数名
类型
描述

tokens_sold

uint256

出售代币的数量

min_tokens_bought

uint256

预期购买代币的金额最小值

min_trx_bought

uint256

预期购买TRX的金额最小值

deadline

uint256

时间期限

token_addr

address

买入的代币地址

  • 返回值:交易 hash

  • 示例:USDT 兑换 SUN

const swap_v1 = await tronWeb.contract(V1Abi, "TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb") //TKxUU8588Zdt44Ues3p62gULLXtgTJ2CGb 为兑换池地址
const tokenToTokenSwapInput_t = await swap_v1.tokenToTokenSwapInput(1000000, 1, 1, Math.floor(Date.now() / 1000 + 86400), config.nile.sunToken).send()
console.log(tokenToTokenSwapInput_t)

Last updated