> For the complete documentation index, see [llms.txt](https://docs.ionprotocol.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionprotocol.io/devs/smart-contract-architecture/flash/lst/swethhandler.md).

# SwEthHandler

[Git Source](https://github.com/Ion-Protocol/ion-protocol/blob/88cc595825f1dc2eb738fb93e172a3e8ab7a5c43/src/flash/lst/SwEthHandler.sol)

**Inherits:** UniswapFlashswapHandler, BalancerFlashloanDirectMintHandler

Handler for the swETH collateral.

### [Functions](broken://pages/wnUqrsVg9BBwbQNMF0Hc) <a href="#functions" id="functions"></a>

#### [constructor](broken://pages/wnUqrsVg9BBwbQNMF0Hc) <a href="#constructor" id="constructor"></a>

Creates a new `SwEthHandler` instance.

```
constructor(
    uint8 _ilkIndex,
    IonPool _ionPool,
    GemJoin _gemJoin,
    Whitelist _whitelist,
    IUniswapV3Pool _swEthPool
)
    IonHandlerBase(_ilkIndex, _ionPool, _gemJoin, _whitelist)
    UniswapFlashswapHandler(_swEthPool, true);
```

**Parameters**

| Name         | Type             | Description                                       |
| ------------ | ---------------- | ------------------------------------------------- |
| `_ilkIndex`  | `uint8`          | of swETH.                                         |
| `_ionPool`   | `IonPool`        | `IonPool` contract address.                       |
| `_gemJoin`   | `GemJoin`        | `GemJoin` contract address associated with swETH. |
| `_whitelist` | `Whitelist`      | Address of the `Whitelist` contract.              |
| `_swEthPool` | `IUniswapV3Pool` | Address of the swETH/ETH Uniswap V3 pool.         |

#### [\_depositWethForLst](broken://pages/wnUqrsVg9BBwbQNMF0Hc) <a href="#depositwethforlst" id="depositwethforlst"></a>

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**

| Name         | Type      | Description                        |
| ------------ | --------- | ---------------------------------- |
| `amountWeth` | `uint256` | The WETH amount to deposit. \[WAD] |

**Returns**

| Name     | Type      | Description                    |
| -------- | --------- | ------------------------------ |
| `<none>` | `uint256` | Amount of lst received. \[WAD] |

#### [\_getEthAmountInForLstAmountOut](broken://pages/wnUqrsVg9BBwbQNMF0Hc) <a href="#getethamountinforlstamountout" id="getethamountinforlstamountout"></a>

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**

| Name        | Type      | Description                   |
| ----------- | --------- | ----------------------------- |
| `amountLst` | `uint256` | Desired output amount. \[WAD] |

**Returns**

| Name     | Type      | Description                                 |
| -------- | --------- | ------------------------------------------- |
| `<none>` | `uint256` | Eth required for desired lst output. \[WAD] |
