v4-multicurve-auction

📁 rustydotwtf/doppler-skills 📅 10 days ago
1
总安装量
1
周安装量
#49014
全站排名
安装命令
npx skills add https://github.com/rustydotwtf/doppler-skills --skill v4-multicurve-auction

Agent 安装分布

opencode 1
claude-code 1

Skill 文档

Source References: Code citations link to raw GitHub files pinned to commit 988dab4. To fetch specific lines: curl -s "<url>" | sed -n 'START,ENDp'

V4 Multicurve Auction

A V4 multicurve auction distributes tokens across multiple independent curves with shares-based allocation. Unlike V4 dynamic auctions, multicurve positions are static (no rebalancing). Supports both Migrable and Locked pool modes.

Key Contracts

Contract Path Purpose
UniswapV4MulticurveInitializer src/initializers/UniswapV4MulticurveInitializer.sol Main multicurve initializer
Multicurve src/libraries/Multicurve.sol Position/curve calculations (library)
UniswapV4MulticurveMigrator src/migrators/UniswapV4MulticurveMigrator.sol Migration with offset adjustment

Multicurve vs V4 Dynamic (Comparison)

Aspect V4 Multicurve V4 Dynamic
Curves Multiple independent Single with 3 slugs
Rebalancing None (static) Every epoch
Configuration Shares-based Gamma/epoch-based
Position count Fixed at init Variable
Tick tracker None tickAccumulator
Exit condition Price at far tick Proceeds thresholds
Locked mode With beneficiaries N/A

Quick Facts

Fact Value Source
Precision constant WAD = 1e18 Multicurve.sol:16
Share validation Sum must equal WAD exactly Multicurve.sol:99
Position salt curveIndex * numPositions + positionIndex Multicurve.sol:219
Pool status enum Uninitialized, Initialized, Locked, Exited UniswapV4MulticurveInitializer.sol:57-62

Curve Structure

struct Curve {
    int24 tickLower;
    int24 tickUpper;
    uint16 numPositions;
    uint256 shares;    // Must sum to WAD across all curves
}

Source: Multicurve.sol (lines 29-34)

Two Pool Modes

Mode Condition Exit Allowed Use Case
Migrable beneficiaries.length == 0 Yes (at far tick) Standard token launches
Locked beneficiaries.length > 0 No (permanent) Fee-sharing arrangements

Source: UniswapV4MulticurveInitializer.sol (lines 189)

Parameters Quick Reference

Parameter Type Description
curves[] Curve[] Array of independent curve configs
curves[i].shares uint256 WAD fraction (all must sum to 1e18)
curves[i].numPositions uint16 Positions within this curve
beneficiaries[] BeneficiaryData[] If empty: Migrable; if set: Locked
fee uint24 Pool fee tier
tickSpacing int24 Pool tick spacing

Detailed parameters

Pool Status States

Status Condition Exit Allowed
Uninitialized Before init N/A
Initialized No beneficiaries Yes (at far tick)
Locked With beneficiaries No (permanent)
Exited After exitLiquidity N/A

Source: UniswapV4MulticurveInitializer.sol (lines 57-62)

Common Tasks

Related Skills