async def fetch_bamboo_relay_trading_pairs() -> List[str]: from hummingbot.market.bamboo_relay.bamboo_relay_market import BambooRelayMarket sslcontext = ssl.create_default_context(cafile=certifi.where()) trading_pairs = set() page_count = 1 while True: async with aiohttp.ClientSession() as client: async with client.get( f"{BAMBOO_RELAY_ENDPOINT}?perPage=1000&page={page_count}", timeout=API_CALL_TIMEOUT, ssl=sslcontext) as response: if response.status == 200: try: markets = await response.json() new_trading_pairs = set( map(lambda details: details.get('id'), markets)) if len(new_trading_pairs) == 0: break else: trading_pairs = trading_pairs.union( new_trading_pairs) page_count += 1 except Exception: # Do nothing if the request fails -- there will be no autocomplete for bamboo trading pairs break return [ BambooRelayMarket.convert_from_exchange_trading_pair(p) for p in trading_pairs ]
async def fetch_bamboo_relay_trading_pairs(self) -> List[str]: try: from hummingbot.market.bamboo_relay.bamboo_relay_market import BambooRelayMarket trading_pairs = set() page_count = 1 client: aiohttp.ClientSession = self.http_client() while True: async with client.get( f"{BAMBOO_RELAY_ENDPOINT}?perPage=1000&page={page_count}", timeout=API_CALL_TIMEOUT) as response: if response.status == 200: markets = await response.json() new_trading_pairs = set( map(lambda details: details.get("id"), markets)) if len(new_trading_pairs) == 0: break else: trading_pairs = trading_pairs.union( new_trading_pairs) page_count += 1 trading_pair_list: List[str] = [] for raw_trading_pair in trading_pairs: converted_trading_pair: Optional[str] = \ BambooRelayMarket.convert_from_exchange_trading_pair(raw_trading_pair) if converted_trading_pair is not None: trading_pair_list.append( converted_trading_pair) else: self.logger().debug( f"Could not parse the trading pair {raw_trading_pair}, skipping it..." ) return trading_pair_list else: break except Exception: # Do nothing if the request fails -- there will be no autocomplete for bamboo trading pairs pass return []