diff options
author | Colin Delahunty <72827203+colin99d@users.noreply.github.com> | 2023-08-21 14:26:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-21 21:26:03 +0000 |
commit | 3147577fc907e5a7b57214353e0c70fc1322c015 (patch) | |
tree | 4260389a4c04f11493657873093d5bdbcda9b810 | |
parent | 144c59ccae878fc28e4030d7a8be1e7e1394b6ca (diff) |
bye bye shroom (#5351)
* bye bye shroom
* missed one
---------
Co-authored-by: James Maslek <jmaslek11@gmail.com>
21 files changed, 5 insertions, 788 deletions
diff --git a/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py b/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py index 69f4f075c82..ac880083a5b 100644 --- a/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py +++ b/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py @@ -251,7 +251,6 @@ class CryptoController(model.CryptoRoot): `prices`: Get token historical prices with volume and market cap, and average price. [Source: Ethplorer]\n `prices_chart`: Display token historical prices with volume and market cap, and average price.\n `query`: Get query data\n - `query_chart`: Display query results from shroom\n `query_graph`: Helper methods for querying graphql api. [Source: https://bitquery.io/]\n `th`: Get info about token historical transactions. [Source: Ethplorer]\n `th_chart`: Display info about token history. [Source: Ethplorer]\n diff --git a/openbb_terminal/core/sdk/models/crypto_sdk_model.py b/openbb_terminal/core/sdk/models/crypto_sdk_model.py index 2db93f2f659..e8f8e1c95e9 100644 --- a/openbb_terminal/core/sdk/models/crypto_sdk_model.py +++ b/openbb_terminal/core/sdk/models/crypto_sdk_model.py @@ -446,7 +446,6 @@ class CryptoOnChain(Category): `prices`: Get token historical prices with volume and market cap, and average price. [Source: Ethplorer]\n `prices_chart`: Display token historical prices with volume and market cap, and average price.\n `query`: Get query data\n - `query_chart`: Display query results from shroom\n `query_graph`: Helper methods for querying graphql api. [Source: https://bitquery.io/]\n `th`: Get info about token historical transactions. [Source: Ethplorer]\n `th_chart`: Display info about token history. [Source: Ethplorer]\n @@ -517,8 +516,6 @@ class CryptoOnChain(Category): self.prices_chart = ( lib.crypto_onchain_ethplorer_view.display_token_historical_prices ) - self.query = lib.crypto_onchain_shroom_model.get_query_data - self.query_chart = lib.crypto_onchain_shroom_view.display_query self.query_graph = lib.crypto_onchain_bitquery_model.query_graph self.th = lib.crypto_onchain_ethplorer_model.get_token_history self.th_chart = lib.crypto_onchain_ethplorer_view.display_token_history diff --git a/openbb_terminal/core/sdk/models/keys_sdk_model.py b/openbb_terminal/core/sdk/models/keys_sdk_model.py index 0ccee257bd4..de564944c9c 100644 --- a/openbb_terminal/core/sdk/models/keys_sdk_model.py +++ b/openbb_terminal/core/sdk/models/keys_sdk_model.py @@ -37,7 +37,6 @@ class KeysRoot(Category): `rh`: Set Robinhood key\n `santiment`: Set Santiment key.\n `set_keys`: Set API keys in bundle.\n - `shroom`: Set Shroom key\n `smartstake`: Set Smartstake key.\n `stocksera`: Set Stocksera key.\n `tokenterminal`: Set Token Terminal key.\n @@ -78,7 +77,6 @@ class KeysRoot(Category): self.rh = lib.keys_model.set_rh_key self.santiment = lib.keys_model.set_santiment_key self.set_keys = lib.keys_model.set_keys - self.shroom = lib.keys_model.set_shroom_key self.smartstake = lib.keys_model.set_smartstake_key self.stocksera = lib.keys_model.set_stocksera_key self.tokenterminal = lib.keys_model.set_tokenterminal_key diff --git a/openbb_terminal/core/sdk/sdk_init.py b/openbb_terminal/core/sdk/sdk_init.py index 66050033423..db26d87614d 100644 --- a/openbb_terminal/core/sdk/sdk_init.py +++ b/openbb_terminal/core/sdk/sdk_init.py @@ -252,8 +252,6 @@ from openbb_terminal.cryptocurrency.onchain import ( ethplorer_view as crypto_onchain_ethplorer_view, whale_alert_model as crypto_onchain_whale_alert_model, whale_alert_view as crypto_onchain_whale_alert_view, - shroom_model as crypto_onchain_shroom_model, - shroom_view as crypto_onchain_shroom_view, topledger_model as crypto_onchain_topledger_model, topledger_view as crypto_onchain_topledger_view, ) diff --git a/openbb_terminal/core/sdk/trail_map.csv b/openbb_terminal/core/sdk/trail_map.csv index 1f62a953e00..ebb70a1affa 100644 --- a/openbb_terminal/core/sdk/trail_map.csv +++ b/openbb_terminal/core/sdk/trail_map.csv @@ -119,7 +119,6 @@ crypto.onchain.hr,crypto_dd_glassnode_model.get_hashrate,crypto_dd_glassnode_vie crypto.onchain.info,crypto_onchain_ethplorer_model.get_token_info,crypto_onchain_ethplorer_view.display_token_info crypto.onchain.lt,crypto_onchain_bitquery_model.get_dex_trades_by_exchange,crypto_onchain_bitquery_view.display_dex_trades crypto.onchain.prices,crypto_onchain_ethplorer_model.get_token_historical_price,crypto_onchain_ethplorer_view.display_token_historical_prices -crypto.onchain.query,crypto_onchain_shroom_model.get_query_data,crypto_onchain_shroom_view.display_query crypto.onchain.query_graph,crypto_onchain_bitquery_model.query_graph, crypto.onchain.th,crypto_onchain_ethplorer_model.get_token_history,crypto_onchain_ethplorer_view.display_token_history crypto.onchain.token_decimals,crypto_onchain_ethplorer_model.get_token_decimals, @@ -307,7 +306,6 @@ keys.reddit,keys_model.set_reddit_key, keys.rh,keys_model.set_rh_key, keys.santiment,keys_model.set_santiment_key, keys.set_keys,keys_model.set_keys, -keys.shroom,keys_model.set_shroom_key, keys.smartstake,keys_model.set_smartstake_key, keys.stocksera,keys_model.set_stocksera_key, keys.tokenterminal,keys_model.set_tokenterminal_key, diff --git a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py index 8f3be128519..083fed888d7 100644 --- a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py +++ b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py @@ -22,7 +22,6 @@ from openbb_terminal.cryptocurrency.onchain import ( ethgasstation_view, ethplorer_model, ethplorer_view, - shroom_view, topledger_model, topledger_view, whale_alert_model, @@ -83,7 +82,6 @@ class OnchainController(BaseController): "btccp", "btcct", "btcblockdata", - "query", "topledger", ] @@ -120,7 +118,6 @@ class OnchainController(BaseController): mt.add_cmd("ueat") mt.add_cmd("ttcp") mt.add_cmd("baas") - mt.add_cmd("query") mt.add_raw("\n") mt.add_param("_address", self.address or "") mt.add_param("_type", self.address_type or "") @@ -138,43 +135,6 @@ class OnchainController(BaseController): console.print(text=mt.menu_text, menu="Cryptocurrency - Onchain") @log_start_end(log=logger) - def call_query(self, other_args: List[str]): - """Process query command""" - parser = argparse.ArgumentParser( - add_help=False, - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - prog="query", - description=""" - Make any flipsidecrypto query - [Source:https://docs.flipsidecrypto.com/] - """, - ) - - parser.add_argument( - "-q", - "--query", - dest="query", - type=str, - nargs="+", - required=not any(["-h" in other_args, "--help" in other_args]), - help="Query to make", - ) - - if other_args and other_args[0][0] != "-": - other_args.insert(0, "-q") - - ns_parser = self.parse_known_args_and_warn( - parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES, limit=10 - ) - - if ns_parser: - shroom_view.display_query( - query=" ".join(ns_parser.query), - export=ns_parser.export, - limit=ns_parser.limit, - ) - - @log_start_end(log=logger) def call_btcct(self, other_args: List[str]): """Process btcct command""" parser = argparse.ArgumentParser( diff --git a/openbb_terminal/cryptocurrency/onchain/shroom_model.py b/openbb_terminal/cryptocurrency/onchain/shroom_model.py deleted file mode 100644 index 5de9d366aa1..00000000000 --- a/openbb_terminal/cryptocurrency/onchain/shroom_model.py +++ /dev/null @@ -1,259 +0,0 @@ -"""Shroom model""" -import json -import logging -import time -from typing import List - -import pandas as pd - -from openbb_terminal.core.session.current_user import get_current_user -from openbb_terminal.decorators import check_api_key, log_start_end -from openbb_terminal.helper_funcs import request -from openbb_terminal.rich_config import console - -logger = logging.getLogger(__name__) - - -TTL_MINUTES = 15 - -# return up to 100,000 results per GET request on the query id -PAGE_SIZE = 100000 - -# return results of page 1 -PAGE_NUMBER = 1 - - -def create_query(query: str): - r = request( - "https://node-api.flipsidecrypto.com/queries", - method="POST", - data=json.dumps({"sql": query, "ttlMinutes": TTL_MINUTES}), - headers={ - "Accept": "application/json", - "Content-Type": "application/json", - "x-api-key": get_current_user().credentials.API_SHROOM_KEY, - }, - ) - if r.status_code != 200: - console.print( - f"[red]Error creating query, got response: {r.text} with status code: {str(r.status_code)}[/red]" - ) - return "" - - return json.loads(r.text) - - -def get_query_results(token): - r = request( - f"https://node-api.flipsidecrypto.com/queries/{token}?pageNumber={PAGE_NUMBER}&pageSize={PAGE_SIZE}", - headers={ - "Accept": "application/json", - "Content-Type": "application/json", - "x-api-key": get_current_user().credentials.API_SHROOM_KEY, - }, - ) - if r.status_code != 200: - console.print( - f"[red]Error creating query, got response: {r.text} with status code: {str(r.status_code)}[/red]" - ) - return "" - - data = json.loads(r.text) - if data["status"] == "running": - time.sleep(10) - return get_query_results(token) - - return data - - -DAPP_STATS_PLATFORM_CHOICES = ["uniswap-v3", "uniswap-v2", "sushiswap", "curve"] - - -def get_shroom_data(sql: str): - """Get shroom data""" - query = create_query(sql) - token = query["token"] - data = get_query_results(token) - return data - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def get_query_data(sql: str) -> pd.DataFrame: - """Get query data - - Parameters - ---------- - sql : str - SQL query - - Returns - ------- - pd.DataFrame - DataFrame with query data - """ - data = get_shroom_data(sql) - - if data and data["results"] and data["columnLabels"]: - df = pd.DataFrame(data["results"], columns=data["columnLabels"]) - return df - - return pd.DataFrame() - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def get_dapp_stats( - platform: str = "curve", -) -> pd.DataFrame: - """Get dapp stats - - Parameters - ---------- - platform: str - platform to get stats for - - Returns - ------- - pd.DataFrame - dapp stats - """ - sql = f"""select - date_trunc('week', s.block_timestamp) as date, - sum(t.fee_usd) as fee, - count(distinct(s.from_address)) as n_users, - count(distinct(s.amount_usd)) as volume - from ethereum.core.ez_dex_swaps s - join ethereum.core.fact_transactions t - on s.tx_id = t.tx_id - where platform = '{platform}' - group by date - order by date asc - """ - data = get_shroom_data(sql) - - if data: - df = pd.DataFrame( - data["results"], columns=["timeframe", "fees", "n_users", "volume"] - ) - - df["timeframe"] = pd.to_datetime(df["timeframe"]) - df = df.set_index("timeframe") - - return df - - return pd.DataFrame() - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def get_daily_transactions(symbols: List[str]) -> pd.DataFrame: - """Get daily transactions for certain symbols in ethereum blockchain - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - symbols : List[str] - List of symbols to get transactions for - - Returns - ------- - pd.DataFrame - DataFrame with transactions for each symbol - """ - extra_sql = "" - for symbol in symbols: - extra_sql += ( - f"sum(case when symbol = '{symbol}' then amount_usd end) as {symbol}," - ) - extra_sql = extra_sql[:-1] - sql = f""" - select - date_trunc('day', block_timestamp) as timeframe, - {extra_sql} - from ethereum.core.udm_events - where - block_timestamp >= '2020-06-01' - -- and amount0_usd > '0' - group by 1 - order by timeframe desc - """ - - data = get_shroom_data(sql) - - if data: - df = pd.DataFrame(data["results"], columns=["timeframe"] + symbols) - df["timeframe"] = pd.to_datetime(df["timeframe"]) - df.set_index("timeframe", inplace=True) - - return df - - return pd.DataFrame() - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def get_total_value_locked( - user_address: str, - address_name: str, - symbol: str = "USDC", - interval: int = 1, -) -> pd.DataFrame: - """ - Get total value locked for a user/name address and symbol - TVL measures the total amount of a token that is locked in a contract. - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - user_address : str - User address - address_name : str - Name of the address - symbol : str - Symbol of the token - interval : int - Interval in months - - Returns - ------- - pd.DataFrame - DataFrame with total value locked - """ - - if not (user_address or address_name): - console.print("[red]No user address or address name provided.[/red]") - return pd.DataFrame() - extra_sql = ( - f"user_address = '{user_address}' and" - if user_address - else f"address_name = '{address_name}' and" - ) - - sql = f""" - SELECT - date_trunc('day', balance_date) as metric_date, - symbol, - amount_usd/1000000 as amount_usd - FROM - ethereum.core.erc20_balances - WHERE - {extra_sql} - symbol = '{symbol}' AND - balance_date >= getdate() - interval '{interval} month' - ORDER BY - metric_date asc - """ - - data = get_shroom_data(sql) - - if data: - df = pd.DataFrame( - data["results"], columns=["metric_date", "symbol", "amount_usd"] - ) - df["metric_date"] = pd.to_datetime(df["metric_date"]) - df.set_index("metric_date", inplace=True) - - return df - - return pd.DataFrame() diff --git a/openbb_terminal/cryptocurrency/onchain/shroom_view.py b/openbb_terminal/cryptocurrency/onchain/shroom_view.py deleted file mode 100644 index 4e4a7a4b5df..00000000000 --- a/openbb_terminal/cryptocurrency/onchain/shroom_view.py +++ /dev/null @@ -1,230 +0,0 @@ -"""Shroom view""" -__docformat__ = "numpy" - -import logging -import os -from typing import Optional, Union - -from openbb_terminal import OpenBBFigure, theme -from openbb_terminal.cryptocurrency.onchain.shroom_model import ( - get_daily_transactions, - get_dapp_stats, - get_query_data, - get_total_value_locked, -) -from openbb_terminal.decorators import check_api_key, log_start_end -from openbb_terminal.helper_funcs import export_data, print_rich_table -from openbb_terminal.rich_config import console - -logger = logging.getLogger(__name__) - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def display_query( - query: str, - sheet_name: Optional[str] = None, - limit: int = 10, - export: str = "", -): - """Display query results from shroom - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - query : str - Query string - raw : bool - Show raw data - limit : int - Limit of rows - export : str - Export dataframe data to csv,json,xlsx file - """ - df = get_query_data(query) - if df.empty: - console.print("[red]No data found.[/red]") - elif not df.empty: - print_rich_table(df, limit=limit) - - export_data( - export, os.path.dirname(os.path.abspath(__file__)), "query", df, sheet_name - ) - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def display_daily_transactions( - export: str = "", - sheet_name: Optional[str] = None, - external_axes: bool = False, -) -> Union[OpenBBFigure, None]: - """Get daily transactions for certain symbols in ethereum blockchain - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - - export : str - Export dataframe data to csv,json,xlsx file - """ - symbols = ["DAI", "USDT", "BUSD", "USDC"] - df = get_daily_transactions(symbols) - if df.empty: - return console.print("[red]No data found.[/red]") - - fig = OpenBBFigure(yaxis_title="Transactions", xaxis_title="Date") - fig.set_title("Daily Transactions in Ethereum") - - for name in symbols: - fig.add_scatter(x=df.index, y=df[name], name=name) - - export_data( - export, - os.path.dirname(os.path.abspath(__file__)), - "dt", - df, - sheet_name, - fig, - ) - - return fig.show(external=external_axes) - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def display_dapp_stats( - platform: str, - raw: bool = False, - limit: int = 10, - export: str = "", - sheet_name: Optional[str] = None, - external_axes: bool = False, -) -> Union[OpenBBFigure, None]: - """Get daily transactions for certain symbols in ethereum blockchain - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - platform : str - Platform name (e.g., uniswap-v3) - raw : bool - Show raw data - limit : int - Limit of rows - export : str - Export dataframe data to csv,json,xlsx file - external_axes : bool, optional - Whether to return the figure object or not, by default False - """ - df = get_dapp_stats(platform=platform) - if df.empty: - return console.print("[red]No data found.[/red]") - - if raw: - print_rich_table( - df, - headers=list(df.columns), - show_index=True, - export=bool(export), - limit=limit, - ) - - fig = OpenBBFigure.create_subplots(specs=[[{"secondary_y": True}]]) - fig.set_title(f"{platform} stats") - - fig.add_bar( - x=df.index, - y=df["n_users"], - name="Number of Users", - marker_color=theme.down_color, - secondary_y=False, - ) - - fig.add_scatter( - x=df.index, - y=df["fees"], - name="Platform Fees", - marker_color=theme.up_color, - secondary_y=True, - ) - fig.update_yaxes(title_text="Number of Users", secondary_y=False, side="left") - fig.update_yaxes(title_text="Platform Fees [USD]", secondary_y=True) - - export_data( - export, - os.path.dirname(os.path.abspath(__file__)), - "ds", - df, - sheet_name, - fig, - ) - - return fig.show(external=raw or external_axes) - - -@log_start_end(log=logger) -@check_api_key(["API_SHROOM_KEY"]) -def display_total_value_locked( - user_address: str, - address_name: str, - symbol: str = "USDC", - interval: int = 1, - export: str = "", - sheet_name: Optional[str] = None, - external_axes: bool = False, -) -> Union[OpenBBFigure, None]: - """ - Get total value locked for a certain address - TVL measures the total amount of a token that is locked in a contract. - [Source: https://sdk.flipsidecrypto.xyz/shroomdk] - - Parameters - ---------- - user_address : str - Address of the user (e.g., 0xa5407eae9ba41422680e2e00537571bcc53efbfd) - address_name : str - Name of the address (e.g., makerdao gem join usdc) - symbol : str - Symbol of the token - interval : int - Interval of months - export : str - Export dataframe data to csv,json,xlsx file - external_axes : bool, optional - Whether to return the figure object or not, by default False - """ - - # example user_address : - # example addres_name : - - df = get_total_value_locked( - user_address=user_address, - address_name=address_name, - symbol=symbol, - interval=interval, - ) - - if df.empty: - return console.print("[red]No data found.[/red]") - - fig = OpenBBFigure(yaxis_title="Amount [USD M]", xaxis_title="Date") - fig.set_title("Total value locked Ethereum ERC20") - - fig.add_bar( - x=df.index, - y=df["amount_usd"], - name="amount_usd", - marker_color=theme.down_color, - ) - - export_data( - export, - os.path.dirname(os.path.abspath(__file__)), - "tvl", - df, - sheet_name, - fig, - ) - - return fig.show(external=external_axes) diff --git a/openbb_terminal/keys_controller.py b/openbb_terminal/keys_controller.py index 976475b934a..9814a1d4d87 100644 --- a/openbb_terminal/keys_controller.py +++ b/openbb_terminal/keys_controller.py @@ -1110,36 +1110,6 @@ class KeysController(BaseController): # pylint: disable=too-many-public-methods ) |