# BaseVaultFactory

**Inherits:** IBaseVaultFactory, BaseVaultDeployer, Sweepable

Used to deploy new BaseVault instances

*Only one instance of the factory will be required per chain*

## Functions

### constructor

```solidity
constructor(address initialOwner, Authority initialAuthority) Sweepable(initialOwner, initialAuthority);
```

### create

Create a new vault with the given parameters

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

**Parameters**

| Name                   | Type                  | Description                            |
| ---------------------- | --------------------- | -------------------------------------- |
| `salt`                 | `bytes32`             | The salt value to use for create2      |
| `description`          | `string`              | Vault description                      |
| `baseVaultParams`      | `BaseVaultParameters` | Parameters for vault deployment        |
| `expectedVaultAddress` | `address`             | Expected address of the deployed vault |

**Returns**

| Name            | Type      | Description                   |
| --------------- | --------- | ----------------------------- |
| `deployedVault` | `address` | Address of the deployed vault |

### \_deployVault

Deploy vault

```solidity
function _deployVault(bytes32 salt, string calldata description, BaseVaultParameters calldata baseVaultParams)
    internal
    returns (address deployed);
```

**Parameters**

| Name              | Type                  | Description                     |
| ----------------- | --------------------- | ------------------------------- |
| `salt`            | `bytes32`             | The salt value to create vault  |
| `description`     | `string`              | Vault description               |
| `baseVaultParams` | `BaseVaultParameters` | Parameters for vault deployment |

**Returns**

| Name       | Type      | Description                   |
| ---------- | --------- | ----------------------------- |
| `deployed` | `address` | The address of deployed vault |
