From 158aa4c0d0f6b267b20d12a3536b3b0fa5806ea0 Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:03:12 +0900 Subject: [PATCH 1/6] feat: include new endpoints --- datamaxi/__version__.py | 2 +- datamaxi/announcement/__init__.py | 2 +- datamaxi/datamaxi/cex_candle.py | 8 +-- datamaxi/datamaxi/dex_candle.py | 10 +-- datamaxi/datamaxi/dex_trade.py | 8 +-- datamaxi/datamaxi/forex.py | 4 +- datamaxi/datamaxi/funding_rate.py | 8 +-- datamaxi/datamaxi/orderbook.py | 97 ++++++++++++++++++++++++++++++ datamaxi/datamaxi/premium.py | 6 +- datamaxi/datamaxi/ticker.py | 6 +- datamaxi/datamaxi/wallet_status.py | 96 +++++++++++++++++++++++++++++ datamaxi/defillama/__init__.py | 28 ++++----- datamaxi/google/__init__.py | 4 +- datamaxi/naver/__init__.py | 4 +- datamaxi/telegram/__init__.py | 4 +- datamaxi/token/__init__.py | 2 +- pyproject.toml | 2 +- 17 files changed, 242 insertions(+), 49 deletions(-) create mode 100644 datamaxi/datamaxi/orderbook.py create mode 100644 datamaxi/datamaxi/wallet_status.py diff --git a/datamaxi/__version__.py b/datamaxi/__version__.py index 11ac8e1..5f4bb0b 100644 --- a/datamaxi/__version__.py +++ b/datamaxi/__version__.py @@ -1 +1 @@ -__version__ = "0.19.0" +__version__ = "0.20.0" diff --git a/datamaxi/announcement/__init__.py b/datamaxi/announcement/__init__.py index 58177d0..619faec 100644 --- a/datamaxi/announcement/__init__.py +++ b/datamaxi/announcement/__init__.py @@ -28,7 +28,7 @@ def get( `GET /api/v1/announcements` - + Args: category (str): announcement category diff --git a/datamaxi/datamaxi/cex_candle.py b/datamaxi/datamaxi/cex_candle.py index c6f6a2e..2b251f3 100644 --- a/datamaxi/datamaxi/cex_candle.py +++ b/datamaxi/datamaxi/cex_candle.py @@ -35,7 +35,7 @@ def get( `GET /api/v1/cex/candle` - + Args: exchange (str): Exchange name @@ -121,7 +121,7 @@ def exchanges(self, market: str = "spot") -> List[str]: `GET /api/v1/cex/candle/exchanges` - + Args: market (str): Market type (spot/futures) @@ -145,7 +145,7 @@ def symbols(self, exchange: str = None, market: str = None) -> List[Dict]: `GET /api/v1/cex/candle/symbols` - + Args: exchange (str): Exchange name @@ -173,7 +173,7 @@ def intervals(self, exchange: str, market: str = "spot") -> List[str]: `GET /api/v1/candle/intervals` - + Args: exchange (str): Exchange name diff --git a/datamaxi/datamaxi/dex_candle.py b/datamaxi/datamaxi/dex_candle.py index acaafa3..68a84db 100644 --- a/datamaxi/datamaxi/dex_candle.py +++ b/datamaxi/datamaxi/dex_candle.py @@ -34,7 +34,7 @@ def get( `GET /api/v1/dex/candle` - + Args: chain (str): Chain name @@ -117,7 +117,7 @@ def chains(self) -> List[str]: `GET /api/v1/dex/candle/chains` - + Returns: List of supported chains @@ -133,7 +133,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/dex/candle/exchanges` - + Returns: List of supported exchanges @@ -149,7 +149,7 @@ def pools(self, exchange: str = None, chain: str = None) -> List[Dict]: `GET /api/v1/dex/candle/pools` - + Args: exchange (str): Exchange name @@ -174,7 +174,7 @@ def intervals(self) -> List[str]: `GET /api/v1/dex/candle/intervals` - + Returns: List of supported intervals diff --git a/datamaxi/datamaxi/dex_trade.py b/datamaxi/datamaxi/dex_trade.py index d5a99a0..537bb05 100644 --- a/datamaxi/datamaxi/dex_trade.py +++ b/datamaxi/datamaxi/dex_trade.py @@ -33,7 +33,7 @@ def get( `GET /api/v1/dex/trade` - + Args: chain (str): Chain name @@ -111,7 +111,7 @@ def chains(self) -> List[str]: `GET /api/v1/dex/trade/chains` - + Returns: List of supported chains @@ -127,7 +127,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/dex/trade/exchanges` - + Returns: List of supported exchanges @@ -142,7 +142,7 @@ def pools(self, exchange: str = None, chain: str = None) -> List[Dict]: `GET /api/v1/dex/trade/pools` - + Args: exchange (str): Exchange name diff --git a/datamaxi/datamaxi/forex.py b/datamaxi/datamaxi/forex.py index 0fa5907..eb66708 100644 --- a/datamaxi/datamaxi/forex.py +++ b/datamaxi/datamaxi/forex.py @@ -25,7 +25,7 @@ def get( `GET /api/v1/forex` - + Args: symbol (str): Symbol name @@ -56,7 +56,7 @@ def symbols(self) -> List[str]: `GET /api/v1/forex/symbols` - + Returns: List of supported symbols diff --git a/datamaxi/datamaxi/funding_rate.py b/datamaxi/datamaxi/funding_rate.py index 489bd7a..edf9d9c 100644 --- a/datamaxi/datamaxi/funding_rate.py +++ b/datamaxi/datamaxi/funding_rate.py @@ -33,7 +33,7 @@ def get( `GET /api/v1/funding-rate` - + Args: exchange (str): Exchange name @@ -113,7 +113,7 @@ def getLatest( `GET /api/v1/funding-rate/latest` - + Args: sort (str): Sort data by `asc` or `desc` @@ -155,7 +155,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/funding-rate/exchanges` - + Returns: List of supported exchanges @@ -170,7 +170,7 @@ def symbols(self, exchange: str, market: str = "spot") -> List[str]: `GET /api/v1/funding-rate/symbols` - + Args: exchange (str): Exchange name diff --git a/datamaxi/datamaxi/orderbook.py b/datamaxi/datamaxi/orderbook.py new file mode 100644 index 0000000..657ed32 --- /dev/null +++ b/datamaxi/datamaxi/orderbook.py @@ -0,0 +1,97 @@ +from typing import Any, List, Dict, Union +import pandas as pd +from datamaxi.api import API +from datamaxi.lib.utils import check_required_parameters +from datamaxi.lib.utils import check_required_parameter + +class Orderbook(API): + """Client to fetch orderbook data from DataMaxi+ API.""" + + def __init__(self, api_key=None, **kwargs: Any): + """Initialize orderbook client. + + Args: + api_key (str): The DataMaxi+ API key + **kwargs: Keyword arguments used by `datamaxi.api.API`. + """ + super().__init__(api_key, **kwargs) + + def get( + self, + exchange: str, + symbol: str, + pandas: bool = True, + ) -> Union[Dict, pd.DataFrame]: + """Fetch orderbook data + + `GET /api/v1/orderbook` + + + + Args: + exchange (str): Exchange name + symbol (str): symbol name + pandas (bool): Return data as pandas DataFrame + + Returns: + Orderbook data in pandas DataFrame + """ + + check_required_parameter( + [ + [exchange, "exchange"], + [symbol, "symbol"], + ] + ) + + params = { + "exchange": exchange, + "symbol": symbol + } + + res = self.query("/api/v1/orderbook", params) + if pandas: + df = pd.DataFrame(res) + df = df.set_index("d") + return df + + return res + + def exchanges(self) -> List[str]: + """Fetch supported exchanges accepted by + [datamaxi.Orderbook.get](./#datamaxi.datamaxi.Orderbook.get) + API. + + `GET /api/v1/orderbook/exchanges` + + + + Returns: + List of supported exchange + """ + url_path = "/api/v1/orderbook/exchanges" + return self.query(url_path) + + def symbols(self, exchange: str) -> List[str]: + """Fetch supported symbols accepted by + [datamaxi.Orderbook.get](./#datamaxi.datamaxi.Orderbook.get) + API. + + `GET /api/v1/orderbook/symbols` + + + + Args: + exchange (str): Exchange name + + Returns: + List of supported symbols + """ + check_required_parameter(exchange, "exchange") + + params = { + "exchange": exchange, + } + + url_path = "/api/v1/orderbook/symbols" + return self.query(url_path, params) \ No newline at end of file diff --git a/datamaxi/datamaxi/premium.py b/datamaxi/datamaxi/premium.py index c47af5f..186797f 100644 --- a/datamaxi/datamaxi/premium.py +++ b/datamaxi/datamaxi/premium.py @@ -28,7 +28,7 @@ def get( """Fetch premium data `GET /api/v1/premium` - + Args: sort (str): Sort data by `asc` or `desc` @@ -74,7 +74,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/Premium/exchanges` - + Returns: List of supported exchange @@ -89,7 +89,7 @@ def symbols(self, sourceExchange: str, targetExchange: str) -> List[str]: `GET /api/v1/premium/symbols` - + Args: sourceExchange (str): Source exchange name diff --git a/datamaxi/datamaxi/ticker.py b/datamaxi/datamaxi/ticker.py index 8bcd3b4..677c877 100644 --- a/datamaxi/datamaxi/ticker.py +++ b/datamaxi/datamaxi/ticker.py @@ -27,7 +27,7 @@ def get( `GET /api/v1/ticker` - + Args: exchange (str): Exchange name @@ -66,7 +66,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/ticker/exchanges` - + Returns: List of supported exchange @@ -81,7 +81,7 @@ def symbols(self, exchange: str) -> List[str]: `GET /api/v1/ticker/symbols` - + Args: exchange (str): Exchange name diff --git a/datamaxi/datamaxi/wallet_status.py b/datamaxi/datamaxi/wallet_status.py new file mode 100644 index 0000000..5f23132 --- /dev/null +++ b/datamaxi/datamaxi/wallet_status.py @@ -0,0 +1,96 @@ +from typing import Any, List, Dict, Union +import pandas as pd +from datamaxi.api import API +from datamaxi.lib.utils import check_required_parameters +from datamaxi.lib.utils import check_required_parameter + +class WalletStatus(API): + """Client to fetch wallet status data from DataMaxi+ API.""" + + def __init__(self, api_key=None, **kwargs: Any): + """Initialize wallet status client. + + Args: + api_key (str): The DataMaxi+ API key + **kwargs: Keyword arguments used by `datamaxi.api.API`. + """ + super().__init__(api_key, **kwargs) + + def get( + self, + exchange: str, + asset: str, + pandas: bool = True, + ) -> Union[Dict, pd.DataFrame]: + """Fetch wallet status data + + `GET /api/v1/wallet-status` + + + + Args: + exchange (str): Exchange name + asset (str): Asset name + + Returns: + Wallet status data + """ + check_required_parameters( + [ + [exchange, "exchange"], + [asset, "asset"], + ] + ) + + params = { + "exchange": exchange, + "asset": asset, + } + + url_path = "/api/v1/wallet-status" + res = self.query(url_path, params) + if pandas: + df = pd.DataFrame(res) + df = df.set_index("network") + return df + + return res + + def exchanges(self) -> List[str]: + """Fetch supported exchanges accepted by + [datamaxi.WalletStatus.get](./#datamaxi.datamaxi.WalletStatus.get) + API. + + `GET /api/v1/wallet-status/exchanges` + + + + Returns: + List of supported exchange + """ + url_path = "/api/v1/wallet-status/exchanges" + return self.query(url_path) + + def assets(self, exchange: str) -> List[str]: + """Fetch supported assets accepted by + [datamaxi.WalletStatus.get](./#datamaxi.datamaxi.WalletStatus.get) + API. + + `GET /api/v1/wallet-status/assets` + + + + Args: + exchange (str): Exchange name + + Returns: + List of supported assets + """ + check_required_parameter(exchange, "exchange") + + params = { + "exchange": exchange, + } + + url_path = "/api/v1/wallet-status/assets" + return self.query(url_path, params) \ No newline at end of file diff --git a/datamaxi/defillama/__init__.py b/datamaxi/defillama/__init__.py index f127bc4..82f8e75 100644 --- a/datamaxi/defillama/__init__.py +++ b/datamaxi/defillama/__init__.py @@ -26,7 +26,7 @@ def protocols(self) -> List[str]: `GET /api/v1/defillama/protocol` - + Returns: List of supported protocols @@ -39,7 +39,7 @@ def chains(self) -> List[str]: `GET /api/v1/defillama/chain` - + Returns: List of supported chains @@ -52,7 +52,7 @@ def pools(self) -> List[str]: `GET /api/v1/defillama/pool` - + Returns: List of supported pools @@ -65,7 +65,7 @@ def stablecoins(self) -> List[str]: `GET /api/v1/defillama/stablecoin` - + Returns: List of supported stablecoins @@ -81,7 +81,7 @@ def tvl( `GET /api/v1/defillama/tvl` - + Args: protocol (str): Protocol name @@ -109,7 +109,7 @@ def tvl_detail( `GET /api/v1/defillama/tvl/detail` - + Args: protocol (str): Protocol name @@ -138,7 +138,7 @@ def mcap(self, protocol: str, pandas: bool = True) -> Union[List, pd.DataFrame]: `GET /api/v1/defillama/mcap` - + Args: protocol (str): Protocol name @@ -159,7 +159,7 @@ def pool_yield(self, poolId: str, pandas: bool = True) -> Union[List, pd.DataFra `GET /api/v1/defillama/pool/yield` - + Args: poolId (str): Pool ID @@ -182,7 +182,7 @@ def stablecoin_mcap( `GET /api/v1/defillama/stablecoin/mcap` - + Args: stablecoin (str): Stablecoin name @@ -210,7 +210,7 @@ def stablecoin_price( `GET /api/v1/defillama/stablecoin/price` - + Args: stablecoin (str): Stablecoin name @@ -237,7 +237,7 @@ def fee( `GET /api/v1/defillama/fee` - + Args: protocol (str): Protocol name @@ -277,7 +277,7 @@ def revenue( `GET /api/v1/defillama/revenue` - + Args: protocol (str): Protocol name @@ -317,7 +317,7 @@ def fee_detail( `GET /api/v1/defillama/fee/detail` - + Args: protocol (str): Protocol name @@ -354,7 +354,7 @@ def revenue_detail( `GET /api/v1/defillama/revenue/detail` - + Args: protocol (str): Protocol name diff --git a/datamaxi/google/__init__.py b/datamaxi/google/__init__.py index 1c8a427..0bb3e20 100644 --- a/datamaxi/google/__init__.py +++ b/datamaxi/google/__init__.py @@ -25,7 +25,7 @@ def keywords(self) -> List[str]: `GET /api/v1/google/keywords` - + Returns: List of supported Google trend keywords @@ -39,7 +39,7 @@ def trend(self, keyword: str, pandas: bool = True) -> Union[List, pd.DataFrame]: `GET /api/v1/google/trend` - + Args: keyword (str): keyword to search for diff --git a/datamaxi/naver/__init__.py b/datamaxi/naver/__init__.py index 9988624..a5a2b5d 100644 --- a/datamaxi/naver/__init__.py +++ b/datamaxi/naver/__init__.py @@ -25,7 +25,7 @@ def symbols(self) -> List[str]: `GET /api/v1/naver/symbols` - + Returns: List of supported Naver trend token symbols @@ -39,7 +39,7 @@ def trend(self, symbol: str, pandas: bool = True) -> Union[List, pd.DataFrame]: `GET /api/v1/naver/trend` - + Args: symbol (str): token symbol to search for diff --git a/datamaxi/telegram/__init__.py b/datamaxi/telegram/__init__.py index e49a95b..4c3049f 100644 --- a/datamaxi/telegram/__init__.py +++ b/datamaxi/telegram/__init__.py @@ -28,7 +28,7 @@ def channels( `GET /api/v1/telegram/channels` - + Args: category (str): channel category @@ -80,7 +80,7 @@ def posts( `GET /api/v1/telegram/posts` - + Args: channel_name (str): channel name to get posts from diff --git a/datamaxi/token/__init__.py b/datamaxi/token/__init__.py index ee01fc3..47f5f2d 100644 --- a/datamaxi/token/__init__.py +++ b/datamaxi/token/__init__.py @@ -28,7 +28,7 @@ def updates( `GET /api/v1/token/updates` - + Args: type (str): Update type diff --git a/pyproject.toml b/pyproject.toml index bd2b758..b1d9648 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "datamaxi" -version = "0.19.0" +version = "0.20.0" authors = [ { name="Bisonai", email="business@bisonai.com" }, ] From 18b6f7595ec77be7df5b3941abd96b7f3b47a02d Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:05:16 +0900 Subject: [PATCH 2/6] fix: new line at the end of the file --- datamaxi/datamaxi/orderbook.py | 2 +- datamaxi/datamaxi/wallet_status.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datamaxi/datamaxi/orderbook.py b/datamaxi/datamaxi/orderbook.py index 657ed32..dad8425 100644 --- a/datamaxi/datamaxi/orderbook.py +++ b/datamaxi/datamaxi/orderbook.py @@ -94,4 +94,4 @@ def symbols(self, exchange: str) -> List[str]: } url_path = "/api/v1/orderbook/symbols" - return self.query(url_path, params) \ No newline at end of file + return self.query(url_path, params) diff --git a/datamaxi/datamaxi/wallet_status.py b/datamaxi/datamaxi/wallet_status.py index 5f23132..4cc0397 100644 --- a/datamaxi/datamaxi/wallet_status.py +++ b/datamaxi/datamaxi/wallet_status.py @@ -93,4 +93,4 @@ def assets(self, exchange: str) -> List[str]: } url_path = "/api/v1/wallet-status/assets" - return self.query(url_path, params) \ No newline at end of file + return self.query(url_path, params) From 2210fe3b1d115a21f33906fafb8e41cab1ffd6dd Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:18:02 +0900 Subject: [PATCH 3/6] fix: black reformatting --- datamaxi/datamaxi/orderbook.py | 14 ++++++-------- datamaxi/datamaxi/wallet_status.py | 1 + 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/datamaxi/datamaxi/orderbook.py b/datamaxi/datamaxi/orderbook.py index dad8425..8f9ed00 100644 --- a/datamaxi/datamaxi/orderbook.py +++ b/datamaxi/datamaxi/orderbook.py @@ -4,6 +4,7 @@ from datamaxi.lib.utils import check_required_parameters from datamaxi.lib.utils import check_required_parameter + class Orderbook(API): """Client to fetch orderbook data from DataMaxi+ API.""" @@ -17,10 +18,10 @@ def __init__(self, api_key=None, **kwargs: Any): super().__init__(api_key, **kwargs) def get( - self, - exchange: str, - symbol: str, - pandas: bool = True, + self, + exchange: str, + symbol: str, + pandas: bool = True, ) -> Union[Dict, pd.DataFrame]: """Fetch orderbook data @@ -44,10 +45,7 @@ def get( ] ) - params = { - "exchange": exchange, - "symbol": symbol - } + params = {"exchange": exchange, "symbol": symbol} res = self.query("/api/v1/orderbook", params) if pandas: diff --git a/datamaxi/datamaxi/wallet_status.py b/datamaxi/datamaxi/wallet_status.py index 4cc0397..7791ca9 100644 --- a/datamaxi/datamaxi/wallet_status.py +++ b/datamaxi/datamaxi/wallet_status.py @@ -4,6 +4,7 @@ from datamaxi.lib.utils import check_required_parameters from datamaxi.lib.utils import check_required_parameter + class WalletStatus(API): """Client to fetch wallet status data from DataMaxi+ API.""" From c8182db29a83bae76bbcbcdd246fd75fa0a92c57 Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:20:08 +0900 Subject: [PATCH 4/6] docs: add missing comment --- datamaxi/datamaxi/wallet_status.py | 1 + 1 file changed, 1 insertion(+) diff --git a/datamaxi/datamaxi/wallet_status.py b/datamaxi/datamaxi/wallet_status.py index 7791ca9..f8c70b1 100644 --- a/datamaxi/datamaxi/wallet_status.py +++ b/datamaxi/datamaxi/wallet_status.py @@ -32,6 +32,7 @@ def get( Args: exchange (str): Exchange name asset (str): Asset name + pandas (bool): Return data as pandas DataFrame Returns: Wallet status data From 364e39a7846ea5901145442cf20307134f04f604 Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:22:10 +0900 Subject: [PATCH 5/6] fix: fix wrong function usage --- datamaxi/datamaxi/orderbook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datamaxi/datamaxi/orderbook.py b/datamaxi/datamaxi/orderbook.py index 8f9ed00..8f6f09b 100644 --- a/datamaxi/datamaxi/orderbook.py +++ b/datamaxi/datamaxi/orderbook.py @@ -38,7 +38,7 @@ def get( Orderbook data in pandas DataFrame """ - check_required_parameter( + check_required_parameters( [ [exchange, "exchange"], [symbol, "symbol"], From e7e395fd9629664ffd62d50b02a86fab3fb45403 Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 17:32:02 +0900 Subject: [PATCH 6/6] docs: fix misconfigured urls --- datamaxi/datamaxi/cex_candle.py | 8 ++++---- datamaxi/datamaxi/dex_candle.py | 10 +++++----- datamaxi/datamaxi/dex_trade.py | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/datamaxi/datamaxi/cex_candle.py b/datamaxi/datamaxi/cex_candle.py index 2b251f3..1decc3e 100644 --- a/datamaxi/datamaxi/cex_candle.py +++ b/datamaxi/datamaxi/cex_candle.py @@ -35,7 +35,7 @@ def get( `GET /api/v1/cex/candle` - + Args: exchange (str): Exchange name @@ -121,7 +121,7 @@ def exchanges(self, market: str = "spot") -> List[str]: `GET /api/v1/cex/candle/exchanges` - + Args: market (str): Market type (spot/futures) @@ -145,7 +145,7 @@ def symbols(self, exchange: str = None, market: str = None) -> List[Dict]: `GET /api/v1/cex/candle/symbols` - + Args: exchange (str): Exchange name @@ -173,7 +173,7 @@ def intervals(self, exchange: str, market: str = "spot") -> List[str]: `GET /api/v1/candle/intervals` - + Args: exchange (str): Exchange name diff --git a/datamaxi/datamaxi/dex_candle.py b/datamaxi/datamaxi/dex_candle.py index 68a84db..e75fd20 100644 --- a/datamaxi/datamaxi/dex_candle.py +++ b/datamaxi/datamaxi/dex_candle.py @@ -34,7 +34,7 @@ def get( `GET /api/v1/dex/candle` - + Args: chain (str): Chain name @@ -117,7 +117,7 @@ def chains(self) -> List[str]: `GET /api/v1/dex/candle/chains` - + Returns: List of supported chains @@ -133,7 +133,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/dex/candle/exchanges` - + Returns: List of supported exchanges @@ -149,7 +149,7 @@ def pools(self, exchange: str = None, chain: str = None) -> List[Dict]: `GET /api/v1/dex/candle/pools` - + Args: exchange (str): Exchange name @@ -174,7 +174,7 @@ def intervals(self) -> List[str]: `GET /api/v1/dex/candle/intervals` - + Returns: List of supported intervals diff --git a/datamaxi/datamaxi/dex_trade.py b/datamaxi/datamaxi/dex_trade.py index 537bb05..71edb22 100644 --- a/datamaxi/datamaxi/dex_trade.py +++ b/datamaxi/datamaxi/dex_trade.py @@ -33,7 +33,7 @@ def get( `GET /api/v1/dex/trade` - + Args: chain (str): Chain name @@ -111,7 +111,7 @@ def chains(self) -> List[str]: `GET /api/v1/dex/trade/chains` - + Returns: List of supported chains @@ -127,7 +127,7 @@ def exchanges(self) -> List[str]: `GET /api/v1/dex/trade/exchanges` - + Returns: List of supported exchanges @@ -142,7 +142,7 @@ def pools(self, exchange: str = None, chain: str = None) -> List[Dict]: `GET /api/v1/dex/trade/pools` - + Args: exchange (str): Exchange name