> 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/libraries/lst/lidolibrary.md).

# LidoLibrary

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

A helper library for Lido-related conversions.

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

#### [getEthAmountInForLstAmountOut](broken://pages/JRYXE5sigVuPsKAz6HHU) <a href="#getethamountinforlstamountout" id="getethamountinforlstamountout"></a>

Returns the amount of ETH needed to mint the given amount of wstETH.

```
function getEthAmountInForLstAmountOut(IWstEth wstEth, uint256 lstAmount) internal view returns (uint256);
```

**Parameters**

| Name        | Type      | Description                   |
| ----------- | --------- | ----------------------------- |
| `wstEth`    | `IWstEth` | address.                      |
| `lstAmount` | `uint256` | Desired output amount. \[WAD] |

#### [getLstAmountOutForEthAmountIn](broken://pages/JRYXE5sigVuPsKAz6HHU) <a href="#getlstamountoutforethamountin" id="getlstamountoutforethamountin"></a>

Returns the amount of wstETH that can be minted with the given amount of ETH.

```
function getLstAmountOutForEthAmountIn(IWstEth wstEth, uint256 ethAmount) internal view returns (uint256);
```

**Parameters**

| Name        | Type      | Description                      |
| ----------- | --------- | -------------------------------- |
| `wstEth`    | `IWstEth` | address.                         |
| `ethAmount` | `uint256` | Amount of ETH to deposit. \[WAD] |

#### [depositForLst](broken://pages/JRYXE5sigVuPsKAz6HHU) <a href="#depositforlst" id="depositforlst"></a>

Deposits ETH into the wstETH contract and returns the amount of wstETH received.

```
function depositForLst(IWstEth wstEth, uint256 ethAmount) internal returns (uint256);
```

**Parameters**

| Name        | Type      | Description                      |
| ----------- | --------- | -------------------------------- |
| `wstEth`    | `IWstEth` | address.                         |
| `ethAmount` | `uint256` | Amount of ETH to deposit. \[WAD] |

### [Errors](broken://pages/JRYXE5sigVuPsKAz6HHU) <a href="#errors" id="errors"></a>

#### [WstEthDepositFailed](broken://pages/JRYXE5sigVuPsKAz6HHU) <a href="#wstethdepositfailed" id="wstethdepositfailed"></a>

```
error WstEthDepositFailed();
```
