ccxt 4.3.96__tar.gz → 4.3.97__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 (664) hide show
  1. {ccxt-4.3.96/ccxt.egg-info → ccxt-4.3.97}/PKG-INFO +4 -4
  2. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/binance.py +2 -0
  6. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinex.py +15 -3
  7. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/exchange.py +1 -1
  8. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/binance.py +2 -0
  9. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinex.py +15 -3
  10. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/__init__.py +1 -1
  11. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/gate.py +155 -0
  12. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/kucoin.py +107 -0
  13. {ccxt-4.3.96 → ccxt-4.3.97/ccxt.egg-info}/PKG-INFO +4 -4
  14. {ccxt-4.3.96 → ccxt-4.3.97}/package.json +1 -1
  15. {ccxt-4.3.96 → ccxt-4.3.97}/LICENSE.txt +0 -0
  16. {ccxt-4.3.96 → ccxt-4.3.97}/MANIFEST.in +0 -0
  17. {ccxt-4.3.96 → ccxt-4.3.97}/README.rst +0 -0
  18. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/__init__.py +0 -0
  19. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/ace.py +0 -0
  20. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/alpaca.py +0 -0
  21. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/ascendex.py +0 -0
  22. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bequant.py +0 -0
  23. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bigone.py +0 -0
  24. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/binance.py +0 -0
  25. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/binancecoinm.py +0 -0
  26. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/binanceus.py +0 -0
  27. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/binanceusdm.py +0 -0
  28. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bingx.py +0 -0
  29. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bit2c.py +0 -0
  30. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitbank.py +0 -0
  31. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitbns.py +0 -0
  32. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitcoincom.py +0 -0
  33. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitfinex.py +0 -0
  34. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitfinex2.py +0 -0
  35. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitflyer.py +0 -0
  36. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitget.py +0 -0
  37. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bithumb.py +0 -0
  38. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitmart.py +0 -0
  39. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitmex.py +0 -0
  40. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitopro.py +0 -0
  41. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitpanda.py +0 -0
  42. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitrue.py +0 -0
  43. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitso.py +0 -0
  44. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitstamp.py +0 -0
  45. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitteam.py +0 -0
  46. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bitvavo.py +0 -0
  47. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bl3p.py +0 -0
  48. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/blockchaincom.py +0 -0
  49. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/blofin.py +0 -0
  50. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/btcalpha.py +0 -0
  51. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/btcbox.py +0 -0
  52. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/btcmarkets.py +0 -0
  53. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/btcturk.py +0 -0
  54. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/bybit.py +0 -0
  55. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/cex.py +0 -0
  56. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinbase.py +0 -0
  57. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinbaseadvanced.py +0 -0
  58. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinbaseexchange.py +0 -0
  59. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinbaseinternational.py +0 -0
  60. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coincheck.py +0 -0
  61. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinex.py +0 -0
  62. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinlist.py +0 -0
  63. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinmate.py +0 -0
  64. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinmetro.py +0 -0
  65. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinone.py +0 -0
  66. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinsph.py +0 -0
  67. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/coinspot.py +0 -0
  68. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/cryptocom.py +0 -0
  69. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/currencycom.py +0 -0
  70. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/delta.py +0 -0
  71. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/deribit.py +0 -0
  72. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/digifinex.py +0 -0
  73. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/exmo.py +0 -0
  74. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/fmfwio.py +0 -0
  75. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/gate.py +0 -0
  76. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/gateio.py +0 -0
  77. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/gemini.py +0 -0
  78. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/hashkey.py +0 -0
  79. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/hitbtc.py +0 -0
  80. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/hollaex.py +0 -0
  81. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/htx.py +0 -0
  82. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/huobi.py +0 -0
  83. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/huobijp.py +0 -0
  84. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/hyperliquid.py +0 -0
  85. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/idex.py +0 -0
  86. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/independentreserve.py +0 -0
  87. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/indodax.py +0 -0
  88. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/kraken.py +0 -0
  89. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/krakenfutures.py +0 -0
  90. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/kucoin.py +0 -0
  91. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/kucoinfutures.py +0 -0
  92. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/kuna.py +0 -0
  93. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/latoken.py +0 -0
  94. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/lbank.py +0 -0
  95. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/luno.py +0 -0
  96. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/lykke.py +0 -0
  97. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/mercado.py +0 -0
  98. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/mexc.py +0 -0
  99. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/ndax.py +0 -0
  100. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/novadax.py +0 -0
  101. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/oceanex.py +0 -0
  102. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/okcoin.py +0 -0
  103. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/okx.py +0 -0
  104. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/onetrading.py +0 -0
  105. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/oxfun.py +0 -0
  106. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/p2b.py +0 -0
  107. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/paradex.py +0 -0
  108. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/paymium.py +0 -0
  109. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/phemex.py +0 -0
  110. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/poloniex.py +0 -0
  111. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/poloniexfutures.py +0 -0
  112. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/probit.py +0 -0
  113. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/timex.py +0 -0
  114. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/tokocrypto.py +0 -0
  115. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/tradeogre.py +0 -0
  116. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/upbit.py +0 -0
  117. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/vertex.py +0 -0
  118. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/wavesexchange.py +0 -0
  119. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/wazirx.py +0 -0
  120. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/whitebit.py +0 -0
  121. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/woo.py +0 -0
  122. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/woofipro.py +0 -0
  123. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/xt.py +0 -0
  124. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/yobit.py +0 -0
  125. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/zaif.py +0 -0
  126. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/abstract/zonda.py +0 -0
  127. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/ace.py +0 -0
  128. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/alpaca.py +0 -0
  129. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/ascendex.py +0 -0
  130. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/ace.py +0 -0
  131. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/alpaca.py +0 -0
  132. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/ascendex.py +0 -0
  133. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/__init__.py +0 -0
  134. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/throttler.py +0 -0
  135. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/__init__.py +0 -0
  136. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  137. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/cache.py +0 -0
  138. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/client.py +0 -0
  139. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/fast_client.py +0 -0
  140. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/functions.py +0 -0
  141. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/future.py +0 -0
  142. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/order_book.py +0 -0
  143. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  144. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bequant.py +0 -0
  145. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bigone.py +0 -0
  146. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/binancecoinm.py +0 -0
  147. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/binanceus.py +0 -0
  148. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/binanceusdm.py +0 -0
  149. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bingx.py +0 -0
  150. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bit2c.py +0 -0
  151. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitbank.py +0 -0
  152. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitbay.py +0 -0
  153. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitbns.py +0 -0
  154. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitcoincom.py +0 -0
  155. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitfinex.py +0 -0
  156. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitfinex2.py +0 -0
  157. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitflyer.py +0 -0
  158. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitget.py +0 -0
  159. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bithumb.py +0 -0
  160. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitmart.py +0 -0
  161. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitmex.py +0 -0
  162. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitopro.py +0 -0
  163. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitpanda.py +0 -0
  164. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitrue.py +0 -0
  165. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitso.py +0 -0
  166. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitstamp.py +0 -0
  167. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitteam.py +0 -0
  168. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bitvavo.py +0 -0
  169. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bl3p.py +0 -0
  170. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/blockchaincom.py +0 -0
  171. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/blofin.py +0 -0
  172. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/btcalpha.py +0 -0
  173. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/btcbox.py +0 -0
  174. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/btcmarkets.py +0 -0
  175. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/btcturk.py +0 -0
  176. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/bybit.py +0 -0
  177. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/cex.py +0 -0
  178. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinbase.py +0 -0
  179. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinbaseadvanced.py +0 -0
  180. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinbaseexchange.py +0 -0
  181. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinbaseinternational.py +0 -0
  182. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coincheck.py +0 -0
  183. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinlist.py +0 -0
  184. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinmate.py +0 -0
  185. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinmetro.py +0 -0
  186. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinone.py +0 -0
  187. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinsph.py +0 -0
  188. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/coinspot.py +0 -0
  189. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/cryptocom.py +0 -0
  190. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/currencycom.py +0 -0
  191. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/delta.py +0 -0
  192. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/deribit.py +0 -0
  193. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/digifinex.py +0 -0
  194. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/exmo.py +0 -0
  195. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/fmfwio.py +0 -0
  196. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/gate.py +0 -0
  197. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/gateio.py +0 -0
  198. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/gemini.py +0 -0
  199. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/hashkey.py +0 -0
  200. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/hitbtc.py +0 -0
  201. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/hitbtc3.py +0 -0
  202. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/hollaex.py +0 -0
  203. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/htx.py +0 -0
  204. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/huobi.py +0 -0
  205. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/huobijp.py +0 -0
  206. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/hyperliquid.py +0 -0
  207. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/idex.py +0 -0
  208. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/independentreserve.py +0 -0
  209. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/indodax.py +0 -0
  210. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/kraken.py +0 -0
  211. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/krakenfutures.py +0 -0
  212. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/kucoin.py +0 -0
  213. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/kucoinfutures.py +0 -0
  214. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/kuna.py +0 -0
  215. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/latoken.py +0 -0
  216. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/lbank.py +0 -0
  217. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/luno.py +0 -0
  218. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/lykke.py +0 -0
  219. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/mercado.py +0 -0
  220. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/mexc.py +0 -0
  221. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/ndax.py +0 -0
  222. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/novadax.py +0 -0
  223. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/oceanex.py +0 -0
  224. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/okcoin.py +0 -0
  225. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/okx.py +0 -0
  226. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/onetrading.py +0 -0
  227. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/oxfun.py +0 -0
  228. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/p2b.py +0 -0
  229. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/paradex.py +0 -0
  230. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/paymium.py +0 -0
  231. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/phemex.py +0 -0
  232. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/poloniex.py +0 -0
  233. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/poloniexfutures.py +0 -0
  234. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/probit.py +0 -0
  235. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/timex.py +0 -0
  236. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/tokocrypto.py +0 -0
  237. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/tradeogre.py +0 -0
  238. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/upbit.py +0 -0
  239. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/vertex.py +0 -0
  240. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/wavesexchange.py +0 -0
  241. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/wazirx.py +0 -0
  242. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/whitebit.py +0 -0
  243. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/woo.py +0 -0
  244. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/woofipro.py +0 -0
  245. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/xt.py +0 -0
  246. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/yobit.py +0 -0
  247. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/zaif.py +0 -0
  248. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/async_support/zonda.py +0 -0
  249. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/__init__.py +0 -0
  250. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/decimal_to_precision.py +0 -0
  251. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/errors.py +0 -0
  252. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/precise.py +0 -0
  253. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/base/types.py +0 -0
  254. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bequant.py +0 -0
  255. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bigone.py +0 -0
  256. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/binancecoinm.py +0 -0
  257. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/binanceus.py +0 -0
  258. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/binanceusdm.py +0 -0
  259. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bingx.py +0 -0
  260. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bit2c.py +0 -0
  261. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitbank.py +0 -0
  262. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitbay.py +0 -0
  263. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitbns.py +0 -0
  264. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitcoincom.py +0 -0
  265. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitfinex.py +0 -0
  266. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitfinex2.py +0 -0
  267. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitflyer.py +0 -0
  268. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitget.py +0 -0
  269. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bithumb.py +0 -0
  270. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitmart.py +0 -0
  271. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitmex.py +0 -0
  272. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitopro.py +0 -0
  273. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitpanda.py +0 -0
  274. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitrue.py +0 -0
  275. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitso.py +0 -0
  276. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitstamp.py +0 -0
  277. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitteam.py +0 -0
  278. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bitvavo.py +0 -0
  279. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bl3p.py +0 -0
  280. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/blockchaincom.py +0 -0
  281. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/blofin.py +0 -0
  282. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/btcalpha.py +0 -0
  283. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/btcbox.py +0 -0
  284. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/btcmarkets.py +0 -0
  285. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/btcturk.py +0 -0
  286. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/bybit.py +0 -0
  287. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/cex.py +0 -0
  288. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinbase.py +0 -0
  289. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinbaseadvanced.py +0 -0
  290. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinbaseexchange.py +0 -0
  291. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinbaseinternational.py +0 -0
  292. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coincheck.py +0 -0
  293. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinlist.py +0 -0
  294. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinmate.py +0 -0
  295. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinmetro.py +0 -0
  296. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinone.py +0 -0
  297. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinsph.py +0 -0
  298. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/coinspot.py +0 -0
  299. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/cryptocom.py +0 -0
  300. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/currencycom.py +0 -0
  301. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/delta.py +0 -0
  302. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/deribit.py +0 -0
  303. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/digifinex.py +0 -0
  304. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/exmo.py +0 -0
  305. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/fmfwio.py +0 -0
  306. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/gate.py +0 -0
  307. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/gateio.py +0 -0
  308. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/gemini.py +0 -0
  309. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/hashkey.py +0 -0
  310. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/hitbtc.py +0 -0
  311. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/hitbtc3.py +0 -0
  312. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/hollaex.py +0 -0
  313. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/htx.py +0 -0
  314. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/huobi.py +0 -0
  315. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/huobijp.py +0 -0
  316. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/hyperliquid.py +0 -0
  317. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/idex.py +0 -0
  318. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/independentreserve.py +0 -0
  319. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/indodax.py +0 -0
  320. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/kraken.py +0 -0
  321. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/krakenfutures.py +0 -0
  322. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/kucoin.py +0 -0
  323. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/kucoinfutures.py +0 -0
  324. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/kuna.py +0 -0
  325. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/latoken.py +0 -0
  326. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/lbank.py +0 -0
  327. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/luno.py +0 -0
  328. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/lykke.py +0 -0
  329. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/mercado.py +0 -0
  330. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/mexc.py +0 -0
  331. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/ndax.py +0 -0
  332. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/novadax.py +0 -0
  333. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/oceanex.py +0 -0
  334. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/okcoin.py +0 -0
  335. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/okx.py +0 -0
  336. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/onetrading.py +0 -0
  337. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/oxfun.py +0 -0
  338. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/p2b.py +0 -0
  339. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/paradex.py +0 -0
  340. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/paymium.py +0 -0
  341. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/phemex.py +0 -0
  342. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/poloniex.py +0 -0
  343. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/poloniexfutures.py +0 -0
  344. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/alpaca.py +0 -0
  345. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/ascendex.py +0 -0
  346. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bequant.py +0 -0
  347. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/binance.py +0 -0
  348. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/binancecoinm.py +0 -0
  349. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/binanceus.py +0 -0
  350. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/binanceusdm.py +0 -0
  351. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bingx.py +0 -0
  352. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitcoincom.py +0 -0
  353. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitfinex.py +0 -0
  354. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitfinex2.py +0 -0
  355. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitget.py +0 -0
  356. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bithumb.py +0 -0
  357. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitmart.py +0 -0
  358. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitmex.py +0 -0
  359. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitopro.py +0 -0
  360. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitpanda.py +0 -0
  361. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitrue.py +0 -0
  362. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitstamp.py +0 -0
  363. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bitvavo.py +0 -0
  364. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/blockchaincom.py +0 -0
  365. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/blofin.py +0 -0
  366. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/bybit.py +0 -0
  367. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/cex.py +0 -0
  368. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coinbase.py +0 -0
  369. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coinbaseexchange.py +0 -0
  370. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coinbaseinternational.py +0 -0
  371. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coincheck.py +0 -0
  372. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coinex.py +0 -0
  373. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/coinone.py +0 -0
  374. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/cryptocom.py +0 -0
  375. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/currencycom.py +0 -0
  376. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/deribit.py +0 -0
  377. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/exmo.py +0 -0
  378. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/gateio.py +0 -0
  379. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/gemini.py +0 -0
  380. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/hashkey.py +0 -0
  381. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/hitbtc.py +0 -0
  382. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/hollaex.py +0 -0
  383. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/htx.py +0 -0
  384. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/huobi.py +0 -0
  385. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/huobijp.py +0 -0
  386. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/hyperliquid.py +0 -0
  387. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/idex.py +0 -0
  388. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/independentreserve.py +0 -0
  389. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/kraken.py +0 -0
  390. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/krakenfutures.py +0 -0
  391. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/kucoinfutures.py +0 -0
  392. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/lbank.py +0 -0
  393. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/luno.py +0 -0
  394. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/mexc.py +0 -0
  395. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/ndax.py +0 -0
  396. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/okcoin.py +0 -0
  397. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/okx.py +0 -0
  398. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/onetrading.py +0 -0
  399. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/oxfun.py +0 -0
  400. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/p2b.py +0 -0
  401. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/paradex.py +0 -0
  402. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/phemex.py +0 -0
  403. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/poloniex.py +0 -0
  404. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/poloniexfutures.py +0 -0
  405. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/probit.py +0 -0
  406. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/upbit.py +0 -0
  407. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/vertex.py +0 -0
  408. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/wazirx.py +0 -0
  409. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/whitebit.py +0 -0
  410. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/woo.py +0 -0
  411. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/woofipro.py +0 -0
  412. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/pro/xt.py +0 -0
  413. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/probit.py +0 -0
  414. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/__init__.py +0 -0
  415. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  416. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  417. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  418. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  419. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  420. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  421. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  422. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  423. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  424. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  425. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  426. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  427. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  428. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  429. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  430. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  431. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  432. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  433. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  434. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  435. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  436. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  437. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  438. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  439. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  440. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  441. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  442. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  443. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  444. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  445. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  446. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  447. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  448. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  449. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  450. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  451. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  452. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  453. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  454. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  455. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  456. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  457. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  458. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  459. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  460. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  461. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  462. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  463. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  464. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  465. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  466. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  467. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  468. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  469. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  470. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  471. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  472. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  473. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  474. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  475. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  476. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  477. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  478. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  479. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  480. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  481. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  482. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  483. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  484. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  485. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  486. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  487. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  488. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  489. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/__init__.py +0 -0
  490. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  491. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  492. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  493. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/common.py +0 -0
  494. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  495. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/grammar.py +0 -0
  496. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  497. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/indenter.py +0 -0
  498. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/lark.py +0 -0
  499. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/lexer.py +0 -0
  500. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  501. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  502. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  503. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  504. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  505. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  506. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  507. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  508. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  509. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  510. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  511. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  512. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  513. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  514. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/py.typed +0 -0
  515. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  516. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  517. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  518. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  519. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  520. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tree.py +0 -0
  521. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  522. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  523. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/utils.py +0 -0
  524. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/lark/visitors.py +0 -0
  525. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  526. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  527. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  528. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  529. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  530. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  531. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  532. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  533. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  534. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  535. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  536. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  537. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  538. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  539. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  540. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  541. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  542. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  543. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  544. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  545. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  546. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  547. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  548. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  549. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  550. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  551. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  552. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  553. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  554. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  555. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  556. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  557. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  558. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  559. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  560. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  561. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  562. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  563. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  564. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  565. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  566. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  567. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  568. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  569. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  570. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  571. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  572. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  573. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/common.py +0 -0
  574. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/constants.py +0 -0
  575. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  576. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  577. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  578. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  579. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  580. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  581. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  582. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  583. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  584. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  585. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  586. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  587. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  588. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  589. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  590. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  591. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  592. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  593. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  594. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  595. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  596. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  597. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  598. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  599. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  600. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  601. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  602. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  603. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  604. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  605. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  606. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  607. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  608. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  609. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  610. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  611. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  612. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  613. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  614. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  615. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  616. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  617. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  618. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  619. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  620. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  621. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  622. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  623. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  624. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  625. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  626. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  627. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  628. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/_version.py +0 -0
  629. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  630. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  631. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  632. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  633. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  634. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  635. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  636. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  637. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/toolz/utils.py +0 -0
  638. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  639. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  640. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/test/__init__.py +0 -0
  641. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/test/tests_async.py +0 -0
  642. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/test/tests_helpers.py +0 -0
  643. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/test/tests_init.py +0 -0
  644. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/test/tests_sync.py +0 -0
  645. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/timex.py +0 -0
  646. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/tokocrypto.py +0 -0
  647. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/tradeogre.py +0 -0
  648. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/upbit.py +0 -0
  649. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/vertex.py +0 -0
  650. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/wavesexchange.py +0 -0
  651. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/wazirx.py +0 -0
  652. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/whitebit.py +0 -0
  653. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/woo.py +0 -0
  654. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/woofipro.py +0 -0
  655. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/xt.py +0 -0
  656. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/yobit.py +0 -0
  657. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/zaif.py +0 -0
  658. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt/zonda.py +0 -0
  659. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt.egg-info/SOURCES.txt +0 -0
  660. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt.egg-info/dependency_links.txt +0 -0
  661. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt.egg-info/requires.txt +0 -0
  662. {ccxt-4.3.96 → ccxt-4.3.97}/ccxt.egg-info/top_level.txt +0 -0
  663. {ccxt-4.3.96 → ccxt-4.3.97}/setup.cfg +0 -0
  664. {ccxt-4.3.96 → ccxt-4.3.97}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.96
3
+ Version: 4.3.97
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
@@ -261,13 +261,13 @@ console.log(version, Object.keys(exchanges));
261
261
 
262
262
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
263
263
 
264
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.96/dist/ccxt.browser.min.js
265
- * unpkg: https://unpkg.com/ccxt@4.3.96/dist/ccxt.browser.min.js
264
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.97/dist/ccxt.browser.min.js
265
+ * unpkg: https://unpkg.com/ccxt@4.3.97/dist/ccxt.browser.min.js
266
266
 
267
267
  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.
268
268
 
269
269
  ```HTML
270
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.96/dist/ccxt.browser.min.js"></script>
270
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.97/dist/ccxt.browser.min.js"></script>
271
271
  ```
272
272
 
273
273
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.96'
25
+ __version__ = '4.3.97'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.96'
7
+ __version__ = '4.3.97'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.96'
5
+ __version__ = '4.3.97'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -4121,6 +4121,8 @@ class binance(Exchange, ImplicitAPI):
4121
4121
  price = self.safe_string(params, 'price')
4122
4122
  until = self.safe_integer(params, 'until')
4123
4123
  params = self.omit(params, ['price', 'until'])
4124
+ if since is not None and until is not None and limit is None:
4125
+ limit = maxLimit
4124
4126
  limit = defaultLimit if (limit is None) else min(limit, maxLimit)
4125
4127
  request: dict = {
4126
4128
  'interval': self.safe_string(self.timeframes, timeframe, timeframe),
@@ -1199,7 +1199,10 @@ class coinex(Exchange, ImplicitAPI):
1199
1199
  # "side": "buy",
1200
1200
  # "order_id": 136915589622,
1201
1201
  # "price": "64376",
1202
- # "amount": "0.0001"
1202
+ # "amount": "0.0001",
1203
+ # "role": "taker",
1204
+ # "fee": "0.0299",
1205
+ # "fee_ccy": "USDT"
1203
1206
  # }
1204
1207
  #
1205
1208
  timestamp = self.safe_integer(trade, 'created_at')
@@ -1208,6 +1211,15 @@ class coinex(Exchange, ImplicitAPI):
1208
1211
  defaultType = market['type']
1209
1212
  marketId = self.safe_string(trade, 'market')
1210
1213
  market = self.safe_market(marketId, market, None, defaultType)
1214
+ feeCostString = self.safe_string(trade, 'fee')
1215
+ fee = None
1216
+ if feeCostString is not None:
1217
+ feeCurrencyId = self.safe_string(trade, 'fee_ccy')
1218
+ feeCurrencyCode = self.safe_currency_code(feeCurrencyId)
1219
+ fee = {
1220
+ 'cost': feeCostString,
1221
+ 'currency': feeCurrencyCode,
1222
+ }
1211
1223
  return self.safe_trade({
1212
1224
  'info': trade,
1213
1225
  'timestamp': timestamp,
@@ -1217,11 +1229,11 @@ class coinex(Exchange, ImplicitAPI):
1217
1229
  'order': self.safe_string(trade, 'order_id'),
1218
1230
  'type': None,
1219
1231
  'side': self.safe_string(trade, 'side'),
1220
- 'takerOrMaker': None,
1232
+ 'takerOrMaker': self.safe_string(trade, 'role'),
1221
1233
  'price': self.safe_string(trade, 'price'),
1222
1234
  'amount': self.safe_string(trade, 'amount'),
1223
1235
  'cost': self.safe_string(trade, 'deal_money'),
1224
- 'fee': None,
1236
+ 'fee': fee,
1225
1237
  }, market)
1226
1238
 
1227
1239
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.96'
7
+ __version__ = '4.3.97'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -4120,6 +4120,8 @@ class binance(Exchange, ImplicitAPI):
4120
4120
  price = self.safe_string(params, 'price')
4121
4121
  until = self.safe_integer(params, 'until')
4122
4122
  params = self.omit(params, ['price', 'until'])
4123
+ if since is not None and until is not None and limit is None:
4124
+ limit = maxLimit
4123
4125
  limit = defaultLimit if (limit is None) else min(limit, maxLimit)
4124
4126
  request: dict = {
4125
4127
  'interval': self.safe_string(self.timeframes, timeframe, timeframe),
@@ -1198,7 +1198,10 @@ class coinex(Exchange, ImplicitAPI):
1198
1198
  # "side": "buy",
1199
1199
  # "order_id": 136915589622,
1200
1200
  # "price": "64376",
1201
- # "amount": "0.0001"
1201
+ # "amount": "0.0001",
1202
+ # "role": "taker",
1203
+ # "fee": "0.0299",
1204
+ # "fee_ccy": "USDT"
1202
1205
  # }
1203
1206
  #
1204
1207
  timestamp = self.safe_integer(trade, 'created_at')
@@ -1207,6 +1210,15 @@ class coinex(Exchange, ImplicitAPI):
1207
1210
  defaultType = market['type']
1208
1211
  marketId = self.safe_string(trade, 'market')
1209
1212
  market = self.safe_market(marketId, market, None, defaultType)
1213
+ feeCostString = self.safe_string(trade, 'fee')
1214
+ fee = None
1215
+ if feeCostString is not None:
1216
+ feeCurrencyId = self.safe_string(trade, 'fee_ccy')
1217
+ feeCurrencyCode = self.safe_currency_code(feeCurrencyId)
1218
+ fee = {
1219
+ 'cost': feeCostString,
1220
+ 'currency': feeCurrencyCode,
1221
+ }
1210
1222
  return self.safe_trade({
1211
1223
  'info': trade,
1212
1224
  'timestamp': timestamp,
@@ -1216,11 +1228,11 @@ class coinex(Exchange, ImplicitAPI):
1216
1228
  'order': self.safe_string(trade, 'order_id'),
1217
1229
  'type': None,
1218
1230
  'side': self.safe_string(trade, 'side'),
1219
- 'takerOrMaker': None,
1231
+ 'takerOrMaker': self.safe_string(trade, 'role'),
1220
1232
  'price': self.safe_string(trade, 'price'),
1221
1233
  'amount': self.safe_string(trade, 'amount'),
1222
1234
  'cost': self.safe_string(trade, 'deal_money'),
1223
- 'fee': None,
1235
+ 'fee': fee,
1224
1236
  }, market)
1225
1237
 
1226
1238
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.96'
7
+ __version__ = '4.3.97'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -9,12 +9,14 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Int, Liquidation, Market, MarketType, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade
10
10
  from ccxt.async_support.base.ws.client import Client
11
11
  from typing import List
12
+ from typing import Any
12
13
  from ccxt.base.errors import ExchangeError
13
14
  from ccxt.base.errors import AuthenticationError
14
15
  from ccxt.base.errors import ArgumentsRequired
15
16
  from ccxt.base.errors import BadRequest
16
17
  from ccxt.base.errors import NotSupported
17
18
  from ccxt.base.errors import ChecksumError
19
+ from ccxt.base.errors import UnsubscribeError
18
20
  from ccxt.base.precise import Precise
19
21
 
20
22
 
@@ -371,6 +373,31 @@ class gate(ccxt.async_support.gate):
371
373
  orderbook = await self.subscribe_public(url, messageHash, payload, channel, query, subscription)
372
374
  return orderbook.limit()
373
375
 
376
+ async def un_watch_order_book(self, symbol: str, params={}) -> Any:
377
+ """
378
+ unWatches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
379
+ :param str symbol: unified symbol of the market to fetch the order book for
380
+ :param dict [params]: extra parameters specific to the exchange API endpoint
381
+ :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
382
+ """
383
+ await self.load_markets()
384
+ market = self.market(symbol)
385
+ symbol = market['symbol']
386
+ marketId = market['id']
387
+ interval = '100ms'
388
+ interval, params = self.handle_option_and_params(params, 'watchOrderBook', 'interval', interval)
389
+ messageType = self.get_type_by_market(market)
390
+ channel = messageType + '.order_book_update'
391
+ subMessageHash = 'orderbook' + ':' + symbol
392
+ messageHash = 'unsubscribe:orderbook' + ':' + symbol
393
+ url = self.get_url_by_market(market)
394
+ payload = [marketId, interval]
395
+ limit = self.safe_integer(params, 'limit', 100)
396
+ if market['contract']:
397
+ stringLimit = str(limit)
398
+ payload.append(stringLimit)
399
+ return await self.un_subscribe_public_multiple(url, 'orderbook', [symbol], [messageHash], [subMessageHash], payload, channel, params)
400
+
374
401
  def handle_order_book_subscription(self, client: Client, message, subscription):
375
402
  symbol = self.safe_string(subscription, 'symbol')
376
403
  limit = self.safe_integer(subscription, 'limit')
@@ -671,6 +698,37 @@ class gate(ccxt.async_support.gate):
671
698
  limit = trades.getLimit(tradeSymbol, limit)
672
699
  return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
673
700
 
701
+ async def un_watch_trades_for_symbols(self, symbols: List[str], params={}) -> Any:
702
+ """
703
+ get the list of most recent trades for a particular symbol
704
+ :param str symbol: unified symbol of the market to fetch trades for
705
+ :param dict [params]: extra parameters specific to the exchange API endpoint
706
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
707
+ """
708
+ await self.load_markets()
709
+ symbols = self.market_symbols(symbols)
710
+ marketIds = self.market_ids(symbols)
711
+ market = self.market(symbols[0])
712
+ messageType = self.get_type_by_market(market)
713
+ channel = messageType + '.trades'
714
+ subMessageHashes = []
715
+ messageHashes = []
716
+ for i in range(0, len(symbols)):
717
+ symbol = symbols[i]
718
+ subMessageHashes.append('trades:' + symbol)
719
+ messageHashes.append('unsubscribe:trades:' + symbol)
720
+ url = self.get_url_by_market(market)
721
+ return await self.un_subscribe_public_multiple(url, 'trades', symbols, messageHashes, subMessageHashes, marketIds, channel, params)
722
+
723
+ async def un_watch_trades(self, symbol: str, params={}) -> Any:
724
+ """
725
+ get the list of most recent trades for a particular symbol
726
+ :param str symbol: unified symbol of the market to fetch trades for
727
+ :param dict [params]: extra parameters specific to the exchange API endpoint
728
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
729
+ """
730
+ return await self.un_watch_trades_for_symbols([symbol], params)
731
+
674
732
  def handle_trades(self, client: Client, message):
675
733
  #
676
734
  # {
@@ -1445,6 +1503,79 @@ class gate(ccxt.async_support.gate):
1445
1503
  if id in client.subscriptions:
1446
1504
  del client.subscriptions[id]
1447
1505
 
1506
+ def handle_un_subscribe(self, client: Client, message):
1507
+ #
1508
+ # {
1509
+ # "time":1725534679,
1510
+ # "time_ms":1725534679786,
1511
+ # "id":2,
1512
+ # "conn_id":"fac539b443fd7002",
1513
+ # "trace_id":"efe1d282b630b4aa266b84bee177791a",
1514
+ # "channel":"spot.trades",
1515
+ # "event":"unsubscribe",
1516
+ # "payload":[
1517
+ # "LTC_USDT"
1518
+ # ],
1519
+ # "result":{
1520
+ # "status":"success"
1521
+ # },
1522
+ # "requestId":"efe1d282b630b4aa266b84bee177791a"
1523
+ # }
1524
+ #
1525
+ id = self.safe_string(message, 'id')
1526
+ keys = list(client.subscriptions.keys())
1527
+ for i in range(0, len(keys)):
1528
+ messageHash = keys[i]
1529
+ if not (messageHash in client.subscriptions):
1530
+ continue
1531
+ # the previous iteration can have deleted the messageHash from the subscriptions
1532
+ if messageHash.startswith('unsubscribe'):
1533
+ subscription = client.subscriptions[messageHash]
1534
+ subId = self.safe_string(subscription, 'id')
1535
+ if id != subId:
1536
+ continue
1537
+ messageHashes = self.safe_list(subscription, 'messageHashes', [])
1538
+ subMessageHashes = self.safe_list(subscription, 'subMessageHashes', [])
1539
+ for j in range(0, len(messageHashes)):
1540
+ unsubHash = messageHashes[j]
1541
+ subHash = subMessageHashes[j]
1542
+ if unsubHash in client.subscriptions:
1543
+ del client.subscriptions[unsubHash]
1544
+ if subHash in client.subscriptions:
1545
+ del client.subscriptions[subHash]
1546
+ error = UnsubscribeError(self.id + ' ' + messageHash)
1547
+ client.reject(error, subHash)
1548
+ client.resolve(True, unsubHash)
1549
+ self.clean_cache(subscription)
1550
+
1551
+ def clean_cache(self, subscription: dict):
1552
+ topic = self.safe_string(subscription, 'topic', '')
1553
+ symbols = self.safe_list(subscription, 'symbols', [])
1554
+ symbolsLength = len(symbols)
1555
+ if topic == 'ohlcv':
1556
+ symbolsAndTimeFrames = self.safe_list(subscription, 'symbolsAndTimeframes', [])
1557
+ for i in range(0, len(symbolsAndTimeFrames)):
1558
+ symbolAndTimeFrame = symbolsAndTimeFrames[i]
1559
+ symbol = self.safe_string(symbolAndTimeFrame, 0)
1560
+ timeframe = self.safe_string(symbolAndTimeFrame, 1)
1561
+ del self.ohlcvs[symbol][timeframe]
1562
+ elif symbolsLength > 0:
1563
+ for i in range(0, len(symbols)):
1564
+ symbol = symbols[i]
1565
+ if topic.endswith('trades'):
1566
+ del self.trades[symbol]
1567
+ elif topic == 'orderbook':
1568
+ del self.orderbooks[symbol]
1569
+ elif topic == 'ticker':
1570
+ del self.tickers[symbol]
1571
+ else:
1572
+ if topic.endswith('trades'):
1573
+ # don't reset self.myTrades directly here
1574
+ # because in c# we need to use a different object
1575
+ keys = list(self.trades.keys())
1576
+ for i in range(0, len(keys)):
1577
+ del self.trades[keys[i]]
1578
+
1448
1579
  def handle_message(self, client: Client, message):
1449
1580
  #
1450
1581
  # subscribe
@@ -1541,6 +1672,9 @@ class gate(ccxt.async_support.gate):
1541
1672
  if event == 'subscribe':
1542
1673
  self.handle_subscription_status(client, message)
1543
1674
  return
1675
+ if event == 'unsubscribe':
1676
+ self.handle_un_subscribe(client, message)
1677
+ return
1544
1678
  channel = self.safe_string(message, 'channel', '')
1545
1679
  channelParts = channel.split('.')
1546
1680
  channelType = self.safe_value(channelParts, 1)
@@ -1645,6 +1779,27 @@ class gate(ccxt.async_support.gate):
1645
1779
  message = self.extend(request, params)
1646
1780
  return await self.watch_multiple(url, messageHashes, message, messageHashes)
1647
1781
 
1782
+ async def un_subscribe_public_multiple(self, url, topic, symbols, messageHashes, subMessageHashes, payload, channel, params={}):
1783
+ requestId = self.request_id()
1784
+ time = self.seconds()
1785
+ request: dict = {
1786
+ 'id': requestId,
1787
+ 'time': time,
1788
+ 'channel': channel,
1789
+ 'event': 'unsubscribe',
1790
+ 'payload': payload,
1791
+ }
1792
+ sub = {
1793
+ 'id': str(requestId),
1794
+ 'topic': topic,
1795
+ 'unsubscribe': True,
1796
+ 'messageHashes': messageHashes,
1797
+ 'subMessageHashes': subMessageHashes,
1798
+ 'symbols': symbols,
1799
+ }
1800
+ message = self.extend(request, params)
1801
+ return await self.watch_multiple(url, messageHashes, message, messageHashes, sub)
1802
+
1648
1803
  async def authenticate(self, url, messageType):
1649
1804
  channel = messageType + '.login'
1650
1805
  client = self.client(url)
@@ -8,8 +8,10 @@ from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById,
8
8
  from ccxt.base.types import Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
+ from typing import Any
11
12
  from ccxt.base.errors import ExchangeError
12
13
  from ccxt.base.errors import ArgumentsRequired
14
+ from ccxt.base.errors import UnsubscribeError
13
15
 
14
16
 
15
17
  class kucoin(ccxt.async_support.kucoin):
@@ -153,6 +155,24 @@ class kucoin(ccxt.async_support.kucoin):
153
155
  client.subscriptions[requestId] = subscriptionHash
154
156
  return await self.watch_multiple(url, messageHashes, message, subscriptionHashes, subscription)
155
157
 
158
+ async def un_subscribe_multiple(self, url, messageHashes, topic, subscriptionHashes, params={}, subscription: dict = None):
159
+ requestId = str(self.request_id())
160
+ request: dict = {
161
+ 'id': requestId,
162
+ 'type': 'unsubscribe',
163
+ 'topic': topic,
164
+ 'response': True,
165
+ }
166
+ message = self.extend(request, params)
167
+ if subscription is not None:
168
+ subscription[requestId] = requestId
169
+ client = self.client(url)
170
+ for i in range(0, len(subscriptionHashes)):
171
+ subscriptionHash = subscriptionHashes[i]
172
+ if not (subscriptionHash in client.subscriptions):
173
+ client.subscriptions[requestId] = subscriptionHash
174
+ return await self.watch_multiple(url, messageHashes, message, subscriptionHashes, subscription)
175
+
156
176
  async def watch_ticker(self, symbol: str, params={}) -> Ticker:
157
177
  """
158
178
  watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
@@ -477,6 +497,46 @@ class kucoin(ccxt.async_support.kucoin):
477
497
  limit = trades.getLimit(tradeSymbol, limit)
478
498
  return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
479
499
 
500
+ async def un_watch_trades_for_symbols(self, symbols: List[str], params={}) -> Any:
501
+ """
502
+ unWatches trades stream
503
+ :see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
504
+ :param str symbol: unified symbol of the market to fetch trades for
505
+ :param int [since]: timestamp in ms of the earliest trade to fetch
506
+ :param int [limit]: the maximum amount of trades to fetch
507
+ :param dict [params]: extra parameters specific to the exchange API endpoint
508
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
509
+ """
510
+ await self.load_markets()
511
+ symbols = self.market_symbols(symbols, None, False)
512
+ marketIds = self.market_ids(symbols)
513
+ url = await self.negotiate(False)
514
+ messageHashes = []
515
+ subscriptionHashes = []
516
+ topic = '/market/match:' + ','.join(marketIds)
517
+ for i in range(0, len(symbols)):
518
+ symbol = symbols[i]
519
+ messageHashes.append('unsubscribe:trades:' + symbol)
520
+ subscriptionHashes.append('trades:' + symbol)
521
+ subscription = {
522
+ 'messageHashes': messageHashes,
523
+ 'subMessageHashes': subscriptionHashes,
524
+ 'topic': 'trades',
525
+ 'unsubscribe': True,
526
+ 'symbols': symbols,
527
+ }
528
+ return await self.un_subscribe_multiple(url, messageHashes, topic, messageHashes, params, subscription)
529
+
530
+ async def un_watch_trades(self, symbol: str, params={}) -> Any:
531
+ """
532
+ unWatches trades stream
533
+ :see: https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
534
+ :param str symbol: unified symbol of the market to fetch trades for
535
+ :param dict [params]: extra parameters specific to the exchange API endpoint
536
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
537
+ """
538
+ return await self.un_watch_trades_for_symbols([symbol], params)
539
+
480
540
  def handle_trade(self, client: Client, message):
481
541
  #
482
542
  # {
@@ -731,6 +791,53 @@ class kucoin(ccxt.async_support.kucoin):
731
791
  method = self.safe_value(subscription, 'method')
732
792
  if method is not None:
733
793
  method(client, message, subscription)
794
+ isUnSub = self.safe_bool(subscription, 'unsubscribe', False)
795
+ if isUnSub:
796
+ messageHashes = self.safe_list(subscription, 'messageHashes', [])
797
+ subMessageHashes = self.safe_list(subscription, 'subMessageHashes', [])
798
+ for i in range(0, len(messageHashes)):
799
+ messageHash = messageHashes[i]
800
+ subHash = subMessageHashes[i]
801
+ if messageHash in client.subscriptions:
802
+ del client.subscriptions[messageHash]
803
+ if subHash in client.subscriptions:
804
+ del client.subscriptions[subHash]
805
+ error = UnsubscribeError(self.id + ' ' + subHash)
806
+ client.reject(error, subHash)
807
+ client.resolve(True, messageHash)
808
+ self.clean_cache(subscription)
809
+
810
+ def clean_cache(self, subscription: dict):
811
+ topic = self.safe_string(subscription, 'topic')
812
+ symbols = self.safe_list(subscription, 'symbols', [])
813
+ symbolsLength = len(symbols)
814
+ if symbolsLength > 0:
815
+ for i in range(0, len(symbols)):
816
+ symbol = symbols[i]
817
+ if topic == 'trades':
818
+ if symbol in self.trades:
819
+ del self.trades[symbol]
820
+ elif topic == 'orderbook':
821
+ if symbol in self.orderbooks:
822
+ del self.orderbooks[symbol]
823
+ elif topic == 'ticker':
824
+ if symbol in self.tickers:
825
+ del self.tickers[symbol]
826
+ else:
827
+ if topic == 'myTrades':
828
+ # don't reset self.myTrades directly here
829
+ # because in c# we need to use a different object
830
+ keys = list(self.myTrades.keys())
831
+ for i in range(0, len(keys)):
832
+ del self.myTrades[keys[i]]
833
+ elif topic == 'orders':
834
+ orderSymbols = list(self.orders.keys())
835
+ for i in range(0, len(orderSymbols)):
836
+ del self.orders[orderSymbols[i]]
837
+ elif topic == 'ticker':
838
+ tickerSymbols = list(self.tickers.keys())
839
+ for i in range(0, len(tickerSymbols)):
840
+ del self.tickers[tickerSymbols[i]]
734
841
 
735
842
  def handle_system_status(self, client: Client, message):
736
843
  #
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.96
3
+ Version: 4.3.97
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
@@ -261,13 +261,13 @@ console.log(version, Object.keys(exchanges));
261
261
 
262
262
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
263
263
 
264
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.96/dist/ccxt.browser.min.js
265
- * unpkg: https://unpkg.com/ccxt@4.3.96/dist/ccxt.browser.min.js
264
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.97/dist/ccxt.browser.min.js
265
+ * unpkg: https://unpkg.com/ccxt@4.3.97/dist/ccxt.browser.min.js
266
266
 
267
267
  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.
268
268
 
269
269
  ```HTML
270
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.96/dist/ccxt.browser.min.js"></script>
270
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.97/dist/ccxt.browser.min.js"></script>
271
271
  ```
272
272
 
273
273
  Creates a global `ccxt` object:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.3.96",
3
+ "version": "4.3.97",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.min.js",
6
6
  "type": "module",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes