Пример #1
0
    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
        ]
Пример #2
0
    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 []