[Bug Report] Hyperliquid: "Too many DEXes found" error blocks startup, and config schema prevents CCXT options fix
T
Tricio
### 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.