summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Delahunty <72827203+colin99d@users.noreply.github.com>2023-08-18 10:45:17 -0700
committerGitHub <noreply@github.com>2023-08-18 17:45:17 +0000
commit258ed9a11c7fe586f0f3be3e502c14b6a538df77 (patch)
tree389896d3b9b142b2e1e707464089462ed54912cd
parent673afcf4059cd1daf09ac795d85793c3cdc3ddfc (diff)
Thegraph totally changed, I removed the endpoints (#5349)
* Thegraph totally changed, I removed the endpoints * Cleaned up more
-rw-r--r--openbb_terminal/core/sdk/models/crypto_sdk_model.py10
-rw-r--r--openbb_terminal/core/sdk/sdk_init.py2
-rw-r--r--openbb_terminal/core/sdk/trail_map.csv5
-rw-r--r--openbb_terminal/cryptocurrency/defi/defi_controller.py304
-rw-r--r--openbb_terminal/cryptocurrency/defi/graph_model.py356
-rw-r--r--openbb_terminal/cryptocurrency/defi/graph_view.py280
-rw-r--r--tests/openbb_terminal/cryptocurrency/defi/test_defi_controller.py35
-rw-r--r--tests/openbb_terminal/cryptocurrency/defi/test_graph_model.py74
-rw-r--r--tests/openbb_terminal/cryptocurrency/defi/test_graph_view.py38
-rw-r--r--tests/openbb_terminal/cryptocurrency/defi/txt/test_defi_controller/test_print_help.txt5
-rw-r--r--website/content/sdk/reference/crypto/defi/pairs.md83
-rw-r--r--website/content/sdk/reference/crypto/defi/pools.md73
-rw-r--r--website/content/sdk/reference/crypto/defi/stats.md70
-rw-r--r--website/content/sdk/reference/crypto/defi/swaps.md78
-rw-r--r--website/content/sdk/reference/crypto/defi/tokens.md80
15 files changed, 1 insertions, 1492 deletions
diff --git a/openbb_terminal/core/sdk/models/crypto_sdk_model.py b/openbb_terminal/core/sdk/models/crypto_sdk_model.py
index 1c0f1bba4e3..2db93f2f659 100644
--- a/openbb_terminal/core/sdk/models/crypto_sdk_model.py
+++ b/openbb_terminal/core/sdk/models/crypto_sdk_model.py
@@ -285,10 +285,6 @@ class CryptoDeFi(Category):
)
self.newsletters = lib.crypto_defi_substack_model.get_newsletters
self.newsletters_chart = lib.crypto_defi_substack_view.display_newsletters
- self.pairs = lib.crypto_defi_graph_model.get_uniswap_pool_recently_added
- self.pairs_chart = lib.crypto_defi_graph_view.display_recently_added
- self.pools = lib.crypto_defi_graph_model.get_uni_pools_by_volume
- self.pools_chart = lib.crypto_defi_graph_view.display_uni_pools
self.sinfo = lib.crypto_defi_terramoney_fcd_model.get_staking_account_info
self.sinfo_chart = (
lib.crypto_defi_terramoney_fcd_view.display_account_staking_info
@@ -301,14 +297,8 @@ class CryptoDeFi(Category):
self.sreturn_chart = (
lib.crypto_defi_terramoney_fcd_view.display_staking_returns_history
)
- self.stats = lib.crypto_defi_graph_model.get_uniswap_stats
- self.stats_chart = lib.crypto_defi_graph_view.display_uni_stats
self.stvl = lib.crypto_defi_llama_model.get_defi_tvl
self.stvl_chart = lib.crypto_defi_llama_view.display_defi_tvl
- self.swaps = lib.crypto_defi_graph_model.get_last_uni_swaps
- self.swaps_chart = lib.crypto_defi_graph_view.display_last_uni_swaps
- self.tokens = lib.crypto_defi_graph_model.get_uni_tokens
- self.tokens_chart = lib.crypto_defi_graph_view.display_uni_tokens
self.validators = lib.crypto_defi_terramoney_fcd_model.get_validators
self.validators_chart = lib.crypto_defi_terramoney_fcd_view.display_validators
self.vaults = lib.crypto_defi_coindix_model.get_defi_vaults
diff --git a/openbb_terminal/core/sdk/sdk_init.py b/openbb_terminal/core/sdk/sdk_init.py
index 571269da415..0ec4b436d87 100644
--- a/openbb_terminal/core/sdk/sdk_init.py
+++ b/openbb_terminal/core/sdk/sdk_init.py
@@ -170,8 +170,6 @@ from openbb_terminal.cryptocurrency.defi import (
coindix_view as crypto_defi_coindix_view,
cryptosaurio_model as crypto_defi_cryptosaurio_model,
cryptosaurio_view as crypto_defi_cryptosaurio_view,
- graph_model as crypto_defi_graph_model,
- graph_view as crypto_defi_graph_view,
llama_model as crypto_defi_llama_model,
llama_view as crypto_defi_llama_view,
smartstake_model as crypto_defi_smartstake_model,
diff --git a/openbb_terminal/core/sdk/trail_map.csv b/openbb_terminal/core/sdk/trail_map.csv
index a7e369182cd..33ff8830bff 100644
--- a/openbb_terminal/core/sdk/trail_map.csv
+++ b/openbb_terminal/core/sdk/trail_map.csv
@@ -75,15 +75,10 @@ crypto.defi.gov_proposals,crypto_defi_terramoney_fcd_model.get_proposals,crypto_
crypto.defi.ldapps,crypto_defi_llama_model.get_defi_protocols,crypto_defi_llama_view.display_defi_protocols
crypto.defi.luna_supply,crypto_defi_smartstake_model.get_luna_supply_stats,crypto_defi_smartstake_view.display_luna_circ_supply_change
crypto.defi.newsletters,crypto_defi_substack_model.get_newsletters,crypto_defi_substack_view.display_newsletters
-crypto.defi.pairs,crypto_defi_graph_model.get_uniswap_pool_recently_added,crypto_defi_graph_view.display_recently_added
-crypto.defi.pools,crypto_defi_graph_model.get_uni_pools_by_volume,crypto_defi_graph_view.display_uni_pools
crypto.defi.sinfo,crypto_defi_terramoney_fcd_model.get_staking_account_info,crypto_defi_terramoney_fcd_view.display_account_staking_info
crypto.defi.sratio,crypto_defi_terramoney_fcd_model.get_staking_ratio_history,crypto_defi_terramoney_fcd_view.display_staking_ratio_history
crypto.defi.sreturn,crypto_defi_terramoney_fcd_model.get_staking_returns_history,crypto_defi_terramoney_fcd_view.display_staking_returns_history
-crypto.defi.stats,crypto_defi_graph_model.get_uniswap_stats,crypto_defi_graph_view.display_uni_stats
crypto.defi.stvl,crypto_defi_llama_model.get_defi_tvl,crypto_defi_llama_view.display_defi_tvl
-crypto.defi.swaps,crypto_defi_graph_model.get_last_uni_swaps,crypto_defi_graph_view.display_last_uni_swaps
-crypto.defi.tokens,crypto_defi_graph_model.get_uni_tokens,crypto_defi_graph_view.display_uni_tokens
crypto.defi.validators,crypto_defi_terramoney_fcd_model.get_validators,crypto_defi_terramoney_fcd_view.display_validators
crypto.defi.vaults,crypto_defi_coindix_model.get_defi_vaults,crypto_defi_coindix_view.display_defi_vaults
crypto.disc.categories_keys,crypto_disc_pycoingecko_model.get_categories_keys,
diff --git a/openbb_terminal/cryptocurrency/defi/defi_controller.py b/openbb_terminal/cryptocurrency/defi/defi_controller.py
index 300d093ae1f..4ef44805445 100644
--- a/openbb_terminal/cryptocurrency/defi/defi_controller.py
+++ b/openbb_terminal/cryptocurrency/defi/defi_controller.py
@@ -12,8 +12,6 @@ from openbb_terminal.cryptocurrency.defi import (
coindix_model,
coindix_view,
cryptosaurio_view,
- graph_model,
- graph_view,
llama_model,
llama_view,
smartstake_view,
@@ -45,11 +43,6 @@ class DefiController(BaseController):
"stvl",
"dtvl",
"newsletter",
- "tokens",
- "pairs",
- "pools",
- "swaps",
- "stats",
"vaults",
"sinfo",
"validators",
@@ -76,11 +69,6 @@ class DefiController(BaseController):
mt = MenuText("crypto/defi/")
mt.add_cmd("newsletter")
mt.add_cmd("vaults")
- mt.add_cmd("tokens")
- mt.add_cmd("stats")
- mt.add_cmd("pairs")
- mt.add_cmd("pools")
- mt.add_cmd("swaps")
mt.add_cmd("ldapps")
mt.add_cmd("gdapps")
mt.add_cmd("stvl")
@@ -552,298 +540,8 @@ class DefiController(BaseController):
)
@log_start_end(log=logger)
- def call_tokens(self, other_args: List[str]):
- """Process tokens command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="tokens",
- description="""
- Display tokens trade-able on Uniswap DEX
- [Source: https://thegraph.com/en/]
- """,
- )
-
- parser.add_argument(
- "--skip",
- dest="skip",
- type=check_positive,
- help="Number of records to skip",
- default=0,
- choices=range(1, 1000),
- metavar="SKIP",
- )
- parser.add_argument(
- "--limit",
- dest="limit",
- type=check_positive,
- help="Number of records to display",
- default=20,
- )
- parser.add_argument(
- "-s",
- "--sort",
- dest="sortby",
- type=str,
- help="Sort by given column. Default: index",
- default="index",
- choices=graph_model.TOKENS_FILTERS,
- )
- parser.add_argument(
- "-r",
- "--reverse",
- action="store_true",
- dest="reverse",
- default=False,
- help=(
- "Data is sorted in descending order by default. "
- "Reverse flag will sort it in an ascending way. "
- "Only works when raw data is displayed."
- ),
- )
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
- )
- if ns_parser:
- graph_view.display_uni_tokens(
- skip=ns_parser.skip,
- limit=ns_parser.limit,
- sortby=ns_parser.sortby,
- ascend=ns_parser.reverse,
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_stats(self, other_args: List[str]):
- """Process stats command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="stats",
- description="""
- Display base statistics about Uniswap DEX.
- [Source: https://thegraph.com/en/]
- """,
- )
-
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
- )
-
- if ns_parser:
- graph_view.display_uni_stats(
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_pairs(self, other_args: List[str]):
- """Process pairs command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="pairs",
- description="""
- Displays Lastly added pairs on Uniswap DEX.
- [Source: https://thegraph.com/en/]
- """,
- )
- parser.add_argument(
- "-l",
- "--limit",
- dest="limit",
- type=check_positive,
- help="Number of records to display",
- default=10,
- )
- parser.add_argument(
- "-v",
- "--vol",
- dest="vol",
- type=check_positive,
- help="Minimum trading volume",
- default=100,
- choices=range(1, 1000),
- metavar="VOL",
- )
- parser.add_argument(
- "-tx",
- "--tx",
- dest="tx",
- type=check_positive,
- help="Minimum number of transactions",
- default=100,
- choices=range(1, 1000),
- metavar="TX",
- )
- parser.add_argument(
- "--days",
- dest="days",
- type=check_positive,
- help="Number of days the pair has been active,",
- default=10,
- choices=range(1, 1000),
- metavar="DAY",
- )
- parser.add_argument(
- "-s",
- "--sort",
- dest="sortby",
- type=str,
- help="Sort by given column. Default: created",
- default="created",
- choices=graph_model.PAIRS_FILTERS,
- )
- parser.add_argument(
- "-r",
- "--reverse",
- action="store_true",
- dest="reverse",
- default=False,
- help=(
- "Data is sorted in descending order by default. "
- "Reverse flag will sort it in an ascending way. "
- "Only works when raw data is displayed."
- ),
- )
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
- )
-
- if ns_parser:
- graph_view.display_recently_added(
- limit=ns_parser.limit,
- days=ns_parser.days,
- min_volume=ns_parser.vol,
- min_tx=ns_parser.tx,
- sortby=ns_parser.sortby,
- ascend=ns_parser.reverse,
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_pools(self, other_args: List[str]):
- """Process pools command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="pairs",
- description="""
- Display uniswap pools by volume.
- [Source: https://thegraph.com/en/]
- """,
- )
- parser.add_argument(
- "-l",
- "--limit",
- dest="limit",
- type=check_positive,
- help="Number of records to display",
- default=10,
- )
- parser.add_argument(
- "-s",
- "--sort",
- dest="sortby",
- type=str,
- help="Sort by given column. Default: volumeUSD",
- default="volumeUSD",
- choices=graph_model.POOLS_FILTERS,
- )
- parser.add_argument(
- "-r",
- "--reverse",
- action="store_true",
- dest="reverse",
- default=False,
- help=(
- "Data is sorted in descending order by default. "
- "Reverse flag will sort it in an ascending way. "
- "Only works when raw data is displayed."
- ),
- )
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
- )
-
- if ns_parser:
- graph_view.display_uni_pools(
- limit=ns_parser.limit,
- sortby=ns_parser.sortby,
- ascend=ns_parser.reverse,
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_swaps(self, other_args: List[str]):
- """Process swaps command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="pairs",
- description="""
- Display last swaps done on Uniswap DEX.
- [Source: https://thegraph.com/en/]
- """,
- )
- parser.add_argument(
- "-l",
- "--limit",
- dest="limit",
- type=check_positive,
- help="Number of records to display",
- default=10,
- )
- parser.add_argument(
- "-s",
- "--sort",
- dest="sortby",
- type=str,
- help="Sort by given column. Default: timestamp",
- default="Datetime",
- choices=graph_model.SWAPS_FILTERS,
- )
- parser.add_argument(
- "-r",
- "--reverse",
- action="store_true",
- dest="reverse",
- default=False,
- help=(
- "Data is sorted in descending order by default. "
- "Reverse flag will sort it in an ascending way. "
- "Only works when raw data is displayed."
- ),
- )
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
- )
-
- if ns_parser:
- graph_view.display_last_uni_swaps(
- limit=ns_parser.limit,
- sortby=ns_parser.sortby,
- ascend=ns_parser.reverse,
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
def call_vaults(self, other_args: List[str]):
- """Process swaps command"""
+ """Process vaults command"""
parser = argparse.ArgumentParser(
add_help=False,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
diff --git a/openbb_terminal/cryptocurrency/defi/graph_model.py b/openbb_terminal/cryptocurrency/defi/graph_model.py
deleted file mode 100644
index f839430d505..00000000000
--- a/openbb_terminal/cryptocurrency/defi/graph_model.py
+++ /dev/null
@@ -1,356 +0,0 @@
-"""The Graph model"""
-__docformat__ = "numpy"
-
-import datetime
-import logging
-
-import pandas as pd
-
-from openbb_terminal.cryptocurrency.dataframe_helpers import (
- lambda_very_long_number_formatter,
-)
-from openbb_terminal.decorators import log_start_end
-from openbb_terminal.helper_funcs import request
-from openbb_terminal.rich_config import console
-
-# pylint: disable=unsupported-assignment-operation
-
-logger = logging.getLogger(__name__)
-# pylint: disable=unsupported-assignment-operation
-
-UNI_URL = "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2"
-
-SWAPS_FILTERS = ["Datetime", "USD", "From", "To"]
-
-POOLS_FILTERS = [
- "volumeUSD",
- "token0.name",
- "token0.symbol",
- "token1.name",
- "token1.symbol",
- "volumeUSD",
- "txCount",
-]
-
-TOKENS_FILTERS = [
- "index",
- "symbol",
- "name",
- "tradeVolumeUSD",
- "totalLiquidity",
- "txCount",
-]
-
-PAIRS_FILTERS = [
- "created",
- "pair",
- "token0",
- "token1",
- "volumeUSD",
- "txCount",
- "totalSupply",
-]
-
-# TODO: convert USD values to int. otherwise sort by these columns won't work
-
-
-@log_start_end(log=logger)
-def query_graph(url: str, query: str) -> dict:
- """Helper methods for querying graphql api. [Source: https://thegraph.com/en/]
-
- Parameters
- ----------
- url: str
- Endpoint url
- query: str
- Graphql query
-
- Returns
- -------
- dict:
- Dictionary with response data
- """
-
- response = request(url, method="POST", json={"query": query})
- if response.status_code == 200:
- return response.json()["data"]
- return {}
-
-
-@log_start_end(log=logger)
-def get_uni_tokens(
- skip: int = 0, limit: int = 100, sortby: str = "index", ascend: bool = False
-) -> pd.DataFrame:
- """Get list of tokens trade-able on Uniswap DEX. [Source: https://thegraph.com/en/]
-
- Parameters
- ----------
- skip: int
- Skip n number of records.
- limit: int
- Show n number of records.
- sortby: str
- The column to sort by
- ascend: bool
- Whether to sort in ascending order
-
- Returns
- -------
- pd.DataFrame
- Uniswap tokens with trading volume, transaction count, liquidity.
- """
-
- limit = min(limit, 1000)
- query = f"""
- {{
- tokens(first: {limit}, skip:{skip}) {{
- symbol
- name
- tradeVolumeUSD
- totalLiquidity
- txCount
- }}
- }}
- """
-
- data = query_graph(UNI_URL, query)
- if not data:
- return pd.DataFrame()
- df = pd.DataFrame(data["tokens"]).reset_index()
- return df.sort_values(by=sortby, ascending=ascend)
-
-
-@log_start_end(log=logger)
-def get_uniswap_stats() -> pd.DataFrame:
- """Get base statistics about Uniswap DEX. [Source: https://thegraph.com/en/]
-
- uniswapFactory id: 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f - ethereum address on which Uniswap Factory
- smart contract was deployed. The factory contract is deployed once from the off-chain source code, and it contains
- functions that make it possible to create exchange contracts for any ERC20 token that does not already have one.
- It also functions as a registry of ERC20 tokens that have been added to the system, and the exchange with which they
- are associated. More: https://docs.uniswap.org/protocol/V1/guides/connect-to-uniswap
- We use 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f address to fetch all smart contracts that were
- created with usage of this factory.
-
-
- Returns
- -------
- pd.DataFrame
- Uniswap DEX statistics like liquidity, volume, number of pairs, number of transactions.
- """
-
- query = """
- {
- uniswapFactory(id: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f"){
- totalVolumeUSD
- totalLiquidityUSD
- pairCount
- txCount
- totalLiquidityUSD
- totalLiquidityETH
- }
- }
- """
- data = query_graph(UNI_URL, query)
- if not data:
- return pd.DataFrame()
- df = pd.Series(data["uniswapFactory"]).reset_index()
- df.columns = ["Metric", "Value"]
- df["Value"] = df["Value"].apply(lambda x: lambda_very_long_number_formatter(x))
- return df
-
-
-@log_start_end(log=logger)
-def get_uniswap_pool_recently_added(
- last_days: int = 14,
- min_volume: int = 100,
- min_liquidity: int = 0,
- min_tx: int = 100,
-) -> pd.DataFrame:
- """Get lastly added trade-able pairs on Uniswap with parameters like:
- * number of days the pair has been active,
- * minimum trading volume,
- * minimum liquidity,
- * number of transactions.
-
- [Source: https://thegraph.com/en/]
-
- Parameters
- ----------
- last_days: int
- How many days back to look for added pairs.
- min_volume: int
- Minimum volume
- min_liquidity: int
- Minimum liquidity
- min_tx: int
- Minimum number of transactions done in given pool.
-
- Returns
- -------
- pd.DataFrame
- Lastly added pairs on Uniswap DEX.
- """
-
- days = int(
- (datetime.datetime.now() - datetime.timedelta(days=last_days)).timestamp()
- )
- query = f"""
- {{
- pairs(first: 1000,
- where: {{createdAtTimestamp_gt: "{days}", volumeUSD_gt: "{min_volume}", reserveUSD_gt: "{min_liquidity}",
- txCount_gt: "{min_tx}" }},
- orderBy: createdAtTimestamp, orderDirection: desc) {{
- token0 {{
- symbol
- name
- }}
- token1 {{
- symbol
- name
- }}
- reserveUSD
- volumeUSD
- createdAtTimestamp
- totalSupply
- txCount
- }}
- }}
- """
-
- data = query_graph(UNI_URL, query)
- if not data:
- return pd.DataFrame()
-
- df = pd.json_normalize(data["pairs"])
- df["createdAtTimestamp"] = df["createdAtTimestamp"].apply(
- lambda x: datetime.datetime.fromtimestamp(int(x))
- )
-
- df["pair"] = df["token0.symbol"] + "/" + df["token1.symbol"]
- df.rename(
- columns={
- "createdAtTimestamp": "created",
- "token0.name": "token0",
- "token1.name": "token1",
- },
- inplace=True,
- )
- return df[
- [
- "created",
- "pair",
- "token0",
- "token1",
- "volumeUSD",
- "txCount",
- "totalSupply",
- ]
- ]
-
-
-@log_start_end(log=logger)
-def get_uni_pools_by_volume() -> pd.DataFrame:
- """Get uniswap pools by volume. [Source: https://thegraph.com/en/]
-
- Returns
- -------
- pd.DataFrame
- Trade-able pairs listed on Uniswap by top volume.
- """
-
- query = """
- {
- pairs(first: 1000, where: {reserveUSD_gt: "1000", volumeUSD_gt: "10000"},
- orderBy: volumeUSD, orderDirection: desc) {
- token0 {
- symbol
- name
- }
- token1 {
- symbol
- name
- }
- volumeUSD
- txCount
- }
- }
- """
- data = query_graph(UNI_URL, query)
- if not data:
- return pd.DataFrame()
- df = pd.json_normalize(data["pairs"])
- return df[
- [
- "token0.name",
- "token0.symbol",
- "token1.name",
- "token1.symbol",
- "volumeUSD",
- "txCount",
- ]
- ]
-
-
-@log_start_end(log=logger)
-def get_last_uni_swaps(
- limit: int = 100, sortby: str = "timestamp", ascend: bool = False
-) -> pd.DataFrame:
- """Get the last 100 swaps done on Uniswap [Source: https://thegraph.com/en/]
-
- Parameters
- ----------
- limit: int
- Number of swaps to return. Maximum possible number: 1000.
- sortby: str
- Key by which to sort data. The table can be sorted by every of its columns
- (see https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2).
- ascend: bool
- Flag to sort data descending
-
- Returns
- -------
- pd.DataFrame
- Last 100 swaps on Uniswap
- """
-
- limit = min(limit, 1000)
-
- query = f"""
- {{