def _extract_pool_urls(self, coin_name: str) -> Generator[dict, None, None]:
        """
        Yield data associated to the provided coin name, in two steps. At first, extract the
        timestamped endpoint from the coin page. Then, fetch the endpoint to extract the pool urls.
        """
        endpoint = f"{self._SOURCE}/{coin_name}"
        response = self._session.get(endpoint)
        if response.status_code != 200:
            logging.debug(
                f"Can't fetch coin page {coin_name} - code: {response.status_code}, reason: {response.reason}"
            )
            return
        pattern = (
            r'href="(https://data.miningpoolstats.stream/data/'
            + coin_name
            + r'.js\?t=[0-9]{10})"'
        )
        m = re.search(pattern, response.text)
        if not m:
            logging.debug("Can't find pools endpoint")
            return
        response = self._session.get(m.group(1))
        if response.status_code != 200:
            logging.debug(
                f"Can't fetch pool page - code: {response.status_code}, reason: {response.reason}"
            )
            return
        for data in response.json().get("data", []):
            yield data
        return

        Yield data associated to the provided coin name, in two steps. At first, extract the
        timestamped endpoint from the coin page. Then, fetch the endpoint to extract the pool urls.
        
plugins/feeds/public/miningpoolstats.py