输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所

读取一个集中流动性池子的实时状态与统计数据。

exchange.IO(k, poolId)

示例

读取池子,并由当前bin或tick推算价格。

javascript
function main() { var sel = exchange.IO("lp.select", "SOL", 100, {quote: "USDC"}) if (!sel) { Log("选池失败:", GetLastError()) return } var p = exchange.IO("lp.pool", sel.protocol + ":" + sel.id) if (!p) { Log("读取失败:", GetLastError()) return } var scale = Math.pow(10, p.decimalsX - p.decimalsY) var calc = p.protocol == "meteora" ? Math.pow(1 + p.binStep / 10000, p.activeId) * scale : Math.pow(1.0001, p.tick) * scale Log(p.dex, p.symbolX + "/" + p.symbolY, "价格", p.price, "推算", calc) Log("余额", p.reserveX, p.symbolX, p.reserveY, p.symbolY, "24h手续费", p.fees24hUsd) }

返回值

类型描述

object / 空值

通用字段为{id, protocol, dex, tokenX, tokenY, symbolX, symbolY, decimalsX, decimalsY, price, fee, feeRate, reserveX, reserveY, tvlUsd, volume24hUsd, fees24hUsd, rewards},另有协议自己的字段(同lp.pools,见备注)。地址不是LP协议程序的账户、请求失败时返回空值。

参数

名称类型必填描述

k

string

是

固定为lp.pool,用于读取池子。

poolId

string

是

池子地址(DLMM的LbPair账户、Raydium CLMM的PoolState账户或Orca的Whirlpool账户),也可以写成meteora:地址、raydium:地址、orca:地址。只写地址时按账户所属的程序认出协议。

参考

备注

X、Y是池子自己的代币顺序:price为1个X值多少Y,reserveX、reserveY为池子里两种代币的余额。lp.pools按查询的代币换算成基础币、计价币,lp.pool不换算;需要计价币/基础币的价格时按symbolX、symbolY判断朝向。空池的price为0。

各协议的字段
protocol另有的字段
meteorabinStep、activeId、feeRateNow、enabled
raydiumtickSpacing、tick、liquidity、sqrtPriceX64、enabled
orcatickSpacing、tick、liquidity、sqrtPriceX64、adaptiveFee、fullRangeOnly

含义与rewards的写法见exchange.IO("lp.pools")。

价格与区间下标的关系:DLMM第i个bin的价格为(1 + binStep/10000)^i,Raydium、Orca第i个tick的价格为1.0001^i,两者都再乘以10^(decimalsX − decimalsY)换成可读单位。