ccxt 4.1.84__py2.py3-none-any.whl → 4.1.86__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 (65) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/alpaca.py +1 -1
  3. ccxt/ascendex.py +1 -1
  4. ccxt/async_support/__init__.py +1 -1
  5. ccxt/async_support/alpaca.py +1 -1
  6. ccxt/async_support/ascendex.py +1 -1
  7. ccxt/async_support/base/exchange.py +7 -2
  8. ccxt/async_support/binance.py +1 -1
  9. ccxt/async_support/bingx.py +9 -8
  10. ccxt/async_support/bitget.py +1 -2
  11. ccxt/async_support/bithumb.py +2 -2
  12. ccxt/async_support/bitmart.py +90 -73
  13. ccxt/async_support/bitmex.py +1 -1
  14. ccxt/async_support/bitopro.py +2 -2
  15. ccxt/async_support/bybit.py +2 -4
  16. ccxt/async_support/coinex.py +2 -1
  17. ccxt/async_support/cryptocom.py +2 -2
  18. ccxt/async_support/digifinex.py +119 -103
  19. ccxt/async_support/hitbtc.py +1 -1
  20. ccxt/async_support/htx.py +1 -1
  21. ccxt/async_support/kraken.py +1 -1
  22. ccxt/async_support/krakenfutures.py +2 -2
  23. ccxt/async_support/kucoin.py +1 -5
  24. ccxt/async_support/kucoinfutures.py +0 -3
  25. ccxt/async_support/latoken.py +1 -1
  26. ccxt/async_support/mexc.py +76 -49
  27. ccxt/async_support/okx.py +3 -3
  28. ccxt/async_support/p2b.py +0 -2
  29. ccxt/async_support/poloniex.py +42 -42
  30. ccxt/async_support/probit.py +25 -17
  31. ccxt/async_support/tokocrypto.py +6 -3
  32. ccxt/base/exchange.py +21 -8
  33. ccxt/binance.py +1 -1
  34. ccxt/bingx.py +9 -8
  35. ccxt/bitget.py +1 -2
  36. ccxt/bitmart.py +90 -73
  37. ccxt/bitmex.py +1 -1
  38. ccxt/bybit.py +2 -4
  39. ccxt/coinex.py +2 -1
  40. ccxt/cryptocom.py +2 -2
  41. ccxt/digifinex.py +119 -103
  42. ccxt/hitbtc.py +1 -1
  43. ccxt/htx.py +1 -1
  44. ccxt/kraken.py +1 -1
  45. ccxt/krakenfutures.py +2 -2
  46. ccxt/kucoin.py +1 -5
  47. ccxt/kucoinfutures.py +0 -3
  48. ccxt/latoken.py +1 -1
  49. ccxt/mexc.py +76 -49
  50. ccxt/okx.py +3 -3
  51. ccxt/p2b.py +0 -2
  52. ccxt/poloniex.py +42 -42
  53. ccxt/pro/__init__.py +1 -1
  54. ccxt/pro/bitmart.py +965 -247
  55. ccxt/pro/bitmex.py +200 -2
  56. ccxt/pro/krakenfutures.py +4 -4
  57. ccxt/pro/mexc.py +1 -1
  58. ccxt/pro/poloniex.py +1 -1
  59. ccxt/pro/poloniexfutures.py +3 -3
  60. ccxt/probit.py +25 -17
  61. ccxt/tokocrypto.py +6 -3
  62. {ccxt-4.1.84.dist-info → ccxt-4.1.86.dist-info}/METADATA +6 -5
  63. {ccxt-4.1.84.dist-info → ccxt-4.1.86.dist-info}/RECORD +65 -65
  64. {ccxt-4.1.84.dist-info → ccxt-4.1.86.dist-info}/WHEEL +0 -0
  65. {ccxt-4.1.84.dist-info → ccxt-4.1.86.dist-info}/top_level.txt +0 -0
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.1.84'
25
+ __version__ = '4.1.86'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
ccxt/alpaca.py CHANGED
@@ -492,7 +492,7 @@ class alpaca(Exchange, ImplicitAPI):
492
492
  :param dict [params]: extra parameters specific to the exchange API endpoint
493
493
  :param str [params.loc]: crypto location, default: us
494
494
  :returns dict: A dictionary of `order book structures <https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure>` indexed by market symbols
495
- """
495
+ """
496
496
  self.load_markets()
497
497
  market = self.market(symbol)
498
498
  id = market['id']
ccxt/ascendex.py CHANGED
@@ -1593,7 +1593,7 @@ class ascendex(Exchange, ImplicitAPI):
1593
1593
  create a list of trade orders
1594
1594
  :see: https://ascendex.github.io/ascendex-pro-api/#place-batch-orders
1595
1595
  :see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#place-batch-orders
1596
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1596
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1597
1597
  :param dict [params]: extra parameters specific to the exchange API endpoint
1598
1598
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1599
1599
  :param bool [params.postOnly]: True or False
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.84'
7
+ __version__ = '4.1.86'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -492,7 +492,7 @@ class alpaca(Exchange, ImplicitAPI):
492
492
  :param dict [params]: extra parameters specific to the exchange API endpoint
493
493
  :param str [params.loc]: crypto location, default: us
494
494
  :returns dict: A dictionary of `order book structures <https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure>` indexed by market symbols
495
- """
495
+ """
496
496
  await self.load_markets()
497
497
  market = self.market(symbol)
498
498
  id = market['id']
@@ -1593,7 +1593,7 @@ class ascendex(Exchange, ImplicitAPI):
1593
1593
  create a list of trade orders
1594
1594
  :see: https://ascendex.github.io/ascendex-pro-api/#place-batch-orders
1595
1595
  :see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#place-batch-orders
1596
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1596
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1597
1597
  :param dict [params]: extra parameters specific to the exchange API endpoint
1598
1598
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1599
1599
  :param bool [params.postOnly]: True or False
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.1.84'
5
+ __version__ = '4.1.86'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -370,11 +370,13 @@ class Exchange(BaseExchange):
370
370
 
371
371
  def set_client_session_proxy(self, url):
372
372
  final_proxy = None # set default
373
- httpProxy, httpsProxy = self.check_ws_proxy_settings()
373
+ httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
374
374
  if httpProxy:
375
375
  final_proxy = httpProxy
376
376
  elif httpsProxy:
377
377
  final_proxy = httpsProxy
378
+ elif socksProxy:
379
+ final_proxy = socksProxy
378
380
  if (final_proxy):
379
381
  self.clients[url].proxy = final_proxy
380
382
  else:
@@ -1016,6 +1018,9 @@ class Exchange(BaseExchange):
1016
1018
  async def close_all_positions(self, params={}):
1017
1019
  raise NotSupported(self.id + ' closeAllPositions() is not supported yet')
1018
1020
 
1021
+ async def fetch_l3_order_book(self, symbol: str, limit: Int = None, params={}):
1022
+ raise BadRequest(self.id + ' fetchL3OrderBook() is not supported yet')
1023
+
1019
1024
  async def fetch_deposit_address(self, code: str, params={}):
1020
1025
  if self.has['fetchDepositAddresses']:
1021
1026
  depositAddresses = await self.fetchDepositAddresses([code], params)
@@ -4182,7 +4182,7 @@ class binance(Exchange, ImplicitAPI):
4182
4182
  """
4183
4183
  *contract only* create a list of trade orders
4184
4184
  :see: https://binance-docs.github.io/apidocs/futures/en/#place-multiple-orders-trade
4185
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
4185
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
4186
4186
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4187
4187
  """
4188
4188
  await self.load_markets()
@@ -1722,7 +1722,7 @@ class bingx(Exchange, ImplicitAPI):
1722
1722
  create a list of trade orders
1723
1723
  :see: https://bingx-api.github.io/docs/#/spot/trade-api.html#Batch%20Placing%20Orders
1724
1724
  :see: https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Bulk%20order
1725
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1725
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1726
1726
  :param dict [params]: extra parameters specific to the exchange API endpoint
1727
1727
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1728
1728
  """
@@ -1913,6 +1913,8 @@ class bingx(Exchange, ImplicitAPI):
1913
1913
  positionSide = self.safe_string_2(order, 'positionSide', 'ps')
1914
1914
  marketType = 'spot' if (positionSide is None) else 'swap'
1915
1915
  marketId = self.safe_string_2(order, 'symbol', 's')
1916
+ if market is None:
1917
+ market = self.safe_market(marketId, None, None, marketType)
1916
1918
  symbol = self.safe_symbol(marketId, market, '-', marketType)
1917
1919
  orderId = self.safe_string_2(order, 'orderId', 'i')
1918
1920
  side = self.safe_string_lower_2(order, 'side', 'S')
@@ -2251,15 +2253,14 @@ class bingx(Exchange, ImplicitAPI):
2251
2253
  :param dict [params]: extra parameters specific to the exchange API endpoint
2252
2254
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2253
2255
  """
2254
- if symbol is None:
2255
- raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
2256
2256
  await self.load_markets()
2257
- market = self.market(symbol)
2258
- request = {
2259
- 'symbol': market['id'],
2260
- }
2257
+ market = None
2258
+ request = {}
2259
+ if symbol is not None:
2260
+ market = self.market(symbol)
2261
+ request['symbol'] = market['id']
2261
2262
  response = None
2262
- marketType, query = self.handle_market_type_and_params('fetchOrder', market, params)
2263
+ marketType, query = self.handle_market_type_and_params('fetchOpenOrders', market, params)
2263
2264
  if marketType == 'spot':
2264
2265
  response = await self.spotV1PrivateGetTradeOpenOrders(self.extend(request, query))
2265
2266
  else:
@@ -3554,7 +3554,7 @@ class bitget(Exchange, ImplicitAPI):
3554
3554
  :see: https://bitgetlimited.github.io/apidoc/en/mix/#batch-order
3555
3555
  :see: https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-order
3556
3556
  :see: https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-order
3557
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3557
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3558
3558
  :param dict [params]: extra parameters specific to the api endpoint
3559
3559
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3560
3560
  """
@@ -5572,7 +5572,6 @@ class bitget(Exchange, ImplicitAPI):
5572
5572
  :param str symbol: not used by bitget setPositionMode()
5573
5573
  :param dict [params]: extra parameters specific to the exchange API endpoint
5574
5574
  :returns dict: response from the exchange
5575
- *
5576
5575
  """
5577
5576
  await self.load_markets()
5578
5577
  sandboxMode = self.safe_value(self.options, 'sandboxMode', False)
@@ -903,11 +903,11 @@ class bithumb(Exchange, ImplicitAPI):
903
903
  }
904
904
  return await self.privatePostTradeCancel(self.extend(request, params))
905
905
 
906
- def cancel_unified_order(self, order, params={}):
906
+ async def cancel_unified_order(self, order, params={}):
907
907
  request = {
908
908
  'side': order['side'],
909
909
  }
910
- return self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
910
+ return await self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
911
911
 
912
912
  async def withdraw(self, code: str, amount, address, tag=None, params={}):
913
913
  """
@@ -1308,48 +1308,58 @@ class bitmart(Exchange, ImplicitAPI):
1308
1308
  #
1309
1309
  # public fetchTrades spot( amount = count * price )
1310
1310
  #
1311
- # {
1312
- # "amount": "818.94",
1313
- # "order_time": "1637601839035", # ETH/USDT
1314
- # "price": "4221.99",
1315
- # "count": "0.19397",
1316
- # "type": "buy"
1317
- # }
1311
+ # {
1312
+ # "amount": "818.94",
1313
+ # "order_time": "1637601839035", # ETH/USDT
1314
+ # "price": "4221.99",
1315
+ # "count": "0.19397",
1316
+ # "type": "buy"
1317
+ # }
1318
1318
  #
1319
1319
  # spot: fetchMyTrades
1320
1320
  #
1321
- # {
1322
- # "tradeId":"182342999769370687",
1323
- # "orderId":"183270218784142990",
1324
- # "clientOrderId":"183270218784142990",
1325
- # "symbol":"ADA_USDT",
1326
- # "side":"buy",
1327
- # "orderMode":"spot",
1328
- # "type":"market",
1329
- # "price":"0.245948",
1330
- # "size":"20.71",
1331
- # "notional":"5.09358308",
1332
- # "fee":"0.00509358",
1333
- # "feeCoinName":"USDT",
1334
- # "tradeRole":"taker",
1335
- # "createTime":1695658457836,
1336
- # }
1321
+ # {
1322
+ # "tradeId":"182342999769370687",
1323
+ # "orderId":"183270218784142990",
1324
+ # "clientOrderId":"183270218784142990",
1325
+ # "symbol":"ADA_USDT",
1326
+ # "side":"buy",
1327
+ # "orderMode":"spot",
1328
+ # "type":"market",
1329
+ # "price":"0.245948",
1330
+ # "size":"20.71",
1331
+ # "notional":"5.09358308",
1332
+ # "fee":"0.00509358",
1333
+ # "feeCoinName":"USDT",
1334
+ # "tradeRole":"taker",
1335
+ # "createTime":1695658457836,
1336
+ # }
1337
1337
  #
1338
1338
  # swap: fetchMyTrades
1339
1339
  #
1340
- # {
1341
- # "order_id": "230930336848609",
1342
- # "trade_id": "6212604014",
1343
- # "symbol": "BTCUSDT",
1344
- # "side": 3,
1345
- # "price": "26910.4",
1346
- # "vol": "1",
1347
- # "exec_type": "Taker",
1348
- # "profit": False,
1349
- # "create_time": 1695961596692,
1350
- # "realised_profit": "-0.0003",
1351
- # "paid_fees": "0.01614624"
1352
- # }
1340
+ # {
1341
+ # "order_id": "230930336848609",
1342
+ # "trade_id": "6212604014",
1343
+ # "symbol": "BTCUSDT",
1344
+ # "side": 3,
1345
+ # "price": "26910.4",
1346
+ # "vol": "1",
1347
+ # "exec_type": "Taker",
1348
+ # "profit": False,
1349
+ # "create_time": 1695961596692,
1350
+ # "realised_profit": "-0.0003",
1351
+ # "paid_fees": "0.01614624"
1352
+ # }
1353
+ #
1354
+ # ws swap
1355
+ #
1356
+ # {
1357
+ # 'fee': '-0.000044502',
1358
+ # 'feeCcy': 'USDT',
1359
+ # 'fillPrice': '74.17',
1360
+ # 'fillQty': '1',
1361
+ # 'lastTradeID': 6802340762
1362
+ # }
1353
1363
  #
1354
1364
  timestamp = self.safe_integer_n(trade, ['order_time', 'createTime', 'create_time'])
1355
1365
  isPublicTrade = ('order_time' in trade)
@@ -1362,7 +1372,7 @@ class bitmart(Exchange, ImplicitAPI):
1362
1372
  cost = self.safe_string(trade, 'amount')
1363
1373
  side = self.safe_string(trade, 'type')
1364
1374
  else:
1365
- amount = self.safe_string_2(trade, 'size', 'vol')
1375
+ amount = self.safe_string_n(trade, ['size', 'vol', 'fillQty'])
1366
1376
  cost = self.safe_string(trade, 'notional')
1367
1377
  type = self.safe_string(trade, 'type')
1368
1378
  side = self.parse_order_side(self.safe_string(trade, 'side'))
@@ -1381,14 +1391,14 @@ class bitmart(Exchange, ImplicitAPI):
1381
1391
  }
1382
1392
  return self.safe_trade({
1383
1393
  'info': trade,
1384
- 'id': self.safe_string_2(trade, 'tradeId', 'trade_id'),
1394
+ 'id': self.safe_string_n(trade, ['tradeId', 'trade_id', 'lastTradeID']),
1385
1395
  'order': self.safe_string_2(trade, 'orderId', 'order_id'),
1386
1396
  'timestamp': timestamp,
1387
1397
  'datetime': self.iso8601(timestamp),
1388
1398
  'symbol': market['symbol'],
1389
1399
  'type': type,
1390
1400
  'side': side,
1391
- 'price': self.safe_string(trade, 'price'),
1401
+ 'price': self.safe_string_2(trade, 'price', 'fillPrice'),
1392
1402
  'amount': amount,
1393
1403
  'cost': cost,
1394
1404
  'takerOrMaker': self.safe_string_lower_2(trade, 'tradeRole', 'exec_type'),
@@ -1439,38 +1449,45 @@ class bitmart(Exchange, ImplicitAPI):
1439
1449
  def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
1440
1450
  #
1441
1451
  # spot
1442
- #
1443
- # [
1444
- # "1699512060", # timestamp
1445
- # "36746.49", # open
1446
- # "36758.71", # high
1447
- # "36736.13", # low
1448
- # "36755.99", # close
1449
- # "2.83965", # base volume
1450
- # "104353.57" # quote volume
1451
- # ]
1452
+ # [
1453
+ # "1699512060", # timestamp
1454
+ # "36746.49", # open
1455
+ # "36758.71", # high
1456
+ # "36736.13", # low
1457
+ # "36755.99", # close
1458
+ # "2.83965", # base volume
1459
+ # "104353.57" # quote volume
1460
+ # ]
1452
1461
  #
1453
1462
  # swap
1454
- #
1455
- # {
1456
- # "low_price": "20090.3",
1457
- # "high_price": "20095.5",
1458
- # "open_price": "20092.6",
1459
- # "close_price": "20091.4",
1460
- # "volume": "8748",
1461
- # "timestamp": 1665002281
1462
- # }
1463
+ # {
1464
+ # "low_price": "20090.3",
1465
+ # "high_price": "20095.5",
1466
+ # "open_price": "20092.6",
1467
+ # "close_price": "20091.4",
1468
+ # "volume": "8748",
1469
+ # "timestamp": 1665002281
1470
+ # }
1463
1471
  #
1464
1472
  # ws
1465
- #
1466
- # [
1467
- # 1631056350, # timestamp
1468
- # "46532.83", # open
1469
- # "46555.71", # high
1470
- # "46511.41", # low
1471
- # "46555.71", # close
1472
- # "0.25", # volume
1473
- # ]
1473
+ # [
1474
+ # 1631056350, # timestamp
1475
+ # "46532.83", # open
1476
+ # "46555.71", # high
1477
+ # "46511.41", # low
1478
+ # "46555.71", # close
1479
+ # "0.25", # volume
1480
+ # ]
1481
+ #
1482
+ # ws swap
1483
+ # {
1484
+ # "symbol":"BTCUSDT",
1485
+ # "o":"146.24",
1486
+ # "h":"146.24",
1487
+ # "l":"146.24",
1488
+ # "c":"146.24",
1489
+ # "v":"146"
1490
+ # }
1474
1491
  #
1475
1492
  if isinstance(ohlcv, list):
1476
1493
  return [
@@ -1483,12 +1500,12 @@ class bitmart(Exchange, ImplicitAPI):
1483
1500
  ]
1484
1501
  else:
1485
1502
  return [
1486
- self.safe_timestamp(ohlcv, 'timestamp'),
1487
- self.safe_number(ohlcv, 'open_price'),
1488
- self.safe_number(ohlcv, 'high_price'),
1489
- self.safe_number(ohlcv, 'low_price'),
1490
- self.safe_number(ohlcv, 'close_price'),
1491
- self.safe_number(ohlcv, 'volume'),
1503
+ self.safe_timestamp_2(ohlcv, 'timestamp', 'ts'),
1504
+ self.safe_number_2(ohlcv, 'open_price', 'o'),
1505
+ self.safe_number_2(ohlcv, 'high_price', 'h'),
1506
+ self.safe_number_2(ohlcv, 'low_price', 'l'),
1507
+ self.safe_number_2(ohlcv, 'close_price', 'c'),
1508
+ self.safe_number_2(ohlcv, 'volume', 'v'),
1492
1509
  ]
1493
1510
 
1494
1511
  async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
@@ -2118,7 +2118,7 @@ class bitmex(Exchange, ImplicitAPI):
2118
2118
  datetime = self.safe_string(position, 'timestamp')
2119
2119
  crossMargin = self.safe_value(position, 'crossMargin')
2120
2120
  marginMode = 'cross' if (crossMargin is True) else 'isolated'
2121
- notionalString = Precise.string_abs(self.safe_string(position, 'foreignNotional', 'homeNotional'))
2121
+ notionalString = Precise.string_abs(self.safe_string_2(position, 'foreignNotional', 'homeNotional'))
2122
2122
  settleCurrencyCode = self.safe_string(market, 'settle')
2123
2123
  maintenanceMargin = self.convert_to_real_amount(settleCurrencyCode, self.safe_string(position, 'maintMargin'))
2124
2124
  unrealisedPnl = self.convert_to_real_amount(settleCurrencyCode, self.safe_string(position, 'unrealisedPnl'))
@@ -1191,11 +1191,11 @@ class bitopro(Exchange, ImplicitAPI):
1191
1191
  #
1192
1192
  return self.parse_orders(orders, market, since, limit)
1193
1193
 
1194
- def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1194
+ async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1195
1195
  request = {
1196
1196
  'statusKind': 'OPEN',
1197
1197
  }
1198
- return self.fetch_orders(symbol, since, limit, self.extend(request, params))
1198
+ return await self.fetch_orders(symbol, since, limit, self.extend(request, params))
1199
1199
 
1200
1200
  async def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1201
1201
  """
@@ -3486,7 +3486,7 @@ class bybit(Exchange, ImplicitAPI):
3486
3486
  """
3487
3487
  create a list of trade orders
3488
3488
  :see: https://bybit-exchange.github.io/docs/v5/order/batch-place
3489
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3489
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3490
3490
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3491
3491
  """
3492
3492
  await self.load_markets()
@@ -4416,7 +4416,6 @@ class bybit(Exchange, ImplicitAPI):
4416
4416
  :param int [limit]: the maximum number of trades to retrieve
4417
4417
  :param dict [params]: extra parameters specific to the exchange API endpoint
4418
4418
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
4419
- *
4420
4419
  """
4421
4420
  request = {}
4422
4421
  clientOrderId = self.safe_string_2(params, 'clientOrderId', 'orderLinkId')
@@ -4680,12 +4679,11 @@ class bybit(Exchange, ImplicitAPI):
4680
4679
  :param int [limit]: the maximum number of deposits structures to retrieve, default = 50, max = 50
4681
4680
  :param dict [params]: extra parameters specific to the exchange API endpoint
4682
4681
  :param int [params.until]: the latest time in ms to fetch deposits for, default = 30 days after since
4683
- *
4684
4682
  * EXCHANGE SPECIFIC PARAMETERS
4685
4683
  :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
4686
4684
  :param str [params.cursor]: used for pagination
4687
4685
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
4688
- """
4686
+ """
4689
4687
  await self.load_markets()
4690
4688
  paginate = False
4691
4689
  paginate, params = self.handle_option_and_params(params, 'fetchDeposits', 'paginate')
@@ -43,6 +43,7 @@ class coinex(Exchange, ImplicitAPI):
43
43
  # 20 per 2 seconds => 10 per second => weight = 40
44
44
  'rateLimit': 2.5,
45
45
  'pro': True,
46
+ 'certified': True,
46
47
  'has': {
47
48
  'CORS': None,
48
49
  'spot': True,
@@ -2142,7 +2143,7 @@ class coinex(Exchange, ImplicitAPI):
2142
2143
  """
2143
2144
  create a list of trade orders(all orders should be of the same symbol)
2144
2145
  :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot003_trade002_batch_limit_orders
2145
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2146
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2146
2147
  :param dict [params]: extra parameters specific to the api endpoint
2147
2148
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2148
2149
  """
@@ -1103,7 +1103,7 @@ class cryptocom(Exchange, ImplicitAPI):
1103
1103
  create a list of trade orders
1104
1104
  :see: https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-create-order-list-list
1105
1105
  :see: https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-create-order-list-oco
1106
- :param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1106
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1107
1107
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1108
1108
  """
1109
1109
  await self.load_markets()
@@ -2074,7 +2074,7 @@ class cryptocom(Exchange, ImplicitAPI):
2074
2074
  * @ignore
2075
2075
  marginMode specified by params["marginMode"], self.options["marginMode"], self.options["defaultMarginMode"], params["margin"] = True or self.options["defaultType"] = 'margin'
2076
2076
  :param dict [params]: extra parameters specific to the exchange API endpoint
2077
- :returns array: the marginMode in lowercase
2077
+ :returns Array: the marginMode in lowercase
2078
2078
  """
2079
2079
  defaultType = self.safe_string(self.options, 'defaultType')
2080
2080
  isMargin = self.safe_value(params, 'margin', False)