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

列出一个代币在Meteora DLMM、Raydium CLMM与Orca Whirlpools上的集中流动性池子,按美元TVL从大到小排列。

exchange.IO(k, token)
exchange.IO(k, token, quote)

示例

  • 列出SOL/USDC美元TVL最大的5个池子。

    javascript
    function main() { var pools = exchange.IO("lp.pools", "SOL", "USDC") if (!pools) { Log("查询失败:", GetLastError()) return } Log("共", pools.length, "个池子") for (var i = 0; i < pools.length && i < 5; i++) { var p = pools[i] var grid = p.protocol == "meteora" ? "binStep " + p.binStep : "tickSpacing " + p.tickSpacing Log(p.dex, p.id, "费率", p.fee / 1e4 + "%", grid, "价格", p.price, "TVL", Math.round(p.tvlUsd), "24h成交", Math.round(p.volume24hUsd)) } }
  • 列出TVL最大的10个SOL池子的farm奖励,以及奖励是否在发放(Meteora的行没有active)。

    javascript
    function main() { var pools = exchange.IO("lp.pools", "SOL") if (!pools) { Log("查询失败:", GetLastError()) return } pools.slice(0, 10).forEach(function(p) { var names = (p.rewards || []).map(function(r) { var state = r.active === undefined ? "" : (r.active ? "(发放中)" : "(已停)") return r.symbol + state }) Log(p.dex, p.symbol, p.id, "奖励:", names.length ? names.join(", ") : "无") }) }

返回值

类型描述

array / 空值

池子数组,按tvlUsd降序(没有TVL数据的排在最后)。每行的通用字段为{id, protocol, dex, symbol, base, quote, fee, feeRate, price, reserveBase, reserveQuote, tvlQuote, tvlUsd, volume24hUsd, fees24hUsd, rewards, empty},各协议另有自己的字段,见备注。代币无法识别、请求失败时返回空值,GetLastError()中有原因。

参数

名称类型必填描述

k

string

是

固定为lp.pools,用于列出池子。

token

string

是

要查的代币:代币表里的名字、Jupiter认证代币名或mint地址,例如SOL、JUP。返回的每一行都以它为基础币。

quote

string

否

只列与这个计价币组成的池子。不传时列出与SOL、USDC、USDT组成的池子(不含代币自己)。

参考

备注

通用字段
  • id为池子地址,可以直接传给lp.pool、lp.ticks与lp.plan的pool参数;protocol为meteora、raydium或orca,dex为显示名(Meteora DLMM、Raydium CLMM、Orca Whirlpools)。
  • symbol写成代币_计价币;base、quote为两种代币的mint地址;price为1个代币值多少计价币;reserveBase、reserveQuote为池子里两种代币的余额,tvlQuote为按现价折成计价币的总值。
  • fee为基础费率,单位为百万分之一(400即0.04%,与Uniswap交易所对象的fee同单位),feeRate为同一费率的比例(0.0004)。
  • tvlUsd、volume24hUsd、fees24hUsd为美元TVL、24小时成交额与手续费,取自各协议的数据接口;某个协议的接口不可用时,它的池子改用节点的getProgramAccounts按mint在链上查找,这些行的三项为null。
  • empty为true表示空池(还没有价格),这时price、tvlQuote为null;空池不能用lp.plan建仓。

各协议的字段
protocol价格粒度另有的字段rewards的每一项
meteorabin:binStep(万分之几)、现价所在的activeIdfeeRateNow(含波动附加费的当前费率)、enabled{mint, symbol}
raydiumtick:tickSpacing、现价所在的tickliquidity(现价处的流动性)、sqrtPriceX64、enabled{mint, symbol, active, endTime}
orcatick:tickSpacing、现价所在的tickliquidity、sqrtPriceX64、adaptiveFee、fullRangeOnly{mint, symbol, active}

rewards为池子的farm奖励代币,active为true表示奖励正在发放。Orca的adaptiveFee为true表示费率随波动变化(fee为基础费率),fullRangeOnly为true表示Splash池,只能建全区间仓位。

数据来源:价格、余额从链上读(Raydium的费率取池子所属的AmmConfig账户);美元统计分别来自Meteora的数据API(dlmm.datapi.meteora.ag)、Raydium API v3(api-v3.raydium.io)与Orca的公开API(api.orca.so)。

热门代币往往有上百个池子(大多数TVL很小),按规则自动选一个用exchange.IO("lp.select")。