From ba64227a556db7f67e49eaa3feb525a474b6cfe0 Mon Sep 17 00:00:00 2001 From: cardosofede Date: Tue, 16 Sep 2025 12:24:34 -0300 Subject: [PATCH 1/3] (feat) adapt connector initialization --- utils/connector_manager.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/utils/connector_manager.py b/utils/connector_manager.py index 6ae0bad6..5b8e2280 100644 --- a/utils/connector_manager.py +++ b/utils/connector_manager.py @@ -7,9 +7,8 @@ # Create module-specific logger logger = logging.getLogger(__name__) -from hummingbot.client.config.client_config_map import ClientConfigMap from hummingbot.client.config.config_crypt import ETHKeyFileSecretManger -from hummingbot.client.config.config_helpers import ClientConfigAdapter, ReadOnlyClientConfigAdapter, get_connector_class +from hummingbot.client.config.config_helpers import get_connector_class from hummingbot.client.settings import AllConnectorSettings from hummingbot.connector.connector_base import ConnectorBase from hummingbot.core.data_type.common import OrderType, PositionAction, PositionMode, TradeType @@ -64,7 +63,6 @@ def _create_connector(self, account_name: str, connector_name: str): :return: The connector object. """ BackendAPISecurity.login_account(account_name=account_name, secrets_manager=self.secrets_manager) - client_config_map = ClientConfigAdapter(ClientConfigMap()) conn_setting = AllConnectorSettings.get_connector_settings()[connector_name] keys = BackendAPISecurity.api_keys(connector_name) @@ -72,13 +70,10 @@ def _create_connector(self, account_name: str, connector_name: str): logger.info(f"Creating connector {connector_name} for account {account_name}") logger.debug(f"API keys retrieved: {list(keys.keys()) if keys else 'None'}") - read_only_config = ReadOnlyClientConfigAdapter.lock_config(client_config_map) - init_params = conn_setting.conn_init_parameters( trading_pairs=[], trading_required=True, api_keys=keys, - client_config_map=read_only_config, ) # Debug logging @@ -324,6 +319,9 @@ async def _update_connector_state(self, connector: ConnectorBase, connector_name This function can be called both during initialization and periodically. """ try: + # Update current timestamp + connector._set_current_timestamp(time.time()) + # Update balances await connector._update_balances() From 8dd6625cbe9b1a5c5af3e09f3a8de2b5546af5ba Mon Sep 17 00:00:00 2001 From: cardosofede Date: Tue, 16 Sep 2025 15:21:20 -0300 Subject: [PATCH 2/3] (feat) replate reference to non trading connectors --- services/market_data_feed_manager.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/services/market_data_feed_manager.py b/services/market_data_feed_manager.py index 115734a3..8c102ed2 100644 --- a/services/market_data_feed_manager.py +++ b/services/market_data_feed_manager.py @@ -184,7 +184,7 @@ async def get_trading_rules(self, connector_name: str, trading_pairs: Optional[L """ try: # Access connector through MarketDataProvider's _rate_sources LazyDict - connector = self.market_data_provider._rate_sources[connector_name] + connector = self.market_data_provider._non_trading_connectors[connector_name] # Check if trading rules are initialized, if not update them if not connector.trading_rules or len(connector.trading_rules) == 0: @@ -252,7 +252,7 @@ async def get_prices(self, connector_name: str, trading_pairs: List[str]) -> Dic """ try: # Access connector through MarketDataProvider's _rate_sources LazyDict - connector = self.market_data_provider._rate_sources[connector_name] + connector = self.market_data_provider._non_trading_connectors[connector_name] # Get last traded prices prices = await connector.get_last_traded_prices(trading_pairs) @@ -279,8 +279,8 @@ async def get_funding_info(self, connector_name: str, trading_pair: str) -> Dict Dictionary containing funding information """ try: - # Access connector through MarketDataProvider's _rate_sources LazyDict - connector = self.market_data_provider._rate_sources[connector_name] + # Access connector through MarketDataProvider's _non_trading_connectors LazyDict + connector = self.market_data_provider._non_trading_connectors[connector_name] # Check if this is a perpetual connector and has funding info support if hasattr(connector, '_orderbook_ds') and connector._orderbook_ds: @@ -322,8 +322,8 @@ async def get_order_book_data(self, connector_name: str, trading_pair: str, dept Dictionary containing bid and ask data """ try: - # Access connector through MarketDataProvider's _rate_sources LazyDict - connector = self.market_data_provider._rate_sources[connector_name] + # Access connector through MarketDataProvider's _non_trading_connectors LazyDict + connector = self.market_data_provider._non_trading_connectors[connector_name] # Access the order book data source if hasattr(connector, '_orderbook_ds') and connector._orderbook_ds: @@ -365,8 +365,8 @@ async def get_order_book_query_result(self, connector_name: str, trading_pair: s try: current_time = time.time() - # Access connector through MarketDataProvider's _rate_sources LazyDict - connector = self.market_data_provider._rate_sources[connector_name] + # Access connector through MarketDataProvider's _non_trading_connectors LazyDict + connector = self.market_data_provider._non_trading_connectors[connector_name] # Access the order book data source if hasattr(connector, '_orderbook_ds') and connector._orderbook_ds: From 758eba62f3ceacb67aa41eaf442ca7e321be81b7 Mon Sep 17 00:00:00 2001 From: david-hummingbot <85695272+david-hummingbot@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:36:08 +0800 Subject: [PATCH 3/3] fix environment issue --- environment.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/environment.yml b/environment.yml index 142f877e..120f84bd 100644 --- a/environment.yml +++ b/environment.yml @@ -7,15 +7,18 @@ dependencies: - fastapi - uvicorn - boto3 - - libcxx + - libcxx - python-dotenv - - pandas-ta>=0.3.14b - - pandas>=2.2.3 - - numpy>=1.26 + - pandas=2.2.3 + - numpy=1.26.* + - pandas-ta=0.3.14b0 - docker-py - pip - pip: - hummingbot + - pandas==2.2.3 + - pandas-ta<0.4.0 + - msgpack>=1.0.5 - flake8 - isort - pre-commit @@ -28,4 +31,3 @@ dependencies: - psycopg2-binary - greenlet - pydantic-settings - - logfire