WstEthHandler

Git Source

Inherits: UniswapFlashswapHandler, BalancerFlashloanDirectMintHandler

Handler for the wstETH collateral.

State Variables

STETH

IERC20 constant STETH = IERC20(0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84);

Functions

constructor

Creates a new WstEthHandler instance.

constructor(
    uint8 _ilkIndex,
    IonPool _ionPool,
    GemJoin _gemJoin,
    Whitelist _whitelist,
    IUniswapV3Pool _wstEthUniswapPool
)
    IonHandlerBase(_ilkIndex, _ionPool, _gemJoin, _whitelist)
    UniswapFlashswapHandler(_wstEthUniswapPool, false);

Parameters

NameTypeDescription

_ilkIndex

uint8

of wstETH.

_ionPool

IonPool

IonPool contract address.

_gemJoin

GemJoin

GemJoin contract address associated with wstETH.

_whitelist

Whitelist

Address of the Whitelist contract.

_wstEthUniswapPool

IUniswapV3Pool

Adderess of the wstETH/ETH Uniswap V3 pool.

_depositWethForLst

Unwraps weth into eth and deposits into lst contract.

Unwraps weth into eth and deposits into lst contract.

function _depositWethForLst(uint256 amountWeth) internal override returns (uint256);

Parameters

NameTypeDescription

amountWeth

uint256

The WETH amount to deposit. [WAD]

Returns

NameTypeDescription

<none>

uint256

Amount of lst received. [WAD]

_getEthAmountInForLstAmountOut

Calculates the amount of eth required to receive amountLst.

Calculates the amount of eth required to receive amountLst.

function _getEthAmountInForLstAmountOut(uint256 amountLst) internal view override returns (uint256);

Parameters

NameTypeDescription

amountLst

uint256

Desired output amount. [WAD]

Returns

NameTypeDescription

<none>

uint256

Eth required for desired lst output. [WAD]

zapDepositAndBorrow

function zapDepositAndBorrow(
    uint256 stEthAmount,
    uint256 amountToBorrow,
    bytes32[] memory proof
)
    external
    onlyWhitelistedBorrowers(proof);

zapFlashLeverageCollateral

function zapFlashLeverageCollateral(
    uint256 initialDeposit,
    uint256 resultingAdditionalStEthCollateral,
    uint256 maxResultingAdditionalDebt,
    bytes32[] memory proof
)
    external
    onlyWhitelistedBorrowers(proof);

zapFlashLeverageWeth

function zapFlashLeverageWeth(
    uint256 initialDeposit,
    uint256 resultingAdditionalStEthCollateral,
    uint256 maxResultingAdditionalDebt,
    bytes32[] memory proof
)
    external
    onlyWhitelistedBorrowers(proof);

zapFlashswapLeverage

function zapFlashswapLeverage(
    uint256 initialDeposit,
    uint256 resultingAdditionalStEthCollateral,
    uint256 maxResultingAdditionalDebt,
    uint160 sqrtPriceLimitX96,
    uint256 deadline,
    bytes32[] memory proof
)
    external
    checkDeadline(deadline)
    onlyWhitelistedBorrowers(proof);