The Vault contract is the central entry point in the Flexible Vault system. It composes three foundational modules:
ACLModule: Role-based access control.ShareModule: Management of user-facing shares, including deposit and redemption processes.VaultModule: Subvault management.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.
contract Vault is IFactoryEntity, VaultModule, ShareModule, ACLModule
The contract inherits three modules:
ACLModule: Admin and permission managementShareModule: Deposits, redemptions, share managementVaultModule: Subvault delegation controlIt also implements the IFactoryEntity interface for standard factory-based deployment patterns.
constructor(
string memory name_,
uint256 version_,
address depositQueueFactory_,
address redeemQueueFactory_,
address subvaultFactory_,
address verifierFactory_
)
name_: Unique name identifier for the vault instanceversion_: Configuration version of the vaultdepositQueueFactory_: Address of the factory used to deploy deposit queuesredeemQueueFactory_: Address of the factory used to deploy redemption queues