# IVaultFundraiseUser

Interface for the VaultFundraise User functions.

## Functions

### deposit

Deposits USDC to the vault, only when the vault is Open

```solidity
function deposit(address usdc, uint128 amount) external;
```

**Parameters**

| Name     | Type      | Description                                   |
| -------- | --------- | --------------------------------------------- |
| `usdc`   | `address` | The USDC address to deposit for the fundraise |
| `amount` | `uint128` | The amount of the USDC token to deposit       |

### claimRefund

Claims refund, only when the vault is Canceled

```solidity
function claimRefund(address usdc) external returns (uint128 amount);
```

**Parameters**

| Name   | Type      | Description                                                                   |
| ------ | --------- | ----------------------------------------------------------------------------- |
| `usdc` | `address` | The USDC address to claim refund for, used as payment token for the fundraise |

**Returns**

| Name     | Type      | Description                          |
| -------- | --------- | ------------------------------------ |
| `amount` | `uint128` | The amount of the USDC token claimed |

## Events

### DepositReceived

Emitted when a deposit is received by the vault

```solidity
event DepositReceived(address indexed depositor, address indexed token, uint128 amount);
```

**Parameters**

| Name        | Type      | Description                       |
| ----------- | --------- | --------------------------------- |
| `depositor` | `address` | The address of the depositor      |
| `token`     | `address` | The address of the token received |
| `amount`    | `uint128` | The amount of the token received  |

### RefundClaimed

Emitted when a refund is claimed by the depositor

```solidity
event RefundClaimed(address indexed claimer, address indexed token, uint128 amount);
```

**Parameters**

| Name      | Type      | Description                      |
| --------- | --------- | -------------------------------- |
| `claimer` | `address` | The address of the claimer       |
| `token`   | `address` | The address of the token claimed |
| `amount`  | `uint128` | The amount of the token claimed  |


---

# 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.ariaprotocol.xyz/technical-docs/contract-docs/iprwa/vault/fundraise/ivaultfundraiseuser.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.
