Files
hummingbot-dashboard/utils/coingecko_utils.py
2022-06-17 16:18:37 -03:00

55 lines
2.0 KiB
Python

import time
from pycoingecko import CoinGeckoAPI
import pandas as pd
import re
class CoinGeckoUtils:
def __init__(self):
self.connector = CoinGeckoAPI()
def get_all_coins_df(self):
coin_list = self.connector.get_coins_list()
return pd.DataFrame(coin_list)
def get_all_coins_markets_df(self):
coin_list = self.connector.get_coins_markets(vs_currency="USD")
return pd.DataFrame(coin_list)
def get_coin_tickers_by_id(self, coin_id: str):
coin_tickers = self.connector.get_coin_ticker_by_id(id=coin_id)
coin_tickers_df = pd.DataFrame(coin_tickers["tickers"])
coin_tickers_df["token_id"] = coin_id
return coin_tickers_df
def get_coin_tickers_by_id_list(self, coins_id: list):
dfs = []
for coin_id in coins_id:
df = self.get_coin_tickers_by_id(coin_id)
dfs.append(df)
time.sleep(1)
coin_tickers_df = pd.concat(dfs)
coin_tickers_df["exchange"] = coin_tickers_df["market"].apply(
lambda x: re.sub("Exchange", "", x["name"]))
coin_tickers_df.drop(columns="market", inplace=True)
coin_tickers_df["trading_pair"] = coin_tickers_df.base + "-" + coin_tickers_df.target
return coin_tickers_df
def get_all_exchanges_df(self):
exchanges_list = self.connector.get_exchanges_list()
return pd.DataFrame(exchanges_list)
def get_exchanges_markets_info_by_id_list(self, exchanges_id: list):
dfs = []
for exchange_id in exchanges_id:
df = pd.DataFrame(self.connector.get_exchanges_by_id(exchange_id)["tickers"])
dfs.append(df)
exchanges_spreads_df = pd.concat(dfs)
exchanges_spreads_df["exchange"] = exchanges_spreads_df["market"].apply(
lambda x: re.sub("Exchange", "", x["name"]))
exchanges_spreads_df.drop(columns="market", inplace=True)
exchanges_spreads_df["trading_pair"] = exchanges_spreads_df.base + "-" + exchanges_spreads_df.target
return exchanges_spreads_df