ccxt 4.3.86__tar.gz → 4.3.87__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 (666) hide show
  1. {ccxt-4.3.86/ccxt.egg-info → ccxt-4.3.87}/PKG-INFO +7 -6
  2. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/__init__.py +2 -1
  3. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/__init__.py +2 -1
  4. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bingx.py +5 -1
  6. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/hashkey.py +1 -2
  7. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/kraken.py +32 -5
  8. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/upbit.py +1 -1
  9. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/errors.py +7 -1
  10. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/exchange.py +1 -1
  11. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bingx.py +5 -1
  12. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/hashkey.py +1 -2
  13. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/kraken.py +32 -5
  14. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/__init__.py +1 -1
  15. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitget.py +143 -16
  16. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/p2b.py +30 -7
  17. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/poloniex.py +32 -3
  18. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/poloniexfutures.py +1 -0
  19. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/probit.py +2 -0
  20. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/upbit.py +44 -3
  21. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/vertex.py +1 -0
  22. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/wazirx.py +3 -0
  23. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/whitebit.py +9 -0
  24. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/test/tests_async.py +18 -1
  25. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/test/tests_sync.py +18 -1
  26. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/upbit.py +1 -1
  27. {ccxt-4.3.86 → ccxt-4.3.87/ccxt.egg-info}/PKG-INFO +7 -6
  28. {ccxt-4.3.86 → ccxt-4.3.87}/package.json +1 -1
  29. {ccxt-4.3.86 → ccxt-4.3.87}/LICENSE.txt +0 -0
  30. {ccxt-4.3.86 → ccxt-4.3.87}/MANIFEST.in +0 -0
  31. {ccxt-4.3.86 → ccxt-4.3.87}/README.rst +0 -0
  32. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/__init__.py +0 -0
  33. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/ace.py +0 -0
  34. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/alpaca.py +0 -0
  35. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/ascendex.py +0 -0
  36. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bequant.py +0 -0
  37. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bigone.py +0 -0
  38. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/binance.py +0 -0
  39. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/binancecoinm.py +0 -0
  40. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/binanceus.py +0 -0
  41. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/binanceusdm.py +0 -0
  42. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bingx.py +0 -0
  43. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bit2c.py +0 -0
  44. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitbank.py +0 -0
  45. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitbay.py +0 -0
  46. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitbns.py +0 -0
  47. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitcoincom.py +0 -0
  48. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitfinex.py +0 -0
  49. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitfinex2.py +0 -0
  50. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitflyer.py +0 -0
  51. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitget.py +0 -0
  52. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bithumb.py +0 -0
  53. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitmart.py +0 -0
  54. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitmex.py +0 -0
  55. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitopro.py +0 -0
  56. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitpanda.py +0 -0
  57. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitrue.py +0 -0
  58. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitso.py +0 -0
  59. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitstamp.py +0 -0
  60. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitteam.py +0 -0
  61. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bitvavo.py +0 -0
  62. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bl3p.py +0 -0
  63. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/blockchaincom.py +0 -0
  64. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/blofin.py +0 -0
  65. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/btcalpha.py +0 -0
  66. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/btcbox.py +0 -0
  67. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/btcmarkets.py +0 -0
  68. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/btcturk.py +0 -0
  69. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/bybit.py +0 -0
  70. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/cex.py +0 -0
  71. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinbase.py +0 -0
  72. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinbaseadvanced.py +0 -0
  73. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinbaseexchange.py +0 -0
  74. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinbaseinternational.py +0 -0
  75. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coincheck.py +0 -0
  76. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinex.py +0 -0
  77. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinlist.py +0 -0
  78. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinmate.py +0 -0
  79. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinmetro.py +0 -0
  80. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinone.py +0 -0
  81. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinsph.py +0 -0
  82. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/coinspot.py +0 -0
  83. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/cryptocom.py +0 -0
  84. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/currencycom.py +0 -0
  85. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/delta.py +0 -0
  86. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/deribit.py +0 -0
  87. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/digifinex.py +0 -0
  88. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/exmo.py +0 -0
  89. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/fmfwio.py +0 -0
  90. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/gate.py +0 -0
  91. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/gateio.py +0 -0
  92. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/gemini.py +0 -0
  93. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/hashkey.py +0 -0
  94. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/hitbtc.py +0 -0
  95. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/hitbtc3.py +0 -0
  96. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/hollaex.py +0 -0
  97. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/htx.py +0 -0
  98. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/huobi.py +0 -0
  99. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/huobijp.py +0 -0
  100. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/hyperliquid.py +0 -0
  101. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/idex.py +0 -0
  102. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/independentreserve.py +0 -0
  103. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/indodax.py +0 -0
  104. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/kraken.py +0 -0
  105. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/krakenfutures.py +0 -0
  106. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/kucoin.py +0 -0
  107. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/kucoinfutures.py +0 -0
  108. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/kuna.py +0 -0
  109. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/latoken.py +0 -0
  110. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/lbank.py +0 -0
  111. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/luno.py +0 -0
  112. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/lykke.py +0 -0
  113. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/mercado.py +0 -0
  114. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/mexc.py +0 -0
  115. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/ndax.py +0 -0
  116. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/novadax.py +0 -0
  117. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/oceanex.py +0 -0
  118. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/okcoin.py +0 -0
  119. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/okx.py +0 -0
  120. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/onetrading.py +0 -0
  121. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/oxfun.py +0 -0
  122. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/p2b.py +0 -0
  123. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/paradex.py +0 -0
  124. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/paymium.py +0 -0
  125. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/phemex.py +0 -0
  126. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/poloniex.py +0 -0
  127. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/poloniexfutures.py +0 -0
  128. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/probit.py +0 -0
  129. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/timex.py +0 -0
  130. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/tokocrypto.py +0 -0
  131. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/tradeogre.py +0 -0
  132. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/upbit.py +0 -0
  133. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/vertex.py +0 -0
  134. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/wavesexchange.py +0 -0
  135. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/wazirx.py +0 -0
  136. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/whitebit.py +0 -0
  137. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/woo.py +0 -0
  138. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/woofipro.py +0 -0
  139. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/xt.py +0 -0
  140. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/yobit.py +0 -0
  141. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/zaif.py +0 -0
  142. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/abstract/zonda.py +0 -0
  143. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/ace.py +0 -0
  144. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/alpaca.py +0 -0
  145. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/ascendex.py +0 -0
  146. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/ace.py +0 -0
  147. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/alpaca.py +0 -0
  148. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/ascendex.py +0 -0
  149. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/__init__.py +0 -0
  150. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/throttler.py +0 -0
  151. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/__init__.py +0 -0
  152. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  153. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/cache.py +0 -0
  154. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/client.py +0 -0
  155. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/fast_client.py +0 -0
  156. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/functions.py +0 -0
  157. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/future.py +0 -0
  158. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/order_book.py +0 -0
  159. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  160. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bequant.py +0 -0
  161. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bigone.py +0 -0
  162. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/binance.py +0 -0
  163. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/binancecoinm.py +0 -0
  164. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/binanceus.py +0 -0
  165. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/binanceusdm.py +0 -0
  166. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bit2c.py +0 -0
  167. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitbank.py +0 -0
  168. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitbay.py +0 -0
  169. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitbns.py +0 -0
  170. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitcoincom.py +0 -0
  171. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitfinex.py +0 -0
  172. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitfinex2.py +0 -0
  173. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitflyer.py +0 -0
  174. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitget.py +0 -0
  175. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bithumb.py +0 -0
  176. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitmart.py +0 -0
  177. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitmex.py +0 -0
  178. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitopro.py +0 -0
  179. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitpanda.py +0 -0
  180. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitrue.py +0 -0
  181. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitso.py +0 -0
  182. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitstamp.py +0 -0
  183. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitteam.py +0 -0
  184. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bitvavo.py +0 -0
  185. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bl3p.py +0 -0
  186. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/blockchaincom.py +0 -0
  187. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/blofin.py +0 -0
  188. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/btcalpha.py +0 -0
  189. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/btcbox.py +0 -0
  190. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/btcmarkets.py +0 -0
  191. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/btcturk.py +0 -0
  192. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/bybit.py +0 -0
  193. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/cex.py +0 -0
  194. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinbase.py +0 -0
  195. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinbaseadvanced.py +0 -0
  196. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinbaseexchange.py +0 -0
  197. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinbaseinternational.py +0 -0
  198. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coincheck.py +0 -0
  199. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinex.py +0 -0
  200. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinlist.py +0 -0
  201. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinmate.py +0 -0
  202. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinmetro.py +0 -0
  203. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinone.py +0 -0
  204. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinsph.py +0 -0
  205. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/coinspot.py +0 -0
  206. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/cryptocom.py +0 -0
  207. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/currencycom.py +0 -0
  208. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/delta.py +0 -0
  209. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/deribit.py +0 -0
  210. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/digifinex.py +0 -0
  211. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/exmo.py +0 -0
  212. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/fmfwio.py +0 -0
  213. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/gate.py +0 -0
  214. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/gateio.py +0 -0
  215. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/gemini.py +0 -0
  216. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/hitbtc.py +0 -0
  217. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/hitbtc3.py +0 -0
  218. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/hollaex.py +0 -0
  219. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/htx.py +0 -0
  220. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/huobi.py +0 -0
  221. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/huobijp.py +0 -0
  222. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/hyperliquid.py +0 -0
  223. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/idex.py +0 -0
  224. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/independentreserve.py +0 -0
  225. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/indodax.py +0 -0
  226. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/krakenfutures.py +0 -0
  227. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/kucoin.py +0 -0
  228. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/kucoinfutures.py +0 -0
  229. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/kuna.py +0 -0
  230. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/latoken.py +0 -0
  231. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/lbank.py +0 -0
  232. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/luno.py +0 -0
  233. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/lykke.py +0 -0
  234. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/mercado.py +0 -0
  235. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/mexc.py +0 -0
  236. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/ndax.py +0 -0
  237. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/novadax.py +0 -0
  238. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/oceanex.py +0 -0
  239. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/okcoin.py +0 -0
  240. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/okx.py +0 -0
  241. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/onetrading.py +0 -0
  242. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/oxfun.py +0 -0
  243. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/p2b.py +0 -0
  244. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/paradex.py +0 -0
  245. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/paymium.py +0 -0
  246. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/phemex.py +0 -0
  247. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/poloniex.py +0 -0
  248. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/poloniexfutures.py +0 -0
  249. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/probit.py +0 -0
  250. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/timex.py +0 -0
  251. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/tokocrypto.py +0 -0
  252. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/tradeogre.py +0 -0
  253. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/vertex.py +0 -0
  254. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/wavesexchange.py +0 -0
  255. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/wazirx.py +0 -0
  256. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/whitebit.py +0 -0
  257. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/woo.py +0 -0
  258. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/woofipro.py +0 -0
  259. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/xt.py +0 -0
  260. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/yobit.py +0 -0
  261. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/zaif.py +0 -0
  262. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/async_support/zonda.py +0 -0
  263. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/__init__.py +0 -0
  264. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/decimal_to_precision.py +0 -0
  265. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/precise.py +0 -0
  266. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/base/types.py +0 -0
  267. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bequant.py +0 -0
  268. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bigone.py +0 -0
  269. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/binance.py +0 -0
  270. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/binancecoinm.py +0 -0
  271. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/binanceus.py +0 -0
  272. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/binanceusdm.py +0 -0
  273. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bit2c.py +0 -0
  274. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitbank.py +0 -0
  275. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitbay.py +0 -0
  276. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitbns.py +0 -0
  277. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitcoincom.py +0 -0
  278. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitfinex.py +0 -0
  279. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitfinex2.py +0 -0
  280. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitflyer.py +0 -0
  281. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitget.py +0 -0
  282. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bithumb.py +0 -0
  283. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitmart.py +0 -0
  284. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitmex.py +0 -0
  285. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitopro.py +0 -0
  286. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitpanda.py +0 -0
  287. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitrue.py +0 -0
  288. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitso.py +0 -0
  289. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitstamp.py +0 -0
  290. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitteam.py +0 -0
  291. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bitvavo.py +0 -0
  292. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bl3p.py +0 -0
  293. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/blockchaincom.py +0 -0
  294. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/blofin.py +0 -0
  295. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/btcalpha.py +0 -0
  296. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/btcbox.py +0 -0
  297. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/btcmarkets.py +0 -0
  298. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/btcturk.py +0 -0
  299. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/bybit.py +0 -0
  300. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/cex.py +0 -0
  301. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinbase.py +0 -0
  302. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinbaseadvanced.py +0 -0
  303. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinbaseexchange.py +0 -0
  304. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinbaseinternational.py +0 -0
  305. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coincheck.py +0 -0
  306. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinex.py +0 -0
  307. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinlist.py +0 -0
  308. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinmate.py +0 -0
  309. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinmetro.py +0 -0
  310. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinone.py +0 -0
  311. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinsph.py +0 -0
  312. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/coinspot.py +0 -0
  313. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/cryptocom.py +0 -0
  314. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/currencycom.py +0 -0
  315. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/delta.py +0 -0
  316. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/deribit.py +0 -0
  317. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/digifinex.py +0 -0
  318. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/exmo.py +0 -0
  319. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/fmfwio.py +0 -0
  320. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/gate.py +0 -0
  321. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/gateio.py +0 -0
  322. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/gemini.py +0 -0
  323. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/hitbtc.py +0 -0
  324. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/hitbtc3.py +0 -0
  325. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/hollaex.py +0 -0
  326. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/htx.py +0 -0
  327. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/huobi.py +0 -0
  328. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/huobijp.py +0 -0
  329. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/hyperliquid.py +0 -0
  330. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/idex.py +0 -0
  331. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/independentreserve.py +0 -0
  332. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/indodax.py +0 -0
  333. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/krakenfutures.py +0 -0
  334. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/kucoin.py +0 -0
  335. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/kucoinfutures.py +0 -0
  336. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/kuna.py +0 -0
  337. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/latoken.py +0 -0
  338. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/lbank.py +0 -0
  339. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/luno.py +0 -0
  340. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/lykke.py +0 -0
  341. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/mercado.py +0 -0
  342. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/mexc.py +0 -0
  343. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/ndax.py +0 -0
  344. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/novadax.py +0 -0
  345. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/oceanex.py +0 -0
  346. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/okcoin.py +0 -0
  347. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/okx.py +0 -0
  348. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/onetrading.py +0 -0
  349. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/oxfun.py +0 -0
  350. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/p2b.py +0 -0
  351. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/paradex.py +0 -0
  352. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/paymium.py +0 -0
  353. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/phemex.py +0 -0
  354. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/poloniex.py +0 -0
  355. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/poloniexfutures.py +0 -0
  356. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/alpaca.py +0 -0
  357. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/ascendex.py +0 -0
  358. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bequant.py +0 -0
  359. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/binance.py +0 -0
  360. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/binancecoinm.py +0 -0
  361. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/binanceus.py +0 -0
  362. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/binanceusdm.py +0 -0
  363. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bingx.py +0 -0
  364. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitcoincom.py +0 -0
  365. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitfinex.py +0 -0
  366. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitfinex2.py +0 -0
  367. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bithumb.py +0 -0
  368. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitmart.py +0 -0
  369. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitmex.py +0 -0
  370. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitopro.py +0 -0
  371. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitpanda.py +0 -0
  372. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitrue.py +0 -0
  373. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitstamp.py +0 -0
  374. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bitvavo.py +0 -0
  375. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/blockchaincom.py +0 -0
  376. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/blofin.py +0 -0
  377. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/bybit.py +0 -0
  378. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/cex.py +0 -0
  379. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coinbase.py +0 -0
  380. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coinbaseexchange.py +0 -0
  381. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coinbaseinternational.py +0 -0
  382. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coincheck.py +0 -0
  383. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coinex.py +0 -0
  384. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/coinone.py +0 -0
  385. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/cryptocom.py +0 -0
  386. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/currencycom.py +0 -0
  387. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/deribit.py +0 -0
  388. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/exmo.py +0 -0
  389. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/gate.py +0 -0
  390. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/gateio.py +0 -0
  391. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/gemini.py +0 -0
  392. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/hashkey.py +0 -0
  393. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/hitbtc.py +0 -0
  394. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/hollaex.py +0 -0
  395. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/htx.py +0 -0
  396. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/huobi.py +0 -0
  397. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/huobijp.py +0 -0
  398. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/hyperliquid.py +0 -0
  399. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/idex.py +0 -0
  400. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/independentreserve.py +0 -0
  401. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/kraken.py +0 -0
  402. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/krakenfutures.py +0 -0
  403. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/kucoin.py +0 -0
  404. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/kucoinfutures.py +0 -0
  405. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/lbank.py +0 -0
  406. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/luno.py +0 -0
  407. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/mexc.py +0 -0
  408. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/ndax.py +0 -0
  409. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/okcoin.py +0 -0
  410. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/okx.py +0 -0
  411. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/onetrading.py +0 -0
  412. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/oxfun.py +0 -0
  413. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/paradex.py +0 -0
  414. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/phemex.py +0 -0
  415. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/woo.py +0 -0
  416. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/woofipro.py +0 -0
  417. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/pro/xt.py +0 -0
  418. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/probit.py +0 -0
  419. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/__init__.py +0 -0
  420. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  421. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  422. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  423. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  424. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  425. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  426. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  427. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  428. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  429. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  430. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  431. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  432. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  433. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  434. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  435. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  436. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  437. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  438. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  439. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  440. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  441. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  442. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  443. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  444. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  445. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  446. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  447. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  448. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  449. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  450. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  451. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  452. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  453. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  454. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  455. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  456. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  457. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  458. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  459. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  460. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  461. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  462. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  463. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  464. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  465. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  466. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  467. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  468. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  469. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  470. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  471. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  472. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  473. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  474. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  475. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  476. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  477. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  478. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  479. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  480. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  481. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  482. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  483. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  484. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  485. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  486. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  487. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  488. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  489. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  490. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  491. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  492. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  493. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  494. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/__init__.py +0 -0
  495. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  496. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  497. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  498. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/common.py +0 -0
  499. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  500. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/grammar.py +0 -0
  501. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  502. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/indenter.py +0 -0
  503. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/lark.py +0 -0
  504. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/lexer.py +0 -0
  505. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  506. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  507. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  508. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  509. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  510. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  511. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  512. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  513. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  514. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  515. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  516. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  517. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  518. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  519. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/py.typed +0 -0
  520. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  521. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  522. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  523. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  524. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  525. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tree.py +0 -0
  526. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  527. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  528. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/utils.py +0 -0
  529. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/lark/visitors.py +0 -0
  530. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  531. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  532. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  533. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  534. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  535. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  536. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  537. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  538. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  539. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  540. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  541. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  542. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  543. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  544. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  545. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  546. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  547. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  548. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  549. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  550. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  551. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  552. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  553. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  554. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  555. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  556. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  557. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  558. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  559. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  560. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  561. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  562. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  563. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  564. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  565. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  566. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  567. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  568. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  569. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  570. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  571. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  572. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  573. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  574. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  575. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  576. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  577. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  578. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/common.py +0 -0
  579. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/constants.py +0 -0
  580. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  581. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  582. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  583. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  584. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  585. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  586. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  587. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  588. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  589. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  590. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  591. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  592. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  593. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  594. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  595. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  596. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  597. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  598. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  599. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  600. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  601. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  602. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  603. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  604. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  605. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  606. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  607. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  608. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  609. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  610. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  611. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  612. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  613. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  614. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  615. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  616. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  617. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  618. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  619. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  620. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  621. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  622. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  623. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  624. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  625. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  626. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  627. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  628. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  629. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  630. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  631. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  632. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  633. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/_version.py +0 -0
  634. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  635. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  636. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  637. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  638. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  639. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  640. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  641. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  642. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/toolz/utils.py +0 -0
  643. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  644. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  645. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/test/__init__.py +0 -0
  646. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/test/tests_helpers.py +0 -0
  647. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/test/tests_init.py +0 -0
  648. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/timex.py +0 -0
  649. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/tokocrypto.py +0 -0
  650. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/tradeogre.py +0 -0
  651. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/vertex.py +0 -0
  652. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/wavesexchange.py +0 -0
  653. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/wazirx.py +0 -0
  654. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/whitebit.py +0 -0
  655. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/woo.py +0 -0
  656. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/woofipro.py +0 -0
  657. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/xt.py +0 -0
  658. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/yobit.py +0 -0
  659. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/zaif.py +0 -0
  660. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt/zonda.py +0 -0
  661. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt.egg-info/SOURCES.txt +0 -0
  662. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt.egg-info/dependency_links.txt +0 -0
  663. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt.egg-info/requires.txt +0 -0
  664. {ccxt-4.3.86 → ccxt-4.3.87}/ccxt.egg-info/top_level.txt +0 -0
  665. {ccxt-4.3.86 → ccxt-4.3.87}/setup.cfg +0 -0
  666. {ccxt-4.3.86 → ccxt-4.3.87}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.86
3
+ Version: 4.3.87
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
@@ -59,6 +59,7 @@ Current feature list:
59
59
 
60
60
 
61
61
  ## Sponsored Promotion
62
+ [![hashkey-campaign](https://github.com/user-attachments/assets/1622ba7d-637d-41e3-9ad4-d61a6ea69881)](https://support.global.hashkey.com/hc/en-us/articles/15485543021468-Trade-Through-CCXT-to-Grab-up-to-1-000-USDT-30-Day-VIP5-Trial)
62
63
 
63
64
  ## See Also
64
65
 
@@ -85,7 +86,7 @@ Current feature list:
85
86
  | [![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 | [![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) | |
86
87
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | cex | [![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 Crypto.com using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://crypto.com/exch/kdacthrnxt) |
87
88
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | cex | [![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 Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/signup/2436035) |
88
- | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/) | hashkey | [HashKey Global](https://global.hashkey.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![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) | |
89
+ | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![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) | |
89
90
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [![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 HTX using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
90
91
  | [![kucoin](https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg)](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.kucoin.com) | cex | [![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) | |
91
92
  | [![kucoinfutures](https://user-images.githubusercontent.com/1294454/147508995-9e35030a-d046-43a1-a006-6fabd981b554.jpg)](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.kucoin.com/futures) | cex | [![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) | |
@@ -155,7 +156,7 @@ The CCXT library currently supports the following 103 cryptocurrency exchange ma
155
156
  | [![fmfwio](https://user-images.githubusercontent.com/1294454/159177712-b685b40c-5269-4cea-ac83-f7894c49525d.jpg)](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.fmfw.io/) | cex | | |
156
157
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | cex | [![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) |
157
158
  | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.gemini.com/rest-api) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
158
- | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/) | hashkey | [HashKey Global](https://global.hashkey.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![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) |
159
+ | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![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) |
159
160
  | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.hitbtc.com) | cex | | |
160
161
  | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://apidocs.hollaex.com) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
161
162
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [![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) |
@@ -260,13 +261,13 @@ console.log(version, Object.keys(exchanges));
260
261
 
261
262
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
262
263
 
263
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.86/dist/ccxt.browser.min.js
264
- * unpkg: https://unpkg.com/ccxt@4.3.86/dist/ccxt.browser.min.js
264
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.87/dist/ccxt.browser.min.js
265
+ * unpkg: https://unpkg.com/ccxt@4.3.87/dist/ccxt.browser.min.js
265
266
 
266
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.
267
268
 
268
269
  ```HTML
269
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.86/dist/ccxt.browser.min.js"></script>
270
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.87/dist/ccxt.browser.min.js"></script>
270
271
  ```
271
272
 
272
273
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.86'
25
+ __version__ = '4.3.87'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -80,6 +80,7 @@ from ccxt.base.errors import RequestTimeout # noqa: F4
80
80
  from ccxt.base.errors import BadResponse # noqa: F401
81
81
  from ccxt.base.errors import NullResponse # noqa: F401
82
82
  from ccxt.base.errors import CancelPending # noqa: F401
83
+ from ccxt.base.errors import UnsubscribeError # noqa: F401
83
84
  from ccxt.base.errors import error_hierarchy # noqa: F401
84
85
 
85
86
  from ccxt.ace import ace # noqa: F401
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.86'
7
+ __version__ = '4.3.87'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -59,6 +59,7 @@ from ccxt.base.errors import RequestTimeout # noqa: F4
59
59
  from ccxt.base.errors import BadResponse # noqa: F401
60
60
  from ccxt.base.errors import NullResponse # noqa: F401
61
61
  from ccxt.base.errors import CancelPending # noqa: F401
62
+ from ccxt.base.errors import UnsubscribeError # noqa: F401
62
63
  from ccxt.base.errors import error_hierarchy # noqa: F401
63
64
 
64
65
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.86'
5
+ __version__ = '4.3.87'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -749,7 +749,11 @@ class bingx(Exchange, ImplicitAPI):
749
749
  symbol += ':' + settle
750
750
  fees = self.safe_dict(self.fees, type, {})
751
751
  contractSize = self.parse_number('1') if (swap) else None
752
- isActive = self.safe_string(market, 'status') == '1'
752
+ isActive = False
753
+ if (self.safe_string(market, 'apiStateOpen') == 'true') and (self.safe_string(market, 'apiStateClose') == 'true'):
754
+ isActive = True # swap active
755
+ elif self.safe_bool(market, 'apiStateSell') and self.safe_bool(market, 'apiStateBuy'):
756
+ isActive = True # spot active
753
757
  isInverse = None if (spot) else checkIsInverse
754
758
  isLinear = None if (spot) else checkIsLinear
755
759
  timeOnline = self.safe_integer(market, 'timeOnline')
@@ -47,7 +47,6 @@ class hashkey(Exchange, ImplicitAPI):
47
47
  'version': 'v1',
48
48
  'certified': True,
49
49
  'pro': True,
50
- 'hostname': '/api-glb',
51
50
  'has': {
52
51
  'CORS': None,
53
52
  'spot': True,
@@ -168,7 +167,7 @@ class hashkey(Exchange, ImplicitAPI):
168
167
  'www': 'https://global.hashkey.com/',
169
168
  'doc': 'https://hashkeyglobal-apidoc.readme.io/',
170
169
  'fees': 'https://support.global.hashkey.com/hc/en-us/articles/13199900083612-HashKey-Global-Fee-Structure',
171
- 'referral': '',
170
+ 'referral': 'https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN',
172
171
  },
173
172
  'api': {
174
173
  'public': {
@@ -1086,6 +1086,7 @@ class kraken(Exchange, ImplicitAPI):
1086
1086
  :param int [limit]: max number of ledger entrys to return, default is None
1087
1087
  :param dict [params]: extra parameters specific to the exchange API endpoint
1088
1088
  :param int [params.until]: timestamp in ms of the latest ledger entry
1089
+ :param int [params.end]: timestamp in seconds of the latest ledger entry
1089
1090
  :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
1090
1091
  """
1091
1092
  # https://www.kraken.com/features/api#get-ledgers-info
@@ -1097,7 +1098,11 @@ class kraken(Exchange, ImplicitAPI):
1097
1098
  request['asset'] = currency['id']
1098
1099
  if since is not None:
1099
1100
  request['start'] = self.parse_to_int(since / 1000)
1100
- request, params = self.handle_until_option('end', request, params)
1101
+ until = self.safe_string_n(params, ['until', 'till'])
1102
+ if until is not None:
1103
+ params = self.omit(params, ['until', 'till'])
1104
+ untilDivided = Precise.string_div(until, '1000')
1105
+ request['end'] = self.parse_to_int(Precise.string_add(untilDivided, '1'))
1101
1106
  response = await self.privatePostLedgers(self.extend(request, params))
1102
1107
  # { error: [],
1103
1108
  # "result": {ledger: {'LPUAIB-TS774-UKHP7X': { refid: "A2B4HBV-L4MDIE-JU4N3N",
@@ -1995,6 +2000,8 @@ class kraken(Exchange, ImplicitAPI):
1995
2000
  :param int [since]: the earliest time in ms to fetch trades for
1996
2001
  :param int [limit]: the maximum number of trades structures to retrieve
1997
2002
  :param dict [params]: extra parameters specific to the exchange API endpoint
2003
+ :param int [params.until]: timestamp in ms of the latest trade entry
2004
+ :param int [params.end]: timestamp in seconds of the latest trade entry
1998
2005
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1999
2006
  """
2000
2007
  await self.load_markets()
@@ -2007,6 +2014,11 @@ class kraken(Exchange, ImplicitAPI):
2007
2014
  }
2008
2015
  if since is not None:
2009
2016
  request['start'] = self.parse_to_int(since / 1000)
2017
+ until = self.safe_string_n(params, ['until', 'till'])
2018
+ if until is not None:
2019
+ params = self.omit(params, ['until', 'till'])
2020
+ untilDivided = Precise.string_div(until, '1000')
2021
+ request['end'] = self.parse_to_int(Precise.string_add(untilDivided, '1'))
2010
2022
  response = await self.privatePostTradesHistory(self.extend(request, params))
2011
2023
  #
2012
2024
  # {
@@ -2391,6 +2403,8 @@ class kraken(Exchange, ImplicitAPI):
2391
2403
  :param int [since]: the earliest time in ms to fetch deposits for
2392
2404
  :param int [limit]: the maximum number of deposits structures to retrieve
2393
2405
  :param dict [params]: extra parameters specific to the exchange API endpoint
2406
+ :param int [params.until]: timestamp in ms of the latest transaction entry
2407
+ :param int [params.end]: timestamp in seconds of the latest transaction entry
2394
2408
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2395
2409
  """
2396
2410
  # https://www.kraken.com/en-us/help/api#deposit-status
@@ -2400,7 +2414,13 @@ class kraken(Exchange, ImplicitAPI):
2400
2414
  currency = self.currency(code)
2401
2415
  request['asset'] = currency['id']
2402
2416
  if since is not None:
2403
- request['start'] = since
2417
+ sinceString = self.number_to_string(since)
2418
+ request['start'] = Precise.string_div(sinceString, '1000')
2419
+ until = self.safe_string_n(params, ['until', 'till'])
2420
+ if until is not None:
2421
+ params = self.omit(params, ['until', 'till'])
2422
+ untilDivided = Precise.string_div(until, '1000')
2423
+ request['end'] = Precise.string_add(untilDivided, '1')
2404
2424
  response = await self.privatePostDepositStatus(self.extend(request, params))
2405
2425
  #
2406
2426
  # { error: [],
@@ -2446,8 +2466,9 @@ class kraken(Exchange, ImplicitAPI):
2446
2466
  :param int [since]: the earliest time in ms to fetch withdrawals for
2447
2467
  :param int [limit]: the maximum number of withdrawals structures to retrieve
2448
2468
  :param dict [params]: extra parameters specific to the exchange API endpoint
2449
- :param dict [params.end]: End timestamp, withdrawals created strictly after will be not be included in the response
2450
- :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times
2469
+ :param int [params.until]: timestamp in ms of the latest transaction entry
2470
+ :param int [params.end]: timestamp in seconds of the latest transaction entry
2471
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times
2451
2472
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2452
2473
  """
2453
2474
  await self.load_markets()
@@ -2461,7 +2482,13 @@ class kraken(Exchange, ImplicitAPI):
2461
2482
  currency = self.currency(code)
2462
2483
  request['asset'] = currency['id']
2463
2484
  if since is not None:
2464
- request['since'] = str(since)
2485
+ sinceString = self.number_to_string(since)
2486
+ request['start'] = Precise.string_div(sinceString, '1000')
2487
+ until = self.safe_string_n(params, ['until', 'till'])
2488
+ if until is not None:
2489
+ params = self.omit(params, ['until', 'till'])
2490
+ untilDivided = Precise.string_div(until, '1000')
2491
+ request['end'] = Precise.string_add(untilDivided, '1')
2465
2492
  response = await self.privatePostWithdrawStatus(self.extend(request, params))
2466
2493
  #
2467
2494
  # with no pagination
@@ -1891,7 +1891,7 @@ class upbit(Exchange, ImplicitAPI):
1891
1891
  body = self.json(params)
1892
1892
  headers['Content-Type'] = 'application/json'
1893
1893
  if hasQuery:
1894
- auth = self.urlencode(query)
1894
+ auth = self.rawencode(query)
1895
1895
  if auth is not None:
1896
1896
  hash = self.hash(self.encode(auth), 'sha512')
1897
1897
  request['query_hash'] = hash
@@ -51,6 +51,7 @@ error_hierarchy = {
51
51
  },
52
52
  'CancelPending': {},
53
53
  },
54
+ 'UnsubscribeError': {},
54
55
  },
55
56
  }
56
57
 
@@ -211,6 +212,10 @@ class CancelPending(OperationFailed):
211
212
  pass
212
213
 
213
214
 
215
+ class UnsubscribeError(BaseError):
216
+ pass
217
+
218
+
214
219
  __all__ = [
215
220
  'error_hierarchy',
216
221
  'BaseError',
@@ -251,5 +256,6 @@ __all__ = [
251
256
  'RequestTimeout',
252
257
  'BadResponse',
253
258
  'NullResponse',
254
- 'CancelPending'
259
+ 'CancelPending',
260
+ 'UnsubscribeError'
255
261
  ]
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.86'
7
+ __version__ = '4.3.87'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -748,7 +748,11 @@ class bingx(Exchange, ImplicitAPI):
748
748
  symbol += ':' + settle
749
749
  fees = self.safe_dict(self.fees, type, {})
750
750
  contractSize = self.parse_number('1') if (swap) else None
751
- isActive = self.safe_string(market, 'status') == '1'
751
+ isActive = False
752
+ if (self.safe_string(market, 'apiStateOpen') == 'true') and (self.safe_string(market, 'apiStateClose') == 'true'):
753
+ isActive = True # swap active
754
+ elif self.safe_bool(market, 'apiStateSell') and self.safe_bool(market, 'apiStateBuy'):
755
+ isActive = True # spot active
752
756
  isInverse = None if (spot) else checkIsInverse
753
757
  isLinear = None if (spot) else checkIsLinear
754
758
  timeOnline = self.safe_integer(market, 'timeOnline')
@@ -47,7 +47,6 @@ class hashkey(Exchange, ImplicitAPI):
47
47
  'version': 'v1',
48
48
  'certified': True,
49
49
  'pro': True,
50
- 'hostname': '/api-glb',
51
50
  'has': {
52
51
  'CORS': None,
53
52
  'spot': True,
@@ -168,7 +167,7 @@ class hashkey(Exchange, ImplicitAPI):
168
167
  'www': 'https://global.hashkey.com/',
169
168
  'doc': 'https://hashkeyglobal-apidoc.readme.io/',
170
169
  'fees': 'https://support.global.hashkey.com/hc/en-us/articles/13199900083612-HashKey-Global-Fee-Structure',
171
- 'referral': '',
170
+ 'referral': 'https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN',
172
171
  },
173
172
  'api': {
174
173
  'public': {
@@ -1086,6 +1086,7 @@ class kraken(Exchange, ImplicitAPI):
1086
1086
  :param int [limit]: max number of ledger entrys to return, default is None
1087
1087
  :param dict [params]: extra parameters specific to the exchange API endpoint
1088
1088
  :param int [params.until]: timestamp in ms of the latest ledger entry
1089
+ :param int [params.end]: timestamp in seconds of the latest ledger entry
1089
1090
  :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
1090
1091
  """
1091
1092
  # https://www.kraken.com/features/api#get-ledgers-info
@@ -1097,7 +1098,11 @@ class kraken(Exchange, ImplicitAPI):
1097
1098
  request['asset'] = currency['id']
1098
1099
  if since is not None:
1099
1100
  request['start'] = self.parse_to_int(since / 1000)
1100
- request, params = self.handle_until_option('end', request, params)
1101
+ until = self.safe_string_n(params, ['until', 'till'])
1102
+ if until is not None:
1103
+ params = self.omit(params, ['until', 'till'])
1104
+ untilDivided = Precise.string_div(until, '1000')
1105
+ request['end'] = self.parse_to_int(Precise.string_add(untilDivided, '1'))
1101
1106
  response = self.privatePostLedgers(self.extend(request, params))
1102
1107
  # { error: [],
1103
1108
  # "result": {ledger: {'LPUAIB-TS774-UKHP7X': { refid: "A2B4HBV-L4MDIE-JU4N3N",
@@ -1995,6 +2000,8 @@ class kraken(Exchange, ImplicitAPI):
1995
2000
  :param int [since]: the earliest time in ms to fetch trades for
1996
2001
  :param int [limit]: the maximum number of trades structures to retrieve
1997
2002
  :param dict [params]: extra parameters specific to the exchange API endpoint
2003
+ :param int [params.until]: timestamp in ms of the latest trade entry
2004
+ :param int [params.end]: timestamp in seconds of the latest trade entry
1998
2005
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1999
2006
  """
2000
2007
  self.load_markets()
@@ -2007,6 +2014,11 @@ class kraken(Exchange, ImplicitAPI):
2007
2014
  }
2008
2015
  if since is not None:
2009
2016
  request['start'] = self.parse_to_int(since / 1000)
2017
+ until = self.safe_string_n(params, ['until', 'till'])
2018
+ if until is not None:
2019
+ params = self.omit(params, ['until', 'till'])
2020
+ untilDivided = Precise.string_div(until, '1000')
2021
+ request['end'] = self.parse_to_int(Precise.string_add(untilDivided, '1'))
2010
2022
  response = self.privatePostTradesHistory(self.extend(request, params))
2011
2023
  #
2012
2024
  # {
@@ -2391,6 +2403,8 @@ class kraken(Exchange, ImplicitAPI):
2391
2403
  :param int [since]: the earliest time in ms to fetch deposits for
2392
2404
  :param int [limit]: the maximum number of deposits structures to retrieve
2393
2405
  :param dict [params]: extra parameters specific to the exchange API endpoint
2406
+ :param int [params.until]: timestamp in ms of the latest transaction entry
2407
+ :param int [params.end]: timestamp in seconds of the latest transaction entry
2394
2408
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2395
2409
  """
2396
2410
  # https://www.kraken.com/en-us/help/api#deposit-status
@@ -2400,7 +2414,13 @@ class kraken(Exchange, ImplicitAPI):
2400
2414
  currency = self.currency(code)
2401
2415
  request['asset'] = currency['id']
2402
2416
  if since is not None:
2403
- request['start'] = since
2417
+ sinceString = self.number_to_string(since)
2418
+ request['start'] = Precise.string_div(sinceString, '1000')
2419
+ until = self.safe_string_n(params, ['until', 'till'])
2420
+ if until is not None:
2421
+ params = self.omit(params, ['until', 'till'])
2422
+ untilDivided = Precise.string_div(until, '1000')
2423
+ request['end'] = Precise.string_add(untilDivided, '1')
2404
2424
  response = self.privatePostDepositStatus(self.extend(request, params))
2405
2425
  #
2406
2426
  # { error: [],
@@ -2446,8 +2466,9 @@ class kraken(Exchange, ImplicitAPI):
2446
2466
  :param int [since]: the earliest time in ms to fetch withdrawals for
2447
2467
  :param int [limit]: the maximum number of withdrawals structures to retrieve
2448
2468
  :param dict [params]: extra parameters specific to the exchange API endpoint
2449
- :param dict [params.end]: End timestamp, withdrawals created strictly after will be not be included in the response
2450
- :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times
2469
+ :param int [params.until]: timestamp in ms of the latest transaction entry
2470
+ :param int [params.end]: timestamp in seconds of the latest transaction entry
2471
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times
2451
2472
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2452
2473
  """
2453
2474
  self.load_markets()
@@ -2461,7 +2482,13 @@ class kraken(Exchange, ImplicitAPI):
2461
2482
  currency = self.currency(code)
2462
2483
  request['asset'] = currency['id']
2463
2484
  if since is not None:
2464
- request['since'] = str(since)
2485
+ sinceString = self.number_to_string(since)
2486
+ request['start'] = Precise.string_div(sinceString, '1000')
2487
+ until = self.safe_string_n(params, ['until', 'till'])
2488
+ if until is not None:
2489
+ params = self.omit(params, ['until', 'till'])
2490
+ untilDivided = Precise.string_div(until, '1000')
2491
+ request['end'] = Precise.string_add(untilDivided, '1')
2465
2492
  response = self.privatePostWithdrawStatus(self.extend(request, params))
2466
2493
  #
2467
2494
  # with no pagination
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.86'
7
+ __version__ = '4.3.87'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -16,6 +16,7 @@ from ccxt.base.errors import ArgumentsRequired
16
16
  from ccxt.base.errors import BadRequest
17
17
  from ccxt.base.errors import RateLimitExceeded
18
18
  from ccxt.base.errors import ChecksumError
19
+ from ccxt.base.errors import UnsubscribeError
19
20
  from ccxt.base.precise import Precise
20
21
 
21
22
 
@@ -133,6 +134,17 @@ class bitget(ccxt.async_support.bitget):
133
134
  }
134
135
  return await self.watch_public(messageHash, args, params)
135
136
 
137
+ async def un_watch_ticker(self, symbol: str, params={}) -> Any:
138
+ """
139
+ unsubscribe from the ticker channel
140
+ :see: https://www.bitget.com/api-doc/spot/websocket/public/Tickers-Channel
141
+ :see: https://www.bitget.com/api-doc/contract/websocket/public/Tickers-Channel
142
+ :param str symbol: unified symbol of the market to unwatch the ticker for
143
+ :returns any: status of the unwatch request
144
+ """
145
+ await self.load_markets()
146
+ return await self.un_watch_channel(symbol, 'ticker', 'ticker', params)
147
+
136
148
  async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
137
149
  """
138
150
  watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
@@ -338,6 +350,20 @@ class bitget(ccxt.async_support.bitget):
338
350
  limit = ohlcv.getLimit(symbol, limit)
339
351
  return self.filter_by_since_limit(ohlcv, since, limit, 0, True)
340
352
 
353
+ async def un_watch_ohlcv(self, symbol: str, timeframe='1m', params={}) -> Any:
354
+ """
355
+ unsubscribe from the ohlcv channel
356
+ :see: https://www.bitget.com/api-doc/spot/websocket/public/Candlesticks-Channel
357
+ :see: https://www.bitget.com/api-doc/contract/websocket/public/Candlesticks-Channel
358
+ :param str symbol: unified symbol of the market to unwatch the ohlcv for
359
+ :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
360
+ """
361
+ await self.load_markets()
362
+ timeframes = self.safe_dict(self.options, 'timeframes')
363
+ interval = self.safe_string(timeframes, timeframe)
364
+ channel = 'candle' + interval
365
+ return await self.un_watch_channel(symbol, channel, 'candles:' + timeframe, params)
366
+
341
367
  def handle_ohlcv(self, client: Client, message):
342
368
  #
343
369
  # {
@@ -440,13 +466,17 @@ class bitget(ccxt.async_support.bitget):
440
466
  :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
441
467
  """
442
468
  await self.load_markets()
443
- market = self.market(symbol)
444
- messageHash = 'unsubscribe:orderbook:' + market['symbol']
445
469
  channel = 'books'
446
470
  limit = self.safe_integer(params, 'limit')
447
471
  if (limit == 1) or (limit == 5) or (limit == 15):
448
472
  params = self.omit(params, 'limit')
449
473
  channel += str(limit)
474
+ return await self.un_watch_channel(symbol, channel, 'orderbook', params)
475
+
476
+ async def un_watch_channel(self, symbol: str, channel: str, messageHashTopic: str, params={}) -> Any:
477
+ await self.load_markets()
478
+ market = self.market(symbol)
479
+ messageHash = 'unsubscribe:' + messageHashTopic + ':' + market['symbol']
450
480
  instType = None
451
481
  instType, params = self.get_inst_type(market, params)
452
482
  args: dict = {
@@ -648,6 +678,17 @@ class bitget(ccxt.async_support.bitget):
648
678
  limit = trades.getLimit(tradeSymbol, limit)
649
679
  return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
650
680
 
681
+ async def un_watch_trades(self, symbol: str, params={}) -> Any:
682
+ """
683
+ unsubscribe from the trades channel
684
+ :see: https://www.bitget.com/api-doc/spot/websocket/public/Trades-Channel
685
+ :see: https://www.bitget.com/api-doc/contract/websocket/public/New-Trades-Channel
686
+ :param str symbol: unified symbol of the market to unwatch the trades for
687
+ :returns any: status of the unwatch request
688
+ """
689
+ await self.load_markets()
690
+ return await self.un_watch_channel(symbol, 'trade', 'trade', params)
691
+
651
692
  def handle_trades(self, client: Client, message):
652
693
  #
653
694
  # {
@@ -1750,6 +1791,99 @@ class bitget(ccxt.async_support.bitget):
1750
1791
  #
1751
1792
  return message
1752
1793
 
1794
+ def handle_order_book_un_subscription(self, client: Client, message):
1795
+ #
1796
+ # {"event":"unsubscribe","arg":{"instType":"SPOT","channel":"books","instId":"BTCUSDT"}}
1797
+ #
1798
+ arg = self.safe_dict(message, 'arg', {})
1799
+ instType = self.safe_string_lower(arg, 'instType')
1800
+ type = 'spot' if (instType == 'spot') else 'contract'
1801
+ instId = self.safe_string(arg, 'instId')
1802
+ market = self.safe_market(instId, None, None, type)
1803
+ symbol = market['symbol']
1804
+ messageHash = 'unsubscribe:orderbook:' + market['symbol']
1805
+ subMessageHash = 'orderbook:' + symbol
1806
+ if symbol in self.orderbooks:
1807
+ del self.orderbooks[symbol]
1808
+ if subMessageHash in client.subscriptions:
1809
+ del client.subscriptions[subMessageHash]
1810
+ if messageHash in client.subscriptions:
1811
+ del client.subscriptions[messageHash]
1812
+ error = UnsubscribeError(self.id + 'orderbook ' + symbol)
1813
+ client.reject(error, subMessageHash)
1814
+ client.resolve(True, messageHash)
1815
+
1816
+ def handle_trades_un_subscription(self, client: Client, message):
1817
+ #
1818
+ # {"event":"unsubscribe","arg":{"instType":"SPOT","channel":"trade","instId":"BTCUSDT"}}
1819
+ #
1820
+ arg = self.safe_dict(message, 'arg', {})
1821
+ instType = self.safe_string_lower(arg, 'instType')
1822
+ type = 'spot' if (instType == 'spot') else 'contract'
1823
+ instId = self.safe_string(arg, 'instId')
1824
+ market = self.safe_market(instId, None, None, type)
1825
+ symbol = market['symbol']
1826
+ messageHash = 'unsubscribe:trade:' + market['symbol']
1827
+ subMessageHash = 'trade:' + symbol
1828
+ if symbol in self.trades:
1829
+ del self.trades[symbol]
1830
+ if subMessageHash in client.subscriptions:
1831
+ del client.subscriptions[subMessageHash]
1832
+ if messageHash in client.subscriptions:
1833
+ del client.subscriptions[messageHash]
1834
+ error = UnsubscribeError(self.id + 'trades ' + symbol)
1835
+ client.reject(error, subMessageHash)
1836
+ client.resolve(True, messageHash)
1837
+
1838
+ def handle_ticker_un_subscription(self, client: Client, message):
1839
+ #
1840
+ # {"event":"unsubscribe","arg":{"instType":"SPOT","channel":"trade","instId":"BTCUSDT"}}
1841
+ #
1842
+ arg = self.safe_dict(message, 'arg', {})
1843
+ instType = self.safe_string_lower(arg, 'instType')
1844
+ type = 'spot' if (instType == 'spot') else 'contract'
1845
+ instId = self.safe_string(arg, 'instId')
1846
+ market = self.safe_market(instId, None, None, type)
1847
+ symbol = market['symbol']
1848
+ messageHash = 'unsubscribe:ticker:' + market['symbol']
1849
+ subMessageHash = 'ticker:' + symbol
1850
+ if symbol in self.tickers:
1851
+ del self.tickers[symbol]
1852
+ if subMessageHash in client.subscriptions:
1853
+ del client.subscriptions[subMessageHash]
1854
+ if messageHash in client.subscriptions:
1855
+ del client.subscriptions[messageHash]
1856
+ error = UnsubscribeError(self.id + 'ticker ' + symbol)
1857
+ client.reject(error, subMessageHash)
1858
+ client.resolve(True, messageHash)
1859
+
1860
+ def handle_ohlcv_un_subscription(self, client: Client, message):
1861
+ #
1862
+ # {"event":"unsubscribe","arg":{"instType":"SPOT","channel":"candle1m","instId":"BTCUSDT"}}
1863
+ #
1864
+ arg = self.safe_dict(message, 'arg', {})
1865
+ instType = self.safe_string_lower(arg, 'instType')
1866
+ type = 'spot' if (instType == 'spot') else 'contract'
1867
+ instId = self.safe_string(arg, 'instId')
1868
+ channel = self.safe_string(arg, 'channel')
1869
+ interval = channel.replace('candle', '')
1870
+ timeframes = self.safe_value(self.options, 'timeframes')
1871
+ timeframe = self.find_timeframe(interval, timeframes)
1872
+ market = self.safe_market(instId, None, None, type)
1873
+ symbol = market['symbol']
1874
+ messageHash = 'unsubscribe:candles:' + timeframe + ':' + market['symbol']
1875
+ subMessageHash = 'candles:' + timeframe + ':' + symbol
1876
+ if symbol in self.ohlcvs:
1877
+ if timeframe in self.ohlcvs[symbol]:
1878
+ del self.ohlcvs[symbol][timeframe]
1879
+ if subMessageHash in client.subscriptions:
1880
+ del client.subscriptions[subMessageHash]
1881
+ if messageHash in client.subscriptions:
1882
+ del client.subscriptions[messageHash]
1883
+ error = UnsubscribeError(self.id + ' ohlcv ' + timeframe + ' ' + symbol)
1884
+ client.reject(error, subMessageHash)
1885
+ client.resolve(True, messageHash)
1886
+
1753
1887
  def handle_un_subscription_status(self, client: Client, message):
1754
1888
  #
1755
1889
  # {
@@ -1778,18 +1912,11 @@ class bitget(ccxt.async_support.bitget):
1778
1912
  channel = self.safe_string(arg, 'channel')
1779
1913
  if channel == 'books':
1780
1914
  # for now only unWatchOrderBook is supporteod
1781
- instType = self.safe_string_lower(arg, 'instType')
1782
- type = 'spot' if (instType == 'spot') else 'contract'
1783
- instId = self.safe_string(arg, 'instId')
1784
- market = self.safe_market(instId, None, None, type)
1785
- symbol = market['symbol']
1786
- messageHash = 'unsubscribe:orderbook:' + market['symbol']
1787
- subMessageHash = 'orderbook:' + symbol
1788
- if symbol in self.orderbooks:
1789
- del self.orderbooks[symbol]
1790
- if subMessageHash in client.subscriptions:
1791
- del client.subscriptions[subMessageHash]
1792
- if messageHash in client.subscriptions:
1793
- del client.subscriptions[messageHash]
1794
- client.resolve(True, messageHash)
1915
+ self.handle_order_book_un_subscription(client, message)
1916
+ elif channel == 'trade':
1917
+ self.handle_trades_un_subscription(client, message)
1918
+ elif channel == 'ticker':
1919
+ self.handle_ticker_un_subscription(client, message)
1920
+ elif channel.startswith('candle'):
1921
+ self.handle_ohlcv_un_subscription(client, message)
1795
1922
  return message