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