Ejemplo n.º 1
0
    def create_client(self):
        if self.exchange_manager.ignore_config or self.exchange_manager.check_config(
                self.get_name()):
            try:
                if self.exchange_manager.ignore_config or not self.exchange_manager.should_decrypt_token(
                        self.logger):
                    key = ""
                    secret = ""
                    password = ""
                else:
                    config_exchange = self.config[CONFIG_EXCHANGES][self.name]
                    key = decrypt(config_exchange[CONFIG_EXCHANGE_KEY])
                    secret = decrypt(config_exchange[CONFIG_EXCHANGE_SECRET])
                    password = decrypt(config_exchange[CONFIG_EXCHANGE_PASSWORD]) \
                        if CONFIG_EXCHANGE_PASSWORD in config_exchange and \
                        not ConfigManager.has_invalid_default_config_value(config_exchange[CONFIG_EXCHANGE_PASSWORD]) \
                        else None

                self.client = self.exchange_type({
                    'apiKey': key,
                    'secret': secret,
                    'password': password,
                    'verbose': False,
                    'enableRateLimit': True
                })
            except Exception as e:
                self.exchange_manager.handle_token_error(e, self.logger)
                self.client = self.exchange_type({'verbose': False})
        else:
            self.client = self.exchange_type({'verbose': False})
            self.logger.error(
                "configuration issue: missing login information !")
        self.client.logger.setLevel(logging.INFO)
Ejemplo n.º 2
0
 def should_decrypt_token(self, logger):
     if ConfigManager.has_invalid_default_config_value(
             self.config[CONFIG_EXCHANGES][self.get_exchange_name()][CONFIG_EXCHANGE_KEY],
             self.config[CONFIG_EXCHANGES][self.get_exchange_name()][CONFIG_EXCHANGE_SECRET]):
         logger.warning("Exchange configuration tokens are not set yet, to use OctoBot's real trader's features, "
                        "please enter your api tokens in exchange configuration")
         return False
     return True
Ejemplo n.º 3
0
 def check_required_config(self, config):
     return all(key in config for key in self.get_required_config()) and \
         not ConfigManager.has_invalid_default_config_value(*(config[key] for key in self.get_required_config()))