Refactor load_market out of validate_pairs

This commit is contained in:
Matthias 2018-09-10 20:19:12 +02:00
parent 687dc78dbd
commit 0a29096794

View File

@ -98,6 +98,7 @@ class Exchange(object):
logger.info('Using Exchange "%s"', self.name)
self.markets = self._load_markets()
# Check if all pairs are available
self.validate_pairs(config['exchange']['pair_whitelist'])
@ -167,6 +168,16 @@ class Exchange(object):
logger.warning('Could not load async markets. Reason: %s', e)
return
def _load_markets(self) -> List[str]:
""" Initialize markets both sync and async """
try:
markets = self._api.load_markets()
self._load_async_markets()
return markets
except ccxt.BaseError as e:
logger.warning('Unable to initialize markets. Reason: %s', e)
return []
def validate_pairs(self, pairs: List[str]) -> None:
"""
Checks if all given pairs are tradable on the current exchange.
@ -175,11 +186,8 @@ class Exchange(object):
:return: None
"""
try:
markets = self._api.load_markets()
self._load_async_markets()
except ccxt.BaseError as e:
logger.warning('Unable to validate pairs (assuming they are correct). Reason: %s', e)
if not self.markets:
logger.warning('Unable to validate pairs (assuming they are correct).')
return
stake_cur = self._conf['stake_currency']
@ -189,7 +197,7 @@ class Exchange(object):
if not pair.endswith(stake_cur):
raise OperationalException(
f'Pair {pair} not compatible with stake_currency: {stake_cur}')
if pair not in markets:
if pair not in self.markets:
raise OperationalException(
f'Pair {pair} is not available at {self.name}')