ccxt 4.4.50__tar.gz → 4.4.52__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 (676) hide show
  1. {ccxt-4.4.50/ccxt.egg-info → ccxt-4.4.52}/PKG-INFO +7 -7
  2. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/alpaca.py +1 -1
  4. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/alpaca.py +1 -1
  6. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/exchange.py +1 -1
  7. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/binance.py +31 -16
  8. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/blofin.py +4 -0
  9. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinex.py +1 -1
  10. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinmetro.py +16 -3
  11. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/deribit.py +18 -3
  12. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/gate.py +1 -1
  13. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/hollaex.py +2 -1
  14. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/htx.py +5 -3
  15. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/kucoin.py +2 -2
  16. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/mexc.py +21 -6
  17. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/onetrading.py +1 -1
  18. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/paradex.py +1 -1
  19. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/probit.py +9 -7
  20. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/vertex.py +65 -2
  21. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/wavesexchange.py +73 -0
  22. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/wazirx.py +59 -3
  23. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/whitebit.py +69 -0
  24. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/xt.py +112 -0
  25. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/yobit.py +56 -0
  26. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/zaif.py +55 -0
  27. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/zonda.py +58 -0
  28. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/exchange.py +32 -4
  29. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/binance.py +31 -16
  30. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/blofin.py +4 -0
  31. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinex.py +1 -1
  32. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinmetro.py +16 -3
  33. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/deribit.py +18 -3
  34. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/gate.py +1 -1
  35. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/hollaex.py +2 -1
  36. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/htx.py +5 -3
  37. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/kucoin.py +2 -2
  38. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/mexc.py +21 -6
  39. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/onetrading.py +1 -1
  40. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/paradex.py +1 -1
  41. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/__init__.py +1 -1
  42. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/binance.py +2 -0
  43. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/blofin.py +8 -0
  44. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinex.py +4 -1
  45. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/probit.py +9 -7
  46. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/test/tests_async.py +0 -1
  47. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/test/tests_sync.py +0 -1
  48. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/vertex.py +65 -2
  49. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/wavesexchange.py +73 -0
  50. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/wazirx.py +59 -3
  51. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/whitebit.py +69 -0
  52. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/xt.py +112 -0
  53. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/yobit.py +56 -0
  54. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/zaif.py +55 -0
  55. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/zonda.py +58 -0
  56. {ccxt-4.4.50 → ccxt-4.4.52/ccxt.egg-info}/PKG-INFO +7 -7
  57. {ccxt-4.4.50 → ccxt-4.4.52}/package.json +2 -2
  58. {ccxt-4.4.50 → ccxt-4.4.52}/LICENSE.txt +0 -0
  59. {ccxt-4.4.50 → ccxt-4.4.52}/MANIFEST.in +0 -0
  60. {ccxt-4.4.50 → ccxt-4.4.52}/README.rst +0 -0
  61. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/__init__.py +0 -0
  62. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/ace.py +0 -0
  63. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/alpaca.py +0 -0
  64. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/ascendex.py +0 -0
  65. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bequant.py +0 -0
  66. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bigone.py +0 -0
  67. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/binance.py +0 -0
  68. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/binancecoinm.py +0 -0
  69. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/binanceus.py +0 -0
  70. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/binanceusdm.py +0 -0
  71. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bingx.py +0 -0
  72. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bit2c.py +0 -0
  73. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitbank.py +0 -0
  74. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitbns.py +0 -0
  75. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitcoincom.py +0 -0
  76. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitfinex.py +0 -0
  77. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitfinex1.py +0 -0
  78. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitflyer.py +0 -0
  79. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitget.py +0 -0
  80. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bithumb.py +0 -0
  81. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitmart.py +0 -0
  82. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitmex.py +0 -0
  83. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitopro.py +0 -0
  84. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitpanda.py +0 -0
  85. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitrue.py +0 -0
  86. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitso.py +0 -0
  87. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitstamp.py +0 -0
  88. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitteam.py +0 -0
  89. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bitvavo.py +0 -0
  90. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bl3p.py +0 -0
  91. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/blockchaincom.py +0 -0
  92. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/blofin.py +0 -0
  93. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/btcalpha.py +0 -0
  94. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/btcbox.py +0 -0
  95. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/btcmarkets.py +0 -0
  96. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/btcturk.py +0 -0
  97. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/bybit.py +0 -0
  98. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/cex.py +0 -0
  99. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinbase.py +0 -0
  100. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinbaseadvanced.py +0 -0
  101. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinbaseexchange.py +0 -0
  102. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinbaseinternational.py +0 -0
  103. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coincatch.py +0 -0
  104. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coincheck.py +0 -0
  105. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinex.py +0 -0
  106. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinlist.py +0 -0
  107. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinmate.py +0 -0
  108. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinmetro.py +0 -0
  109. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinone.py +0 -0
  110. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinsph.py +0 -0
  111. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/coinspot.py +0 -0
  112. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/cryptocom.py +0 -0
  113. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/currencycom.py +0 -0
  114. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/defx.py +0 -0
  115. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/delta.py +0 -0
  116. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/deribit.py +0 -0
  117. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/digifinex.py +0 -0
  118. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/ellipx.py +0 -0
  119. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/exmo.py +0 -0
  120. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/fmfwio.py +0 -0
  121. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/gate.py +0 -0
  122. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/gateio.py +0 -0
  123. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/gemini.py +0 -0
  124. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/hashkey.py +0 -0
  125. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/hitbtc.py +0 -0
  126. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/hollaex.py +0 -0
  127. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/htx.py +0 -0
  128. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/huobi.py +0 -0
  129. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/huobijp.py +0 -0
  130. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/hyperliquid.py +0 -0
  131. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/idex.py +0 -0
  132. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/independentreserve.py +0 -0
  133. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/indodax.py +0 -0
  134. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/kraken.py +0 -0
  135. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/krakenfutures.py +0 -0
  136. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/kucoin.py +0 -0
  137. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/kucoinfutures.py +0 -0
  138. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/kuna.py +0 -0
  139. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/latoken.py +0 -0
  140. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/lbank.py +0 -0
  141. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/luno.py +0 -0
  142. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/lykke.py +0 -0
  143. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/mercado.py +0 -0
  144. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/mexc.py +0 -0
  145. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/myokx.py +0 -0
  146. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/ndax.py +0 -0
  147. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/novadax.py +0 -0
  148. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/oceanex.py +0 -0
  149. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/okcoin.py +0 -0
  150. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/okx.py +0 -0
  151. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/onetrading.py +0 -0
  152. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/oxfun.py +0 -0
  153. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/p2b.py +0 -0
  154. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/paradex.py +0 -0
  155. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/paymium.py +0 -0
  156. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/phemex.py +0 -0
  157. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/poloniex.py +0 -0
  158. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/poloniexfutures.py +0 -0
  159. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/probit.py +0 -0
  160. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/timex.py +0 -0
  161. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/tokocrypto.py +0 -0
  162. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/tradeogre.py +0 -0
  163. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/upbit.py +0 -0
  164. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/vertex.py +0 -0
  165. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/wavesexchange.py +0 -0
  166. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/wazirx.py +0 -0
  167. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/whitebit.py +0 -0
  168. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/woo.py +0 -0
  169. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/woofipro.py +0 -0
  170. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/xt.py +0 -0
  171. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/yobit.py +0 -0
  172. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/zaif.py +0 -0
  173. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/abstract/zonda.py +0 -0
  174. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/ace.py +0 -0
  175. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/ascendex.py +0 -0
  176. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/ace.py +0 -0
  177. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/ascendex.py +0 -0
  178. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/__init__.py +0 -0
  179. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/throttler.py +0 -0
  180. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/__init__.py +0 -0
  181. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  182. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/cache.py +0 -0
  183. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/client.py +0 -0
  184. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/fast_client.py +0 -0
  185. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/functions.py +0 -0
  186. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/future.py +0 -0
  187. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/order_book.py +0 -0
  188. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  189. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bequant.py +0 -0
  190. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bigone.py +0 -0
  191. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/binancecoinm.py +0 -0
  192. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/binanceus.py +0 -0
  193. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/binanceusdm.py +0 -0
  194. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bingx.py +0 -0
  195. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bit2c.py +0 -0
  196. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitbank.py +0 -0
  197. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitbns.py +0 -0
  198. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitcoincom.py +0 -0
  199. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitfinex.py +0 -0
  200. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitfinex1.py +0 -0
  201. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitflyer.py +0 -0
  202. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitget.py +0 -0
  203. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bithumb.py +0 -0
  204. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitmart.py +0 -0
  205. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitmex.py +0 -0
  206. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitopro.py +0 -0
  207. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitpanda.py +0 -0
  208. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitrue.py +0 -0
  209. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitso.py +0 -0
  210. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitstamp.py +0 -0
  211. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitteam.py +0 -0
  212. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bitvavo.py +0 -0
  213. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bl3p.py +0 -0
  214. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/blockchaincom.py +0 -0
  215. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/btcalpha.py +0 -0
  216. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/btcbox.py +0 -0
  217. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/btcmarkets.py +0 -0
  218. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/btcturk.py +0 -0
  219. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/bybit.py +0 -0
  220. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/cex.py +0 -0
  221. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinbase.py +0 -0
  222. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinbaseadvanced.py +0 -0
  223. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinbaseexchange.py +0 -0
  224. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinbaseinternational.py +0 -0
  225. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coincatch.py +0 -0
  226. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coincheck.py +0 -0
  227. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinlist.py +0 -0
  228. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinmate.py +0 -0
  229. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinone.py +0 -0
  230. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinsph.py +0 -0
  231. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/coinspot.py +0 -0
  232. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/cryptocom.py +0 -0
  233. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/currencycom.py +0 -0
  234. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/defx.py +0 -0
  235. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/delta.py +0 -0
  236. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/digifinex.py +0 -0
  237. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/ellipx.py +0 -0
  238. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/exmo.py +0 -0
  239. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/fmfwio.py +0 -0
  240. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/gateio.py +0 -0
  241. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/gemini.py +0 -0
  242. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/hashkey.py +0 -0
  243. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/hitbtc.py +0 -0
  244. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/huobi.py +0 -0
  245. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/huobijp.py +0 -0
  246. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/hyperliquid.py +0 -0
  247. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/idex.py +0 -0
  248. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/independentreserve.py +0 -0
  249. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/indodax.py +0 -0
  250. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/kraken.py +0 -0
  251. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/krakenfutures.py +0 -0
  252. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/kucoinfutures.py +0 -0
  253. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/kuna.py +0 -0
  254. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/latoken.py +0 -0
  255. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/lbank.py +0 -0
  256. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/luno.py +0 -0
  257. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/lykke.py +0 -0
  258. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/mercado.py +0 -0
  259. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/myokx.py +0 -0
  260. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/ndax.py +0 -0
  261. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/novadax.py +0 -0
  262. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/oceanex.py +0 -0
  263. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/okcoin.py +0 -0
  264. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/okx.py +0 -0
  265. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/oxfun.py +0 -0
  266. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/p2b.py +0 -0
  267. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/paymium.py +0 -0
  268. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/phemex.py +0 -0
  269. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/poloniex.py +0 -0
  270. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/poloniexfutures.py +0 -0
  271. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/timex.py +0 -0
  272. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/tokocrypto.py +0 -0
  273. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/tradeogre.py +0 -0
  274. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/upbit.py +0 -0
  275. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/woo.py +0 -0
  276. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/async_support/woofipro.py +0 -0
  277. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/__init__.py +0 -0
  278. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/decimal_to_precision.py +0 -0
  279. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/errors.py +0 -0
  280. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/precise.py +0 -0
  281. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/base/types.py +0 -0
  282. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bequant.py +0 -0
  283. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bigone.py +0 -0
  284. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/binancecoinm.py +0 -0
  285. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/binanceus.py +0 -0
  286. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/binanceusdm.py +0 -0
  287. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bingx.py +0 -0
  288. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bit2c.py +0 -0
  289. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitbank.py +0 -0
  290. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitbns.py +0 -0
  291. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitcoincom.py +0 -0
  292. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitfinex.py +0 -0
  293. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitfinex1.py +0 -0
  294. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitflyer.py +0 -0
  295. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitget.py +0 -0
  296. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bithumb.py +0 -0
  297. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitmart.py +0 -0
  298. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitmex.py +0 -0
  299. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitopro.py +0 -0
  300. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitpanda.py +0 -0
  301. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitrue.py +0 -0
  302. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitso.py +0 -0
  303. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitstamp.py +0 -0
  304. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitteam.py +0 -0
  305. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bitvavo.py +0 -0
  306. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bl3p.py +0 -0
  307. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/blockchaincom.py +0 -0
  308. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/btcalpha.py +0 -0
  309. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/btcbox.py +0 -0
  310. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/btcmarkets.py +0 -0
  311. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/btcturk.py +0 -0
  312. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/bybit.py +0 -0
  313. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/cex.py +0 -0
  314. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinbase.py +0 -0
  315. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinbaseadvanced.py +0 -0
  316. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinbaseexchange.py +0 -0
  317. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinbaseinternational.py +0 -0
  318. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coincatch.py +0 -0
  319. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coincheck.py +0 -0
  320. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinlist.py +0 -0
  321. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinmate.py +0 -0
  322. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinone.py +0 -0
  323. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinsph.py +0 -0
  324. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/coinspot.py +0 -0
  325. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/cryptocom.py +0 -0
  326. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/currencycom.py +0 -0
  327. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/defx.py +0 -0
  328. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/delta.py +0 -0
  329. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/digifinex.py +0 -0
  330. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/ellipx.py +0 -0
  331. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/exmo.py +0 -0
  332. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/fmfwio.py +0 -0
  333. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/gateio.py +0 -0
  334. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/gemini.py +0 -0
  335. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/hashkey.py +0 -0
  336. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/hitbtc.py +0 -0
  337. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/huobi.py +0 -0
  338. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/huobijp.py +0 -0
  339. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/hyperliquid.py +0 -0
  340. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/idex.py +0 -0
  341. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/independentreserve.py +0 -0
  342. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/indodax.py +0 -0
  343. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/kraken.py +0 -0
  344. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/krakenfutures.py +0 -0
  345. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/kucoinfutures.py +0 -0
  346. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/kuna.py +0 -0
  347. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/latoken.py +0 -0
  348. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/lbank.py +0 -0
  349. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/luno.py +0 -0
  350. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/lykke.py +0 -0
  351. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/mercado.py +0 -0
  352. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/myokx.py +0 -0
  353. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/ndax.py +0 -0
  354. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/novadax.py +0 -0
  355. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/oceanex.py +0 -0
  356. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/okcoin.py +0 -0
  357. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/okx.py +0 -0
  358. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/oxfun.py +0 -0
  359. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/p2b.py +0 -0
  360. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/paymium.py +0 -0
  361. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/phemex.py +0 -0
  362. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/poloniex.py +0 -0
  363. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/poloniexfutures.py +0 -0
  364. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/alpaca.py +0 -0
  365. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/ascendex.py +0 -0
  366. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bequant.py +0 -0
  367. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/binancecoinm.py +0 -0
  368. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/binanceus.py +0 -0
  369. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/binanceusdm.py +0 -0
  370. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bingx.py +0 -0
  371. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitcoincom.py +0 -0
  372. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitfinex.py +0 -0
  373. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitfinex1.py +0 -0
  374. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitget.py +0 -0
  375. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bithumb.py +0 -0
  376. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitmart.py +0 -0
  377. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitmex.py +0 -0
  378. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitopro.py +0 -0
  379. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitpanda.py +0 -0
  380. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitrue.py +0 -0
  381. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitstamp.py +0 -0
  382. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bitvavo.py +0 -0
  383. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/blockchaincom.py +0 -0
  384. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/bybit.py +0 -0
  385. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/cex.py +0 -0
  386. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinbase.py +0 -0
  387. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinbaseadvanced.py +0 -0
  388. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinbaseexchange.py +0 -0
  389. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinbaseinternational.py +0 -0
  390. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coincatch.py +0 -0
  391. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coincheck.py +0 -0
  392. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/coinone.py +0 -0
  393. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/cryptocom.py +0 -0
  394. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/currencycom.py +0 -0
  395. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/defx.py +0 -0
  396. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/deribit.py +0 -0
  397. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/exmo.py +0 -0
  398. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/gate.py +0 -0
  399. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/gateio.py +0 -0
  400. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/gemini.py +0 -0
  401. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/hashkey.py +0 -0
  402. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/hitbtc.py +0 -0
  403. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/hollaex.py +0 -0
  404. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/htx.py +0 -0
  405. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/huobi.py +0 -0
  406. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/huobijp.py +0 -0
  407. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/hyperliquid.py +0 -0
  408. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/idex.py +0 -0
  409. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/independentreserve.py +0 -0
  410. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/kraken.py +0 -0
  411. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/krakenfutures.py +0 -0
  412. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/kucoin.py +0 -0
  413. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/kucoinfutures.py +0 -0
  414. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/lbank.py +0 -0
  415. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/luno.py +0 -0
  416. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/mexc.py +0 -0
  417. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/myokx.py +0 -0
  418. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/ndax.py +0 -0
  419. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/okcoin.py +0 -0
  420. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/okx.py +0 -0
  421. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/onetrading.py +0 -0
  422. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/oxfun.py +0 -0
  423. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/p2b.py +0 -0
  424. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/paradex.py +0 -0
  425. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/phemex.py +0 -0
  426. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/poloniex.py +0 -0
  427. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/poloniexfutures.py +0 -0
  428. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/probit.py +0 -0
  429. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/upbit.py +0 -0
  430. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/vertex.py +0 -0
  431. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/wazirx.py +0 -0
  432. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/whitebit.py +0 -0
  433. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/woo.py +0 -0
  434. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/woofipro.py +0 -0
  435. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/pro/xt.py +0 -0
  436. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/__init__.py +0 -0
  437. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  438. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  439. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  440. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  441. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  442. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  443. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  444. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  445. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  446. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  447. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  448. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  449. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  450. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  451. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  452. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  453. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  454. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  455. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  456. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  457. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  458. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  459. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  460. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  461. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  462. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  463. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  464. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  465. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  466. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  467. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  468. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  469. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  470. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  471. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  472. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  473. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  474. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  475. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  476. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  477. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  478. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  479. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  480. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  481. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  482. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  483. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  484. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  485. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  486. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  487. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  488. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  489. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  490. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  491. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  492. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  493. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  494. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  495. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  496. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  497. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  498. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  499. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  500. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  501. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  502. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  503. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  504. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  505. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  506. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  507. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  508. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  509. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  510. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  511. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/__init__.py +0 -0
  512. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  513. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  514. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  515. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/common.py +0 -0
  516. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  517. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/grammar.py +0 -0
  518. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  519. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/indenter.py +0 -0
  520. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/lark.py +0 -0
  521. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/lexer.py +0 -0
  522. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  523. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  524. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  525. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  526. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  527. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  528. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  529. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  530. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  531. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  532. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  533. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  534. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  535. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  536. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/py.typed +0 -0
  537. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  538. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  539. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  540. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  541. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  542. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tree.py +0 -0
  543. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  544. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  545. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/utils.py +0 -0
  546. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/lark/visitors.py +0 -0
  547. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  548. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  549. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  550. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  551. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  552. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  553. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  554. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  555. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  556. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  557. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  558. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  559. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  560. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  561. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  562. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  563. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  564. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  565. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  566. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  567. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  568. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  569. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  570. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  571. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  572. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  573. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  574. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  575. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  576. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  577. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  578. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  579. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  580. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  581. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  582. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  583. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  584. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  585. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  586. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  587. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  588. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  589. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  590. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  591. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  592. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  593. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  594. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  595. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/common.py +0 -0
  596. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/constants.py +0 -0
  597. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  598. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  599. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  600. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  601. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  602. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  603. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  604. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  605. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  606. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  607. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  608. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  609. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  610. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  611. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  612. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  613. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  614. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  615. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  616. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  617. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  618. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  619. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  620. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  621. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  622. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  623. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  624. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  625. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  626. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  627. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  628. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  629. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  630. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  631. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  632. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  633. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  634. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  635. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  636. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  637. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  638. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  639. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  640. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  641. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  642. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  643. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  644. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  645. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  646. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  647. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  648. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  649. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  650. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/_version.py +0 -0
  651. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  652. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  653. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  654. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  655. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  656. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  657. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  658. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  659. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/toolz/utils.py +0 -0
  660. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  661. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  662. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/test/__init__.py +0 -0
  663. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/test/tests_helpers.py +0 -0
  664. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/test/tests_init.py +0 -0
  665. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/timex.py +0 -0
  666. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/tokocrypto.py +0 -0
  667. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/tradeogre.py +0 -0
  668. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/upbit.py +0 -0
  669. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/woo.py +0 -0
  670. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt/woofipro.py +0 -0
  671. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt.egg-info/SOURCES.txt +0 -0
  672. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt.egg-info/dependency_links.txt +0 -0
  673. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt.egg-info/requires.txt +0 -0
  674. {ccxt-4.4.50 → ccxt-4.4.52}/ccxt.egg-info/top_level.txt +0 -0
  675. {ccxt-4.4.50 → ccxt-4.4.52}/setup.cfg +0 -0
  676. {ccxt-4.4.50 → ccxt-4.4.52}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.50
3
+ Version: 4.4.52
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
@@ -12,7 +12,6 @@ Project-URL: Discord, https://discord.gg/ccxt
12
12
  Project-URL: Twitter, https://twitter.com/ccxt_official
13
13
  Project-URL: Funding, https://opencollective.com/ccxt
14
14
  Keywords: algorithmic,algotrading,altcoin,altcoins,api,arbitrage,real-time,realtime,backtest,backtesting,bitcoin,bot,btc,cny,coin,coins,crypto,cryptocurrency,crypto currency,crypto market,currency,currencies,darkcoin,dash,digital currency,doge,dogecoin,e-commerce,etc,eth,ether,ethereum,exchange,exchanges,eur,framework,invest,investing,investor,library,light,litecoin,ltc,market,market data,markets,merchandise,merchant,minimal,ohlcv,order,orderbook,order book,price,price data,pricefeed,private,public,ripple,strategy,ticker,tickers,toolkit,trade,trader,trading,usd,volume,websocket,websockets,web socket,web sockets,ws,xbt,xrp,zec,zerocoin
15
- Platform: UNKNOWN
16
15
  Classifier: Development Status :: 4 - Beta
17
16
  Classifier: Intended Audience :: Developers
18
17
  Classifier: Intended Audience :: Financial and Insurance Industry
@@ -60,6 +59,9 @@ Current feature list:
60
59
 
61
60
  ## Sponsored Promotion
62
61
 
62
+ [![Gate-3rd-Trading-Carnival](https://github.com/user-attachments/assets/6cbb4055-97a8-4985-8c55-0056b4a8612c)](https://www.gate.io/activities/ccxt-trading-competition)
63
+
64
+
63
65
  ## See Also
64
66
 
65
67
  - <sub>[![TabTrader](https://user-images.githubusercontent.com/1294454/66755907-9c3e8880-eea1-11e9-846e-0bff349ceb87.png)](https://tab-trader.com/?utm_source=ccxt)</sub> **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** – trading on all exchanges in one app. Available on **[Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt)** and **[iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8)**!
@@ -265,13 +267,13 @@ console.log(version, Object.keys(exchanges));
265
267
 
266
268
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
267
269
 
268
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.50/dist/ccxt.browser.min.js
269
- * unpkg: https://unpkg.com/ccxt@4.4.50/dist/ccxt.browser.min.js
270
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js
271
+ * unpkg: https://unpkg.com/ccxt@4.4.52/dist/ccxt.browser.min.js
270
272
 
271
273
  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.
272
274
 
273
275
  ```HTML
274
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.50/dist/ccxt.browser.min.js"></script>
276
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.52/dist/ccxt.browser.min.js"></script>
275
277
  ```
276
278
 
277
279
  Creates a global `ccxt` object:
@@ -631,5 +633,3 @@ Thank you!
631
633
  ## Contact Us
632
634
 
633
635
  For business inquiries: info@ccxt.trade
634
-
635
-
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.50'
25
+ __version__ = '4.4.52'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -445,7 +445,7 @@ class alpaca(Exchange, ImplicitAPI):
445
445
  # "status": "active",
446
446
  # "tradable": True,
447
447
  # "marginable": False,
448
- # "maintenance_margin_requirement": 100,
448
+ # "maintenance_margin_requirement": 101,
449
449
  # "shortable": False,
450
450
  # "easy_to_borrow": False,
451
451
  # "fractionable": True,
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.50'
7
+ __version__ = '4.4.52'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -445,7 +445,7 @@ class alpaca(Exchange, ImplicitAPI):
445
445
  # "status": "active",
446
446
  # "tradable": True,
447
447
  # "marginable": False,
448
- # "maintenance_margin_requirement": 100,
448
+ # "maintenance_margin_requirement": 101,
449
449
  # "shortable": False,
450
450
  # "easy_to_borrow": False,
451
451
  # "fractionable": True,
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.50'
5
+ __version__ = '4.4.52'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1600,7 +1600,7 @@ class binance(Exchange, ImplicitAPI):
1600
1600
  'triggerDirection': False,
1601
1601
  'stopLossPrice': True,
1602
1602
  'takeProfitPrice': True,
1603
- 'attachedStopLossTakeProfit': None, # not supported
1603
+ 'attachedStopLossTakeProfit': None,
1604
1604
  'timeInForce': {
1605
1605
  'IOC': True,
1606
1606
  'FOK': True,
@@ -1609,12 +1609,16 @@ class binance(Exchange, ImplicitAPI):
1609
1609
  },
1610
1610
  'hedged': True,
1611
1611
  'leverage': False,
1612
- 'marketBuyRequiresPrice': False,
1613
1612
  'marketBuyByCost': True,
1614
- # exchange-supported features
1615
- 'selfTradePrevention': True, # todo
1616
- 'trailing': True,
1617
- 'iceberg': True, # todo implementation
1613
+ 'marketBuyRequiresPrice': False,
1614
+ 'selfTradePrevention': {
1615
+ 'expire_maker': True,
1616
+ 'expire_taker': True,
1617
+ 'expire_both': True,
1618
+ 'none': True,
1619
+ },
1620
+ 'trailing': False, # todo: self is different from standard trailing https://github.com/binance/binance-spot-api-docs/blob/master/faqs/trailing-stop-faq.md
1621
+ 'icebergAmount': True,
1618
1622
  },
1619
1623
  'createOrders': None,
1620
1624
  'fetchMyTrades': {
@@ -1655,7 +1659,7 @@ class binance(Exchange, ImplicitAPI):
1655
1659
  'limit': 1000,
1656
1660
  },
1657
1661
  },
1658
- 'default': {
1662
+ 'forDerivatives': {
1659
1663
  'sandbox': True,
1660
1664
  'createOrder': {
1661
1665
  'marginMode': False,
@@ -1727,18 +1731,18 @@ class binance(Exchange, ImplicitAPI):
1727
1731
  },
1728
1732
  'swap': {
1729
1733
  'linear': {
1730
- 'extends': 'default',
1734
+ 'extends': 'forDerivatives',
1731
1735
  },
1732
1736
  'inverse': {
1733
- 'extends': 'default',
1737
+ 'extends': 'forDerivatives',
1734
1738
  },
1735
1739
  },
1736
1740
  'future': {
1737
1741
  'linear': {
1738
- 'extends': 'default',
1742
+ 'extends': 'forDerivatives',
1739
1743
  },
1740
1744
  'inverse': {
1741
- 'extends': 'default',
1745
+ 'extends': 'forDerivatives',
1742
1746
  },
1743
1747
  },
1744
1748
  },
@@ -4402,12 +4406,11 @@ class binance(Exchange, ImplicitAPI):
4402
4406
  type = 'spot' if (timestamp is None) else 'swap'
4403
4407
  marketId = self.safe_string(entry, 'symbol')
4404
4408
  market = self.safe_market(marketId, market, None, type)
4405
- price = self.safe_number(entry, 'price')
4406
4409
  return {
4407
4410
  'symbol': market['symbol'],
4408
4411
  'timestamp': timestamp,
4409
4412
  'datetime': self.iso8601(timestamp),
4410
- 'price': price,
4413
+ 'price': self.safe_number_omit_zero(entry, 'price'),
4411
4414
  'side': None,
4412
4415
  'info': entry,
4413
4416
  }
@@ -6022,7 +6025,7 @@ class binance(Exchange, ImplicitAPI):
6022
6025
  """
6023
6026
  create a trade order
6024
6027
 
6025
- https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#new-order-trade
6028
+ https://developers.binance.com/docs/binance-spot-api-docs/rest-api/trading-endpoints#new-order-trade
6026
6029
  https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#test-new-order-trade
6027
6030
  https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order
6028
6031
  https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/New-Order
@@ -6051,6 +6054,8 @@ class binance(Exchange, ImplicitAPI):
6051
6054
  :param float [params.stopLossPrice]: the price that a stop loss order is triggered at
6052
6055
  :param float [params.takeProfitPrice]: the price that a take profit order is triggered at
6053
6056
  :param boolean [params.portfolioMargin]: set to True if you would like to create an order in a portfolio margin account
6057
+ :param str [params.selfTradePrevention]: set unified value for stp(see .features for available values)
6058
+ :param float [params.icebergAmount]: set iceberg amount for limit orders
6054
6059
  :param str [params.stopLossOrTakeProfit]: 'stopLoss' or 'takeProfit', required for spot trailing orders
6055
6060
  :param str [params.positionSide]: *swap and portfolio margin only* "BOTH" for one-way mode, "LONG" for buy side of hedged mode, "SHORT" for sell side of hedged mode
6056
6061
  :param bool [params.hedged]: *swap and portfolio margin only* True for hedged mode, False for one way mode, default is False
@@ -6344,7 +6349,7 @@ class binance(Exchange, ImplicitAPI):
6344
6349
  if stopPrice is not None:
6345
6350
  request['stopPrice'] = self.price_to_precision(symbol, stopPrice)
6346
6351
  if timeInForceIsRequired and (self.safe_string(params, 'timeInForce') is None) and (self.safe_string(request, 'timeInForce') is None):
6347
- request['timeInForce'] = self.options['defaultTimeInForce'] # 'GTC' = Good To Cancel(default), 'IOC' = Immediate Or Cancel
6352
+ request['timeInForce'] = self.safe_string(self.options, 'defaultTimeInForce') # 'GTC' = Good To Cancel(default), 'IOC' = Immediate Or Cancel
6348
6353
  if not isPortfolioMargin and market['contract'] and postOnly:
6349
6354
  request['timeInForce'] = 'GTX'
6350
6355
  # remove timeInForce from params because PO is only used by self.is_post_only and it's not a valid value for Binance
@@ -6356,7 +6361,17 @@ class binance(Exchange, ImplicitAPI):
6356
6361
  params = self.omit(params, 'reduceOnly')
6357
6362
  side = 'sell' if (side == 'buy') else 'buy'
6358
6363
  request['positionSide'] = 'LONG' if (side == 'buy') else 'SHORT'
6359
- requestParams = self.omit(params, ['type', 'newClientOrderId', 'clientOrderId', 'postOnly', 'stopLossPrice', 'takeProfitPrice', 'stopPrice', 'triggerPrice', 'trailingTriggerPrice', 'trailingPercent', 'quoteOrderQty', 'cost', 'test', 'hedged'])
6364
+ # unified stp
6365
+ selfTradePrevention = self.safe_string(params, 'selfTradePrevention')
6366
+ if selfTradePrevention is not None:
6367
+ if market['spot']:
6368
+ request['selfTradePreventionMode'] = selfTradePrevention.upper() # binance enums exactly match the unified ccxt enums(but needs uppercase)
6369
+ # unified iceberg
6370
+ icebergAmount = self.safe_number(params, 'icebergAmount')
6371
+ if icebergAmount is not None:
6372
+ if market['spot']:
6373
+ request['icebergQty'] = self.amount_to_precision(symbol, icebergAmount)
6374
+ requestParams = self.omit(params, ['type', 'newClientOrderId', 'clientOrderId', 'postOnly', 'stopLossPrice', 'takeProfitPrice', 'stopPrice', 'triggerPrice', 'trailingTriggerPrice', 'trailingPercent', 'quoteOrderQty', 'cost', 'test', 'hedged', 'selfTradePrevention', 'icebergAmount'])
6360
6375
  return self.extend(request, requestParams)
6361
6376
 
6362
6377
  async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
@@ -166,6 +166,9 @@ class blofin(Exchange, ImplicitAPI):
166
166
  'api': {
167
167
  'rest': 'https://openapi.blofin.com',
168
168
  },
169
+ 'test': {
170
+ 'rest': 'https://demo-trading-openapi.blofin.com',
171
+ },
169
172
  'referral': {
170
173
  'url': 'https://blofin.com/register?referral_code=f79EsS',
171
174
  'discount': 0.05,
@@ -323,6 +326,7 @@ class blofin(Exchange, ImplicitAPI):
323
326
  'attachedStopLossTakeProfit': {
324
327
  'triggerPriceType': None,
325
328
  'limit': True,
329
+ 'price': None,
326
330
  },
327
331
  'hedged': True,
328
332
  },
@@ -3767,7 +3767,7 @@ class coinex(Exchange, ImplicitAPI):
3767
3767
  'currency': self.safe_currency_code(None, currency),
3768
3768
  'network': None,
3769
3769
  'address': address,
3770
- 'tag': tag,
3770
+ 'tag': self.safe_string(depositAddress, 'memo', tag),
3771
3771
  }
3772
3772
 
3773
3773
  async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
@@ -219,7 +219,7 @@ class coinmetro(Exchange, ImplicitAPI):
219
219
  # exchange-specific options
220
220
  'options': {
221
221
  'currenciesByIdForParseMarket': None,
222
- 'currencyIdsListForParseMarket': None,
222
+ 'currencyIdsListForParseMarket': ['QRDO'],
223
223
  },
224
224
  'features': {
225
225
  'spot': {
@@ -407,7 +407,11 @@ class coinmetro(Exchange, ImplicitAPI):
407
407
  if self.safe_value(self.options, 'currenciesByIdForParseMarket') is None:
408
408
  currenciesById = self.index_by(result, 'id')
409
409
  self.options['currenciesByIdForParseMarket'] = currenciesById
410
- self.options['currencyIdsListForParseMarket'] = list(currenciesById.keys())
410
+ currentCurrencyIdsList = self.safe_list(self.options, 'currencyIdsListForParseMarket', [])
411
+ currencyIdsList = list(currenciesById.keys())
412
+ for i in range(0, len(currencyIdsList)):
413
+ currentCurrencyIdsList.append(currencyIdsList[i])
414
+ self.options['currencyIdsListForParseMarket'] = currentCurrencyIdsList
411
415
  return result
412
416
 
413
417
  async def fetch_markets(self, params={}) -> List[Market]:
@@ -506,10 +510,19 @@ class coinmetro(Exchange, ImplicitAPI):
506
510
  baseId = None
507
511
  quoteId = None
508
512
  currencyIds = self.safe_value(self.options, 'currencyIdsListForParseMarket', [])
513
+ # Bubble sort by length(longest first)
514
+ currencyIdsLength = len(currencyIds)
515
+ for i in range(0, currencyIdsLength):
516
+ for j in range(0, currencyIdsLength - i - 1):
517
+ a = currencyIds[j]
518
+ b = currencyIds[j + 1]
519
+ if len(a) < len(b):
520
+ currencyIds[j] = b
521
+ currencyIds[j + 1] = a
509
522
  for i in range(0, len(currencyIds)):
510
523
  currencyId = currencyIds[i]
511
524
  entryIndex = marketId.find(currencyId)
512
- if entryIndex != -1:
525
+ if entryIndex == 0:
513
526
  restId = marketId.replace(currencyId, '')
514
527
  if self.in_array(restId, currencyIds):
515
528
  if entryIndex == 0:
@@ -3063,7 +3063,7 @@ class deribit(Exchange, ImplicitAPI):
3063
3063
  :param int [since]: the earliest time in ms to fetch funding rate history for
3064
3064
  :param int [limit]: the maximum number of entries to retrieve
3065
3065
  :param dict [params]: extra parameters specific to the exchange API endpoint
3066
- :param int [params.end_timestamp]: fetch funding rate ending at self timestamp
3066
+ :param int [params.until]: fetch funding rate ending at self timestamp
3067
3067
  :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)
3068
3068
  :returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
3069
3069
  """
@@ -3071,17 +3071,32 @@ class deribit(Exchange, ImplicitAPI):
3071
3071
  market = self.market(symbol)
3072
3072
  paginate = False
3073
3073
  paginate, params = self.handle_option_and_params(params, 'fetchFundingRateHistory', 'paginate')
3074
+ maxEntriesPerRequest = 744 # seems exchange returns max 744 items per request
3075
+ eachItemDuration = '1h'
3074
3076
  if paginate:
3075
- return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '8h', params, 720)
3077
+ # fix for: https://github.com/ccxt/ccxt/issues/25040
3078
+ return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, eachItemDuration, self.extend(params, {'isDeribitPaginationCall': True}), maxEntriesPerRequest)
3079
+ duration = self.parse_timeframe(eachItemDuration) * 1000
3076
3080
  time = self.milliseconds()
3077
3081
  month = 30 * 24 * 60 * 60 * 1000
3078
3082
  if since is None:
3079
3083
  since = time - month
3084
+ else:
3085
+ time = since + month
3080
3086
  request: dict = {
3081
3087
  'instrument_name': market['id'],
3082
3088
  'start_timestamp': since - 1,
3083
- 'end_timestamp': time,
3084
3089
  }
3090
+ until = self.safe_integer_2(params, 'until', 'end_timestamp')
3091
+ if until is not None:
3092
+ params = self.omit(params, ['until'])
3093
+ request['end_timestamp'] = until
3094
+ else:
3095
+ request['end_timestamp'] = time
3096
+ if 'isDeribitPaginationCall' in params:
3097
+ params = self.omit(params, 'isDeribitPaginationCall')
3098
+ maxUntil = self.sum(since, limit * duration)
3099
+ request['end_timestamp'] = min(request['end_timestamp'], maxUntil)
3085
3100
  response = await self.publicGetGetFundingRateHistory(self.extend(request, params))
3086
3101
  #
3087
3102
  # {
@@ -1792,7 +1792,7 @@ class gate(Exchange, ImplicitAPI):
1792
1792
  active = listed and tradeEnabled and withdrawEnabled and depositEnabled
1793
1793
  if self.safe_value(result, code) is None:
1794
1794
  result[code] = {
1795
- 'id': code.lower(),
1795
+ 'id': currency,
1796
1796
  'code': code,
1797
1797
  'info': None,
1798
1798
  'name': None,
@@ -1912,13 +1912,14 @@ class hollaex(Exchange, ImplicitAPI):
1912
1912
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1913
1913
 
1914
1914
  def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1915
+ # {"message": "Invalid token"}
1915
1916
  if response is None:
1916
1917
  return None
1917
1918
  if (code >= 400) and (code <= 503):
1918
1919
  #
1919
1920
  # {"message": "Invalid token"}
1920
1921
  #
1921
- # different errors return the same code eg:
1922
+ # different errors return the same code eg
1922
1923
  #
1923
1924
  # {"message":"Error 1001 - Order rejected. Order could not be submitted order was set to a post only order."}
1924
1925
  #
@@ -6992,10 +6992,12 @@ class htx(Exchange, ImplicitAPI):
6992
6992
  'AccessKeyId': self.apiKey,
6993
6993
  'Timestamp': timestamp,
6994
6994
  }
6995
- if method != 'POST':
6996
- request = self.extend(request, query)
6995
+ # sorting needs such flow exactly, before urlencoding(more at: https://github.com/ccxt/ccxt/issues/24930 )
6997
6996
  request = self.keysort(request)
6998
- auth = self.urlencode(request)
6997
+ if method != 'POST':
6998
+ sortedQuery = self.keysort(query)
6999
+ request = self.extend(request, sortedQuery)
7000
+ auth = self.urlencode(request).replace('%2c', '%2C') # in c# it manually needs to be uppercased
6999
7001
  # unfortunately, PHP demands double quotes for the escaped newline symbol
7000
7002
  payload = "\n".join([method, hostname, url, auth]) # eslint-disable-line quotes
7001
7003
  signature = self.hmac(self.encode(payload), self.encode(self.secret), hashlib.sha256, 'base64')
@@ -3101,14 +3101,14 @@ class kucoin(Exchange, ImplicitAPI):
3101
3101
  if symbol is not None:
3102
3102
  market = self.market(symbol)
3103
3103
  request['symbol'] = market['id']
3104
- if limit is not None:
3105
- request['pageSize'] = limit
3106
3104
  method = self.options['fetchMyTradesMethod']
3107
3105
  parseResponseData = False
3108
3106
  response = None
3109
3107
  request, params = self.handle_until_option('endAt', request, params)
3110
3108
  if hf:
3111
3109
  # does not return trades earlier than 2019-02-18T00:00:00Z
3110
+ if limit is not None:
3111
+ request['limit'] = limit
3112
3112
  if since is not None:
3113
3113
  # only returns trades up to one week after the since param
3114
3114
  request['startAt'] = since
@@ -2235,7 +2235,7 @@ class mexc(Exchange, ImplicitAPI):
2235
2235
  :param bool [params.postOnly]: if True, the order will only be posted if it will be a maker order
2236
2236
  :param bool [params.reduceOnly]: *contract only* indicates if self order is to reduce the size of a position
2237
2237
  :param bool [params.hedged]: *swap only* True for hedged mode, False for one way mode, default is False
2238
-
2238
+ :param str [params.timeInForce]: 'IOC' or 'FOK', default is 'GTC'
2239
2239
  EXCHANGE SPECIFIC PARAMETERS
2240
2240
  :param int [params.leverage]: *contract only* leverage is necessary on isolated margin
2241
2241
  :param long [params.positionId]: *contract only* it is recommended to hasattr(self, fill) parameter when closing a position
@@ -2290,6 +2290,13 @@ class mexc(Exchange, ImplicitAPI):
2290
2290
  postOnly, params = self.handle_post_only(type == 'market', type == 'LIMIT_MAKER', params)
2291
2291
  if postOnly:
2292
2292
  request['type'] = 'LIMIT_MAKER'
2293
+ tif = self.safe_string(params, 'timeInForce')
2294
+ if tif is not None:
2295
+ params = self.omit(params, 'timeInForce')
2296
+ if tif == 'IOC':
2297
+ request['type'] = 'IMMEDIATE_OR_CANCEL'
2298
+ elif tif == 'FOK':
2299
+ request['type'] = 'FILL_OR_KILL'
2293
2300
  return self.extend(request, params)
2294
2301
 
2295
2302
  async def create_spot_order(self, market, type, side, amount, price=None, marginMode=None, params={}):
@@ -5709,12 +5716,20 @@ class mexc(Exchange, ImplicitAPI):
5709
5716
  url = self.urls['api'][section][access] + '/' + path
5710
5717
  else:
5711
5718
  url = self.urls['api'][section][access] + '/api/' + self.version + '/' + path
5712
- paramsEncoded = ''
5719
+ urlParams = params
5713
5720
  if access == 'private':
5714
- params['timestamp'] = self.nonce()
5715
- params['recvWindow'] = self.safe_integer(self.options, 'recvWindow', 5000)
5716
- if params:
5717
- paramsEncoded = self.urlencode(params)
5721
+ if section == 'broker' and ((method == 'POST') or (method == 'PUT') or (method == 'DELETE')):
5722
+ urlParams = {
5723
+ 'timestamp': self.nonce(),
5724
+ 'recvWindow': self.safe_integer(self.options, 'recvWindow', 5000),
5725
+ }
5726
+ body = self.json(params)
5727
+ else:
5728
+ urlParams['timestamp'] = self.nonce()
5729
+ urlParams['recvWindow'] = self.safe_integer(self.options, 'recvWindow', 5000)
5730
+ paramsEncoded = ''
5731
+ if urlParams:
5732
+ paramsEncoded = self.urlencode(urlParams)
5718
5733
  url += '?' + paramsEncoded
5719
5734
  if access == 'private':
5720
5735
  self.check_required_credentials()
@@ -1200,7 +1200,7 @@ class onetrading(Exchange, ImplicitAPI):
1200
1200
  https://docs.onetrading.com/#create-order
1201
1201
 
1202
1202
  :param str symbol: unified symbol of the market to create an order in
1203
- :param str type: 'market' or 'limit'
1203
+ :param str type: 'limit'
1204
1204
  :param str side: 'buy' or 'sell'
1205
1205
  :param float amount: how much of currency you want to trade in units of base currency
1206
1206
  :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
@@ -943,7 +943,7 @@ class paradex(Exchange, ImplicitAPI):
943
943
  #
944
944
  # {
945
945
  # "symbol": "BTC-USD-PERP",
946
- # "oracle_price": "68465.17449906",
946
+ # "oracle_price": "68465.17449904",
947
947
  # "mark_price": "68465.17449906",
948
948
  # "last_traded_price": "68495.1",
949
949
  # "bid": "68477.6",
@@ -990,6 +990,7 @@ class probit(Exchange, ImplicitAPI):
990
990
  :param int [since]: timestamp in ms of the earliest candle to fetch
991
991
  :param int [limit]: the maximum amount of candles to fetch
992
992
  :param dict [params]: extra parameters specific to the exchange API endpoint
993
+ :param str [params.until]: timestamp in ms of the earliest candle to fetch
993
994
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
994
995
  """
995
996
  await self.load_markets()
@@ -1005,18 +1006,19 @@ class probit(Exchange, ImplicitAPI):
1005
1006
  'limit': requestLimit, # max 1000
1006
1007
  }
1007
1008
  now = self.milliseconds()
1008
- duration = self.parse_timeframe(timeframe)
1009
+ until = self.safe_integer(params, 'until')
1010
+ durationMilliseconds = self.parse_timeframe(timeframe) * 1000
1009
1011
  startTime = since
1010
- endTime = now
1012
+ endTime = until - durationMilliseconds if (until is not None) else now
1011
1013
  if since is None:
1012
1014
  if limit is None:
1013
1015
  limit = requestLimit
1014
- startTime = now - limit * duration * 1000
1016
+ startLimit = limit - 1
1017
+ startTime = endTime - startLimit * durationMilliseconds
1015
1018
  else:
1016
- if limit is None:
1017
- endTime = now
1018
- else:
1019
- endTime = self.sum(since, self.sum(limit, 1) * duration * 1000)
1019
+ if limit is not None:
1020
+ endByLimit = self.sum(since, limit * durationMilliseconds)
1021
+ endTime = min(endTime, endByLimit)
1020
1022
  startTimeNormalized = self.normalize_ohlcv_timestamp(startTime, timeframe)
1021
1023
  endTimeNormalized = self.normalize_ohlcv_timestamp(endTime, timeframe, True)
1022
1024
  request['start_time'] = startTimeNormalized
@@ -330,6 +330,69 @@ class vertex(Exchange, ImplicitAPI):
330
330
  'timeDifference': 0, # the difference between system clock and exchange server clock
331
331
  'brokerId': 5930043274845996,
332
332
  },
333
+ 'features': {
334
+ 'default': {
335
+ 'sandbox': True,
336
+ 'createOrder': {
337
+ 'marginMode': False,
338
+ 'triggerPrice': True, # todo
339
+ 'triggerDirection': False,
340
+ 'triggerPriceType': None,
341
+ 'stopLossPrice': True, # todo
342
+ 'takeProfitPrice': True, # todo
343
+ 'attachedStopLossTakeProfit': None,
344
+ 'timeInForce': {
345
+ 'IOC': False,
346
+ 'FOK': False,
347
+ 'PO': True,
348
+ 'GTD': True,
349
+ },
350
+ 'hedged': False,
351
+ 'trailing': False,
352
+ 'leverage': False,
353
+ 'marketBuyByCost': True, # todo
354
+ 'marketBuyRequiresPrice': True, # todo fix implementation
355
+ 'selfTradePrevention': False,
356
+ 'iceberg': False,
357
+ },
358
+ 'createOrders': None,
359
+ 'fetchMyTrades': {
360
+ 'marginMode': False,
361
+ 'limit': 500,
362
+ 'daysBack': 100000, # todo
363
+ 'untilDays': None,
364
+ },
365
+ 'fetchOrder': {
366
+ 'marginMode': False,
367
+ 'trigger': False,
368
+ 'trailing': False,
369
+ },
370
+ 'fetchOpenOrders': {
371
+ 'marginMode': False,
372
+ 'limit': 500,
373
+ 'trigger': True,
374
+ 'trailing': False,
375
+ },
376
+ 'fetchOrders': None, # todo, only for trigger
377
+ 'fetchClosedOrders': None, # todo through fetchOrders
378
+ 'fetchOHLCV': {
379
+ 'limit': 1000,
380
+ },
381
+ },
382
+ 'spot': {
383
+ 'extends': 'default',
384
+ },
385
+ 'swap': {
386
+ 'linear': {
387
+ 'extends': 'default',
388
+ },
389
+ 'inverse': None,
390
+ },
391
+ 'future': {
392
+ 'linear': None,
393
+ 'inverse': None,
394
+ },
395
+ },
333
396
  })
334
397
 
335
398
  def set_sandbox_mode(self, enabled):
@@ -2104,7 +2167,7 @@ class vertex(Exchange, ImplicitAPI):
2104
2167
  # "product_id": 1,
2105
2168
  # "orders": [
2106
2169
  # {
2107
- # "product_id": 1,
2170
+ # "product_id": 2,
2108
2171
  # "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000",
2109
2172
  # "price_x18": "1000000000000000000",
2110
2173
  # "amount": "1000000000000000000",
@@ -2113,7 +2176,7 @@ class vertex(Exchange, ImplicitAPI):
2113
2176
  # "order_type": "default",
2114
2177
  # "unfilled_amount": "1000000000000000000",
2115
2178
  # "digest": "0x0000000000000000000000000000000000000000000000000000000000000000",
2116
- # "placed_at": 1682437739,
2179
+ # "placed_at": 1682437737,
2117
2180
  # "order_type": "ioc"
2118
2181
  # }
2119
2182
  # ]