ccxt 4.3.56__tar.gz → 4.3.58__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 (527) hide show
  1. {ccxt-4.3.56/ccxt.egg-info → ccxt-4.3.58}/PKG-INFO +4 -4
  2. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/kucoin.py +1 -0
  4. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/kucoinfutures.py +1 -0
  5. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/alpaca.py +5 -1
  6. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/__init__.py +1 -1
  7. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/alpaca.py +5 -1
  8. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/exchange.py +1 -1
  9. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/client.py +26 -5
  10. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bigone.py +19 -1
  11. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bingx.py +114 -26
  12. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitget.py +56 -47
  13. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinmate.py +28 -32
  14. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinone.py +15 -19
  15. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/gate.py +102 -4
  16. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/htx.py +87 -26
  17. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/huobijp.py +61 -2
  18. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/kucoin.py +3 -0
  19. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/latoken.py +5 -1
  20. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/okx.py +2 -0
  21. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/woo.py +2 -1
  22. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/exchange.py +1 -1
  23. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bigone.py +19 -1
  24. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bingx.py +114 -26
  25. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitget.py +56 -47
  26. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinmate.py +28 -32
  27. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinone.py +15 -19
  28. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/gate.py +102 -4
  29. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/htx.py +87 -26
  30. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/huobijp.py +61 -2
  31. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/kucoin.py +3 -0
  32. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/latoken.py +5 -1
  33. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/okx.py +2 -0
  34. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/__init__.py +1 -1
  35. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/htx.py +1 -1
  36. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/okx.py +3 -3
  37. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/woo.py +2 -1
  38. {ccxt-4.3.56 → ccxt-4.3.58/ccxt.egg-info}/PKG-INFO +4 -4
  39. {ccxt-4.3.56 → ccxt-4.3.58}/package.json +1 -1
  40. {ccxt-4.3.56 → ccxt-4.3.58}/LICENSE.txt +0 -0
  41. {ccxt-4.3.56 → ccxt-4.3.58}/MANIFEST.in +0 -0
  42. {ccxt-4.3.56 → ccxt-4.3.58}/README.rst +0 -0
  43. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/__init__.py +0 -0
  44. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/ace.py +0 -0
  45. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/alpaca.py +0 -0
  46. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/ascendex.py +0 -0
  47. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bequant.py +0 -0
  48. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bigone.py +0 -0
  49. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/binance.py +0 -0
  50. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/binancecoinm.py +0 -0
  51. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/binanceus.py +0 -0
  52. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/binanceusdm.py +0 -0
  53. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bingx.py +0 -0
  54. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bit2c.py +0 -0
  55. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitbank.py +0 -0
  56. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitbay.py +0 -0
  57. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitbns.py +0 -0
  58. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitcoincom.py +0 -0
  59. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitfinex.py +0 -0
  60. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitfinex2.py +0 -0
  61. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitflyer.py +0 -0
  62. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitget.py +0 -0
  63. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bithumb.py +0 -0
  64. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitmart.py +0 -0
  65. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitmex.py +0 -0
  66. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitopro.py +0 -0
  67. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitpanda.py +0 -0
  68. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitrue.py +0 -0
  69. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitso.py +0 -0
  70. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitstamp.py +0 -0
  71. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitteam.py +0 -0
  72. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bitvavo.py +0 -0
  73. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bl3p.py +0 -0
  74. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/blockchaincom.py +0 -0
  75. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/blofin.py +0 -0
  76. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/btcalpha.py +0 -0
  77. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/btcbox.py +0 -0
  78. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/btcmarkets.py +0 -0
  79. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/btcturk.py +0 -0
  80. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/bybit.py +0 -0
  81. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/cex.py +0 -0
  82. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinbase.py +0 -0
  83. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinbaseadvanced.py +0 -0
  84. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinbaseexchange.py +0 -0
  85. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinbaseinternational.py +0 -0
  86. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coincheck.py +0 -0
  87. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinex.py +0 -0
  88. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinlist.py +0 -0
  89. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinmate.py +0 -0
  90. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinmetro.py +0 -0
  91. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinone.py +0 -0
  92. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinsph.py +0 -0
  93. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/coinspot.py +0 -0
  94. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/cryptocom.py +0 -0
  95. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/currencycom.py +0 -0
  96. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/delta.py +0 -0
  97. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/deribit.py +0 -0
  98. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/digifinex.py +0 -0
  99. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/exmo.py +0 -0
  100. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/fmfwio.py +0 -0
  101. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/gate.py +0 -0
  102. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/gateio.py +0 -0
  103. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/gemini.py +0 -0
  104. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/hitbtc.py +0 -0
  105. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/hitbtc3.py +0 -0
  106. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/hollaex.py +0 -0
  107. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/htx.py +0 -0
  108. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/huobi.py +0 -0
  109. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/huobijp.py +0 -0
  110. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/hyperliquid.py +0 -0
  111. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/idex.py +0 -0
  112. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/independentreserve.py +0 -0
  113. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/indodax.py +0 -0
  114. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/kraken.py +0 -0
  115. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/krakenfutures.py +0 -0
  116. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/kuna.py +0 -0
  117. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/latoken.py +0 -0
  118. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/lbank.py +0 -0
  119. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/luno.py +0 -0
  120. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/lykke.py +0 -0
  121. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/mercado.py +0 -0
  122. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/mexc.py +0 -0
  123. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/ndax.py +0 -0
  124. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/novadax.py +0 -0
  125. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/oceanex.py +0 -0
  126. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/okcoin.py +0 -0
  127. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/okx.py +0 -0
  128. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/onetrading.py +0 -0
  129. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/oxfun.py +0 -0
  130. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/p2b.py +0 -0
  131. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/paymium.py +0 -0
  132. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/phemex.py +0 -0
  133. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/poloniex.py +0 -0
  134. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/poloniexfutures.py +0 -0
  135. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/probit.py +0 -0
  136. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/timex.py +0 -0
  137. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/tokocrypto.py +0 -0
  138. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/tradeogre.py +0 -0
  139. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/upbit.py +0 -0
  140. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/vertex.py +0 -0
  141. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/wavesexchange.py +0 -0
  142. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/wazirx.py +0 -0
  143. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/whitebit.py +0 -0
  144. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/woo.py +0 -0
  145. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/woofipro.py +0 -0
  146. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/xt.py +0 -0
  147. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/yobit.py +0 -0
  148. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/zaif.py +0 -0
  149. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/abstract/zonda.py +0 -0
  150. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/ace.py +0 -0
  151. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/ascendex.py +0 -0
  152. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/ace.py +0 -0
  153. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/ascendex.py +0 -0
  154. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/__init__.py +0 -0
  155. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/throttler.py +0 -0
  156. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/__init__.py +0 -0
  157. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  158. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/cache.py +0 -0
  159. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/fast_client.py +0 -0
  160. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/functions.py +0 -0
  161. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/future.py +0 -0
  162. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/order_book.py +0 -0
  163. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  164. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bequant.py +0 -0
  165. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/binance.py +0 -0
  166. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/binancecoinm.py +0 -0
  167. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/binanceus.py +0 -0
  168. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/binanceusdm.py +0 -0
  169. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bit2c.py +0 -0
  170. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitbank.py +0 -0
  171. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitbay.py +0 -0
  172. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitbns.py +0 -0
  173. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitcoincom.py +0 -0
  174. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitfinex.py +0 -0
  175. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitfinex2.py +0 -0
  176. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitflyer.py +0 -0
  177. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bithumb.py +0 -0
  178. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitmart.py +0 -0
  179. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitmex.py +0 -0
  180. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitopro.py +0 -0
  181. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitpanda.py +0 -0
  182. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitrue.py +0 -0
  183. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitso.py +0 -0
  184. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitstamp.py +0 -0
  185. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitteam.py +0 -0
  186. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bitvavo.py +0 -0
  187. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bl3p.py +0 -0
  188. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/blockchaincom.py +0 -0
  189. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/blofin.py +0 -0
  190. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/btcalpha.py +0 -0
  191. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/btcbox.py +0 -0
  192. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/btcmarkets.py +0 -0
  193. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/btcturk.py +0 -0
  194. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/bybit.py +0 -0
  195. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/cex.py +0 -0
  196. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinbase.py +0 -0
  197. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinbaseadvanced.py +0 -0
  198. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinbaseexchange.py +0 -0
  199. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinbaseinternational.py +0 -0
  200. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coincheck.py +0 -0
  201. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinex.py +0 -0
  202. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinlist.py +0 -0
  203. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinmetro.py +0 -0
  204. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinsph.py +0 -0
  205. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/coinspot.py +0 -0
  206. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/cryptocom.py +0 -0
  207. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/currencycom.py +0 -0
  208. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/delta.py +0 -0
  209. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/deribit.py +0 -0
  210. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/digifinex.py +0 -0
  211. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/exmo.py +0 -0
  212. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/fmfwio.py +0 -0
  213. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/gateio.py +0 -0
  214. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/gemini.py +0 -0
  215. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/hitbtc.py +0 -0
  216. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/hitbtc3.py +0 -0
  217. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/hollaex.py +0 -0
  218. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/huobi.py +0 -0
  219. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/hyperliquid.py +0 -0
  220. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/idex.py +0 -0
  221. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/independentreserve.py +0 -0
  222. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/indodax.py +0 -0
  223. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/kraken.py +0 -0
  224. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/krakenfutures.py +0 -0
  225. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/kucoinfutures.py +0 -0
  226. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/kuna.py +0 -0
  227. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/lbank.py +0 -0
  228. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/luno.py +0 -0
  229. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/lykke.py +0 -0
  230. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/mercado.py +0 -0
  231. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/mexc.py +0 -0
  232. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/ndax.py +0 -0
  233. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/novadax.py +0 -0
  234. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/oceanex.py +0 -0
  235. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/okcoin.py +0 -0
  236. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/onetrading.py +0 -0
  237. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/oxfun.py +0 -0
  238. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/p2b.py +0 -0
  239. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/paymium.py +0 -0
  240. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/phemex.py +0 -0
  241. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/poloniex.py +0 -0
  242. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/poloniexfutures.py +0 -0
  243. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/probit.py +0 -0
  244. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/timex.py +0 -0
  245. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/tokocrypto.py +0 -0
  246. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/tradeogre.py +0 -0
  247. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/upbit.py +0 -0
  248. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/vertex.py +0 -0
  249. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/wavesexchange.py +0 -0
  250. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/wazirx.py +0 -0
  251. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/whitebit.py +0 -0
  252. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/woofipro.py +0 -0
  253. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/xt.py +0 -0
  254. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/yobit.py +0 -0
  255. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/zaif.py +0 -0
  256. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/async_support/zonda.py +0 -0
  257. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/__init__.py +0 -0
  258. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/decimal_to_precision.py +0 -0
  259. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/errors.py +0 -0
  260. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/precise.py +0 -0
  261. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/base/types.py +0 -0
  262. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bequant.py +0 -0
  263. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/binance.py +0 -0
  264. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/binancecoinm.py +0 -0
  265. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/binanceus.py +0 -0
  266. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/binanceusdm.py +0 -0
  267. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bit2c.py +0 -0
  268. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitbank.py +0 -0
  269. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitbay.py +0 -0
  270. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitbns.py +0 -0
  271. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitcoincom.py +0 -0
  272. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitfinex.py +0 -0
  273. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitfinex2.py +0 -0
  274. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitflyer.py +0 -0
  275. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bithumb.py +0 -0
  276. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitmart.py +0 -0
  277. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitmex.py +0 -0
  278. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitopro.py +0 -0
  279. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitpanda.py +0 -0
  280. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitrue.py +0 -0
  281. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitso.py +0 -0
  282. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitstamp.py +0 -0
  283. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitteam.py +0 -0
  284. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bitvavo.py +0 -0
  285. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bl3p.py +0 -0
  286. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/blockchaincom.py +0 -0
  287. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/blofin.py +0 -0
  288. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/btcalpha.py +0 -0
  289. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/btcbox.py +0 -0
  290. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/btcmarkets.py +0 -0
  291. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/btcturk.py +0 -0
  292. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/bybit.py +0 -0
  293. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/cex.py +0 -0
  294. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinbase.py +0 -0
  295. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinbaseadvanced.py +0 -0
  296. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinbaseexchange.py +0 -0
  297. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinbaseinternational.py +0 -0
  298. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coincheck.py +0 -0
  299. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinex.py +0 -0
  300. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinlist.py +0 -0
  301. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinmetro.py +0 -0
  302. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinsph.py +0 -0
  303. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/coinspot.py +0 -0
  304. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/cryptocom.py +0 -0
  305. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/currencycom.py +0 -0
  306. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/delta.py +0 -0
  307. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/deribit.py +0 -0
  308. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/digifinex.py +0 -0
  309. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/exmo.py +0 -0
  310. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/fmfwio.py +0 -0
  311. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/gateio.py +0 -0
  312. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/gemini.py +0 -0
  313. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/hitbtc.py +0 -0
  314. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/hitbtc3.py +0 -0
  315. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/hollaex.py +0 -0
  316. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/huobi.py +0 -0
  317. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/hyperliquid.py +0 -0
  318. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/idex.py +0 -0
  319. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/independentreserve.py +0 -0
  320. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/indodax.py +0 -0
  321. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/kraken.py +0 -0
  322. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/krakenfutures.py +0 -0
  323. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/kucoinfutures.py +0 -0
  324. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/kuna.py +0 -0
  325. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/lbank.py +0 -0
  326. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/luno.py +0 -0
  327. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/lykke.py +0 -0
  328. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/mercado.py +0 -0
  329. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/mexc.py +0 -0
  330. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/ndax.py +0 -0
  331. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/novadax.py +0 -0
  332. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/oceanex.py +0 -0
  333. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/okcoin.py +0 -0
  334. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/onetrading.py +0 -0
  335. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/oxfun.py +0 -0
  336. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/p2b.py +0 -0
  337. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/paymium.py +0 -0
  338. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/phemex.py +0 -0
  339. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/poloniex.py +0 -0
  340. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/poloniexfutures.py +0 -0
  341. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/alpaca.py +0 -0
  342. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/ascendex.py +0 -0
  343. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bequant.py +0 -0
  344. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/binance.py +0 -0
  345. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/binancecoinm.py +0 -0
  346. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/binanceus.py +0 -0
  347. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/binanceusdm.py +0 -0
  348. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bingx.py +0 -0
  349. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitcoincom.py +0 -0
  350. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitfinex.py +0 -0
  351. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitfinex2.py +0 -0
  352. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitget.py +0 -0
  353. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bithumb.py +0 -0
  354. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitmart.py +0 -0
  355. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitmex.py +0 -0
  356. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitopro.py +0 -0
  357. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitpanda.py +0 -0
  358. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitrue.py +0 -0
  359. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitstamp.py +0 -0
  360. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bitvavo.py +0 -0
  361. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/blockchaincom.py +0 -0
  362. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/bybit.py +0 -0
  363. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/cex.py +0 -0
  364. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coinbase.py +0 -0
  365. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coinbaseexchange.py +0 -0
  366. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coinbaseinternational.py +0 -0
  367. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coincheck.py +0 -0
  368. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coinex.py +0 -0
  369. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/coinone.py +0 -0
  370. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/cryptocom.py +0 -0
  371. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/currencycom.py +0 -0
  372. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/deribit.py +0 -0
  373. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/exmo.py +0 -0
  374. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/gate.py +0 -0
  375. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/gateio.py +0 -0
  376. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/gemini.py +0 -0
  377. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/hitbtc.py +0 -0
  378. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/hollaex.py +0 -0
  379. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/huobi.py +0 -0
  380. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/huobijp.py +0 -0
  381. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/hyperliquid.py +0 -0
  382. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/idex.py +0 -0
  383. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/independentreserve.py +0 -0
  384. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/kraken.py +0 -0
  385. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/krakenfutures.py +0 -0
  386. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/kucoin.py +0 -0
  387. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/kucoinfutures.py +0 -0
  388. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/lbank.py +0 -0
  389. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/luno.py +0 -0
  390. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/mexc.py +0 -0
  391. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/ndax.py +0 -0
  392. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/okcoin.py +0 -0
  393. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/onetrading.py +0 -0
  394. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/oxfun.py +0 -0
  395. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/p2b.py +0 -0
  396. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/phemex.py +0 -0
  397. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/poloniex.py +0 -0
  398. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/poloniexfutures.py +0 -0
  399. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/probit.py +0 -0
  400. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/upbit.py +0 -0
  401. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/vertex.py +0 -0
  402. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/wazirx.py +0 -0
  403. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/whitebit.py +0 -0
  404. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/woo.py +0 -0
  405. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/pro/woofipro.py +0 -0
  406. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/probit.py +0 -0
  407. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/__init__.py +0 -0
  408. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  409. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  410. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  411. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  412. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  413. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  414. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  415. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  416. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  417. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  418. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  419. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  420. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  421. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  422. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  423. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  424. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  425. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  426. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  427. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  428. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  429. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  430. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  431. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  432. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  433. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  434. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  435. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  436. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  437. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  438. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  439. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  440. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  441. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  442. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  443. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  444. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  445. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  446. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  447. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  448. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  449. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  450. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  451. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  452. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  453. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  454. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  455. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  456. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  457. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  458. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  459. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  460. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  461. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  462. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  463. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  464. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  465. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  466. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  467. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  468. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  469. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  470. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  471. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  472. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  473. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  474. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  475. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  476. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  477. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  478. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  479. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  480. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  481. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  482. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  483. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  484. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  485. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  486. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  487. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  488. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  489. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  490. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  491. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  492. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  493. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  494. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/_version.py +0 -0
  495. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  496. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  497. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  498. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  499. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  500. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  501. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  502. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  503. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/static_dependencies/toolz/utils.py +0 -0
  504. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/test/__init__.py +0 -0
  505. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/test/tests_async.py +0 -0
  506. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/test/tests_helpers.py +0 -0
  507. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/test/tests_init.py +0 -0
  508. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/test/tests_sync.py +0 -0
  509. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/timex.py +0 -0
  510. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/tokocrypto.py +0 -0
  511. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/tradeogre.py +0 -0
  512. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/upbit.py +0 -0
  513. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/vertex.py +0 -0
  514. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/wavesexchange.py +0 -0
  515. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/wazirx.py +0 -0
  516. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/whitebit.py +0 -0
  517. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/woofipro.py +0 -0
  518. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/xt.py +0 -0
  519. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/yobit.py +0 -0
  520. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/zaif.py +0 -0
  521. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt/zonda.py +0 -0
  522. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt.egg-info/SOURCES.txt +0 -0
  523. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt.egg-info/dependency_links.txt +0 -0
  524. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt.egg-info/requires.txt +0 -0
  525. {ccxt-4.3.56 → ccxt-4.3.58}/ccxt.egg-info/top_level.txt +0 -0
  526. {ccxt-4.3.56 → ccxt-4.3.58}/setup.cfg +0 -0
  527. {ccxt-4.3.56 → ccxt-4.3.58}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.56
3
+ Version: 4.3.58
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
@@ -257,13 +257,13 @@ console.log(version, Object.keys(exchanges));
257
257
 
258
258
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
259
259
 
260
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.56/dist/ccxt.browser.min.js
261
- * unpkg: https://unpkg.com/ccxt@4.3.56/dist/ccxt.browser.min.js
260
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.58/dist/ccxt.browser.min.js
261
+ * unpkg: https://unpkg.com/ccxt@4.3.58/dist/ccxt.browser.min.js
262
262
 
263
263
  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.
264
264
 
265
265
  ```HTML
266
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.56/dist/ccxt.browser.min.js"></script>
266
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.58/dist/ccxt.browser.min.js"></script>
267
267
  ```
268
268
 
269
269
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.56'
25
+ __version__ = '4.3.58'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  private_get_redeem_orders = privateGetRedeemOrders = Entry('redeem/orders', 'private', 'GET', {'cost': 10})
88
88
  private_get_purchase_orders = privateGetPurchaseOrders = Entry('purchase/orders', 'private', 'GET', {'cost': 10})
89
89
  private_get_broker_api_rebase_download = privateGetBrokerApiRebaseDownload = Entry('broker/api/rebase/download', 'private', 'GET', {'cost': 3})
90
+ private_get_affiliate_inviter_statistics = privateGetAffiliateInviterStatistics = Entry('affiliate/inviter/statistics', 'private', 'GET', {'cost': 30})
90
91
  private_post_sub_user_created = privatePostSubUserCreated = Entry('sub/user/created', 'private', 'POST', {'cost': 22.5})
91
92
  private_post_sub_api_key = privatePostSubApiKey = Entry('sub/api-key', 'private', 'POST', {'cost': 30})
92
93
  private_post_sub_api_key_update = privatePostSubApiKeyUpdate = Entry('sub/api-key/update', 'private', 'POST', {'cost': 45})
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  private_get_redeem_orders = privateGetRedeemOrders = Entry('redeem/orders', 'private', 'GET', {'cost': 10})
88
88
  private_get_purchase_orders = privateGetPurchaseOrders = Entry('purchase/orders', 'private', 'GET', {'cost': 10})
89
89
  private_get_broker_api_rebase_download = privateGetBrokerApiRebaseDownload = Entry('broker/api/rebase/download', 'private', 'GET', {'cost': 3})
90
+ private_get_affiliate_inviter_statistics = privateGetAffiliateInviterStatistics = Entry('affiliate/inviter/statistics', 'private', 'GET', {'cost': 30})
90
91
  private_post_sub_user_created = privatePostSubUserCreated = Entry('sub/user/created', 'private', 'POST', {'cost': 22.5})
91
92
  private_post_sub_api_key = privatePostSubApiKey = Entry('sub/api-key', 'private', 'POST', {'cost': 30})
92
93
  private_post_sub_api_key_update = privatePostSubApiKeyUpdate = Entry('sub/api-key/update', 'private', 'POST', {'cost': 45})
@@ -787,7 +787,11 @@ class alpaca(Exchange, ImplicitAPI):
787
787
  if isinstance(response, list):
788
788
  return self.parse_orders(response, None)
789
789
  else:
790
- return response
790
+ return [
791
+ self.safe_order({
792
+ 'info': response,
793
+ }),
794
+ ]
791
795
 
792
796
  def fetch_order(self, id: str, symbol: Str = None, params={}):
793
797
  """
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.56'
7
+ __version__ = '4.3.58'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -787,7 +787,11 @@ class alpaca(Exchange, ImplicitAPI):
787
787
  if isinstance(response, list):
788
788
  return self.parse_orders(response, None)
789
789
  else:
790
- return response
790
+ return [
791
+ self.safe_order({
792
+ 'info': response,
793
+ }),
794
+ ]
791
795
 
792
796
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
793
797
  """
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.56'
5
+ __version__ = '4.3.58'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -4,7 +4,7 @@ from asyncio import sleep, ensure_future, wait_for, TimeoutError
4
4
  from .functions import milliseconds, iso8601, deep_extend
5
5
  from ccxt import NetworkError, RequestTimeout, NotSupported
6
6
  from ccxt.async_support.base.ws.future import Future
7
-
7
+ from collections import deque
8
8
 
9
9
  class Client(object):
10
10
 
@@ -14,6 +14,8 @@ class Client(object):
14
14
  options = {} # ws-specific options
15
15
  subscriptions = {}
16
16
  rejections = {}
17
+ message_queue = {}
18
+ useMessageQueue = True
17
19
  on_message_callback = None
18
20
  on_error_callback = None
19
21
  on_close_callback = None
@@ -68,15 +70,33 @@ class Client(object):
68
70
  if message_hash in self.rejections:
69
71
  future.reject(self.rejections[message_hash])
70
72
  del self.rejections[message_hash]
73
+ del self.message_queue[message_hash]
74
+ return future
75
+ if self.useMessageQueue and message_hash in self.message_queue:
76
+ queue = self.message_queue[message_hash]
77
+ if len(queue):
78
+ future.resolve(queue.popleft())
79
+ del self.futures[message_hash]
71
80
  return future
72
81
 
73
82
  def resolve(self, result, message_hash):
74
83
  if self.verbose and message_hash is None:
75
84
  self.log(iso8601(milliseconds()), 'resolve received None messageHash')
76
- if message_hash in self.futures:
77
- future = self.futures[message_hash]
78
- future.resolve(result)
79
- del self.futures[message_hash]
85
+
86
+ if self.useMessageQueue:
87
+ if message_hash not in self.message_queue:
88
+ self.message_queue[message_hash] = deque(maxlen=10)
89
+ queue = self.message_queue[message_hash]
90
+ queue.append(result)
91
+ if message_hash in self.futures:
92
+ future = self.futures[message_hash]
93
+ future.resolve(queue.popleft())
94
+ del self.futures[message_hash]
95
+ else:
96
+ if message_hash in self.futures:
97
+ future = self.futures[message_hash]
98
+ future.resolve(result)
99
+ del self.futures[message_hash]
80
100
  return result
81
101
 
82
102
  def reject(self, result, message_hash=None):
@@ -165,6 +185,7 @@ class Client(object):
165
185
  ensure_future(self.close(code), loop=self.asyncio_loop)
166
186
 
167
187
  def reset(self, error):
188
+ self.message_queue = {}
168
189
  self.reject(error)
169
190
 
170
191
  async def ping_loop(self):
@@ -1540,7 +1540,25 @@ class bigone(Exchange, ImplicitAPI):
1540
1540
  # }
1541
1541
  # }
1542
1542
  #
1543
- return response
1543
+ data = self.safe_dict(response, 'data', {})
1544
+ cancelled = self.safe_list(data, 'cancelled', [])
1545
+ failed = self.safe_list(data, 'failed', [])
1546
+ result = []
1547
+ for i in range(0, len(cancelled)):
1548
+ orderId = cancelled[i]
1549
+ result.append(self.safe_order({
1550
+ 'info': orderId,
1551
+ 'id': orderId,
1552
+ 'status': 'canceled',
1553
+ }))
1554
+ for i in range(0, len(failed)):
1555
+ orderId = failed[i]
1556
+ result.append(self.safe_order({
1557
+ 'info': orderId,
1558
+ 'id': orderId,
1559
+ 'status': 'failed',
1560
+ }))
1561
+ return result
1544
1562
 
1545
1563
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
1546
1564
  """
@@ -675,6 +675,29 @@ class bingx(Exchange, ImplicitAPI):
675
675
  markets = self.safe_list(response, 'data', [])
676
676
  return self.parse_markets(markets)
677
677
 
678
+ async def fetch_inverse_swap_markets(self, params):
679
+ response = await self.cswapV1PublicGetMarketContracts(params)
680
+ #
681
+ # {
682
+ # "code": 0,
683
+ # "msg": "",
684
+ # "timestamp": 1720074487610,
685
+ # "data": [
686
+ # {
687
+ # "symbol": "BNB-USD",
688
+ # "pricePrecision": 2,
689
+ # "minTickSize": "10",
690
+ # "minTradeValue": "10",
691
+ # "minQty": "1.00000000",
692
+ # "status": 1,
693
+ # "timeOnline": 1713175200000
694
+ # },
695
+ # ]
696
+ # }
697
+ #
698
+ markets = self.safe_list(response, 'data', [])
699
+ return self.parse_markets(markets)
700
+
678
701
  def parse_market(self, market: dict) -> Market:
679
702
  id = self.safe_string(market, 'symbol')
680
703
  symbolParts = id.split('-')
@@ -683,6 +706,14 @@ class bingx(Exchange, ImplicitAPI):
683
706
  base = self.safe_currency_code(baseId)
684
707
  quote = self.safe_currency_code(quoteId)
685
708
  currency = self.safe_string(market, 'currency')
709
+ checkIsInverse = False
710
+ checkIsLinear = True
711
+ minTickSize = self.safe_number(market, 'minTickSize')
712
+ if minTickSize is not None:
713
+ # inverse swap market
714
+ currency = baseId
715
+ checkIsInverse = True
716
+ checkIsLinear = False
686
717
  settle = self.safe_currency_code(currency)
687
718
  pricePrecision = self.safe_number(market, 'tickSize')
688
719
  if pricePrecision is None:
@@ -699,8 +730,11 @@ class bingx(Exchange, ImplicitAPI):
699
730
  fees = self.safe_dict(self.fees, type, {})
700
731
  contractSize = self.parse_number('1') if (swap) else None
701
732
  isActive = self.safe_string(market, 'status') == '1'
702
- isInverse = None if (spot) else False
703
- isLinear = None if (spot) else swap
733
+ isInverse = None if (spot) else checkIsInverse
734
+ isLinear = None if (spot) else checkIsLinear
735
+ timeOnline = self.safe_integer(market, 'timeOnline')
736
+ if timeOnline == 0:
737
+ timeOnline = None
704
738
  return self.safe_market_structure({
705
739
  'id': id,
706
740
  'symbol': symbol,
@@ -742,15 +776,15 @@ class bingx(Exchange, ImplicitAPI):
742
776
  'max': self.safe_number(market, 'maxQty'),
743
777
  },
744
778
  'price': {
745
- 'min': None,
779
+ 'min': minTickSize,
746
780
  'max': None,
747
781
  },
748
782
  'cost': {
749
- 'min': self.safe_number_2(market, 'minNotional', 'tradeMinUSDT'),
783
+ 'min': self.safe_number_n(market, ['minNotional', 'tradeMinUSDT', 'minTradeValue']),
750
784
  'max': self.safe_number(market, 'maxNotional'),
751
785
  },
752
786
  },
753
- 'created': None,
787
+ 'created': timeOnline,
754
788
  'info': market,
755
789
  })
756
790
 
@@ -759,16 +793,20 @@ class bingx(Exchange, ImplicitAPI):
759
793
  retrieves data on all markets for bingx
760
794
  :see: https://bingx-api.github.io/docs/#/spot/market-api.html#Query%20Symbols
761
795
  :see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#Contract%20Information
796
+ :see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Contract%20Information
762
797
  :param dict [params]: extra parameters specific to the exchange API endpoint
763
798
  :returns dict[]: an array of objects representing market data
764
799
  """
765
800
  requests = [self.fetch_swap_markets(params)]
766
801
  isSandbox = self.safe_bool(self.options, 'sandboxMode', False)
767
802
  if not isSandbox:
803
+ requests.append(self.fetch_inverse_swap_markets(params))
768
804
  requests.append(self.fetch_spot_markets(params)) # sandbox is swap only
769
805
  promises = await asyncio.gather(*requests)
770
- spotMarkets = self.safe_list(promises, 0, [])
771
- swapMarkets = self.safe_list(promises, 1, [])
806
+ linearSwapMarkets = self.safe_list(promises, 0, [])
807
+ inverseSwapMarkets = self.safe_list(promises, 1, [])
808
+ spotMarkets = self.safe_list(promises, 2, [])
809
+ swapMarkets = self.array_concat(linearSwapMarkets, inverseSwapMarkets)
772
810
  return self.array_concat(spotMarkets, swapMarkets)
773
811
 
774
812
  async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
@@ -778,13 +816,14 @@ class bingx(Exchange, ImplicitAPI):
778
816
  :see: https://bingx-api.github.io/docs/#/spot/market-api.html#Candlestick%20chart%20data
779
817
  :see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#%20K-Line%20Data
780
818
  :see: https://bingx-api.github.io/docs/#/en-us/swapV2/market-api.html#K-Line%20Data%20-%20Mark%20Price
819
+ :see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Get%20K-line%20Data
781
820
  :param str symbol: unified symbol of the market to fetch OHLCV data for
782
821
  :param str timeframe: the length of time each candle represents
783
822
  :param int [since]: timestamp in ms of the earliest candle to fetch
784
823
  :param int [limit]: the maximum amount of candles to fetch
785
824
  :param dict [params]: extra parameters specific to the exchange API endpoint
786
825
  :param int [params.until]: timestamp in ms of the latest candle to fetch
787
- :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
826
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
788
827
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
789
828
  """
790
829
  await self.load_markets()
@@ -809,12 +848,15 @@ class bingx(Exchange, ImplicitAPI):
809
848
  if market['spot']:
810
849
  response = await self.spotV1PublicGetMarketKline(self.extend(request, params))
811
850
  else:
812
- price = self.safe_string(params, 'price')
813
- params = self.omit(params, 'price')
814
- if price == 'mark':
815
- response = await self.swapV1PrivateGetMarketMarkPriceKlines(self.extend(request, params))
851
+ if market['inverse']:
852
+ response = await self.cswapV1PublicGetMarketKlines(self.extend(request, params))
816
853
  else:
817
- response = await self.swapV3PublicGetQuoteKlines(self.extend(request, params))
854
+ price = self.safe_string(params, 'price')
855
+ params = self.omit(params, 'price')
856
+ if price == 'mark':
857
+ response = await self.swapV1PrivateGetMarketMarkPriceKlines(self.extend(request, params))
858
+ else:
859
+ response = await self.swapV3PublicGetQuoteKlines(self.extend(request, params))
818
860
  #
819
861
  # {
820
862
  # "code": 0,
@@ -1107,6 +1149,7 @@ class bingx(Exchange, ImplicitAPI):
1107
1149
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
1108
1150
  :see: https://bingx-api.github.io/docs/#/spot/market-api.html#Query%20depth%20information
1109
1151
  :see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#Get%20Market%20Depth
1152
+ :see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Query%20Depth%20Data
1110
1153
  :param str symbol: unified symbol of the market to fetch the order book for
1111
1154
  :param int [limit]: the maximum amount of order book entries to return
1112
1155
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1125,7 +1168,10 @@ class bingx(Exchange, ImplicitAPI):
1125
1168
  if marketType == 'spot':
1126
1169
  response = await self.spotV1PublicGetMarketDepth(self.extend(request, params))
1127
1170
  else:
1128
- response = await self.swapV2PublicGetQuoteDepth(self.extend(request, params))
1171
+ if market['inverse']:
1172
+ response = await self.cswapV1PublicGetMarketDepth(self.extend(request, params))
1173
+ else:
1174
+ response = await self.swapV2PublicGetQuoteDepth(self.extend(request, params))
1129
1175
  #
1130
1176
  # spot
1131
1177
  #
@@ -1191,6 +1237,7 @@ class bingx(Exchange, ImplicitAPI):
1191
1237
  """
1192
1238
  fetch the current funding rate
1193
1239
  :see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#Current%20Funding%20Rate
1240
+ :see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Price%20&%20Current%20Funding%20Rate
1194
1241
  :param str symbol: unified market symbol
1195
1242
  :param dict [params]: extra parameters specific to the exchange API endpoint
1196
1243
  :returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
@@ -1200,7 +1247,11 @@ class bingx(Exchange, ImplicitAPI):
1200
1247
  request: dict = {
1201
1248
  'symbol': market['id'],
1202
1249
  }
1203
- response = await self.swapV2PublicGetQuotePremiumIndex(self.extend(request, params))
1250
+ response = None
1251
+ if market['inverse']:
1252
+ response = await self.cswapV1PublicGetMarketPremiumIndex(self.extend(request, params))
1253
+ else:
1254
+ response = await self.swapV2PublicGetQuotePremiumIndex(self.extend(request, params))
1204
1255
  #
1205
1256
  # {
1206
1257
  # "code":0,
@@ -1338,9 +1389,10 @@ class bingx(Exchange, ImplicitAPI):
1338
1389
 
1339
1390
  async def fetch_open_interest(self, symbol: str, params={}):
1340
1391
  """
1341
- Retrieves the open interest of a currency
1392
+ retrieves the open interest of a trading pair
1342
1393
  :see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#Get%20Swap%20Open%20Positions
1343
- :param str symbol: Unified CCXT market symbol
1394
+ :see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Get%20Swap%20Open%20Positions
1395
+ :param str symbol: unified CCXT market symbol
1344
1396
  :param dict [params]: exchange specific parameters
1345
1397
  :returns dict} an open interest structure{@link https://docs.ccxt.com/#/?id=open-interest-structure:
1346
1398
  """
@@ -1349,7 +1401,13 @@ class bingx(Exchange, ImplicitAPI):
1349
1401
  request: dict = {
1350
1402
  'symbol': market['id'],
1351
1403
  }
1352
- response = await self.swapV2PublicGetQuoteOpenInterest(self.extend(request, params))
1404
+ response = None
1405
+ if market['inverse']:
1406
+ response = await self.cswapV1PublicGetMarketOpenInterest(self.extend(request, params))
1407
+ else:
1408
+ response = await self.swapV2PublicGetQuoteOpenInterest(self.extend(request, params))
1409
+ #
1410
+ # linear swap
1353
1411
  #
1354
1412
  # {
1355
1413
  # "code": 0,
@@ -1361,18 +1419,48 @@ class bingx(Exchange, ImplicitAPI):
1361
1419
  # }
1362
1420
  # }
1363
1421
  #
1364
- data = self.safe_dict(response, 'data', {})
1365
- return self.parse_open_interest(data, market)
1422
+ # inverse swap
1423
+ #
1424
+ # {
1425
+ # "code": 0,
1426
+ # "msg": "",
1427
+ # "timestamp": 1720328247986,
1428
+ # "data": [
1429
+ # {
1430
+ # "symbol": "BTC-USD",
1431
+ # "openInterest": "749.1160",
1432
+ # "timestamp": 1720310400000
1433
+ # }
1434
+ # ]
1435
+ # }
1436
+ #
1437
+ result: dict = {}
1438
+ if market['inverse']:
1439
+ data = self.safe_list(response, 'data', [])
1440
+ result = self.safe_dict(data, 0, {})
1441
+ else:
1442
+ result = self.safe_dict(response, 'data', {})
1443
+ return self.parse_open_interest(result, market)
1366
1444
 
1367
1445
  def parse_open_interest(self, interest, market: Market = None):
1368
1446
  #
1369
- # {
1370
- # "openInterest": "3289641547.10",
1371
- # "symbol": "BTC-USDT",
1372
- # "time": 1672026617364
1373
- # }
1447
+ # linear swap
1448
+ #
1449
+ # {
1450
+ # "openInterest": "3289641547.10",
1451
+ # "symbol": "BTC-USDT",
1452
+ # "time": 1672026617364
1453
+ # }
1454
+ #
1455
+ # inverse swap
1456
+ #
1457
+ # {
1458
+ # "symbol": "BTC-USD",
1459
+ # "openInterest": "749.1160",
1460
+ # "timestamp": 1720310400000
1461
+ # }
1374
1462
  #
1375
- timestamp = self.safe_integer(interest, 'time')
1463
+ timestamp = self.safe_integer_2(interest, 'time', 'timestamp')
1376
1464
  id = self.safe_string(interest, 'symbol')
1377
1465
  symbol = self.safe_symbol(id, market, '-', 'swap')
1378
1466
  openInterest = self.safe_number(interest, 'openInterest')
@@ -4692,6 +4692,22 @@ class bitget(Exchange, ImplicitAPI):
4692
4692
  response = await self.privateMarginPostMarginV1CrossOrderBatchCancelOrder(self.extend(request, params))
4693
4693
  else:
4694
4694
  response = await self.privateMarginPostMarginV1IsolatedOrderBatchCancelOrder(self.extend(request, params))
4695
+ #
4696
+ # {
4697
+ # "code": "00000",
4698
+ # "msg": "success",
4699
+ # "requestTime": 1700717155622,
4700
+ # "data": {
4701
+ # "resultList": [
4702
+ # {
4703
+ # "orderId": "1111453253721796609",
4704
+ # "clientOid": "2ae7fc8a4ff949b6b60d770ca3950e2d"
4705
+ # },
4706
+ # ],
4707
+ # "failure": []
4708
+ # }
4709
+ # }
4710
+ #
4695
4711
  else:
4696
4712
  if stop:
4697
4713
  stopRequest: dict = {
@@ -4700,6 +4716,27 @@ class bitget(Exchange, ImplicitAPI):
4700
4716
  response = await self.privateSpotPostV2SpotTradeBatchCancelPlanOrder(self.extend(stopRequest, params))
4701
4717
  else:
4702
4718
  response = await self.privateSpotPostV2SpotTradeCancelSymbolOrder(self.extend(request, params))
4719
+ #
4720
+ # {
4721
+ # "code": "00000",
4722
+ # "msg": "success",
4723
+ # "requestTime": 1700716953996,
4724
+ # "data": {
4725
+ # "symbol": "BTCUSDT"
4726
+ # }
4727
+ # }
4728
+ #
4729
+ timestamp = self.safe_integer(response, 'requestTime')
4730
+ responseData = self.safe_dict(response, 'data')
4731
+ marketId = self.safe_string(responseData, 'symbol')
4732
+ return [
4733
+ self.safe_order({
4734
+ 'info': response,
4735
+ 'symbol': self.safe_symbol(marketId, None, None, 'spot'),
4736
+ 'timestamp': timestamp,
4737
+ 'datetime': self.iso8601(timestamp),
4738
+ }),
4739
+ ]
4703
4740
  else:
4704
4741
  productType = None
4705
4742
  productType, params = self.handle_product_type_and_params(market, params)
@@ -4708,53 +4745,25 @@ class bitget(Exchange, ImplicitAPI):
4708
4745
  response = await self.privateMixPostV2MixOrderCancelPlanOrder(self.extend(request, params))
4709
4746
  else:
4710
4747
  response = await self.privateMixPostV2MixOrderBatchCancelOrders(self.extend(request, params))
4711
- #
4712
- # spot
4713
- #
4714
- # {
4715
- # "code": "00000",
4716
- # "msg": "success",
4717
- # "requestTime": 1700716953996,
4718
- # "data": {
4719
- # "symbol": "BTCUSDT"
4720
- # }
4721
- # }
4722
- #
4723
- # swap
4724
- #
4725
- # {
4726
- # "code": "00000",
4727
- # "msg": "success",
4728
- # "requestTime": "1680008815965",
4729
- # "data": {
4730
- # "successList": [
4731
- # {
4732
- # "orderId": "1024598257429823488",
4733
- # "clientOid": "876493ce-c287-4bfc-9f4a-8b1905881313"
4734
- # },
4735
- # ],
4736
- # "failureList": []
4737
- # }
4738
- # }
4739
- #
4740
- # spot margin
4741
- #
4742
- # {
4743
- # "code": "00000",
4744
- # "msg": "success",
4745
- # "requestTime": 1700717155622,
4746
- # "data": {
4747
- # "resultList": [
4748
- # {
4749
- # "orderId": "1111453253721796609",
4750
- # "clientOid": "2ae7fc8a4ff949b6b60d770ca3950e2d"
4751
- # },
4752
- # ],
4753
- # "failure": []
4754
- # }
4755
- # }
4756
- #
4757
- return response
4748
+ # {
4749
+ # "code": "00000",
4750
+ # "msg": "success",
4751
+ # "requestTime": "1680008815965",
4752
+ # "data": {
4753
+ # "successList": [
4754
+ # {
4755
+ # "orderId": "1024598257429823488",
4756
+ # "clientOid": "876493ce-c287-4bfc-9f4a-8b1905881313"
4757
+ # },
4758
+ # ],
4759
+ # "failureList": []
4760
+ # }
4761
+ # }
4762
+ data = self.safe_dict(response, 'data')
4763
+ resultList = self.safe_list_2(data, 'resultList', 'successList')
4764
+ failureList = self.safe_list_2(data, 'failure', 'failureList')
4765
+ responseList = self.array_concat(resultList, failureList)
4766
+ return self.parse_orders(responseList)
4758
4767
 
4759
4768
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
4760
4769
  """