1LAYER Tech Documentation
  • Intro
  • 1LAYER AI
    • AI Cognitive Framework
  • 1LAYER DeFi
    • Smart Contract System
      • Flows
        • Swap Flow
          • Interchain Swap
          • Intrachain Swap
        • Vault Flow
      • Smart Contracts
        • Broadcaster Components Diagram
        • User Components Diagram
        • Admin Components Diagram
Powered by GitBook
On this page
  1. 1LAYER DeFi
  2. Smart Contract System
  3. Smart Contracts

User Components Diagram

This page contains the components diagram for the User Role

PreviousBroadcaster Components DiagramNextAdmin Components Diagram

Last updated 9 months ago

This diagram focuses on the User role and its interactions within the system. Here's a breakdown of the diagram:

  1. Main Components:

    • Registry: Provides access to other components and configurations.

    • InterNetworkExecutor: Handles cross-network swaps.

    • IntraNetworkExecutor: Handles within-network swaps.

    • Vault: Manages token deposits and withdrawals.

    • RegularUser: Represents the external entity with the regular user role.

  2. Relationships:

    • Solid lines with open arrows (-->) represent dependencies or usage.

  3. Entry Points :

    • InterNetworkExecutor: The swap(InterNetworkSwapActions) method is an entry point for cross-network swaps.

    • IntraNetworkExecutor: The swap(SwapAction) method is an entry point for within-network swaps.

    • Vault: The deposit(uint256) and withdraw(uint256) methods are entry points for vault operations.

  4. Key Interactions:

    • The User interacts directly with InterNetworkExecutor, IntraNetworkExecutor, and Vault.

    • All components depend on the Registry for accessing other parts of the system.

Diagram Code
classDiagram
    class Registry {
        +getInterNetworkExecutor()
        +getIntraNetworkExecutor()
        +getVault()
    }

    class InterNetworkExecutor {
        +swap(InterNetworkSwapActions)
    }

    class IntraNetworkExecutor {
        +swap(SwapAction)
    }

    class Vault {
        +deposit(uint256)
        +withdraw(uint256)
    }

    class RegularUser["Regular User (External)"]

    InterNetworkExecutor --> Registry : uses
    IntraNetworkExecutor --> Registry : uses
    Vault --> Registry : uses

    RegularUser --> InterNetworkExecutor : calls
    RegularUser --> IntraNetworkExecutor : calls
    RegularUser --> Vault : calls

    class InterNetworkExecutor {
        <<entrypoint>>
    }
    class IntraNetworkExecutor {
        <<entrypoint>>
    }
    class Vault {
        <<entrypoint>>
    }