ERC-4626 vaults that deposits Curve 3Pool LP tokens (3Crv) in a Curve 3Pool-based Metapool, eg musd3Crv; deposits the Metapool LP token in a Convex pool; and stakes the Convex LP token, eg cvxmusd3Crv, for CRV and CVX rewards.
The Convex rewards are swapped for a Curve 3Pool token, eg DAI, USDC or USDT, using the Liquidator module and donated back to the vault. On donation back to the vault, the DAI, USDC or USDT is deposited into the underlying Curve Metapool; the Curve Metapool LP token is deposited into the corresponding Convex pool and the Convex LP token staked.
Scale of the metapool liquidity provider token. eg 1e18 if 18 decimal places.
basePool
Curve's 3Pool used as a base pool by the Curve metapools.
booster
Convex's Booster contract that contains the Curve.fi LP pools.
convexPoolId
Convex's pool identifier. eg 14 for the musd3CRV pool.
baseRewardPool
Convex's base rewards contract for staking Convex's LP token. eg staking cvxmusd3CRV
DAI
USDC
USDT
redeemSlippage
Redeem slippage in basis points i.e. 1% = 100
depositSlippage
Deposit slippage in basis points i.e. 1% = 100
withdrawSlippage
Withdraw slippage in basis points i.e. 1% = 100
mintSlippage
Mint slippage in basis points i.e. 1% = 100
Functions
liquidateVault
Governor liquidates all the vault's assets and send to the governor. Only to be used in an emergency. eg whitehat protection against a hack.
Parameters
Name
Type
Description
minAssets
uint256
Minimum amount of asset tokens to receive from removing liquidity from the Curve 3Pool. This provides sandwich attack protection.
resetAllowances
Approves Curve's 3Pool contract to transfer assets (DAI, USDC or USDT) from this vault. Also approves the underlying Meta Vault to transfer 3Crv from this vault.
setDonateToken
Vault manager or governor sets the token the rewards are swapped for and donated back to the vault.
Parameters
Name
Type
Description
__donateToken
address
a token in the 3Pool (DAI, USDC or USDT).
setRedeemSlippage
Governor function to set redeem slippage.
Parameters
Name
Type
Description
_slippage
uint256
Redeem slippage to apply as basis points i.e. 1% = 100
setDepositSlippage
Governor function to set deposit slippage.
Parameters
Name
Type
Description
_slippage
uint256
Deposit slippage to apply as basis points i.e. 1% = 100
setWithdrawSlippage
Governor function to set withdraw slippage.
Parameters
Name
Type
Description
_slippage
uint256
Withdraw slippage to apply as basis points i.e. 1% = 100
setMintSlippage
Governor function to set mint slippage.
Parameters
Name
Type
Description
_slippage
uint256
Mint slippage to apply as basis points i.e. 1% = 100