输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
预测市场
证券与期货
链上与自定义接入

列出钱包的LP仓位:区间、是否在区间内、流动性、当前数量与价值、未领手续费。

exchange.IO(k)
exchange.IO(k, filter)
exchange.IO(k, filter, wallet)

示例

只读查看任意钱包的ETH/USDC仓位:在不在区间内、价值和未领手续费。

javascript
function main() { // 不传第三个参数时查本交易所对象的钱包 var wallet = "0xc1906cb9b3e7ab44dec8b0ab6894f8ccbbe40a72" var ps = exchange.IO("lp.positions", "ETH_USDC", wallet) if (!ps) { Log("查询失败:", GetLastError()) return } ps.filter(function (p) { return !p.closed }).forEach(function (p) { Log(p.id, p.protocol, "区间", p.priceLower, "~", p.priceUpper, p.inRange ? "区间内" : "区间外", "价值:", p.value, "未领手续费:", p.feesValue) }) }

返回值

类型描述

array / 空值

仓位数组[{id, pool, protocol, symbol, fee, tickLower, tickUpper, priceLower, priceUpper, price, tick, inRange, liquidity, amountBase, amountQuote, value, feesBase, feesQuote, feesValue, closed}],字段说明见备注。节点出错时返回空值。

参数

名称类型必填描述

k

string

是

固定为lp.positions,用于查询仓位。

filter

string

否

交易对(如ETH_USDC,同时决定价格朝向)或代币(如ETH,只列含它的仓位);*或不传为全部仓位。

wallet

string

否

其它钱包地址:只读查看那个钱包的仓位;不传为本交易所对象的钱包。

参考

备注

每个仓位的字段:

字段说明
id、pool、protocol、symbol、fee仓位ID、池子ID、池子类型、交易对、费率(百万分之一)
tickLower、tickUpper、priceLower、priceUpper仓位区间(tick与价格,价格为计价币/基础币)
price、tick、inRange池子现价、当前tick、现价是否在区间内(在区间外时不赚手续费)
liquidity仓位流动性(十进制字符串)
amountBase、amountQuote、value仓位现在的两种代币数量与按计价币折算的价值
feesBase、feesQuote、feesValue未领的手续费与按计价币折算的价值
closed流动性与未领手续费都为0(已撤空、NFT还在)的仓位为true

交易对的朝向:filter写交易对时按它;否则默认稳定币为计价币,所以没写交易对时V3仓位显示为WETH_USDC这样的包装币写法。

查找方式:V3仓位由PositionManager按钱包列出(钱包里仓位NFT很多时只查最新的2000个)。V4/Infinity CL的PositionManager不能按钱包列出,靠转入钱包的NFT日志查找:节点支持查询全部历史日志时能找全,公共节点通常只能查最近一段区块,更早的仓位要用exchange.IO("lp.track", ids)登记(本进程lp.add建的会自动记住);仓位ID形如v4:123456、inf:123456。

Aerodrome、Velodrome:钱包里的Slipstream仓位直接列出;质押在gauge里的仓位NFT归gauge所有,去本进程质押过的、日志里找到的、lp.track登记过的和filter对应池子的gauge里查;基础池子查本进程建过的、lp.track登记的、filter对应的,以及代币表里常用交易对上的池子。每行另有staked(是否质押)、gauge、rewardToken(奖励币)、rewards(可领的奖励币数量)、rewardsValue(按计价币折算);基础池子另有fullRange、lpTokens、stakedLpTokens,没有tick。