ccxt 4.3.36__tar.gz → 4.3.37__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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

Files changed (549) hide show
  1. {ccxt-4.3.36/ccxt.egg-info → ccxt-4.3.37}/PKG-INFO +4 -4
  2. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/kraken.py +3 -3
  4. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/exchange.py +1 -1
  6. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bingx.py +61 -31
  7. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitbank.py +46 -1
  8. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitmart.py +2 -2
  9. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/htx.py +64 -3
  10. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/kraken.py +5 -5
  11. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/woofipro.py +3 -1
  12. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/exchange.py +1 -1
  13. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bingx.py +61 -31
  14. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitbank.py +46 -1
  15. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitmart.py +2 -2
  16. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/htx.py +64 -3
  17. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/kraken.py +5 -5
  18. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/__init__.py +1 -1
  19. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/woofipro.py +3 -1
  20. {ccxt-4.3.36 → ccxt-4.3.37/ccxt.egg-info}/PKG-INFO +4 -4
  21. {ccxt-4.3.36 → ccxt-4.3.37}/package.json +1 -1
  22. {ccxt-4.3.36 → ccxt-4.3.37}/LICENSE.txt +0 -0
  23. {ccxt-4.3.36 → ccxt-4.3.37}/MANIFEST.in +0 -0
  24. {ccxt-4.3.36 → ccxt-4.3.37}/README.rst +0 -0
  25. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/__init__.py +0 -0
  26. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/ace.py +0 -0
  27. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/alpaca.py +0 -0
  28. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/ascendex.py +0 -0
  29. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bequant.py +0 -0
  30. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bigone.py +0 -0
  31. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/binance.py +0 -0
  32. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/binancecoinm.py +0 -0
  33. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/binanceus.py +0 -0
  34. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/binanceusdm.py +0 -0
  35. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bingx.py +0 -0
  36. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bit2c.py +0 -0
  37. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitbank.py +0 -0
  38. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitbay.py +0 -0
  39. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitbns.py +0 -0
  40. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitcoincom.py +0 -0
  41. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitfinex.py +0 -0
  42. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitfinex2.py +0 -0
  43. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitflyer.py +0 -0
  44. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitget.py +0 -0
  45. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bithumb.py +0 -0
  46. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitmart.py +0 -0
  47. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitmex.py +0 -0
  48. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitopro.py +0 -0
  49. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitpanda.py +0 -0
  50. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitrue.py +0 -0
  51. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitso.py +0 -0
  52. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitstamp.py +0 -0
  53. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitteam.py +0 -0
  54. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bitvavo.py +0 -0
  55. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bl3p.py +0 -0
  56. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/blockchaincom.py +0 -0
  57. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/blofin.py +0 -0
  58. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/btcalpha.py +0 -0
  59. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/btcbox.py +0 -0
  60. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/btcmarkets.py +0 -0
  61. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/btcturk.py +0 -0
  62. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/bybit.py +0 -0
  63. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/cex.py +0 -0
  64. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinbase.py +0 -0
  65. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinbaseadvanced.py +0 -0
  66. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinbaseexchange.py +0 -0
  67. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinbaseinternational.py +0 -0
  68. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coincheck.py +0 -0
  69. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinex.py +0 -0
  70. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinlist.py +0 -0
  71. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinmate.py +0 -0
  72. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinmetro.py +0 -0
  73. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinone.py +0 -0
  74. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinsph.py +0 -0
  75. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/coinspot.py +0 -0
  76. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/cryptocom.py +0 -0
  77. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/currencycom.py +0 -0
  78. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/delta.py +0 -0
  79. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/deribit.py +0 -0
  80. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/digifinex.py +0 -0
  81. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/exmo.py +0 -0
  82. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/fmfwio.py +0 -0
  83. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/gate.py +0 -0
  84. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/gateio.py +0 -0
  85. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/gemini.py +0 -0
  86. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/hitbtc.py +0 -0
  87. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/hitbtc3.py +0 -0
  88. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/hollaex.py +0 -0
  89. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/htx.py +0 -0
  90. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/huobi.py +0 -0
  91. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/huobijp.py +0 -0
  92. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/hyperliquid.py +0 -0
  93. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/idex.py +0 -0
  94. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/independentreserve.py +0 -0
  95. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/indodax.py +0 -0
  96. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/krakenfutures.py +0 -0
  97. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/kucoin.py +0 -0
  98. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/kucoinfutures.py +0 -0
  99. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/kuna.py +0 -0
  100. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/latoken.py +0 -0
  101. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/lbank.py +0 -0
  102. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/luno.py +0 -0
  103. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/lykke.py +0 -0
  104. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/mercado.py +0 -0
  105. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/mexc.py +0 -0
  106. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/ndax.py +0 -0
  107. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/novadax.py +0 -0
  108. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/oceanex.py +0 -0
  109. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/okcoin.py +0 -0
  110. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/okx.py +0 -0
  111. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/onetrading.py +0 -0
  112. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/p2b.py +0 -0
  113. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/paymium.py +0 -0
  114. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/phemex.py +0 -0
  115. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/poloniex.py +0 -0
  116. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/poloniexfutures.py +0 -0
  117. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/probit.py +0 -0
  118. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/timex.py +0 -0
  119. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/tokocrypto.py +0 -0
  120. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/tradeogre.py +0 -0
  121. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/upbit.py +0 -0
  122. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/wavesexchange.py +0 -0
  123. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/wazirx.py +0 -0
  124. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/whitebit.py +0 -0
  125. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/woo.py +0 -0
  126. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/woofipro.py +0 -0
  127. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/yobit.py +0 -0
  128. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/zaif.py +0 -0
  129. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/abstract/zonda.py +0 -0
  130. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/ace.py +0 -0
  131. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/alpaca.py +0 -0
  132. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/ascendex.py +0 -0
  133. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/ace.py +0 -0
  134. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/alpaca.py +0 -0
  135. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/ascendex.py +0 -0
  136. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/__init__.py +0 -0
  137. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/throttler.py +0 -0
  138. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/__init__.py +0 -0
  139. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  140. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/cache.py +0 -0
  141. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/client.py +0 -0
  142. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/fast_client.py +0 -0
  143. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/functions.py +0 -0
  144. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/future.py +0 -0
  145. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/order_book.py +0 -0
  146. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  147. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bequant.py +0 -0
  148. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bigone.py +0 -0
  149. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/binance.py +0 -0
  150. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/binancecoinm.py +0 -0
  151. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/binanceus.py +0 -0
  152. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/binanceusdm.py +0 -0
  153. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bit2c.py +0 -0
  154. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitbay.py +0 -0
  155. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitbns.py +0 -0
  156. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitcoincom.py +0 -0
  157. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitfinex.py +0 -0
  158. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitfinex2.py +0 -0
  159. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitflyer.py +0 -0
  160. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitget.py +0 -0
  161. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bithumb.py +0 -0
  162. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitmex.py +0 -0
  163. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitopro.py +0 -0
  164. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitpanda.py +0 -0
  165. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitrue.py +0 -0
  166. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitso.py +0 -0
  167. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitstamp.py +0 -0
  168. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitteam.py +0 -0
  169. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bitvavo.py +0 -0
  170. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bl3p.py +0 -0
  171. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/blockchaincom.py +0 -0
  172. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/blofin.py +0 -0
  173. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/btcalpha.py +0 -0
  174. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/btcbox.py +0 -0
  175. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/btcmarkets.py +0 -0
  176. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/btcturk.py +0 -0
  177. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/bybit.py +0 -0
  178. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/cex.py +0 -0
  179. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinbase.py +0 -0
  180. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinbaseadvanced.py +0 -0
  181. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinbaseexchange.py +0 -0
  182. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinbaseinternational.py +0 -0
  183. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coincheck.py +0 -0
  184. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinex.py +0 -0
  185. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinlist.py +0 -0
  186. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinmate.py +0 -0
  187. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinmetro.py +0 -0
  188. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinone.py +0 -0
  189. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinsph.py +0 -0
  190. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/coinspot.py +0 -0
  191. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/cryptocom.py +0 -0
  192. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/currencycom.py +0 -0
  193. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/delta.py +0 -0
  194. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/deribit.py +0 -0
  195. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/digifinex.py +0 -0
  196. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/exmo.py +0 -0
  197. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/fmfwio.py +0 -0
  198. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/gate.py +0 -0
  199. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/gateio.py +0 -0
  200. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/gemini.py +0 -0
  201. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/hitbtc.py +0 -0
  202. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/hitbtc3.py +0 -0
  203. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/hollaex.py +0 -0
  204. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/huobi.py +0 -0
  205. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/huobijp.py +0 -0
  206. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/hyperliquid.py +0 -0
  207. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/idex.py +0 -0
  208. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/independentreserve.py +0 -0
  209. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/indodax.py +0 -0
  210. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/krakenfutures.py +0 -0
  211. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/kucoin.py +0 -0
  212. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/kucoinfutures.py +0 -0
  213. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/kuna.py +0 -0
  214. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/latoken.py +0 -0
  215. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/lbank.py +0 -0
  216. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/luno.py +0 -0
  217. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/lykke.py +0 -0
  218. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/mercado.py +0 -0
  219. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/mexc.py +0 -0
  220. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/ndax.py +0 -0
  221. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/novadax.py +0 -0
  222. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/oceanex.py +0 -0
  223. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/okcoin.py +0 -0
  224. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/okx.py +0 -0
  225. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/onetrading.py +0 -0
  226. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/p2b.py +0 -0
  227. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/paymium.py +0 -0
  228. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/phemex.py +0 -0
  229. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/poloniex.py +0 -0
  230. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/poloniexfutures.py +0 -0
  231. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/probit.py +0 -0
  232. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/timex.py +0 -0
  233. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/tokocrypto.py +0 -0
  234. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/tradeogre.py +0 -0
  235. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/upbit.py +0 -0
  236. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/wavesexchange.py +0 -0
  237. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/wazirx.py +0 -0
  238. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/whitebit.py +0 -0
  239. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/woo.py +0 -0
  240. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/yobit.py +0 -0
  241. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/zaif.py +0 -0
  242. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/async_support/zonda.py +0 -0
  243. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/__init__.py +0 -0
  244. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/decimal_to_precision.py +0 -0
  245. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/errors.py +0 -0
  246. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/precise.py +0 -0
  247. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/base/types.py +0 -0
  248. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bequant.py +0 -0
  249. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bigone.py +0 -0
  250. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/binance.py +0 -0
  251. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/binancecoinm.py +0 -0
  252. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/binanceus.py +0 -0
  253. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/binanceusdm.py +0 -0
  254. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bit2c.py +0 -0
  255. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitbay.py +0 -0
  256. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitbns.py +0 -0
  257. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitcoincom.py +0 -0
  258. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitfinex.py +0 -0
  259. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitfinex2.py +0 -0
  260. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitflyer.py +0 -0
  261. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitget.py +0 -0
  262. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bithumb.py +0 -0
  263. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitmex.py +0 -0
  264. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitopro.py +0 -0
  265. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitpanda.py +0 -0
  266. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitrue.py +0 -0
  267. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitso.py +0 -0
  268. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitstamp.py +0 -0
  269. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitteam.py +0 -0
  270. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bitvavo.py +0 -0
  271. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bl3p.py +0 -0
  272. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/blockchaincom.py +0 -0
  273. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/blofin.py +0 -0
  274. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/btcalpha.py +0 -0
  275. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/btcbox.py +0 -0
  276. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/btcmarkets.py +0 -0
  277. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/btcturk.py +0 -0
  278. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/bybit.py +0 -0
  279. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/cex.py +0 -0
  280. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinbase.py +0 -0
  281. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinbaseadvanced.py +0 -0
  282. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinbaseexchange.py +0 -0
  283. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinbaseinternational.py +0 -0
  284. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coincheck.py +0 -0
  285. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinex.py +0 -0
  286. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinlist.py +0 -0
  287. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinmate.py +0 -0
  288. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinmetro.py +0 -0
  289. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinone.py +0 -0
  290. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinsph.py +0 -0
  291. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/coinspot.py +0 -0
  292. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/cryptocom.py +0 -0
  293. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/currencycom.py +0 -0
  294. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/delta.py +0 -0
  295. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/deribit.py +0 -0
  296. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/digifinex.py +0 -0
  297. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/exmo.py +0 -0
  298. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/fmfwio.py +0 -0
  299. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/gate.py +0 -0
  300. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/gateio.py +0 -0
  301. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/gemini.py +0 -0
  302. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/hitbtc.py +0 -0
  303. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/hitbtc3.py +0 -0
  304. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/hollaex.py +0 -0
  305. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/huobi.py +0 -0
  306. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/huobijp.py +0 -0
  307. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/hyperliquid.py +0 -0
  308. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/idex.py +0 -0
  309. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/independentreserve.py +0 -0
  310. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/indodax.py +0 -0
  311. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/krakenfutures.py +0 -0
  312. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/kucoin.py +0 -0
  313. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/kucoinfutures.py +0 -0
  314. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/kuna.py +0 -0
  315. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/latoken.py +0 -0
  316. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/lbank.py +0 -0
  317. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/luno.py +0 -0
  318. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/lykke.py +0 -0
  319. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/mercado.py +0 -0
  320. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/mexc.py +0 -0
  321. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/ndax.py +0 -0
  322. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/novadax.py +0 -0
  323. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/oceanex.py +0 -0
  324. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/okcoin.py +0 -0
  325. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/okx.py +0 -0
  326. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/onetrading.py +0 -0
  327. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/p2b.py +0 -0
  328. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/paymium.py +0 -0
  329. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/phemex.py +0 -0
  330. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/poloniex.py +0 -0
  331. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/poloniexfutures.py +0 -0
  332. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/alpaca.py +0 -0
  333. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/ascendex.py +0 -0
  334. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bequant.py +0 -0
  335. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/binance.py +0 -0
  336. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/binancecoinm.py +0 -0
  337. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/binanceus.py +0 -0
  338. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/binanceusdm.py +0 -0
  339. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bingx.py +0 -0
  340. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitcoincom.py +0 -0
  341. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitfinex.py +0 -0
  342. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitfinex2.py +0 -0
  343. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitget.py +0 -0
  344. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bithumb.py +0 -0
  345. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitmart.py +0 -0
  346. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitmex.py +0 -0
  347. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitopro.py +0 -0
  348. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitpanda.py +0 -0
  349. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitrue.py +0 -0
  350. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitstamp.py +0 -0
  351. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bitvavo.py +0 -0
  352. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/blockchaincom.py +0 -0
  353. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/bybit.py +0 -0
  354. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/cex.py +0 -0
  355. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coinbase.py +0 -0
  356. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coinbaseexchange.py +0 -0
  357. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coinbaseinternational.py +0 -0
  358. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coincheck.py +0 -0
  359. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coinex.py +0 -0
  360. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/coinone.py +0 -0
  361. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/cryptocom.py +0 -0
  362. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/currencycom.py +0 -0
  363. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/deribit.py +0 -0
  364. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/exmo.py +0 -0
  365. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/gate.py +0 -0
  366. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/gateio.py +0 -0
  367. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/gemini.py +0 -0
  368. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/hitbtc.py +0 -0
  369. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/hollaex.py +0 -0
  370. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/htx.py +0 -0
  371. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/huobi.py +0 -0
  372. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/huobijp.py +0 -0
  373. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/hyperliquid.py +0 -0
  374. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/idex.py +0 -0
  375. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/independentreserve.py +0 -0
  376. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/kraken.py +0 -0
  377. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/krakenfutures.py +0 -0
  378. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/kucoin.py +0 -0
  379. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/kucoinfutures.py +0 -0
  380. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/lbank.py +0 -0
  381. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/luno.py +0 -0
  382. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/mexc.py +0 -0
  383. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/ndax.py +0 -0
  384. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/okcoin.py +0 -0
  385. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/okx.py +0 -0
  386. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/onetrading.py +0 -0
  387. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/p2b.py +0 -0
  388. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/phemex.py +0 -0
  389. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/poloniex.py +0 -0
  390. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/poloniexfutures.py +0 -0
  391. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/probit.py +0 -0
  392. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/upbit.py +0 -0
  393. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/wazirx.py +0 -0
  394. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/whitebit.py +0 -0
  395. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/woo.py +0 -0
  396. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/pro/woofipro.py +0 -0
  397. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/probit.py +0 -0
  398. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/__init__.py +0 -0
  399. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  400. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  401. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  402. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  403. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  404. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  405. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  406. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  407. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  408. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  409. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  410. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  411. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  412. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  413. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  414. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  415. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  416. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  417. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  418. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  419. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  420. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  421. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  422. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  423. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  424. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  425. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  426. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  427. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  428. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  429. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  430. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  431. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  432. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  433. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  434. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  435. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  436. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  437. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  438. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  439. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  440. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  441. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  442. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  443. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  444. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  445. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  446. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  447. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  448. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  449. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  450. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  451. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  452. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  453. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  454. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  455. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  456. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  457. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  458. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  459. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  460. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  461. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  462. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  463. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  464. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  465. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  466. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  467. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  468. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  469. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  470. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  471. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  472. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  473. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  474. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  475. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  476. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  477. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  478. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  479. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  480. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  481. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  482. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  483. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  484. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  485. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/_version.py +0 -0
  486. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  487. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  488. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  489. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  490. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  491. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  492. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  493. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  494. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/static_dependencies/toolz/utils.py +0 -0
  495. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/__init__.py +0 -0
  496. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/__init__.py +0 -0
  497. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_account.py +0 -0
  498. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_balance.py +0 -0
  499. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_borrow_interest.py +0 -0
  500. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_borrow_rate.py +0 -0
  501. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_calculate_fee.py +0 -0
  502. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_crypto.py +0 -0
  503. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_currency.py +0 -0
  504. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_datetime.py +0 -0
  505. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  506. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_deep_extend.py +0 -0
  507. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  508. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  509. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_funding_rate_history.py +0 -0
  510. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_last_price.py +0 -0
  511. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_ledger_entry.py +0 -0
  512. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_ledger_item.py +0 -0
  513. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_leverage_tier.py +0 -0
  514. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_liquidation.py +0 -0
  515. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_margin_mode.py +0 -0
  516. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_margin_modification.py +0 -0
  517. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_market.py +0 -0
  518. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_number.py +0 -0
  519. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_ohlcv.py +0 -0
  520. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_open_interest.py +0 -0
  521. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_order.py +0 -0
  522. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_order_book.py +0 -0
  523. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_position.py +0 -0
  524. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_shared_methods.py +0 -0
  525. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_status.py +0 -0
  526. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_throttle.py +0 -0
  527. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_ticker.py +0 -0
  528. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_trade.py +0 -0
  529. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_trading_fee.py +0 -0
  530. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/base/test_transaction.py +0 -0
  531. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/test_async.py +0 -0
  532. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/test/test_sync.py +0 -0
  533. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/timex.py +0 -0
  534. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/tokocrypto.py +0 -0
  535. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/tradeogre.py +0 -0
  536. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/upbit.py +0 -0
  537. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/wavesexchange.py +0 -0
  538. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/wazirx.py +0 -0
  539. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/whitebit.py +0 -0
  540. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/woo.py +0 -0
  541. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/yobit.py +0 -0
  542. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/zaif.py +0 -0
  543. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt/zonda.py +0 -0
  544. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt.egg-info/SOURCES.txt +0 -0
  545. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt.egg-info/dependency_links.txt +0 -0
  546. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt.egg-info/requires.txt +0 -0
  547. {ccxt-4.3.36 → ccxt-4.3.37}/ccxt.egg-info/top_level.txt +0 -0
  548. {ccxt-4.3.36 → ccxt-4.3.37}/setup.cfg +0 -0
  549. {ccxt-4.3.36 → ccxt-4.3.37}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.36
3
+ Version: 4.3.37
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
@@ -228,13 +228,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
228
228
 
229
229
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
230
230
 
231
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.36/dist/ccxt.browser.min.js
232
- * unpkg: https://unpkg.com/ccxt@4.3.36/dist/ccxt.browser.min.js
231
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.37/dist/ccxt.browser.min.js
232
+ * unpkg: https://unpkg.com/ccxt@4.3.37/dist/ccxt.browser.min.js
233
233
 
234
234
  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.
235
235
 
236
236
  ```HTML
237
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.36/dist/ccxt.browser.min.js"></script>
237
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.37/dist/ccxt.browser.min.js"></script>
238
238
  ```
239
239
 
240
240
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.36'
25
+ __version__ = '4.3.37'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -6,13 +6,13 @@ class ImplicitAPI:
6
6
  zendesk_get_201893608 = zendeskGet201893608 = Entry('201893608', 'zendesk', 'GET', {})
7
7
  public_get_assets = publicGetAssets = Entry('Assets', 'public', 'GET', {'cost': 1})
8
8
  public_get_assetpairs = publicGetAssetPairs = Entry('AssetPairs', 'public', 'GET', {'cost': 1})
9
- public_get_depth = publicGetDepth = Entry('Depth', 'public', 'GET', {'cost': 1})
10
- public_get_ohlc = publicGetOHLC = Entry('OHLC', 'public', 'GET', {'cost': 1})
9
+ public_get_depth = publicGetDepth = Entry('Depth', 'public', 'GET', {'cost': 1.2})
10
+ public_get_ohlc = publicGetOHLC = Entry('OHLC', 'public', 'GET', {'cost': 1.2})
11
11
  public_get_spread = publicGetSpread = Entry('Spread', 'public', 'GET', {'cost': 1})
12
12
  public_get_systemstatus = publicGetSystemStatus = Entry('SystemStatus', 'public', 'GET', {'cost': 1})
13
13
  public_get_ticker = publicGetTicker = Entry('Ticker', 'public', 'GET', {'cost': 1})
14
14
  public_get_time = publicGetTime = Entry('Time', 'public', 'GET', {'cost': 1})
15
- public_get_trades = publicGetTrades = Entry('Trades', 'public', 'GET', {'cost': 1})
15
+ public_get_trades = publicGetTrades = Entry('Trades', 'public', 'GET', {'cost': 1.2})
16
16
  private_post_addorder = privatePostAddOrder = Entry('AddOrder', 'private', 'POST', {'cost': 0})
17
17
  private_post_addorderbatch = privatePostAddOrderBatch = Entry('AddOrderBatch', 'private', 'POST', {'cost': 0})
18
18
  private_post_addexport = privatePostAddExport = Entry('AddExport', 'private', 'POST', {'cost': 3})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.36'
7
+ __version__ = '4.3.37'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.36'
5
+ __version__ = '4.3.37'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -2570,7 +2570,9 @@ class bingx(Exchange, ImplicitAPI):
2570
2570
  #
2571
2571
  else:
2572
2572
  raise BadRequest(self.id + ' cancelAllOrders is only supported for spot and swap markets.')
2573
- return response
2573
+ data = self.safe_dict(response, 'data', {})
2574
+ orders = self.safe_list_2(data, 'success', 'orders', [])
2575
+ return self.parse_orders(orders)
2574
2576
 
2575
2577
  async def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
2576
2578
  """
@@ -2606,42 +2608,70 @@ class bingx(Exchange, ImplicitAPI):
2606
2608
  spotReqKey = 'clientOrderIDs' if areClientOrderIds else 'orderIds'
2607
2609
  request[spotReqKey] = ','.join(parsedIds)
2608
2610
  response = await self.spotV1PrivatePostTradeCancelOrders(self.extend(request, params))
2611
+ #
2612
+ # {
2613
+ # "code": 0,
2614
+ # "msg": "",
2615
+ # "debugMsg": "",
2616
+ # "data": {
2617
+ # "orders": [
2618
+ # {
2619
+ # "symbol": "SOL-USDT",
2620
+ # "orderId": 1795970045910614016,
2621
+ # "transactTime": 1717027601111,
2622
+ # "price": "180.25",
2623
+ # "stopPrice": "0",
2624
+ # "origQty": "0.03",
2625
+ # "executedQty": "0",
2626
+ # "cummulativeQuoteQty": "0",
2627
+ # "status": "CANCELED",
2628
+ # "type": "LIMIT",
2629
+ # "side": "SELL",
2630
+ # "clientOrderID": ""
2631
+ # },
2632
+ # ...
2633
+ # ]
2634
+ # }
2635
+ # }
2636
+ #
2609
2637
  else:
2610
2638
  if areClientOrderIds:
2611
2639
  request['clientOrderIDList'] = self.json(parsedIds)
2612
2640
  else:
2613
2641
  request['orderIdList'] = parsedIds
2614
2642
  response = await self.swapV2PrivateDeleteTradeBatchOrders(self.extend(request, params))
2615
- #
2616
- # {
2617
- # "code": 0,
2618
- # "msg": "",
2619
- # "data": {
2620
- # "success": [
2621
- # {
2622
- # "symbol": "LINK-USDT",
2623
- # "orderId": 1597783850786750464,
2624
- # "side": "BUY",
2625
- # "positionSide": "LONG",
2626
- # "type": "TRIGGER_MARKET",
2627
- # "origQty": "5.0",
2628
- # "price": "5.5710",
2629
- # "executedQty": "0.0",
2630
- # "avgPrice": "0.0000",
2631
- # "cumQuote": "0",
2632
- # "stopPrice": "5.0000",
2633
- # "profit": "0.0000",
2634
- # "commission": "0.000000",
2635
- # "status": "CANCELLED",
2636
- # "time": 1669776330000,
2637
- # "updateTime": 1672370837000
2638
- # }
2639
- # ],
2640
- # "failed": null
2641
- # }
2642
- # }
2643
- #
2644
- return response
2643
+ #
2644
+ # {
2645
+ # "code": 0,
2646
+ # "msg": "",
2647
+ # "data": {
2648
+ # "success": [
2649
+ # {
2650
+ # "symbol": "LINK-USDT",
2651
+ # "orderId": 1597783850786750464,
2652
+ # "side": "BUY",
2653
+ # "positionSide": "LONG",
2654
+ # "type": "TRIGGER_MARKET",
2655
+ # "origQty": "5.0",
2656
+ # "price": "5.5710",
2657
+ # "executedQty": "0.0",
2658
+ # "avgPrice": "0.0000",
2659
+ # "cumQuote": "0",
2660
+ # "stopPrice": "5.0000",
2661
+ # "profit": "0.0000",
2662
+ # "commission": "0.000000",
2663
+ # "status": "CANCELLED",
2664
+ # "time": 1669776330000,
2665
+ # "updateTime": 1672370837000
2666
+ # }
2667
+ # ],
2668
+ # "failed": null
2669
+ # }
2670
+ # }
2671
+ #
2672
+ data = self.safe_dict(response, 'data', {})
2673
+ success = self.safe_list_2(data, 'success', 'orders', [])
2674
+ return self.parse_orders(success)
2645
2675
 
2646
2676
  async def cancel_all_orders_after(self, timeout: Int, params={}):
2647
2677
  """
@@ -669,8 +669,31 @@ class bitbank(Exchange, ImplicitAPI):
669
669
  'pair': market['id'],
670
670
  }
671
671
  response = await self.privatePostUserSpotCancelOrder(self.extend(request, params))
672
+ #
673
+ # {
674
+ # "success": 1,
675
+ # "data": {
676
+ # "order_id": 0,
677
+ # "pair": "string",
678
+ # "side": "string",
679
+ # "type": "string",
680
+ # "start_amount": "string",
681
+ # "remaining_amount": "string",
682
+ # "executed_amount": "string",
683
+ # "price": "string",
684
+ # "post_only": False,
685
+ # "average_price": "string",
686
+ # "ordered_at": 0,
687
+ # "expire_at": 0,
688
+ # "canceled_at": 0,
689
+ # "triggered_at": 0,
690
+ # "trigger_price": "string",
691
+ # "status": "string"
692
+ # }
693
+ # }
694
+ #
672
695
  data = self.safe_value(response, 'data')
673
- return data
696
+ return self.parse_order(data)
674
697
 
675
698
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
676
699
  """
@@ -687,6 +710,28 @@ class bitbank(Exchange, ImplicitAPI):
687
710
  'pair': market['id'],
688
711
  }
689
712
  response = await self.privateGetUserSpotOrder(self.extend(request, params))
713
+ #
714
+ # {
715
+ # "success": 1,
716
+ # "data": {
717
+ # "order_id": 0,
718
+ # "pair": "string",
719
+ # "side": "string",
720
+ # "type": "string",
721
+ # "start_amount": "string",
722
+ # "remaining_amount": "string",
723
+ # "executed_amount": "string",
724
+ # "price": "string",
725
+ # "post_only": False,
726
+ # "average_price": "string",
727
+ # "ordered_at": 0,
728
+ # "expire_at": 0,
729
+ # "triggered_at": 0,
730
+ # "triger_price": "string",
731
+ # "status": "string"
732
+ # }
733
+ # }
734
+ #
690
735
  data = self.safe_dict(response, 'data')
691
736
  return self.parse_order(data, market)
692
737
 
@@ -1180,9 +1180,9 @@ class bitmart(Exchange, ImplicitAPI):
1180
1180
  market = self.safe_market(marketId, market)
1181
1181
  symbol = market['symbol']
1182
1182
  last = self.safe_string_2(ticker, 'close_24h', 'last_price')
1183
- percentage = Precise.string_abs(self.safe_string(ticker, 'price_change_percent_24h'))
1183
+ percentage = self.safe_string(ticker, 'price_change_percent_24h')
1184
1184
  if percentage is None:
1185
- percentage = Precise.string_abs(Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100'))
1185
+ percentage = Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100')
1186
1186
  baseVolume = self.safe_string(ticker, 'base_volume_24h')
1187
1187
  quoteVolume = self.safe_string(ticker, 'quote_volume_24h')
1188
1188
  if quoteVolume is None:
@@ -57,6 +57,8 @@ class htx(Exchange, ImplicitAPI):
57
57
  'cancelAllOrdersAfter': True,
58
58
  'cancelOrder': True,
59
59
  'cancelOrders': True,
60
+ 'closeAllPositions': False,
61
+ 'closePosition': True,
60
62
  'createDepositAddress': None,
61
63
  'createMarketBuyOrderWithCost': True,
62
64
  'createMarketOrderWithCost': False,
@@ -5004,7 +5006,7 @@ class htx(Exchange, ImplicitAPI):
5004
5006
  :param float [params.stopLossPrice]: *contract only* the price a stop-loss order is triggered at
5005
5007
  :param float [params.takeProfitPrice]: *contract only* the price a take-profit order is triggered at
5006
5008
  :param str [params.operator]: *spot and margin only* gte or lte, trigger price condition
5007
- :param str [params.offset]: *contract only* 'open', 'close', or 'both', required in hedge mode
5009
+ :param str [params.offset]: *contract only* 'both'(linear only), 'open', or 'close', required in hedge mode and for inverse markets
5008
5010
  :param bool [params.postOnly]: *contract only* True or False
5009
5011
  :param int [params.leverRate]: *contract only* required for all contract orders except tpsl, leverage greater than 20x requires prior approval of high-leverage agreement
5010
5012
  :param str [params.timeInForce]: supports 'IOC' and 'FOK'
@@ -5054,6 +5056,9 @@ class htx(Exchange, ImplicitAPI):
5054
5056
  else:
5055
5057
  response = await self.contractPrivatePostLinearSwapApiV1SwapCrossOrder(contractRequest)
5056
5058
  elif market['inverse']:
5059
+ offset = self.safe_string(params, 'offset')
5060
+ if offset is None:
5061
+ raise ArgumentsRequired(self.id + ' createOrder() requires an extra parameter params["offset"] to be set to "open" or "close" when placing orders in inverse markets')
5057
5062
  if market['swap']:
5058
5063
  if isStop:
5059
5064
  response = await self.contractPrivatePostSwapApiV1SwapTriggerOrder(contractRequest)
@@ -6935,14 +6940,19 @@ class htx(Exchange, ImplicitAPI):
6935
6940
  fetch all open positions
6936
6941
  :param str[]|None symbols: list of unified market symbols
6937
6942
  :param dict [params]: extra parameters specific to the exchange API endpoint
6943
+ :param str [params.subType]: 'linear' or 'inverse'
6944
+ :param str [params.type]: *inverse only* 'future', or 'swap'
6945
+ :param str [params.marginMode]: *linear only* 'cross' or 'isolated'
6938
6946
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
6939
6947
  """
6940
6948
  await self.load_markets()
6941
6949
  symbols = self.market_symbols(symbols)
6942
6950
  market = None
6943
6951
  if symbols is not None:
6944
- first = self.safe_string(symbols, 0)
6945
- market = self.market(first)
6952
+ symbolsLength = len(symbols)
6953
+ if symbolsLength > 0:
6954
+ first = self.safe_string(symbols, 0)
6955
+ market = self.market(first)
6946
6956
  marginMode = None
6947
6957
  marginMode, params = self.handle_margin_mode_and_params('fetchPositions', params, 'cross')
6948
6958
  subType = None
@@ -8386,6 +8396,57 @@ class htx(Exchange, ImplicitAPI):
8386
8396
  'datetime': self.iso8601(timestamp),
8387
8397
  })
8388
8398
 
8399
+ async def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
8400
+ """
8401
+ closes open positions for a contract market, requires 'amount' in params, unlike other exchanges
8402
+ :see: https://huobiapi.github.io/docs/usdt_swap/v1/en/#isolated-place-lightning-close-order # USDT-M(isolated)
8403
+ :see: https://huobiapi.github.io/docs/usdt_swap/v1/en/#cross-place-lightning-close-position # USDT-M(cross)
8404
+ :see: https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#place-lightning-close-order # Coin-M swap
8405
+ :see: https://huobiapi.github.io/docs/dm/v1/en/#place-flash-close-order # Coin-M futures
8406
+ :param str symbol: unified CCXT market symbol
8407
+ :param str side: 'buy' or 'sell', the side of the closing order, opposite side side
8408
+ :param dict [params]: extra parameters specific to the okx api endpoint
8409
+ :param str [params.clientOrderId]: client needs to provide unique API and have to maintain the API themselves afterwards. [1, 9223372036854775807]
8410
+ :param dict [params.marginMode]: 'cross' or 'isolated', required for linear markets
8411
+ *
8412
+ * EXCHANGE SPECIFIC PARAMETERS
8413
+ :param number [params.amount]: order quantity
8414
+ :param str [params.order_price_type]: 'lightning' by default, 'lightning_fok': lightning fok type, 'lightning_ioc': lightning ioc type 'market' by default, 'market': market order type, 'lightning_fok': lightning
8415
+ :returns dict: `an order structure <https://docs.ccxt.com/#/?id=position-structure>`
8416
+ """
8417
+ await self.load_markets()
8418
+ market = self.market(symbol)
8419
+ clientOrderId = self.safe_string(params, 'clientOrderId')
8420
+ if not market['contract']:
8421
+ raise BadRequest(self.id + ' closePosition() symbol supports contract markets only')
8422
+ self.check_required_argument('closePosition', side, 'side')
8423
+ request: dict = {
8424
+ 'contract_code': market['id'],
8425
+ 'direction': side,
8426
+ }
8427
+ if clientOrderId is not None:
8428
+ request['client_order_id'] = clientOrderId
8429
+ if market['inverse']:
8430
+ amount = self.safe_string_2(params, 'volume', 'amount')
8431
+ if amount is None:
8432
+ raise ArgumentsRequired(self.id + ' closePosition() requires an extra argument params["amount"] for inverse markets')
8433
+ request['volume'] = self.amount_to_precision(symbol, amount)
8434
+ params = self.omit(params, ['clientOrderId', 'volume', 'amount'])
8435
+ response = None
8436
+ if market['inverse']: # Coin-M
8437
+ if market['swap']:
8438
+ response = await self.contractPrivatePostSwapApiV1SwapLightningClosePosition(self.extend(request, params))
8439
+ else: # future
8440
+ response = await self.contractPrivatePostApiV1LightningClosePosition(self.extend(request, params))
8441
+ else: # USDT-M
8442
+ marginMode = None
8443
+ marginMode, params = self.handle_margin_mode_and_params('closePosition', params, 'cross')
8444
+ if marginMode == 'cross':
8445
+ response = await self.contractPrivatePostLinearSwapApiV1SwapCrossLightningClosePosition(self.extend(request, params))
8446
+ else: # isolated
8447
+ response = await self.contractPrivatePostLinearSwapApiV1SwapLightningClosePosition(self.extend(request, params))
8448
+ return self.parse_order(response, market)
8449
+
8389
8450
  async def set_position_mode(self, hedged: bool, symbol: Str = None, params={}):
8390
8451
  """
8391
8452
  set hedged to True or False
@@ -179,13 +179,13 @@ class kraken(Exchange, ImplicitAPI):
179
179
  # rate-limits explained in comment in the top of self file
180
180
  'Assets': 1,
181
181
  'AssetPairs': 1,
182
- 'Depth': 1,
183
- 'OHLC': 1,
182
+ 'Depth': 1.2,
183
+ 'OHLC': 1.2, # 1.2 because 1 triggers too many requests immediately
184
184
  'Spread': 1,
185
185
  'SystemStatus': 1,
186
186
  'Ticker': 1,
187
187
  'Time': 1,
188
- 'Trades': 1,
188
+ 'Trades': 1.2,
189
189
  },
190
190
  },
191
191
  'private': {
@@ -761,8 +761,8 @@ class kraken(Exchange, ImplicitAPI):
761
761
  return {
762
762
  'info': response,
763
763
  'symbol': market['symbol'],
764
- 'maker': self.safe_number(symbolMakerFee, 'fee'),
765
- 'taker': self.safe_number(symbolTakerFee, 'fee'),
764
+ 'maker': self.parse_number(Precise.string_div(self.safe_string(symbolMakerFee, 'fee'), '100')),
765
+ 'taker': self.parse_number(Precise.string_div(self.safe_string(symbolTakerFee, 'fee'), '100')),
766
766
  'percentage': True,
767
767
  'tierBased': True,
768
768
  }
@@ -2138,8 +2138,10 @@ class woofipro(Exchange, ImplicitAPI):
2138
2138
 
2139
2139
  def sign_hash(self, hash, privateKey):
2140
2140
  signature = self.ecdsa(hash[-64:], privateKey[-64:], 'secp256k1', None)
2141
+ r = signature['r']
2142
+ s = signature['s']
2141
2143
  v = self.int_to_base16(self.sum(27, signature['v']))
2142
- return '0x' + signature['r'].rjust(64, '0') + signature['s'].rjust(64, '0') + v
2144
+ return '0x' + r.rjust(64, '0') + s.rjust(64, '0') + v
2143
2145
 
2144
2146
  def sign_message(self, message, privateKey):
2145
2147
  return self.sign_hash(self.hash_message(message), privateKey[-64:])
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.36'
7
+ __version__ = '4.3.37'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2569,7 +2569,9 @@ class bingx(Exchange, ImplicitAPI):
2569
2569
  #
2570
2570
  else:
2571
2571
  raise BadRequest(self.id + ' cancelAllOrders is only supported for spot and swap markets.')
2572
- return response
2572
+ data = self.safe_dict(response, 'data', {})
2573
+ orders = self.safe_list_2(data, 'success', 'orders', [])
2574
+ return self.parse_orders(orders)
2573
2575
 
2574
2576
  def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
2575
2577
  """
@@ -2605,42 +2607,70 @@ class bingx(Exchange, ImplicitAPI):
2605
2607
  spotReqKey = 'clientOrderIDs' if areClientOrderIds else 'orderIds'
2606
2608
  request[spotReqKey] = ','.join(parsedIds)
2607
2609
  response = self.spotV1PrivatePostTradeCancelOrders(self.extend(request, params))
2610
+ #
2611
+ # {
2612
+ # "code": 0,
2613
+ # "msg": "",
2614
+ # "debugMsg": "",
2615
+ # "data": {
2616
+ # "orders": [
2617
+ # {
2618
+ # "symbol": "SOL-USDT",
2619
+ # "orderId": 1795970045910614016,
2620
+ # "transactTime": 1717027601111,
2621
+ # "price": "180.25",
2622
+ # "stopPrice": "0",
2623
+ # "origQty": "0.03",
2624
+ # "executedQty": "0",
2625
+ # "cummulativeQuoteQty": "0",
2626
+ # "status": "CANCELED",
2627
+ # "type": "LIMIT",
2628
+ # "side": "SELL",
2629
+ # "clientOrderID": ""
2630
+ # },
2631
+ # ...
2632
+ # ]
2633
+ # }
2634
+ # }
2635
+ #
2608
2636
  else:
2609
2637
  if areClientOrderIds:
2610
2638
  request['clientOrderIDList'] = self.json(parsedIds)
2611
2639
  else:
2612
2640
  request['orderIdList'] = parsedIds
2613
2641
  response = self.swapV2PrivateDeleteTradeBatchOrders(self.extend(request, params))
2614
- #
2615
- # {
2616
- # "code": 0,
2617
- # "msg": "",
2618
- # "data": {
2619
- # "success": [
2620
- # {
2621
- # "symbol": "LINK-USDT",
2622
- # "orderId": 1597783850786750464,
2623
- # "side": "BUY",
2624
- # "positionSide": "LONG",
2625
- # "type": "TRIGGER_MARKET",
2626
- # "origQty": "5.0",
2627
- # "price": "5.5710",
2628
- # "executedQty": "0.0",
2629
- # "avgPrice": "0.0000",
2630
- # "cumQuote": "0",
2631
- # "stopPrice": "5.0000",
2632
- # "profit": "0.0000",
2633
- # "commission": "0.000000",
2634
- # "status": "CANCELLED",
2635
- # "time": 1669776330000,
2636
- # "updateTime": 1672370837000
2637
- # }
2638
- # ],
2639
- # "failed": null
2640
- # }
2641
- # }
2642
- #
2643
- return response
2642
+ #
2643
+ # {
2644
+ # "code": 0,
2645
+ # "msg": "",
2646
+ # "data": {
2647
+ # "success": [
2648
+ # {
2649
+ # "symbol": "LINK-USDT",
2650
+ # "orderId": 1597783850786750464,
2651
+ # "side": "BUY",
2652
+ # "positionSide": "LONG",
2653
+ # "type": "TRIGGER_MARKET",
2654
+ # "origQty": "5.0",
2655
+ # "price": "5.5710",
2656
+ # "executedQty": "0.0",
2657
+ # "avgPrice": "0.0000",
2658
+ # "cumQuote": "0",
2659
+ # "stopPrice": "5.0000",
2660
+ # "profit": "0.0000",
2661
+ # "commission": "0.000000",
2662
+ # "status": "CANCELLED",
2663
+ # "time": 1669776330000,
2664
+ # "updateTime": 1672370837000
2665
+ # }
2666
+ # ],
2667
+ # "failed": null
2668
+ # }
2669
+ # }
2670
+ #
2671
+ data = self.safe_dict(response, 'data', {})
2672
+ success = self.safe_list_2(data, 'success', 'orders', [])
2673
+ return self.parse_orders(success)
2644
2674
 
2645
2675
  def cancel_all_orders_after(self, timeout: Int, params={}):
2646
2676
  """
@@ -669,8 +669,31 @@ class bitbank(Exchange, ImplicitAPI):
669
669
  'pair': market['id'],
670
670
  }
671
671
  response = self.privatePostUserSpotCancelOrder(self.extend(request, params))
672
+ #
673
+ # {
674
+ # "success": 1,
675
+ # "data": {
676
+ # "order_id": 0,
677
+ # "pair": "string",
678
+ # "side": "string",
679
+ # "type": "string",
680
+ # "start_amount": "string",
681
+ # "remaining_amount": "string",
682
+ # "executed_amount": "string",
683
+ # "price": "string",
684
+ # "post_only": False,
685
+ # "average_price": "string",
686
+ # "ordered_at": 0,
687
+ # "expire_at": 0,
688
+ # "canceled_at": 0,
689
+ # "triggered_at": 0,
690
+ # "trigger_price": "string",
691
+ # "status": "string"
692
+ # }
693
+ # }
694
+ #
672
695
  data = self.safe_value(response, 'data')
673
- return data
696
+ return self.parse_order(data)
674
697
 
675
698
  def fetch_order(self, id: str, symbol: Str = None, params={}):
676
699
  """
@@ -687,6 +710,28 @@ class bitbank(Exchange, ImplicitAPI):
687
710
  'pair': market['id'],
688
711
  }
689
712
  response = self.privateGetUserSpotOrder(self.extend(request, params))
713
+ #
714
+ # {
715
+ # "success": 1,
716
+ # "data": {
717
+ # "order_id": 0,
718
+ # "pair": "string",
719
+ # "side": "string",
720
+ # "type": "string",
721
+ # "start_amount": "string",
722
+ # "remaining_amount": "string",
723
+ # "executed_amount": "string",
724
+ # "price": "string",
725
+ # "post_only": False,
726
+ # "average_price": "string",
727
+ # "ordered_at": 0,
728
+ # "expire_at": 0,
729
+ # "triggered_at": 0,
730
+ # "triger_price": "string",
731
+ # "status": "string"
732
+ # }
733
+ # }
734
+ #
690
735
  data = self.safe_dict(response, 'data')
691
736
  return self.parse_order(data, market)
692
737
 
@@ -1180,9 +1180,9 @@ class bitmart(Exchange, ImplicitAPI):
1180
1180
  market = self.safe_market(marketId, market)
1181
1181
  symbol = market['symbol']
1182
1182
  last = self.safe_string_2(ticker, 'close_24h', 'last_price')
1183
- percentage = Precise.string_abs(self.safe_string(ticker, 'price_change_percent_24h'))
1183
+ percentage = self.safe_string(ticker, 'price_change_percent_24h')
1184
1184
  if percentage is None:
1185
- percentage = Precise.string_abs(Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100'))
1185
+ percentage = Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100')
1186
1186
  baseVolume = self.safe_string(ticker, 'base_volume_24h')
1187
1187
  quoteVolume = self.safe_string(ticker, 'quote_volume_24h')
1188
1188
  if quoteVolume is None: