Example #1
0
 def __init__(self, hummingbot_application):
     super(HummingbotCompleter, self).__init__()
     self.hummingbot_application = hummingbot_application
     self._path_completer = WordCompleter(file_name_list(str(STRATEGIES_CONF_DIR_PATH), "yml"))
     self._command_completer = WordCompleter(self.parser.commands, ignore_case=True)
     self._exchange_completer = WordCompleter(sorted(AllConnectorSettings.get_connector_settings().keys()), ignore_case=True)
     self._spot_exchange_completer = WordCompleter(sorted(AllConnectorSettings.get_exchange_names()), ignore_case=True)
     self._exchange_amm_completer = WordCompleter(sorted(AllConnectorSettings.get_exchange_names().union(AllConnectorSettings.get_gateway_evm_amm_connector_names())), ignore_case=True)
     self._evm_amm_lp_completer = WordCompleter(sorted(AllConnectorSettings.get_gateway_evm_amm_lp_connector_names()), ignore_case=True)
     self._trading_timeframe_completer = WordCompleter(["infinite", "from_date_to_date", "daily_between_times"], ignore_case=True)
     self._derivative_completer = WordCompleter(AllConnectorSettings.get_derivative_names(), ignore_case=True)
     self._derivative_exchange_completer = WordCompleter(AllConnectorSettings.get_derivative_names().difference(AllConnectorSettings.get_derivative_dex_names()), ignore_case=True)
     self._connect_option_completer = WordCompleter(CONNECT_OPTIONS, ignore_case=True)
     self._export_completer = WordCompleter(["keys", "trades"], ignore_case=True)
     self._balance_completer = WordCompleter(["limit", "paper"], ignore_case=True)
     self._history_completer = WordCompleter(["--days", "--verbose", "--precision"], ignore_case=True)
     self._gateway_completer = WordCompleter(["create", "config", "connect", "connector-tokens", "generate-certs", "status", "test-connection", "start", "stop"], ignore_case=True)
     self._gateway_connect_completer = WordCompleter(GATEWAY_CONNECTORS, ignore_case=True)
     self._gateway_connector_tokens_completer = WordCompleter(sorted(AllConnectorSettings.get_gateway_evm_amm_connector_names()), ignore_case=True)
     self._gateway_config_completer = WordCompleter(hummingbot_application.gateway_config_keys, ignore_case=True)
     self._strategy_completer = WordCompleter(STRATEGIES, ignore_case=True)
     self._py_file_completer = WordCompleter(file_name_list(str(PMM_SCRIPTS_PATH), "py"))
     self._script_strategy_completer = WordCompleter(file_name_list(str(SCRIPT_STRATEGIES_PATH), "py"))
     self._rate_oracle_completer = WordCompleter([r.name for r in RateOracleSource], ignore_case=True)
     self._gateway_networks = []
     self._list_gateway_wallets_parameters = {"wallets": [], "chain": ""}
def validate_exchange(value: str) -> Optional[str]:
    """
    Restrict valid exchanges to the exchange file names
    """
    from hummingbot.client.settings import AllConnectorSettings
    if value not in AllConnectorSettings.get_exchange_names():
        return f"Invalid exchange, please choose value from {AllConnectorSettings.get_exchange_names()}"
Example #3
0
 def __init__(self, hummingbot_application):
     super(HummingbotCompleter, self).__init__()
     self.hummingbot_application = hummingbot_application
     self._path_completer = WordCompleter(file_name_list(CONF_FILE_PATH, "yml"))
     self._command_completer = WordCompleter(self.parser.commands, ignore_case=True)
     self._exchange_completer = WordCompleter(sorted(AllConnectorSettings.get_connector_settings().keys()), ignore_case=True)
     self._spot_completer = WordCompleter(sorted(AllConnectorSettings.get_exchange_names().union(SPOT_PROTOCOL_CONNECTOR)), ignore_case=True)
     self._spot_exchange_completer = WordCompleter(sorted(AllConnectorSettings.get_exchange_names()), ignore_case=True)
     self._trading_timeframe_completer = WordCompleter(["infinite", "from_date_to_date", "daily_between_times"], ignore_case=True)
     self._derivative_completer = WordCompleter(AllConnectorSettings.get_derivative_names(), ignore_case=True)
     self._derivative_exchange_completer = WordCompleter(AllConnectorSettings.get_derivative_names().difference(DERIVATIVE_PROTOCOL_CONNECTOR), ignore_case=True)
     self._connect_option_completer = WordCompleter(CONNECT_OPTIONS, ignore_case=True)
     self._export_completer = WordCompleter(["keys", "trades"], ignore_case=True)
     self._balance_completer = WordCompleter(["limit", "paper"], ignore_case=True)
     self._history_completer = WordCompleter(["--days", "--verbose", "--precision"], ignore_case=True)
     self._gateway_completer = WordCompleter(["generate_certs", "list-configs", "update"], ignore_case=True)
     self._strategy_completer = WordCompleter(STRATEGIES, ignore_case=True)
     self._py_file_completer = WordCompleter(file_name_list(SCRIPTS_PATH, "py"))
     self._rate_oracle_completer = WordCompleter([r.name for r in RateOracleSource], ignore_case=True)
 PMM_SCRIPT_FILE_PATH_KEY:
 ConfigVar(
     key=PMM_SCRIPT_FILE_PATH_KEY,
     prompt='Enter path to your PMM script file >>> ',
     type_str="str",
     required_if=lambda: global_config_map[PMM_SCRIPT_ENABLED_KEY].value,
     validator=validate_pmm_script_file_path),
 "balance_asset_limit":
 ConfigVar(key="balance_asset_limit",
           prompt="Use the `balance limit` command"
           "e.g. balance limit [EXCHANGE] [ASSET] [AMOUNT]",
           required_if=lambda: False,
           type_str="json",
           default={
               exchange: None
               for exchange in AllConnectorSettings.get_exchange_names()
           }),
 "manual_gas_price":
 ConfigVar(
     key="manual_gas_price",
     prompt=
     "Enter fixed gas price (in Gwei) you want to use for Ethereum transactions >>> ",
     required_if=lambda: False,
     type_str="decimal",
     validator=lambda v: validate_decimal(v, Decimal(0), inclusive=False),
     default=50),
 "gateway_api_host":
 ConfigVar(key="gateway_api_host",
           prompt=None,
           required_if=lambda: False,
           default='localhost'),
Example #5
0
               type_str="bool",
               default=False,
               validator=validate_bool),
 "script_file_path":
     ConfigVar(key="script_file_path",
               prompt='Enter path to your script file >>> ',
               type_str="str",
               required_if=lambda: global_config_map["script_enabled"].value,
               validator=validate_script_file_path),
 "balance_asset_limit":
     ConfigVar(key="balance_asset_limit",
               prompt="Use the `balance limit` command"
                      "e.g. balance limit [EXCHANGE] [ASSET] [AMOUNT]",
               required_if=lambda: False,
               type_str="json",
               default={exchange: None for exchange in AllConnectorSettings.get_exchange_names()}),
 "manual_gas_price":
     ConfigVar(key="manual_gas_price",
               prompt="Enter fixed gas price (in Gwei) you want to use for Ethereum transactions >>> ",
               required_if=lambda: False,
               type_str="decimal",
               validator=lambda v: validate_decimal(v, Decimal(0), inclusive=False),
               default=50),
 "gateway_api_host":
     ConfigVar(key="gateway_api_host",
               prompt=None,
               required_if=lambda: False,
               default='localhost'),
 "gateway_api_port":
     ConfigVar(key="gateway_api_port",
               prompt="Please enter your Gateway API port >>> ",