Overview

The Vault contract is the central entry point in the Flexible Vault system. It composes three foundational modules:

This contract allows secure, extensible, and upgradeable vault implementations by coordinating all external and internal interactions within the system. It is typically instantiated through Factory or VaultConfigurator and initialized with all the required components and role assignments in a single atomic transaction.

Inheritance Structure

contract Vault is IFactoryEntity, VaultModule, ShareModule, ACLModule

The contract inherits three modules:

It also implements the IFactoryEntity interface for standard factory-based deployment patterns.

Constructor

constructor(
    string memory name_,
    uint256 version_,
    address depositQueueFactory_,
    address redeemQueueFactory_,
    address subvaultFactory_,
    address verifierFactory_
)

Parameters: