メインコンテンツまでスキップ

レンジコンバーター

FullRangeConvertorV2

FullRangeConvertorV2 は V3 の狭いレンジポジションをフルレンジへ変換し、同一トランザクション内で新しいポジションを BDexV3LiquidityLocker にロックします。

convertToFullRangeAndLock

function convertToFullRangeAndLock(
LockParams lockParams,
SlippageChecks slippageParams
) external payable returns (
uint256 newLockId,
uint256 amountLiquidity0,
uint256 amountLiquidity1,
uint256 refund0,
uint256 refund1
);

呼び出し前に、NFT Owner は lockParams.nft_idFullRangeConvertorV2 に承認する必要があります。

lockParams

struct LockParams {
INonfungiblePositionManager nftPositionManager;
uint256 nft_id;
address dustRecipient;
address owner;
address additionalCollector;
address collectAddress;
uint256 unlockDate;
uint16 countryCode;
string feeName;
bytes[] r;
}
パラメーター説明
nftPositionManager元ポジション NFT の Position Manager(BDEX)。Locker の許可リスト登録が必要です。
nft_id変換してロックする NFT ID。
dustRecipient新しい流動性に使われなかった token0/token1 と、ロック時の初回回収分を受け取るアドレス。
owner新しいロックの Owner。
additionalCollector追加で手数料回収を実行できる任意アドレス。
collectAddress自動手数料回収の受取先。ゼロアドレスは使用できません。
unlockDate秒単位の将来の解除時刻。永久ロックには ETERNAL_LOCK を使用します。
countryCodeLocker が対応する国・地域コード。
feeNameLocker の手数料オプション名。既定値は DEFAULT です。
r動的手数料の署名パラメーター。使用しない場合は空配列 [] を渡します。

slippageParams

struct SlippageChecks {
uint256 amount0LiquidityMin;
uint256 amount1LiquidityMin;
uint256 amount0RefundMin;
uint256 amount1RefundMin;
}
パラメーター説明
amount0LiquidityMinフルレンジ NFT の発行に使う token0 の最小量。狭いレンジからの変換では 0 より大きい値が必要です。
amount1LiquidityMinフルレンジ NFT の発行に使う token1 の最小量。狭いレンジからの変換では 0 より大きい値が必要です。
amount0RefundMin変換後に dustRecipient へ返す token0 の最小量。通常は 0
amount1RefundMin変換後に dustRecipient へ返す token1 の最小量。通常は 0

amount0RefundMinamount1RefundMin は最小返金量です。最大スリッページや最大損失を表す値ではありません。

msg.value

feeName が選択する固定手数料をネイティブトークンで支払う場合、msg.value はその flatFee と完全に一致する必要があります。

現在の Converter は ERC20 固定手数料に対応していません。flatFeeToken != address(0) かつ flatFee > 0 のオプションは使用できません。

戻り値

戻り値説明
newLockId新しく作成された Locker の Lock ID。
amountLiquidity0新しいフルレンジ流動性に実際に使われた token0 の量。
amountLiquidity1新しいフルレンジ流動性に実際に使われた token1 の量。
refund0dustRecipient に返金された token0 の量。
refund1dustRecipient に返金された token1 の量。

元 NFT がすでにフルレンジの場合、再発行を省略して直接ロックします。この場合、流動性量と返金量はすべて 0 を返します。

getRangeAndMaxTick

function getRangeAndMaxTick(
INonfungiblePositionManager nftPositionManager,
uint256 nftId
) external view returns (
bool isFullRange,
int24 maxTick
);
パラメーターまたは戻り値説明
nftPositionManagerNFT が属する Position Manager。
nftId照会する NFT ID。
isFullRangeNFT がすでにフルレンジポジションかどうか。
maxTick現在の手数料ティアで使用できる最大 Tick。フルレンジは [-maxTick, maxTick] です。

tickSpacingToMaxTick

function tickSpacingToMaxTick(
int24 tickSpacing
) external pure returns (int24 maxTick);
パラメーターまたは戻り値説明
tickSpacingPool の手数料ティアに対応する Tick 間隔。
maxTickその Tick 間隔で使用できる最大 Tick。