Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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
    Core(("Core"))
    Interfaces(("Interfaces"))
    Libraries(("Libraries"))

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

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

    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 Core,Interfaces,Libraries root;
    class CoreList,InterfacesList,LibrariesList category;

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