# IFM\_DepositVault\_v1

[Git Source](https://github.com/InverterNetwork/inverter-contracts/blob/649b450f02fc8b735c128ff0821467e71966c666/src/modules/fundingManager/depositVault/interfaces/IFM_DepositVault_v1.sol)

**Author:** Inverter Network

This contract allows users to deposit tokens to fund the workflow.

*Implements {IFundingManager\_v1} interface.*

### Functions

#### deposit

Deposits a specified amount of tokens into the contract from the sender's account.

*When using the {TransactionForwarder\_v1}, validate transaction success to prevent nonce exploitation and ensure transaction integrity.*

```solidity
function deposit(uint amount) external;
```

**Parameters**

| Name     | Type      | Description                      |
| -------- | --------- | -------------------------------- |
| `amount` | `uint256` | The number of tokens to deposit. |

### Events

#### Deposit

Event emitted when a deposit takes place.

```solidity
event Deposit(address indexed _from, uint _amount);
```

**Parameters**

| Name      | Type      | Description                     |
| --------- | --------- | ------------------------------- |
| `_from`   | `address` | The address depositing tokens.  |
| `_amount` | `uint256` | The amount of tokens deposited. |

### Errors

#### Module\_\_DepositVault\_\_InvalidRecipient

Receiver address can not be zero address or Deposit Vault Funding Manager itself.

```solidity
error Module__DepositVault__InvalidRecipient();
```
