exchange.IO("lp.collect", ...)
领取仓位累积的手续费,不动本金;多个仓位合成一笔交易。
exchange.IO(k, positionIds)
exchange.IO(k, positionIds, sell)示例
未领手续费超过5 USDC的仓位一起领取。
javascript
function main() {
var ids = exchange.IO("lp.positions").filter(function (p) {
return p.feesValue > 5
}).map(function (p) { return p.id })
if (ids.length == 0) {
return
}
var r = exchange.IO("lp.collect", ids)
if (!r) {
Log("领取失败:", GetLastError())
return
}
r.positions.forEach(function (p) {
Log(p.id, p.symbol, "手续费:", p.feesBase, "+", p.feesQuote)
})
}返回值
| 类型 | 描述 |
object / 空值 |
|
参数
| 名称 | 类型 | 必填 | 描述 |
k | string | 是 | 固定为 |
positionIds | string / number / array | 是 | 仓位ID:单个ID(字符串或数字)或ID数组,如 |
sell | bool | 否 | 为 |
参考
Uniswap / PancakeSwap Aerodrome / Velodrome exchange.IO exchange.IO("lp.positions") exchange.IO("lp.decrease") exchange.IO("lp.remove") exchange.IO("lp.claim")
备注
返回字段:txHash为交易哈希;positions逐个仓位给出撤出的本金principalBase、principalQuote,领到的手续费feesBase、feesQuote,以及实际到账receivedBase、receivedQuote(本金加手续费);sells为卖回计价币的市价单[{symbol, qty, txHash}],某笔卖出失败时该项为{symbol, qty, error},不影响其它;不卖时为空数组。数量都是可读单位,朝向按仓位的交易对(默认稳定币为计价币)。领取手续费时本金为0。
多个仓位尽量合成一笔交易;分几笔交易时(如V3与V4/Infinity CL仓位一起传,两者的PositionManager不同)txHash为最后一笔,另有txHashes列出全部。
Aerodrome、Velodrome:质押着的仓位不收交易手续费(归投票人),领取时报错并提示用exchange.IO("lp.claim")领奖励;基础池子用池子的claimFees领取钱包里LP代币累积的手续费,每个池子一笔交易。