# ISingleDepositorVaultFactory

**Inherits:** IBaseVaultDeployer, IFeeVaultDeployer

Interface for the single-depositor vault factory

## Functions

### create

Create single-depositor vault

```solidity
function create(
    bytes32 salt,
    string calldata description,
    BaseVaultParameters calldata baseVaultParams,
    FeeVaultParameters calldata singleDepositorVaultParams,
    address expectedVaultAddress
) external returns (address deployedVault);
```

**Parameters**

| Name                         | Type                  | Description                                                         |
| ---------------------------- | --------------------- | ------------------------------------------------------------------- |
| `salt`                       | `bytes32`             | The salt used to generate the vault address                         |
| `description`                | `string`              | Vault description                                                   |
| `baseVaultParams`            | `BaseVaultParameters` | Base vault parameters for deployment                                |
| `singleDepositorVaultParams` | `FeeVaultParameters`  | Parameters for deployment related to single depositor functionality |
| `expectedVaultAddress`       | `address`             | Expected vault address to check against deployed vault address      |

**Returns**

| Name            | Type      | Description            |
| --------------- | --------- | ---------------------- |
| `deployedVault` | `address` | Deployed vault address |

## Events

### VaultCreated

Emitted when the vault is created

```solidity
event VaultCreated(
    address indexed vault,
    address indexed owner,
    address submitHooks,
    IERC20 feeToken,
    IFeeCalculator feeCalculator,
    address feeRecipient,
    string description
);
```

**Parameters**

| Name            | Type             | Description            |
| --------------- | ---------------- | ---------------------- |
| `vault`         | `address`        | Vault address          |
| `owner`         | `address`        | Initial owner address  |
| `submitHooks`   | `address`        | Submit hooks address   |
| `feeToken`      | `IERC20`         | Fee token address      |
| `feeCalculator` | `IFeeCalculator` | Fee calculator address |
| `feeRecipient`  | `address`        | Fee recipient address  |
| `description`   | `string`         | Vault description      |

## Errors

### Aera\_\_ZeroAddressDeployDelegate

Thrown when deploy delegate is the zero address

```solidity
error Aera__ZeroAddressDeployDelegate();
```
