ccxt 4.4.50__py2.py3-none-any.whl → 4.4.52__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 (59) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/alpaca.py +1 -1
  3. ccxt/async_support/__init__.py +1 -1
  4. ccxt/async_support/alpaca.py +1 -1
  5. ccxt/async_support/base/exchange.py +1 -1
  6. ccxt/async_support/binance.py +31 -16
  7. ccxt/async_support/blofin.py +4 -0
  8. ccxt/async_support/coinex.py +1 -1
  9. ccxt/async_support/coinmetro.py +16 -3
  10. ccxt/async_support/deribit.py +18 -3
  11. ccxt/async_support/gate.py +1 -1
  12. ccxt/async_support/hollaex.py +2 -1
  13. ccxt/async_support/htx.py +5 -3
  14. ccxt/async_support/kucoin.py +2 -2
  15. ccxt/async_support/mexc.py +21 -6
  16. ccxt/async_support/onetrading.py +1 -1
  17. ccxt/async_support/paradex.py +1 -1
  18. ccxt/async_support/probit.py +9 -7
  19. ccxt/async_support/vertex.py +65 -2
  20. ccxt/async_support/wavesexchange.py +73 -0
  21. ccxt/async_support/wazirx.py +59 -3
  22. ccxt/async_support/whitebit.py +69 -0
  23. ccxt/async_support/xt.py +112 -0
  24. ccxt/async_support/yobit.py +56 -0
  25. ccxt/async_support/zaif.py +55 -0
  26. ccxt/async_support/zonda.py +58 -0
  27. ccxt/base/exchange.py +32 -4
  28. ccxt/binance.py +31 -16
  29. ccxt/blofin.py +4 -0
  30. ccxt/coinex.py +1 -1
  31. ccxt/coinmetro.py +16 -3
  32. ccxt/deribit.py +18 -3
  33. ccxt/gate.py +1 -1
  34. ccxt/hollaex.py +2 -1
  35. ccxt/htx.py +5 -3
  36. ccxt/kucoin.py +2 -2
  37. ccxt/mexc.py +21 -6
  38. ccxt/onetrading.py +1 -1
  39. ccxt/paradex.py +1 -1
  40. ccxt/pro/__init__.py +1 -1
  41. ccxt/pro/binance.py +2 -0
  42. ccxt/pro/blofin.py +8 -0
  43. ccxt/pro/coinex.py +4 -1
  44. ccxt/probit.py +9 -7
  45. ccxt/test/tests_async.py +0 -1
  46. ccxt/test/tests_sync.py +0 -1
  47. ccxt/vertex.py +65 -2
  48. ccxt/wavesexchange.py +73 -0
  49. ccxt/wazirx.py +59 -3
  50. ccxt/whitebit.py +69 -0
  51. ccxt/xt.py +112 -0
  52. ccxt/yobit.py +56 -0
  53. ccxt/zaif.py +55 -0
  54. ccxt/zonda.py +58 -0
  55. {ccxt-4.4.50.dist-info → ccxt-4.4.52.dist-info}/METADATA +18 -18
  56. {ccxt-4.4.50.dist-info → ccxt-4.4.52.dist-info}/RECORD +59 -59
  57. {ccxt-4.4.50.dist-info → ccxt-4.4.52.dist-info}/WHEEL +1 -1
  58. {ccxt-4.4.50.dist-info → ccxt-4.4.52.dist-info}/LICENSE.txt +0 -0
  59. {ccxt-4.4.50.dist-info → ccxt-4.4.52.dist-info}/top_level.txt +0 -0
ccxt/whitebit.py CHANGED
@@ -291,6 +291,75 @@ class whitebit(Exchange, ImplicitAPI):
291
291
  'defaultType': 'spot',
292
292
  'brokerId': 'ccxt',
293
293
  },
294
+ 'features': {
295
+ 'default': {
296
+ 'sandbox': False,
297
+ 'createOrder': {
298
+ 'marginMode': True,
299
+ 'triggerPrice': True,
300
+ 'triggerDirection': False,
301
+ 'triggerPriceType': None,
302
+ 'stopLossPrice': False, # todo
303
+ 'takeProfitPrice': False, # todo
304
+ 'attachedStopLossTakeProfit': None,
305
+ 'timeInForce': {
306
+ 'IOC': True, # todo
307
+ 'FOK': False,
308
+ 'PO': True, # todo
309
+ 'GTD': False,
310
+ },
311
+ 'hedged': False,
312
+ 'trailing': False,
313
+ 'leverage': False,
314
+ 'marketBuyByCost': True,
315
+ 'marketBuyRequiresPrice': False,
316
+ 'selfTradePrevention': False,
317
+ 'iceberg': False,
318
+ },
319
+ 'createOrders': None,
320
+ 'fetchMyTrades': {
321
+ 'marginMode': False,
322
+ 'limit': 100,
323
+ 'daysBack': None,
324
+ 'untilDays': None,
325
+ },
326
+ 'fetchOrder': None,
327
+ 'fetchOpenOrders': {
328
+ 'marginMode': False,
329
+ 'limit': 100,
330
+ 'trigger': False,
331
+ 'trailing': False,
332
+ },
333
+ 'fetchOrders': None, # todo
334
+ 'fetchClosedOrders': {
335
+ 'marginMode': False,
336
+ 'limit': 100,
337
+ 'daysBack': None,
338
+ 'daysBackCanceled': None,
339
+ 'untilDays': None,
340
+ 'trigger': False,
341
+ 'trailing': False,
342
+ },
343
+ 'fetchOHLCV': {
344
+ 'limit': 1440,
345
+ },
346
+ },
347
+ 'spot': {
348
+ 'extends': 'default',
349
+ },
350
+ 'swap': {
351
+ 'linear': {
352
+ 'extends': 'default',
353
+ },
354
+ 'inverse': {
355
+ 'extends': 'default',
356
+ },
357
+ },
358
+ 'future': {
359
+ 'linear': None,
360
+ 'inverse': None,
361
+ },
362
+ },
294
363
  'precisionMode': TICK_SIZE,
295
364
  'exceptions': {
296
365
  'exact': {
ccxt/xt.py CHANGED
@@ -687,6 +687,118 @@ class xt(Exchange, ImplicitAPI):
687
687
  'createMarketBuyOrderRequiresPrice': True,
688
688
  'recvWindow': '5000', # in milliseconds, spot only
689
689
  },
690
+ 'features': {
691
+ 'default': {
692
+ 'sandbox': False,
693
+ 'createOrder': {
694
+ 'marginMode': False,
695
+ 'triggerPrice': False,
696
+ 'triggerDirection': False,
697
+ 'triggerPriceType': None,
698
+ 'stopLossPrice': False,
699
+ 'takeProfitPrice': False,
700
+ 'attachedStopLossTakeProfit': None,
701
+ 'timeInForce': {
702
+ 'IOC': True,
703
+ 'FOK': True,
704
+ 'PO': True,
705
+ 'GTD': False,
706
+ },
707
+ 'hedged': False,
708
+ 'trailing': False,
709
+ 'leverage': False,
710
+ 'marketBuyByCost': True,
711
+ 'marketBuyRequiresPrice': False,
712
+ 'selfTradePrevention': False,
713
+ 'iceberg': False,
714
+ },
715
+ 'createOrders': None,
716
+ 'fetchMyTrades': {
717
+ 'marginMode': True,
718
+ 'limit': 100,
719
+ 'daysBack': 100000, # todo
720
+ 'untilDays': 100000, # todo
721
+ 'marketType': True,
722
+ 'subType': True,
723
+ },
724
+ 'fetchOrder': {
725
+ 'marginMode': False,
726
+ 'trigger': True, # todo TPSL kind
727
+ 'trailing': False,
728
+ 'marketType': True,
729
+ 'subType': True,
730
+ },
731
+ 'fetchOpenOrders': {
732
+ 'marginMode': True,
733
+ 'limit': 100,
734
+ 'trigger': True, # todo TPSL
735
+ 'trailing': False,
736
+ 'marketType': True,
737
+ 'subType': True,
738
+ },
739
+ 'fetchOrders': {
740
+ 'marginMode': True,
741
+ 'limit': 100,
742
+ 'daysBack': 100000, # todo
743
+ 'untilDays': 100000, # todo
744
+ 'trigger': True, # todo TPSL
745
+ 'trailing': False,
746
+ 'marketType': True,
747
+ 'subType': True,
748
+ },
749
+ 'fetchClosedOrders': {
750
+ 'marginMode': True,
751
+ 'limit': 100,
752
+ 'daysBack': 100000, # todo
753
+ 'daysBackCanceled': 1, # todo
754
+ 'untilDays': 100000, # todo
755
+ 'trigger': True, # todo TPSL
756
+ 'trailing': False,
757
+ 'marketType': True,
758
+ 'subType': True,
759
+ },
760
+ 'fetchOHLCV': {
761
+ 'limit': 1000, # todo for derivatives
762
+ },
763
+ },
764
+ 'spot': {
765
+ 'extends': 'default',
766
+ },
767
+ 'forDerivatives': {
768
+ 'extends': 'default',
769
+ 'createOrder': {
770
+ 'triggerPrice': True,
771
+ # todo
772
+ 'triggerPriceType': {
773
+ 'last': True,
774
+ 'mark': True,
775
+ 'index': True,
776
+ },
777
+ 'stopLossPrice': True,
778
+ 'takeProfitPrice': True,
779
+ },
780
+ 'fetchMyTrades': {
781
+ 'daysBack': None,
782
+ 'untilDays': None,
783
+ },
784
+ },
785
+ 'swap': {
786
+ 'linear': {
787
+ 'extends': 'forDerivatives',
788
+ },
789
+ 'inverse': {
790
+ 'extends': 'forDerivatives',
791
+ },
792
+ },
793
+ 'future': {
794
+ 'linear': {
795
+ 'extends': 'forDerivatives',
796
+ },
797
+ 'inverse': {
798
+ 'extends': 'forDerivatives',
799
+ },
800
+ },
801
+ },
690
802
  })
691
803
 
692
804
  def nonce(self):
ccxt/yobit.py CHANGED
@@ -319,6 +319,62 @@ class yobit(Exchange, ImplicitAPI):
319
319
  'Rate Limited': RateLimitExceeded,
320
320
  },
321
321
  },
322
+ 'features': {
323
+ 'spot': {
324
+ 'sandbox': False,
325
+ 'createOrder': {
326
+ 'marginMode': False,
327
+ 'triggerPrice': False,
328
+ 'triggerDirection': False,
329
+ 'triggerPriceType': None,
330
+ 'stopLossPrice': False,
331
+ 'takeProfitPrice': False,
332
+ 'attachedStopLossTakeProfit': None,
333
+ 'timeInForce': {
334
+ 'IOC': False,
335
+ 'FOK': False,
336
+ 'PO': False,
337
+ 'GTD': False,
338
+ },
339
+ 'hedged': False,
340
+ 'trailing': False,
341
+ 'leverage': False,
342
+ 'marketBuyByCost': False,
343
+ 'marketBuyRequiresPrice': False,
344
+ 'selfTradePrevention': False,
345
+ 'iceberg': False,
346
+ },
347
+ 'createOrders': None,
348
+ 'fetchMyTrades': {
349
+ 'marginMode': False,
350
+ 'limit': 1000,
351
+ 'daysBack': 100000, # todo
352
+ 'untilDays': 100000, # todo
353
+ },
354
+ 'fetchOrder': {
355
+ 'marginMode': False,
356
+ 'trigger': False,
357
+ 'trailing': False,
358
+ },
359
+ 'fetchOpenOrders': {
360
+ 'marginMode': False,
361
+ 'limit': None,
362
+ 'trigger': False,
363
+ 'trailing': False,
364
+ },
365
+ 'fetchOrders': None,
366
+ 'fetchClosedOrders': None,
367
+ 'fetchOHLCV': None,
368
+ },
369
+ 'swap': {
370
+ 'linear': None,
371
+ 'inverse': None,
372
+ },
373
+ 'future': {
374
+ 'linear': None,
375
+ 'inverse': None,
376
+ },
377
+ },
322
378
  'orders': {}, # orders cache / emulation
323
379
  })
324
380
 
ccxt/zaif.py CHANGED
@@ -133,6 +133,61 @@ class zaif(Exchange, ImplicitAPI):
133
133
  },
134
134
  'options': {
135
135
  },
136
+ 'features': {
137
+ 'spot': {
138
+ 'sandbox': False,
139
+ 'createOrder': {
140
+ 'marginMode': True, # todo
141
+ 'triggerPrice': True, # todo implement
142
+ 'triggerDirection': False,
143
+ 'triggerPriceType': None,
144
+ 'stopLossPrice': False, # todo
145
+ 'takeProfitPrice': False, # todo
146
+ 'attachedStopLossTakeProfit': None,
147
+ 'timeInForce': {
148
+ 'IOC': False,
149
+ 'FOK': False,
150
+ 'PO': False,
151
+ 'GTD': False,
152
+ },
153
+ 'hedged': False,
154
+ 'trailing': False,
155
+ 'leverage': True, # todo implement
156
+ 'marketBuyByCost': False,
157
+ 'marketBuyRequiresPrice': False,
158
+ 'selfTradePrevention': False,
159
+ 'iceberg': False,
160
+ },
161
+ 'createOrders': None,
162
+ 'fetchMyTrades': None, # todo
163
+ 'fetchOrder': None,
164
+ 'fetchOpenOrders': {
165
+ 'marginMode': True, # todo
166
+ 'limit': None,
167
+ 'trigger': False,
168
+ 'trailing': False,
169
+ },
170
+ 'fetchOrders': None, # todo
171
+ 'fetchClosedOrders': {
172
+ 'marginMode': True, # todo
173
+ 'limit': 1000,
174
+ 'daysBack': 100000, # todo
175
+ 'daysBackCanceled': 1, # todo
176
+ 'untilDays': 100000, # todo
177
+ 'trigger': False,
178
+ 'trailing': False,
179
+ },
180
+ 'fetchOHLCV': None,
181
+ },
182
+ 'swap': {
183
+ 'linear': None,
184
+ 'inverse': None,
185
+ },
186
+ 'future': {
187
+ 'linear': None,
188
+ 'inverse': None,
189
+ },
190
+ },
136
191
  'precisionMode': TICK_SIZE,
137
192
  'exceptions': {
138
193
  'exact': {
ccxt/zonda.py CHANGED
@@ -303,6 +303,60 @@ class zonda(Exchange, ImplicitAPI):
303
303
  'fillResponseFromRequest': True,
304
304
  },
305
305
  },
306
+ 'features': {
307
+ 'spot': {
308
+ 'sandbox': False,
309
+ 'createOrder': {
310
+ 'marginMode': False,
311
+ 'triggerPrice': True, # todo remove
312
+ 'triggerDirection': False,
313
+ 'triggerPriceType': None,
314
+ 'stopLossPrice': False, # todo
315
+ 'takeProfitPrice': False, # todo
316
+ 'attachedStopLossTakeProfit': None,
317
+ 'timeInForce': {
318
+ 'IOC': True,
319
+ 'FOK': True,
320
+ 'PO': True,
321
+ 'GTD': False,
322
+ },
323
+ 'hedged': False,
324
+ 'trailing': False,
325
+ 'leverage': False,
326
+ 'marketBuyByCost': True,
327
+ 'marketBuyRequiresPrice': False,
328
+ 'selfTradePrevention': False,
329
+ 'iceberg': False,
330
+ },
331
+ 'createOrders': None,
332
+ 'fetchMyTrades': {
333
+ 'marginMode': False,
334
+ 'limit': None,
335
+ 'daysBack': 100000, # todo
336
+ 'untilDays': 100000, # todo
337
+ },
338
+ 'fetchOrder': None,
339
+ 'fetchOpenOrders': {
340
+ 'marginMode': False,
341
+ 'limit': 100,
342
+ 'trigger': False,
343
+ 'trailing': False,
344
+ },
345
+ 'fetchOrders': None,
346
+ 'fetchClosedOrders': None, # todo
347
+ 'fetchOHLCV': {
348
+ 'limit': None,
349
+ },
350
+ },
351
+ 'swap': {
352
+ 'linear': None,
353
+ 'inverse': None,
354
+ },
355
+ 'future': {
356
+ 'linear': None,
357
+ 'inverse': None,
358
+ },
359
+ },
306
360
  'precisionMode': TICK_SIZE,
307
361
  'exceptions': {
308
362
  '400': ExchangeError, # At least one parameter wasn't set
@@ -455,6 +509,7 @@ class zonda(Exchange, ImplicitAPI):
455
509
  """
456
510
  self.load_markets()
457
511
  request: dict = {}
512
+ # todo pair
458
513
  response = self.v1_01PrivateGetTradingOffer(self.extend(request, params))
459
514
  items = self.safe_list(response, 'items', [])
460
515
  return self.parse_orders(items, None, since, limit, {'status': 'open'})
@@ -1364,6 +1419,9 @@ class zonda(Exchange, ImplicitAPI):
1364
1419
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1365
1420
  """
1366
1421
  create a trade order
1422
+
1423
+ https://docs.zondacrypto.exchange/reference/new-order
1424
+
1367
1425
  :param str symbol: unified symbol of the market to create an order in
1368
1426
  :param str type: 'market' or 'limit'
1369
1427
  :param str side: 'buy' or 'sell'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.50
3
+ Version: 4.4.52
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
@@ -12,7 +12,6 @@ Project-URL: Discord, https://discord.gg/ccxt
12
12
  Project-URL: Twitter, https://twitter.com/ccxt_official
13
13
  Project-URL: Funding, https://opencollective.com/ccxt
14
14
  Keywords: algorithmic,algotrading,altcoin,altcoins,api,arbitrage,real-time,realtime,backtest,backtesting,bitcoin,bot,btc,cny,coin,coins,crypto,cryptocurrency,crypto currency,crypto market,currency,currencies,darkcoin,dash,digital currency,doge,dogecoin,e-commerce,etc,eth,ether,ethereum,exchange,exchanges,eur,framework,invest,investing,investor,library,light,litecoin,ltc,market,market data,markets,merchandise,merchant,minimal,ohlcv,order,orderbook,order book,price,price data,pricefeed,private,public,ripple,strategy,ticker,tickers,toolkit,trade,trader,trading,usd,volume,websocket,websockets,web socket,web sockets,ws,xbt,xrp,zec,zerocoin
15
- Platform: UNKNOWN
16
15
  Classifier: Development Status :: 4 - Beta
17
16
  Classifier: Intended Audience :: Developers
18
17
  Classifier: Intended Audience :: Financial and Insurance Industry
@@ -34,19 +33,19 @@ Classifier: Operating System :: OS Independent
34
33
  Classifier: Environment :: Console
35
34
  Description-Content-Type: text/markdown
36
35
  License-File: LICENSE.txt
37
- Requires-Dist: setuptools (>=60.9.0)
38
- Requires-Dist: certifi (>=2018.1.18)
39
- Requires-Dist: requests (>=2.18.4)
40
- Requires-Dist: cryptography (>=2.6.1)
41
- Requires-Dist: typing-extensions (>=4.4.0)
42
- Requires-Dist: aiohttp (<=3.10.11) ; python_version>="3.5.2"
43
- Requires-Dist: aiodns (>=1.1.1) ; python_version>="3.5.2"
44
- Requires-Dist: yarl (>=1.7.2) ; python_version>="3.5.2"
36
+ Requires-Dist: setuptools>=60.9.0
37
+ Requires-Dist: certifi>=2018.1.18
38
+ Requires-Dist: requests>=2.18.4
39
+ Requires-Dist: cryptography>=2.6.1
40
+ Requires-Dist: typing-extensions>=4.4.0
41
+ Requires-Dist: aiohttp<=3.10.11; python_version >= "3.5.2"
42
+ Requires-Dist: aiodns>=1.1.1; python_version >= "3.5.2"
43
+ Requires-Dist: yarl>=1.7.2; python_version >= "3.5.2"
45
44
  Provides-Extra: qa
46
- Requires-Dist: ruff (==0.0.292) ; extra == 'qa'
47
- Requires-Dist: tox (>=4.8.0) ; extra == 'qa'
45
+ Requires-Dist: ruff==0.0.292; extra == "qa"
46
+ Requires-Dist: tox>=4.8.0; extra == "qa"
48
47
  Provides-Extra: type
49
- Requires-Dist: mypy (==1.6.1) ; extra == 'type'
48
+ Requires-Dist: mypy==1.6.1; extra == "type"
50
49
 
51
50
  # CCXT – CryptoCurrency eXchange Trading Library
52
51
 
@@ -71,6 +70,9 @@ Current feature list:
71
70
 
72
71
  ## Sponsored Promotion
73
72
 
73
+ [![Gate-3rd-Trading-Carnival](https://github.com/user-attachments/assets/6cbb4055-97a8-4985-8c55-0056b4a8612c)](https://www.gate.io/activities/ccxt-trading-competition)
74
+
75
+
74
76
  ## See Also
75
77
 
76
78
  - <sub>[![TabTrader](https://user-images.githubusercontent.com/1294454/66755907-9c3e8880-eea1-11e9-846e-0bff349ceb87.png)](https://tab-trader.com/?utm_source=ccxt)</sub> **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** – trading on all exchanges in one app. Available on **[Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt)** and **[iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8)**!
@@ -276,13 +278,13 @@ console.log(version, Object.keys(exchanges));
276
278
 
277
279
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
278
280
 
279
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.50/dist/ccxt.browser.min.js
280
- * unpkg: https://unpkg.com/ccxt@4.4.50/dist/ccxt.browser.min.js
281
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js
282
+ * unpkg: https://unpkg.com/ccxt@4.4.52/dist/ccxt.browser.min.js
281
283
 
282
284
  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.
283
285
 
284
286
  ```HTML
285
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.50/dist/ccxt.browser.min.js"></script>
287
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js"></script>
286
288
  ```
287
289
 
288
290
  Creates a global `ccxt` object:
@@ -642,5 +644,3 @@ Thank you!
642
644
  ## Contact Us
643
645
 
644
646
  For business inquiries: info@ccxt.trade
645
-
646
-