ccxt 4.4.90__tar.gz → 4.4.92__tar.gz

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 (670) hide show
  1. {ccxt-4.4.90/ccxt.egg-info → ccxt-4.4.92}/PKG-INFO +6 -7
  2. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/__init__.py +1 -3
  3. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/lbank.py +1 -0
  4. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/__init__.py +1 -3
  5. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/exchange.py +6 -3
  6. ccxt-4.4.92/ccxt/async_support/base/ws/client.py +323 -0
  7. ccxt-4.4.92/ccxt/async_support/base/ws/future.py +42 -0
  8. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binance.py +1 -1
  9. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitmart.py +7 -0
  10. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitmex.py +2 -1
  11. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitvavo.py +7 -1
  12. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cex.py +61 -0
  13. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cryptocom.py +17 -2
  14. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cryptomus.py +1 -1
  15. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/exmo.py +25 -10
  16. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gate.py +2 -2
  17. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/htx.py +1 -1
  18. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hyperliquid.py +104 -53
  19. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kraken.py +26 -1
  20. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/krakenfutures.py +1 -1
  21. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/lbank.py +113 -33
  22. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/mexc.py +1 -0
  23. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/modetrade.py +2 -2
  24. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okx.py +2 -2
  25. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/paradex.py +1 -1
  26. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/exchange.py +22 -23
  27. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/types.py +1 -0
  28. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binance.py +1 -1
  29. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitmart.py +7 -0
  30. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitmex.py +2 -1
  31. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitvavo.py +7 -1
  32. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cex.py +61 -0
  33. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cryptocom.py +17 -2
  34. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cryptomus.py +1 -1
  35. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/exmo.py +24 -10
  36. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gate.py +2 -2
  37. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/htx.py +1 -1
  38. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hyperliquid.py +104 -53
  39. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kraken.py +26 -1
  40. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/krakenfutures.py +1 -1
  41. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/lbank.py +113 -33
  42. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/mexc.py +1 -0
  43. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/modetrade.py +2 -2
  44. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okx.py +2 -2
  45. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/paradex.py +1 -1
  46. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/__init__.py +1 -1
  47. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitstamp.py +1 -1
  48. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bybit.py +9 -140
  49. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kraken.py +246 -258
  50. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/mexc.py +0 -1
  51. {ccxt-4.4.90 → ccxt-4.4.92/ccxt.egg-info}/PKG-INFO +6 -7
  52. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/SOURCES.txt +0 -17
  53. {ccxt-4.4.90 → ccxt-4.4.92}/package.json +1 -1
  54. ccxt-4.4.90/ccxt/abstract/coinlist.py +0 -57
  55. ccxt-4.4.90/ccxt/async_support/base/ws/aiohttp_client.py +0 -147
  56. ccxt-4.4.90/ccxt/async_support/base/ws/client.py +0 -214
  57. ccxt-4.4.90/ccxt/async_support/base/ws/future.py +0 -69
  58. ccxt-4.4.90/ccxt/async_support/bitcoincom.py +0 -18
  59. ccxt-4.4.90/ccxt/async_support/bitfinex1.py +0 -1711
  60. ccxt-4.4.90/ccxt/async_support/bitpanda.py +0 -17
  61. ccxt-4.4.90/ccxt/async_support/coinlist.py +0 -2542
  62. ccxt-4.4.90/ccxt/async_support/poloniexfutures.py +0 -1875
  63. ccxt-4.4.90/ccxt/bitcoincom.py +0 -18
  64. ccxt-4.4.90/ccxt/bitfinex1.py +0 -1710
  65. ccxt-4.4.90/ccxt/bitpanda.py +0 -17
  66. ccxt-4.4.90/ccxt/coinlist.py +0 -2542
  67. ccxt-4.4.90/ccxt/poloniexfutures.py +0 -1875
  68. ccxt-4.4.90/ccxt/pro/bitcoincom.py +0 -35
  69. ccxt-4.4.90/ccxt/pro/bitfinex1.py +0 -635
  70. ccxt-4.4.90/ccxt/pro/bitpanda.py +0 -16
  71. ccxt-4.4.90/ccxt/pro/poloniexfutures.py +0 -1004
  72. ccxt-4.4.90/ccxt/pro/wazirx.py +0 -766
  73. {ccxt-4.4.90 → ccxt-4.4.92}/LICENSE.txt +0 -0
  74. {ccxt-4.4.90 → ccxt-4.4.92}/MANIFEST.in +0 -0
  75. {ccxt-4.4.90 → ccxt-4.4.92}/README.rst +0 -0
  76. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/__init__.py +0 -0
  77. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/alpaca.py +0 -0
  78. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/apex.py +0 -0
  79. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ascendex.py +0 -0
  80. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bequant.py +0 -0
  81. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bigone.py +0 -0
  82. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binance.py +0 -0
  83. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binancecoinm.py +0 -0
  84. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binanceus.py +0 -0
  85. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binanceusdm.py +0 -0
  86. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bingx.py +0 -0
  87. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bit2c.py +0 -0
  88. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitbank.py +0 -0
  89. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitbns.py +0 -0
  90. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitfinex.py +0 -0
  91. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitflyer.py +0 -0
  92. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitget.py +0 -0
  93. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bithumb.py +0 -0
  94. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitmart.py +0 -0
  95. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitmex.py +0 -0
  96. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitopro.py +0 -0
  97. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitrue.py +0 -0
  98. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitso.py +0 -0
  99. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitstamp.py +0 -0
  100. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitteam.py +0 -0
  101. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bittrade.py +0 -0
  102. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitvavo.py +0 -0
  103. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/blockchaincom.py +0 -0
  104. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/blofin.py +0 -0
  105. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcalpha.py +0 -0
  106. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcbox.py +0 -0
  107. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcmarkets.py +0 -0
  108. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcturk.py +0 -0
  109. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bybit.py +0 -0
  110. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cex.py +0 -0
  111. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbase.py +0 -0
  112. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseadvanced.py +0 -0
  113. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseexchange.py +0 -0
  114. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseinternational.py +0 -0
  115. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coincatch.py +0 -0
  116. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coincheck.py +0 -0
  117. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinex.py +0 -0
  118. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinmate.py +0 -0
  119. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinmetro.py +0 -0
  120. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinone.py +0 -0
  121. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinsph.py +0 -0
  122. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinspot.py +0 -0
  123. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cryptocom.py +0 -0
  124. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cryptomus.py +0 -0
  125. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/defx.py +0 -0
  126. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/delta.py +0 -0
  127. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/deribit.py +0 -0
  128. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/derive.py +0 -0
  129. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/digifinex.py +0 -0
  130. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ellipx.py +0 -0
  131. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/exmo.py +0 -0
  132. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/fmfwio.py +0 -0
  133. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gate.py +0 -0
  134. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gateio.py +0 -0
  135. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gemini.py +0 -0
  136. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hashkey.py +0 -0
  137. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hitbtc.py +0 -0
  138. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hollaex.py +0 -0
  139. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/htx.py +0 -0
  140. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/huobi.py +0 -0
  141. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hyperliquid.py +0 -0
  142. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/independentreserve.py +0 -0
  143. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/indodax.py +0 -0
  144. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kraken.py +0 -0
  145. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/krakenfutures.py +0 -0
  146. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kucoin.py +0 -0
  147. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kucoinfutures.py +0 -0
  148. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/latoken.py +0 -0
  149. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/luno.py +0 -0
  150. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/mercado.py +0 -0
  151. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/mexc.py +0 -0
  152. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/modetrade.py +0 -0
  153. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/myokx.py +0 -0
  154. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ndax.py +0 -0
  155. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/novadax.py +0 -0
  156. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/oceanex.py +0 -0
  157. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okcoin.py +0 -0
  158. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okx.py +0 -0
  159. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okxus.py +0 -0
  160. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/onetrading.py +0 -0
  161. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/oxfun.py +0 -0
  162. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/p2b.py +0 -0
  163. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/paradex.py +0 -0
  164. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/paymium.py +0 -0
  165. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/phemex.py +0 -0
  166. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/poloniex.py +0 -0
  167. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/probit.py +0 -0
  168. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/timex.py +0 -0
  169. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/tokocrypto.py +0 -0
  170. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/tradeogre.py +0 -0
  171. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/upbit.py +0 -0
  172. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/vertex.py +0 -0
  173. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/wavesexchange.py +0 -0
  174. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/whitebit.py +0 -0
  175. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/woo.py +0 -0
  176. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/woofipro.py +0 -0
  177. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/xt.py +0 -0
  178. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/yobit.py +0 -0
  179. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/zaif.py +0 -0
  180. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/zonda.py +0 -0
  181. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/alpaca.py +0 -0
  182. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/apex.py +0 -0
  183. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ascendex.py +0 -0
  184. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/alpaca.py +0 -0
  185. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/apex.py +0 -0
  186. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ascendex.py +0 -0
  187. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/__init__.py +0 -0
  188. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/throttler.py +0 -0
  189. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/__init__.py +0 -0
  190. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/cache.py +0 -0
  191. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/functions.py +0 -0
  192. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/order_book.py +0 -0
  193. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  194. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bequant.py +0 -0
  195. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bigone.py +0 -0
  196. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binancecoinm.py +0 -0
  197. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binanceus.py +0 -0
  198. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binanceusdm.py +0 -0
  199. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bingx.py +0 -0
  200. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bit2c.py +0 -0
  201. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitbank.py +0 -0
  202. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitbns.py +0 -0
  203. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitfinex.py +0 -0
  204. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitflyer.py +0 -0
  205. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitget.py +0 -0
  206. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bithumb.py +0 -0
  207. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitopro.py +0 -0
  208. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitrue.py +0 -0
  209. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitso.py +0 -0
  210. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitstamp.py +0 -0
  211. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitteam.py +0 -0
  212. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bittrade.py +0 -0
  213. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/blockchaincom.py +0 -0
  214. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/blofin.py +0 -0
  215. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcalpha.py +0 -0
  216. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcbox.py +0 -0
  217. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcmarkets.py +0 -0
  218. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcturk.py +0 -0
  219. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bybit.py +0 -0
  220. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbase.py +0 -0
  221. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseadvanced.py +0 -0
  222. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseexchange.py +0 -0
  223. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseinternational.py +0 -0
  224. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coincatch.py +0 -0
  225. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coincheck.py +0 -0
  226. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinex.py +0 -0
  227. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinmate.py +0 -0
  228. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinmetro.py +0 -0
  229. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinone.py +0 -0
  230. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinsph.py +0 -0
  231. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinspot.py +0 -0
  232. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/defx.py +0 -0
  233. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/delta.py +0 -0
  234. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/deribit.py +0 -0
  235. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/derive.py +0 -0
  236. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/digifinex.py +0 -0
  237. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ellipx.py +0 -0
  238. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/fmfwio.py +0 -0
  239. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gateio.py +0 -0
  240. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gemini.py +0 -0
  241. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hashkey.py +0 -0
  242. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hitbtc.py +0 -0
  243. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hollaex.py +0 -0
  244. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/huobi.py +0 -0
  245. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/independentreserve.py +0 -0
  246. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/indodax.py +0 -0
  247. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kucoin.py +0 -0
  248. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kucoinfutures.py +0 -0
  249. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/latoken.py +0 -0
  250. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/luno.py +0 -0
  251. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/mercado.py +0 -0
  252. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/myokx.py +0 -0
  253. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ndax.py +0 -0
  254. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/novadax.py +0 -0
  255. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/oceanex.py +0 -0
  256. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okcoin.py +0 -0
  257. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okxus.py +0 -0
  258. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/onetrading.py +0 -0
  259. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/oxfun.py +0 -0
  260. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/p2b.py +0 -0
  261. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/paymium.py +0 -0
  262. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/phemex.py +0 -0
  263. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/poloniex.py +0 -0
  264. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/probit.py +0 -0
  265. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/timex.py +0 -0
  266. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/tokocrypto.py +0 -0
  267. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/tradeogre.py +0 -0
  268. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/upbit.py +0 -0
  269. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/vertex.py +0 -0
  270. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/wavesexchange.py +0 -0
  271. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/whitebit.py +0 -0
  272. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/woo.py +0 -0
  273. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/woofipro.py +0 -0
  274. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/xt.py +0 -0
  275. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/yobit.py +0 -0
  276. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/zaif.py +0 -0
  277. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/zonda.py +0 -0
  278. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/__init__.py +0 -0
  279. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/decimal_to_precision.py +0 -0
  280. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/errors.py +0 -0
  281. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/precise.py +0 -0
  282. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bequant.py +0 -0
  283. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bigone.py +0 -0
  284. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binancecoinm.py +0 -0
  285. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binanceus.py +0 -0
  286. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binanceusdm.py +0 -0
  287. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bingx.py +0 -0
  288. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bit2c.py +0 -0
  289. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitbank.py +0 -0
  290. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitbns.py +0 -0
  291. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitfinex.py +0 -0
  292. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitflyer.py +0 -0
  293. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitget.py +0 -0
  294. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bithumb.py +0 -0
  295. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitopro.py +0 -0
  296. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitrue.py +0 -0
  297. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitso.py +0 -0
  298. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitstamp.py +0 -0
  299. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitteam.py +0 -0
  300. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bittrade.py +0 -0
  301. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/blockchaincom.py +0 -0
  302. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/blofin.py +0 -0
  303. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcalpha.py +0 -0
  304. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcbox.py +0 -0
  305. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcmarkets.py +0 -0
  306. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcturk.py +0 -0
  307. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bybit.py +0 -0
  308. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbase.py +0 -0
  309. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseadvanced.py +0 -0
  310. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseexchange.py +0 -0
  311. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseinternational.py +0 -0
  312. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coincatch.py +0 -0
  313. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coincheck.py +0 -0
  314. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinex.py +0 -0
  315. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinmate.py +0 -0
  316. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinmetro.py +0 -0
  317. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinone.py +0 -0
  318. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinsph.py +0 -0
  319. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinspot.py +0 -0
  320. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/defx.py +0 -0
  321. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/delta.py +0 -0
  322. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/deribit.py +0 -0
  323. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/derive.py +0 -0
  324. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/digifinex.py +0 -0
  325. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ellipx.py +0 -0
  326. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/fmfwio.py +0 -0
  327. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gateio.py +0 -0
  328. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gemini.py +0 -0
  329. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hashkey.py +0 -0
  330. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hitbtc.py +0 -0
  331. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hollaex.py +0 -0
  332. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/huobi.py +0 -0
  333. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/independentreserve.py +0 -0
  334. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/indodax.py +0 -0
  335. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kucoin.py +0 -0
  336. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kucoinfutures.py +0 -0
  337. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/latoken.py +0 -0
  338. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/luno.py +0 -0
  339. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/mercado.py +0 -0
  340. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/myokx.py +0 -0
  341. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ndax.py +0 -0
  342. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/novadax.py +0 -0
  343. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/oceanex.py +0 -0
  344. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okcoin.py +0 -0
  345. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okxus.py +0 -0
  346. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/onetrading.py +0 -0
  347. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/oxfun.py +0 -0
  348. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/p2b.py +0 -0
  349. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/paymium.py +0 -0
  350. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/phemex.py +0 -0
  351. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/poloniex.py +0 -0
  352. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/alpaca.py +0 -0
  353. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/apex.py +0 -0
  354. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/ascendex.py +0 -0
  355. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bequant.py +0 -0
  356. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binance.py +0 -0
  357. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binancecoinm.py +0 -0
  358. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binanceus.py +0 -0
  359. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binanceusdm.py +0 -0
  360. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bingx.py +0 -0
  361. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitfinex.py +0 -0
  362. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitget.py +0 -0
  363. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bithumb.py +0 -0
  364. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitmart.py +0 -0
  365. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitmex.py +0 -0
  366. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitopro.py +0 -0
  367. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitrue.py +0 -0
  368. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bittrade.py +0 -0
  369. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitvavo.py +0 -0
  370. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/blockchaincom.py +0 -0
  371. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/blofin.py +0 -0
  372. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/cex.py +0 -0
  373. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbase.py +0 -0
  374. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseadvanced.py +0 -0
  375. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseexchange.py +0 -0
  376. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseinternational.py +0 -0
  377. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coincatch.py +0 -0
  378. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coincheck.py +0 -0
  379. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinex.py +0 -0
  380. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinone.py +0 -0
  381. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/cryptocom.py +0 -0
  382. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/defx.py +0 -0
  383. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/deribit.py +0 -0
  384. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/derive.py +0 -0
  385. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/exmo.py +0 -0
  386. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gate.py +0 -0
  387. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gateio.py +0 -0
  388. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gemini.py +0 -0
  389. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hashkey.py +0 -0
  390. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hitbtc.py +0 -0
  391. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hollaex.py +0 -0
  392. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/htx.py +0 -0
  393. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/huobi.py +0 -0
  394. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hyperliquid.py +0 -0
  395. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/independentreserve.py +0 -0
  396. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/krakenfutures.py +0 -0
  397. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kucoin.py +0 -0
  398. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kucoinfutures.py +0 -0
  399. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/lbank.py +0 -0
  400. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/luno.py +0 -0
  401. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/modetrade.py +0 -0
  402. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/myokx.py +0 -0
  403. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/ndax.py +0 -0
  404. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okcoin.py +0 -0
  405. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okx.py +0 -0
  406. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okxus.py +0 -0
  407. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/onetrading.py +0 -0
  408. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/oxfun.py +0 -0
  409. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/p2b.py +0 -0
  410. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/paradex.py +0 -0
  411. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/phemex.py +0 -0
  412. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/poloniex.py +0 -0
  413. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/probit.py +0 -0
  414. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/tradeogre.py +0 -0
  415. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/upbit.py +0 -0
  416. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/vertex.py +0 -0
  417. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/whitebit.py +0 -0
  418. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/woo.py +0 -0
  419. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/woofipro.py +0 -0
  420. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/xt.py +0 -0
  421. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/probit.py +0 -0
  422. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/__init__.py +0 -0
  423. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  424. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  425. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  426. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  427. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  428. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  429. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  430. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  431. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  432. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  433. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  434. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  435. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  436. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  437. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  438. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  439. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  440. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  441. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  442. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  443. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  444. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  445. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  446. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  447. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  448. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  449. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  450. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  451. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  452. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  453. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  454. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  455. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  456. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  457. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  458. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  459. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  460. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  461. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  462. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  463. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  464. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  465. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  466. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  467. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  468. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  469. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  470. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  471. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  472. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  473. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  474. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  475. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  476. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  477. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  478. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  479. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  480. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  481. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  482. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  483. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  484. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  485. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  486. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  487. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  488. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  489. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  490. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  491. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  492. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  493. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  494. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  495. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  496. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  497. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__init__.py +0 -0
  498. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  499. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  500. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  501. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/common.py +0 -0
  502. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  503. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/grammar.py +0 -0
  504. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  505. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/indenter.py +0 -0
  506. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/lark.py +0 -0
  507. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/lexer.py +0 -0
  508. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  509. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  510. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  511. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  512. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  513. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  514. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  515. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  516. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  517. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  518. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  519. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  520. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  521. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  522. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/py.typed +0 -0
  523. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  524. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  525. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  526. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  527. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  528. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree.py +0 -0
  529. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  530. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  531. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/utils.py +0 -0
  532. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/visitors.py +0 -0
  533. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  534. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  535. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  536. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  537. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  538. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  539. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  540. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  541. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  542. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  543. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  544. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  545. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  546. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  547. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  548. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  549. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  550. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  551. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  552. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  553. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  554. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  555. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  556. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  557. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  558. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  559. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  560. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  561. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  562. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  563. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  564. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  565. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  566. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  567. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  568. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  569. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  570. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  571. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  572. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  573. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  574. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  575. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  576. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  577. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  578. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  579. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  580. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  581. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/common.py +0 -0
  582. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/constants.py +0 -0
  583. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  584. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  585. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  586. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  587. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  588. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  589. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  590. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  591. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  592. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  593. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  594. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  595. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  596. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  597. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  598. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  599. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  600. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  601. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  602. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  603. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  604. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  605. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  606. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  607. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  608. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  609. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  610. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  611. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  612. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  613. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  614. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  615. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  616. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  617. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  618. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  619. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  620. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  621. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  622. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  623. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  624. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  625. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  626. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  627. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  628. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  629. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  630. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  631. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  632. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  633. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  634. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  635. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  636. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/_version.py +0 -0
  637. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  638. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  639. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  640. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  641. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  642. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  643. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  644. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  645. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/utils.py +0 -0
  646. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  647. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  648. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/__init__.py +0 -0
  649. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_async.py +0 -0
  650. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_helpers.py +0 -0
  651. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_init.py +0 -0
  652. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_sync.py +0 -0
  653. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/timex.py +0 -0
  654. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/tokocrypto.py +0 -0
  655. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/tradeogre.py +0 -0
  656. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/upbit.py +0 -0
  657. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/vertex.py +0 -0
  658. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/wavesexchange.py +0 -0
  659. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/whitebit.py +0 -0
  660. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/woo.py +0 -0
  661. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/woofipro.py +0 -0
  662. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/xt.py +0 -0
  663. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/yobit.py +0 -0
  664. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/zaif.py +0 -0
  665. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/zonda.py +0 -0
  666. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/dependency_links.txt +0 -0
  667. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/requires.txt +0 -0
  668. {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/top_level.txt +0 -0
  669. {ccxt-4.4.90 → ccxt-4.4.92}/setup.cfg +0 -0
  670. {ccxt-4.4.90 → ccxt-4.4.92}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.90
3
+ Version: 4.4.92
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
@@ -38,7 +38,7 @@ License-File: LICENSE.txt
38
38
 
39
39
  # CCXT – CryptoCurrency eXchange Trading Library
40
40
 
41
- [![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)
41
+ [![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)
42
42
 
43
43
  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.
44
44
 
@@ -91,7 +91,7 @@ Current feature list:
91
91
  | [![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) |
92
92
 
93
93
  ## Supported Cryptocurrency Exchanges
94
- <!--- init list -->The CCXT library currently supports the following 103 cryptocurrency exchange markets and trading APIs:
94
+ <!--- init list -->The CCXT library currently supports the following 102 cryptocurrency exchange markets and trading APIs:
95
95
 
96
96
  |logo |id |name |ver |type |certified |pro |
97
97
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
@@ -135,7 +135,6 @@ Current feature list:
135
135
  | [![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) |
136
136
  | [![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") | | |
137
137
  | [![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) |
138
- | [![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") | | |
139
138
  | [![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") | | |
140
139
  | [![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") | | |
141
140
  | [![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") | | |
@@ -259,13 +258,13 @@ console.log(version, Object.keys(exchanges));
259
258
 
260
259
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
261
260
 
262
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.90/dist/ccxt.browser.min.js
263
- * unpkg: https://unpkg.com/ccxt@4.4.90/dist/ccxt.browser.min.js
261
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.92/dist/ccxt.browser.min.js
262
+ * unpkg: https://unpkg.com/ccxt@4.4.92/dist/ccxt.browser.min.js
264
263
 
265
264
  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.
266
265
 
267
266
  ```HTML
268
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.90/dist/ccxt.browser.min.js"></script>
267
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.92/dist/ccxt.browser.min.js"></script>
269
268
  ```
270
269
 
271
270
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.90'
25
+ __version__ = '4.4.92'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -124,7 +124,6 @@ from ccxt.coinbaseinternational import coinbaseinternational # noqa: F4
124
124
  from ccxt.coincatch import coincatch # noqa: F401
125
125
  from ccxt.coincheck import coincheck # noqa: F401
126
126
  from ccxt.coinex import coinex # noqa: F401
127
- from ccxt.coinlist import coinlist # noqa: F401
128
127
  from ccxt.coinmate import coinmate # noqa: F401
129
128
  from ccxt.coinmetro import coinmetro # noqa: F401
130
129
  from ccxt.coinone import coinone # noqa: F401
@@ -232,7 +231,6 @@ exchanges = [
232
231
  'coincatch',
233
232
  'coincheck',
234
233
  'coinex',
235
- 'coinlist',
236
234
  'coinmate',
237
235
  'coinmetro',
238
236
  'coinone',
@@ -5,6 +5,7 @@ class ImplicitAPI:
5
5
  spot_public_get_currencypairs = spotPublicGetCurrencyPairs = Entry('currencyPairs', ['spot', 'public'], 'GET', {'cost': 2.5})
6
6
  spot_public_get_accuracy = spotPublicGetAccuracy = Entry('accuracy', ['spot', 'public'], 'GET', {'cost': 2.5})
7
7
  spot_public_get_usdtocny = spotPublicGetUsdToCny = Entry('usdToCny', ['spot', 'public'], 'GET', {'cost': 2.5})
8
+ spot_public_get_assetconfigs = spotPublicGetAssetConfigs = Entry('assetConfigs', ['spot', 'public'], 'GET', {'cost': 2.5})
8
9
  spot_public_get_withdrawconfigs = spotPublicGetWithdrawConfigs = Entry('withdrawConfigs', ['spot', 'public'], 'GET', {'cost': 2.5})
9
10
  spot_public_get_timestamp = spotPublicGetTimestamp = Entry('timestamp', ['spot', 'public'], 'GET', {'cost': 2.5})
10
11
  spot_public_get_ticker_24hr = spotPublicGetTicker24hr = Entry('ticker/24hr', ['spot', 'public'], 'GET', {'cost': 2.5})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.90'
7
+ __version__ = '4.4.92'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -104,7 +104,6 @@ from ccxt.async_support.coinbaseinternational import coinbaseinternational
104
104
  from ccxt.async_support.coincatch import coincatch # noqa: F401
105
105
  from ccxt.async_support.coincheck import coincheck # noqa: F401
106
106
  from ccxt.async_support.coinex import coinex # noqa: F401
107
- from ccxt.async_support.coinlist import coinlist # noqa: F401
108
107
  from ccxt.async_support.coinmate import coinmate # noqa: F401
109
108
  from ccxt.async_support.coinmetro import coinmetro # noqa: F401
110
109
  from ccxt.async_support.coinone import coinone # noqa: F401
@@ -212,7 +211,6 @@ exchanges = [
212
211
  'coincatch',
213
212
  'coincheck',
214
213
  'coinex',
215
- 'coinlist',
216
214
  'coinmate',
217
215
  'coinmetro',
218
216
  'coinone',
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.90'
5
+ __version__ = '4.4.92'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -34,7 +34,7 @@ from ccxt.base.exchange import Exchange as BaseExchange, ArgumentsRequired
34
34
  # -----------------------------------------------------------------------------
35
35
 
36
36
  from ccxt.async_support.base.ws.functions import inflate, inflate64, gunzip
37
- from ccxt.async_support.base.ws.aiohttp_client import AiohttpClient
37
+ from ccxt.async_support.base.ws.client import Client
38
38
  from ccxt.async_support.base.ws.future import Future
39
39
  from ccxt.async_support.base.ws.order_book import OrderBook, IndexedOrderBook, CountedOrderBook
40
40
 
@@ -419,7 +419,7 @@ class Exchange(BaseExchange):
419
419
  }, ws_options)
420
420
  # we use aiohttp instead of fastClient now because of this
421
421
  # https://github.com/ccxt/ccxt/pull/25995
422
- self.clients[url] = AiohttpClient(url, on_message, on_error, on_close, on_connected, options)
422
+ self.clients[url] = Client(url, on_message, on_error, on_close, on_connected, options)
423
423
  # set http/s proxy (socks proxy should be set in other place)
424
424
  httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
425
425
  if (httpProxy or httpsProxy):
@@ -638,6 +638,9 @@ class Exchange(BaseExchange):
638
638
  async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
639
639
  raise NotSupported(self.id + ' watchTrades() is not supported yet')
640
640
 
641
+ async def un_watch_orders(self, symbol: Str = None, params={}):
642
+ raise NotSupported(self.id + ' unWatchOrders() is not supported yet')
643
+
641
644
  async def un_watch_trades(self, symbol: str, params={}):
642
645
  raise NotSupported(self.id + ' unWatchTrades() is not supported yet')
643
646
 
@@ -0,0 +1,323 @@
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
+
11
+ from asyncio import sleep, ensure_future, wait_for, TimeoutError, BaseEventLoop, Future as asyncioFuture
12
+ from .functions import milliseconds, iso8601, deep_extend, is_json_encoded_object
13
+ from ccxt import NetworkError, RequestTimeout
14
+ from ccxt.async_support.base.ws.future import Future
15
+ from ccxt.async_support.base.ws.functions import gunzip, inflate
16
+ from typing import Dict
17
+
18
+ from aiohttp import WSMsgType
19
+
20
+
21
+ class Client(object):
22
+
23
+ url = None
24
+ ws = None
25
+ futures: Dict[str, Future] = {}
26
+ options = {} # ws-specific options
27
+ subscriptions = {}
28
+ rejections = {}
29
+ on_message_callback = None
30
+ on_error_callback = None
31
+ on_close_callback = None
32
+ on_connected_callback = None
33
+ connectionStarted = None
34
+ connectionEstablished = None
35
+ isConnected = False
36
+ connectionTimeout = 10000 # ms, false to disable
37
+ connection = None
38
+ error = None # low-level networking exception, if any
39
+ connected = None # connection-related Future
40
+ keepAlive = 5000
41
+ heartbeat = True
42
+ maxPingPongMisses = 2.0 # how many missed pongs to raise a timeout
43
+ lastPong = None
44
+ ping = None # ping-function if defined
45
+ proxy = None
46
+ verbose = False # verbose output
47
+ gunzip = False
48
+ inflate = False
49
+ throttle = None
50
+ connecting = False
51
+ asyncio_loop: BaseEventLoop = None
52
+ ping_looper = None
53
+
54
+ def __init__(self, url, on_message_callback, on_error_callback, on_close_callback, on_connected_callback, config={}):
55
+ defaults = {
56
+ 'url': url,
57
+ 'futures': {},
58
+ 'subscriptions': {},
59
+ 'rejections': {},
60
+ 'on_message_callback': on_message_callback,
61
+ 'on_error_callback': on_error_callback,
62
+ 'on_close_callback': on_close_callback,
63
+ 'on_connected_callback': on_connected_callback,
64
+ }
65
+ settings = {}
66
+ settings.update(defaults)
67
+ settings.update(config)
68
+ for key in settings:
69
+ if hasattr(self, key) and isinstance(getattr(self, key), dict):
70
+ setattr(self, key, deep_extend(getattr(self, key), settings[key]))
71
+ else:
72
+ setattr(self, key, settings[key])
73
+ # connection-related Future
74
+ self.connected = Future()
75
+
76
+ def future(self, message_hash):
77
+ if message_hash not in self.futures or self.futures[message_hash].cancelled():
78
+ self.futures[message_hash] = Future()
79
+ future = self.futures[message_hash]
80
+ if message_hash in self.rejections:
81
+ future.reject(self.rejections[message_hash])
82
+ del self.rejections[message_hash]
83
+ return future
84
+
85
+ def resolve(self, result, message_hash):
86
+ if self.verbose and message_hash is None:
87
+ self.log(iso8601(milliseconds()), 'resolve received None messageHash')
88
+ if message_hash in self.futures:
89
+ future = self.futures[message_hash]
90
+ future.resolve(result)
91
+ del self.futures[message_hash]
92
+ return result
93
+
94
+ def reject(self, result, message_hash=None):
95
+ if message_hash is not None:
96
+ if message_hash in self.futures:
97
+ future = self.futures[message_hash]
98
+ future.reject(result)
99
+ del self.futures[message_hash]
100
+ else:
101
+ self.rejections[message_hash] = result
102
+ else:
103
+ message_hashes = list(self.futures.keys())
104
+ for message_hash in message_hashes:
105
+ self.reject(result, message_hash)
106
+ return result
107
+
108
+ def receive_loop(self):
109
+ if self.verbose:
110
+ self.log(iso8601(milliseconds()), 'receive loop')
111
+ if not self.closed():
112
+ # let's drain the aiohttp buffer to avoid latency
113
+ if len(self.buffer) > 1:
114
+ size_delta = 0
115
+ while len(self.buffer) > 1:
116
+ message, size = self.buffer.popleft()
117
+ size_delta += size
118
+ self.handle_message(message)
119
+ # we must update the size of the last message inside WebSocketDataQueue
120
+ # self.receive() calls WebSocketDataQueue.read() that calls WebSocketDataQueue._read_from_buffer()
121
+ # which updates the size of the buffer, the _size will overflow and pause the transport
122
+ # make sure to set the enviroment variable AIOHTTP_NO_EXTENSIONS=Y to check
123
+ # print(self.connection._conn.protocol._payload._size)
124
+ self.buffer[0] = (self.buffer[0][0], self.buffer[0][1] + size_delta)
125
+
126
+ task = self.asyncio_loop.create_task(self.receive())
127
+
128
+ def after_interrupt(resolved: asyncioFuture):
129
+ exception = resolved.exception()
130
+ if exception is None:
131
+ self.handle_message(resolved.result())
132
+ self.asyncio_loop.call_soon(self.receive_loop)
133
+ else:
134
+ error = NetworkError(str(exception))
135
+ if self.verbose:
136
+ self.log(iso8601(milliseconds()), 'receive_loop', 'Exception', error)
137
+ self.reject(error)
138
+
139
+ task.add_done_callback(after_interrupt)
140
+
141
+ async def open(self, session, backoff_delay=0):
142
+ # exponential backoff for consequent connections if necessary
143
+ if backoff_delay:
144
+ await sleep(backoff_delay)
145
+ if self.verbose:
146
+ self.log(iso8601(milliseconds()), 'connecting to', self.url, 'with timeout', self.connectionTimeout, 'ms')
147
+ self.connectionStarted = milliseconds()
148
+ try:
149
+ coroutine = self.create_connection(session)
150
+ self.connection = await wait_for(coroutine, timeout=int(self.connectionTimeout / 1000))
151
+ self.connecting = False
152
+ self.connectionEstablished = milliseconds()
153
+ self.isConnected = True
154
+ if self.verbose:
155
+ self.log(iso8601(milliseconds()), 'connected')
156
+ self.connected.resolve(self.url)
157
+ self.on_connected_callback(self)
158
+ # run both loops forever
159
+ self.ping_looper = ensure_future(self.ping_loop(), loop=self.asyncio_loop)
160
+ self.asyncio_loop.call_soon(self.receive_loop)
161
+ except TimeoutError:
162
+ # connection timeout
163
+ error = RequestTimeout('Connection timeout')
164
+ if self.verbose:
165
+ self.log(iso8601(milliseconds()), 'RequestTimeout', error)
166
+ self.on_error(error)
167
+ except Exception as e:
168
+ # connection failed or rejected (ConnectionRefusedError, ClientConnectorError)
169
+ error = NetworkError(e)
170
+ if self.verbose:
171
+ self.log(iso8601(milliseconds()), 'NetworkError', error)
172
+ self.on_error(error)
173
+
174
+ @property
175
+ def buffer(self):
176
+ # looks like they exposed it in C
177
+ # this means we can bypass it
178
+ # https://github.com/aio-libs/aiohttp/blob/master/aiohttp/_websocket/reader_c.pxd#L53C24-L53C31
179
+ return self.connection._conn.protocol._payload._buffer
180
+
181
+ def connect(self, session, backoff_delay=0):
182
+ if not self.connection and not self.connecting:
183
+ self.connecting = True
184
+ ensure_future(self.open(session, backoff_delay), loop=self.asyncio_loop)
185
+ return self.connected
186
+
187
+ def on_error(self, error):
188
+ if self.verbose:
189
+ self.log(iso8601(milliseconds()), 'on_error', error)
190
+ self.error = error
191
+ self.reject(error)
192
+ self.on_error_callback(self, error)
193
+ if not self.closed():
194
+ ensure_future(self.close(1006), loop=self.asyncio_loop)
195
+
196
+ def on_close(self, code):
197
+ if self.verbose:
198
+ self.log(iso8601(milliseconds()), 'on_close', code)
199
+ if not self.error:
200
+ self.reject(NetworkError('Connection closed by remote server, closing code ' + str(code)))
201
+ self.on_close_callback(self, code)
202
+ ensure_future(self.aiohttp_close(), loop=self.asyncio_loop)
203
+
204
+ def log(self, *args):
205
+ print(*args)
206
+
207
+ def closed(self):
208
+ return (self.connection is None) or self.connection.closed
209
+
210
+ def receive(self):
211
+ return self.connection.receive()
212
+
213
+ # helper method for binary and text messages
214
+ def handle_text_or_binary_message(self, data):
215
+ if self.verbose:
216
+ self.log(iso8601(milliseconds()), 'message', data)
217
+ if isinstance(data, bytes):
218
+ data = data.decode()
219
+ # decoded = json.loads(data) if is_json_encoded_object(data) else data
220
+ decode = None
221
+ if is_json_encoded_object(data):
222
+ if orjson is None:
223
+ decode = json.loads(data)
224
+ else:
225
+ decode = orjson.loads(data)
226
+ else:
227
+ decode = data
228
+ self.on_message_callback(self, decode)
229
+
230
+ def handle_message(self, message):
231
+ # self.log(iso8601(milliseconds()), message)
232
+ if message.type == WSMsgType.TEXT:
233
+ self.handle_text_or_binary_message(message.data)
234
+ elif message.type == WSMsgType.BINARY:
235
+ data = message.data
236
+ if self.gunzip:
237
+ data = gunzip(data)
238
+ elif self.inflate:
239
+ data = inflate(data)
240
+ self.handle_text_or_binary_message(data)
241
+ # autoping is responsible for automatically replying with pong
242
+ # to a ping incoming from a server, we have to disable autoping
243
+ # with aiohttp's websockets and respond with pong manually
244
+ # otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
245
+ elif message.type == WSMsgType.PING:
246
+ if self.verbose:
247
+ self.log(iso8601(milliseconds()), 'ping', message)
248
+ ensure_future(self.connection.pong(message.data), loop=self.asyncio_loop)
249
+ elif message.type == WSMsgType.PONG:
250
+ self.lastPong = milliseconds()
251
+ if self.verbose:
252
+ self.log(iso8601(milliseconds()), 'pong', message)
253
+ pass
254
+ elif message.type == WSMsgType.CLOSE:
255
+ if self.verbose:
256
+ self.log(iso8601(milliseconds()), 'close', self.closed(), message)
257
+ self.on_close(message.data)
258
+ elif message.type == WSMsgType.ERROR:
259
+ if self.verbose:
260
+ self.log(iso8601(milliseconds()), 'error', message)
261
+ error = NetworkError(str(message))
262
+ self.on_error(error)
263
+
264
+ def create_connection(self, session):
265
+ # autoping is responsible for automatically replying with pong
266
+ # to a ping incoming from a server, we have to disable autoping
267
+ # with aiohttp's websockets and respond with pong manually
268
+ # otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
269
+ # call aenter here to simulate async with otherwise we get the error "await not called with future"
270
+ # if connecting to a non-existent endpoint
271
+ if (self.proxy):
272
+ return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), proxy=self.proxy, max_msg_size=10485760).__aenter__()
273
+ return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), max_msg_size=10485760).__aenter__()
274
+
275
+ async def send(self, message):
276
+ if self.verbose:
277
+ self.log(iso8601(milliseconds()), 'sending', message)
278
+ send_msg = None
279
+ if isinstance(message, str):
280
+ send_msg = message
281
+ else:
282
+ if orjson is None:
283
+ send_msg = json.dumps(message, separators=(',', ':'))
284
+ else:
285
+ send_msg = orjson.dumps(message).decode('utf-8')
286
+ return await self.connection.send_str(send_msg)
287
+
288
+ async def close(self, code=1000):
289
+ if self.verbose:
290
+ self.log(iso8601(milliseconds()), 'closing', code)
291
+ for future in self.futures.values():
292
+ future.cancel()
293
+ await self.aiohttp_close()
294
+
295
+ async def aiohttp_close(self):
296
+ if not self.closed():
297
+ await self.connection.close()
298
+ # these will end automatically once self.closed() = True
299
+ # so we don't need to cancel them
300
+ if self.ping_looper:
301
+ self.ping_looper.cancel()
302
+
303
+ async def ping_loop(self):
304
+ if self.verbose:
305
+ self.log(iso8601(milliseconds()), 'ping loop')
306
+ while self.keepAlive and not self.closed():
307
+ now = milliseconds()
308
+ self.lastPong = now if self.lastPong is None else self.lastPong
309
+ if (self.lastPong + self.keepAlive * self.maxPingPongMisses) < now:
310
+ self.on_error(RequestTimeout('Connection to ' + self.url + ' timed out due to a ping-pong keepalive missing on time'))
311
+ # the following ping-clause is not necessary with aiohttp's built-in ws
312
+ # since it has a heartbeat option (see create_connection above)
313
+ # however some exchanges require a text-type ping message
314
+ # therefore we need this clause anyway
315
+ else:
316
+ if self.ping:
317
+ try:
318
+ await self.send(self.ping(self))
319
+ except Exception as e:
320
+ self.on_error(e)
321
+ else:
322
+ await self.connection.ping()
323
+ await sleep(self.keepAlive / 1000)
@@ -0,0 +1,42 @@
1
+ import asyncio
2
+
3
+
4
+ class Future(asyncio.Future):
5
+
6
+ def resolve(self, result=None):
7
+ if not self.done():
8
+ self.set_result(result)
9
+
10
+ def reject(self, error=None):
11
+ if not self.done():
12
+ self.set_exception(error)
13
+
14
+ @classmethod
15
+ def race(cls, futures):
16
+ future = Future()
17
+ coro = asyncio.wait(futures, return_when=asyncio.FIRST_COMPLETED)
18
+ task = asyncio.create_task(coro)
19
+
20
+ def callback(done):
21
+ complete, _ = done.result()
22
+ # check for exceptions
23
+ exceptions = []
24
+ cancelled = False
25
+ for f in complete:
26
+ if f.cancelled():
27
+ cancelled = True
28
+ else:
29
+ err = f.exception()
30
+ if err:
31
+ exceptions.append(err)
32
+ # if any exceptions return with first exception
33
+ if len(exceptions) > 0:
34
+ future.set_exception(exceptions[0])
35
+ # else return first result
36
+ elif cancelled:
37
+ future.cancel()
38
+ else:
39
+ first_result = list(complete)[0].result()
40
+ future.set_result(first_result)
41
+ task.add_done_callback(callback)
42
+ return future
@@ -3904,7 +3904,7 @@ class binance(Exchange, ImplicitAPI):
3904
3904
  #
3905
3905
  # {
3906
3906
  # "symbol": "BTCUSDT",
3907
- # "markPrice": "11793.63104562", # mark price
3907
+ # "markPrice": "11793.63104561", # mark price
3908
3908
  # "indexPrice": "11781.80495970", # index price
3909
3909
  # "estimatedSettlePrice": "11781.16138815", # Estimated Settle Price, only useful in the last hour before the settlement starts
3910
3910
  # "lastFundingRate": "0.00038246", # This is the lastest estimated funding rate
@@ -2160,6 +2160,7 @@ class bitmart(Exchange, ImplicitAPI):
2160
2160
  :param dict [params]: extra parameters specific to the exchange API endpoint
2161
2161
  :param int [params.until]: the latest time in ms to fetch trades for
2162
2162
  :param boolean [params.marginMode]: *spot* whether to fetch trades for margin orders or spot orders, defaults to spot orders(only isolated margin orders are supported)
2163
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
2163
2164
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
2164
2165
  """
2165
2166
  await self.load_markets()
@@ -2264,6 +2265,7 @@ class bitmart(Exchange, ImplicitAPI):
2264
2265
  :param int [since]: the earliest time in ms to fetch trades for
2265
2266
  :param int [limit]: the maximum number of trades to retrieve
2266
2267
  :param dict [params]: extra parameters specific to the exchange API endpoint
2268
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
2267
2269
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
2268
2270
  """
2269
2271
  await self.load_markets()
@@ -2706,6 +2708,7 @@ class bitmart(Exchange, ImplicitAPI):
2706
2708
  :param str [params.stopLossPrice]: *swap only* the price to trigger a stop-loss order
2707
2709
  :param str [params.takeProfitPrice]: *swap only* the price to trigger a take-profit order
2708
2710
  :param int [params.plan_category]: *swap tp/sl only* 1: tp/sl, 2: position tp/sl, default is 1
2711
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
2709
2712
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2710
2713
  """
2711
2714
  await self.load_markets()
@@ -2768,6 +2771,7 @@ class bitmart(Exchange, ImplicitAPI):
2768
2771
 
2769
2772
  :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
2770
2773
  :param dict [params]: extra parameters specific to the exchange API endpoint
2774
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
2771
2775
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2772
2776
  """
2773
2777
  await self.load_markets()
@@ -3270,6 +3274,7 @@ class bitmart(Exchange, ImplicitAPI):
3270
3274
  :param str [params.orderType]: *swap only* 'limit', 'market', or 'trailing'
3271
3275
  :param boolean [params.trailing]: *swap only* set to True if you want to fetch trailing orders
3272
3276
  :param boolean [params.trigger]: *swap only* set to True if you want to fetch trigger orders
3277
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
3273
3278
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
3274
3279
  """
3275
3280
  await self.load_markets()
@@ -3383,6 +3388,7 @@ class bitmart(Exchange, ImplicitAPI):
3383
3388
  :param dict [params]: extra parameters specific to the exchange API endpoint
3384
3389
  :param int [params.until]: timestamp in ms of the latest entry
3385
3390
  :param str [params.marginMode]: *spot only* 'cross' or 'isolated', for margin trading
3391
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
3386
3392
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
3387
3393
  """
3388
3394
  await self.load_markets()
@@ -3441,6 +3447,7 @@ class bitmart(Exchange, ImplicitAPI):
3441
3447
  :param str [params.clientOrderId]: *spot* fetch the order by client order id instead of order id
3442
3448
  :param str [params.orderType]: *swap only* 'limit', 'market', 'liquidate', 'bankruptcy', 'adl' or 'trailing'
3443
3449
  :param boolean [params.trailing]: *swap only* set to True if you want to fetch a trailing order
3450
+ :param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
3444
3451
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3445
3452
  """
3446
3453
  await self.load_markets()
@@ -101,6 +101,7 @@ class bitmex(Exchange, ImplicitAPI):
101
101
  'fetchTransactions': 'emulated',
102
102
  'fetchTransfer': False,
103
103
  'fetchTransfers': False,
104
+ 'index': True,
104
105
  'reduceMargin': None,
105
106
  'sandbox': True,
106
107
  'setLeverage': True,
@@ -427,8 +428,8 @@ class bitmex(Exchange, ImplicitAPI):
427
428
  # # "mediumPrecision": "8",
428
429
  # # "shorterPrecision": "4",
429
430
  # # "symbol": "₿",
430
- # # "weight": "1",
431
431
  # # "tickLog": "0",
432
+ # # "weight": "1",
432
433
  # "enabled": True,
433
434
  # "isMarginCurrency": True,
434
435
  # "minDepositAmount": "10000",
@@ -666,7 +666,7 @@ class bitvavo(Exchange, ImplicitAPI):
666
666
  },
667
667
  })
668
668
  # set currencies here to avoid calling publicGetAssets twice
669
- self.currencies = self.deep_extend(self.currencies, result)
669
+ self.currencies = self.map_to_safe_map(self.deep_extend(self.currencies, result))
670
670
  return result
671
671
 
672
672
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
@@ -1207,6 +1207,8 @@ class bitvavo(Exchange, ImplicitAPI):
1207
1207
  operatorId, params = self.handle_option_and_params(params, 'createOrder', 'operatorId')
1208
1208
  if operatorId is not None:
1209
1209
  request['operatorId'] = self.parse_to_int(operatorId)
1210
+ else:
1211
+ raise ArgumentsRequired(self.id + ' createOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
1210
1212
  return self.extend(request, params)
1211
1213
 
1212
1214
  async def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
@@ -1304,6 +1306,8 @@ class bitvavo(Exchange, ImplicitAPI):
1304
1306
  operatorId, params = self.handle_option_and_params(params, 'editOrder', 'operatorId')
1305
1307
  if operatorId is not None:
1306
1308
  request['operatorId'] = self.parse_to_int(operatorId)
1309
+ else:
1310
+ raise ArgumentsRequired(self.id + ' editOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
1307
1311
  request['market'] = market['id']
1308
1312
  return request
1309
1313
 
@@ -1342,6 +1346,8 @@ class bitvavo(Exchange, ImplicitAPI):
1342
1346
  operatorId, params = self.handle_option_and_params(params, 'cancelOrder', 'operatorId')
1343
1347
  if operatorId is not None:
1344
1348
  request['operatorId'] = self.parse_to_int(operatorId)
1349
+ else:
1350
+ raise ArgumentsRequired(self.id + ' cancelOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
1345
1351
  return self.extend(request, params)
1346
1352
 
1347
1353
  async def cancel_order(self, id: str, symbol: Str = None, params={}):