Skip to main content

V3 Position Manager

NonfungiblePositionManager 以 ERC-721 NFT 的形式管理 V3 流动性仓位。每个仓位代表流动性池、价格范围和流动性数量的唯一组合。

核心函数

mint

创建新的流动性仓位并铸造 NFT。

increaseLiquidity

向现有仓位添加更多流动性。

decreaseLiquidity

从仓位中移除流动性。代币由合约暂时持有,直到调用 collect() 后才会发放。

collect

收集仓位应得的代币(来自已移除的流动性和/或赚取的手续费)。
amount0Maxamount1Max 设为 type(uint128).max 可收集所有应得代币。

positions

通过 token ID 查询仓位的完整状态。

burn

销毁空的仓位 NFT(在所有流动性已移除且手续费已收集之后)。

ABI

代币授权

在铸造或增加流动性之前,需要将两个代币授权给 Position Manager:
涉及原生 KAS 的仓位,通过 msg.value 发送 KAS 即可,无需授权 WKAS。

Multicall

Position Manager 支持 multicall() 将多个操作批量打包到一笔交易中:
常见用例:在一笔交易中同时执行移除流动性和收集代币。