Architecture
Inheritance Structure
MetaVault
βββ MetaVaultBase
β βββ MultiFacetProxy
β βββ OwnableRoles
βββ Multicallable
βββ NoDelegateCall
ERC7540Engine
βββ ModuleBase
βββ OwnableRoles
AssetsManager
βββ ModuleBase
βββ OwnableRoles
Gateway System
βββ SuperformGateway
β βββ MultiFacetProxy
β βββ GatewayBase
βββ InvestSuperform
β βββ GatewayBase
βββ DivestSuperform
β βββ GatewayBase
βββ LiquidateSuperform
βββ GatewayBaseCore Contract Relationships
MetaVault Core
ERC7540Engine
Gateway System
Error Catalog
State Flow Diagrams
Deposit Flow
User -> MetaVault:
requestDeposit()MetaVault: Update deposit request state
MetaVault -> User:
deposit()availableMetaVault: Share minting and accounting

Investment Flow

Withdrawal Flow
User -> MetaVault:
requestRedeem()ERC7540Engine: Process withdrawal route
Gateway: Handle cross-chain settlements
MetaVault -> User: Final redemption

Key Dependencies
External Protocol Integration
Oracle Integration
State Management
Critical State Variables
Cross-Chain State
Security Architecture
Access Control Matrix
ADMIN_ROLE
Protocol configuration
EMERGENCY_ADMIN
Emergency controls
ORACLE_ROLE
Price updates
MANAGER_ROLE
Investment operations
RELAYER_ROLE
Settlement processing
State Protection
Upgrade Architecture
Modular design through facet system
Role-based module management
State separation between core and modules
Critical Paths
Investment Critical Path
Vault listing validation
Cross-chain message verification
Position tracking updates
Settlement confirmation
Withdrawal Critical Path
Share lock verification
Withdrawal route calculation
Cross-chain settlement
Final redemption processing
Integration Points
Bridge Integration
Oracle Integration
Last updated