ccxt 4.4.98__py2.py3-none-any.whl → 4.4.99__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.
Files changed (70) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/bitget.py +6 -0
  3. ccxt/abstract/hibachi.py +26 -0
  4. ccxt/async_support/__init__.py +3 -1
  5. ccxt/async_support/base/exchange.py +1 -1
  6. ccxt/async_support/binance.py +7 -6
  7. ccxt/async_support/bitget.py +2018 -557
  8. ccxt/async_support/bybit.py +5 -1
  9. ccxt/async_support/coinex.py +64 -3
  10. ccxt/async_support/cryptocom.py +1 -1
  11. ccxt/async_support/gate.py +1 -2
  12. ccxt/async_support/hibachi.py +2080 -0
  13. ccxt/async_support/novadax.py +34 -0
  14. ccxt/base/errors.py +0 -6
  15. ccxt/base/exchange.py +1 -1
  16. ccxt/binance.py +7 -6
  17. ccxt/bitget.py +2018 -557
  18. ccxt/bybit.py +5 -1
  19. ccxt/coinex.py +64 -3
  20. ccxt/cryptocom.py +1 -1
  21. ccxt/gate.py +1 -2
  22. ccxt/hibachi.py +2079 -0
  23. ccxt/novadax.py +34 -0
  24. ccxt/pro/__init__.py +1 -1
  25. ccxt/pro/alpaca.py +2 -2
  26. ccxt/pro/apex.py +2 -2
  27. ccxt/pro/ascendex.py +2 -2
  28. ccxt/pro/binance.py +2 -4
  29. ccxt/pro/bitget.py +3 -3
  30. ccxt/pro/bithumb.py +2 -2
  31. ccxt/pro/bitmart.py +2 -2
  32. ccxt/pro/bitmex.py +3 -3
  33. ccxt/pro/bitstamp.py +3 -3
  34. ccxt/pro/bittrade.py +2 -2
  35. ccxt/pro/bitvavo.py +4 -2
  36. ccxt/pro/bybit.py +4 -4
  37. ccxt/pro/cex.py +3 -2
  38. ccxt/pro/coinbaseexchange.py +4 -4
  39. ccxt/pro/coinbaseinternational.py +2 -2
  40. ccxt/pro/coincatch.py +1 -1
  41. ccxt/pro/coinone.py +2 -2
  42. ccxt/pro/cryptocom.py +2 -2
  43. ccxt/pro/derive.py +2 -2
  44. ccxt/pro/gate.py +3 -3
  45. ccxt/pro/hollaex.py +2 -2
  46. ccxt/pro/htx.py +3 -3
  47. ccxt/pro/hyperliquid.py +2 -2
  48. ccxt/pro/kraken.py +2 -2
  49. ccxt/pro/krakenfutures.py +4 -3
  50. ccxt/pro/kucoin.py +3 -2
  51. ccxt/pro/kucoinfutures.py +3 -2
  52. ccxt/pro/modetrade.py +2 -2
  53. ccxt/pro/okcoin.py +2 -2
  54. ccxt/pro/okx.py +5 -5
  55. ccxt/pro/onetrading.py +2 -2
  56. ccxt/pro/p2b.py +2 -2
  57. ccxt/pro/paradex.py +2 -2
  58. ccxt/pro/poloniex.py +2 -2
  59. ccxt/pro/probit.py +2 -2
  60. ccxt/pro/vertex.py +2 -2
  61. ccxt/pro/whitebit.py +2 -2
  62. ccxt/pro/woo.py +2 -2
  63. ccxt/pro/woofipro.py +2 -2
  64. ccxt/test/tests_async.py +1 -1
  65. ccxt/test/tests_sync.py +1 -1
  66. {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/METADATA +7 -6
  67. {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/RECORD +70 -67
  68. {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/LICENSE.txt +0 -0
  69. {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/WHEEL +0 -0
  70. {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/top_level.txt +0 -0
ccxt/pro/krakenfutures.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
8
8
  import hashlib
9
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -212,7 +212,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
212
212
  return result
213
213
  return self.filter_by_array(self.bidsasks, 'symbol', symbols)
214
214
 
215
- async def watch_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
215
+ async def watch_trades(self, symbol: Str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
216
216
  """
217
217
  get the list of most recent trades for a particular symbol
218
218
 
@@ -1443,7 +1443,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
1443
1443
  messageHash += '#' + subChannelName
1444
1444
  return messageHash
1445
1445
 
1446
- def handle_error_message(self, client: Client, message):
1446
+ def handle_error_message(self, client: Client, message) -> Bool:
1447
1447
  #
1448
1448
  # {
1449
1449
  # event: 'alert',
@@ -1455,6 +1455,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
1455
1455
  raise ExchangeError(self.id + ' ' + errMsg)
1456
1456
  except Exception as error:
1457
1457
  client.reject(error)
1458
+ return False
1458
1459
 
1459
1460
  def handle_message(self, client, message):
1460
1461
  event = self.safe_string(message, 'event')
ccxt/pro/kucoin.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -1321,7 +1321,7 @@ class kucoin(ccxt.async_support.kucoin):
1321
1321
  client.lastPong = self.milliseconds()
1322
1322
  # https://docs.kucoin.com/#ping
1323
1323
 
1324
- def handle_error_message(self, client: Client, message):
1324
+ def handle_error_message(self, client: Client, message) -> Bool:
1325
1325
  #
1326
1326
  # {
1327
1327
  # "id": "1",
@@ -1337,6 +1337,7 @@ class kucoin(ccxt.async_support.kucoin):
1337
1337
  type = 'private'
1338
1338
  self.options['urls'][type] = None
1339
1339
  self.handle_errors(None, None, client.url, None, None, data, message, None, None)
1340
+ return False
1340
1341
 
1341
1342
  def handle_message(self, client: Client, message):
1342
1343
  type = self.safe_string(message, 'type')
ccxt/pro/kucoinfutures.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -1166,7 +1166,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
1166
1166
  client.lastPong = self.milliseconds()
1167
1167
  return message
1168
1168
 
1169
- def handle_error_message(self, client: Client, message):
1169
+ def handle_error_message(self, client: Client, message) -> Bool:
1170
1170
  #
1171
1171
  # {
1172
1172
  # "id": "64d8732c856851144bded10d",
@@ -1182,6 +1182,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
1182
1182
  type = 'private'
1183
1183
  self.options['urls'][type] = None
1184
1184
  self.handle_errors(None, None, client.url, None, None, data, message, None, None)
1185
+ return True
1185
1186
 
1186
1187
  def handle_subscription_status(self, client: Client, message):
1187
1188
  #
ccxt/pro/modetrade.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import AuthenticationError
@@ -1176,7 +1176,7 @@ class modetrade(ccxt.async_support.modetrade):
1176
1176
  self.balance = self.safe_balance(self.balance)
1177
1177
  client.resolve(self.balance, 'balance')
1178
1178
 
1179
- def handle_error_message(self, client: Client, message):
1179
+ def handle_error_message(self, client: Client, message) -> Bool:
1180
1180
  #
1181
1181
  # {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
1182
1182
  #
ccxt/pro/okcoin.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
8
  import hashlib
9
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Ticker, Trade
9
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Ticker, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
12
  from ccxt.base.errors import AuthenticationError
@@ -601,7 +601,7 @@ class okcoin(ccxt.async_support.okcoin):
601
601
  client.lastPong = self.milliseconds()
602
602
  return message
603
603
 
604
- def handle_error_message(self, client: Client, message):
604
+ def handle_error_message(self, client: Client, message) -> Bool:
605
605
  #
606
606
  # {event: "error", message: "Invalid sign", errorCode: 30013}
607
607
  # {"event":"error","message":"Unrecognized request: {\"event\":\"subscribe\",\"channel\":\"spot/depth:BTC-USDT\"}","errorCode":30039}
ccxt/pro/okx.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
8
8
  import hashlib
9
- from ccxt.base.types import Any, Balances, Int, Liquidation, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade
9
+ from ccxt.base.types import Any, Balances, Bool, Int, Liquidation, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -618,7 +618,7 @@ class okx(ccxt.async_support.okx):
618
618
  'info': ticker,
619
619
  }, market)
620
620
 
621
- async def watch_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
621
+ async def watch_liquidations_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
622
622
  """
623
623
  watch the public liquidations of a trading pair
624
624
 
@@ -706,7 +706,7 @@ class okx(ccxt.async_support.okx):
706
706
  client.resolve([liquidation], 'liquidations')
707
707
  client.resolve([liquidation], 'liquidations::' + symbol)
708
708
 
709
- async def watch_my_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
709
+ async def watch_my_liquidations_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
710
710
  """
711
711
  watch the private liquidations of a trading pair
712
712
 
@@ -2130,7 +2130,7 @@ class okx(ccxt.async_support.okx):
2130
2130
  client.lastPong = self.milliseconds()
2131
2131
  return message
2132
2132
 
2133
- def handle_error_message(self, client: Client, message):
2133
+ def handle_error_message(self, client: Client, message) -> Bool:
2134
2134
  #
2135
2135
  # {event: 'error', msg: "Illegal request: {"op":"subscribe","args":["spot/ticker:BTC-USDT"]}", code: "60012"}
2136
2136
  # {event: 'error", msg: "channel:ticker,instId:BTC-USDT doesn"t exist", code: "60018"}
@@ -2172,7 +2172,7 @@ class okx(ccxt.async_support.okx):
2172
2172
  return False
2173
2173
  client.reject(e)
2174
2174
  return False
2175
- return message
2175
+ return True
2176
2176
 
2177
2177
  def handle_message(self, client: Client, message):
2178
2178
  if not self.handle_error_message(client, message):
ccxt/pro/onetrading.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -1166,7 +1166,7 @@ class onetrading(ccxt.async_support.onetrading):
1166
1166
  #
1167
1167
  return message
1168
1168
 
1169
- def handle_error_message(self, client: Client, message):
1169
+ def handle_error_message(self, client: Client, message) -> Bool:
1170
1170
  #
1171
1171
  # {
1172
1172
  # "error": "MALFORMED_JSON",
ccxt/pro/p2b.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Int, OrderBook, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -448,7 +448,7 @@ class p2b(ccxt.async_support.p2b):
448
448
  if endpoint is not None:
449
449
  endpoint(client, message)
450
450
 
451
- def handle_error_message(self, client: Client, message):
451
+ def handle_error_message(self, client: Client, message) -> Bool:
452
452
  error = self.safe_string(message, 'error')
453
453
  if error is not None:
454
454
  raise ExchangeError(self.id + ' error: ' + self.json(error))
ccxt/pro/paradex.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache
8
- from ccxt.base.types import Any, Int, OrderBook, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
 
@@ -287,7 +287,7 @@ class paradex(ccxt.async_support.paradex):
287
287
  client.resolve(ticker, messageHash)
288
288
  return message
289
289
 
290
- def handle_error_message(self, client: Client, message):
290
+ def handle_error_message(self, client: Client, message) -> Bool:
291
291
  #
292
292
  # {
293
293
  # "jsonrpc": "2.0",
ccxt/pro/poloniex.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
8
  import hashlib
9
- from ccxt.base.types import Any, Balances, Int, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
+ from ccxt.base.types import Any, Balances, Bool, Int, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -1168,7 +1168,7 @@ class poloniex(ccxt.async_support.poloniex):
1168
1168
  if dataLength > 0:
1169
1169
  method(client, message)
1170
1170
 
1171
- def handle_error_message(self, client: Client, message):
1171
+ def handle_error_message(self, client: Client, message) -> Bool:
1172
1172
  #
1173
1173
  # {
1174
1174
  # message: 'Invalid channel value ["ordersss"]',
ccxt/pro/probit.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Ticker, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Ticker, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
@@ -451,7 +451,7 @@ class probit(ccxt.async_support.probit):
451
451
  self.handle_bid_asks(storedBids, bids)
452
452
  self.handle_bid_asks(storedAsks, asks)
453
453
 
454
- def handle_error_message(self, client: Client, message):
454
+ def handle_error_message(self, client: Client, message) -> Bool:
455
455
  #
456
456
  # {
457
457
  # "errorCode": "INVALID_ARGUMENT",
ccxt/pro/vertex.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide
8
- from ccxt.base.types import Any, Int, Market, Order, OrderBook, Position, Str, Strings, Ticker, Trade
8
+ from ccxt.base.types import Any, Bool, Int, Market, Order, OrderBook, Position, Str, Strings, Ticker, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import AuthenticationError
@@ -898,7 +898,7 @@ class vertex(ccxt.async_support.vertex):
898
898
  cachedOrders.append(parsed)
899
899
  client.resolve(self.orders, marketId + '@' + topic)
900
900
 
901
- def handle_error_message(self, client: Client, message):
901
+ def handle_error_message(self, client: Client, message) -> Bool:
902
902
  #
903
903
  # {
904
904
  # result: null,
ccxt/pro/whitebit.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import AuthenticationError
@@ -834,7 +834,7 @@ class whitebit(ccxt.async_support.whitebit):
834
834
  future.resolve(1)
835
835
  return message
836
836
 
837
- def handle_error_message(self, client: Client, message):
837
+ def handle_error_message(self, client: Client, message) -> Bool:
838
838
  #
839
839
  # {
840
840
  # "error": {code: 1, message: "invalid argument"},
ccxt/pro/woo.py CHANGED
@@ -6,7 +6,7 @@
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
8
8
  import hashlib
9
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
@@ -1146,7 +1146,7 @@ class woo(ccxt.async_support.woo):
1146
1146
  self.balance = self.safe_balance(self.balance)
1147
1147
  client.resolve(self.balance, 'balance')
1148
1148
 
1149
- def handle_error_message(self, client: Client, message):
1149
+ def handle_error_message(self, client: Client, message) -> Bool:
1150
1150
  #
1151
1151
  # {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
1152
1152
  #
ccxt/pro/woofipro.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
11
  from ccxt.base.errors import AuthenticationError
@@ -1176,7 +1176,7 @@ class woofipro(ccxt.async_support.woofipro):
1176
1176
  self.balance = self.safe_balance(self.balance)
1177
1177
  client.resolve(self.balance, 'balance')
1178
1178
 
1179
- def handle_error_message(self, client: Client, message):
1179
+ def handle_error_message(self, client: Client, message) -> Bool:
1180
1180
  #
1181
1181
  # {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
1182
1182
  #
ccxt/test/tests_async.py CHANGED
@@ -969,7 +969,7 @@ class testMainClass:
969
969
  'uid': 'uid',
970
970
  'token': 'token',
971
971
  'login': 'login',
972
- 'accountId': 'accountId',
972
+ 'accountId': '12345',
973
973
  'accounts': [{
974
974
  'id': 'myAccount',
975
975
  'code': 'USDT',
ccxt/test/tests_sync.py CHANGED
@@ -966,7 +966,7 @@ class testMainClass:
966
966
  'uid': 'uid',
967
967
  'token': 'token',
968
968
  'login': 'login',
969
- 'accountId': 'accountId',
969
+ 'accountId': '12345',
970
970
  'accounts': [{
971
971
  'id': 'myAccount',
972
972
  'code': 'USDT',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.98
3
+ Version: 4.4.99
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -49,7 +49,7 @@ Requires-Dist: mypy==1.6.1; extra == "type"
49
49
 
50
50
  # CCXT – CryptoCurrency eXchange Trading Library
51
51
 
52
- [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NuGet version](https://img.shields.io/nuget/v/ccxt)](https://www.nuget.org/packages/ccxt) [![GoDoc](https://pkg.go.dev/badge/github.com/ccxt/ccxt/go/v4?utm_source=godoc)](https://godoc.org/github.com/ccxt/ccxt/go/v4) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-106-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Follow CCXT at x.com](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://x.com/ccxt_official)
52
+ [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NuGet version](https://img.shields.io/nuget/v/ccxt)](https://www.nuget.org/packages/ccxt) [![GoDoc](https://pkg.go.dev/badge/github.com/ccxt/ccxt/go/v4?utm_source=godoc)](https://godoc.org/github.com/ccxt/ccxt/go/v4) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-107-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Follow CCXT at x.com](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://x.com/ccxt_official)
53
53
 
54
54
  A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
55
55
 
@@ -101,7 +101,7 @@ Current feature list:
101
101
  | [![woofipro](https://github.com/user-attachments/assets/9ba21b8a-a9c7-4770-b7f1-ce3bcbde68c1)](https://dex.woo.org/en/trade?ref=CCXT) | woofipro | [WOOFI PRO](https://dex.woo.org/en/trade?ref=CCXT) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://orderly.network/docs/build-on-evm/building-on-evm) | ![DEX - Distributed EXchange](https://img.shields.io/badge/DEX-blue.svg "DEX - Distributed EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with WOOFI PRO using CCXT's referral link for a 5% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d5%25&color=orange)](https://dex.woo.org/en/trade?ref=CCXT) |
102
102
 
103
103
  ## Supported Cryptocurrency Exchanges
104
- <!--- init list -->The CCXT library currently supports the following 103 cryptocurrency exchange markets and trading APIs:
104
+ <!--- init list -->The CCXT library currently supports the following 104 cryptocurrency exchange markets and trading APIs:
105
105
 
106
106
  |logo |id |name |ver |type |certified |pro |
107
107
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
@@ -164,6 +164,7 @@ Current feature list:
164
164
  | [![gate](https://github.com/user-attachments/assets/64f988c5-07b6-4652-b5c1-679a6bf67c85)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
165
165
  | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.gemini.com/rest-api) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
166
166
  | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
167
+ | [![hibachi](https://github.com/user-attachments/assets/7301bbb1-4f27-4167-8a55-75f74b14e973)](hibachi.xyz/r/ZBL2YFWIHU) | hibachi | [Hibachi](hibachi.xyz/r/ZBL2YFWIHU) | [![API Version *](https://img.shields.io/badge/*-lightgray)](undefined) | ![DEX - Distributed EXchange](https://img.shields.io/badge/DEX-blue.svg "DEX - Distributed EXchange") | | |
167
168
  | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.hitbtc.com) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
168
169
  | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://apidocs.hollaex.com) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
169
170
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.htx.com.vc/invite/en-us/1h?invite_code=6rmm2223) | htx | [HTX](https://www.htx.com.vc/invite/en-us/1h?invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -269,13 +270,13 @@ console.log(version, Object.keys(exchanges));
269
270
 
270
271
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
271
272
 
272
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.98/dist/ccxt.browser.min.js
273
- * unpkg: https://unpkg.com/ccxt@4.4.98/dist/ccxt.browser.min.js
273
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.99/dist/ccxt.browser.min.js
274
+ * unpkg: https://unpkg.com/ccxt@4.4.99/dist/ccxt.browser.min.js
274
275
 
275
276
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
276
277
 
277
278
  ```HTML
278
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.98/dist/ccxt.browser.min.js"></script>
279
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.99/dist/ccxt.browser.min.js"></script>
279
280
  ```
280
281
 
281
282
  Creates a global `ccxt` object: