V3LPVault4626
The V3LPVault4626 is the core component of Peridot's PancakeSwap Boosted Markets. It wraps a Concentrated Liquidity (CL) position (NFT) from PancakeSwap V3 into a fungible ERC-20 token (Vault Share) that can be used as collateral.
🛠️ Key User Functions
✅ depositDual(DepositParams calldata params)
The primary way to mint vault shares. Since V3 positions consist of two tokens (e.g., USDC and AUSD), users must supply both in the correct ratio.
Parameters (
DepositParamsstruct):amount0Desired,amount1Desired: Amounts of tokens to supply.amount0Min,amount1Min: Slippage protection.receiver: Address receiving the shares.deadline: Timestamp expiration.
Returns:
uint256 shares(Amount of vault shares minted).
✅ withdrawDual(WithdrawParams calldata params)
The primary way to burn shares and retrieve underlying assets.
Parameters (
WithdrawParamsstruct):shares: Amount of shares to burn.amount0Min,amount1Min: Slippage protection for withdrawals.receiver: Address receiving the withdrawn tokens.
Returns:
amount0,amount1(Amounts of tokens returned).
⚙️ Mechanics
Auto-Compounding
The vault has a harvestAndCompound() function (callable by a keeper or owner) that:
Collects accrued trading fees from the V3 pool.
Optionally swaps rewards if needed.
Re-adds the fees as new liquidity into the existing position.
Pricing & Security
TWAP: The vault relies on a
V3LPVaultOraclethat checks Time-Weighted Average Prices to ensure the LP position value isn't manipulated via flash loans.Deviation Checks: Prevents deposits/withdrawals if the spot price deviates too far from the TWAP.
Inflation Protection
To prevent "donation attacks," the vault enforces a minimum "Dead Seed" balance. A small amount of shares must be permanently locked at the dead address (0x...dEaD) before users can deposit.
Last updated