ccxt 4.1.47__py2.py3-none-any.whl → 4.1.49__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

Files changed (166) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/binance.py +2 -0
  3. ccxt/abstract/binancecoinm.py +2 -0
  4. ccxt/abstract/binanceus.py +2 -0
  5. ccxt/abstract/binanceusdm.py +2 -0
  6. ccxt/abstract/htx.py +541 -0
  7. ccxt/ace.py +2 -2
  8. ccxt/ascendex.py +2 -2
  9. ccxt/async_support/__init__.py +3 -1
  10. ccxt/async_support/ace.py +2 -2
  11. ccxt/async_support/ascendex.py +2 -2
  12. ccxt/async_support/base/exchange.py +1 -1
  13. ccxt/async_support/bigone.py +2 -2
  14. ccxt/async_support/binance.py +5 -3
  15. ccxt/async_support/bingx.py +3 -3
  16. ccxt/async_support/bitbns.py +2 -2
  17. ccxt/async_support/bitfinex.py +2 -2
  18. ccxt/async_support/bitfinex2.py +2 -2
  19. ccxt/async_support/bitget.py +3 -3
  20. ccxt/async_support/bithumb.py +2 -2
  21. ccxt/async_support/bitmart.py +157 -53
  22. ccxt/async_support/bitmex.py +2 -2
  23. ccxt/async_support/bitopro.py +2 -2
  24. ccxt/async_support/bitpanda.py +2 -2
  25. ccxt/async_support/bitrue.py +2 -2
  26. ccxt/async_support/bitstamp.py +2 -2
  27. ccxt/async_support/bittrex.py +2 -2
  28. ccxt/async_support/bitvavo.py +2 -2
  29. ccxt/async_support/blockchaincom.py +2 -2
  30. ccxt/async_support/btcalpha.py +2 -2
  31. ccxt/async_support/btcturk.py +2 -2
  32. ccxt/async_support/bybit.py +2 -2
  33. ccxt/async_support/cex.py +2 -2
  34. ccxt/async_support/coinbase.py +2 -2
  35. ccxt/async_support/coinbasepro.py +2 -2
  36. ccxt/async_support/coinex.py +63 -20
  37. ccxt/async_support/coinfalcon.py +2 -2
  38. ccxt/async_support/coinlist.py +2 -2
  39. ccxt/async_support/coinone.py +2 -2
  40. ccxt/async_support/coinsph.py +2 -2
  41. ccxt/async_support/coinspot.py +2 -2
  42. ccxt/async_support/cryptocom.py +2 -2
  43. ccxt/async_support/currencycom.py +2 -2
  44. ccxt/async_support/delta.py +2 -2
  45. ccxt/async_support/deribit.py +2 -2
  46. ccxt/async_support/digifinex.py +2 -2
  47. ccxt/async_support/exmo.py +2 -2
  48. ccxt/async_support/gate.py +2 -2
  49. ccxt/async_support/gemini.py +3 -3
  50. ccxt/async_support/hitbtc.py +2 -2
  51. ccxt/async_support/hollaex.py +2 -2
  52. ccxt/async_support/htx.py +7853 -0
  53. ccxt/async_support/huobi.py +3 -7846
  54. ccxt/async_support/huobijp.py +2 -2
  55. ccxt/async_support/idex.py +2 -2
  56. ccxt/async_support/indodax.py +2 -2
  57. ccxt/async_support/kraken.py +2 -6
  58. ccxt/async_support/krakenfutures.py +2 -2
  59. ccxt/async_support/kucoin.py +2 -2
  60. ccxt/async_support/kuna.py +2 -2
  61. ccxt/async_support/latoken.py +2 -2
  62. ccxt/async_support/lbank.py +2 -2
  63. ccxt/async_support/lbank2.py +2 -2
  64. ccxt/async_support/luno.py +2 -2
  65. ccxt/async_support/lykke.py +2 -2
  66. ccxt/async_support/mexc.py +23 -23
  67. ccxt/async_support/novadax.py +2 -2
  68. ccxt/async_support/oceanex.py +2 -2
  69. ccxt/async_support/okcoin.py +3 -3
  70. ccxt/async_support/okx.py +3 -3
  71. ccxt/async_support/phemex.py +2 -2
  72. ccxt/async_support/poloniex.py +2 -2
  73. ccxt/async_support/poloniexfutures.py +2 -2
  74. ccxt/async_support/probit.py +2 -2
  75. ccxt/async_support/tidex.py +2 -2
  76. ccxt/async_support/timex.py +4 -4
  77. ccxt/async_support/tokocrypto.py +2 -2
  78. ccxt/async_support/upbit.py +2 -2
  79. ccxt/async_support/wavesexchange.py +2 -2
  80. ccxt/async_support/wazirx.py +2 -2
  81. ccxt/async_support/whitebit.py +2 -2
  82. ccxt/async_support/yobit.py +2 -2
  83. ccxt/async_support/zonda.py +2 -2
  84. ccxt/base/exchange.py +1 -1
  85. ccxt/base/types.py +43 -4
  86. ccxt/bigone.py +2 -2
  87. ccxt/binance.py +5 -3
  88. ccxt/bingx.py +3 -3
  89. ccxt/bitbns.py +2 -2
  90. ccxt/bitfinex.py +2 -2
  91. ccxt/bitfinex2.py +2 -2
  92. ccxt/bitget.py +3 -3
  93. ccxt/bithumb.py +2 -2
  94. ccxt/bitmart.py +157 -53
  95. ccxt/bitmex.py +2 -2
  96. ccxt/bitopro.py +2 -2
  97. ccxt/bitpanda.py +2 -2
  98. ccxt/bitrue.py +2 -2
  99. ccxt/bitstamp.py +2 -2
  100. ccxt/bittrex.py +2 -2
  101. ccxt/bitvavo.py +2 -2
  102. ccxt/blockchaincom.py +2 -2
  103. ccxt/btcalpha.py +2 -2
  104. ccxt/btcturk.py +2 -2
  105. ccxt/bybit.py +2 -2
  106. ccxt/cex.py +2 -2
  107. ccxt/coinbase.py +2 -2
  108. ccxt/coinbasepro.py +2 -2
  109. ccxt/coinex.py +63 -20
  110. ccxt/coinfalcon.py +2 -2
  111. ccxt/coinlist.py +2 -2
  112. ccxt/coinone.py +2 -2
  113. ccxt/coinsph.py +2 -2
  114. ccxt/coinspot.py +2 -2
  115. ccxt/cryptocom.py +2 -2
  116. ccxt/currencycom.py +2 -2
  117. ccxt/delta.py +2 -2
  118. ccxt/deribit.py +2 -2
  119. ccxt/digifinex.py +2 -2
  120. ccxt/exmo.py +2 -2
  121. ccxt/gate.py +2 -2
  122. ccxt/gemini.py +3 -3
  123. ccxt/hitbtc.py +2 -2
  124. ccxt/hollaex.py +2 -2
  125. ccxt/htx.py +7852 -0
  126. ccxt/huobi.py +3 -7845
  127. ccxt/huobijp.py +2 -2
  128. ccxt/idex.py +2 -2
  129. ccxt/indodax.py +2 -2
  130. ccxt/kraken.py +2 -6
  131. ccxt/krakenfutures.py +2 -2
  132. ccxt/kucoin.py +2 -2
  133. ccxt/kuna.py +2 -2
  134. ccxt/latoken.py +2 -2
  135. ccxt/lbank.py +2 -2
  136. ccxt/lbank2.py +2 -2
  137. ccxt/luno.py +2 -2
  138. ccxt/lykke.py +2 -2
  139. ccxt/mexc.py +23 -23
  140. ccxt/novadax.py +2 -2
  141. ccxt/oceanex.py +2 -2
  142. ccxt/okcoin.py +3 -3
  143. ccxt/okx.py +3 -3
  144. ccxt/phemex.py +2 -2
  145. ccxt/poloniex.py +2 -2
  146. ccxt/poloniexfutures.py +2 -2
  147. ccxt/pro/__init__.py +3 -1
  148. ccxt/pro/htx.py +2177 -0
  149. ccxt/pro/huobi.py +4 -2166
  150. ccxt/probit.py +2 -2
  151. ccxt/test/test_async.py +15 -1
  152. ccxt/test/test_sync.py +15 -1
  153. ccxt/tidex.py +2 -2
  154. ccxt/timex.py +4 -4
  155. ccxt/tokocrypto.py +2 -2
  156. ccxt/upbit.py +2 -2
  157. ccxt/wavesexchange.py +2 -2
  158. ccxt/wazirx.py +2 -2
  159. ccxt/whitebit.py +2 -2
  160. ccxt/yobit.py +2 -2
  161. ccxt/zonda.py +2 -2
  162. ccxt-4.1.49.dist-info/METADATA +624 -0
  163. {ccxt-4.1.47.dist-info → ccxt-4.1.49.dist-info}/RECORD +165 -161
  164. ccxt-4.1.47.dist-info/METADATA +0 -624
  165. {ccxt-4.1.47.dist-info → ccxt-4.1.49.dist-info}/WHEEL +0 -0
  166. {ccxt-4.1.47.dist-info → ccxt-4.1.49.dist-info}/top_level.txt +0 -0
ccxt/huobijp.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.huobijp import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -692,7 +692,7 @@ class huobijp(Exchange, ImplicitAPI):
692
692
  ticker['datetime'] = self.iso8601(timestamp)
693
693
  return ticker
694
694
 
695
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
695
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
696
696
  """
697
697
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
698
698
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/idex.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.idex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -357,7 +357,7 @@ class idex(Exchange, ImplicitAPI):
357
357
  ticker = self.safe_value(response, 0)
358
358
  return self.parse_ticker(ticker, market)
359
359
 
360
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
360
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
361
361
  """
362
362
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
363
363
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/indodax.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.indodax import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -436,7 +436,7 @@ class indodax(Exchange, ImplicitAPI):
436
436
  ticker = self.safe_value(response, 'ticker', {})
437
437
  return self.parse_ticker(ticker, market)
438
438
 
439
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
439
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
440
440
  """
441
441
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
442
442
  :see: https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#ticker-all
ccxt/kraken.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.kraken import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -776,7 +776,7 @@ class kraken(Exchange, ImplicitAPI):
776
776
  'info': ticker,
777
777
  }, market)
778
778
 
779
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
779
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
780
780
  """
781
781
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
782
782
  :see: https://docs.kraken.com/rest/#tag/Market-Data/operation/getTickerInformation
@@ -958,7 +958,6 @@ class kraken(Exchange, ImplicitAPI):
958
958
 
959
959
  def fetch_ledger(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
960
960
  """
961
- :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getLedgers
962
961
  fetch the history of changes, actions done by the user or operations that altered balance of the user
963
962
  :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getLedgers
964
963
  :param str code: unified currency code, default is None
@@ -1833,7 +1832,6 @@ class kraken(Exchange, ImplicitAPI):
1833
1832
 
1834
1833
  def fetch_open_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Order]:
1835
1834
  """
1836
- :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getOpenOrders
1837
1835
  fetch all unfilled currently open orders
1838
1836
  :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getOpenOrders
1839
1837
  :param str symbol: unified market symbol
@@ -1861,7 +1859,6 @@ class kraken(Exchange, ImplicitAPI):
1861
1859
 
1862
1860
  def fetch_closed_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Order]:
1863
1861
  """
1864
- :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
1865
1862
  fetches information on multiple closed orders made by the user
1866
1863
  :see: https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
1867
1864
  :param str symbol: unified market symbol of the market orders were made in
@@ -2053,7 +2050,6 @@ class kraken(Exchange, ImplicitAPI):
2053
2050
 
2054
2051
  def fetch_deposits(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Transaction]:
2055
2052
  """
2056
- :see: https://docs.kraken.com/rest/#tag/Funding/operation/getStatusRecentDeposits
2057
2053
  fetch all deposits made to an account
2058
2054
  :see: https://docs.kraken.com/rest/#tag/Funding/operation/getStatusRecentDeposits
2059
2055
  :param str code: unified currency code
ccxt/krakenfutures.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.krakenfutures import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade
9
+ from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -462,7 +462,7 @@ class krakenfutures(Exchange, ImplicitAPI):
462
462
  timestamp = self.parse8601(response['serverTime'])
463
463
  return self.parse_order_book(response['orderBook'], symbol, timestamp)
464
464
 
465
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
465
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
466
466
  """
467
467
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
468
468
  :see: https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-tickers
ccxt/kucoin.py CHANGED
@@ -8,7 +8,7 @@ from ccxt.abstract.kucoin import ImplicitAPI
8
8
  import hashlib
9
9
  import math
10
10
  import json
11
- from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
11
+ from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
12
12
  from typing import Optional
13
13
  from typing import List
14
14
  from ccxt.base.errors import ExchangeError
@@ -1440,7 +1440,7 @@ class kucoin(Exchange, ImplicitAPI):
1440
1440
  'info': ticker,
1441
1441
  }, market)
1442
1442
 
1443
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
1443
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
1444
1444
  """
1445
1445
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
1446
1446
  :see: https://docs.kucoin.com/#get-all-tickers
ccxt/kuna.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.kuna import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
10
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
11
11
  from typing import Optional
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
@@ -689,7 +689,7 @@ class kuna(Exchange, ImplicitAPI):
689
689
  'quoteVolume': self.safe_string(ticker, 'quoteVolume'),
690
690
  }, market)
691
691
 
692
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
692
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
693
693
  """
694
694
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market. The average is not returned in the response, but the median can be accessed via response['info']['price']
695
695
  :see: https://docs.kuna.io/docs/get-market-info-by-tickers
ccxt/latoken.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.latoken import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -651,7 +651,7 @@ class latoken(Exchange, ImplicitAPI):
651
651
  #
652
652
  return self.parse_ticker(response, market)
653
653
 
654
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
654
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
655
655
  """
656
656
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
657
657
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/lbank.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.lbank import ImplicitAPI
8
- from ccxt.base.types import Balances, Order, OrderSide, OrderType, Ticker, Trade, Transaction
8
+ from ccxt.base.types import Balances, Order, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
9
9
  from typing import Optional
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -307,7 +307,7 @@ class lbank(Exchange, ImplicitAPI):
307
307
  # }
308
308
  return self.parse_ticker(response, market)
309
309
 
310
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
310
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
311
311
  """
312
312
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
313
313
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/lbank2.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.lbank2 import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -629,7 +629,7 @@ class lbank2(Exchange, ImplicitAPI):
629
629
  first = self.safe_value(data, 0, {})
630
630
  return self.parse_ticker(first, market)
631
631
 
632
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
632
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
633
633
  """
634
634
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
635
635
  :see: https://www.lbank.info/en-US/docs/index.html#query-current-market-data-new
ccxt/luno.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.luno import ImplicitAPI
8
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade
8
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade
9
9
  from typing import Optional
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -512,7 +512,7 @@ class luno(Exchange, ImplicitAPI):
512
512
  'info': ticker,
513
513
  }, market)
514
514
 
515
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
515
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
516
516
  """
517
517
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
518
518
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/lykke.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.lykke import ImplicitAPI
8
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
8
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
9
9
  from typing import Optional
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -468,7 +468,7 @@ class lykke(Exchange, ImplicitAPI):
468
468
  #
469
469
  return self.parse_ticker(self.safe_value(ticker, 0, {}), market)
470
470
 
471
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
471
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
472
472
  """
473
473
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
474
474
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
ccxt/mexc.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.mexc import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, IndexType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, IndexType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -145,8 +145,8 @@ class mexc(Exchange, ImplicitAPI):
145
145
  },
146
146
  'www': 'https://www.mexc.com/',
147
147
  'doc': [
148
- 'https://mxcdevelop.github.io/apidocs/spot_v3_en/',
149
- 'https://mxcdevelop.github.io/APIDoc/', # v1 & v2 : soon to be deprecated
148
+ 'https://mexcdevelop.github.io/apidocs/spot_v3_en/',
149
+ 'https://mexcdevelop.github.io/APIDoc/', # v1 & v2 : soon to be deprecated
150
150
  ],
151
151
  'fees': [
152
152
  'https://www.mexc.com/fee',
@@ -888,7 +888,7 @@ class mexc(Exchange, ImplicitAPI):
888
888
  def fetch_currencies(self, params={}):
889
889
  """
890
890
  fetches all available currencies on an exchange
891
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
891
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
892
892
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
893
893
  :returns dict: an associative dictionary of currencies
894
894
  """
@@ -1271,8 +1271,8 @@ class mexc(Exchange, ImplicitAPI):
1271
1271
 
1272
1272
  def fetch_order_book(self, symbol: str, limit: Optional[int] = None, params={}) -> OrderBook:
1273
1273
  """
1274
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#order-book
1275
- :see: https://mxcdevelop.github.io/apidocs/contract_v1_en/#get-the-contract-s-depth-information
1274
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#order-book
1275
+ :see: https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-the-contract-s-depth-information
1276
1276
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
1277
1277
  :param str symbol: unified symbol of the market to fetch the order book for
1278
1278
  :param int [limit]: the maximum amount of order book entries to return
@@ -1682,7 +1682,7 @@ class mexc(Exchange, ImplicitAPI):
1682
1682
  self.safe_number(ohlcv, 5),
1683
1683
  ]
1684
1684
 
1685
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
1685
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
1686
1686
  """
1687
1687
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
1688
1688
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
@@ -3332,9 +3332,9 @@ class mexc(Exchange, ImplicitAPI):
3332
3332
  def fetch_balance(self, params={}) -> Balances:
3333
3333
  """
3334
3334
  query for balance and get the amount of funds available for trading or funds locked in orders
3335
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#account-information
3336
- :see: https://mxcdevelop.github.io/apidocs/contract_v1_en/#get-all-informations-of-user-39-s-asset
3337
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#isolated-account
3335
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#account-information
3336
+ :see: https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-all-informations-of-user-39-s-asset
3337
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#isolated-account
3338
3338
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
3339
3339
  :param str [params.symbols]: # required for margin, market id's separated by commas
3340
3340
  :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
@@ -3985,7 +3985,7 @@ class mexc(Exchange, ImplicitAPI):
3985
3985
  def fetch_deposit_addresses_by_network(self, code: str, params={}):
3986
3986
  """
3987
3987
  fetch a dictionary of addresses for a currency, indexed by network
3988
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
3988
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
3989
3989
  :param str code: unified currency code of the currency for the deposit address
3990
3990
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
3991
3991
  :returns dict: a dictionary of `address structures <https://github.com/ccxt/ccxt/wiki/Manual#address-structure>` indexed by the network
@@ -4020,7 +4020,7 @@ class mexc(Exchange, ImplicitAPI):
4020
4020
 
4021
4021
  def create_deposit_address(self, code: str, params={}):
4022
4022
  """
4023
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#generate-deposit-address-supporting-network
4023
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#generate-deposit-address-supporting-network
4024
4024
  create a currency deposit address
4025
4025
  :param str code: unified currency code of the currency for the deposit address
4026
4026
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
@@ -4057,7 +4057,7 @@ class mexc(Exchange, ImplicitAPI):
4057
4057
  def fetch_deposit_address(self, code: str, params={}):
4058
4058
  """
4059
4059
  fetch the deposit address for a currency associated with self account
4060
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
4060
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
4061
4061
  :param str code: unified currency code
4062
4062
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
4063
4063
  :returns dict: an `address structure <https://github.com/ccxt/ccxt/wiki/Manual#address-structure>`
@@ -4079,7 +4079,7 @@ class mexc(Exchange, ImplicitAPI):
4079
4079
  def fetch_deposits(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Transaction]:
4080
4080
  """
4081
4081
  fetch all deposits made to an account
4082
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#deposit-history-supporting-network
4082
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-history-supporting-network
4083
4083
  :param str code: unified currency code
4084
4084
  :param int [since]: the earliest time in ms to fetch deposits for
4085
4085
  :param int [limit]: the maximum number of deposits structures to retrieve
@@ -4132,7 +4132,7 @@ class mexc(Exchange, ImplicitAPI):
4132
4132
  def fetch_withdrawals(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Transaction]:
4133
4133
  """
4134
4134
  fetch all withdrawals made from an account
4135
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#withdraw-history-supporting-network
4135
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#withdraw-history-supporting-network
4136
4136
  :param str code: unified currency code
4137
4137
  :param int [since]: the earliest time in ms to fetch withdrawals for
4138
4138
  :param int [limit]: the maximum number of withdrawals structures to retrieve
@@ -4526,7 +4526,7 @@ class mexc(Exchange, ImplicitAPI):
4526
4526
  def transfer(self, code: str, amount, fromAccount, toAccount, params={}):
4527
4527
  """
4528
4528
  transfer currency internally between wallets on the same account
4529
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#user-universal-transfer
4529
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#user-universal-transfer
4530
4530
  :param str code: unified currency code
4531
4531
  :param float amount: amount to transfer
4532
4532
  :param str fromAccount: account to transfer from
@@ -4651,7 +4651,7 @@ class mexc(Exchange, ImplicitAPI):
4651
4651
  def withdraw(self, code: str, amount, address, tag=None, params={}):
4652
4652
  """
4653
4653
  make a withdrawal
4654
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#withdraw
4654
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#withdraw
4655
4655
  :param str code: unified currency code
4656
4656
  :param float amount: the amount to withdraw
4657
4657
  :param str address: the address to withdraw to
@@ -4661,7 +4661,7 @@ class mexc(Exchange, ImplicitAPI):
4661
4661
  """
4662
4662
  tag, params = self.handle_withdraw_tag_and_params(tag, params)
4663
4663
  networks = self.safe_value(self.options, 'networks', {})
4664
- network = self.safe_string_upper_2(params, 'network', 'chain') # self line allows the user to specify either ERC20 or ETH
4664
+ network = self.safe_string_2(params, 'network', 'chain') # self line allows the user to specify either ERC20 or ETH
4665
4665
  network = self.safe_string(networks, network, network) # handle ETH > ERC-20 alias
4666
4666
  self.check_address(address)
4667
4667
  self.load_markets()
@@ -4675,7 +4675,7 @@ class mexc(Exchange, ImplicitAPI):
4675
4675
  request['memo'] = tag
4676
4676
  if network is not None:
4677
4677
  request['network'] = network
4678
- params = self.omit(params, 'network')
4678
+ params = self.omit(params, ['network', 'chain'])
4679
4679
  response = self.spotPrivatePostCapitalWithdrawApply(self.extend(request, params))
4680
4680
  #
4681
4681
  # {
@@ -4715,7 +4715,7 @@ class mexc(Exchange, ImplicitAPI):
4715
4715
  def borrow_margin(self, code: str, amount, symbol: Optional[str] = None, params={}):
4716
4716
  """
4717
4717
  create a loan to borrow margin
4718
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#loan
4718
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#loan
4719
4719
  :param str code: unified currency code of the currency to borrow
4720
4720
  :param float amount: the amount to borrow
4721
4721
  :param str symbol: unified market symbol
@@ -4746,7 +4746,7 @@ class mexc(Exchange, ImplicitAPI):
4746
4746
  def repay_margin(self, code: str, amount, symbol: Optional[str] = None, params={}):
4747
4747
  """
4748
4748
  repay borrowed margin and interest
4749
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#repayment
4749
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#repayment
4750
4750
  :param str code: unified currency code of the currency to repay
4751
4751
  :param float amount: the amount to repay
4752
4752
  :param str symbol: unified market symbol
@@ -4782,7 +4782,7 @@ class mexc(Exchange, ImplicitAPI):
4782
4782
  def fetch_transaction_fees(self, codes=None, params={}):
4783
4783
  """
4784
4784
  fetch deposit and withdrawal fees
4785
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
4785
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
4786
4786
  :param str[]|None codes: returns fees for all currencies if None
4787
4787
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
4788
4788
  :returns dict[]: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
@@ -4875,7 +4875,7 @@ class mexc(Exchange, ImplicitAPI):
4875
4875
  def fetch_deposit_withdraw_fees(self, codes: Optional[List[str]] = None, params={}):
4876
4876
  """
4877
4877
  fetch deposit and withdrawal fees
4878
- :see: https://mxcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
4878
+ :see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
4879
4879
  :param str[]|None codes: returns fees for all currencies if None
4880
4880
  :param dict [params]: extra parameters specific to the mexc3 api endpoint
4881
4881
  :returns dict[]: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
ccxt/novadax.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.novadax import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -399,7 +399,7 @@ class novadax(Exchange, ImplicitAPI):
399
399
  data = self.safe_value(response, 'data', {})
400
400
  return self.parse_ticker(data, market)
401
401
 
402
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
402
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
403
403
  """
404
404
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
405
405
  :see: https://doc.novadax.com/en-US/#get-latest-tickers-for-all-trading-pairs
ccxt/oceanex.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.oceanex import ImplicitAPI
8
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade
8
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade
9
9
  from typing import Optional
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -272,7 +272,7 @@ class oceanex(Exchange, ImplicitAPI):
272
272
  data = self.safe_value(response, 'data', {})
273
273
  return self.parse_ticker(data, market)
274
274
 
275
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
275
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
276
276
  """
277
277
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
278
278
  :see: https://api.oceanex.pro/doc/v1/#multiple-tickers-post
ccxt/okcoin.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.okcoin import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Market, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -608,7 +608,7 @@ class okcoin(Exchange, ImplicitAPI):
608
608
  result.append(self.parse_market(markets[i]))
609
609
  return result
610
610
 
611
- def parse_market(self, market):
611
+ def parse_market(self, market) -> Market:
612
612
  #
613
613
  # spot markets
614
614
  #
@@ -923,7 +923,7 @@ class okcoin(Exchange, ImplicitAPI):
923
923
  #
924
924
  return self.parse_ticker(first, market)
925
925
 
926
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
926
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
927
927
  """
928
928
  :see: https://www.okcoin.com/docs-v5/en/#rest-api-market-data-get-tickers
929
929
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
ccxt/okx.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.okx import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import OrderRequest, Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import OrderRequest, Balances, Market, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -1297,7 +1297,7 @@ class okx(Exchange, ImplicitAPI):
1297
1297
  result.append(self.parse_market(markets[i]))
1298
1298
  return result
1299
1299
 
1300
- def parse_market(self, market):
1300
+ def parse_market(self, market) -> Market:
1301
1301
  #
1302
1302
  # {
1303
1303
  # "alias": "", # self_week, next_week, quarter, next_quarter
@@ -1819,7 +1819,7 @@ class okx(Exchange, ImplicitAPI):
1819
1819
  tickers = self.safe_value(response, 'data', [])
1820
1820
  return self.parse_tickers(tickers, symbols)
1821
1821
 
1822
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
1822
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
1823
1823
  """
1824
1824
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
1825
1825
  :see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
ccxt/phemex.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.phemex import ImplicitAPI
8
8
  import hashlib
9
9
  import numbers
10
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
10
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
11
11
  from typing import Optional
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
@@ -1320,7 +1320,7 @@ class phemex(Exchange, ImplicitAPI):
1320
1320
  result = self.safe_value(response, 'result', {})
1321
1321
  return self.parse_ticker(result, market)
1322
1322
 
1323
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
1323
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
1324
1324
  """
1325
1325
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
1326
1326
  :see: https://phemex-docs.github.io/#query-24-hours-ticker-for-all-symbols-2 # spot
ccxt/poloniex.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.poloniex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -631,7 +631,7 @@ class poloniex(Exchange, ImplicitAPI):
631
631
  'info': ticker,
632
632
  }, market)
633
633
 
634
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
634
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
635
635
  """
636
636
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
637
637
  :see: https://docs.poloniex.com/#public-endpoints-market-data-ticker
ccxt/poloniexfutures.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.poloniexfutures import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Trade
9
+ from ccxt.base.types import Balances, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade
10
10
  from typing import Optional
11
11
  from typing import List
12
12
  from ccxt.base.errors import AccountSuspended
@@ -441,7 +441,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
441
441
  #
442
442
  return self.parse_ticker(self.safe_value(response, 'data', {}), market)
443
443
 
444
- def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
444
+ def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}) -> Tickers:
445
445
  """
446
446
  fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
447
447
  :see: https://futures-docs.poloniex.com/#get-real-time-ticker-of-all-symbols
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.47'
7
+ __version__ = '4.1.49'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -48,6 +48,7 @@ from ccxt.pro.gateio import gateio # noqa
48
48
  from ccxt.pro.gemini import gemini # noqa: F401
49
49
  from ccxt.pro.hitbtc import hitbtc # noqa: F401
50
50
  from ccxt.pro.hollaex import hollaex # noqa: F401
51
+ from ccxt.pro.htx import htx # noqa: F401
51
52
  from ccxt.pro.huobi import huobi # noqa: F401
52
53
  from ccxt.pro.huobijp import huobijp # noqa: F401
53
54
  from ccxt.pro.huobipro import huobipro # noqa: F401
@@ -110,6 +111,7 @@ exchanges = [
110
111
  'gemini',
111
112
  'hitbtc',
112
113
  'hollaex',
114
+ 'htx',
113
115
  'huobi',
114
116
  'huobijp',
115
117
  'huobipro',