def _get_coin_names(self) -> list:
        """
        Return available coin names in two steps. At first, fetch the main page to extract the
        timestamped endpoint. Then, add to a set the coin name from the page key.
        """
        coin_names = set()
        response = self._session.get("https://miningpoolstats.stream")
        if response.status_code != 200:
            logging.debug(
                f"Can't fetch main page - code: {response.status_code}, reason: {response.reason}"
            )
            return None
        m = re.search(
            r'href="(https://data.miningpoolstats.stream/data/coins_data.js\?t=[0-9]{10})"',
            response.text,
        )
        if not m:
            logging.debug("Can't extract pages from response")
            return None
        response = self._session.get(m.group(1))
        if response.status_code != 200:
            logging.debug(
                f"Can't fetch data - code: {response.status_code}, reason: {response.reason}"
            )
            return None
        for data in response.json().get("data", []):
            coin_names.add(data.get("page"))
        return coin_names

        Return available coin names in two steps. At first, fetch the main page to extract the
        timestamped endpoint. Then, add to a set the coin name from the page key.
        
plugins/feeds/public/miningpoolstats.py