exchange.IO("lp.pool", ...)
查询单个池子的实时状态,包括两种代币、费率、tick间距、当前tick、价格与流动性。
exchange.IO(k, poolId)示例
查看所选池子的代币顺序和价格。
javascript
function main() {
var p = exchange.IO("lp.select", "ETH", 1000, {quote: "USDC"})
var pool = exchange.IO("lp.pool", p.id)
if (!pool) {
Log("查询失败:", GetLastError())
return
}
Log(pool.token0.symbol, "/", pool.token1.symbol, "tick:", pool.tick,
"tick间距:", pool.tickSpacing)
Log("1", pool.token0.symbol, "=", pool.price0, pool.token1.symbol)
}返回值
| 类型 | 描述 |
object / 空值 |
|
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
poolId | string | 是 | 池子ID:V3、Slipstream与基础池子为池子合约地址,V4/Infinity CL为PoolId( |
参考
Uniswap / PancakeSwap Aerodrome / Velodrome exchange.IO exchange.IO("lp.pools") exchange.IO("lp.ticks") exchange.IO("lp.plan")
备注
池子按合约中的token0、token1排列(地址较小者为token0),不一定与交易对的基础币、计价币对应:token0、token1为{address, decimals, symbol},currency0、currency1为两种代币的地址(V4/Infinity CL池子中原生币为零地址);price0表示1个token0可兑换的token1数量,price1表示1个token1可兑换的token0数量;sqrtPriceX96、liquidity为池子原始数值的十进制字符串。
Uniswap、PancakeSwap:V3仅支持由本交易所工厂合约创建的池子,地址上不存在池子时报pool … not found;V4/Infinity CL仅支持不带hook的池子。
Uniswap V4:池子无需出现在lp.pools中。由于V4的PoolManager不保存PoolKey,按PoolId查询时会通过PositionManager的poolKeys反查,因此可查到在PositionManager上有过仓位或曾被lp.pools列出的池子;从未有人通过PositionManager建仓的池子无法查到,报pool … not found。手续费不设上限(V4的静态手续费最高可达100%),2%这类高费率池子同样可以查询和建仓。
PancakeSwap Infinity CL:任何已初始化的池子都能按PoolId查到,但仅支持手续费不超过1%的池子,超过时报is not initialized or its fee is above 1%。
Aerodrome、Velodrome:结果中额外包含gauge信息(与lp.pools相同:gauge、gaugeAlive、stakedShare、rewardsPerDay、rewardsPerDayUsd、rewardAprPct;rewardAprPct采用与lp.pools相同的TVL计算,同样是可能大幅波动的瞬时值,详见lp.pools页面);基础池子还额外包含储备量reserve0、reserve1及LP代币总量lpSupply。