Curve Functions
获取流动性信息
coins
function coins(
uint256 i,
).call()
描述:获得流动性池代币地址
调用合约:Pool
参数:
i
uint256
稳定池中第 i 个币
返回值:流动性池中第 i 个代币地址
示例:获取 TUSD-USDT 中 i=0 的代币地址
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
// const coins_ = await curve_con.coins(1).call()
// console.log(tronWeb.address.fromHex(coins_))
const coins_0 = await curve_con.coins(0).call()
console.log(tronWeb.address.fromHex(coins_0))
返回
TRz7J6dD2QWxBoumfYt4b3FaiRG23pXfop
balances
function balances(
uint256 i,
).call()
描述:获得流动性池大小
调用合约:Pool
参数:
index
uint256
稳定池中第 i 个币
返回值:流动性池中第 i 个代币流动性大小
示例:获取 TUSD-USDT 中 i=0 的代币流动性大小
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const balances_ = await curve_con.balances(0).call()
console.log(balances_.toString())
// const balances_ = await curve_con.balances(1).call()
// console.log(balances_.toString())
返回
54296382252095928708770
A
function A().call()
描述:获得流动性池A值
调用合约:Pool
参数:None
返回值:流动性池A值
示例:获取TUSD-USDT池A值
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const A_ = await curve_con.A().call()
console.log(A_.toString())
返回
50
token
function token().call()
描述:获取代币流动性池LP Token地址
调用合约:Pool
参数:None
返回值:代币流动性池 LP Token 地址
示例:获取 TUSD-USDT 池 LP Token 地址
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const lp_token_ = await curve_con.token().call()
console.log(tronWeb.address.fromHex(lp_token_))
返回
TNfQAtu6egpgxsRXwYAS8JygUMqN7aEgZh
增删流动性
addLiquidity
function addLiquidity(
uint256[2] amounts,
uint256 min_mint_amount,
).send()
描述:添加流动性
调用合约:Pool
参数:
amounts
uint256[2]
要添加流动性的所有币的数量
min_mint_amount
uint256
预期获取流动性代币最小额
返回值:交易hash
示例:TUSD-USDT 池子添加流动性
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const add_liquidity_ = await curve_con.add_liquidity([100, 100], 1).send()
console.log(add_liquidity_)
removeLiquidity
function removeLiquidity(
uint256 amount,
uint256[2] min_amounts,
).send()
描述:删除流动性
调用合约:Pool
参数:
amount
uint256
要移除流动性代币的数量
min_amounts
uint256[2]
预期获取所有代币的最小数量
返回值:交易hash
示例:删除 TUSD-USDT 池子流动性
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const remove_liquidity_ = await curve_con.remove_liquidity(1000000000000,[1, 1]).send()
console.log(remove_liquidity_)
执行兑换
get_dy
function get_dy(
uint128 i,
uint128 j,
uint256 dx
).call()
描述:获取可兑换出的 Token 数量,不执行真正的兑换
调用合约:Pool
参数:
i
uint128
出售币在池子中的序号
j
uint128
购买币在池子中的序号
dx
uint256
出售币的金额
返回值:可兑换出的 Token 数量
示例: TUSD-USDT 池子,卖出第i个代币,买入第j个代币
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const get_dy_ = await curve_con.get_dy(1, 0, 100).call()
console.log(get_dy_.toString())
返回
3654197009790
exchange
function exchange(
uint128 i,
uint128 j,
uint256 dx,
uint256 min_dy,
).send()
描述:兑换
调用合约:Pool
参数:
i
uint128
出售币在池子中的序号
j
uint128
购买币在池子中的序号
dx
uint256
出售币的金额
min_dy
uint256
预期获取最小金额
返回值:交易 hash
示例: TUSD-USDT 池子,卖出第 i 个代币,买入第 j 个代币
const curve_con = await tronWeb.contract(curveAbi, config.nile.tusdusdt2pool)
const exchange_ = await curve_con.exchange(1, 0, 100, 1).send()
console.log(exchange_)
Last updated