# KelpDaoLibrary

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

A helper library for KelpDao-related conversions.

### [Functions](https://docs.ionprotocol.io/devs/smart-contract-architecture/libraries/lrt/broken-reference) <a href="#functions" id="functions"></a>

#### [depositForLrt](https://docs.ionprotocol.io/devs/smart-contract-architecture/libraries/lrt/broken-reference) <a href="#depositforlrt" id="depositforlrt"></a>

Deposits a given amount of ETH into the rsETH Deposit Pool.

*Care should be taken to handle slippage in the calling function since this function sets NO slippage controls.*

```
function depositForLrt(IRsEth, uint256 ethAmount) internal returns (uint256 rsEthAmountToMint);
```

**Parameters**

| Name        | Type      | Description                      |
| ----------- | --------- | -------------------------------- |
| `<none>`    | `IRsEth`  |                                  |
| `ethAmount` | `uint256` | Amount of ETH to deposit. \[WAD] |

**Returns**

| Name                | Type      | Description                               |
| ------------------- | --------- | ----------------------------------------- |
| `rsEthAmountToMint` | `uint256` | Amount of rsETH that was obtained. \[WAD] |

#### [getEthAmountInForLstAmountOut](https://docs.ionprotocol.io/devs/smart-contract-architecture/libraries/lrt/broken-reference) <a href="#getethamountinforlstamountout" id="getethamountinforlstamountout"></a>

Returns the amount of ETH required to mint a given amount of rsETH.

```
function getEthAmountInForLstAmountOut(IRsEth, uint256 amountOut) internal view returns (uint256);
```

**Parameters**

| Name        | Type      | Description                    |
| ----------- | --------- | ------------------------------ |
| `<none>`    | `IRsEth`  |                                |
| `amountOut` | `uint256` | Desired output amount of rsETH |

#### [getLstAmountOutForEthAmountIn](https://docs.ionprotocol.io/devs/smart-contract-architecture/libraries/lrt/broken-reference) <a href="#getlstamountoutforethamountin" id="getlstamountoutforethamountin"></a>

Calculates the amount of rsETH that will be minted for a given amount of ETH.

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

**Parameters**

| Name        | Type      | Description                        |
| ----------- | --------- | ---------------------------------- |
| `<none>`    | `IRsEth`  |                                    |
| `ethAmount` | `uint256` | Amount of ETH to use to mint rsETH |

**Returns**

| Name     | Type      | Description                                         |
| -------- | --------- | --------------------------------------------------- |
| `<none>` | `uint256` | Amount of outputted rsETH for a given amount of ETH |
