ccxt 4.4.90__py2.py3-none-any.whl → 4.4.91__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 (57) hide show
  1. ccxt/__init__.py +1 -3
  2. ccxt/async_support/__init__.py +1 -3
  3. ccxt/async_support/base/exchange.py +6 -3
  4. ccxt/async_support/base/ws/client.py +173 -64
  5. ccxt/async_support/base/ws/future.py +23 -50
  6. ccxt/async_support/binance.py +1 -1
  7. ccxt/async_support/bitmex.py +2 -1
  8. ccxt/async_support/cex.py +61 -0
  9. ccxt/async_support/cryptocom.py +17 -2
  10. ccxt/async_support/cryptomus.py +1 -1
  11. ccxt/async_support/exmo.py +14 -7
  12. ccxt/async_support/gate.py +2 -2
  13. ccxt/async_support/hyperliquid.py +104 -53
  14. ccxt/async_support/kraken.py +26 -1
  15. ccxt/async_support/mexc.py +1 -0
  16. ccxt/async_support/modetrade.py +2 -2
  17. ccxt/async_support/paradex.py +1 -1
  18. ccxt/base/exchange.py +8 -5
  19. ccxt/binance.py +1 -1
  20. ccxt/bitmex.py +2 -1
  21. ccxt/cex.py +61 -0
  22. ccxt/cryptocom.py +17 -2
  23. ccxt/cryptomus.py +1 -1
  24. ccxt/exmo.py +13 -7
  25. ccxt/gate.py +2 -2
  26. ccxt/hyperliquid.py +104 -53
  27. ccxt/kraken.py +26 -1
  28. ccxt/mexc.py +1 -0
  29. ccxt/modetrade.py +2 -2
  30. ccxt/paradex.py +1 -1
  31. ccxt/pro/__init__.py +1 -1
  32. ccxt/pro/bitstamp.py +1 -1
  33. ccxt/pro/bybit.py +6 -136
  34. ccxt/pro/kraken.py +246 -258
  35. ccxt/pro/mexc.py +0 -1
  36. {ccxt-4.4.90.dist-info → ccxt-4.4.91.dist-info}/METADATA +6 -7
  37. {ccxt-4.4.90.dist-info → ccxt-4.4.91.dist-info}/RECORD +40 -57
  38. ccxt/abstract/coinlist.py +0 -57
  39. ccxt/async_support/base/ws/aiohttp_client.py +0 -147
  40. ccxt/async_support/bitcoincom.py +0 -18
  41. ccxt/async_support/bitfinex1.py +0 -1711
  42. ccxt/async_support/bitpanda.py +0 -17
  43. ccxt/async_support/coinlist.py +0 -2542
  44. ccxt/async_support/poloniexfutures.py +0 -1875
  45. ccxt/bitcoincom.py +0 -18
  46. ccxt/bitfinex1.py +0 -1710
  47. ccxt/bitpanda.py +0 -17
  48. ccxt/coinlist.py +0 -2542
  49. ccxt/poloniexfutures.py +0 -1875
  50. ccxt/pro/bitcoincom.py +0 -35
  51. ccxt/pro/bitfinex1.py +0 -635
  52. ccxt/pro/bitpanda.py +0 -16
  53. ccxt/pro/poloniexfutures.py +0 -1004
  54. ccxt/pro/wazirx.py +0 -766
  55. {ccxt-4.4.90.dist-info → ccxt-4.4.91.dist-info}/LICENSE.txt +0 -0
  56. {ccxt-4.4.90.dist-info → ccxt-4.4.91.dist-info}/WHEEL +0 -0
  57. {ccxt-4.4.90.dist-info → ccxt-4.4.91.dist-info}/top_level.txt +0 -0
ccxt/pro/mexc.py CHANGED
@@ -1058,7 +1058,6 @@ class mexc(ccxt.async_support.mexc):
1058
1058
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1059
1059
  """
1060
1060
  await self.load_markets()
1061
- params = self.omit(params, 'type')
1062
1061
  messageHash = 'orders'
1063
1062
  market = None
1064
1063
  if symbol is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.90
3
+ Version: 4.4.91
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-105-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
 
@@ -102,7 +102,7 @@ Current feature list:
102
102
  | [![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) |
103
103
 
104
104
  ## Supported Cryptocurrency Exchanges
105
- <!--- init list -->The CCXT library currently supports the following 103 cryptocurrency exchange markets and trading APIs:
105
+ <!--- init list -->The CCXT library currently supports the following 102 cryptocurrency exchange markets and trading APIs:
106
106
 
107
107
  |logo |id |name |ver |type |certified |pro |
108
108
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
@@ -146,7 +146,6 @@ Current feature list:
146
146
  | [![coincatch](https://github.com/user-attachments/assets/3d49065f-f05d-4573-88a2-1b5201ec6ff3)](https://partner.coincatch.cc/bg/92hy70391729607848548) | coincatch | [CoinCatch](https://partner.coincatch.cc/bg/92hy70391729607848548) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://coincatch.github.io/github.io/en/) | ![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) |
147
147
  | [![coincheck](https://user-images.githubusercontent.com/51840849/87182088-1d6d6380-c2ec-11ea-9c64-8ab9f9b289f5.jpg)](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coincheck.com/documents/exchange/api) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
148
148
  | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.coinex.com/api/v2) | ![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) |
149
- | [![coinlist](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/281108917-eff2ae1d-ce8a-4b2a-950d-8678b12da965.jpg)](https://coinlist.co) | coinlist | [Coinlist](https://coinlist.co) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://trade-docs.coinlist.co) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
150
149
  | [![coinmate](https://user-images.githubusercontent.com/51840849/87460806-1c9f3f00-c616-11ea-8c46-a77018a8f3f4.jpg)](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | coinmate | [CoinMate](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coinmate.docs.apiary.io) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
151
150
  | [![coinmetro](https://github.com/ccxt/ccxt/assets/43336371/e86f87ec-6ba3-4410-962b-f7988c5db539)](https://go.coinmetro.com/?ref=crypto24) | coinmetro | [Coinmetro](https://go.coinmetro.com/?ref=crypto24) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://documenter.getpostman.com/view/3653795/SVfWN6KS) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
152
151
  | [![coinone](https://user-images.githubusercontent.com/1294454/38003300-adc12fba-323f-11e8-8525-725f53c4a659.jpg)](https://coinone.co.kr) | coinone | [CoinOne](https://coinone.co.kr) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://doc.coinone.co.kr) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
@@ -270,13 +269,13 @@ console.log(version, Object.keys(exchanges));
270
269
 
271
270
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
272
271
 
273
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.90/dist/ccxt.browser.min.js
274
- * unpkg: https://unpkg.com/ccxt@4.4.90/dist/ccxt.browser.min.js
272
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.91/dist/ccxt.browser.min.js
273
+ * unpkg: https://unpkg.com/ccxt@4.4.91/dist/ccxt.browser.min.js
275
274
 
276
275
  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.
277
276
 
278
277
  ```HTML
279
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.90/dist/ccxt.browser.min.js"></script>
278
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.91/dist/ccxt.browser.min.js"></script>
280
279
  ```
281
280
 
282
281
  Creates a global `ccxt` object:
@@ -1,10 +1,10 @@
1
- ccxt/__init__.py,sha256=7aKuIeUIuKRowqySxoBs63NLqyZTBx2yRP2WaMq0AK4,16283
1
+ ccxt/__init__.py,sha256=mfiQJQEb7-xLN1dO-DU6YGY1jWy0frqKaTfliu1rsFc,16184
2
2
  ccxt/alpaca.py,sha256=S-PvXknJDcYUqHZWg4isZKGbTa8oU2G4Z0BqbvObNPI,80687
3
3
  ccxt/apex.py,sha256=zNACpzgcqESJBg73H7gdDoA7ixjDVhCwFRr5hVtcT5g,82680
4
4
  ccxt/ascendex.py,sha256=J1Ob6JJ-GXLfm5NHKETN985sAPN3nYlzWi57GYB1zpE,158608
5
5
  ccxt/bequant.py,sha256=9rBVB2Wg9YMmgYiCqS1NSxiftPWmL97FdaNLVPb3Zpo,1218
6
6
  ccxt/bigone.py,sha256=9HdNocMHTNAqBT5SZM8C31k_yUnVDH66fAERYQd2rnM,95645
7
- ccxt/binance.py,sha256=IqD8UI86viF3fDTV2W3CwtfJ5inVCJqHuhU8ofyvEv0,680160
7
+ ccxt/binance.py,sha256=CAdK2uEbPLtuHJxS15Rgske4bLsrasLYiSbiHjiPjOo,680160
8
8
  ccxt/binancecoinm.py,sha256=UEJd_dZQkrLdJpaCE_t9aHCwJdxpjheyTaWJ8RKWIm8,1720
9
9
  ccxt/binanceus.py,sha256=fPaJxinZbmJbrXMW1aYW32n6fXX_VL7odjLEng77wdI,9500
10
10
  ccxt/binanceusdm.py,sha256=U962JuxLu2_GXtWke4m-kLjtYRF-4H9ZlZ87FpXPYHo,2651
@@ -12,16 +12,13 @@ ccxt/bingx.py,sha256=GzLpCdZl76896nKtIKeLGjZAO-508tXDlviDHur5ecQ,275433
12
12
  ccxt/bit2c.py,sha256=Yyxj7tK5kRxRJPIvsQwboWi6HwPfUOAMDr1uTrEfhyQ,41190
13
13
  ccxt/bitbank.py,sha256=foAoge13WzWGHKUEn6LTTGsxqKhU7tXyTHkzFgqlkNQ,47774
14
14
  ccxt/bitbns.py,sha256=5GqPAa7MEbUA2BcDzlus-GGW2rjUliqeWTg4P5gm0us,50931
15
- ccxt/bitcoincom.py,sha256=kpGs1gz2443UrgEsWYeCR5L6FJyYqK5XLmFWaL-I0xM,541
16
15
  ccxt/bitfinex.py,sha256=xje9kkfIlrdnmYdC2Vz8J9M511KPxvkqVw68ceIbsgc,167867
17
- ccxt/bitfinex1.py,sha256=cC6NuPoQlWY5RoTnoRRgNK8yCr1GbF1NrOaZ341ZOkc,74223
18
16
  ccxt/bitflyer.py,sha256=WCSs3DkjhmoBuV5mCLHSTMOB9eUwKmntfhBKbiY5B3g,46926
19
17
  ccxt/bitget.py,sha256=e6ssz20PaoHGhU9bL0fDs4q54HGB-_BkssQGelOOW_0,453846
20
18
  ccxt/bithumb.py,sha256=GHYK_Xwzk9nwINHN1lhnRvnTX8mL98RZQ3Khz213A1s,51640
21
19
  ccxt/bitmart.py,sha256=aG2Vg10J65y3Wm3y1P4G9AxA2PnaIHfo3xqxg4J3QP8,248245
22
- ccxt/bitmex.py,sha256=U7MzNIUW_YBtBH2pMXOXPZ9oo25j2n_-iAwDWSDpd58,131801
20
+ ccxt/bitmex.py,sha256=yfYWTE6n3KxcWIGrbEwus9Q4eOm5xGlmjapaBOjQfek,131832
23
21
  ccxt/bitopro.py,sha256=5e56YxFdUtGV885QUmPMxu_g6kUoaUVCMcB9U48LdEU,75452
24
- ccxt/bitpanda.py,sha256=X1xluJEGWtDs5ovAf8djIMZNW-V-3brs4UjdqiWoanE,510
25
22
  ccxt/bitrue.py,sha256=nxnwNVJv8DJLl3itJoIPnSBkhmAQxHfGpUeDB_skH5A,141003
26
23
  ccxt/bitso.py,sha256=wlR9IWQzs4KrenG8bzibeIrFurbBw5BJgimXk72MCfA,75694
27
24
  ccxt/bitstamp.py,sha256=s5ncJmGr3ce_xXNOaQjsWbB4qjg8VdmS_eaKc0ricpU,97130
@@ -35,7 +32,7 @@ ccxt/btcbox.py,sha256=v0HIZASf4bqqO_vCeGvmPaIxSp3IHs96eXTKmdEKeQg,32617
35
32
  ccxt/btcmarkets.py,sha256=Wi8EctKjcc2WN9VLv0QliIpkyazo5vHaardgZDVa4pY,57446
36
33
  ccxt/btcturk.py,sha256=b8d64i0G6W7vrj0yTHoFfEWUjTyCFFm581hVIOTpwPs,41099
37
34
  ccxt/bybit.py,sha256=z8ZiIig5bYa1CFfNuQO6PMJ4-k5m70unV6yNJ0VQDMQ,436241
38
- ccxt/cex.py,sha256=3w-RPApgT6JNGQZmc9L0ze6IqycO97Xna69_aT17Lzc,72456
35
+ ccxt/cex.py,sha256=hfk5nY0orEM2-benqiKbQvsYXaDSfzzVF_AJ5zLkDkg,75228
39
36
  ccxt/coinbase.py,sha256=KCXeHooSvZYzkV0qbuUvh7KUZoxV8YyvCLZo8xsJ358,236315
40
37
  ccxt/coinbaseadvanced.py,sha256=Eb1X4_VtdNEu1q0Anr-MzdHG55OhCiZYgdeZv2kFuPg,577
41
38
  ccxt/coinbaseexchange.py,sha256=XxLe-YwcDMncJREjwx1qRlzNtGlk-gOvaYcNdyEpb5Q,87178
@@ -43,23 +40,22 @@ ccxt/coinbaseinternational.py,sha256=VH3RCIjvr9Y1FH-qcry92faMAEOzLR67XADKWjLDSV4
43
40
  ccxt/coincatch.py,sha256=e2_bRVu46cnnJvo4SUCGztFbyq43xvoA3ulYph2S7ms,244315
44
41
  ccxt/coincheck.py,sha256=CAuMcY3JvLbwpGHR4W1qUt-P7zKRqRRLsObxK5C9I0I,38011
45
42
  ccxt/coinex.py,sha256=CoCBNE0SWXgXBurhdqcsMuMsj3TnYALKFUz-_gLz2XA,267281
46
- ccxt/coinlist.py,sha256=phA_bd7LZM_Samh2GsJAy6trzIgJ4yhmvAOtxpByvVw,114104
47
43
  ccxt/coinmate.py,sha256=ZbhFH_ALCbB9UpkSFlyh8RP4ZiLH7IbjJGX2PEOtUOs,48773
48
44
  ccxt/coinmetro.py,sha256=4HKcoDpa_BnDgnM0x47aLmBt-4KxXfSKS8pr1rE3K8k,84504
49
45
  ccxt/coinone.py,sha256=nzJSHoDvUsttXDNdn6Wd1p72Duj9GuRQ1bgqvphryCI,49231
50
46
  ccxt/coinsph.py,sha256=j_9eHDvD1TNRe5c4vmSDruT6XMYf-orPhof6Tn-tVSA,99456
51
47
  ccxt/coinspot.py,sha256=jQsrrLsUbHKpG1fe1lYEed4LNVLG3TJhx49NrkVyN2w,25997
52
- ccxt/cryptocom.py,sha256=5Kuy4PAwbvqixJ5Wsjjpauq60gZkOG6N0CWVsWGRNbQ,148573
53
- ccxt/cryptomus.py,sha256=s_F29uXs8iAq1A_on7B_djCBbZMVUT5nob_Y4oQbbKA,47506
48
+ ccxt/cryptocom.py,sha256=bwiSRpAkWnauR_fGO5NOWILu_xpNm5euYZHQBPn9a9A,149197
49
+ ccxt/cryptomus.py,sha256=uQfP8zn8tjZIJRUk7jVUJmSEC6QZ1trxL7vFmKoAFFE,47506
54
50
  ccxt/defx.py,sha256=NkK5RWtxb_jaqTBsOLyUeXv5cdxS6jYZd3w7swsV7VQ,85291
55
51
  ccxt/delta.py,sha256=nChbNm4BsOLUubaFJP7DgvCBnfbz5FHZuz2Gog629dI,157309
56
52
  ccxt/deribit.py,sha256=yl2jQyWkhufwhf8MLfcCS1fjvDMCi7qi9amcjztIpAg,167176
57
53
  ccxt/derive.py,sha256=xXB1Li3VHuwtmibyEH-6aESXvuPFzjUMMRfXTApFt6E,122255
58
54
  ccxt/digifinex.py,sha256=EXRWsjYJVLR092ME1krRw7UED9H-ZgT2WulXTYQ2BfE,174808
59
55
  ccxt/ellipx.py,sha256=b9wioqg43r3I63bWm0fIlk9EOGe44yoZSHx8m7B9JHQ,84066
60
- ccxt/exmo.py,sha256=unemEt52-1fmPvdp51TFXX0ctNaNwAj6LJVpWTXFx-I,120604
56
+ ccxt/exmo.py,sha256=EpylCbunmOx65-zhuFdFCPmhdN6piHBfWoemNL1kkSY,120803
61
57
  ccxt/fmfwio.py,sha256=a1VjvGxdm6bVGDyC0UhyB-0QgUmxsWUWs0ZAAK2RI9E,1275
62
- ccxt/gate.py,sha256=5BAYpknIyhsxNbwosFE9u32wiPXEFx8WLriV4IhI-jE,352195
58
+ ccxt/gate.py,sha256=wufQi_WBp5ZP62wZCJgueeA1iOcwLPNh8oX4iqHpo40,352213
63
59
  ccxt/gateio.py,sha256=7KbnH56kBK0tb_CN-wT10jaF5DfTrnHarhu27eknsLI,484
64
60
  ccxt/gemini.py,sha256=V46lQwQ5a15YeCcOAOEHCuJQBnDvs_9LkrgTwDdCyxc,83625
65
61
  ccxt/hashkey.py,sha256=oOZOJc9ZM-5FahVomRpk4nfRFnGG2zTRWvGO9CQ2Quw,191237
@@ -67,10 +63,10 @@ ccxt/hitbtc.py,sha256=glI1oOlmeIwFwBIZQNDKs7VBx6hIZXOuL_LsDkm6roo,159659
67
63
  ccxt/hollaex.py,sha256=h0uplmuLHOWAabORg-5T8LTAr4fCQYtMt__EFKmm9Ks,82514
68
64
  ccxt/htx.py,sha256=WjAspWUAhfNtRoxWbjdlAzthv9QneRFQ4YmoJcgm1OY,444035
69
65
  ccxt/huobi.py,sha256=rQI8HyRj6Jt9XgJYdTbu4tzu85sv0SWT3rvO_HY8r_E,477
70
- ccxt/hyperliquid.py,sha256=192lkycyoY85HK19U7ULfJV-vSEiPb4nnAwtz8KwfpM,150154
66
+ ccxt/hyperliquid.py,sha256=Gsq0yWhTnO8zYdRLretO47k4_Pz9Xj7ywvjWqTONtts,152882
71
67
  ccxt/independentreserve.py,sha256=4kg2DbElwd39vDP_39tIjRMj4uT2E7Rm6HIxnTfcux0,43214
72
68
  ccxt/indodax.py,sha256=mnOPkrLScNIQ9CFkFY126OHgnLf2pCdnxaILPvFiwPc,57739
73
- ccxt/kraken.py,sha256=Ol4Ro_JSwqa1KJXFN8hVH7zq_K89OuGmTPKLvgpTfrk,147621
69
+ ccxt/kraken.py,sha256=Hod4OtZav3g4sT1v6UqRJYENGUtBNaIqvvGt4uQjZkE,148523
74
70
  ccxt/krakenfutures.py,sha256=FxcFHrQHgytW8QtFRzGQdM1eka4keWNVYdU0er3UsGw,123352
75
71
  ccxt/kucoin.py,sha256=OycntB0gK0mI4ZfDDMmHip8n2S-AxgKX2jG9XjFeJ5A,232381
76
72
  ccxt/kucoinfutures.py,sha256=dIYjcWvjFSMdvykeSKLHJtyetBxPHKToj5TvLTv9pYA,146502
@@ -78,8 +74,8 @@ ccxt/latoken.py,sha256=WgmOCDR-7LfFi3NiqudrxUMR63ivcxxJMyE95YcUD5I,82334
78
74
  ccxt/lbank.py,sha256=wboC02jnDOCj4Q1QNuwgMJ6umoXuYS1CySiXP4valCg,123621
79
75
  ccxt/luno.py,sha256=IJUlAXvpSa6mrG5GGEbz_5UcfHVPIl2sgD848HXAOFU,56910
80
76
  ccxt/mercado.py,sha256=xdbHqVJgj570KETzQSUftP_I73ewdVqSg0Sj_oORt0w,38466
81
- ccxt/mexc.py,sha256=EuxghSeUvzVJr0QUm6tzC3Hdt0019W6sTOc16NYyXO0,258910
82
- ccxt/modetrade.py,sha256=bKD93Irhu4x08dnV9RFR9u10xnqbSjQcc2KrhI3uVH8,120867
77
+ ccxt/mexc.py,sha256=h_lRUM7X5-ZKEPKKYNUxBiAlrqgc6YEDjuH8j_KTFw0,258968
78
+ ccxt/modetrade.py,sha256=i4SjYKsXUjT-mrVOzmVN5s5gEduwZYtOlhrL9Z-mJro,120867
83
79
  ccxt/myokx.py,sha256=1fuUUuz5HuhSzTefnqUayu4NWVLNXzK58LPdpi0GYu4,1773
84
80
  ccxt/ndax.py,sha256=lnfDM_ogPiR5E9SL4iKt9iCeVbeTp8EUrM2N6J0_vM4,113853
85
81
  ccxt/novadax.py,sha256=8K6mKIBY5KyyunyBsYJEosfkr2yDrPVgJfFUpET242k,67583
@@ -90,11 +86,10 @@ ccxt/okxus.py,sha256=luEXOXlnV3UAmoZ_y8_7OGMxC3KyxLvy_8qI7Dc8F-g,1773
90
86
  ccxt/onetrading.py,sha256=sWvLW8q4yqJ4qGFZgp14tMt8_SYrV8fkrEstir8Y-3Y,76492
91
87
  ccxt/oxfun.py,sha256=j7X5i6v1pMnQS6TnrVl-m2u8RgCKyw9C584_Gdh1th4,124422
92
88
  ccxt/p2b.py,sha256=2mkYFm3h_lFtgEu13F6sDgbj3UxYyTG-3R_l-w7NZiM,56725
93
- ccxt/paradex.py,sha256=lXogpCZitVgqbz-_jzJmWgiP9MOR-gEgrROauMuCsa0,105584
89
+ ccxt/paradex.py,sha256=1qu9dpaGZ8apTmzROBXTHVur8SmQsjlDdO0UDGjfNNg,105584
94
90
  ccxt/paymium.py,sha256=SPe-2BHskOi8uHtrFWqcoop-ec5vu9GSQwDDf8EnXTA,26219
95
91
  ccxt/phemex.py,sha256=zbMwXctIOcXvXt2QqBjszqyyOgdhHOEnAB0w6j1Av3Q,242408
96
92
  ccxt/poloniex.py,sha256=S8He49jYO3VO4AJbRLLCH6iQy21JdTQVZnY77hTES2A,155043
97
- ccxt/poloniexfutures.py,sha256=tiPISr3IPJkViGW3R19YqMYiK9I0_VR7cVtctJEBmvo,83197
98
93
  ccxt/probit.py,sha256=clsrBdC3YP-FT7HVUICXCk2q34PhhuBbURcxQDKAvWA,77624
99
94
  ccxt/timex.py,sha256=O6NrRwPVnjrHo2unN55qzeSMokDtMBGuWjdkQjtXUpM,75124
100
95
  ccxt/tokocrypto.py,sha256=hmCMf7f3Z0tM6Ipnj7RrQDHvuKB7wKBhfSqD4ePsNiI,126321
@@ -151,7 +146,6 @@ ccxt/abstract/coinbaseinternational.py,sha256=ic3EjzSwsOAZpMQQk2yVO8iO8_ZfkGysai
151
146
  ccxt/abstract/coincatch.py,sha256=mCUMZarGuKB1EfwWeXQkRclHiye9wUIXxjghcRGQu5A,14248
152
147
  ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,3417
153
148
  ccxt/abstract/coinex.py,sha256=4TRXtWgONqkm3eSL55Y5T7Q4QxJrnOTuhP0ugsKHAWo,34856
154
- ccxt/abstract/coinlist.py,sha256=Y3H892ew_GrfOZ7vpKoF5jLr_EixGAdi_4BXyT7PPnc,6960
155
149
  ccxt/abstract/coinmate.py,sha256=LYCJZIWe3sidZUozM7jBTB-AiN3cMElFhYqO9d1QvfI,6842
156
150
  ccxt/abstract/coinmetro.py,sha256=W2eAbFInYZMm1BgfZMRuCX7i201hT4q6QCtie30-_AQ,3975
157
151
  ccxt/abstract/coinone.py,sha256=X2gKABhQbzyFUs8MLo-VGyhG4CxgRSVa6qJsiJqubk0,8291
@@ -216,13 +210,13 @@ ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
216
210
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
217
211
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
218
212
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
219
- ccxt/async_support/__init__.py,sha256=0AbInstpXc66QwX0rNTFXrsiRmziGRtILcZJC65z8_k,16066
213
+ ccxt/async_support/__init__.py,sha256=UH_PVld-sQ4KSUxp-Iwag-YPzbkMerQDvoluhoICnXg,15957
220
214
  ccxt/async_support/alpaca.py,sha256=Tag0HpHxho_qrXoQ8rjZBVJZj9T38qg8g-mZR39_m18,81133
221
215
  ccxt/async_support/apex.py,sha256=Lf740Qrx0kRb2fVZWS0FwZeysyMz65IEFD66jzn-NfA,83168
222
216
  ccxt/async_support/ascendex.py,sha256=sbL_sajKakTo1-Qw87oipkxrA5Qk-ol6bnY3kqh_5Bk,159445
223
217
  ccxt/async_support/bequant.py,sha256=-O1NDzEwsG1L2H17ZzcJw7ZHvDt8s-47bgqzjixYkjc,1232
224
218
  ccxt/async_support/bigone.py,sha256=LIFOq8_49wkrql1VLqFJhJaOokDqw6JnYfS4fdkfCGU,96099
225
- ccxt/async_support/binance.py,sha256=uhI-GBULf8t5AUcDJwvsBnfo0H4dCKwZVyBeuRmfxA4,683073
219
+ ccxt/async_support/binance.py,sha256=2TUalju1usqqKzEGMwa4fHWs5_vbNCgpaytNrvX1jL8,683073
226
220
  ccxt/async_support/binancecoinm.py,sha256=1NC5yuHlkNgXH5mEz20lU7O7u3pODa6fluSmHO7W5Lc,1758
227
221
  ccxt/async_support/binanceus.py,sha256=fD4Rm2iJZ6YZuJAbRt5TPh2p8dIyN8yQkovnSWKF6F8,9514
228
222
  ccxt/async_support/binanceusdm.py,sha256=pSIfePaOra0ikZLqFbvBAgHXbj1bhmuSt1G-DiNbgIk,2689
@@ -230,16 +224,13 @@ ccxt/async_support/bingx.py,sha256=nSrijjPDKUvvQSQ7Fx6gf9BmbjkdtcWeyDIBS5pY804,2
230
224
  ccxt/async_support/bit2c.py,sha256=CYx7PSZNdg3JyN08DTYRtLYPxsz8gOoYxpgN02h1LjI,41402
231
225
  ccxt/async_support/bitbank.py,sha256=1LUSR3ePVrdT80QWVMAlKDr3Ld9vYRj98Yg6IpYIoIE,48034
232
226
  ccxt/async_support/bitbns.py,sha256=L6wAlhQu7ydl8R1kph7_K6QvnMAKuvjWQd_4w7d_uzY,51185
233
- ccxt/async_support/bitcoincom.py,sha256=NN_AWmT0tzikiwFDtf3aUqRXbgFTbdRIeL0kPbL5QpQ,555
234
227
  ccxt/async_support/bitfinex.py,sha256=reAsUMsbu8a3g_hK0s50btHcWQXo3jTH4bfvjFM5dRE,168627
235
- ccxt/async_support/bitfinex1.py,sha256=5wTplLdKMIEoWUwrG5_W5rXhrPbrch1358Bwa6TU1ek,74689
236
228
  ccxt/async_support/bitflyer.py,sha256=i68Vb2iY6OCXQ2DU9pHKJexOxH8dZAZrZSPr_q-colA,47252
237
229
  ccxt/async_support/bitget.py,sha256=sPHtswNgPICInGQshCx2B1FxTmzf71mHVFQIxImZeew,455589
238
230
  ccxt/async_support/bithumb.py,sha256=ar0QoFintFU7qv7wW6xjnYqBR3keNYN4qN5cbybYxEY,51919
239
231
  ccxt/async_support/bitmart.py,sha256=RFolj5OLPM94D1dU-de0wGD92gX3z8I9p3l67Nu2gTk,249369
240
- ccxt/async_support/bitmex.py,sha256=ySXncjhPs47qdGGkNgjZppMIfHf4UmqKOungNwz-EQk,132379
232
+ ccxt/async_support/bitmex.py,sha256=Nol7iGiAzcCom877VUrfsL0cobZ5DXPRmYmq6noBsoM,132410
241
233
  ccxt/async_support/bitopro.py,sha256=ZSzfoGFxe8005JhF58OGhAgjOz_ElL4kS8gZBxlp5cs,75862
242
- ccxt/async_support/bitpanda.py,sha256=zj2ad7e9spjosP19nGH2s9oJnlSsJ7CZFNK4alIt51w,524
243
234
  ccxt/async_support/bitrue.py,sha256=pYVOhG7dB1RAYsHLmlut9qd3tOxaZF8VS-J1fImp_qU,141661
244
235
  ccxt/async_support/bitso.py,sha256=VxJIMonNL21HlZtf1t_VTTdwfrpDr5B8FB0o-aSISP4,76080
245
236
  ccxt/async_support/bitstamp.py,sha256=RD8F7UtyaSfJKBgbIjA38QTu64TQ1kGbIJ2eAdNAc7A,97630
@@ -253,7 +244,7 @@ ccxt/async_support/btcbox.py,sha256=LQESzuVcGVbuCIBUd-gx-yEkQxk3BkEPGYS3JqcBOls,
253
244
  ccxt/async_support/btcmarkets.py,sha256=Hyl6g0n86vkfFeA74hPiOWyf0Gy-jP3IFd3viliaTwk,57796
254
245
  ccxt/async_support/btcturk.py,sha256=hnvcz2VixRaUTK9qG14yuvI8ime5GykDnd8C539UHow,41317
255
246
  ccxt/async_support/bybit.py,sha256=HhsT0lUGMgtObPLYkAA0HH3fPY7qtSgru2irZgr3rsI,438061
256
- ccxt/async_support/cex.py,sha256=glezHtzVpvdGI6GvN2kpwah5uJGStbg2e1rIh7UKRLE,72928
247
+ ccxt/async_support/cex.py,sha256=JGYkLVxmT2YLMN3FhPGu2uYXNDYjLqocl0LAEU5Ln98,75700
257
248
  ccxt/async_support/coinbase.py,sha256=F6tJV3Yl0UEnEaaXLjd_CitOQYJaXP5p0eZrE2eM1ps,237576
258
249
  ccxt/async_support/coinbaseadvanced.py,sha256=TnsUS2r5fvHIEfQmJh7J6Muyg8tPqDJphKYmK7gUQGE,591
259
250
  ccxt/async_support/coinbaseexchange.py,sha256=HDpvVVbjP1ufz2v-GyBVHl550XhsrXuPNQYYriFOSVQ,87684
@@ -261,23 +252,22 @@ ccxt/async_support/coinbaseinternational.py,sha256=0wTE9n8B_GOeHOH0CdA_2hnhe0abq
261
252
  ccxt/async_support/coincatch.py,sha256=2_qdmOvJo-T65OGW3LKIpYm2H2eBP7T1y6BiIJBZnc8,245391
262
253
  ccxt/async_support/coincheck.py,sha256=riQpuspYXE3FXgjQQaNFSjnWGtsPUBwdOrq9Hy3eTO8,38217
263
254
  ccxt/async_support/coinex.py,sha256=lj_2qf1gnqmXbVf_pXBZddBFsHeVmh_N2JIxBHhmPwM,268569
264
- ccxt/async_support/coinlist.py,sha256=GaZ8TTROBzs6woGTpnvTnfyP3CP6JocQyES5tc-jXFw,114610
265
255
  ccxt/async_support/coinmate.py,sha256=iC1zJju22iTcFtrQKFSsOyPkgTFQkUDa_2FWOOH029w,49039
266
256
  ccxt/async_support/coinmetro.py,sha256=RkkaJ7-apWSr5I9iHBc4samaqf28eWhPmIGaCB0zxyI,84824
267
257
  ccxt/async_support/coinone.py,sha256=nNNpMSRHFz8pQEkHcEIj9GHNHsnlWhwk_ZauMmAIePI,49473
268
258
  ccxt/async_support/coinsph.py,sha256=zHsKdCq_EMNfqlO68i-uop_ctXmwfbfUcQ_4yGmmQeI,99902
269
259
  ccxt/async_support/coinspot.py,sha256=TpccNE4N4g2lVcPPVzDVR5P2rD8TxqYXzpmNqpxRulQ,26155
270
- ccxt/async_support/cryptocom.py,sha256=Y_4Kvsq12KOutqAvCPopxvvabhadCNYRIhs_cKc1Se0,149211
271
- ccxt/async_support/cryptomus.py,sha256=6DWJOBddqi7hYI71Y7U4-Y5vYj81Mw2EZDrCLDjgQhM,47706
260
+ ccxt/async_support/cryptocom.py,sha256=ijDQY3ILYWIXaRwtx73zLY2RlrvkTp5n0RljIItXq5Q,149835
261
+ ccxt/async_support/cryptomus.py,sha256=pnQMocQIduf44dA5x6RC6vl9vq09YiF6zw3FegcwysE,47706
272
262
  ccxt/async_support/defx.py,sha256=mhcJBpJGSZZm3IoKyaGuTIOokmvVm6RVl9mRf-39_3A,85793
273
263
  ccxt/async_support/delta.py,sha256=5wh7mM8MGXupMAyNe3Pu47od1VNKfKkLCOASyBh2BMw,157917
274
264
  ccxt/async_support/deribit.py,sha256=Zfcl0uPhi6oYAYBy5T6MywTpdNbarfyJLH-rxqiZ-NE,167958
275
265
  ccxt/async_support/derive.py,sha256=wvaGnXWt8llnj9YCRW6Mke8t3oyIu0m_4sFYd-AHo3I,122751
276
266
  ccxt/async_support/digifinex.py,sha256=KXO1mP_t1iEvOJjJ2ESq9TaPDcHLjByb0AvVJEtBS1U,175796
277
267
  ccxt/async_support/ellipx.py,sha256=q_Mf8eDeZK1XdXTfCujzTtggomGOh9jn76-d1H_AjZM,84374
278
- ccxt/async_support/exmo.py,sha256=G8SrYyKO0yIjLXjM9MYdBN6n0AU2a8aHN11RbXf-66I,121290
268
+ ccxt/async_support/exmo.py,sha256=obl3Ihql_Q9hDAlxKe96lBT7ipH-nKFOzoXhijztk1U,121515
279
269
  ccxt/async_support/fmfwio.py,sha256=daZ_yHYGThtJQV2LIh0wSS1uotTY-CH8e8pdNLr_Otw,1289
280
- ccxt/async_support/gate.py,sha256=TUQvPxYdUNjFBVeIVwVrUsIM-8AMl3bTfoAvQZlE79c,354154
270
+ ccxt/async_support/gate.py,sha256=1Rem4zV8I-QVx4J-w36kiXnA4pQUpvWW220Z8hp9RJY,354172
281
271
  ccxt/async_support/gateio.py,sha256=Sy9taiR0_0k4oh5GHjTjpwuCzskKiCCEQljuz7OxDVs,498
282
272
  ccxt/async_support/gemini.py,sha256=-6EoDaH5Ybs37lXoatifP3A39mrppJPOrS7y2NrMA-E,84149
283
273
  ccxt/async_support/hashkey.py,sha256=Bmts-K34h47pTTtzGtIst4tK9bK5Nup_cTS8X_qqtb4,192079
@@ -285,10 +275,10 @@ ccxt/async_support/hitbtc.py,sha256=gZ8_Gso14v-RNPuufqOkqpeAId58KtAnumVbWgq3ZdA,
285
275
  ccxt/async_support/hollaex.py,sha256=FlbwoouClCNOqGPNeruR71TgmuK9zE6T4VU8uY8fAnA,82954
286
276
  ccxt/async_support/htx.py,sha256=HT7L4Fg1bH9Qf-NArusiYdLyIBilXZg9uPHocAfImlM,446445
287
277
  ccxt/async_support/huobi.py,sha256=D4CTKw-2sl7iiX3yh7hMMkhBXHvQQ3to9_tW4WKm0rA,491
288
- ccxt/async_support/hyperliquid.py,sha256=qOIL2G-y9Y2TyVRWSSBcwznya-FaXEKEt6PO90Ua6iM,150932
278
+ ccxt/async_support/hyperliquid.py,sha256=MyHvZLgVhrwpZWBDO56J3v1e-0DUSMlQaUPSf_kBuGs,153660
289
279
  ccxt/async_support/independentreserve.py,sha256=HvAj_2WG3lKNy5R2vDmV32frQbsOb3TSvg7QHZ8E8So,43512
290
280
  ccxt/async_support/indodax.py,sha256=JssbOrL5Xy5MVgwtv9nbKPelmgOS9IMAniyZ5D5d6Lc,58047
291
- ccxt/async_support/kraken.py,sha256=gHDjl6GHBpdeXfjedymMEln1AJo7LdqOV0F8CH5yMJ8,148303
281
+ ccxt/async_support/kraken.py,sha256=HUMfF56ciJ7xOHVt6tiu04ysS6dufxubXpUx2_qHYHw,149205
292
282
  ccxt/async_support/krakenfutures.py,sha256=eUeNv8u1DyIVIL7R-DxCh25SPOgGL90aHDoHmFDia28,123840
293
283
  ccxt/async_support/kucoin.py,sha256=kUz1hYpOU364piOa-psqtxTm11f6KlXS0HErk9_J-xk,233531
294
284
  ccxt/async_support/kucoinfutures.py,sha256=irTJoiMRS_8FGDalVNXE1sV1zhkM9rkVtqUOreL0tTM,147290
@@ -296,8 +286,8 @@ ccxt/async_support/latoken.py,sha256=RdEFvig7T_GbtwUy8MG3ZKnlsM6UDJnjbvjTs7Y7Qis
296
286
  ccxt/async_support/lbank.py,sha256=cIEIQYDUTzTbnCZTxkfSS4ef80zlwlw1GBIRJJReopU,124369
297
287
  ccxt/async_support/luno.py,sha256=TbC8rBRk9ppdn5pI8flzT11tJ3fW2jBYPWSrwc3Cv9k,57296
298
288
  ccxt/async_support/mercado.py,sha256=rC48RX-XpLRd2u0roaGc5JY046mHrI6nq1b-4vhNeGU,38708
299
- ccxt/async_support/mexc.py,sha256=y8iNLQZMRq9aH0q456_XgA0nxX4iS6x2nf9YmjT6zG0,260174
300
- ccxt/async_support/modetrade.py,sha256=WrNDl7kVXZNHnXUkbU-Xc4M8_umWE_88GAoe0PLaOD8,121559
289
+ ccxt/async_support/mexc.py,sha256=Q84eiLJUARv6JA2q_0Tpq9JsRqLzNVmf0fmWo5mnMho,260232
290
+ ccxt/async_support/modetrade.py,sha256=H_Qd7V__hdy_ck9fCh-_bkaKwVmyhZrwV8v8qALqTkw,121559
301
291
  ccxt/async_support/myokx.py,sha256=hU24R4SOpmyjnvgZe5YSU4ELucsSZlENBox4U0P862w,1787
302
292
  ccxt/async_support/ndax.py,sha256=UPHLwLNELb-CU4uSpxemsH3S4ZhosLmUwUwl1IYrCmA,114377
303
293
  ccxt/async_support/novadax.py,sha256=QIFIoZdkkq2odkX7V0wGn9ytgtzEDOTr4MnFGlgnKEk,67951
@@ -308,11 +298,10 @@ ccxt/async_support/okxus.py,sha256=MuQ7TqH1CIKec_Z11O7hbz5bRCDzqW51fy1tZoZ1_DI,1
308
298
  ccxt/async_support/onetrading.py,sha256=feDyVyi8JEVENCoe2rISM25CbpJeYtQDIrh65IGw5eU,76848
309
299
  ccxt/async_support/oxfun.py,sha256=Omz6V_qxRLx0RbDQMC5ytvAviTMKCWsJ_iJFGgnoaX8,124984
310
300
  ccxt/async_support/p2b.py,sha256=A_RPhOvbOMozI8Ypvw_Qzon5c6609l-fle3hYMT4j4w,56967
311
- ccxt/async_support/paradex.py,sha256=sh08eqYGzkV52en-BbXDWXfAZdox5Yei1FsRPBkWzas,106306
301
+ ccxt/async_support/paradex.py,sha256=loTpDexhTgNe7pjGk5Pzc2hLtryVe4I1SMW6HBucmG8,106306
312
302
  ccxt/async_support/paymium.py,sha256=x4-ORMQoTtML3ZOSlBc6oH139SzVbzs0deVpV5cnqBQ,26407
313
303
  ccxt/async_support/phemex.py,sha256=RJBmrNMdQA3syUqhruZmCq_R3KYcGCmw9OvYF8jWuoA,243324
314
304
  ccxt/async_support/poloniex.py,sha256=2akpw-eVRa4t4brDZKzKxX6lrDwtvgooQ-7mStO4Rhc,155845
315
- ccxt/async_support/poloniexfutures.py,sha256=5VlGcB2YgXLQ8ddHw82NIw1gGdHFm28q4zxwvlpCMHY,83595
316
305
  ccxt/async_support/probit.py,sha256=9lwyNddXq_SIc7eBO2lXWdxs_smhe1WlDxks7QqwBAk,78016
317
306
  ccxt/async_support/timex.py,sha256=27WWF0gY0Eh0mY2ZvHxEq1KGTppJj6ByjWyYAVRI_vQ,75486
318
307
  ccxt/async_support/tokocrypto.py,sha256=DcUSa9PEsk9UGVFQbsWLXVAN8mL-3B1s4IBiSCC2POU,126683
@@ -328,23 +317,22 @@ ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,5
328
317
  ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
329
318
  ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
330
319
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
331
- ccxt/async_support/base/exchange.py,sha256=3qo41BpgIc0nGYI3Fka9-_Wodr_xbzh47eW0jAuMsUQ,119161
320
+ ccxt/async_support/base/exchange.py,sha256=RBB3v5Eqi6U0twVnaocSBCk0MD87meBQdYIz_mGCRUs,119286
332
321
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
333
322
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
334
- ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
335
323
  ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
336
- ccxt/async_support/base/ws/client.py,sha256=J5lTz3QGTaURZYeqW4R5xNw1orDlHYoOVXIJIX6d5Zc,8188
324
+ ccxt/async_support/base/ws/client.py,sha256=3H6NnHk7GIC6wqJ49eshuvy5MnT3ma4cnAPSWKNy6S8,13475
337
325
  ccxt/async_support/base/ws/functions.py,sha256=qwvEnjtINWL5ZU-dbbeIunjyBxzFqbGWHfVhxqAcKug,1499
338
- ccxt/async_support/base/ws/future.py,sha256=WhAJ7wdEiLdfgl5tfGHv6HgLxAN0tTc9xL4gbkKVOaE,2409
326
+ ccxt/async_support/base/ws/future.py,sha256=9yFyxqT7cl-7ZFM6LM4b6UPXyO2FGIbAhs5uoJ3-Smo,1271
339
327
  ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
340
328
  ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
341
329
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
342
330
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
343
331
  ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
344
- ccxt/base/exchange.py,sha256=b6TLBQicsWseX5icZF9BC89wQfUaqN5IPBSEcNOq1SM,328431
332
+ ccxt/base/exchange.py,sha256=wjO_dKXa2T3CqHP7jZtL7grD_tifCcNn_wew8PNCotc,328697
345
333
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
346
334
  ccxt/base/types.py,sha256=IbLO7Ni-plO36xlOdJQFqujSJBq0q9qll009ShZ0M_U,11468
347
- ccxt/pro/__init__.py,sha256=yANPV5xD-eC05FcGApWoW8HyLvMt-wwHb9XmWFtU9TM,11381
335
+ ccxt/pro/__init__.py,sha256=_OBzr8T1GgPbK4Mdqjpcrh_VxciegIFXW9y1k4jvoSg,11381
348
336
  ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
349
337
  ccxt/pro/apex.py,sha256=fiKLT2R4vSCtTBXtXOgw_rJc6jPGINrpEJagzfvlL9c,42004
350
338
  ccxt/pro/ascendex.py,sha256=aSbIEzJ0Og_Nc5UGTYj3DVjGfIJ0-q0DdXSWJcQCKb4,37512
@@ -354,22 +342,19 @@ ccxt/pro/binancecoinm.py,sha256=AfOWR--71YCCYSUsX50G4sW2OxvLKJX00XcpItnfG7o,1075
354
342
  ccxt/pro/binanceus.py,sha256=PMx1G5RD-whXM02hRF8A6aW_-4-LJqPbx9o63nBp_8o,2034
355
343
  ccxt/pro/binanceusdm.py,sha256=n01dbMu25CEcaJXNve--Ngf2Toqg3yWHstqTz4vtOUU,1551
356
344
  ccxt/pro/bingx.py,sha256=jcjyR3FyMBN9Q2MMtOWCzOkavjkFZqFLdia8cKt5hqw,61625
357
- ccxt/pro/bitcoincom.py,sha256=a0dw4oSbeq43tRYIwPGCmQP3dc4BxfW0tPDxCMUc2bs,1220
358
345
  ccxt/pro/bitfinex.py,sha256=ZLQEFVjWb94XHBsRE6QBEtA4cpvL5gD_K3UV1SCTmD8,43115
359
- ccxt/pro/bitfinex1.py,sha256=6SHvEOedkCAfYjXOSVvl9yAmwezip-GAVg0vaG8Cu34,25323
360
346
  ccxt/pro/bitget.py,sha256=RG3ePuPfGNY0XW0kGOxaDlwQ_MKpA99ZMVYBe1G_ZUg,90331
361
347
  ccxt/pro/bithumb.py,sha256=aXK63jzW1tZS76vHZzcBPji7_HdERRSi3m1toA-LxWE,17546
362
348
  ccxt/pro/bitmart.py,sha256=Kuw1n-SuUT_vVs2HObJkE6jtieS55qeD9dcWbZGBeT0,67210
363
349
  ccxt/pro/bitmex.py,sha256=Vwb7J6ToIKLsx00OdX3Om47bufLi6d7HRm9hP2w9zSg,74652
364
350
  ccxt/pro/bitopro.py,sha256=9Fq3ICU9prweuUzSksjyJKIyjzngQq8uYiQt0cEJVYU,19117
365
- ccxt/pro/bitpanda.py,sha256=pWAN2rWrntjapwWahyy6JZDOggYToEXqo3rk5plQZsg,454
366
351
  ccxt/pro/bitrue.py,sha256=DRsz1IoSc6LjujnBCs33t7vmN2Ltr4LQj9McqmfOShU,16292
367
- ccxt/pro/bitstamp.py,sha256=tpxhfcQQXOmu2pJyzR1DGINaUixcwwlWtqQM6-OT9BE,20976
352
+ ccxt/pro/bitstamp.py,sha256=5JS-ssfVWbc_i0ik54ZpXT-U8MSMZ-wLcBc6Coqap_w,20976
368
353
  ccxt/pro/bittrade.py,sha256=pBnZeJbJzsjH2qH_TyXVW5Rtp3sHo9Yv9skH1UEN8Co,23334
369
354
  ccxt/pro/bitvavo.py,sha256=zh7jiinMuCB_7Q_mOqh9E4egTKMgIS_IHo-tQZkn9dc,59866
370
355
  ccxt/pro/blockchaincom.py,sha256=ub_j3mGQfTaCVN2mb4e8PZk_2L6GvlStvNOjb9aHaIA,29636
371
356
  ccxt/pro/blofin.py,sha256=YL2KMinrg1CpXLcd0ygF69ORexJZdOf6UZ4DtSZvmzc,31793
372
- ccxt/pro/bybit.py,sha256=u_SHFaK-OHGcWzKeT9o6qnkMB88yF3fD_Hb7W5E041M,111672
357
+ ccxt/pro/bybit.py,sha256=HzT45CG9GFWZTe-0VhAObG9R4F8MFUaQs60A94QdjMs,106407
373
358
  ccxt/pro/cex.py,sha256=G2yzA7MV-nassotKsUsmijqkmPFKJWMA6rmT4Dr8MVI,58526
374
359
  ccxt/pro/coinbase.py,sha256=8nYb3wC3gbcgCCLLZLYWIvFxHg15PkFxL8KX8urbgoM,30573
375
360
  ccxt/pro/coinbaseadvanced.py,sha256=EizO2LNJAy74LU7sW7GjUFiJgfWALiWI1-Yj2Bv1OrM,513
@@ -394,13 +379,13 @@ ccxt/pro/htx.py,sha256=qjvYQIRz3nLSjCarLJIEqTo2YVwfIvv9OwXJynkLGwY,97645
394
379
  ccxt/pro/huobi.py,sha256=MPqx8sS8dX9pQHiSWZKzKgNRB2O4yfblX7yTTbM7Tp0,424
395
380
  ccxt/pro/hyperliquid.py,sha256=IwO7ZJ-N6JSGx5lJhaDAq0xjGqdBrj32zuqj2WR1xC8,42785
396
381
  ccxt/pro/independentreserve.py,sha256=3FGcNr9nrlf6Qt_q29lMe9I760IP9T-DBgDj_kmAo2g,11368
397
- ccxt/pro/kraken.py,sha256=ql_C93ZLTgy1K1MpG0KcbWbaZhVdlmituekv0F2CW9w,76995
382
+ ccxt/pro/kraken.py,sha256=yab39i7Kw-SECnuHgDYbQFp22LNiFrDXy2gdCDcedbw,75657
398
383
  ccxt/pro/krakenfutures.py,sha256=2qfn_xJ7UYnJFYusG9iqlyd7O-peZm5aCfzVHFLD_mc,63913
399
384
  ccxt/pro/kucoin.py,sha256=aXBSfhUVZEyGLwoJJSi9MIOxyWWmnd_FRf38R6fAuV4,60753
400
385
  ccxt/pro/kucoinfutures.py,sha256=9EbEi4vCwLl9evPlJLX7tQTk18mPz87piKnH6GZbMvo,56070
401
386
  ccxt/pro/lbank.py,sha256=CyrosUibFTA_CwCamYoWtrOzg_scpR79GvO4p5wu7Tg,35582
402
387
  ccxt/pro/luno.py,sha256=hlszbPJprTYP0WoR8cQM8sgtKTJcEVWG14KiDAw8TkY,12446
403
- ccxt/pro/mexc.py,sha256=vEloi9eLKGACfXlELChLvq1m_1tUl0teOnMG2p6Svfs,68574
388
+ ccxt/pro/mexc.py,sha256=Ntg1PLi2QZ_oZfWzDv3VGr0WpZLTyG4hA4HbfOH68MY,68531
404
389
  ccxt/pro/modetrade.py,sha256=ZlOlLlbXgo-2na6A-9l-2Z0uCmLJH_hQdoFLN9fi5ek,51716
405
390
  ccxt/pro/myokx.py,sha256=iSdyUUOmRA8QdJNJSn-DoLJb-fw88ReQxAs6nithKVQ,1237
406
391
  ccxt/pro/ndax.py,sha256=3cTUYVycEVaw2a13pScrQgbDWYM_JQAxZJ2LIe1q9pw,22975
@@ -413,12 +398,10 @@ ccxt/pro/p2b.py,sha256=ljmk5mQhB68D1_i0OpNS87Hp66i4YIv347IOYvDocHE,20893
413
398
  ccxt/pro/paradex.py,sha256=dVvrsdpzVK_QxPYUzQeemwaUWEo0BnsT-AZmRJSwYiY,14427
414
399
  ccxt/pro/phemex.py,sha256=cLJoHG6MUqh5osNOmecC81ZrGPQwlAX0XXoySy9nJRE,63343
415
400
  ccxt/pro/poloniex.py,sha256=BbHcQfV6HOVdBFZ8bysKWTdMQPqViQrRmMv7SpPm8uQ,53568
416
- ccxt/pro/poloniexfutures.py,sha256=3bpcwhUZ1-oNyJBSMVIowazYKwh-eEcI65FsORdfeZU,41992
417
401
  ccxt/pro/probit.py,sha256=hh8MUW_5Al6zN4rtveUKEXveDI8bStIB2az8FaGQew0,23136
418
402
  ccxt/pro/tradeogre.py,sha256=9PQUWy2YuMG2X15c-_eCF2UYt3zuJE-SvJUOtkrLmjo,10598
419
403
  ccxt/pro/upbit.py,sha256=-73dGQdyPXk6bn0XymffGCQDw5eYlRSi9HcPaahO6gY,27922
420
404
  ccxt/pro/vertex.py,sha256=byfa7yXdXvBQWvb4qabLzUAX-2bQcDN6fD70hg4SmN8,41201
421
- ccxt/pro/wazirx.py,sha256=7CJiHZX2AkB199CZv-gG-YZfD_M4n29un_TD8ixryeo,30231
422
405
  ccxt/pro/whitebit.py,sha256=JwzgvKemz15MKDe0KWY7DMELqVCNL1HDNw39DXpVL_Q,37020
423
406
  ccxt/pro/woo.py,sha256=X-7FKlqxakkXnWW_dA2z2Pk1z1Vcmws_gwreoxlfQ8M,51553
424
407
  ccxt/pro/woofipro.py,sha256=O8o5Jv4dujemKJoov8Gg4LiK9RBzPNeP3pA4XeUtRQE,51713
@@ -654,8 +637,8 @@ ccxt/test/tests_async.py,sha256=eRqVzaBGt3NGNbWs6HS85x_fNARypXYtaxDe3h-U0jc,9469
654
637
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
655
638
  ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
656
639
  ccxt/test/tests_sync.py,sha256=rlvVBtTTdQ92rof64feV-BQX3x1nzIE4HNcxUCF17O0,93656
657
- ccxt-4.4.90.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
658
- ccxt-4.4.90.dist-info/METADATA,sha256=-6N2kh3Xp18nbHgDncST39Qctg9G7tAR1AyvQNtLQo8,132387
659
- ccxt-4.4.90.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
660
- ccxt-4.4.90.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
661
- ccxt-4.4.90.dist-info/RECORD,,
640
+ ccxt-4.4.91.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
641
+ ccxt-4.4.91.dist-info/METADATA,sha256=OKz4IjraFaNDeZZMZK87uID0_wZud40wTpVG1dezVfg,131613
642
+ ccxt-4.4.91.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
643
+ ccxt-4.4.91.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
644
+ ccxt-4.4.91.dist-info/RECORD,,
ccxt/abstract/coinlist.py DELETED
@@ -1,57 +0,0 @@
1
- from ccxt.base.types import Entry
2
-
3
-
4
- class ImplicitAPI:
5
- public_get_v1_symbols = publicGetV1Symbols = Entry('v1/symbols', 'public', 'GET', {'cost': 1})
6
- public_get_v1_symbols_summary = publicGetV1SymbolsSummary = Entry('v1/symbols/summary', 'public', 'GET', {'cost': 1})
7
- public_get_v1_symbols_symbol = publicGetV1SymbolsSymbol = Entry('v1/symbols/{symbol}', 'public', 'GET', {'cost': 1})
8
- public_get_v1_symbols_symbol_summary = publicGetV1SymbolsSymbolSummary = Entry('v1/symbols/{symbol}/summary', 'public', 'GET', {'cost': 1})
9
- public_get_v1_symbols_symbol_book = publicGetV1SymbolsSymbolBook = Entry('v1/symbols/{symbol}/book', 'public', 'GET', {'cost': 1})
10
- public_get_v1_symbols_symbol_quote = publicGetV1SymbolsSymbolQuote = Entry('v1/symbols/{symbol}/quote', 'public', 'GET', {'cost': 1})
11
- public_get_v1_symbols_symbol_candles = publicGetV1SymbolsSymbolCandles = Entry('v1/symbols/{symbol}/candles', 'public', 'GET', {'cost': 1})
12
- public_get_v1_symbols_symbol_auctions = publicGetV1SymbolsSymbolAuctions = Entry('v1/symbols/{symbol}/auctions', 'public', 'GET', {'cost': 1})
13
- public_get_v1_symbols_symbol_auctions_auction_code = publicGetV1SymbolsSymbolAuctionsAuctionCode = Entry('v1/symbols/{symbol}/auctions/{auction_code}', 'public', 'GET', {'cost': 1})
14
- public_get_v1_time = publicGetV1Time = Entry('v1/time', 'public', 'GET', {'cost': 1})
15
- public_get_v1_assets = publicGetV1Assets = Entry('v1/assets', 'public', 'GET', {'cost': 1})
16
- public_get_v1_leaderboard = publicGetV1Leaderboard = Entry('v1/leaderboard', 'public', 'GET', {'cost': 1})
17
- public_get_v1_affiliate_competition_code = publicGetV1AffiliateCompetitionCode = Entry('v1/affiliate/{competition_code}', 'public', 'GET', {'cost': 1})
18
- public_get_v1_competition_competition_id = publicGetV1CompetitionCompetitionId = Entry('v1/competition/{competition_id}', 'public', 'GET', {'cost': 1})
19
- public_get_v1_symbols_symbol_funding = publicGetV1SymbolsSymbolFunding = Entry('v1/symbols/{symbol}/funding', 'public', 'GET', {'cost': 1})
20
- private_get_v1_fees = privateGetV1Fees = Entry('v1/fees', 'private', 'GET', {'cost': 1})
21
- private_get_v1_accounts = privateGetV1Accounts = Entry('v1/accounts', 'private', 'GET', {'cost': 1})
22
- private_get_v1_accounts_trader_id = privateGetV1AccountsTraderId = Entry('v1/accounts/{trader_id}', 'private', 'GET', {'cost': 1})
23
- private_get_v1_accounts_trader_id_alias = privateGetV1AccountsTraderIdAlias = Entry('v1/accounts/{trader_id}/alias', 'private', 'GET', {'cost': 1})
24
- private_get_v1_accounts_trader_id_ledger = privateGetV1AccountsTraderIdLedger = Entry('v1/accounts/{trader_id}/ledger', 'private', 'GET', {'cost': 1})
25
- private_get_v1_accounts_trader_id_wallets = privateGetV1AccountsTraderIdWallets = Entry('v1/accounts/{trader_id}/wallets', 'private', 'GET', {'cost': 1})
26
- private_get_v1_accounts_trader_id_wallet_ledger = privateGetV1AccountsTraderIdWalletLedger = Entry('v1/accounts/{trader_id}/wallet-ledger', 'private', 'GET', {'cost': 1})
27
- private_get_v1_accounts_trader_id_ledger_summary = privateGetV1AccountsTraderIdLedgerSummary = Entry('v1/accounts/{trader_id}/ledger-summary', 'private', 'GET', {'cost': 1})
28
- private_get_v1_keys = privateGetV1Keys = Entry('v1/keys', 'private', 'GET', {'cost': 1})
29
- private_get_v1_fills = privateGetV1Fills = Entry('v1/fills', 'private', 'GET', {'cost': 1})
30
- private_get_v1_orders = privateGetV1Orders = Entry('v1/orders', 'private', 'GET', {'cost': 1})
31
- private_get_v1_orders_order_id = privateGetV1OrdersOrderId = Entry('v1/orders/{order_id}', 'private', 'GET', {'cost': 1})
32
- private_get_v1_reports = privateGetV1Reports = Entry('v1/reports', 'private', 'GET', {'cost': 1})
33
- private_get_v1_balances = privateGetV1Balances = Entry('v1/balances', 'private', 'GET', {'cost': 1})
34
- private_get_v1_transfers = privateGetV1Transfers = Entry('v1/transfers', 'private', 'GET', {'cost': 1})
35
- private_get_v1_user = privateGetV1User = Entry('v1/user', 'private', 'GET', {'cost': 1})
36
- private_get_v1_credits = privateGetV1Credits = Entry('v1/credits', 'private', 'GET', {'cost': 1})
37
- private_get_v1_positions = privateGetV1Positions = Entry('v1/positions', 'private', 'GET', {'cost': 1})
38
- private_get_v1_accounts_trader_id_competitions = privateGetV1AccountsTraderIdCompetitions = Entry('v1/accounts/{trader_id}/competitions', 'private', 'GET', {'cost': 1})
39
- private_get_v1_closedpositions = privateGetV1ClosedPositions = Entry('v1/closedPositions', 'private', 'GET', {'cost': 1})
40
- private_post_v1_keys = privatePostV1Keys = Entry('v1/keys', 'private', 'POST', {'cost': 1})
41
- private_post_v1_orders = privatePostV1Orders = Entry('v1/orders', 'private', 'POST', {'cost': 1})
42
- private_post_v1_orders_cancel_all_after = privatePostV1OrdersCancelAllAfter = Entry('v1/orders/cancel-all-after', 'private', 'POST', {'cost': 1})
43
- private_post_v1_reports = privatePostV1Reports = Entry('v1/reports', 'private', 'POST', {'cost': 1})
44
- private_post_v1_transfers_to_wallet = privatePostV1TransfersToWallet = Entry('v1/transfers/to-wallet', 'private', 'POST', {'cost': 1})
45
- private_post_v1_transfers_from_wallet = privatePostV1TransfersFromWallet = Entry('v1/transfers/from-wallet', 'private', 'POST', {'cost': 1})
46
- private_post_v1_transfers_internal_transfer = privatePostV1TransfersInternalTransfer = Entry('v1/transfers/internal-transfer', 'private', 'POST', {'cost': 1})
47
- private_post_v1_transfers_withdrawal_request = privatePostV1TransfersWithdrawalRequest = Entry('v1/transfers/withdrawal-request', 'private', 'POST', {'cost': 1})
48
- private_post_v1_orders_bulk = privatePostV1OrdersBulk = Entry('v1/orders/bulk', 'private', 'POST', {'cost': 1})
49
- private_post_v1_accounts_trader_id_competitions = privatePostV1AccountsTraderIdCompetitions = Entry('v1/accounts/{trader_id}/competitions', 'private', 'POST', {'cost': 1})
50
- private_post_v1_accounts_trader_id_create_competition = privatePostV1AccountsTraderIdCreateCompetition = Entry('v1/accounts/{trader_id}/create-competition', 'private', 'POST', {'cost': 1})
51
- private_patch_v1_orders_order_id = privatePatchV1OrdersOrderId = Entry('v1/orders/{order_id}', 'private', 'PATCH', {'cost': 1})
52
- private_patch_v1_orders_bulk = privatePatchV1OrdersBulk = Entry('v1/orders/bulk', 'private', 'PATCH', {'cost': 1})
53
- private_put_v1_accounts_trader_id_alias = privatePutV1AccountsTraderIdAlias = Entry('v1/accounts/{trader_id}/alias', 'private', 'PUT', {'cost': 1})
54
- private_delete_v1_keys_key = privateDeleteV1KeysKey = Entry('v1/keys/{key}', 'private', 'DELETE', {'cost': 1})
55
- private_delete_v1_orders = privateDeleteV1Orders = Entry('v1/orders', 'private', 'DELETE', {'cost': 1})
56
- private_delete_v1_orders_order_id = privateDeleteV1OrdersOrderId = Entry('v1/orders/{order_id}', 'private', 'DELETE', {'cost': 1})
57
- private_delete_v1_orders_bulk = privateDeleteV1OrdersBulk = Entry('v1/orders/bulk', 'private', 'DELETE', {'cost': 1})
@@ -1,147 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- orjson = None
4
- try:
5
- import orjson as orjson
6
- except ImportError:
7
- pass
8
-
9
- import json
10
- from asyncio import sleep, ensure_future
11
- from aiohttp import WSMsgType
12
- from .functions import milliseconds, iso8601, is_json_encoded_object
13
- from ccxt.async_support.base.ws.client import Client
14
- from ccxt.async_support.base.ws.functions import gunzip, inflate
15
- from ccxt import NetworkError, RequestTimeout, ExchangeClosedByUser
16
-
17
-
18
- class AiohttpClient(Client):
19
-
20
- proxy = None
21
-
22
- def closed(self):
23
- return (self.connection is None) or self.connection.closed
24
-
25
- def receive(self):
26
- return self.connection.receive()
27
-
28
- # helper method for binary and text messages
29
- def handle_text_or_binary_message(self, data):
30
- if self.verbose:
31
- self.log(iso8601(milliseconds()), 'message', data)
32
- if isinstance(data, bytes):
33
- data = data.decode()
34
- # decoded = json.loads(data) if is_json_encoded_object(data) else data
35
- decode = None
36
- if is_json_encoded_object(data):
37
- if orjson is None:
38
- decode = json.loads(data)
39
- else:
40
- decode = orjson.loads(data)
41
- else:
42
- decode = data
43
- self.on_message_callback(self, decode)
44
-
45
- def handle_message(self, message):
46
- # self.log(iso8601(milliseconds()), message)
47
- if message.type == WSMsgType.TEXT:
48
- self.handle_text_or_binary_message(message.data)
49
- elif message.type == WSMsgType.BINARY:
50
- data = message.data
51
- if self.gunzip:
52
- data = gunzip(data)
53
- elif self.inflate:
54
- data = inflate(data)
55
- self.handle_text_or_binary_message(data)
56
- # autoping is responsible for automatically replying with pong
57
- # to a ping incoming from a server, we have to disable autoping
58
- # with aiohttp's websockets and respond with pong manually
59
- # otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
60
- elif message.type == WSMsgType.PING:
61
- if self.verbose:
62
- self.log(iso8601(milliseconds()), 'ping', message)
63
- ensure_future(self.connection.pong(message.data), loop=self.asyncio_loop)
64
- elif message.type == WSMsgType.PONG:
65
- self.lastPong = milliseconds()
66
- if self.verbose:
67
- self.log(iso8601(milliseconds()), 'pong', message)
68
- pass
69
- elif message.type == WSMsgType.CLOSE:
70
- if self.verbose:
71
- self.log(iso8601(milliseconds()), 'close', self.closed(), message)
72
- self.on_close(message.data)
73
- elif message.type == WSMsgType.CLOSED:
74
- if self.verbose:
75
- self.log(iso8601(milliseconds()), 'closed', self.closed(), message)
76
- self.on_close(1000)
77
- elif message.type == WSMsgType.ERROR:
78
- if self.verbose:
79
- self.log(iso8601(milliseconds()), 'error', message)
80
- error = NetworkError(str(message))
81
- self.on_error(error)
82
-
83
- def create_connection(self, session):
84
- # autoping is responsible for automatically replying with pong
85
- # to a ping incoming from a server, we have to disable autoping
86
- # with aiohttp's websockets and respond with pong manually
87
- # otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
88
- # call aenter here to simulate async with otherwise we get the error "await not called with future"
89
- # if connecting to a non-existent endpoint
90
- if (self.proxy):
91
- return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), proxy=self.proxy, max_msg_size=10485760).__aenter__()
92
- return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), max_msg_size=10485760).__aenter__()
93
-
94
- async def send(self, message):
95
- if self.verbose:
96
- self.log(iso8601(milliseconds()), 'sending', message)
97
- send_msg = None
98
- if isinstance(message, str):
99
- send_msg = message
100
- else:
101
- if orjson is None:
102
- send_msg = json.dumps(message, separators=(',', ':'))
103
- else:
104
- send_msg = orjson.dumps(message).decode('utf-8')
105
- return await self.connection.send_str(send_msg)
106
-
107
- async def close(self, code=1000):
108
- if self.verbose:
109
- self.log(iso8601(milliseconds()), 'closing', code)
110
- if not self.closed():
111
- await self.connection.close()
112
- # these will end automatically once self.closed() = True
113
- # so we don't need to cancel them
114
- if self.ping_looper:
115
- self.ping_looper.cancel()
116
- if self.receive_looper:
117
- self.receive_looper.cancel() # cancel all pending futures stored in self.futures
118
- for key in self.futures:
119
- future = self.futures[key]
120
- if not future.done():
121
- if future.is_race_future:
122
- future.cancel() # this is an "internal" future so we want to cancel it silently
123
- else:
124
- future.reject(ExchangeClosedByUser('Connection closed by the user'))
125
-
126
-
127
- async def ping_loop(self):
128
- if self.verbose:
129
- self.log(iso8601(milliseconds()), 'ping loop')
130
- while self.keepAlive and not self.closed():
131
- now = milliseconds()
132
- self.lastPong = now if self.lastPong is None else self.lastPong
133
- if (self.lastPong + self.keepAlive * self.maxPingPongMisses) < now:
134
- self.on_error(RequestTimeout('Connection to ' + self.url + ' timed out due to a ping-pong keepalive missing on time'))
135
- # the following ping-clause is not necessary with aiohttp's built-in ws
136
- # since it has a heartbeat option (see create_connection above)
137
- # however some exchanges require a text-type ping message
138
- # therefore we need this clause anyway
139
- else:
140
- if self.ping:
141
- try:
142
- await self.send(self.ping(self))
143
- except Exception as e:
144
- self.on_error(e)
145
- else:
146
- await self.connection.ping()
147
- await sleep(self.keepAlive / 1000)