Contract Architecture

This document provides an overview of the core contracts and their relationships. Click on any contract to view its detailed documentation.

graph TB
    Interfaces(("Interfaces"))
    Core(("Core"))
    Libraries(("Libraries"))

    subgraph InterfacesList ["Interfaces"]
        direction LR
        IBaseCurve & IBondingCurveRegistry
        IEthMultiVault & IPermit2
    end
    Interfaces --> InterfacesList

    subgraph CoreList ["Core"]
        direction LR
        AtomWallet & BaseCurve
        BondingCurveRegistry & EthMultiVault
        LinearCurve & OffsetProgressiveCurve
        ProgressiveCurve
    end
    Core --> CoreList

    subgraph LibrariesList ["Libraries"]
        direction LR
        Errors
    end
    Libraries --> LibrariesList

    %% Style definitions
    classDef default fill:#f4f4f4,stroke:#333,stroke-width:2px,font-size:24px,font-family:Arial,rounded:true,color:#000;
    classDef root fill:#6366f1,color:#fff,stroke:#4338ca,stroke-width:4px,font-size:32px,font-weight:bold,font-family:Arial,rx:40px;
    classDef category fill:none,stroke:none,color:#000,font-size:24px,font-weight:bold,font-family:Arial;
    
    %% Apply styles
    class Interfaces,Core,Libraries root;
    class InterfacesList,CoreList,LibrariesList category;

    %% Click actions
    click IPermit2 "http://localhost:3000/src/interfaces/IPermit2.sol/interface.IPermit2.html" "IPermit2 documentation"
    click IEthMultiVault "http://localhost:3000/src/interfaces/IEthMultiVault.sol/interface.IEthMultiVault.html" "IEthMultiVault documentation"
    click IBaseCurve "http://localhost:3000/src/interfaces/IBaseCurve.sol/interface.IBaseCurve.html" "IBaseCurve documentation"
    click IBondingCurveRegistry "http://localhost:3000/src/interfaces/IBondingCurveRegistry.sol/interface.IBondingCurveRegistry.html" "IBondingCurveRegistry documentation"
    click EthMultiVault "EthMultiVault.html" "EthMultiVault documentation"
    click LinearCurve "LinearCurve.html" "LinearCurve documentation"
    click AtomWallet "AtomWallet.html" "AtomWallet documentation"
    click ProgressiveCurve "ProgressiveCurve.html" "ProgressiveCurve documentation"
    click BondingCurveRegistry "BondingCurveRegistry.html" "BondingCurveRegistry documentation"
    click BaseCurve "BaseCurve.html" "BaseCurve documentation"
    click OffsetProgressiveCurve "OffsetProgressiveCurve.html" "OffsetProgressiveCurve documentation"
    click Errors "http://localhost:3000/src/libraries/Errors.sol/library.Errors.html" "Errors documentation"