graph LR
ExchangePyBase["ExchangePyBase"]
PerpetualDerivativePyBase["PerpetualDerivativePyBase"]
GatewayBase["GatewayBase"]
GatewayHttpClient["GatewayHttpClient"]
WebAssistantsFactory["WebAssistantsFactory"]
RESTAssistant["RESTAssistant"]
WSAssistant["WSAssistant"]
AsyncThrottler["AsyncThrottler"]
AuthBase["AuthBase"]
TimeSynchronizer["TimeSynchronizer"]
NetworkBase["NetworkBase"]
ExchangePyBase -- "inherits from" --> NetworkBase
ExchangePyBase -- "utilizes" --> WebAssistantsFactory
PerpetualDerivativePyBase -- "inherits from" --> ExchangePyBase
PerpetualDerivativePyBase -- "utilizes" --> WebAssistantsFactory
ExchangePyBase -- "utilizes" --> AsyncThrottler
PerpetualDerivativePyBase -- "utilizes" --> AsyncThrottler
ExchangePyBase -- "utilizes" --> AuthBase
PerpetualDerivativePyBase -- "utilizes" --> AuthBase
ExchangePyBase -- "utilizes" --> TimeSynchronizer
PerpetualDerivativePyBase -- "utilizes" --> TimeSynchronizer
GatewayBase -- "utilizes" --> GatewayHttpClient
WebAssistantsFactory -- "creates instances of" --> RESTAssistant
WebAssistantsFactory -- "creates instances of" --> WSAssistant
RESTAssistant -- "depends on" --> AuthBase
WSAssistant -- "depends on" --> AuthBase
RESTAssistant -- "depends on" --> AsyncThrottler
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
Serves as the abstract base class for all centralized exchange (CEX) spot connectors. It defines the common interface and fundamental functionalities that every spot exchange connector must implement, such as order placement, cancellation, balance tracking, and market data handling.
Related Classes/Methods:
Serves as the abstract base class for all perpetual derivative exchange connectors. It extends ExchangePyBase and defines functionalities specific to perpetual markets, including position management, funding rates, and leverage.
Related Classes/Methods:
Serves as the abstract base class for all decentralized exchange (DEX) and gateway connectors. It defines the interface for interacting with the Hummingbot Gateway, which mediates communication with various blockchain networks and DEX protocols.
Related Classes/Methods:
Handles HTTP communication with the Hummingbot Gateway. It is responsible for sending requests to the Gateway and receiving responses, forming the direct communication layer for DEX interactions.
Related Classes/Methods:
A factory class responsible for creating and managing instances of RESTAssistant and WSAssistant. It ensures that web communication components are properly initialized and configured for each connector.
Related Classes/Methods:
Provides a standardized way to make REST API calls to exchanges. It encapsulates logic for request signing, error handling, and response parsing for RESTful interactions.
Related Classes/Methods:
Provides a standardized way to manage WebSocket connections with exchanges for real-time market data and user stream updates. It handles connection establishment, message sending/receiving, and error handling for WebSocket interactions.
Related Classes/Methods:
Manages and enforces API rate limits for all outgoing requests to exchanges. It prevents the bot from exceeding exchange-specific request limits, which could lead to temporary bans or degraded performance.
Related Classes/Methods:
An abstract base class defining the interface for authentication mechanisms. Concrete authentication classes for each exchange (e.g., BinanceAuth) inherit from this.
Related Classes/Methods:
Synchronizes the bot's local time with the exchange's server time. This is critical for many exchange APIs that require requests to be timestamped accurately to prevent replay attacks and ensure order validity.
Related Classes/Methods:
Provides a foundational base for network-related functionalities, likely including common methods for managing network state and interactions.
Related Classes/Methods: