diff --git a/freqtrade/util/CoinGecko.py b/freqtrade/util/CoinGecko.py new file mode 100644 index 000000000..24f0b8664 --- /dev/null +++ b/freqtrade/util/CoinGecko.py @@ -0,0 +1,24 @@ +from pycoingecko import CoinGeckoAPI + + +class FtCoinGeckoApi(CoinGeckoAPI): + """ + Simple wrapper around pycoingecko's api to support Demo API keys. + + """ + + __API_URL_BASE = "https://api.coingecko.com/api/v3/" + __PRO_API_URL_BASE = "https://pro-api.coingecko.com/api/v3/" + _api_key: str = "" + + def __init__(self, api_key: str = "", *, is_demo=True, retries=5): + super().__init__(retries=retries) + # Doint' pass api_key to parent, instead set the header on the session directly + self._api_key = api_key + + if api_key and not is_demo: + self.api_base_url = self.__PRO_API_URL_BASE + self.session.headers.update({"x-cg-pro-api-key": api_key}) + else: + self.api_base_url = self.__API_URL_BASE + self.session.headers.update({"x-cg-demo-api-key": api_key})