跳到主要内容

将 SwapX V3 头寸封装为 ERC721 非同质化代币接口

函数

构造函数

  function constructor(
) public

positions

  function positions(
uint256 tokenId
) external view returns (uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1)

返回与给定 tokenId 关联的头寸信息。

注意: 如果 tokenId 无效,则会抛出错误。

参数:

名称类型描述
tokenIduint256表示头寸的代币 ID

返回值:

名称类型描述
nonceuint96许可的随机数
operatoraddress被批准进行支出的地址
token0address特定池子的 token0 地址
token1address特定池子的 token1 地址
feeuint24与池子相关的手续费
tickLowerint24头寸的 tick 范围下限
tickUpperint24头寸的 tick 范围上限
liquidityuint128头寸的流动性
feeGrowthInside0LastX128uint256该头寸上次操作时 token0 的手续费增长
feeGrowthInside1LastX128uint256该头寸上次操作时 token1 的手续费增长
tokensOwed0uint128截至上次计算时头寸未领取的 token0 数量
tokensOwed1uint128截至上次计算时头寸未领取的 token1 数量

mint

  function mint(
struct INonfungiblePositionManager.MintParams params
) external returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)

创建一个新的头寸,并将其包装成 NFT。

当池子已存在并且已初始化时调用。如果池子已创建但未初始化,则不会有对应的方法,因此默认假设池子已初始化。

参数:

名称类型描述
paramsstruct INonfungiblePositionManager.MintParams铸造头寸所需的参数,在 calldata 中编码为 MintParams

返回值:

名称类型描述
tokenIduint256表示已铸造头寸的代币 ID
liquidityuint128该头寸的流动性
amount0uint256token0 的数量
amount1uint256token1 的数量

tokenURI

  function tokenURI(
uint256 tokenId
) public view returns (string)

Returns a URI describing a particular token ID

参数:

名称类型描述
tokenIduint256The ID of the token that represents the minted position

返回值:

返回描述指定 tokenId 的 URI。

baseURI

  function baseURI(
) public returns (string)

increaseLiquidity

  function increaseLiquidity(
struct INonfungiblePositionManager.IncreaseLiquidityParams params
) external returns (uint128 liquidity, uint256 amount0, uint256 amount1)

增加头寸中的流动性,所需的代币由 msg.sender 提供。

参数:

名称类型描述
paramsstruct INonfungiblePositionManager.IncreaseLiquidityParams需要增加流动性的代币ID

返回值:

名称类型描述
liquidityuint128增加后头寸的流动性
amount0uint256达到增加流动性所需的 token0 数量
amount1uint256达到增加流动性所需的 token1 数量

decreaseLiquidity

  function decreaseLiquidity(
struct INonfungiblePositionManager.DecreaseLiquidityParams params
) external returns (uint256 amount0, uint256 amount1)

减少头寸中的流动性,并将其记入该头寸的欠款中.

参数:

名称类型描述
paramsstruct INonfungiblePositionManager.DecreaseLiquidityParams需要减少流动性的代币 ID

返回值:

名称类型描述
amount0uint256头寸欠款中记录的 token0 数量
amount1uint256头寸欠款中记录的 token1 数量

collect

  function collect(
struct INonfungiblePositionManager.CollectParams params
) external returns (uint256 amount0, uint256 amount1)

将指定头寸中最多的欠费收集并转给接收者。

参数:

名称类型描述
paramsstruct INonfungiblePositionManager.CollectParams需要收集代币的 NFT ID

返回值:

名称类型描述
amount0uint256收集到的 token0 的费用数量
amount1uint256收集到的 token1 的费用数量

burn

  function burn(
uint256 tokenId
) external

销毁指定的 tokenId,将其从 NFT 合约中删除。销毁前,必须清空所有流动性,并收集所有欠款。

参数:

名称类型描述
tokenIduint256需要被销毁的代币 ID

_getAndIncrementNonce

  function _getAndIncrementNonce(
) internal returns (uint256)

getApproved

  function getApproved(
) public view returns (address)

返回 tokenId 代币被批准的账户。 Requirements:

  • tokenId 必须存在。

_approve

  function _approve(
) internal

重写 _approve 方法,使用头寸中的操作员,该操作员与头寸许可随机数打包在一起。