diff --git a/.gitignore b/.gitignore index 27c11de6a4e..3b4f3228fd3 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,7 @@ coverage.xml # External SDK files /**/.chain_cookie /**/.injective_cookie + + +#logs +/logs \ No newline at end of file diff --git a/bin/path_util.py b/bin/path_util.py index 545d844650b..af333f1fae7 100644 --- a/bin/path_util.py +++ b/bin/path_util.py @@ -11,6 +11,6 @@ hummingbot.set_prefix_path(os.getcwd()) else: # Dev environment. - from os.path import join, realpath import sys + from os.path import join, realpath sys.path.insert(0, realpath(join(__file__, "../../"))) diff --git a/conf/scripts/conf_v2_triangular_arb_1.ymlasa b/conf/scripts/conf_v2_triangular_arb_1.ymlasa new file mode 100644 index 00000000000..73f6c9ffd04 --- /dev/null +++ b/conf/scripts/conf_v2_triangular_arb_1.ymlasa @@ -0,0 +1,14 @@ +markets: {} +candles_config: [] +controllers_config: [] +config_update_interval: 60 +script_file_name: v2_triangular_arb.py +cex_connector_main: kucoin +cex_connector_proxy: kucoin +dex_connector: splash_cardano_mainnet +arb_asset: ERG +arb_asset_wrapped: RSERG +proxy_asset: ADA +stable_asset: '' +min_arbitrage_percent: 0.01 +min_arbitrage_volume: 2 diff --git a/conf/scripts/conf_v2_triangular_arb_1.ymldsa b/conf/scripts/conf_v2_triangular_arb_1.ymldsa new file mode 100644 index 00000000000..5263eb3ca4d --- /dev/null +++ b/conf/scripts/conf_v2_triangular_arb_1.ymldsa @@ -0,0 +1,14 @@ +markets: {} +candles_config: [] +controllers_config: [] +config_update_interval: 60 +script_file_name: v2_triangular_arb.py +cex_connector_main: kucoin +cex_connector_proxy: kucoin +dex_connector: splash_cardano_mainnet +arb_asset: '' +arb_asset_wrapped: RSERG +proxy_asset: ADA +stable_asset: USDT +min_arbitrage_percent: 0.01 +min_arbitrage_volume: 2 diff --git a/docker-compose.yml b/docker-compose.yml index c3b2eed0888..0ba58290518 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,4 +39,4 @@ services: volumes: - "./certs:/home/gateway/certs" environment: - - GATEWAY_PASSPHRASE=Sp09135546636 \ No newline at end of file + - GATEWAY_PASSPHRASE=a \ No newline at end of file diff --git a/hummingbot/client/__init__.py b/hummingbot/client/__init__.py index 8fa69c0f4cb..236fe09a6fe 100644 --- a/hummingbot/client/__init__.py +++ b/hummingbot/client/__init__.py @@ -1,7 +1,7 @@ +import decimal import logging import pandas as pd -import decimal FLOAT_PRINTOUT_PRECISION = 8 diff --git a/hummingbot/client/command/gateway_command.py b/hummingbot/client/command/gateway_command.py index 757a3bd0437..22d2e40c92d 100644 --- a/hummingbot/client/command/gateway_command.py +++ b/hummingbot/client/command/gateway_command.py @@ -438,8 +438,7 @@ async def _prompt_for_wallet_address( prompt=f"Enter your {chain}-{network} wallet private key >>> ", is_password=True ) - self.notify(f"fetched private key {wallet_private_key}") - self.logger().info("fetched private key %s", wallet_private_key) + self.app.clear_input() if self.app.to_stop_config: return diff --git a/hummingbot/client/command/silly_commands.py b/hummingbot/client/command/silly_commands.py index 39b54cc5218..7a9837ff95e 100644 --- a/hummingbot/client/command/silly_commands.py +++ b/hummingbot/client/command/silly_commands.py @@ -1,7 +1,6 @@ import asyncio -from typing import ( - TYPE_CHECKING, -) +from typing import TYPE_CHECKING + from hummingbot.core.utils.async_utils import safe_ensure_future if TYPE_CHECKING: diff --git a/hummingbot/client/command/start_command.py b/hummingbot/client/command/start_command.py index 310159ef33d..85dfa473637 100644 --- a/hummingbot/client/command/start_command.py +++ b/hummingbot/client/command/start_command.py @@ -258,7 +258,7 @@ async def start_market_making(self, # type: HummingbotApplication self.strategy_task: asyncio.Task = safe_ensure_future(self._run_clock(), loop=self.ev_loop) self.notify(f"\n'{self.strategy_name}' strategy started.\n" f"Run `status` command to query the progress.") - self.logger().info("start command initiated.") + self.logger().debug("start command initiated.") if self._trading_required: self.kill_switch = self.client_config_map.kill_switch_mode.get_kill_switch(self) diff --git a/hummingbot/client/command/stop_command.py b/hummingbot/client/command/stop_command.py index 3825d757ae6..01e741877ca 100644 --- a/hummingbot/client/command/stop_command.py +++ b/hummingbot/client/command/stop_command.py @@ -21,7 +21,7 @@ def stop(self, # type: HummingbotApplication async def stop_loop(self, # type: HummingbotApplication skip_order_cancellation: bool = False): - self.logger().info("stop command initiated.") + self.logger().debug("stop command initiated.") self.notify("\nWinding down...") # Restore App Nap on macOS. @@ -31,22 +31,6 @@ async def stop_loop(self, # type: HummingbotApplication if isinstance(self.strategy, ScriptStrategyBase): await self.strategy.on_stop() - print("passed the strat on stop") - self.strategy_task.cancel() - print("passed the task stop") - RateOracle.get_instance().stop() - print("passed the rate oracle stop") - if self.clock: - self.clock.remove_iterator(self.strategy) - print("removed the iterator") - success = await self._cancel_outstanding_orders() - print("passed and cancelled the ]outstanding orders") - # Give some time for cancellation events to trigger - await asyncio.sleep(2) - if success: - # Only erase markets when cancellation has been successful - self.markets = {} - print("every thing ok") if self._trading_required and not skip_order_cancellation: # Remove the strategy from clock before cancelling orders, to diff --git a/hummingbot/client/config/config_var.py b/hummingbot/client/config/config_var.py index 6b57826d1fc..67a45abfcae 100644 --- a/hummingbot/client/config/config_var.py +++ b/hummingbot/client/config/config_var.py @@ -4,12 +4,8 @@ by ConfigVar. """ -from typing import ( - Optional, - Callable, - Union, -) import inspect +from typing import Callable, Optional, Union # function types passed into ConfigVar RequiredIf = Callable[[str], Optional[bool]] diff --git a/hummingbot/client/config/trade_fee_schema_loader.py b/hummingbot/client/config/trade_fee_schema_loader.py index 36c3aec5b7c..83da5469652 100644 --- a/hummingbot/client/config/trade_fee_schema_loader.py +++ b/hummingbot/client/config/trade_fee_schema_loader.py @@ -2,7 +2,7 @@ from hummingbot.client.config.fee_overrides_config_map import fee_overrides_config_map from hummingbot.client.settings import AllConnectorSettings -from hummingbot.core.data_type.trade_fee import TradeFeeSchema, TokenAmount +from hummingbot.core.data_type.trade_fee import TokenAmount, TradeFeeSchema class TradeFeeSchemaLoader: diff --git a/hummingbot/client/hummingbot_application.py b/hummingbot/client/hummingbot_application.py index 35da60f1e5b..dc4629c43f3 100644 --- a/hummingbot/client/hummingbot_application.py +++ b/hummingbot/client/hummingbot_application.py @@ -270,6 +270,7 @@ async def _cancel_outstanding_orders(self) -> bool: self.logger().error("Error canceling outstanding orders.", exc_info=True) success = False + await asyncio.sleep(5) if success: self.notify("All outstanding orders canceled.") return success diff --git a/hummingbot/client/tab/__init__.py b/hummingbot/client/tab/__init__.py index 3330b20bfea..aa4ddba3b67 100644 --- a/hummingbot/client/tab/__init__.py +++ b/hummingbot/client/tab/__init__.py @@ -1,5 +1,5 @@ -from .tab_example_tab import TabExampleTab from .order_book_tab import OrderBookTab +from .tab_example_tab import TabExampleTab __all__ = [ OrderBookTab, diff --git a/hummingbot/client/tab/data_types.py b/hummingbot/client/tab/data_types.py index 7ebc883d5d7..ed8eae45375 100644 --- a/hummingbot/client/tab/data_types.py +++ b/hummingbot/client/tab/data_types.py @@ -1,10 +1,11 @@ import asyncio - from dataclasses import dataclass +from typing import Optional, Type + from prompt_toolkit.widgets import Button -from typing import Type, Optional from hummingbot.client.ui.custom_widgets import CustomTextArea + from .tab_base import TabBase diff --git a/hummingbot/client/tab/order_book_tab.py b/hummingbot/client/tab/order_book_tab.py index 3bbb75ca839..e890b8803a4 100644 --- a/hummingbot/client/tab/order_book_tab.py +++ b/hummingbot/client/tab/order_book_tab.py @@ -1,11 +1,13 @@ import asyncio +from typing import TYPE_CHECKING, Any, Dict + import pandas as pd -from typing import TYPE_CHECKING, Dict, Any if TYPE_CHECKING: from hummingbot.client.hummingbot_application import HummingbotApplication from hummingbot.client.ui.custom_widgets import CustomTextArea + from .tab_base import TabBase diff --git a/hummingbot/client/tab/tab_base.py b/hummingbot/client/tab/tab_base.py index 442946f4595..df8deef6fad 100644 --- a/hummingbot/client/tab/tab_base.py +++ b/hummingbot/client/tab/tab_base.py @@ -1,8 +1,6 @@ -from abc import ( - ABCMeta, - abstractmethod, -) -from typing import TYPE_CHECKING, Dict, Any +from abc import ABCMeta, abstractmethod +from typing import TYPE_CHECKING, Any, Dict + if TYPE_CHECKING: from hummingbot.client.hummingbot_application import HummingbotApplication diff --git a/hummingbot/client/tab/tab_example_tab.py b/hummingbot/client/tab/tab_example_tab.py index fe94ae0f61b..7da55b06235 100644 --- a/hummingbot/client/tab/tab_example_tab.py +++ b/hummingbot/client/tab/tab_example_tab.py @@ -1,7 +1,10 @@ -from typing import TYPE_CHECKING, Dict, Any +from typing import TYPE_CHECKING, Any, Dict + if TYPE_CHECKING: from hummingbot.client.hummingbot_application import HummingbotApplication + from hummingbot.client.ui.custom_widgets import CustomTextArea + from .tab_base import TabBase diff --git a/hummingbot/client/ui/scroll_handlers.py b/hummingbot/client/ui/scroll_handlers.py index ba23474178c..01782adc605 100644 --- a/hummingbot/client/ui/scroll_handlers.py +++ b/hummingbot/client/ui/scroll_handlers.py @@ -1,7 +1,8 @@ -from prompt_toolkit.layout.containers import Window -from prompt_toolkit.buffer import Buffer from typing import Optional +from prompt_toolkit.buffer import Buffer +from prompt_toolkit.layout.containers import Window + def scroll_down(event, window: Optional[Window] = None, buffer: Optional[Buffer] = None): w = window or event.app.layout.current_window diff --git a/hummingbot/client/ui/stdout_redirection.py b/hummingbot/client/ui/stdout_redirection.py index 3a74dc51afd..0d5d9bb17f1 100644 --- a/hummingbot/client/ui/stdout_redirection.py +++ b/hummingbot/client/ui/stdout_redirection.py @@ -1,11 +1,11 @@ #!/usr/bin/env python from __future__ import unicode_literals -from asyncio import get_event_loop -from contextlib import contextmanager -import threading import sys +import threading +from asyncio import get_event_loop +from contextlib import contextmanager __all__ = [ 'patch_stdout', diff --git a/hummingbot/connector/connector_base.pxd b/hummingbot/connector/connector_base.pxd index 4ac74975900..1d673fad1e0 100644 --- a/hummingbot/connector/connector_base.pxd +++ b/hummingbot/connector/connector_base.pxd @@ -2,6 +2,7 @@ from hummingbot.core.event.event_logger cimport EventLogger from hummingbot.core.event.event_reporter cimport EventReporter from hummingbot.core.network_iterator cimport NetworkIterator + cdef class ConnectorBase(NetworkIterator): cdef: EventReporter _event_reporter diff --git a/hummingbot/connector/connector_base.pyx b/hummingbot/connector/connector_base.pyx index 3295e06a567..43263b2ac50 100644 --- a/hummingbot/connector/connector_base.pyx +++ b/hummingbot/connector/connector_base.pyx @@ -1,16 +1,18 @@ import asyncio import time from decimal import Decimal -from typing import Dict, List, Set, Tuple, TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Dict, List, Set, Tuple, Union from hummingbot.client.config.trade_fee_schema_loader import TradeFeeSchemaLoader +from hummingbot.connector.constants import s_decimal_0, s_decimal_NaN from hummingbot.connector.in_flight_order_base import InFlightOrderBase -from hummingbot.connector.utils import split_hb_trading_pair, TradeFillOrderDetails -from hummingbot.connector.constants import s_decimal_NaN, s_decimal_0 +from hummingbot.connector.utils import TradeFillOrderDetails, split_hb_trading_pair + from hummingbot.core.clock cimport Clock -from hummingbot.core.data_type.limit_order import LimitOrder + from hummingbot.core.data_type.cancellation_result import CancellationResult from hummingbot.core.data_type.common import OrderType, TradeType +from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.core.data_type.market_order import MarketOrder from hummingbot.core.event.event_logger import EventLogger from hummingbot.core.event.events import MarketEvent, OrderFilledEvent diff --git a/hummingbot/connector/exchange/binance/binance_order_book.py b/hummingbot/connector/exchange/binance/binance_order_book.py index 429ab4e3234..ad2a0f11b60 100644 --- a/hummingbot/connector/exchange/binance/binance_order_book.py +++ b/hummingbot/connector/exchange/binance/binance_order_book.py @@ -2,10 +2,7 @@ from hummingbot.core.data_type.common import TradeType from hummingbot.core.data_type.order_book import OrderBook -from hummingbot.core.data_type.order_book_message import ( - OrderBookMessage, - OrderBookMessageType -) +from hummingbot.core.data_type.order_book_message import OrderBookMessage, OrderBookMessageType class BinanceOrderBook(OrderBook): diff --git a/hummingbot/connector/exchange/cube/cube_ws_protobufs/market_data_pb2.pyi b/hummingbot/connector/exchange/cube/cube_ws_protobufs/market_data_pb2.pyi index 855471afb3c..6530d109a9b 100644 --- a/hummingbot/connector/exchange/cube/cube_ws_protobufs/market_data_pb2.pyi +++ b/hummingbot/connector/exchange/cube/cube_ws_protobufs/market_data_pb2.pyi @@ -1,8 +1,13 @@ -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union +from typing import ( + ClassVar as _ClassVar, + Iterable as _Iterable, + Mapping as _Mapping, + Optional as _Optional, + Union as _Union, +) + +from google.protobuf import descriptor as _descriptor, message as _message +from google.protobuf.internal import containers as _containers, enum_type_wrapper as _enum_type_wrapper DESCRIPTOR: _descriptor.FileDescriptor diff --git a/hummingbot/connector/exchange/cube/cube_ws_protobufs/trade_pb2.pyi b/hummingbot/connector/exchange/cube/cube_ws_protobufs/trade_pb2.pyi index fc3dcaa516e..950cc1f43dc 100644 --- a/hummingbot/connector/exchange/cube/cube_ws_protobufs/trade_pb2.pyi +++ b/hummingbot/connector/exchange/cube/cube_ws_protobufs/trade_pb2.pyi @@ -1,8 +1,13 @@ -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union +from typing import ( + ClassVar as _ClassVar, + Iterable as _Iterable, + Mapping as _Mapping, + Optional as _Optional, + Union as _Union, +) + +from google.protobuf import descriptor as _descriptor, message as _message +from google.protobuf.internal import containers as _containers, enum_type_wrapper as _enum_type_wrapper DESCRIPTOR: _descriptor.FileDescriptor diff --git a/hummingbot/connector/exchange/ndax/ndax_api_user_stream_data_source.py b/hummingbot/connector/exchange/ndax/ndax_api_user_stream_data_source.py index f6beea788b9..608820af28c 100644 --- a/hummingbot/connector/exchange/ndax/ndax_api_user_stream_data_source.py +++ b/hummingbot/connector/exchange/ndax/ndax_api_user_stream_data_source.py @@ -1,17 +1,13 @@ -import aiohttp import asyncio import logging import time -import ujson +from typing import Any, Dict, Optional -from typing import ( - Any, - Dict, - Optional, -) +import aiohttp +import ujson -from hummingbot.connector.exchange.ndax.ndax_auth import NdaxAuth from hummingbot.connector.exchange.ndax import ndax_constants as CONSTANTS, ndax_utils +from hummingbot.connector.exchange.ndax.ndax_auth import NdaxAuth from hummingbot.connector.exchange.ndax.ndax_websocket_adaptor import NdaxWebSocketAdaptor from hummingbot.core.api_throttler.async_throttler import AsyncThrottler from hummingbot.core.data_type.user_stream_tracker_data_source import UserStreamTrackerDataSource diff --git a/hummingbot/connector/exchange/ndax/ndax_auth.py b/hummingbot/connector/exchange/ndax/ndax_auth.py index 128c5f76374..0f6fef72f4a 100644 --- a/hummingbot/connector/exchange/ndax/ndax_auth.py +++ b/hummingbot/connector/exchange/ndax/ndax_auth.py @@ -1,6 +1,6 @@ import hashlib import hmac -from typing import Dict, Any +from typing import Any, Dict from hummingbot.core.utils.tracking_nonce import get_tracking_nonce_low_res diff --git a/hummingbot/connector/exchange/ndax/ndax_constants.py b/hummingbot/connector/exchange/ndax/ndax_constants.py index 478945618f1..20ec551caae 100644 --- a/hummingbot/connector/exchange/ndax/ndax_constants.py +++ b/hummingbot/connector/exchange/ndax/ndax_constants.py @@ -1,5 +1,5 @@ # A single source of truth for constant variables related to the exchange -from hummingbot.core.api_throttler.data_types import RateLimit, LinkedLimitWeightPair +from hummingbot.core.api_throttler.data_types import LinkedLimitWeightPair, RateLimit EXCHANGE_NAME = "ndax" diff --git a/hummingbot/connector/exchange/ndax/ndax_in_flight_order.py b/hummingbot/connector/exchange/ndax/ndax_in_flight_order.py index 15ae97512b0..9eb3cf373a5 100644 --- a/hummingbot/connector/exchange/ndax/ndax_in_flight_order.py +++ b/hummingbot/connector/exchange/ndax/ndax_in_flight_order.py @@ -1,9 +1,5 @@ from decimal import Decimal -from typing import ( - Any, - Dict, - Optional, -) +from typing import Any, Dict, Optional from hummingbot.connector.in_flight_order_base import InFlightOrderBase from hummingbot.core.data_type.common import OrderType, TradeType diff --git a/hummingbot/connector/exchange/ndax/ndax_order_book.py b/hummingbot/connector/exchange/ndax/ndax_order_book.py index e72a2ff17c2..5e38a052738 100644 --- a/hummingbot/connector/exchange/ndax/ndax_order_book.py +++ b/hummingbot/connector/exchange/ndax/ndax_order_book.py @@ -1,16 +1,10 @@ import logging +from typing import Any, Dict, List, Optional -from typing import ( - Optional, - Dict, - List, Any) import hummingbot.connector.exchange.ndax.ndax_constants as CONSTANTS from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookMessage from hummingbot.core.data_type.order_book import OrderBook -from hummingbot.core.data_type.order_book_message import ( - OrderBookMessage, - OrderBookMessageType, -) +from hummingbot.core.data_type.order_book_message import OrderBookMessage, OrderBookMessageType from hummingbot.logger import HummingbotLogger _logger = None diff --git a/hummingbot/connector/exchange/ndax/ndax_order_book_message.py b/hummingbot/connector/exchange/ndax/ndax_order_book_message.py index 84d8e68a217..28cded84733 100644 --- a/hummingbot/connector/exchange/ndax/ndax_order_book_message.py +++ b/hummingbot/connector/exchange/ndax/ndax_order_book_message.py @@ -1,17 +1,10 @@ #!/usr/bin/env python from collections import namedtuple -from typing import ( - Dict, - List, - Optional, -) +from typing import Dict, List, Optional +from hummingbot.core.data_type.order_book_message import OrderBookMessage, OrderBookMessageType from hummingbot.core.data_type.order_book_row import OrderBookRow -from hummingbot.core.data_type.order_book_message import ( - OrderBookMessage, - OrderBookMessageType, -) NdaxOrderBookEntry = namedtuple("NdaxOrderBookEntry", "mdUpdateId accountId actionDateTime actionType lastTradePrice orderId price productPairCode quantity side") NdaxTradeEntry = namedtuple("NdaxTradeEntry", "tradeId productPairCode quantity price order1 order2 tradeTime direction takerSide blockTrade orderClientId") diff --git a/hummingbot/connector/exchange/ndax/ndax_order_book_tracker.py b/hummingbot/connector/exchange/ndax/ndax_order_book_tracker.py index 9bfc0da38c8..c900a59c695 100644 --- a/hummingbot/connector/exchange/ndax/ndax_order_book_tracker.py +++ b/hummingbot/connector/exchange/ndax/ndax_order_book_tracker.py @@ -1,21 +1,20 @@ #!/usr/bin/env python import asyncio -import aiohttp import bisect import logging import time - from collections import defaultdict, deque -from typing import Optional, Dict, List, Deque +from typing import Deque, Dict, List, Optional + +import aiohttp import hummingbot.connector.exchange.ndax.ndax_constants as CONSTANTS +from hummingbot.connector.exchange.ndax.ndax_api_order_book_data_source import NdaxAPIOrderBookDataSource +from hummingbot.connector.exchange.ndax.ndax_order_book import NdaxOrderBook +from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookMessage from hummingbot.core.api_throttler.async_throttler import AsyncThrottler - from hummingbot.core.data_type.order_book_message import OrderBookMessageType from hummingbot.core.data_type.order_book_tracker import OrderBookTracker -from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookMessage -from hummingbot.connector.exchange.ndax.ndax_api_order_book_data_source import NdaxAPIOrderBookDataSource -from hummingbot.connector.exchange.ndax.ndax_order_book import NdaxOrderBook from hummingbot.logger import HummingbotLogger diff --git a/hummingbot/connector/exchange/ndax/ndax_user_stream_tracker.py b/hummingbot/connector/exchange/ndax/ndax_user_stream_tracker.py index ad3c69500f1..3c6a10f46e1 100644 --- a/hummingbot/connector/exchange/ndax/ndax_user_stream_tracker.py +++ b/hummingbot/connector/exchange/ndax/ndax_user_stream_tracker.py @@ -8,10 +8,7 @@ from hummingbot.core.api_throttler.async_throttler import AsyncThrottler from hummingbot.core.data_type.user_stream_tracker import UserStreamTracker from hummingbot.core.data_type.user_stream_tracker_data_source import UserStreamTrackerDataSource -from hummingbot.core.utils.async_utils import ( - safe_ensure_future, - safe_gather, -) +from hummingbot.core.utils.async_utils import safe_ensure_future, safe_gather from hummingbot.logger import HummingbotLogger diff --git a/hummingbot/connector/exchange/ndax/ndax_websocket_adaptor.py b/hummingbot/connector/exchange/ndax/ndax_websocket_adaptor.py index ff8f4c099e3..1a943c0c269 100644 --- a/hummingbot/connector/exchange/ndax/ndax_websocket_adaptor.py +++ b/hummingbot/connector/exchange/ndax/ndax_websocket_adaptor.py @@ -1,8 +1,8 @@ -import aiohttp import asyncio from enum import Enum -from typing import AsyncIterable, Dict, Any, Optional +from typing import Any, AsyncIterable, Dict, Optional +import aiohttp import ujson import hummingbot.connector.exchange.ndax.ndax_constants as CONSTANTS diff --git a/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pxd b/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pxd index d55715b51a2..948f32c1b32 100644 --- a/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pxd +++ b/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pxd @@ -5,9 +5,10 @@ from libcpp.utility cimport pair from hummingbot.core.data_type.LimitOrder cimport LimitOrder as CPPLimitOrder from hummingbot.core.data_type.OrderExpirationEntry cimport OrderExpirationEntry as CPPOrderExpirationEntry + from hummingbot.core.data_type.order_book_tracker import OrderBookTracker -from hummingbot.connector.exchange_base cimport ExchangeBase +from hummingbot.connector.exchange_base cimport ExchangeBase ctypedef cpp_set[CPPLimitOrder] SingleTradingPairLimitOrders ctypedef unordered_map[string, SingleTradingPairLimitOrders].iterator LimitOrdersIterator diff --git a/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pyx b/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pyx index 43f94518718..749ddf52690 100644 --- a/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pyx +++ b/hummingbot/connector/exchange/paper_trade/paper_trade_exchange.pyx @@ -4,8 +4,8 @@ import asyncio import math import random from collections import defaultdict, deque -from decimal import Decimal, ROUND_DOWN -from typing import Callable, Dict, List, Optional, Tuple, TYPE_CHECKING +from decimal import ROUND_DOWN, Decimal +from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Tuple from cpython cimport PyObject from cython.operator cimport address, dereference as deref, postincrement as inc @@ -16,18 +16,26 @@ from hummingbot.connector.budget_checker import BudgetChecker from hummingbot.connector.connector_metrics_collector import DummyMetricsCollector from hummingbot.connector.exchange.paper_trade.trading_pair import TradingPair from hummingbot.connector.exchange_base import ExchangeBase + from hummingbot.core.clock cimport Clock + from hummingbot.core.clock import Clock from hummingbot.core.data_type.cancellation_result import CancellationResult from hummingbot.core.data_type.common import OrderType, TradeType from hummingbot.core.data_type.composite_order_book import CompositeOrderBook + from hummingbot.core.data_type.composite_order_book cimport CompositeOrderBook + from hummingbot.core.data_type.limit_order import LimitOrder + from hummingbot.core.data_type.limit_order cimport c_create_limit_order_from_cpp_limit_order from hummingbot.core.data_type.order_book cimport OrderBook + from hummingbot.core.data_type.order_book_tracker import OrderBookTracker from hummingbot.core.data_type.order_candidate import OrderCandidate + from hummingbot.core.event.event_listener cimport EventListener + from hummingbot.core.event.events import ( BuyOrderCompletedEvent, BuyOrderCreatedEvent, @@ -41,7 +49,9 @@ from hummingbot.core.event.events import ( SellOrderCreatedEvent, ) from hummingbot.core.network_iterator import NetworkStatus + from hummingbot.core.Utils cimport getIteratorFromReverseIterator, reverse_iterator + from hummingbot.core.utils.async_utils import safe_ensure_future from hummingbot.core.utils.estimate_fee import build_trade_fee diff --git a/hummingbot/connector/exchange_base.pxd b/hummingbot/connector/exchange_base.pxd index 6b98e828797..4b3c37d12d7 100644 --- a/hummingbot/connector/exchange_base.pxd +++ b/hummingbot/connector/exchange_base.pxd @@ -1,11 +1,9 @@ -from hummingbot.core.event.event_reporter cimport EventReporter -from hummingbot.core.event.event_logger cimport EventLogger -from hummingbot.core.data_type.order_book cimport OrderBook from hummingbot.connector.connector_base cimport ConnectorBase -from hummingbot.core.data_type.order_book_query_result cimport( - ClientOrderBookQueryResult, - OrderBookQueryResult, -) +from hummingbot.core.data_type.order_book cimport OrderBook +from hummingbot.core.data_type.order_book_query_result cimport ClientOrderBookQueryResult, OrderBookQueryResult +from hummingbot.core.event.event_logger cimport EventLogger +from hummingbot.core.event.event_reporter cimport EventReporter + cdef class ExchangeBase(ConnectorBase): cdef: diff --git a/hummingbot/connector/exchange_base.pyx b/hummingbot/connector/exchange_base.pyx index 6fd17401226..a04bdf7712e 100644 --- a/hummingbot/connector/exchange_base.pyx +++ b/hummingbot/connector/exchange_base.pyx @@ -1,6 +1,6 @@ import asyncio from decimal import Decimal -from typing import Dict, List, Iterator, Mapping, Optional, TYPE_CHECKING +from typing import TYPE_CHECKING, Dict, Iterator, List, Mapping, Optional from bidict import bidict diff --git a/hummingbot/connector/gateway/amm/gateway_cardano_amm.py b/hummingbot/connector/gateway/amm/gateway_cardano_amm.py index ec4f54fac0a..edd635c12e7 100755 --- a/hummingbot/connector/gateway/amm/gateway_cardano_amm.py +++ b/hummingbot/connector/gateway/amm/gateway_cardano_amm.py @@ -1,21 +1,26 @@ import asyncio import itertools as it from decimal import Decimal -from typing import List, Optional, TYPE_CHECKING, Any, Dict, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union + from hummingbot.connector.gateway.amm.gateway_amm_base import GatewayAMMBase -from hummingbot.core.data_type.cancellation_result import CancellationResult -from hummingbot.core.utils import async_ttl_cache from hummingbot.connector.gateway.gateway_in_flight_order import GatewayInFlightOrder +from hummingbot.core.data_type.cancellation_result import CancellationResult from hummingbot.core.data_type.in_flight_order import OrderState, OrderUpdate from hummingbot.core.data_type.trade_fee import TokenAmount from hummingbot.core.event.events import TradeType from hummingbot.core.gateway.gateway_http_client import GatewayHttpClient +from hummingbot.core.utils import async_ttl_cache from hummingbot.core.utils.async_utils import safe_ensure_future, safe_gather from hummingbot.core.utils.tracking_nonce import NonceCreator from hummingbot.logger import HummingbotLogger + if TYPE_CHECKING: from hummingbot.client.config.config_helpers import ClientConfigAdapter + from hummingbot.core.gateway import check_transaction_exceptions + + class GatewayCardanoAMM(GatewayAMMBase): """ Defines basic functions common to connectors that interact with Gateway. diff --git a/hummingbot/connector/in_flight_order_base.pyx b/hummingbot/connector/in_flight_order_base.pyx index f1588cdc0ca..66cf6090946 100644 --- a/hummingbot/connector/in_flight_order_base.pyx +++ b/hummingbot/connector/in_flight_order_base.pyx @@ -1,11 +1,6 @@ import asyncio from decimal import Decimal -from typing import ( - Any, - Dict, - List, - Optional, -) +from typing import Any, Dict, List, Optional from async_timeout import timeout diff --git a/hummingbot/connector/markets_recorder.py b/hummingbot/connector/markets_recorder.py index 178ca50afc7..27806e97faa 100644 --- a/hummingbot/connector/markets_recorder.py +++ b/hummingbot/connector/markets_recorder.py @@ -9,7 +9,6 @@ from typing import Dict, List, Optional, Tuple, Union import pandas as pd -from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from sqlalchemy.orm import Query, Session from hummingbot import data_path @@ -49,6 +48,7 @@ from hummingbot.model.sql_connection_manager import SQLConnectionManager from hummingbot.model.trade_fill import TradeFill from hummingbot.strategy_v2.controllers.controller_base import ControllerConfigBase +from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.models.executors_info import ExecutorInfo @@ -197,12 +197,12 @@ def stop(self): def store_or_update_executor(self, executor): with self._sql_manager.get_new_session() as session: existing_executor = session.query(Executors).filter(Executors.id == executor.config.id).one_or_none() + if (isinstance(executor.executor_info.config, TriangularArbExecutorConfig)): + executor.executor_info.config.confirm_round_callback = None + executor.executor_info.config.set_stop = None serialized_config = executor.executor_info.json() executor_dict = json.loads(serialized_config) - if existing_executor: - print("found this exec %s", existing_executor) - self.logger().info("found this exec %s", existing_executor) - + if existing_executor: # Update existing executor for attr, value in executor_dict.items(): setattr(existing_executor, attr, value) @@ -213,6 +213,7 @@ def store_or_update_executor(self, executor): # Necessary for triangular to be json serializable compatible if (isinstance(raw_config.config, TriangularArbExecutorConfig)): raw_config.config.confirm_round_callback = None + raw_config.config.set_stop = None serialized_config = raw_config.json() new_executor = Executors(**executor_dict) diff --git a/hummingbot/connector/test_support/mock_paper_exchange.pxd b/hummingbot/connector/test_support/mock_paper_exchange.pxd index 85b6818fb7d..4b9977c10a1 100644 --- a/hummingbot/connector/test_support/mock_paper_exchange.pxd +++ b/hummingbot/connector/test_support/mock_paper_exchange.pxd @@ -1,5 +1,6 @@ from hummingbot.connector.exchange.paper_trade.paper_trade_exchange cimport PaperTradeExchange + cdef class MockPaperExchange(PaperTradeExchange): cdef c_set_balanced_order_book(self, str trading_pair, diff --git a/hummingbot/connector/test_support/mock_paper_exchange.pyx b/hummingbot/connector/test_support/mock_paper_exchange.pyx index eebe2eca36d..133aaa759da 100644 --- a/hummingbot/connector/test_support/mock_paper_exchange.pyx +++ b/hummingbot/connector/test_support/mock_paper_exchange.pyx @@ -1,18 +1,24 @@ from decimal import Decimal -from typing import List, Optional, Tuple, TYPE_CHECKING +from typing import TYPE_CHECKING, List, Optional, Tuple import numpy as np from hummingbot.client.config.fee_overrides_config_map import fee_overrides_config_map, fee_overrides_dict from hummingbot.client.settings import AllConnectorSettings, ConnectorSetting, ConnectorType + from hummingbot.connector.connector_base cimport ConnectorBase from hummingbot.connector.exchange.paper_trade.paper_trade_exchange cimport PaperTradeExchange, QuantizationParams + from hummingbot.connector.exchange.paper_trade.paper_trade_exchange import QuantizationParams from hummingbot.connector.exchange.paper_trade.trading_pair import TradingPair from hummingbot.connector.test_support.mock_order_tracker import MockOrderTracker + from hummingbot.core.clock cimport Clock + from hummingbot.core.data_type.common import OrderType + from hummingbot.core.data_type.composite_order_book cimport CompositeOrderBook + from hummingbot.core.data_type.order_book import OrderBookRow from hummingbot.core.data_type.trade_fee import TradeFeeSchema from hummingbot.core.network_iterator import NetworkStatus diff --git a/hummingbot/core/api_throttler/data_types.py b/hummingbot/core/api_throttler/data_types.py index 2bbf2115eb1..245e93bc7e9 100644 --- a/hummingbot/core/api_throttler/data_types.py +++ b/hummingbot/core/api_throttler/data_types.py @@ -1,8 +1,5 @@ from dataclasses import dataclass -from typing import ( - List, - Optional, -) +from typing import List, Optional DEFAULT_PATH = "" DEFAULT_WEIGHT = 1 diff --git a/hummingbot/core/data_type/LimitOrder.pxd b/hummingbot/core/data_type/LimitOrder.pxd index 07c49888063..8cdac478e27 100644 --- a/hummingbot/core/data_type/LimitOrder.pxd +++ b/hummingbot/core/data_type/LimitOrder.pxd @@ -3,6 +3,7 @@ from libcpp cimport bool as cppbool from libcpp.string cimport string + cdef extern from "../cpp/LimitOrder.h": ctypedef struct PyObject diff --git a/hummingbot/core/data_type/OrderBookEntry.pxd b/hummingbot/core/data_type/OrderBookEntry.pxd index de4969b22c7..3f4254547e1 100644 --- a/hummingbot/core/data_type/OrderBookEntry.pxd +++ b/hummingbot/core/data_type/OrderBookEntry.pxd @@ -3,6 +3,7 @@ from libc.stdint cimport int64_t from libcpp.set cimport set + cdef extern from "../cpp/OrderBookEntry.h": cdef cppclass OrderBookEntry: OrderBookEntry() diff --git a/hummingbot/core/data_type/OrderExpirationEntry.pxd b/hummingbot/core/data_type/OrderExpirationEntry.pxd index ba0148734aa..43012b38327 100644 --- a/hummingbot/core/data_type/OrderExpirationEntry.pxd +++ b/hummingbot/core/data_type/OrderExpirationEntry.pxd @@ -2,6 +2,7 @@ from libcpp.string cimport string + cdef extern from "../cpp/OrderExpirationEntry.h": cdef cppclass OrderExpirationEntry: OrderExpirationEntry() diff --git a/hummingbot/core/data_type/composite_order_book.pxd b/hummingbot/core/data_type/composite_order_book.pxd index 6f68e358481..4f88e6190e6 100644 --- a/hummingbot/core/data_type/composite_order_book.pxd +++ b/hummingbot/core/data_type/composite_order_book.pxd @@ -1,6 +1,7 @@ # distutils: language=c++ from hummingbot.core.data_type.order_book cimport OrderBook + cdef class CompositeOrderBook(OrderBook): cdef: OrderBook _traded_order_book diff --git a/hummingbot/core/data_type/composite_order_book.pyx b/hummingbot/core/data_type/composite_order_book.pyx index 8dded1e1cf8..0185765bc34 100644 --- a/hummingbot/core/data_type/composite_order_book.pyx +++ b/hummingbot/core/data_type/composite_order_book.pyx @@ -4,13 +4,15 @@ from typing import Iterator from cython.operator cimport address as ref, dereference as deref, postincrement as inc -from hummingbot.core.data_type.OrderBookEntry cimport OrderBookEntry from libcpp.set cimport set from libcpp.vector cimport vector +from hummingbot.core.data_type.OrderBookEntry cimport OrderBookEntry + from hummingbot.core.data_type.common import TradeType from hummingbot.core.data_type.order_book_row import OrderBookRow + cdef class CompositeOrderBook(OrderBook): """ Record orders that are bought during back testing and used to simulate order book consumption without modifying diff --git a/hummingbot/core/data_type/limit_order.pyx b/hummingbot/core/data_type/limit_order.pyx index ecda2408c2f..0a47456355d 100644 --- a/hummingbot/core/data_type/limit_order.pyx +++ b/hummingbot/core/data_type/limit_order.pyx @@ -5,12 +5,14 @@ from decimal import Decimal from typing import List import pandas as pd + from cpython cimport PyObject from libcpp.string cimport string -from hummingbot.core.data_type.common import PositionAction, OrderType +from hummingbot.core.data_type.common import OrderType, PositionAction from hummingbot.core.event.events import LimitOrderStatus + cdef class LimitOrder: """ A Python wrapper class on C++ LimitOrder. This data class is used to store order information and it is passed around diff --git a/hummingbot/core/data_type/order_book.pxd b/hummingbot/core/data_type/order_book.pxd index 9af97b08248..6d756834782 100644 --- a/hummingbot/core/data_type/order_book.pxd +++ b/hummingbot/core/data_type/order_book.pxd @@ -1,12 +1,14 @@ # distutils: language=c++ +cimport numpy as np from libc.stdint cimport int64_t from libcpp.set cimport set from libcpp.vector cimport vector + from hummingbot.core.data_type.OrderBookEntry cimport OrderBookEntry from hummingbot.core.pubsub cimport PubSub + from .order_book_query_result cimport OrderBookQueryResult -cimport numpy as np cdef class OrderBook(PubSub): diff --git a/hummingbot/core/data_type/order_book.pyx b/hummingbot/core/data_type/order_book.pyx index 8142e432913..e2596c20fc5 100644 --- a/hummingbot/core/data_type/order_book.pyx +++ b/hummingbot/core/data_type/order_book.pyx @@ -3,32 +3,21 @@ import bisect import logging import time -from typing import ( - Dict, - Iterator, - List, - Optional, - Tuple, -) +from typing import Dict, Iterator, List, Optional, Tuple import numpy as np import pandas as pd -from cython.operator cimport( - address as ref, - dereference as deref, - postincrement as inc, -) +from cython.operator cimport address as ref, dereference as deref, postincrement as inc from hummingbot.core.data_type.order_book_message import OrderBookMessage from hummingbot.core.data_type.order_book_query_result import OrderBookQueryResult from hummingbot.core.data_type.order_book_row import OrderBookRow + from hummingbot.core.data_type.OrderBookEntry cimport truncateOverlapEntries + +from hummingbot.core.event.events import OrderBookEvent, OrderBookTradeEvent from hummingbot.logger import HummingbotLogger -from hummingbot.core.event.events import ( - OrderBookEvent, - OrderBookTradeEvent -) cimport numpy as np diff --git a/hummingbot/core/data_type/order_expiration_entry.pyx b/hummingbot/core/data_type/order_expiration_entry.pyx index 694bfb79a13..75afdc1e2eb 100644 --- a/hummingbot/core/data_type/order_expiration_entry.pyx +++ b/hummingbot/core/data_type/order_expiration_entry.pyx @@ -2,9 +2,12 @@ # distutils: sources=hummingbot/core/cpp/OrderExpirationEntry.cpp from libcpp.string cimport string -import pandas as pd + from typing import List +import pandas as pd + + cdef class OrderExpirationEntry: @classmethod def to_pandas(cls, order_expiration_entries: List[OrderExpirationEntry]) -> pd.DataFrame: diff --git a/hummingbot/core/data_type/remote_api_order_book_data_source.py b/hummingbot/core/data_type/remote_api_order_book_data_source.py index d6ad0352390..1bb108812bc 100755 --- a/hummingbot/core/data_type/remote_api_order_book_data_source.py +++ b/hummingbot/core/data_type/remote_api_order_book_data_source.py @@ -1,26 +1,22 @@ #!/usr/bin/env python import asyncio -import aiohttp import base64 import logging -import pandas as pd -from typing import ( - Dict, - Optional, - Tuple, - AsyncIterable -) import pickle import time +from typing import AsyncIterable, Dict, Optional, Tuple + +import aiohttp +import pandas as pd import websockets from websockets.exceptions import ConnectionClosed import conf from hummingbot.connector.exchange.binance.binance_order_book import BinanceOrderBook from hummingbot.core.data_type.order_book_tracker_data_source import OrderBookTrackerDataSource -from hummingbot.logger import HummingbotLogger from hummingbot.core.data_type.order_book_tracker_entry import OrderBookTrackerEntry +from hummingbot.logger import HummingbotLogger class RemoteAPIOrderBookDataSource(OrderBookTrackerDataSource): diff --git a/hummingbot/core/data_type/trade.py b/hummingbot/core/data_type/trade.py index bb58ff20bd1..537e1e82499 100644 --- a/hummingbot/core/data_type/trade.py +++ b/hummingbot/core/data_type/trade.py @@ -6,8 +6,8 @@ import pandas as pd -from hummingbot.core.data_type.trade_fee import TradeFeeBase from hummingbot.core.data_type.common import OrderType, TradeType +from hummingbot.core.data_type.trade_fee import TradeFeeBase class Trade(namedtuple("_Trade", "trading_pair, side, price, amount, order_type, market, timestamp, trade_fee")): diff --git a/hummingbot/core/event/event_logger.pyx b/hummingbot/core/event/event_logger.pyx index a801684695f..73afbdecabf 100644 --- a/hummingbot/core/event/event_logger.pyx +++ b/hummingbot/core/event/event_logger.pyx @@ -1,15 +1,14 @@ import asyncio from collections import deque +from typing import List, Optional from async_timeout import timeout -from typing import ( - List, - Optional, -) from hummingbot.core.event.event_listener cimport EventListener + from hummingbot.core.event.events import OrderFilledEvent + cdef class EventLogger(EventListener): def __init__(self, event_source: Optional[str] = None): super().__init__() diff --git a/hummingbot/core/event/event_reporter.pyx b/hummingbot/core/event/event_reporter.pyx index 75e1bff1ccf..748f5d8e9dc 100644 --- a/hummingbot/core/event/event_reporter.pyx +++ b/hummingbot/core/event/event_reporter.pyx @@ -1,6 +1,7 @@ +import dataclasses import logging from typing import Optional -import dataclasses + from hummingbot.core.event.event_listener cimport EventListener er_logger = None diff --git a/hummingbot/core/management/diagnosis.py b/hummingbot/core/management/diagnosis.py index 0ce06d8a5e2..a63b6f41968 100644 --- a/hummingbot/core/management/diagnosis.py +++ b/hummingbot/core/management/diagnosis.py @@ -5,8 +5,9 @@ """ import asyncio +from typing import Coroutine, Generator, List, Union + import pandas as pd -from typing import Coroutine, Generator, Union, List def get_coro_name(coro: Union[Coroutine, Generator]) -> str: diff --git a/hummingbot/core/mock_api/mock_web_socket_server.py b/hummingbot/core/mock_api/mock_web_socket_server.py index 89a2629617e..ebcc76fcc53 100644 --- a/hummingbot/core/mock_api/mock_web_socket_server.py +++ b/hummingbot/core/mock_api/mock_web_socket_server.py @@ -1,8 +1,8 @@ import asyncio +import errno +import socket from threading import Event, Thread from typing import Optional -import socket -import errno from urllib.parse import urlparse import aiohttp diff --git a/hummingbot/core/network_iterator.pyx b/hummingbot/core/network_iterator.pyx index 18a1da144f5..b03a5ddb8f7 100644 --- a/hummingbot/core/network_iterator.pyx +++ b/hummingbot/core/network_iterator.pyx @@ -1,14 +1,15 @@ # distutils: language=c++ import asyncio -from enum import Enum import logging +from enum import Enum from typing import Optional from hummingbot.core.clock cimport Clock -from hummingbot.logger import HummingbotLogger -from hummingbot.core.utils.async_utils import safe_ensure_future + from hummingbot.core.time_iterator import TimeIterator +from hummingbot.core.utils.async_utils import safe_ensure_future +from hummingbot.logger import HummingbotLogger NaN = float("nan") ni_logger = None diff --git a/hummingbot/core/pubsub.pxd b/hummingbot/core/pubsub.pxd index f2f4d8fd643..1c3aed7e0ef 100644 --- a/hummingbot/core/pubsub.pxd +++ b/hummingbot/core/pubsub.pxd @@ -4,8 +4,9 @@ from libc.stdint cimport int64_t from libcpp.unordered_map cimport unordered_map from libcpp.unordered_set cimport unordered_set from libcpp.utility cimport pair -from hummingbot.core.PyRef cimport PyRef + from hummingbot.core.event.event_listener cimport EventListener +from hummingbot.core.PyRef cimport PyRef ctypedef unordered_set[PyRef] EventListenersCollection ctypedef unordered_set[PyRef].iterator EventListenersIterator diff --git a/hummingbot/core/pubsub.pyx b/hummingbot/core/pubsub.pyx index a86fd9b3d5e..2168e4bcfab 100644 --- a/hummingbot/core/pubsub.pyx +++ b/hummingbot/core/pubsub.pyx @@ -1,24 +1,18 @@ # distutils: language=c++ # distutils: sources=hummingbot/core/cpp/PyRef.cpp -from cpython cimport( - PyObject, - PyWeakref_NewRef, - PyWeakref_GetObject -) -from cython.operator cimport( - postincrement as inc, - dereference as deref, - address -) +from cpython cimport PyObject, PyWeakref_GetObject, PyWeakref_NewRef +from cython.operator cimport address, dereference as deref, postincrement as inc from libcpp.vector cimport vector -from enum import Enum + import logging import random +from enum import Enum from typing import List -from hummingbot.logger import HummingbotLogger from hummingbot.core.event.event_listener import EventListener +from hummingbot.logger import HummingbotLogger + from hummingbot.core.event.event_listener cimport EventListener class_logger = None diff --git a/hummingbot/core/utils/__init__.py b/hummingbot/core/utils/__init__.py index badf740ca8a..6424852f1a4 100644 --- a/hummingbot/core/utils/__init__.py +++ b/hummingbot/core/utils/__init__.py @@ -1,8 +1,9 @@ -import cachetools import errno import functools -import numpy as np import socket + +import cachetools +import numpy as np import pandas as pd diff --git a/hummingbot/core/utils/async_retry.py b/hummingbot/core/utils/async_retry.py index fdd8e9594aa..6b4502014fa 100644 --- a/hummingbot/core/utils/async_retry.py +++ b/hummingbot/core/utils/async_retry.py @@ -5,13 +5,7 @@ import asyncio import functools import logging -from typing import ( - Dict, - Optional, - List, - Any, - Type, -) +from typing import Any, Dict, List, Optional, Type class AllTriesFailedException(EnvironmentError): diff --git a/hummingbot/core/utils/estimate_fee.py b/hummingbot/core/utils/estimate_fee.py index 152d8a56182..fd33e43b851 100644 --- a/hummingbot/core/utils/estimate_fee.py +++ b/hummingbot/core/utils/estimate_fee.py @@ -1,14 +1,10 @@ +import warnings from decimal import Decimal from typing import List, Optional -import warnings from hummingbot.client.config.trade_fee_schema_loader import TradeFeeSchemaLoader -from hummingbot.core.data_type.trade_fee import ( - TradeFeeBase, - TokenAmount, - TradeFeeSchema -) from hummingbot.core.data_type.common import OrderType, PositionAction, TradeType +from hummingbot.core.data_type.trade_fee import TokenAmount, TradeFeeBase, TradeFeeSchema def build_trade_fee( diff --git a/hummingbot/core/utils/ssl_client_request.py b/hummingbot/core/utils/ssl_client_request.py index 92dfd512b93..ba363e59692 100644 --- a/hummingbot/core/utils/ssl_client_request.py +++ b/hummingbot/core/utils/ssl_client_request.py @@ -1,10 +1,11 @@ #!/usr/bin/env python -from aiohttp import ClientRequest -import certifi import ssl from typing import Optional +import certifi +from aiohttp import ClientRequest + class SSLClientRequest(ClientRequest): _sslcr_default_ssl_context: Optional[ssl.SSLContext] = None diff --git a/hummingbot/core/web_assistant/connections/rest_connection.py b/hummingbot/core/web_assistant/connections/rest_connection.py index 66e12ed5980..7c67e0d2de5 100644 --- a/hummingbot/core/web_assistant/connections/rest_connection.py +++ b/hummingbot/core/web_assistant/connections/rest_connection.py @@ -1,4 +1,5 @@ import aiohttp + from hummingbot.core.web_assistant.connections.data_types import RESTRequest, RESTResponse diff --git a/hummingbot/data_feed/custom_api_data_feed.py b/hummingbot/data_feed/custom_api_data_feed.py index 13d2adca4a4..d22cc7d5a2d 100644 --- a/hummingbot/data_feed/custom_api_data_feed.py +++ b/hummingbot/data_feed/custom_api_data_feed.py @@ -1,12 +1,14 @@ import asyncio -import aiohttp import logging +from decimal import Decimal from typing import Optional + +import aiohttp + from hummingbot.core.network_base import NetworkBase from hummingbot.core.network_iterator import NetworkStatus -from hummingbot.logger import HummingbotLogger from hummingbot.core.utils.async_utils import safe_ensure_future -from decimal import Decimal +from hummingbot.logger import HummingbotLogger class CustomAPIDataFeed(NetworkBase): diff --git a/hummingbot/logger/__init__.py b/hummingbot/logger/__init__.py index eae1773f855..9d518b475a2 100644 --- a/hummingbot/logger/__init__.py +++ b/hummingbot/logger/__init__.py @@ -2,14 +2,7 @@ import logging from decimal import Decimal from enum import Enum -from logging import ( - DEBUG, - INFO, - WARNING, - ERROR, - CRITICAL -) - +from logging import CRITICAL, DEBUG, ERROR, INFO, WARNING from .logger import HummingbotLogger diff --git a/hummingbot/logger/application_warning.py b/hummingbot/logger/application_warning.py index 5871d4fc24e..da9927b0508 100644 --- a/hummingbot/logger/application_warning.py +++ b/hummingbot/logger/application_warning.py @@ -1,10 +1,6 @@ #!/usr/bin/env python -from typing import ( - NamedTuple, - Tuple, - Optional -) +from typing import NamedTuple, Optional, Tuple class ApplicationWarning(NamedTuple): diff --git a/hummingbot/logger/cli_handler.py b/hummingbot/logger/cli_handler.py index 90f4bfd8a2d..5404fb37439 100644 --- a/hummingbot/logger/cli_handler.py +++ b/hummingbot/logger/cli_handler.py @@ -1,8 +1,8 @@ #!/usr/bin/env python +from datetime import datetime from logging import StreamHandler from typing import Optional -from datetime import datetime class CLIHandler(StreamHandler): diff --git a/hummingbot/logger/struct_logger.py b/hummingbot/logger/struct_logger.py index 88945edd3e3..b77133eb584 100644 --- a/hummingbot/logger/struct_logger.py +++ b/hummingbot/logger/struct_logger.py @@ -1,10 +1,7 @@ import json import logging -from hummingbot.logger import ( - HummingbotLogger, - log_encoder, -) +from hummingbot.logger import HummingbotLogger, log_encoder EVENT_LOG_LEVEL = 15 METRICS_LOG_LEVEL = 14 diff --git a/hummingbot/model/db_migration/base_transformation.py b/hummingbot/model/db_migration/base_transformation.py index 182e4b48829..bc1212f285f 100644 --- a/hummingbot/model/db_migration/base_transformation.py +++ b/hummingbot/model/db_migration/base_transformation.py @@ -1,9 +1,8 @@ +import functools import logging from abc import ABC, abstractmethod -import functools -from sqlalchemy import ( - Column, -) + +from sqlalchemy import Column @functools.total_ordering diff --git a/hummingbot/model/funding_payment.py b/hummingbot/model/funding_payment.py index cd11bf1dec3..b9ec610e841 100644 --- a/hummingbot/model/funding_payment.py +++ b/hummingbot/model/funding_payment.py @@ -1,20 +1,10 @@ #!/usr/bin/env python -import pandas as pd -from typing import ( - List, - Optional, -) -from sqlalchemy import ( - Column, - Text, - Index, - BigInteger, - Float, -) -from sqlalchemy.orm import ( - Session -) from datetime import datetime +from typing import List, Optional + +import pandas as pd +from sqlalchemy import BigInteger, Column, Float, Index, Text +from sqlalchemy.orm import Session from . import HummingbotBase diff --git a/hummingbot/model/inventory_cost.py b/hummingbot/model/inventory_cost.py index f963f0097ea..d341f14bb17 100644 --- a/hummingbot/model/inventory_cost.py +++ b/hummingbot/model/inventory_cost.py @@ -1,13 +1,7 @@ from decimal import Decimal from typing import Optional -from sqlalchemy import ( - Column, - Integer, - Numeric, - String, - UniqueConstraint, -) +from sqlalchemy import Column, Integer, Numeric, String, UniqueConstraint from sqlalchemy.orm import Session from hummingbot.model import HummingbotBase diff --git a/hummingbot/model/market_state.py b/hummingbot/model/market_state.py index 543714e8250..d205d06bb2f 100644 --- a/hummingbot/model/market_state.py +++ b/hummingbot/model/market_state.py @@ -1,13 +1,6 @@ #!/usr/bin/env python -from sqlalchemy import ( - Column, - Text, - JSON, - Integer, - BigInteger, - Index -) +from sqlalchemy import JSON, BigInteger, Column, Index, Integer, Text from . import HummingbotBase diff --git a/hummingbot/model/metadata.py b/hummingbot/model/metadata.py index c581883a615..e828d6639a4 100644 --- a/hummingbot/model/metadata.py +++ b/hummingbot/model/metadata.py @@ -1,9 +1,6 @@ #!/usr/bin/env python -from sqlalchemy import ( - Column, - Text, -) +from sqlalchemy import Column, Text from . import HummingbotBase diff --git a/hummingbot/model/order.py b/hummingbot/model/order.py index b6bdb119ea0..3090cbf9775 100644 --- a/hummingbot/model/order.py +++ b/hummingbot/model/order.py @@ -1,16 +1,7 @@ -from typing import ( - Dict, - Any -) +from typing import Any, Dict import numpy -from sqlalchemy import ( - BigInteger, - Column, - Index, - Integer, - Text, -) +from sqlalchemy import BigInteger, Column, Index, Integer, Text from sqlalchemy.orm import relationship from hummingbot.model import HummingbotBase diff --git a/hummingbot/model/order_status.py b/hummingbot/model/order_status.py index 1e63f5d4bf7..ef76dff6345 100644 --- a/hummingbot/model/order_status.py +++ b/hummingbot/model/order_status.py @@ -1,16 +1,7 @@ #!/usr/bin/env python -from typing import ( - Dict, - Any -) -from sqlalchemy import ( - Column, - Text, - Integer, - BigInteger, - ForeignKey, - Index -) +from typing import Any, Dict + +from sqlalchemy import BigInteger, Column, ForeignKey, Index, Integer, Text from sqlalchemy.orm import relationship from . import HummingbotBase diff --git a/hummingbot/strategy/__utils__/ring_buffer.pxd b/hummingbot/strategy/__utils__/ring_buffer.pxd index 9b51c4e6773..115aff63fab 100644 --- a/hummingbot/strategy/__utils__/ring_buffer.pxd +++ b/hummingbot/strategy/__utils__/ring_buffer.pxd @@ -1,6 +1,8 @@ import numpy as np -from libc.stdint cimport int64_t + cimport numpy as np +from libc.stdint cimport int64_t + cdef class RingBuffer: cdef: diff --git a/hummingbot/strategy/__utils__/ring_buffer.pyx b/hummingbot/strategy/__utils__/ring_buffer.pyx index 4f480d4c3e8..956357bcdde 100644 --- a/hummingbot/strategy/__utils__/ring_buffer.pyx +++ b/hummingbot/strategy/__utils__/ring_buffer.pyx @@ -1,7 +1,8 @@ -import numpy as np import logging -cimport numpy as np +import numpy as np + +cimport numpy as np pmm_logger = None diff --git a/hummingbot/strategy/__utils__/trailing_indicators/exponential_moving_average.py b/hummingbot/strategy/__utils__/trailing_indicators/exponential_moving_average.py index ed380fc99a4..f6d53233c00 100644 --- a/hummingbot/strategy/__utils__/trailing_indicators/exponential_moving_average.py +++ b/hummingbot/strategy/__utils__/trailing_indicators/exponential_moving_average.py @@ -1,5 +1,5 @@ -from base_trailing_indicator import BaseTrailingIndicator import pandas as pd +from base_trailing_indicator import BaseTrailingIndicator class ExponentialMovingAverageIndicator(BaseTrailingIndicator): diff --git a/hummingbot/strategy/__utils__/trailing_indicators/historical_volatility.py b/hummingbot/strategy/__utils__/trailing_indicators/historical_volatility.py index f2f97eff60a..bff84873804 100644 --- a/hummingbot/strategy/__utils__/trailing_indicators/historical_volatility.py +++ b/hummingbot/strategy/__utils__/trailing_indicators/historical_volatility.py @@ -1,6 +1,7 @@ -from .base_trailing_indicator import BaseTrailingIndicator import numpy as np +from .base_trailing_indicator import BaseTrailingIndicator + class HistoricalVolatilityIndicator(BaseTrailingIndicator): def __init__(self, sampling_length: int = 30, processing_length: int = 15): diff --git a/hummingbot/strategy/__utils__/trailing_indicators/instant_volatility.py b/hummingbot/strategy/__utils__/trailing_indicators/instant_volatility.py index 0f322532f68..cf4e34074cd 100644 --- a/hummingbot/strategy/__utils__/trailing_indicators/instant_volatility.py +++ b/hummingbot/strategy/__utils__/trailing_indicators/instant_volatility.py @@ -1,6 +1,7 @@ -from .base_trailing_indicator import BaseTrailingIndicator import numpy as np +from .base_trailing_indicator import BaseTrailingIndicator + class InstantVolatilityIndicator(BaseTrailingIndicator): def __init__(self, sampling_length: int = 30, processing_length: int = 15): diff --git a/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pxd b/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pxd index a6a2aad81a6..92bc844e98d 100644 --- a/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pxd +++ b/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pxd @@ -3,11 +3,14 @@ from libc.stdint cimport int64_t from libcpp.set cimport set -from hummingbot.core.data_type.OrderBookEntry cimport OrderBookEntry from hummingbot.core.data_type.order_book cimport OrderBook +from hummingbot.core.data_type.OrderBookEntry cimport OrderBookEntry + from hummingbot.core.data_type.order_book import OrderBook + from hummingbot.core.event.event_listener cimport EventListener + cdef class TradingIntensityIndicator: cdef: double _alpha diff --git a/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pyx b/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pyx index 9e9d13e332b..c0fa83f9f06 100644 --- a/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pyx +++ b/hummingbot/strategy/__utils__/trailing_indicators/trading_intensity.pyx @@ -6,17 +6,17 @@ from decimal import Decimal from typing import Tuple import numpy as np -from scipy.optimize import curve_fit -from scipy.optimize import OptimizeWarning +from scipy.optimize import OptimizeWarning, curve_fit -from hummingbot.core.data_type.common import ( - PriceType, -) +from hummingbot.core.data_type.common import PriceType from hummingbot.core.data_type.order_book import OrderBook + from hummingbot.core.event.event_listener cimport EventListener + from hummingbot.core.event.events import OrderBookEvent from hummingbot.strategy.asset_price_delegate import AssetPriceDelegate + cdef class TradesForwarder(EventListener): def __init__(self, indicator: 'TradingIntensityIndicator'): self._indicator = indicator diff --git a/hummingbot/strategy/amm_arb/start.py b/hummingbot/strategy/amm_arb/start.py index cb5cc158e32..4cfdbe92c4a 100644 --- a/hummingbot/strategy/amm_arb/start.py +++ b/hummingbot/strategy/amm_arb/start.py @@ -2,6 +2,7 @@ from typing import cast from hummingbot.client.settings import AllConnectorSettings +from hummingbot.connector.gateway.amm.gateway_cardano_amm import GatewayCardanoAMM from hummingbot.connector.gateway.amm.gateway_ethereum_amm import GatewayEthereumAMM from hummingbot.connector.gateway.amm.gateway_solana_amm import GatewaySolanaAMM from hummingbot.connector.gateway.common_types import Chain @@ -11,7 +12,7 @@ from hummingbot.strategy.amm_arb.amm_arb import AmmArbStrategy from hummingbot.strategy.amm_arb.amm_arb_config_map import amm_arb_config_map from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple -from hummingbot.connector.gateway.amm.gateway_cardano_amm import GatewayCardanoAMM + def start(self): connector_1 = amm_arb_config_map.get("connector_1").value.lower() diff --git a/hummingbot/strategy/api_asset_price_delegate.pxd b/hummingbot/strategy/api_asset_price_delegate.pxd index 9de31a16d26..08136d116a8 100644 --- a/hummingbot/strategy/api_asset_price_delegate.pxd +++ b/hummingbot/strategy/api_asset_price_delegate.pxd @@ -1,6 +1,8 @@ from hummingbot.connector.exchange_base cimport ExchangeBase + from .asset_price_delegate cimport AssetPriceDelegate + cdef class APIAssetPriceDelegate(AssetPriceDelegate): cdef: ExchangeBase _market diff --git a/hummingbot/strategy/api_asset_price_delegate.pyx b/hummingbot/strategy/api_asset_price_delegate.pyx index f9d64abb49a..dce766194f0 100644 --- a/hummingbot/strategy/api_asset_price_delegate.pyx +++ b/hummingbot/strategy/api_asset_price_delegate.pyx @@ -2,8 +2,10 @@ from decimal import Decimal from hummingbot.core.data_type.common import PriceType from hummingbot.data_feed.custom_api_data_feed import CustomAPIDataFeed, NetworkStatus + from .asset_price_delegate cimport AssetPriceDelegate + cdef class APIAssetPriceDelegate(AssetPriceDelegate): def __init__(self, market: ExchangeBase, api_url: str, update_interval: float = 5.0): super().__init__() diff --git a/hummingbot/strategy/asset_price_delegate.pyx b/hummingbot/strategy/asset_price_delegate.pyx index 06436c9c168..7560a9db78b 100644 --- a/hummingbot/strategy/asset_price_delegate.pyx +++ b/hummingbot/strategy/asset_price_delegate.pyx @@ -3,6 +3,7 @@ from decimal import Decimal from hummingbot.connector.exchange_base import ExchangeBase from hummingbot.core.data_type.common import PriceType + cdef class AssetPriceDelegate: # The following exposed Python functions are meant for unit tests # --------------------------------------------------------------- diff --git a/hummingbot/strategy/avellaneda_market_making/__init__.py b/hummingbot/strategy/avellaneda_market_making/__init__.py index d29aaf1e029..3ad05f0c2fd 100644 --- a/hummingbot/strategy/avellaneda_market_making/__init__.py +++ b/hummingbot/strategy/avellaneda_market_making/__init__.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from .avellaneda_market_making import AvellanedaMarketMakingStrategy + __all__ = [ AvellanedaMarketMakingStrategy, ] diff --git a/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pxd b/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pxd index e7ae70ec90b..8a903c2208d 100644 --- a/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pxd +++ b/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pxd @@ -1,6 +1,7 @@ # distutils: language=c++ from libc.stdint cimport int64_t + from hummingbot.strategy.__utils__.trailing_indicators.trading_intensity cimport TradingIntensityIndicator from hummingbot.strategy.strategy_base cimport StrategyBase diff --git a/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pyx b/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pyx index 04d5ebedddf..041a7816eea 100644 --- a/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pyx +++ b/hummingbot/strategy/avellaneda_market_making/avellaneda_market_making.pyx @@ -10,16 +10,15 @@ import numpy as np import pandas as pd from hummingbot.connector.exchange_base import ExchangeBase + from hummingbot.connector.exchange_base cimport ExchangeBase from hummingbot.core.clock cimport Clock from hummingbot.client.config.config_helpers import ClientConfigAdapter -from hummingbot.core.data_type.common import ( - OrderType, - PriceType, - TradeType -) +from hummingbot.core.data_type.common import OrderType, PriceType, TradeType + from hummingbot.core.data_type.limit_order cimport LimitOrder + from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.core.network_iterator import NetworkStatus from hummingbot.core.utils import map_df_to_str @@ -32,21 +31,14 @@ from hummingbot.strategy.avellaneda_market_making.avellaneda_market_making_confi MultiOrderLevelModel, TrackHangingOrdersModel, ) -from hummingbot.strategy.conditional_execution_state import ( - RunAlwaysExecutionState, - RunInTimeConditionalExecutionState -) -from hummingbot.strategy.data_types import ( - PriceSize, - Proposal, -) -from hummingbot.strategy.hanging_orders_tracker import ( - CreatedPairOfOrders, - HangingOrdersTracker, -) +from hummingbot.strategy.conditional_execution_state import RunAlwaysExecutionState, RunInTimeConditionalExecutionState +from hummingbot.strategy.data_types import PriceSize, Proposal +from hummingbot.strategy.hanging_orders_tracker import CreatedPairOfOrders, HangingOrdersTracker from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple from hummingbot.strategy.order_book_asset_price_delegate import OrderBookAssetPriceDelegate + from hummingbot.strategy.order_tracker cimport OrderTracker + from hummingbot.strategy.strategy_base import StrategyBase from hummingbot.strategy.utils import order_age diff --git a/hummingbot/strategy/market_trading_pair_tuple.py b/hummingbot/strategy/market_trading_pair_tuple.py index 7a80d510a77..b2a06e158e4 100644 --- a/hummingbot/strategy/market_trading_pair_tuple.py +++ b/hummingbot/strategy/market_trading_pair_tuple.py @@ -1,12 +1,11 @@ from decimal import Decimal -from typing import ( - NamedTuple, Iterator -) +from typing import Iterator, NamedTuple + +from hummingbot.connector.exchange_base import ExchangeBase +from hummingbot.core.data_type.common import PriceType from hummingbot.core.data_type.order_book import OrderBook from hummingbot.core.data_type.order_book_query_result import ClientOrderBookQueryResult from hummingbot.core.data_type.order_book_row import ClientOrderBookRow -from hummingbot.connector.exchange_base import ExchangeBase -from hummingbot.core.data_type.common import PriceType class MarketTradingPairTuple(NamedTuple): diff --git a/hummingbot/strategy/order_book_asset_price_delegate.pxd b/hummingbot/strategy/order_book_asset_price_delegate.pxd index 59e6347d0b2..59da18cdb56 100644 --- a/hummingbot/strategy/order_book_asset_price_delegate.pxd +++ b/hummingbot/strategy/order_book_asset_price_delegate.pxd @@ -1,6 +1,8 @@ from hummingbot.connector.exchange_base cimport ExchangeBase + from .asset_price_delegate cimport AssetPriceDelegate + cdef class OrderBookAssetPriceDelegate(AssetPriceDelegate): cdef: ExchangeBase _market diff --git a/hummingbot/strategy/order_book_asset_price_delegate.pyx b/hummingbot/strategy/order_book_asset_price_delegate.pyx index af1071ee326..53f14607e2b 100644 --- a/hummingbot/strategy/order_book_asset_price_delegate.pyx +++ b/hummingbot/strategy/order_book_asset_price_delegate.pyx @@ -1,8 +1,11 @@ -from hummingbot.core.data_type.common import PriceType -from hummingbot.connector.exchange_base import ExchangeBase from decimal import Decimal + +from hummingbot.connector.exchange_base import ExchangeBase +from hummingbot.core.data_type.common import PriceType + from .asset_price_delegate cimport AssetPriceDelegate + cdef class OrderBookAssetPriceDelegate(AssetPriceDelegate): def __init__(self, market: ExchangeBase, trading_pair: str): super().__init__() diff --git a/hummingbot/strategy/order_tracker.pyx b/hummingbot/strategy/order_tracker.pyx index b0be6ac19c7..ec662709466 100644 --- a/hummingbot/strategy/order_tracker.pyx +++ b/hummingbot/strategy/order_tracker.pyx @@ -1,18 +1,13 @@ -from collections import ( - deque, - OrderedDict -) +from collections import OrderedDict, deque from decimal import Decimal -from typing import ( - Dict, - List, - Tuple -) +from typing import Dict, List, Tuple import pandas as pd from hummingbot.connector.connector_base import ConnectorBase + from hummingbot.core.data_type.limit_order cimport LimitOrder + from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.core.data_type.market_order import MarketOrder from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple diff --git a/hummingbot/strategy/perpetual_market_making/__init__.py b/hummingbot/strategy/perpetual_market_making/__init__.py index 4458646ef3f..6db789c9a0a 100644 --- a/hummingbot/strategy/perpetual_market_making/__init__.py +++ b/hummingbot/strategy/perpetual_market_making/__init__.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from .perpetual_market_making import PerpetualMarketMakingStrategy + __all__ = [ PerpetualMarketMakingStrategy, ] diff --git a/hummingbot/strategy/perpetual_market_making/data_types.py b/hummingbot/strategy/perpetual_market_making/data_types.py index aa2cdbef7f9..466e5618ad9 100644 --- a/hummingbot/strategy/perpetual_market_making/data_types.py +++ b/hummingbot/strategy/perpetual_market_making/data_types.py @@ -1,8 +1,5 @@ from decimal import Decimal -from typing import ( - List, - NamedTuple, -) +from typing import List, NamedTuple from hummingbot.core.data_type.common import OrderType diff --git a/hummingbot/strategy/pure_market_making/__init__.py b/hummingbot/strategy/pure_market_making/__init__.py index a0f49f46c97..1777227bb35 100644 --- a/hummingbot/strategy/pure_market_making/__init__.py +++ b/hummingbot/strategy/pure_market_making/__init__.py @@ -1,7 +1,8 @@ #!/usr/bin/env python -from .pure_market_making import PureMarketMakingStrategy from .inventory_cost_price_delegate import InventoryCostPriceDelegate +from .pure_market_making import PureMarketMakingStrategy + __all__ = [ PureMarketMakingStrategy, InventoryCostPriceDelegate, diff --git a/hummingbot/strategy/pure_market_making/data_types.py b/hummingbot/strategy/pure_market_making/data_types.py index aa2cdbef7f9..466e5618ad9 100644 --- a/hummingbot/strategy/pure_market_making/data_types.py +++ b/hummingbot/strategy/pure_market_making/data_types.py @@ -1,8 +1,5 @@ from decimal import Decimal -from typing import ( - List, - NamedTuple, -) +from typing import List, NamedTuple from hummingbot.core.data_type.common import OrderType diff --git a/hummingbot/strategy/pure_market_making/inventory_skew_calculator.pyx b/hummingbot/strategy/pure_market_making/inventory_skew_calculator.pyx index 758e58ea61e..91e043b02b5 100644 --- a/hummingbot/strategy/pure_market_making/inventory_skew_calculator.pyx +++ b/hummingbot/strategy/pure_market_making/inventory_skew_calculator.pyx @@ -1,4 +1,5 @@ from decimal import Decimal + import numpy as np from .data_types import InventorySkewBidAskRatios diff --git a/hummingbot/strategy/pure_market_making/pure_market_making.pyx b/hummingbot/strategy/pure_market_making/pure_market_making.pyx index 96b4f1e817b..9041bfcf52f 100644 --- a/hummingbot/strategy/pure_market_making/pure_market_making.pyx +++ b/hummingbot/strategy/pure_market_making/pure_market_making.pyx @@ -7,27 +7,37 @@ import numpy as np import pandas as pd from hummingbot.connector.exchange_base import ExchangeBase + from hummingbot.connector.exchange_base cimport ExchangeBase from hummingbot.core.clock cimport Clock + from hummingbot.core.data_type.common import OrderType, PriceType, TradeType + from hummingbot.core.data_type.limit_order cimport LimitOrder + from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.core.network_iterator import NetworkStatus from hummingbot.core.utils import map_df_to_str + from hummingbot.strategy.asset_price_delegate cimport AssetPriceDelegate + from hummingbot.strategy.asset_price_delegate import AssetPriceDelegate from hummingbot.strategy.hanging_orders_tracker import CreatedPairOfOrders, HangingOrdersTracker from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple + from hummingbot.strategy.order_book_asset_price_delegate cimport OrderBookAssetPriceDelegate + from hummingbot.strategy.strategy_base import StrategyBase from hummingbot.strategy.utils import order_age + from .data_types import PriceSize, Proposal from .inventory_cost_price_delegate import InventoryCostPriceDelegate + from .inventory_skew_calculator cimport c_calculate_bid_ask_ratios_from_base_asset_ratio + from .inventory_skew_calculator import calculate_total_order_size -from .pure_market_making_order_tracker import PureMarketMakingOrderTracker from .moving_price_band import MovingPriceBand - +from .pure_market_making_order_tracker import PureMarketMakingOrderTracker NaN = float("nan") s_decimal_zero = Decimal(0) diff --git a/hummingbot/strategy/pure_market_making/pure_market_making_order_tracker.pyx b/hummingbot/strategy/pure_market_making/pure_market_making_order_tracker.pyx index dd98d02acb1..a5649e85739 100644 --- a/hummingbot/strategy/pure_market_making/pure_market_making_order_tracker.pyx +++ b/hummingbot/strategy/pure_market_making/pure_market_making_order_tracker.pyx @@ -1,13 +1,11 @@ -from typing import ( - Dict, - List, - Tuple -) +from typing import Dict, List, Tuple from hummingbot.core.data_type.limit_order cimport LimitOrder -from hummingbot.core.data_type.limit_order import LimitOrder + from hummingbot.connector.connector_base import ConnectorBase +from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple + from hummingbot.strategy.order_tracker cimport OrderTracker NaN = float("nan") diff --git a/hummingbot/strategy/spot_perpetual_arbitrage/start.py b/hummingbot/strategy/spot_perpetual_arbitrage/start.py index 6c8cc00abb5..d390b3f8f9d 100644 --- a/hummingbot/strategy/spot_perpetual_arbitrage/start.py +++ b/hummingbot/strategy/spot_perpetual_arbitrage/start.py @@ -1,7 +1,10 @@ from decimal import Decimal + from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple from hummingbot.strategy.spot_perpetual_arbitrage.spot_perpetual_arbitrage import SpotPerpetualArbitrageStrategy -from hummingbot.strategy.spot_perpetual_arbitrage.spot_perpetual_arbitrage_config_map import spot_perpetual_arbitrage_config_map +from hummingbot.strategy.spot_perpetual_arbitrage.spot_perpetual_arbitrage_config_map import ( + spot_perpetual_arbitrage_config_map, +) def start(self): diff --git a/hummingbot/strategy/spot_perpetual_arbitrage/utils.py b/hummingbot/strategy/spot_perpetual_arbitrage/utils.py index f5b2e39936d..17bd63577d3 100644 --- a/hummingbot/strategy/spot_perpetual_arbitrage/utils.py +++ b/hummingbot/strategy/spot_perpetual_arbitrage/utils.py @@ -1,6 +1,8 @@ from decimal import Decimal from typing import List + from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple + from .data_types import ArbProposal, ArbProposalSide s_decimal_nan = Decimal("NaN") diff --git a/hummingbot/strategy/strategy_base.pxd b/hummingbot/strategy/strategy_base.pxd index bfd5379cb51..9b26bd2fe34 100644 --- a/hummingbot/strategy/strategy_base.pxd +++ b/hummingbot/strategy/strategy_base.pxd @@ -1,10 +1,11 @@ # distutils: language=c++ -from hummingbot.core.time_iterator cimport TimeIterator from hummingbot.core.event.event_listener cimport EventListener +from hummingbot.core.time_iterator cimport TimeIterator from .order_tracker cimport OrderTracker + cdef class StrategyBase(TimeIterator): cdef: set _sb_markets diff --git a/hummingbot/strategy/strategy_base.pyx b/hummingbot/strategy/strategy_base.pyx index 9d83618545a..ccdf3513b38 100755 --- a/hummingbot/strategy/strategy_base.pyx +++ b/hummingbot/strategy/strategy_base.pyx @@ -1,21 +1,26 @@ -from decimal import Decimal import logging +from decimal import Decimal +from typing import List + import pandas as pd -from typing import ( - List) from hummingbot.core.clock cimport Clock -from hummingbot.core.event.events import MarketEvent, AccountEvent + +from hummingbot.core.event.events import AccountEvent, MarketEvent + from hummingbot.core.event.event_listener cimport EventListener + from hummingbot.core.network_iterator import NetworkStatus from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple -from hummingbot.core.time_iterator cimport TimeIterator + from hummingbot.connector.connector_base cimport ConnectorBase +from hummingbot.core.time_iterator cimport TimeIterator + +from hummingbot.connector.derivative_base import DerivativeBase +from hummingbot.core.data_type.common import OrderType, PositionAction from hummingbot.core.data_type.trade import Trade from hummingbot.core.event.events import OrderFilledEvent -from hummingbot.core.data_type.common import OrderType, PositionAction from hummingbot.strategy.order_tracker import OrderTracker -from hummingbot.connector.derivative_base import DerivativeBase NaN = float("nan") s_decimal_nan = Decimal("NaN") diff --git a/hummingbot/strategy/strategy_py_base.pxd b/hummingbot/strategy/strategy_py_base.pxd index da7a596515c..2d1b5a3aafa 100644 --- a/hummingbot/strategy/strategy_py_base.pxd +++ b/hummingbot/strategy/strategy_py_base.pxd @@ -1,4 +1,5 @@ from hummingbot.strategy.strategy_base cimport StrategyBase + cdef class StrategyPyBase(StrategyBase): pass diff --git a/hummingbot/strategy/strategy_py_base.pyx b/hummingbot/strategy/strategy_py_base.pyx index f1946315dee..5166e5150a8 100644 --- a/hummingbot/strategy/strategy_py_base.pyx +++ b/hummingbot/strategy/strategy_py_base.pyx @@ -1,23 +1,26 @@ from hummingbot.strategy.strategy_base cimport StrategyBase + from hummingbot.core.clock import Clock + from hummingbot.core.clock cimport Clock + from hummingbot.core.event.events import ( + BuyOrderCompletedEvent, BuyOrderCreatedEvent, - SellOrderCreatedEvent, - OrderFilledEvent, + FundingPaymentCompletedEvent, MarketOrderFailureEvent, OrderCancelledEvent, OrderExpiredEvent, - BuyOrderCompletedEvent, - SellOrderCompletedEvent, - FundingPaymentCompletedEvent, + OrderFilledEvent, PositionModeChangeEvent, + RangePositionClosedEvent, + RangePositionFeeCollectedEvent, RangePositionLiquidityAddedEvent, RangePositionLiquidityRemovedEvent, RangePositionUpdateEvent, RangePositionUpdateFailureEvent, - RangePositionFeeCollectedEvent, - RangePositionClosedEvent + SellOrderCompletedEvent, + SellOrderCreatedEvent, ) diff --git a/hummingbot/strategy/strategy_v2_base.py b/hummingbot/strategy/strategy_v2_base.py index b496deaf961..aca6d09fdf8 100644 --- a/hummingbot/strategy/strategy_v2_base.py +++ b/hummingbot/strategy/strategy_v2_base.py @@ -39,14 +39,12 @@ class StrategyV2ConfigBase(BaseClientModel): """ Base class for version 2 strategy configurations. """ + markets: Dict[str, Set[str]] = Field( default="binance_perpetual.JASMY-USDT,RLC-USDT", client_data=ClientFieldData( - prompt_on_new=True, - prompt=lambda mi: ( - "Enter markets in format 'exchange1.tp1,tp2:exchange2.tp1,tp2':" - ) - ) + prompt_on_new=True, prompt=lambda mi: ("Enter markets in format 'exchange1.tp1,tp2:exchange2.tp1,tp2':") + ), ) candles_config: List[CandlesConfig] = Field( default="binance_perpetual.JASMY-USDT.1m.500:binance_perpetual.RLC-USDT.1m.500", @@ -55,23 +53,24 @@ class StrategyV2ConfigBase(BaseClientModel): prompt=lambda mi: ( "Enter candle configs in format 'exchange1.tp1.interval1.max_records:" "exchange2.tp2.interval2.max_records':" - ) - ) + ), + ), ) controllers_config: List[str] = Field( default=None, client_data=ClientFieldData( is_updatable=True, prompt_on_new=True, - prompt=lambda mi: "Enter controller configurations (comma-separated file paths), leave it empty if none: " - )) + prompt=lambda mi: "Enter controller configurations (comma-separated file paths), leave it empty if none: ", + ), + ) config_update_interval: int = Field( default=60, gt=0, client_data=ClientFieldData( prompt_on_new=False, prompt=lambda mi: "Enter the config update interval in seconds (e.g. 60): ", - ) + ), ) @validator("controllers_config", pre=True, always=True) @@ -80,7 +79,7 @@ def parse_controllers_config(cls, v): if isinstance(v, str): if v == "": return [] - return [item.strip() for item in v.split(',') if item.strip()] + return [item.strip() for item in v.split(",") if item.strip()] if v is None: return [] return v @@ -89,11 +88,11 @@ def load_controller_configs(self): loaded_configs = [] for config_path in self.controllers_config: full_path = os.path.join(settings.CONTROLLERS_CONF_DIR_PATH, config_path) - with open(full_path, 'r') as file: + with open(full_path, "r") as file: config_data = yaml.safe_load(file) - controller_type = config_data.get('controller_type') - controller_name = config_data.get('controller_name') + controller_type = config_data.get("controller_type") + controller_name = config_data.get("controller_name") if not controller_type or not controller_name: raise ValueError(f"Missing controller_type or controller_name in {config_path}") @@ -101,11 +100,21 @@ def load_controller_configs(self): module_path = f"{settings.CONTROLLERS_MODULE}.{controller_type}.{controller_name}" module = importlib.import_module(module_path) - config_class = next((member for member_name, member in inspect.getmembers(module) - if inspect.isclass(member) and member not in [ControllerConfigBase, - MarketMakingControllerConfigBase, - DirectionalTradingControllerConfigBase] - and (issubclass(member, ControllerConfigBase))), None) + config_class = next( + ( + member + for member_name, member in inspect.getmembers(module) + if inspect.isclass(member) + and member + not in [ + ControllerConfigBase, + MarketMakingControllerConfigBase, + DirectionalTradingControllerConfigBase, + ] + and (issubclass(member, ControllerConfigBase)) + ), + None, + ) if not config_class: raise InvalidController(f"No configuration class found in the module {controller_name}.") @@ -113,7 +122,7 @@ def load_controller_configs(self): return loaded_configs - @validator('markets', pre=True) + @validator("markets", pre=True) def parse_markets(cls, v) -> Dict[str, Set[str]]: if isinstance(v, str): return cls.parse_markets_str(v) @@ -125,17 +134,18 @@ def parse_markets(cls, v) -> Dict[str, Set[str]]: def parse_markets_str(v: str) -> Dict[str, Set[str]]: markets_dict = {} if v.strip(): - exchanges = v.split(':') + exchanges = v.split(":") for exchange in exchanges: - parts = exchange.split('.') + parts = exchange.split(".") if len(parts) != 2 or not parts[1]: - raise ValueError(f"Invalid market format in segment '{exchange}'. " - "Expected format: 'exchange.tp1,tp2'") + raise ValueError( + f"Invalid market format in segment '{exchange}'. " "Expected format: 'exchange.tp1,tp2'" + ) exchange_name, trading_pairs = parts - markets_dict[exchange_name] = set(trading_pairs.split(',')) + markets_dict[exchange_name] = set(trading_pairs.split(",")) return markets_dict - @validator('candles_config', pre=True) + @validator("candles_config", pre=True) def parse_candles_config(cls, v) -> List[CandlesConfig]: if isinstance(v, str): return cls.parse_candles_config_str(v) @@ -147,23 +157,24 @@ def parse_candles_config(cls, v) -> List[CandlesConfig]: def parse_candles_config_str(v: str) -> List[CandlesConfig]: configs = [] if v.strip(): - entries = v.split(':') + entries = v.split(":") for entry in entries: - parts = entry.split('.') + parts = entry.split(".") if len(parts) != 4: - raise ValueError(f"Invalid candles config format in segment '{entry}'. " - "Expected format: 'exchange.tradingpair.interval.maxrecords'") + raise ValueError( + f"Invalid candles config format in segment '{entry}'. " + "Expected format: 'exchange.tradingpair.interval.maxrecords'" + ) connector, trading_pair, interval, max_records_str = parts try: max_records = int(max_records_str) except ValueError: - raise ValueError(f"Invalid max_records value '{max_records_str}' in segment '{entry}'. " - "max_records should be an integer.") + raise ValueError( + f"Invalid max_records value '{max_records_str}' in segment '{entry}'. " + "max_records should be an integer." + ) config = CandlesConfig( - connector=connector, - trading_pair=trading_pair, - interval=interval, - max_records=max_records + connector=connector, trading_pair=trading_pair, interval=interval, max_records=max_records ) configs.append(config) return configs @@ -173,6 +184,7 @@ class StrategyV2Base(ScriptStrategyBase): """ V2StrategyBase is a base class for strategies that use the new smart components architecture. """ + markets: Dict[str, Set[str]] _last_config_update_ts: float = 0 closed_executors_buffer: int = 100 @@ -277,23 +289,16 @@ def is_perpetual(connector: str) -> bool: return "perpetual" in connector async def on_stop(self): - self.logger().info("on stop on base v2") self.executor_orchestrator.stop() - self.logger().info("passed the orch stop") self.market_data_provider.stop() - self.logger().info("passed the market data stop") self.listen_to_executor_actions_task.cancel() - self.logger().info("passed the actions stops") for controller in self.controllers.values(): controller.stop() - self.logger().info("passed the control loop stop") for i in range(self.max_executors_close_attempts): if all([executor.is_done for executor in self.get_all_executors()]): continue await asyncio.sleep(5.0) - self.logger().info("passed the main loop stop") self.executor_orchestrator.store_all_executors() - self.logger().info("passed allllllllllllllllllll") def on_tick(self): self.update_executors_info() @@ -330,12 +335,14 @@ def store_actions_proposal(self) -> List[StoreExecutorAction]: Create a list of actions to store the executors that have been stopped. """ potential_executors_to_store = self.filter_executors( - executors=self.get_all_executors(), - filter_func=lambda x: x.is_done) + executors=self.get_all_executors(), filter_func=lambda x: x.is_done + ) sorted_executors = sorted(potential_executors_to_store, key=lambda x: x.timestamp, reverse=True) if len(sorted_executors) > self.closed_executors_buffer: - return [StoreExecutorAction(executor_id=executor.id, controller_id=executor.controller_id) for executor in - sorted_executors[self.closed_executors_buffer:]] + return [ + StoreExecutorAction(executor_id=executor.id, controller_id=executor.controller_id) + for executor in sorted_executors[self.closed_executors_buffer :] + ] return [] def get_executors_by_controller(self, controller_id: str) -> List[ExecutorInfo]: @@ -351,7 +358,9 @@ def set_position_mode(self, connector: str, position_mode: PositionMode): self.connectors[connector].set_position_mode(position_mode) @staticmethod - def filter_executors(executors: List[ExecutorInfo], filter_func: Callable[[ExecutorInfo], bool]) -> List[ExecutorInfo]: + def filter_executors( + executors: List[ExecutorInfo], filter_func: Callable[[ExecutorInfo], bool] + ) -> List[ExecutorInfo]: return [executor for executor in executors if filter_func(executor)] @staticmethod @@ -361,19 +370,29 @@ def executors_info_to_df(executors_info: List[ExecutorInfo]) -> pd.DataFrame: """ df = pd.DataFrame([ei.to_dict() for ei in executors_info]) # Convert the enum values to integers - df['status'] = df['status'].apply(lambda x: x.value) + df["status"] = df["status"].apply(lambda x: x.value) # Sort the DataFrame - df.sort_values(by='status', ascending=True, inplace=True) + df.sort_values(by="status", ascending=True, inplace=True) # Convert back to enums for display - df['status'] = df['status'].apply(RunnableStatus) + df["status"] = df["status"].apply(RunnableStatus) return df def format_status(self) -> str: original_info = super().format_status() - columns_to_show = ["type", "side", "status", "net_pnl_pct", "net_pnl_quote", "cum_fees_quote", - "filled_amount_quote", "is_trading", "close_type", "age"] + columns_to_show = [ + "type", + "side", + "status", + "net_pnl_pct", + "net_pnl_quote", + "cum_fees_quote", + "filled_amount_quote", + "is_trading", + "close_type", + "age", + ] extra_info = [] # Initialize global performance metrics @@ -403,7 +422,7 @@ def format_status(self) -> str: controller_performance_info = [ f"Realized PNL (Quote): {performance_report.realized_pnl_quote:.2f} | Unrealized PNL (Quote): {performance_report.unrealized_pnl_quote:.2f}" f"--> Global PNL (Quote): {performance_report.global_pnl_quote:.2f} | Global PNL (%): {performance_report.global_pnl_pct:.2f}%", - f"Total Volume Traded: {performance_report.volume_traded:.2f}" + f"Total Volume Traded: {performance_report.volume_traded:.2f}", ] # Add position summary if available @@ -466,7 +485,7 @@ def format_status(self) -> str: global_performance_summary = [ "\n\nGlobal Performance Summary:", - f"Global PNL (Quote): {global_pnl_quote:.2f} | Global PNL (%): {global_pnl_pct:.2f}% | Total Volume Traded (Global): {global_volume_traded:.2f}" + f"Global PNL (Quote): {global_pnl_quote:.2f} | Global PNL (%): {global_pnl_pct:.2f}% | Total Volume Traded (Global): {global_volume_traded:.2f}", ] # Append global close type counts diff --git a/hummingbot/strategy/twap/__init__.py b/hummingbot/strategy/twap/__init__.py index d6fe5f9622b..12343e6316b 100644 --- a/hummingbot/strategy/twap/__init__.py +++ b/hummingbot/strategy/twap/__init__.py @@ -2,7 +2,6 @@ from .twap import TwapTradeStrategy - __all__ = [ TwapTradeStrategy ] diff --git a/hummingbot/strategy/twap/start.py b/hummingbot/strategy/twap/start.py index 07253d9b5f0..01899294175 100644 --- a/hummingbot/strategy/twap/start.py +++ b/hummingbot/strategy/twap/start.py @@ -1,16 +1,9 @@ from datetime import datetime -from typing import ( - List, - Tuple, -) +from typing import List, Tuple -from hummingbot.strategy.conditional_execution_state import ( - RunAlwaysExecutionState, - RunInTimeConditionalExecutionState) +from hummingbot.strategy.conditional_execution_state import RunAlwaysExecutionState, RunInTimeConditionalExecutionState from hummingbot.strategy.market_trading_pair_tuple import MarketTradingPairTuple -from hummingbot.strategy.twap import ( - TwapTradeStrategy -) +from hummingbot.strategy.twap import TwapTradeStrategy from hummingbot.strategy.twap.twap_config_map import twap_config_map diff --git a/hummingbot/strategy_v2/executors/executor_base.py b/hummingbot/strategy_v2/executors/executor_base.py index c3de3420f5e..2aaf5161f51 100644 --- a/hummingbot/strategy_v2/executors/executor_base.py +++ b/hummingbot/strategy_v2/executors/executor_base.py @@ -159,9 +159,7 @@ def start(self): """ Starts the executor and registers the events. """ - self.logger().info("ran the super") super().start() - self.logger().info("running the super") self.register_events() def stop(self): @@ -176,7 +174,7 @@ async def on_start(self): """ Called when the executor is started. """ - self.logger().info("got into on_start") + await self.validate_sufficient_balance() def on_stop(self): @@ -260,7 +258,6 @@ def unregister_events(self): """ for connector in self.connectors.values(): for event_pair in self._event_pairs: - self.logger().info("connector removing %s", connector) connector.remove_listener(event_pair[0], event_pair[1]) def adjust_order_candidates(self, exchange: str, order_candidates: List[OrderCandidate]) -> List[OrderCandidate]: diff --git a/hummingbot/strategy_v2/executors/executor_orchestrator.py b/hummingbot/strategy_v2/executors/executor_orchestrator.py index 85bd3b0d42c..c642ff65c3d 100644 --- a/hummingbot/strategy_v2/executors/executor_orchestrator.py +++ b/hummingbot/strategy_v2/executors/executor_orchestrator.py @@ -18,9 +18,9 @@ from hummingbot.strategy_v2.executors.grid_executor.data_types import GridExecutorConfig from hummingbot.strategy_v2.executors.grid_executor.grid_executor import GridExecutor from hummingbot.strategy_v2.executors.position_executor.data_types import PositionExecutorConfig +from hummingbot.strategy_v2.executors.position_executor.position_executor import PositionExecutor from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor import TriangularArbExecutor -from hummingbot.strategy_v2.executors.position_executor.position_executor import PositionExecutor from hummingbot.strategy_v2.executors.twap_executor.data_types import TWAPExecutorConfig from hummingbot.strategy_v2.executors.twap_executor.twap_executor import TWAPExecutor from hummingbot.strategy_v2.executors.xemm_executor.data_types import XEMMExecutorConfig @@ -198,12 +198,7 @@ def execute_action(self, action: ExecutorAction): """ Execute the action and handle executors based on action type. """ - self.logger().info("this is the action received %s ", action ) - if action == None: - self.stop_executor(action) - self.stop() - elif isinstance(action, StopExecutorAction): - self.stop_executor(action) + controller_id = action.controller_id if controller_id not in self.cached_performance: self.active_executors[controller_id] = [] @@ -249,13 +244,11 @@ def create_executor(self, action: CreateExecutorAction): elif isinstance(executor_config, XEMMExecutorConfig): executor = XEMMExecutor(self.strategy, executor_config, self.executors_update_interval) elif isinstance(executor_config, TriangularArbExecutorConfig): - self.logger().info("matched the triangular arb executer") executor = TriangularArbExecutor(self.strategy, executor_config, self.executors_update_interval) else: raise ValueError("Unsupported executor config type") executor.start() - self.logger().info("called the start") self.active_executors[controller_id].append(executor) # MarketsRecorder.get_instance().store_or_update_executor(executor) self.logger().debug(f"Created {type(executor).__name__} for controller {controller_id}") diff --git a/hummingbot/strategy_v2/executors/triangular_arb_executor/data_types.py b/hummingbot/strategy_v2/executors/triangular_arb_executor/data_types.py index f78bce206d2..d936b645385 100755 --- a/hummingbot/strategy_v2/executors/triangular_arb_executor/data_types.py +++ b/hummingbot/strategy_v2/executors/triangular_arb_executor/data_types.py @@ -1,12 +1,12 @@ +from dataclasses import dataclass from decimal import Decimal from enum import Enum - from typing import Any, Callable, Coroutine, List, Protocol, TypeAlias from hummingbot.core.data_type.in_flight_order import InFlightOrder from hummingbot.strategy_v2.executors.data_types import ConnectorPair, ExecutorConfigBase from hummingbot.strategy_v2.models.executors import TrackedOrder -from dataclasses import dataclass + class ArbitrageDirection(Enum): FORWARD = 0 @@ -36,6 +36,7 @@ class TriangularArbExecutorConfig(ExecutorConfigBase): confirm_round_callback: Callable[[Strategy], None] set_stop: Callable[[TriExecuter], None] stopper_init: bool + real_arbitrage_percentage: Decimal @dataclass diff --git a/hummingbot/strategy_v2/executors/triangular_arb_executor/triangular_arb_executor.py b/hummingbot/strategy_v2/executors/triangular_arb_executor/triangular_arb_executor.py index 952dff2b37e..475441f682b 100755 --- a/hummingbot/strategy_v2/executors/triangular_arb_executor/triangular_arb_executor.py +++ b/hummingbot/strategy_v2/executors/triangular_arb_executor/triangular_arb_executor.py @@ -1,6 +1,6 @@ import asyncio -from decimal import Decimal import logging +from decimal import Decimal from typing import Coroutine, Dict, Optional, Union, cast from hummingbot.connector.connector_base import ConnectorBase @@ -43,7 +43,6 @@ def is_closed(self): return type(self.state) is Completed or type(self.state) is Failed def __init__(self, strategy: ScriptStrategyBase, config: TriangularArbExecutorConfig, update_interval: float = 1.0): - self.logger().info("came to the init") super().__init__( strategy=strategy, connectors=[ @@ -82,6 +81,8 @@ def __init__(self, strategy: ScriptStrategyBase, config: TriangularArbExecutorCo self.sell_amount = config.sell_amount self.confirm_round_callback = config.confirm_round_callback config.set_stop(self.early_stop) + self.stopper_initiated = False + self.real_arbitrage_percentage = config.real_arbitrage_percentage self.rollbacks: AsyncTrackedOrderFunction = [] self.state: Idle | InProgress | Completed | Canceled | Failed | GraceFullStop = Idle() else: @@ -96,8 +97,7 @@ def proxy_market(self) -> ConnectorBase: def selling_market(self) -> ConnectorBase: return self.connectors[self._selling_market.connector_name] - def validate_sufficient_balance(self): - self.logger().info("got into validate sufficient balance") + async def validate_sufficient_balance(self): if self.arb_direction is ArbitrageDirection.FORWARD: buying_account_not_ok = self.buying_market().get_balance(self.proxy_asset) < self.buy_amount proxy_account_not_ok = self.proxy_market().get_balance(self.stable_asset) < self.proxy_amount @@ -116,16 +116,23 @@ def validate_sufficient_balance(self): self.logger().error("Not enough budget to open position.") async def control_task(self): - self.logger().info("entered the controller tasker the triangular arbitrage ") + if self.config.buy_amount + self.config.sell_amount + self.config.proxy_amount == Decimal(0) and self.stopper_initiated != True and self.real_arbitrage_percentage == Decimal(0): + self.logger().debug("initiating the stopper") + self.config.set_stop(self.early_stop) + self.stopper_initiated = True + self.confirm_round_callback() + self.stop() + return + if isinstance(self.state, GraceFullStop): self.logger().error("the bot is stopped, check the logs for errors !") return if isinstance(self.state, Idle): + await self.init_arbitrage() if isinstance(self.state, Canceled): - try: if not self.state.rollbacks: self.logger().error("No rollback functions available!") @@ -221,23 +228,15 @@ async def control_task(self): return if self.state.buy_order.is_filled and self.state.proxy_order.is_filled and self.state.sell_order.is_filled: + self.confirm_round_callback() + self.stop() self.state = Completed( buy_order_exec_price=self.state.buy_order.average_executed_price, proxy_order_exec_price=self.state.proxy_order.average_executed_price, sell_order_exec_price=self.state.sell_order.average_executed_price, ) - self.confirm_round_callback() - self.stop() - - async def on_start(self): - """ - This method is responsible for starting the executor and validating if the position is expired. The base method - validates if there is enough balance to place the open order. - :return: None - """ - self.logger().info("got into the triangular on_start") - await self.control_task() + async def init_arbitrage(self): buy_order = asyncio.create_task(self.place_buy_order()) @@ -432,8 +431,6 @@ def place_order( return self._strategy.sell(connector_name, trading_pair, amount, order_type, price, position_action) def on_stop(self): - - self.logger().info("got into the exe tri on stop") if self._status != RunnableStatus.TERMINATED: self.state = GraceFullStop self.close_type = CloseType.EARLY_STOP @@ -443,7 +440,6 @@ def on_stop(self): self.stop() def early_stop(self): - self.logger().info("got into the exe tri early stop") self.on_stop() def get_net_pnl_quote(self) -> Decimal: diff --git a/hummingbot/strategy_v2/models/executor_actions.py b/hummingbot/strategy_v2/models/executor_actions.py index dbb593a67ff..224d27509f5 100644 --- a/hummingbot/strategy_v2/models/executor_actions.py +++ b/hummingbot/strategy_v2/models/executor_actions.py @@ -1,13 +1,12 @@ from typing import Optional, Union - from pydantic import BaseModel -from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.executors.arbitrage_executor.data_types import ArbitrageExecutorConfig from hummingbot.strategy_v2.executors.dca_executor.data_types import DCAExecutorConfig from hummingbot.strategy_v2.executors.grid_executor.data_types import GridExecutorConfig from hummingbot.strategy_v2.executors.position_executor.data_types import PositionExecutorConfig +from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.executors.twap_executor.data_types import TWAPExecutorConfig from hummingbot.strategy_v2.executors.xemm_executor.data_types import XEMMExecutorConfig diff --git a/hummingbot/strategy_v2/models/executors_info.py b/hummingbot/strategy_v2/models/executors_info.py index 7fecc66b313..449f7098cc9 100644 --- a/hummingbot/strategy_v2/models/executors_info.py +++ b/hummingbot/strategy_v2/models/executors_info.py @@ -4,11 +4,11 @@ from pydantic import BaseModel from hummingbot.core.data_type.common import TradeType -from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.executors.arbitrage_executor.data_types import ArbitrageExecutorConfig from hummingbot.strategy_v2.executors.data_types import ExecutorConfigBase from hummingbot.strategy_v2.executors.dca_executor.data_types import DCAExecutorConfig from hummingbot.strategy_v2.executors.position_executor.data_types import PositionExecutorConfig +from hummingbot.strategy_v2.executors.triangular_arb_executor.data_types import TriangularArbExecutorConfig from hummingbot.strategy_v2.executors.twap_executor.data_types import TWAPExecutorConfig from hummingbot.strategy_v2.executors.xemm_executor.data_types import XEMMExecutorConfig from hummingbot.strategy_v2.models.base import RunnableStatus diff --git a/hummingbot/strategy_v2/runnable_base.py b/hummingbot/strategy_v2/runnable_base.py index 9230cdb74be..fe87c28e11b 100644 --- a/hummingbot/strategy_v2/runnable_base.py +++ b/hummingbot/strategy_v2/runnable_base.py @@ -44,20 +44,16 @@ def start(self): Start the control loop of the smart component. If the component is not already started, it will start the control loop. """ - self.logger().info("in start") if self._status == RunnableStatus.NOT_STARTED: self.terminated.clear() self._status = RunnableStatus.RUNNING - self.logger().info("calling the control loop") safe_ensure_future(self.control_loop()) - self.logger().info("called the control loop") def stop(self): """ Stop the control loop of the smart component. If the component is active or not started, it will stop the control loop. """ - self.logger().info("terminating the status") if self._status != RunnableStatus.TERMINATED: self._status = RunnableStatus.TERMINATED self.terminated.set() @@ -67,19 +63,18 @@ async def control_loop(self): The main control loop of the smart component. This method is responsible for executing the control task at the specified interval. """ - self.logger().info("in control loop") + self.logger().debug("inside the control loop") + self.logger().debug("is terminated %s", self.terminated.is_set()) await self.on_start() - self.logger().info("called the on start %s", self.terminated.is_set()) + self.logger().debug("passed on start %s", self.terminated.is_set()) while not self.terminated.is_set(): try: - self.logger().info("calling the control task") + self.logger().debug("in loop") await self.control_task() - self.logger().info("called the control task") except Exception as e: self.logger().error(e, exc_info=True) finally: await asyncio.sleep(self.update_interval) - self.logger().info("calling the on stop on the control loop") self.on_stop() def on_stop(self): diff --git a/logs/logs_conf_v2_triangular_arb_afteralongtime.log.2025-03-05 b/logs/logs_conf_v2_triangular_arb_afteralongtime.log.2025-03-05 deleted file mode 100644 index 8beaae2c646..00000000000 --- a/logs/logs_conf_v2_triangular_arb_afteralongtime.log.2025-03-05 +++ /dev/null @@ -1,661 +0,0 @@ -2025-03-05 00:46:09,825 - 17 - hummingbot.client.hummingbot_application - INFO - Creating the clock with tick size: 1.0 -2025-03-05 00:46:09,831 - 17 - hummingbot.client.hummingbot_application - INFO - start command initiated. -2025-03-05 00:46:09,963 - 17 - GatewayCardanoAMM - INFO - Network status has changed to NetworkStatus.CONNECTED. Starting networking... -2025-03-05 00:46:10,026 - 17 - hummingbot.strategy.script_strategy_base - WARNING - kucoin is not ready. Please wait... -2025-03-05 00:46:10,027 - 17 - hummingbot.strategy.script_strategy_base - WARNING - splash_cardano_mainnet is not ready. Please wait... -2025-03-05 00:46:10,563 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: Error on POST https://localhost:15888/cardano/balances Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: SyntaxError: Unexpected end of JSON input\n at Cardano.getAddressUtxos (/home/gateway/dist/src/chains/cardano/cardano.js:169:19)\n at async CardanoController.balances (/home/gateway/dist/src/chains/cardano/cardano.controllers.js:10:21)\n at async Object. (/home/gateway/dist/src/chains/cardano/cardano.routes.js:43:16)'} -NoneType: None -2025-03-05 00:46:11,000 - 17 - hummingbot.strategy.script_strategy_base - WARNING - kucoin is not ready. Please wait... -2025-03-05 00:46:11,459 - 17 - hummingbot.connector.exchange.kucoin.kucoin_exchange.KucoinExchange - INFO - Network status has changed to NetworkStatus.CONNECTED. Starting networking... -2025-03-05 00:46:12,000 - 17 - hummingbot.strategy.script_strategy_base - WARNING - kucoin is not ready. Please wait... -2025-03-05 00:46:12,559 - 17 - hummingbot.core.data_type.order_book_tracker - INFO - Initialized order book for ADA-USDT. 1/2 completed. -2025-03-05 00:46:13,002 - 17 - hummingbot.strategy.script_strategy_base - WARNING - kucoin is not ready. Please wait... -2025-03-05 00:46:13,547 - 17 - hummingbot.connector.exchange.kucoin.kucoin_api_user_stream_data_source.KucoinAPIUserStreamDataSource - INFO - Subscribed to private order changes and balance updates channels... -2025-03-05 00:46:13,609 - 17 - hummingbot.connector.exchange.kucoin.kucoin_api_order_book_data_source.KucoinAPIOrderBookDataSource - INFO - Subscribed to public order book and trade channels... -2025-03-05 00:46:13,975 - 17 - hummingbot.core.data_type.order_book_tracker - INFO - Initialized order book for ERG-USDT. 2/2 completed. -2025-03-05 00:46:14,035 - 17 - hummingbot.strategy.script_strategy_base - WARNING - kucoin is not ready. Please wait... -2025-03-05 00:46:17,001 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received controller_id='J5yLac1z39BMzN9Gy9tJtzpTb2ug7XaMKc9CY81sHhkb' executor_config=TriangularArbExecutorConfig(id='J5yLac1z39BMzN9Gy9tJtzpTb2ug7XaMKc9CY81sHhkb', type='triangular_arb_executor', timestamp=1741135576.0014427, controller_id='main', arb_asset='ERG', arb_asset_wrapped='RSERG', proxy_asset='ADA', stable_asset='USDT', buying_market=ConnectorPair(connector_name='splash_cardano_mainnet', trading_pair='RSERG-ADA'), proxy_market=ConnectorPair(connector_name='kucoin', trading_pair='ADA-USDT'), selling_market=ConnectorPair(connector_name='kucoin', trading_pair='ERG-USDT'), order_amount=Decimal('2'), min_profitability_percent=Decimal('1312321'), buy_amount=Decimal('0'), proxy_amount=Decimal('0'), sell_amount=Decimal('0'), max_retries=12, confirm_round_callback=>, set_stop=>, stopper_init=True) -2025-03-05 00:46:17,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - matched the triangular arb executer -2025-03-05 00:46:17,002 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - came to the init -2025-03-05 00:46:17,003 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - ran the super -2025-03-05 00:46:17,003 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - in start -2025-03-05 00:46:17,003 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control loop -2025-03-05 00:46:17,003 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control loop -2025-03-05 00:46:17,004 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - running the super -2025-03-05 00:46:17,004 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - called the start -2025-03-05 00:46:17,004 - 17 - hummingbot.strategy.script_strategy_base - INFO - is direction forward: True -2025-03-05 00:46:17,007 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - in control loop -2025-03-05 00:46:17,009 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the triangular on_start -2025-03-05 00:46:17,009 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:17,015 - 17 - hummingbot.connector.exchange.kucoin.kucoin_exchange.KucoinExchange - WARNING - Buy order amount 0 is lower than the minimum order size 1. The order will not be created, increase the amount to be higher than the minimum order size. -2025-03-05 00:46:17,016 - 17 - hummingbot.connector.exchange.kucoin.kucoin_exchange.KucoinExchange - WARNING - Sell order amount 0 is lower than the minimum order size 0.1. The order will not be created, increase the amount to be higher than the minimum order size. -2025-03-05 00:46:17,025 - 17 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1741135577.0, "order_id": "BAAUT62f8db792dafc2b2c063085b6a0a0cfdbb7", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "kucoin"} -2025-03-05 00:46:17,025 - 17 - hummingbot.connector.client_order_tracker - INFO - Order BAAUT62f8db792dafc2b2c063085b6a0a0cfdbb7 has failed. Order Update: OrderUpdate(trading_pair='ADA-USDT', update_timestamp=1741135577.0, new_state=, client_order_id='BAAUT62f8db792dafc2b2c063085b6a0a0cfdbb7', exchange_order_id=None, misc_updates=None) -2025-03-05 00:46:17,030 - 17 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1741135577.0, "order_id": "SEGUT62f8db792db9b2b2c063085b6a0a0cfdbb7", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "kucoin"} -2025-03-05 00:46:17,030 - 17 - hummingbot.connector.client_order_tracker - INFO - Order SEGUT62f8db792db9b2b2c063085b6a0a0cfdbb7 has failed. Order Update: OrderUpdate(trading_pair='ERG-USDT', update_timestamp=1741135577.0, new_state=, client_order_id='SEGUT62f8db792db9b2b2c063085b6a0a0cfdbb7', exchange_order_id=None, misc_updates=None) -2025-03-05 00:46:17,030 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the on start False -2025-03-05 00:46:17,031 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:17,031 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:17,031 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:17,441 - 17 - GatewayCardanoAMM - ERROR - Error submitting BUY swap order to splash on mainnet for 0.0 RSERG-ADA 1.000000000000000. -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/gateway/amm/gateway_amm_base.py", line 384, in _create_order - order_result: Dict[str, Any] = await self._get_gateway_instance().amm_trade( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 519, in amm_trade - return await self.api_request("post", f"{connector}/trade", request_payload) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/splash/trade Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Invalid swap amount\n at Cardano.swap (/home/gateway/dist/src/chains/cardano/cardano.js:324:19)\n at Splash.executeTrade (/home/gateway/dist/src/connectors/splash/splash.js:68:37)\n at async Object. (/home/gateway/dist/src/connectors/splash/splash.routes.js:34:16)'} -2025-03-05 00:46:17,452 - 17 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1741135577.0, "order_id": "buy-RSERG-ADA-1741135577012692", "order_type": "OrderType.LIMIT", "event_name": "MarketOrderFailureEvent", "event_source": "splash_cardano_mainnet"} -2025-03-05 00:46:17,452 - 17 - hummingbot.connector.client_order_tracker - INFO - Order buy-RSERG-ADA-1741135577012692 has failed. Order Update: OrderUpdate(trading_pair='RSERG-ADA', update_timestamp=1741135577.0, new_state=, client_order_id='buy-RSERG-ADA-1741135577012692', exchange_order_id=None, misc_updates=None) -2025-03-05 00:46:18,032 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:18,033 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:18,034 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:19,034 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:19,035 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:19,035 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:20,035 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:20,036 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:20,036 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:21,037 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:21,037 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:21,038 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:21,525 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | arb price in stable: 1.0496 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | proxy price in stable: 0.9326000000000001 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | wrapped price in proxy: 1.14171384270890411888 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | proxy amount: 2.28342768541780823776 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | stable amount: 2.129524659420648190877744542 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD | arb amount: 2.028891634356562681857607224 -2025-03-05 00:46:21,526 - 17 - hummingbot.strategy.script_strategy_base - INFO - FORWARD : ArbitragePercent(percent=Decimal('-1.424010719316968263809738691'), buy_amount=Decimal('2.28342768541780823776'), proxy_amount=Decimal('2.28342768541780823776'), sell_amount=Decimal('2.028891634356562681857607224')) -2025-03-05 00:46:21,527 - 17 - hummingbot.strategy.script_strategy_base - INFO - is direction forward: False -2025-03-05 00:46:22,040 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the control task -2025-03-05 00:46:22,040 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - entered the controller tasker the triangular arbitrage -2025-03-05 00:46:22,040 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - called the control task -2025-03-05 00:46:22,512 - 17 - hummingbot.client.hummingbot_application - INFO - stop command initiated. -2025-03-05 00:46:22,512 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on strat -2025-03-05 00:46:22,512 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:22,513 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:22,513 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - terminating the status -2025-03-05 00:46:22,513 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,514 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,514 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,514 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,515 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,515 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,515 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,515 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,516 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,516 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,516 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,516 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,516 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,517 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,518 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - terminating the status -2025-03-05 00:46:22,518 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,518 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,518 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,518 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,519 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,520 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,520 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,520 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,520 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - connector removing -2025-03-05 00:46:22,578 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on base v2 -2025-03-05 00:46:22,578 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:22,579 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:23,041 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - calling the on stop on the control loop -2025-03-05 00:46:23,042 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:23,126 - 17 - GatewayCardanoAMM - WARNING - Error on POST https://localhost:15888/splash/price Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to the estimate the fee Error: not enough funds for specified selection\n at Cardano.estimateFee (/home/gateway/dist/src/chains/cardano/cardano.js:443:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.createPriceResponse (/home/gateway/dist/src/chains/cardano/cardano.js:534:28)\n at async Object. (/home/gateway/dist/src/connectors/splash/splash.routes.js:20:16)'} -2025-03-05 00:46:23,127 - 17 - hummingbot.strategy.script_strategy_base - ERROR - estimating the arb percent failed due to unsupported operand type(s) for *: 'NoneType' and 'decimal.Decimal' -2025-03-05 00:46:24,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received [] -2025-03-05 00:46:24,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'list' object has no attribute 'controller_id' -2025-03-05 00:46:28,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:28,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:29,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:29,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:30,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:30,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:31,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:31,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:32,003 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:32,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:33,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:33,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:34,059 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:34,059 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:34,449 - 17 - hummingbot.client.hummingbot_application - INFO - stop command initiated. -2025-03-05 00:46:34,450 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on strat -2025-03-05 00:46:34,450 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:34,450 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:34,451 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on base v2 -2025-03-05 00:46:34,451 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:34,452 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:35,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:35,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:36,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:36,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:37,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:37,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:38,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:38,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:39,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:39,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:40,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:40,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:41,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:41,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:42,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:42,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:43,003 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:43,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:44,034 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:44,035 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:44,383 - 17 - hummingbot.client.hummingbot_application - INFO - stop command initiated. -2025-03-05 00:46:44,384 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on strat -2025-03-05 00:46:44,384 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:44,385 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:44,386 - 17 - hummingbot.strategy.script_strategy_base - INFO - on stop on base v2 -2025-03-05 00:46:44,386 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri early stop -2025-03-05 00:46:44,387 - 17 - hummingbot.strategy_v2.executors.triangular_arb_executor.triangular_arb_executor - INFO - got into the exe tri on stop -2025-03-05 00:46:45,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:45,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:46,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:46,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:46,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 00:46:46,317 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 00:46:47,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:47,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:48,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:48,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:49,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:49,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:50,215 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:50,216 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:51,003 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:51,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:52,027 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:52,028 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:53,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:53,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:54,002 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:54,002 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:55,009 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:55,009 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:56,003 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:56,003 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:57,008 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:57,008 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:58,018 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:58,019 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:46:59,011 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:46:59,012 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:47:00,040 - 17 - hummingbot.strategy_v2.executors.executor_orchestrator - INFO - this is the action received None -2025-03-05 00:47:00,040 - 17 - hummingbot.core.clock - ERROR - Unexpected error running clock tick. -Traceback (most recent call last): - File "hummingbot/core/clock.pyx", line 119, in hummingbot.core.clock.Clock.run_til - child_iterator.c_tick(self._current_tick) - File "hummingbot/strategy/strategy_py_base.pyx", line 44, in hummingbot.strategy.strategy_py_base.StrategyPyBase.c_tick - self.tick(timestamp) - File "/home/hummingbot/hummingbot/strategy/script_strategy_base.py", line 75, in tick - self.on_tick() - File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 298, in on_tick - self.executor_orchestrator.execute_action(action) - File "/home/hummingbot/hummingbot/strategy_v2/executors/executor_orchestrator.py", line 202, in execute_action - controller_id = action.controller_id -AttributeError: 'NoneType' object has no attribute 'controller_id' -2025-03-05 00:47:01,231 - 17 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! diff --git a/logs/logs_hummingbot.log.2025-03-05 b/logs/logs_hummingbot.log.2025-03-05 deleted file mode 100644 index cd924472748..00000000000 --- a/logs/logs_hummingbot.log.2025-03-05 +++ /dev/null @@ -1,2601 +0,0 @@ -2025-03-04 07:16:01,119 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 07:16:01,300 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 07:21:03,222 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 07:34:53,668 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 07:34:53,792 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 07:40:04,405 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 07:40:04,406 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1059, in start - message, payload = await protocol.read() # type: ignore[union-attr] - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/streams.py", line 672, in read - await self._waiter -asyncio.exceptions.CancelledError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 200, in api_request - response = await client.post(url, json=params) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 730, in _request - await resp.start(conn) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1054, in start - with self._timer: - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/helpers.py", line 671, in __exit__ - raise asyncio.TimeoutError from exc_val -asyncio.exceptions.TimeoutError -2025-03-04 07:44:26,176 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 07:59:26,140 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 07:59:26,281 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 08:06:42,767 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 08:32:17,586 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 08:32:17,702 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 08:34:39,411 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 08:36:11,560 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 13:42:22,625 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 13:42:22,768 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 13:47:08,051 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 13:47:28,795 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 14:39:48,527 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 14:39:48,654 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 14:44:00,367 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 14:44:06,188 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 14:44:49,042 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 14:47:34,823 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 14:47:34,986 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 15:04:07,920 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 15:04:08,049 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 15:07:54,945 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 17:04:10,975 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 17:04:11,096 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 17:07:58,499 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 17:10:12,958 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:10:18,443 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:10:18,820 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:10:18,967 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:11:46,892 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:13:09,536 - 16 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 17:13:09,668 - 16 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 17:13:16,866 - 16 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:25:17,958 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 17:25:18,068 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 17:25:27,955 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/kucoin/kucoin_web_utils.py", line 74, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.kucoin.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:27,969 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-04 17:25:27,970 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.binance.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:27,972 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-04 17:25:27,973 - 17 - hummingbot.connector.exchange.kraken.kraken_exchange.KrakenExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange/kraken/kraken_exchange.py", line 190, in _api_get - return await self._api_request_with_retry(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange/kraken/kraken_exchange.py", line 353, in _api_request_with_retry - raise e - File "/home/hummingbot/hummingbot/connector/exchange/kraken/kraken_exchange.py", line 327, in _api_request_with_retry - response_json = await self._api_request(path_url=path_url, method=method, params=params, data=data, - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.kraken.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:27,976 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/kucoin/kucoin_web_utils.py", line 74, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.kucoin.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:27,976 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-04 17:25:27,981 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/gate_io/gate_io_web_utils.py", line 67, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.gateio.ws:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:27,983 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-04 17:25:38,184 - 17 - hummingbot.connector.exchange.binance.binance_exchange.BinanceExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.binance.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:38,187 - 17 - hummingbot.connector.exchange.gate_io.gate_io_exchange.GateIoExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.gateio.ws:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:38,189 - 17 - hummingbot.connector.exchange.kucoin.kucoin_exchange.KucoinExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.kucoin.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:25:38,190 - 17 - hummingbot.connector.exchange.kucoin.kucoin_exchange.KucoinExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1362, in _create_direct_connection - hosts = await self._resolve_host(host, port, traces=traces) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 995, in _resolve_host - return await asyncio.shield(resolved_host_task) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1026, in _resolve_host_with_throttle - addrs = await self._resolver.resolve(host, port, family=self._family) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/resolver.py", line 36, in resolve - infos = await self._loop.getaddrinfo( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/base_events.py", line 863, in getaddrinfo - return await self.run_in_executor( - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/opt/conda/envs/hummingbot/lib/python3.10/socket.py", line 967, in getaddrinfo - for res in _socket.getaddrinfo(host, port, family, type, proto, flags): -socket.gaierror: [Errno -3] Temporary failure in name resolution - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1368, in _create_direct_connection - raise ClientConnectorDNSError(req.connection_key, exc) from exc -aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host api.kucoin.com:443 ssl:default [Temporary failure in name resolution] -2025-03-04 17:26:03,870 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 17:26:05,206 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: 'total' -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 394, in _gateway_connect - native_token) or balances['balances']['total'].get(native_token), "address": wallet_address}] -KeyError: 'total' -2025-03-04 17:26:21,741 - 17 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! -2025-03-04 17:30:04,754 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 17:30:04,871 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 17:33:49,870 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 17:45:02,760 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 17:50:14,422 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 17:50:14,580 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 20:22:45,524 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 20:27:25,323 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-04 20:52:38,424 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 20:52:38,547 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 20:57:59,406 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 20:57:59,406 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1059, in start - message, payload = await protocol.read() # type: ignore[union-attr] - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/streams.py", line 672, in read - await self._waiter -asyncio.exceptions.CancelledError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 200, in api_request - response = await client.post(url, json=params) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 730, in _request - await resp.start(conn) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1054, in start - with self._timer: - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/helpers.py", line 671, in __exit__ - raise asyncio.TimeoutError from exc_val -asyncio.exceptions.TimeoutError -2025-03-04 21:07:00,909 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 198, in _process - self._call_handler(matches[-1], key_sequence=buffer[:i]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/home/hummingbot/hummingbot/client/ui/keybindings.py", line 57, in do_copy - get_app().clipboard.set_data(data) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 21:12:09,406 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 21:12:09,406 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1059, in start - message, payload = await protocol.read() # type: ignore[union-attr] - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/streams.py", line 672, in read - await self._waiter -asyncio.exceptions.CancelledError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 200, in api_request - response = await client.post(url, json=params) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 730, in _request - await resp.start(conn) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1054, in start - with self._timer: - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/helpers.py", line 671, in __exit__ - raise asyncio.TimeoutError from exc_val -asyncio.exceptions.TimeoutError -2025-03-04 21:43:02,405 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 21:43:02,405 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1059, in start - message, payload = await protocol.read() # type: ignore[union-attr] - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/streams.py", line 672, in read - await self._waiter -asyncio.exceptions.CancelledError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 200, in api_request - response = await client.post(url, json=params) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 730, in _request - await resp.start(conn) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1054, in start - with self._timer: - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/helpers.py", line 671, in __exit__ - raise asyncio.TimeoutError from exc_val -asyncio.exceptions.TimeoutError -2025-03-04 22:45:07,905 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 662, in _update_balances - await market._update_balances() - File "/home/hummingbot/hummingbot/connector/gateway/amm/gateway_amm_base.py", line 573, in _update_balances - await self.update_balances() - File "/home/hummingbot/hummingbot/connector/gateway/amm/gateway_amm_base.py", line 552, in update_balances - resp_json: Dict[str, Any] = await self._get_gateway_instance().get_balances( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 312, in get_balances - return await self.api_request( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 200, in api_request - response = await client.post(url, json=params) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 730, in _request - await resp.start(conn) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1059, in start - message, payload = await protocol.read() # type: ignore[union-attr] - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/streams.py", line 672, in read - await self._waiter -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 738, in all_balances_all_exc - await self.update_exchange(client_config_map) - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 733, in update_exchange - results = await safe_gather(*tasks) - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 22, in safe_gather - return await asyncio.gather(*args, **kwargs) -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 456, in wait_for - return fut.result() -asyncio.exceptions.CancelledError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 541, in _get_balances - bal_resp = await asyncio.wait_for( - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 458, in wait_for - raise exceptions.TimeoutError() from exc -asyncio.exceptions.TimeoutError -2025-03-04 22:45:37,305 - 17 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! -2025-03-04 22:51:14,646 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 22:51:14,776 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 22:52:13,031 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 22:52:13,031 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: API key is invalid or expired.\n at Cardano.APIKeyValidation (/home/gateway/dist/src/chains/cardano/cardano.js:82:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async getChainInstance (/home/gateway/dist/src/services/connection-manager.js:45:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:27:28)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: API key is invalid or expired.\n at Cardano.APIKeyValidation (/home/gateway/dist/src/chains/cardano/cardano.js:82:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async getChainInstance (/home/gateway/dist/src/services/connection-manager.js:45:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:27:28)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 22:57:29,750 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 22:57:29,750 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 22:59:39,651 - 17 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! -2025-03-04 23:00:54,924 - 16 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 23:00:55,066 - 16 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 23:01:11,615 - 16 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 23:01:11,616 - 16 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 23:04:08,216 - 16 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 23:04:08,216 - 16 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 23:11:13,079 - 16 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! -2025-03-04 23:35:31,504 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-04 23:35:31,637 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-04 23:35:39,684 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 23:35:39,685 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 23:36:10,355 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-04 23:36:10,356 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-04 23:36:16,552 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 23:36:16,870 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-04 23:36:18,733 - 17 - hummingbot.client.hummingbot_application - ERROR - MQTT is already stopped! -2025-03-05 00:27:57,606 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-05 00:27:57,807 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-05 00:28:13,559 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-05 00:28:13,559 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: Failed to fetch the splash pools TypeError: fetch failed\n at getSplashPools (/home/gateway/dist/src/chains/cardano/cardano.utils.js:174:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Cardano.loadPools (/home/gateway/dist/src/chains/cardano/cardano.js:314:29)\n at async Cardano.init (/home/gateway/dist/src/chains/cardano/cardano.js:59:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:32:9)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-05 00:29:36,777 - 17 - hummingbot.client.hummingbot_application - INFO - stop command initiated. -2025-03-05 00:43:35,478 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-05 00:44:18,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 00:44:18,323 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 00:44:49,316 - 17 - hummingbot.core.rate_oracle.sources.rate_source_base - ERROR - Unexpected error while retrieving rates from Binance. Check the log file for more info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/rate_oracle/sources/binance_rate_source.py", line 54, in _get_binance_prices - pairs_prices = await exchange.get_all_pairs_prices() - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_exchange.py", line 120, in get_all_pairs_prices - pairs_prices = await self._api_get(path_url=CONSTANTS.TICKER_BOOK_PATH_URL) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/ticker/bookTicker -2025-03-05 00:45:02,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 00:45:02,317 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 00:45:30,228 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 616, in lazy_load_stub_copy - return copy(text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-05 00:45:33,328 - 17 - hummingbot.core.rate_oracle.sources.rate_source_base - ERROR - Unexpected error while retrieving rates from Binance. Check the log file for more info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/rate_oracle/sources/binance_rate_source.py", line 54, in _get_binance_prices - pairs_prices = await exchange.get_all_pairs_prices() - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_exchange.py", line 120, in get_all_pairs_prices - pairs_prices = await self._api_get(path_url=CONSTANTS.TICKER_BOOK_PATH_URL) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/ticker/bookTicker -2025-03-05 00:45:54,792 - 17 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/events.py", line 80, in _run - self._context.run(self._callback, *self._args) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/input/vt100.py", line 168, in callback_wrapper - callback() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 691, in read_from_input - self.key_processor.process_keys() - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 274, in process_keys - self._process_coroutine.send(key_press) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 186, in _process - self._call_handler(matches[-1], key_sequence=buffer[:]) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_processor.py", line 329, in _call_handler - handler.call(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/key_bindings.py", line 102, in call - result = self.handler(event) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/named_commands.py", line 408, in unix_word_rubout - event.app.clipboard.set_text(deleted) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/base.py", line 52, in set_text - self.set_data(ClipboardData(text)) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/prompt_toolkit/clipboard/pyperclip.py", line 25, in set_data - pyperclip.copy(data.text) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/pyperclip/__init__.py", line 301, in __call__ - raise PyperclipException(EXCEPT_MSG) -pyperclip.PyperclipException: - Pyperclip could not find a copy/paste mechanism for your system. - For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error -2025-03-05 00:58:11,909 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-05 00:58:12,090 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-05 00:58:42,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 00:58:42,320 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 00:58:46,026 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/wallet/apikey failed. See logs for more details. -2025-03-05 00:58:46,026 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: API key is invalid or expired.\n at Cardano.APIKeyValidation (/home/gateway/dist/src/chains/cardano/cardano.js:82:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async getChainInstance (/home/gateway/dist/src/services/connection-manager.js:45:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:27:28)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 280, in _gateway_connect - await self._get_gateway_instance().add_dex_api_key(chain, network, maestro_api_key) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 288, in add_dex_api_key - return await self.api_request(method="post", path_url="wallet/apikey", params=request) - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/wallet/apikey Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: API key is invalid or expired.\n at Cardano.APIKeyValidation (/home/gateway/dist/src/chains/cardano/cardano.js:82:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async getChainInstance (/home/gateway/dist/src/services/connection-manager.js:45:9)\n at async getInitializedChain (/home/gateway/dist/src/services/connection-manager.js:27:28)\n at async addApiKey (/home/gateway/dist/src/wallet/wallet.controllers.js:158:22)\n at async Object. (/home/gateway/dist/src/wallet/wallet.routes.js:135:9)'} -2025-03-05 00:59:13,316 - 17 - hummingbot.connector.exchange.binance.binance_exchange.BinanceExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/exchangeInfo -2025-03-05 01:00:36,937 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-05 01:01:14,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 01:01:14,318 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 01:01:45,317 - 17 - hummingbot.core.rate_oracle.sources.rate_source_base - ERROR - Unexpected error while retrieving rates from Binance. Check the log file for more info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/rate_oracle/sources/binance_rate_source.py", line 54, in _get_binance_prices - pairs_prices = await exchange.get_all_pairs_prices() - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_exchange.py", line 120, in get_all_pairs_prices - pairs_prices = await self._api_get(path_url=CONSTANTS.TICKER_BOOK_PATH_URL) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/ticker/bookTicker -2025-03-05 01:20:01,961 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-05 01:20:02,070 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-05 01:20:32,317 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 01:20:32,319 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 01:21:03,317 - 17 - hummingbot.connector.exchange.binance.binance_exchange.BinanceExchange - ERROR - There was an error requesting exchange info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1073, in _initialize_trading_pair_symbol_map - exchange_info = await self._make_trading_pairs_request() - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 1086, in _make_trading_pairs_request - exchange_info = await self._api_get(path_url=self.trading_pairs_request_path) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/exchangeInfo -2025-03-05 01:22:11,003 - 17 - hummingbot.client.hummingbot_application - INFO - fetched private key bean gaze rude oval syrup doctor unique banner cement awesome desert peace seven toast absent hurdle shrug lend topple off other option assume heavy -2025-03-05 01:22:58,316 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 01:22:58,317 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 01:23:29,317 - 17 - hummingbot.core.rate_oracle.sources.rate_source_base - ERROR - Unexpected error while retrieving rates from Binance. Check the log file for more info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/rate_oracle/sources/binance_rate_source.py", line 54, in _get_binance_prices - pairs_prices = await exchange.get_all_pairs_prices() - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_exchange.py", line 120, in get_all_pairs_prices - pairs_prices = await self._api_get(path_url=CONSTANTS.TICKER_BOOK_PATH_URL) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/ticker/bookTicker -2025-03-05 01:23:47,328 - 17 - hummingbot.connector.time_synchronizer - NETWORK - Error getting server time. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/connector/time_synchronizer.py", line 66, in update_server_time_offset_with_time_provider - server_time_ms: float = await time_provider - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_web_utils.py", line 69, in get_current_server_time - response = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/time -2025-03-05 01:23:47,329 - 17 - hummingbot.connector.time_synchronizer - WARNING - Could not refresh server time. Check network connection. -2025-03-05 01:24:18,316 - 17 - hummingbot.core.rate_oracle.sources.rate_source_base - ERROR - Unexpected error while retrieving rates from Binance. Check the log file for more info. -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1116, in _wrap_create_connection - sock = await aiohappyeyeballs.start_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/impl.py", line 78, in start_connection - sock, _, _ = await _staggered.staggered_race( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 160, in staggered_race - done = await _wait_one( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohappyeyeballs/_staggered.py", line 41, in _wait_one - return await wait_next -asyncio.exceptions.CancelledError - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 703, in _request - conn = await self._connector.connect( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 548, in connect - proto = await self._create_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1056, in _create_connection - _, proto = await self._create_direct_connection(req, traces, timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1411, in _create_direct_connection - raise last_exc - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1380, in _create_direct_connection - transp, proto = await self._wrap_create_connection( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/connector.py", line 1113, in _wrap_create_connection - async with ceil_timeout( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 179, in __aexit__ - self._do_exit(exc_type) - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/async_timeout/__init__.py", line 265, in _do_exit - raise asyncio.TimeoutError -asyncio.exceptions.TimeoutError - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/rate_oracle/sources/binance_rate_source.py", line 54, in _get_binance_prices - pairs_prices = await exchange.get_all_pairs_prices() - File "/home/hummingbot/hummingbot/connector/exchange/binance/binance_exchange.py", line 120, in get_all_pairs_prices - pairs_prices = await self._api_get(path_url=CONSTANTS.TICKER_BOOK_PATH_URL) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 863, in _api_get - return await self._api_request(*args, **kwargs) - File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 906, in _api_request - request_result = await rest_assistant.execute_request( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request - response = await self.execute_request_and_get_response( - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 94, in execute_request_and_get_response - response = await self.call(request=request, timeout=timeout) - File "/home/hummingbot/hummingbot/core/web_assistant/rest_assistant.py", line 108, in call - resp = await wait_for(self._connection.call(request), timeout) - File "/opt/conda/envs/hummingbot/lib/python3.10/asyncio/tasks.py", line 408, in wait_for - return await fut - File "/home/hummingbot/hummingbot/core/web_assistant/connections/rest_connection.py", line 10, in call - aiohttp_resp = await self._client_session.request( - File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/aiohttp/client.py", line 707, in _request - raise ConnectionTimeoutError( -aiohttp.client_exceptions.ConnectionTimeoutError: Connection timeout to host https://api.binance.com/api/v3/ticker/bookTicker -2025-03-05 09:53:43,542 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Non-hexadecimal digit found -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 127, in call_async - return await self.schedule_async_call(coro, timeout_seconds, app_warning_msg=app_warning_msg) - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 116, in schedule_async_call - return await fut - File "/home/hummingbot/hummingbot/core/utils/async_call_scheduler.py", line 79, in _coro_scheduler - fut.set_result(await coro) - File "/opt/conda/envs/hummingbot/lib/python3.10/concurrent/futures/thread.py", line 58, in run - result = self.fn(*self.args, **self.kwargs) - File "/home/hummingbot/hummingbot/client/config/security.py", line 65, in decrypt_all - cls.decrypt_connector_config(file) - File "/home/hummingbot/hummingbot/client/config/security.py", line 71, in decrypt_connector_config - cls._secure_configs[connector_name] = load_connector_config_map_from_file(file_path) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 668, in load_connector_config_map_from_file - _load_yml_data_into_map(config_data, config_map) - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 750, in _load_yml_data_into_map - config_validation_errors = cm.validate_model() # try coercing values to appropriate type - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 199, in validate_model - self.decrypt_all_secure_data() - File "/home/hummingbot/hummingbot/client/config/config_helpers.py", line 237, in decrypt_all_secure_data - decrypted_value = Security.secrets_manager.decrypt_secret_value(attr=traversal_item.attr, value=value) - File "/home/hummingbot/hummingbot/client/config/config_crypt.py", line 59, in decrypt_secret_value - value = binascii.unhexlify(value) -binascii.Error: Non-hexadecimal digit found -2025-03-05 09:53:43,720 - 17 - hummingbot.core.gateway.gateway_status_monitor - INFO - Gateway Service is ONLINE. -2025-03-05 09:55:56,731 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/cardano/balances failed. See logs for more details. -2025-03-05 09:55:56,732 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/cardano/balances Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: SyntaxError: Unexpected non-whitespace character after JSON at position 831\n at Cardano.getAddressUtxos (/home/gateway/dist/src/chains/cardano/cardano.js:169:19)\n at async CardanoController.balances (/home/gateway/dist/src/chains/cardano/cardano.controllers.js:10:21)\n at async Object. (/home/gateway/dist/src/chains/cardano/cardano.routes.js:43:16)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 346, in _gateway_connect - balances: Dict[str, Any] = await self._get_gateway_instance().get_balances( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 312, in get_balances - return await self.api_request( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/cardano/balances Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: SyntaxError: Unexpected non-whitespace character after JSON at position 831\n at Cardano.getAddressUtxos (/home/gateway/dist/src/chains/cardano/cardano.js:169:19)\n at async CardanoController.balances (/home/gateway/dist/src/chains/cardano/cardano.controllers.js:10:21)\n at async Object. (/home/gateway/dist/src/chains/cardano/cardano.routes.js:43:16)'} -2025-03-05 11:02:13,374 - 17 - hummingbot.core.gateway.gateway_http_client - WARNING - Call to https://localhost:15888/cardano/balances failed. See logs for more details. -2025-03-05 11:02:13,375 - 17 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: Error on POST https://localhost:15888/cardano/balances Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: SyntaxError: Unexpected non-whitespace character after JSON at position 831\n at Cardano.getAddressUtxos (/home/gateway/dist/src/chains/cardano/cardano.js:169:19)\n at async CardanoController.balances (/home/gateway/dist/src/chains/cardano/cardano.controllers.js:10:21)\n at async Object. (/home/gateway/dist/src/chains/cardano/cardano.routes.js:43:16)'} -Traceback (most recent call last): - File "/home/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper - return await c - File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 346, in _gateway_connect - balances: Dict[str, Any] = await self._get_gateway_instance().get_balances( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 312, in get_balances - return await self.api_request( - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 234, in api_request - raise e - File "/home/hummingbot/hummingbot/core/gateway/gateway_http_client.py", line 222, in api_request - raise ValueError(f"Error on {method.upper()} {url} Error: {parsed_response}") -ValueError: Error on POST https://localhost:15888/cardano/balances Error: {'message': 'Unknown error.', 'httpErrorCode': 503, 'errorCode': 1099, 'stack': 'Error: SyntaxError: Unexpected non-whitespace character after JSON at position 831\n at Cardano.getAddressUtxos (/home/gateway/dist/src/chains/cardano/cardano.js:169:19)\n at async CardanoController.balances (/home/gateway/dist/src/chains/cardano/cardano.controllers.js:10:21)\n at async Object. (/home/gateway/dist/src/chains/cardano/cardano.routes.js:43:16)'} diff --git a/scripts/v2_triangular_arb.py b/scripts/v2_triangular_arb.py index 33f03e8d38c..540b6006322 100755 --- a/scripts/v2_triangular_arb.py +++ b/scripts/v2_triangular_arb.py @@ -2,12 +2,11 @@ import os import time from asyncio import Future +from dataclasses import dataclass from decimal import Decimal from typing import Callable, Dict, List, Set, Union, cast -from hummingbot.client.hummingbot_application import HummingbotApplication from pydantic import Field -from dataclasses import dataclass from hummingbot.client.config.config_data_types import ClientFieldData from hummingbot.connector.connector_base import ConnectorBase @@ -19,8 +18,8 @@ ArbitrageDirection, ArbitragePercent, GraceFullStop, - TriExecuter, TriangularArbExecutorConfig, + TriExecuter, ) from hummingbot.strategy_v2.models.executor_actions import CreateExecutorAction, ExecutorAction, StopExecutorAction @@ -100,8 +99,6 @@ def __init__(self, connectors: Dict[str, ConnectorBase], config: TriangularArbV2 self.executor_stopper: Union[Callable[[TriExecuter], None], None] = None self.executor_called: bool = False self.latest_action_exec_id: str = "" - self.hb_app = HummingbotApplication.main_application() - self.mqtt_enabled = self.hb_app._mqtt is not None def arbitrage_config(self, direction: ArbitrageDirection, amounts: ArbitragePercent) -> TriangularArbExecutorConfig: @@ -131,6 +128,7 @@ def arbitrage_config(self, direction: ArbitrageDirection, amounts: ArbitragePerc confirm_round_callback=self.confirm_round, set_stop=self.set_stop, stopper_init=True if self.executor_stopper == None else False, + real_arbitrage_percentage=amounts.percent ) def on_tick(self): @@ -149,6 +147,7 @@ def determine_executor_actions(self) -> List[ExecutorAction]: elif self._arb_task.done(): executor_actions.append(self._arb_task.result()) self._arb_task = safe_ensure_future(self.try_create_arbitrage_action()) + self.logger().debug("sending this action %s and this called %s and this executer %s", executor_actions,self.executor_called,self.executor_stopper) return executor_actions async def try_create_arbitrage_action(self) -> List[ExecutorAction]: @@ -158,7 +157,7 @@ async def try_create_arbitrage_action(self) -> List[ExecutorAction]: ) - if self.executor_called: + if self.executor_called == True: return [StopExecutorAction(executor_id= self.latest_action_exec_id)] if self.executor_stopper == None: fake_action = CreateExecutorAction( @@ -172,15 +171,16 @@ async def try_create_arbitrage_action(self) -> List[ExecutorAction]: ), ) ) + fake_action.controller_id = fake_action.executor_config.id self.latest_action_exec_id = fake_action.executor_config.id return fake_action # # Uncomment this if you want to test the stats and do only one trade once found an opportunity # - if self.one_time_trade: - print("traded one time, not trading anymore") - return [] + # if self.one_time_trade: + # print("traded one time, not trading anymore") + # return [] if not self.previous_round_confirmed: print("Wait until next round gets confirmed") @@ -210,7 +210,6 @@ async def try_create_arbitrage_action(self) -> List[ExecutorAction]: else: self.one_time_trade = True self.previous_round_confirmed = False - self.logger().info("retiring this action: %s", executor_actions[0]) return executor_actions[0] async def estimate_arbitrage_percent(self, direction: ArbitrageDirection) -> ArbitragePercent: @@ -322,17 +321,9 @@ def set_stop(self, early_stop: Callable[[TriExecuter], None]): self.executor_stopper = early_stop async def on_stop(self): - self.logger().info("on stop on strat") self.executor_stopper() self.executor_called = True await super().on_stop() - - - async def on_stop(self): - await super().on_stop() - if self.mqtt_enabled: - self._pub({controller_id: {} for controller_id in self.controllers.keys()}) - self._pub = None def confirm_round(self): print("All orders have been filled") diff --git a/test/hummingbot/client/config/test_config_var.py b/test/hummingbot/client/config/test_config_var.py index 0661df9e16a..25e67d55aa6 100644 --- a/test/hummingbot/client/config/test_config_var.py +++ b/test/hummingbot/client/config/test_config_var.py @@ -1,5 +1,6 @@ import asyncio import unittest + from hummingbot.client.config.config_var import ConfigVar diff --git a/test/hummingbot/client/test_formatter.py b/test/hummingbot/client/test_formatter.py index 55ef205b006..43df67110f6 100644 --- a/test/hummingbot/client/test_formatter.py +++ b/test/hummingbot/client/test_formatter.py @@ -1,7 +1,7 @@ import unittest from decimal import Decimal -from hummingbot.client import format_decimal, FLOAT_PRINTOUT_PRECISION +from hummingbot.client import FLOAT_PRINTOUT_PRECISION, format_decimal class FormatterTest(unittest.TestCase): diff --git a/test/hummingbot/connector/exchange/ndax/test_ndax_in_flight_order.py b/test/hummingbot/connector/exchange/ndax/test_ndax_in_flight_order.py index 018d59c85c2..62d71f2abeb 100644 --- a/test/hummingbot/connector/exchange/ndax/test_ndax_in_flight_order.py +++ b/test/hummingbot/connector/exchange/ndax/test_ndax_in_flight_order.py @@ -1,7 +1,7 @@ from decimal import Decimal from unittest import TestCase -from hummingbot.connector.exchange.ndax.ndax_in_flight_order import NdaxInFlightOrder, WORKING_LOCAL_STATUS +from hummingbot.connector.exchange.ndax.ndax_in_flight_order import WORKING_LOCAL_STATUS, NdaxInFlightOrder from hummingbot.core.data_type.common import OrderType, TradeType diff --git a/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_message.py b/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_message.py index f5acb8f490d..971616d2746 100644 --- a/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_message.py +++ b/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_message.py @@ -1,8 +1,7 @@ import time - from unittest import TestCase -from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookMessage, NdaxOrderBookEntry +from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookEntry, NdaxOrderBookMessage from hummingbot.core.data_type.order_book_message import OrderBookMessageType diff --git a/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_tracker.py b/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_tracker.py index bbdcef7841f..426b8c134c4 100644 --- a/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_tracker.py +++ b/test/hummingbot/connector/exchange/ndax/test_ndax_order_book_tracker.py @@ -1,16 +1,15 @@ -import unittest import asyncio +import unittest from decimal import Decimal from typing import Any -from unittest.mock import patch, AsyncMock +from unittest.mock import AsyncMock, patch import hummingbot.connector.exchange.ndax.ndax_constants as CONSTANTS - -from hummingbot.core.data_type.order_book import OrderBook from hummingbot.connector.exchange.ndax.ndax_order_book import NdaxOrderBook from hummingbot.connector.exchange.ndax.ndax_order_book_message import NdaxOrderBookEntry, NdaxOrderBookMessage from hummingbot.connector.exchange.ndax.ndax_order_book_tracker import NdaxOrderBookTracker from hummingbot.core.api_throttler.async_throttler import AsyncThrottler +from hummingbot.core.data_type.order_book import OrderBook class NdaxOrderBookTrackerUnitTest(unittest.TestCase): diff --git a/test/hummingbot/core/data_type/test_limit_order.py b/test/hummingbot/core/data_type/test_limit_order.py index a22abbc1c5a..0951f0e5cbc 100644 --- a/test/hummingbot/core/data_type/test_limit_order.py +++ b/test/hummingbot/core/data_type/test_limit_order.py @@ -1,6 +1,7 @@ +import time import unittest from decimal import Decimal -import time + from hummingbot.core.data_type.limit_order import LimitOrder from hummingbot.core.event.events import LimitOrderStatus diff --git a/test/hummingbot/core/data_type/test_order_book.py b/test/hummingbot/core/data_type/test_order_book.py index 98eb44dab97..463b1c38d37 100644 --- a/test/hummingbot/core/data_type/test_order_book.py +++ b/test/hummingbot/core/data_type/test_order_book.py @@ -2,9 +2,11 @@ import logging import unittest -from hummingbot.core.data_type.order_book import OrderBook + import numpy as np +from hummingbot.core.data_type.order_book import OrderBook + class OrderBookUnitTest(unittest.TestCase): @classmethod diff --git a/test/hummingbot/core/data_type/test_order_book_message.py b/test/hummingbot/core/data_type/test_order_book_message.py index 9638fcd705e..9c015cb9d18 100644 --- a/test/hummingbot/core/data_type/test_order_book_message.py +++ b/test/hummingbot/core/data_type/test_order_book_message.py @@ -1,8 +1,7 @@ import time import unittest -from hummingbot.core.data_type.order_book_message import OrderBookMessage, \ - OrderBookMessageType +from hummingbot.core.data_type.order_book_message import OrderBookMessage, OrderBookMessageType from hummingbot.core.data_type.order_book_row import OrderBookRow diff --git a/test/hummingbot/core/data_type/test_trade_fee.py b/test/hummingbot/core/data_type/test_trade_fee.py index 3cae9736e89..3fc03b12e0f 100644 --- a/test/hummingbot/core/data_type/test_trade_fee.py +++ b/test/hummingbot/core/data_type/test_trade_fee.py @@ -1,7 +1,7 @@ from decimal import Decimal from unittest import TestCase -from hummingbot.core.data_type.common import TradeType, PositionAction +from hummingbot.core.data_type.common import PositionAction, TradeType from hummingbot.core.data_type.in_flight_order import TradeUpdate from hummingbot.core.data_type.trade_fee import ( AddedToCostTradeFee, diff --git a/test/hummingbot/core/test_network_iterator.py b/test/hummingbot/core/test_network_iterator.py index 54f9d1ce098..3dfa563dc63 100644 --- a/test/hummingbot/core/test_network_iterator.py +++ b/test/hummingbot/core/test_network_iterator.py @@ -1,15 +1,10 @@ -import unittest import asyncio +import unittest + import pandas as pd -from hummingbot.core.clock import ( - Clock, - ClockMode -) -from hummingbot.core.network_iterator import ( - NetworkIterator, - NetworkStatus, -) +from hummingbot.core.clock import Clock, ClockMode +from hummingbot.core.network_iterator import NetworkIterator, NetworkStatus class MockNetworkIterator(NetworkIterator): diff --git a/test/hummingbot/core/test_pubsub.py b/test/hummingbot/core/test_pubsub.py index 56e9bbae4c3..abc3f0dc229 100644 --- a/test/hummingbot/core/test_pubsub.py +++ b/test/hummingbot/core/test_pubsub.py @@ -1,11 +1,10 @@ -import unittest import gc +import unittest import weakref +from test.mock.mock_events import MockEvent, MockEventType -from hummingbot.core.pubsub import PubSub from hummingbot.core.event.event_logger import EventLogger - -from test.mock.mock_events import MockEventType, MockEvent +from hummingbot.core.pubsub import PubSub class PubSubTest(unittest.TestCase): diff --git a/test/hummingbot/core/test_py_time_iterator.py b/test/hummingbot/core/test_py_time_iterator.py index 7308c34e02e..af3f33aa8d7 100644 --- a/test/hummingbot/core/test_py_time_iterator.py +++ b/test/hummingbot/core/test_py_time_iterator.py @@ -1,11 +1,9 @@ -import unittest import math +import unittest + import pandas as pd -from hummingbot.core.clock import ( - Clock, - ClockMode -) +from hummingbot.core.clock import Clock, ClockMode from hummingbot.core.py_time_iterator import PyTimeIterator NaN = float("nan") diff --git a/test/hummingbot/core/test_time_iterator.py b/test/hummingbot/core/test_time_iterator.py index 9e96476669f..ddaf7fdd7bb 100644 --- a/test/hummingbot/core/test_time_iterator.py +++ b/test/hummingbot/core/test_time_iterator.py @@ -1,11 +1,9 @@ -import unittest import math +import unittest + import pandas as pd -from hummingbot.core.clock import ( - Clock, - ClockMode -) +from hummingbot.core.clock import Clock, ClockMode from hummingbot.core.time_iterator import TimeIterator NaN = float("nan") diff --git a/test/hummingbot/core/utils/test_async_retry.py b/test/hummingbot/core/utils/test_async_retry.py index e5c538903c3..97cb3875834 100644 --- a/test/hummingbot/core/utils/test_async_retry.py +++ b/test/hummingbot/core/utils/test_async_retry.py @@ -3,9 +3,10 @@ """ import asyncio -from hummingbot.core.utils.async_retry import AllTriesFailedException, async_retry import unittest +from hummingbot.core.utils.async_retry import AllTriesFailedException, async_retry + class FooException(Exception): """ diff --git a/test/hummingbot/core/utils/test_async_ttl_cache.py b/test/hummingbot/core/utils/test_async_ttl_cache.py index de06163d354..0acf10cffa5 100644 --- a/test/hummingbot/core/utils/test_async_ttl_cache.py +++ b/test/hummingbot/core/utils/test_async_ttl_cache.py @@ -1,6 +1,6 @@ -import unittest import asyncio import time +import unittest from hummingbot.core.utils import async_ttl_cache diff --git a/test/hummingbot/core/utils/test_gateway_config_utils.py b/test/hummingbot/core/utils/test_gateway_config_utils.py index 47a30021ba3..6d2990a778a 100644 --- a/test/hummingbot/core/utils/test_gateway_config_utils.py +++ b/test/hummingbot/core/utils/test_gateway_config_utils.py @@ -1,5 +1,6 @@ from typing import List from unittest import TestCase + import hummingbot.core.utils.gateway_config_utils as utils diff --git a/test/hummingbot/core/utils/test_gateway_transaction_exceptions.py b/test/hummingbot/core/utils/test_gateway_transaction_exceptions.py index 0ae364e3061..1d2e9b9fd7e 100644 --- a/test/hummingbot/core/utils/test_gateway_transaction_exceptions.py +++ b/test/hummingbot/core/utils/test_gateway_transaction_exceptions.py @@ -2,9 +2,9 @@ Unit tests for test_check_transaction_exceptions """ -from decimal import Decimal -from typing import Dict, Any import unittest.mock +from decimal import Decimal +from typing import Any, Dict from hummingbot.core.event.events import TradeType from hummingbot.core.gateway import check_transaction_exceptions diff --git a/test/hummingbot/core/utils/test_map_df_to_str.py b/test/hummingbot/core/utils/test_map_df_to_str.py index d5881e83eaa..5a88043b14e 100644 --- a/test/hummingbot/core/utils/test_map_df_to_str.py +++ b/test/hummingbot/core/utils/test_map_df_to_str.py @@ -1,5 +1,7 @@ import unittest + import pandas as pd + from hummingbot.core.utils import map_df_to_str diff --git a/test/hummingbot/core/utils/test_tracking_nonce.py b/test/hummingbot/core/utils/test_tracking_nonce.py index e47bdcc6240..2b35846155c 100644 --- a/test/hummingbot/core/utils/test_tracking_nonce.py +++ b/test/hummingbot/core/utils/test_tracking_nonce.py @@ -1,5 +1,5 @@ -from unittest import TestCase import asyncio +from unittest import TestCase import hummingbot.core.utils.tracking_nonce as tracking_nonce diff --git a/test/hummingbot/core/web_assistant/connections/test_connections_factory.py b/test/hummingbot/core/web_assistant/connections/test_connections_factory.py index 859de5612d6..9885b8f0698 100644 --- a/test/hummingbot/core/web_assistant/connections/test_connections_factory.py +++ b/test/hummingbot/core/web_assistant/connections/test_connections_factory.py @@ -2,12 +2,8 @@ import unittest from typing import Awaitable -from hummingbot.core.web_assistant.connections.connections_factory import ( - ConnectionsFactory -) -from hummingbot.core.web_assistant.connections.rest_connection import ( - RESTConnection -) +from hummingbot.core.web_assistant.connections.connections_factory import ConnectionsFactory +from hummingbot.core.web_assistant.connections.rest_connection import RESTConnection from hummingbot.core.web_assistant.connections.ws_connection import WSConnection diff --git a/test/hummingbot/strategy/__init__.py b/test/hummingbot/strategy/__init__.py index 8daf8fe12da..52b56f8d448 100644 --- a/test/hummingbot/strategy/__init__.py +++ b/test/hummingbot/strategy/__init__.py @@ -1,4 +1,5 @@ from typing import Dict + from hummingbot.client.config.config_var import ConfigVar diff --git a/test/hummingbot/strategy/amm_arb/test_amm_arb_start.py b/test/hummingbot/strategy/amm_arb/test_amm_arb_start.py index 7057fbb4812..29a480ce3c3 100644 --- a/test/hummingbot/strategy/amm_arb/test_amm_arb_start.py +++ b/test/hummingbot/strategy/amm_arb/test_amm_arb_start.py @@ -1,9 +1,10 @@ -from decimal import Decimal import unittest.mock +from decimal import Decimal +from test.hummingbot.strategy import assign_config_default + import hummingbot.strategy.amm_arb.start as amm_arb_start -from hummingbot.strategy.amm_arb.amm_arb_config_map import amm_arb_config_map from hummingbot.strategy.amm_arb.amm_arb import AmmArbStrategy -from test.hummingbot.strategy import assign_config_default +from hummingbot.strategy.amm_arb.amm_arb_config_map import amm_arb_config_map class AMMArbStartTest(unittest.TestCase): diff --git a/test/hummingbot/strategy/liquidity_mining/test_liquidity_mining_config_map.py b/test/hummingbot/strategy/liquidity_mining/test_liquidity_mining_config_map.py index c9f501297e3..ca86a8df6e6 100644 --- a/test/hummingbot/strategy/liquidity_mining/test_liquidity_mining_config_map.py +++ b/test/hummingbot/strategy/liquidity_mining/test_liquidity_mining_config_map.py @@ -1,10 +1,10 @@ +from test.hummingbot.strategy import assign_config_default from unittest import TestCase import hummingbot.strategy.liquidity_mining.liquidity_mining_config_map as liquidity_mining_config_map_module from hummingbot.strategy.liquidity_mining.liquidity_mining_config_map import ( - liquidity_mining_config_map as strategy_cmap + liquidity_mining_config_map as strategy_cmap, ) -from test.hummingbot.strategy import assign_config_default class LiquidityMiningConfigMapTests(TestCase): diff --git a/test/hummingbot/strategy/pure_market_making/test_inventory_skew_calculator.py b/test/hummingbot/strategy/pure_market_making/test_inventory_skew_calculator.py index aa176c1c299..c6402f55f41 100644 --- a/test/hummingbot/strategy/pure_market_making/test_inventory_skew_calculator.py +++ b/test/hummingbot/strategy/pure_market_making/test_inventory_skew_calculator.py @@ -2,8 +2,9 @@ import unittest from hummingbot.strategy.pure_market_making.data_types import InventorySkewBidAskRatios -from hummingbot.strategy.pure_market_making.inventory_skew_calculator import \ - calculate_bid_ask_ratios_from_base_asset_ratio +from hummingbot.strategy.pure_market_making.inventory_skew_calculator import ( + calculate_bid_ask_ratios_from_base_asset_ratio, +) class InventorySkewCalculatorUnitTest(unittest.TestCase): diff --git a/test/hummingbot/strategy/pure_market_making/test_moving_price_band.py b/test/hummingbot/strategy/pure_market_making/test_moving_price_band.py index c4048c4e2f8..0bde0cfc201 100644 --- a/test/hummingbot/strategy/pure_market_making/test_moving_price_band.py +++ b/test/hummingbot/strategy/pure_market_making/test_moving_price_band.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import unittest from decimal import Decimal + from hummingbot.strategy.pure_market_making.moving_price_band import MovingPriceBand diff --git a/test/hummingbot/strategy/pure_market_making/test_pmm_config_map.py b/test/hummingbot/strategy/pure_market_making/test_pmm_config_map.py index d63dac058b9..bb20d532087 100644 --- a/test/hummingbot/strategy/pure_market_making/test_pmm_config_map.py +++ b/test/hummingbot/strategy/pure_market_making/test_pmm_config_map.py @@ -3,13 +3,13 @@ from hummingbot.client.settings import AllConnectorSettings from hummingbot.strategy.pure_market_making.pure_market_making_config_map import ( - pure_market_making_config_map as pmm_config_map, + maker_trading_pair_prompt, on_validate_price_source, - validate_price_type, order_amount_prompt, - maker_trading_pair_prompt, + pure_market_making_config_map as pmm_config_map, + validate_decimal_list, validate_price_source_exchange, - validate_decimal_list + validate_price_type, ) diff --git a/test/hummingbot/strategy/spot_perpetual_arbitrage/test_spot_perpetual_arbitrage_config_map.py b/test/hummingbot/strategy/spot_perpetual_arbitrage/test_spot_perpetual_arbitrage_config_map.py index 39174f2c246..b833caf9eaa 100644 --- a/test/hummingbot/strategy/spot_perpetual_arbitrage/test_spot_perpetual_arbitrage_config_map.py +++ b/test/hummingbot/strategy/spot_perpetual_arbitrage/test_spot_perpetual_arbitrage_config_map.py @@ -1,12 +1,11 @@ import unittest - from copy import deepcopy from hummingbot.client.settings import AllConnectorSettings from hummingbot.strategy.spot_perpetual_arbitrage.spot_perpetual_arbitrage_config_map import ( - spot_perpetual_arbitrage_config_map, - spot_market_prompt, perpetual_market_prompt, + spot_market_prompt, + spot_perpetual_arbitrage_config_map, ) diff --git a/test/hummingbot/strategy/twap/test_twap_config_map.py b/test/hummingbot/strategy/twap/test_twap_config_map.py index 932109835d1..6cea8d68b01 100644 --- a/test/hummingbot/strategy/twap/test_twap_config_map.py +++ b/test/hummingbot/strategy/twap/test_twap_config_map.py @@ -1,6 +1,6 @@ import asyncio -from unittest import TestCase from decimal import Decimal +from unittest import TestCase import hummingbot.strategy.twap.twap_config_map as twap_config_map_module diff --git a/test/hummingbot/strategy/utils/test_ring_buffer.py b/test/hummingbot/strategy/utils/test_ring_buffer.py index 42847bac72f..c9a83d063bc 100644 --- a/test/hummingbot/strategy/utils/test_ring_buffer.py +++ b/test/hummingbot/strategy/utils/test_ring_buffer.py @@ -1,8 +1,10 @@ import unittest -from hummingbot.strategy.__utils__.ring_buffer import RingBuffer -import numpy as np from decimal import Decimal +import numpy as np + +from hummingbot.strategy.__utils__.ring_buffer import RingBuffer + class RingBufferTest(unittest.TestCase): BUFFER_LENGTH = 30 diff --git a/test/hummingbot/strategy/utils/trailing_indicators/test_historical_volatility.py b/test/hummingbot/strategy/utils/trailing_indicators/test_historical_volatility.py index 4e7d81d3f6b..2fe059a0159 100644 --- a/test/hummingbot/strategy/utils/trailing_indicators/test_historical_volatility.py +++ b/test/hummingbot/strategy/utils/trailing_indicators/test_historical_volatility.py @@ -1,5 +1,7 @@ import unittest + import numpy as np + from hummingbot.strategy.__utils__.trailing_indicators.historical_volatility import HistoricalVolatilityIndicator diff --git a/test/hummingbot/strategy/utils/trailing_indicators/test_instant_volatility.py b/test/hummingbot/strategy/utils/trailing_indicators/test_instant_volatility.py index d63ab224d1d..dbc5aa37407 100644 --- a/test/hummingbot/strategy/utils/trailing_indicators/test_instant_volatility.py +++ b/test/hummingbot/strategy/utils/trailing_indicators/test_instant_volatility.py @@ -1,5 +1,7 @@ import unittest + import numpy as np + from hummingbot.strategy.__utils__.trailing_indicators.instant_volatility import InstantVolatilityIndicator diff --git a/test/mock/mock_api_order_book_data_source.py b/test/mock/mock_api_order_book_data_source.py index 25be8d21e0b..7bfd0a2330d 100644 --- a/test/mock/mock_api_order_book_data_source.py +++ b/test/mock/mock_api_order_book_data_source.py @@ -1,19 +1,14 @@ #!/usr/bin/env python -import aiohttp import asyncio -from aiohttp.test_utils import TestClient import logging -import pandas as pd import time -from typing import ( - Any, - AsyncIterable, - Dict, - List, - Optional -) +from typing import Any, AsyncIterable, Dict, List, Optional + +import aiohttp +import pandas as pd import websockets +from aiohttp.test_utils import TestClient from websockets.exceptions import ConnectionClosed from hummingbot.core.data_type.order_book import OrderBook