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