SommelierStEthDepositTurboStEthStrategy
Overview
The SommelierStEthDepositTurboStEthStrategy contract is a specialized strategy that supplies an underlying token into a generic Sommelier Vault to earn yield. It handles conversions between ETH and stETH using Curve pools.
Constants
address public constant stEth = STETH_MAINNET; // Ethereum mainnet's StETH Token
ICurveLpPool public constant pool = ICurveLpPool(CURVE_ETH_STETH_POOL_MAINNET); // Curve ETH-stETH poolState Variables
No additional state variables beyond those inherited from BaseSommelierStrategy.
Functions
Constructor
constructor() initializerEmpty constructor marked as initializer.
Initialization Functions
initialize
function initialize(
IMaxApyVault _vault,
address[] calldata _keepers,
bytes32 _strategyName,
address _strategist,
ICellar _cellar
) public override initializerInitializes the strategy with required components.
Parameters:
_vault: MaxApy vault address_keepers: Array of keeper addresses_strategyName: Name of the strategy_strategist: Strategist address_cellar: Sommelier Turbo-stETH cellar address
Core Functions
liquidateExact
function liquidateExact(uint256 amountNeeded) external override checkRoles(VAULT_ROLE) returns (uint256 loss)Withdraws exactly amountNeeded to vault.
Parameters:
amountNeeded: Amount to withdraw
Returns:
loss: Amount of realized loss
View Functions
previewLiquidate
function previewLiquidate(uint256 requestedAmount) public view override returns (uint256 liquidatedAmount)Simulates withdrawal including potential losses.
Parameters:
requestedAmount: Amount requested to withdraw
Returns:
liquidatedAmount: Expected output amount
previewLiquidateExact
function previewLiquidateExact(uint256 liquidatedAmount) public view override returns (uint256 requestedAmount)Calculates required input for exact output.
Parameters:
liquidatedAmount: Desired output amount
Returns:
requestedAmount: Required input amount
maxLiquidate
function maxLiquidate() public view override returns (uint256)Returns maximum withdrawable amount after losses.
Returns:
Maximum withdrawable amount
maxLiquidateExact
function maxLiquidateExact() public view override returns (uint256)Returns maximum withdrawable amount before losses.
Returns:
Maximum withdrawable amount before losses
Internal Core Functions
_adjustPosition
function _adjustPosition(uint256, uint256 minOutputAfterInvestment) internal overrideAdjusts strategy positions based on available capital.
Parameters:
minOutputAfterInvestment: Minimum expected output
_invest
function _invest(uint256 amount, uint256 minOutputAfterInvestment) internal override returns (uint256 depositedAmount)Invests assets into Cellar Vault through stETH conversion.
Parameters:
amount: Amount to investminOutputAfterInvestment: Minimum expected shares
Returns:
depositedAmount: Amount of tokens received
_divest
function _divest(uint256 shares) internal override returns (uint256 withdrawn)Withdraws assets from Cellar Vault and converts back to ETH.
Parameters:
shares: Amount of shares to withdraw
Returns:
withdrawn: Amount of assets received
Receive Function
receive() external payableAllows contract to receive native ETH.
Last updated