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
    └── GatewayBase

Core Contract Relationships

MetaVault Core

ERC7540Engine

Gateway System

Error Catalog

State Flow Diagrams

Deposit Flow

  1. User -> MetaVault: requestDeposit()

  2. MetaVault: Update deposit request state

  3. MetaVault -> User: deposit() available

  4. MetaVault: Share minting and accounting

Investment Flow

Withdrawal Flow

  1. User -> MetaVault: requestRedeem()

  2. ERC7540Engine: Process withdrawal route

  3. Gateway: Handle cross-chain settlements

  4. MetaVault -> User: Final redemption

Key Dependencies

External Protocol Integration

Oracle Integration

State Management

Critical State Variables

Cross-Chain State

Security Architecture

Access Control Matrix

Role
Permissions

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

  1. Vault listing validation

  2. Cross-chain message verification

  3. Position tracking updates

  4. Settlement confirmation

Withdrawal Critical Path

  1. Share lock verification

  2. Withdrawal route calculation

  3. Cross-chain settlement

  4. Final redemption processing

Integration Points

Bridge Integration

Oracle Integration

Last updated