ConvexSpell
The ConvexSpell
contract is a factory contract that defines how the Blueberry Protocol interacts with Convex pools. This contract handles adding strategies, opening and closing positions, and managing collateral tokens. It inherits from the BasicSpell
contract and utilizes the OpenZeppelin's SafeERC20Upgradeable library.
Variables
wConvexPools
: Address of Wrapped Convex Pools.crvOracle
: Address of the Curve Oracle.CVX
: Address of the CVX token.
Functions
initialize
Initializes the contract with the necessary parameters.
Parameters:
bank_
: Address of the Bank contract.werc20_
: Address of the WERC20 contract.weth_
: Address of the WETH contract.wConvexPools_
: Address of the Wrapped Convex Pools contract.crvOracle_
: Address of the Curve Oracle contract.
addStrategy
Adds a new strategy to the spell.
Parameters:
crvLp
: Address of the CRV LP token for the given strategy.maxPosSize
: The maximum position size in USD (1e18-based) for the given strategy.
openPositionFarm
Opens a position and adds liquidity to a Curve pool with two underlying tokens while staking to the Curve gauge.
Parameters:
param
: AnOpenPosParam
struct containing parameters for the position.minLPMint
: Minimum LP token amount to be minted for slippage control.
closePositionFarm
Closes a position, removes liquidity from the Curve pool, and repays the debt.
Parameters:
param
: AClosePosParam
struct containing parameters for the position.swapRouter
: An instance of the UniswapV2Router02 contract.swapPath
: A 2D array of addresses representing the path to swap reward tokens for debt tokens.
Structs
OpenPosParam
Struct containing parameters for opening a position.
Fields:
strategyId
: The ID of the strategy.collToken
: Address of the collateral token.collAmount
: The amount of collateral tokens.borrowToken
: Address of the borrowed token.borrowAmount
: The amount of borrowed tokens.farmingPoolId
: The ID of the farming pool.
ClosePosParam
Struct containing parameters for closing a position.
Fields:
strategyId
: The ID of the strategy.collToken
: Address of the collateral token.amountPosRemove
: The amount of position to be removed.amountShareWithdraw
: The amount of shares to be withdrawn.borrowToken
: Address of the borrowed token.amountRepay
: The amount of debt to be repaid.
Last updated