OctoBot Open Source

[Bug Report] Hyperliquid: "Too many DEXes found" error blocks startup, and config schema prevents CCXT options fix
### Enviroment: OctoBot 2.0.15 (for Linux) Exchange: Hyperliquid ### Description: I am encountering a blocking issue when trying to use the Hyperliquid exchange. The bot fails to initialize the connector due to the high number of HIP-3 user-generated markets, which causes CCXT to throw an ArgumentsRequired error. I attempted to fix this by adding the required options parameter to user/config.json to disable fetching these extra markets, but OctoBot's configuration schema validation rejects the field, making it impossible to apply the fix on a binary/Docker installation without source access. ### Error Logs: The root cause (CCXT Error): > ERROR WebSocket - hyperliquid Failed to subscribe when creating websocket feed : hyperliquid fetchHip3Markets() Too many DEXes found. Please specify a list of DEXes in the exchange.options["fetchMarkets"]["hip3"]["dex"] parameter to fetch markets from those DEXes only. The limit is set to 5 DEXes by default. (error: ArgumentsRequired) The blocker (Config Validation Error): > ERROR SyncConfigurationStorage Error when saving configuration Additional properties are not allowed ('options' was unexpected) [...] On instance['config']['exchanges']['hyperliquid']: {'enabled': True, 'options': {'fetchMarkets': {'hip3': {}}}} (error: ValidationError) ### Analysis: The underlying CCXT library requires the user to specify exchange.options["fetchMarkets"]["hip3"]["dex"] (usually setting it to []) to avoid fetching thousands of HIP-3 markets. However, OctoBot's config.json schema does not whitelist the options field for exchange configurations, causing a ValidationError when attempting to apply this workaround. ### Request: Could you please either: Update the internal Hyperliquid connector initialization to default fetchMarkets["hip3"]["dex"] to [] (empty list) to support the current market state. Or update the configuration schema to allow passing an options dictionary in user/config.json so users can configure CCXT parameters manually.
0
·
Ecosystem
Load More