# MIMOVaultActions

The `MIMOVaultActions` actions contract is a mirror of the `VaultsCore` owner access restricted functionalities. Its sole purpose is to provide a readable way for `MIMOProxy` owners to interact with `VaultsCore` through their `MIMOProxy`

{% hint style="info" %}
All functions non payable functions of the `MIMOVaultActions can be reproduced through the MIMOProxyActions multicall() function.`
{% endhint %}

### Write Methods

#### `function deposit(IERC20 collateral, uint256 amount)`

Calls `VaultsCore` `deposit()`.

| Param Name   | Type    | Description                                        |
| ------------ | ------- | -------------------------------------------------- |
| `collateral` | IERC20  | The address of the collateral type to be deposited |
| `amount`     | uint256 | The amount of tokens to be deposited               |

#### `function depositETH()`

Calls `VaultsCore` `depositETH()`.

#### `depositAndBorrow(address _collateralType, uint256 _depositAmount, uint256 _borrowAmount)`

Calls `VaultsCore` `depositAndBorrow()`.

| Param Name        | Type    | Description                                        |
| ----------------- | ------- | -------------------------------------------------- |
| `_collateralType` | address | The address of the collateral type to be deposited |
| `_depositAmount`  | uint256 | The amount of tokens to be deposited in WEI        |
| \_`borrowAmount`  | uint256 | The amount of borrowed StableX tokens in WEI       |

#### `depositETHAndBorrow(uint256 borrowAmount)`

Calls `VaultsCore` `depositETHAndBorrow()`.

| Param Name     | Type    | Description                                  |
| -------------- | ------- | -------------------------------------------- |
| `borrowAmount` | uint256 | The amount of borrowed StableX tokens in WEI |

#### `withdraw(uint256 vaultId, uint256 amount)`

Calls `VaultsCore` `withdraw()`.

| Param Name | Type    | Description                                               |
| ---------- | ------- | --------------------------------------------------------- |
| `vaultId`  | uint256 | The id of the vault from which to withdraw the collateral |
| `amount`   | uint256 | The amount of ERC20 tokens to be withdrawn                |

#### `withdrawETH(uint256 vaultId, uint256 amount)`

Calls `VaultsCore` `withdrawETH()`.

| Param Name | Type    | Description                                               |
| ---------- | ------- | --------------------------------------------------------- |
| `vaultId`  | uint256 | The id of the vault from which to withdraw the collateral |
| `amount`   | uint256 | The amount of ETH to be withdrawn                         |

#### `borrow(uint256 vaultId, uint256 amount)`

Calls `VaultsCore` `borrow()`.

| Param Name | Type    | Description                              |
| ---------- | ------- | ---------------------------------------- |
| `vaultId`  | uint256 | The id of the vault from which to borrow |
| `amount`   | uint256 | The amount of `stableX` to borrow        |

### View Methods

#### `contractAddress()`

Returns the `MIMOVaultActions` address. This is to access the contract address within the delegate call.

#### core`()`

Returns the `VaultsCore` address.

#### `vaultsData()`

Returns the `VaultsDataProvider` address.

#### `stablex()`

Returns the `stableX` address.

#### `proxyFactory()`

Returns the `MIMOProxyFactory` address.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.parallel.best/developers-hub/parallel-v2/super-vault-sv/action-contracts/mimovaultactions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
