ccxt 4.4.48__tar.gz → 4.4.49__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.48/ccxt.egg-info → ccxt-4.4.49}/PKG-INFO +4 -4
  2. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bingx.py +73 -29
  6. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitget.py +12 -10
  7. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinsph.py +17 -8
  8. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/deribit.py +82 -0
  9. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/digifinex.py +125 -10
  10. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/ellipx.py +61 -0
  11. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/exmo.py +58 -0
  12. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/hitbtc.py +99 -0
  13. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/hollaex.py +73 -0
  14. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/huobijp.py +73 -0
  15. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/hyperliquid.py +22 -1
  16. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/idex.py +71 -0
  17. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/independentreserve.py +64 -0
  18. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/indodax.py +61 -0
  19. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/kuna.py +60 -1
  20. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/latoken.py +64 -0
  21. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/lbank.py +70 -0
  22. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/luno.py +73 -0
  23. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/lykke.py +64 -0
  24. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/mercado.py +65 -0
  25. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/mexc.py +1 -1
  26. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/myokx.py +10 -0
  27. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/ndax.py +71 -0
  28. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/novadax.py +74 -0
  29. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/oceanex.py +69 -0
  30. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/okcoin.py +79 -2
  31. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/onetrading.py +66 -0
  32. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/oxfun.py +66 -0
  33. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/p2b.py +63 -1
  34. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/paradex.py +68 -0
  35. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/exchange.py +1 -1
  36. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bingx.py +73 -29
  37. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitget.py +12 -10
  38. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinsph.py +17 -8
  39. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/deribit.py +82 -0
  40. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/digifinex.py +125 -10
  41. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/ellipx.py +61 -0
  42. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/exmo.py +58 -0
  43. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/hitbtc.py +99 -0
  44. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/hollaex.py +73 -0
  45. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/huobijp.py +73 -0
  46. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/hyperliquid.py +22 -1
  47. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/idex.py +71 -0
  48. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/independentreserve.py +64 -0
  49. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/indodax.py +61 -0
  50. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/kuna.py +60 -1
  51. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/latoken.py +64 -0
  52. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/lbank.py +70 -0
  53. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/luno.py +73 -0
  54. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/lykke.py +64 -0
  55. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/mercado.py +65 -0
  56. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/mexc.py +1 -1
  57. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/myokx.py +10 -0
  58. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/ndax.py +71 -0
  59. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/novadax.py +74 -0
  60. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/oceanex.py +69 -0
  61. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/okcoin.py +79 -2
  62. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/onetrading.py +66 -0
  63. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/oxfun.py +66 -0
  64. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/p2b.py +63 -1
  65. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/paradex.py +68 -0
  66. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/__init__.py +1 -1
  67. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitmart.py +5 -0
  68. {ccxt-4.4.48 → ccxt-4.4.49/ccxt.egg-info}/PKG-INFO +4 -4
  69. {ccxt-4.4.48 → ccxt-4.4.49}/package.json +2 -2
  70. {ccxt-4.4.48 → ccxt-4.4.49}/LICENSE.txt +0 -0
  71. {ccxt-4.4.48 → ccxt-4.4.49}/MANIFEST.in +0 -0
  72. {ccxt-4.4.48 → ccxt-4.4.49}/README.rst +0 -0
  73. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/__init__.py +0 -0
  74. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/ace.py +0 -0
  75. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/alpaca.py +0 -0
  76. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/ascendex.py +0 -0
  77. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bequant.py +0 -0
  78. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bigone.py +0 -0
  79. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/binance.py +0 -0
  80. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/binancecoinm.py +0 -0
  81. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/binanceus.py +0 -0
  82. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/binanceusdm.py +0 -0
  83. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bingx.py +0 -0
  84. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bit2c.py +0 -0
  85. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitbank.py +0 -0
  86. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitbns.py +0 -0
  87. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitcoincom.py +0 -0
  88. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitfinex.py +0 -0
  89. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitfinex1.py +0 -0
  90. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitflyer.py +0 -0
  91. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitget.py +0 -0
  92. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bithumb.py +0 -0
  93. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitmart.py +0 -0
  94. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitmex.py +0 -0
  95. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitopro.py +0 -0
  96. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitpanda.py +0 -0
  97. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitrue.py +0 -0
  98. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitso.py +0 -0
  99. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitstamp.py +0 -0
  100. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitteam.py +0 -0
  101. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bitvavo.py +0 -0
  102. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bl3p.py +0 -0
  103. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/blockchaincom.py +0 -0
  104. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/blofin.py +0 -0
  105. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/btcalpha.py +0 -0
  106. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/btcbox.py +0 -0
  107. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/btcmarkets.py +0 -0
  108. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/btcturk.py +0 -0
  109. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/bybit.py +0 -0
  110. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/cex.py +0 -0
  111. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinbase.py +0 -0
  112. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinbaseadvanced.py +0 -0
  113. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinbaseexchange.py +0 -0
  114. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinbaseinternational.py +0 -0
  115. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coincatch.py +0 -0
  116. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coincheck.py +0 -0
  117. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinex.py +0 -0
  118. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinlist.py +0 -0
  119. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinmate.py +0 -0
  120. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinmetro.py +0 -0
  121. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinone.py +0 -0
  122. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinsph.py +0 -0
  123. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/coinspot.py +0 -0
  124. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/cryptocom.py +0 -0
  125. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/currencycom.py +0 -0
  126. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/defx.py +0 -0
  127. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/delta.py +0 -0
  128. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/deribit.py +0 -0
  129. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/digifinex.py +0 -0
  130. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/ellipx.py +0 -0
  131. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/exmo.py +0 -0
  132. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/fmfwio.py +0 -0
  133. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/gate.py +0 -0
  134. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/gateio.py +0 -0
  135. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/gemini.py +0 -0
  136. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/hashkey.py +0 -0
  137. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/hitbtc.py +0 -0
  138. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/hollaex.py +0 -0
  139. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/htx.py +0 -0
  140. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/huobi.py +0 -0
  141. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/huobijp.py +0 -0
  142. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/hyperliquid.py +0 -0
  143. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/idex.py +0 -0
  144. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/independentreserve.py +0 -0
  145. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/indodax.py +0 -0
  146. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/kraken.py +0 -0
  147. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/krakenfutures.py +0 -0
  148. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/kucoin.py +0 -0
  149. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/kucoinfutures.py +0 -0
  150. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/kuna.py +0 -0
  151. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/latoken.py +0 -0
  152. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/lbank.py +0 -0
  153. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/luno.py +0 -0
  154. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/lykke.py +0 -0
  155. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/mercado.py +0 -0
  156. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/mexc.py +0 -0
  157. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/myokx.py +0 -0
  158. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/ndax.py +0 -0
  159. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/novadax.py +0 -0
  160. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/oceanex.py +0 -0
  161. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/okcoin.py +0 -0
  162. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/okx.py +0 -0
  163. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/onetrading.py +0 -0
  164. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/oxfun.py +0 -0
  165. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/p2b.py +0 -0
  166. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/paradex.py +0 -0
  167. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/paymium.py +0 -0
  168. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/phemex.py +0 -0
  169. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/poloniex.py +0 -0
  170. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/poloniexfutures.py +0 -0
  171. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/probit.py +0 -0
  172. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/timex.py +0 -0
  173. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/tokocrypto.py +0 -0
  174. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/tradeogre.py +0 -0
  175. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/upbit.py +0 -0
  176. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/vertex.py +0 -0
  177. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/wavesexchange.py +0 -0
  178. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/wazirx.py +0 -0
  179. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/whitebit.py +0 -0
  180. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/woo.py +0 -0
  181. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/woofipro.py +0 -0
  182. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/xt.py +0 -0
  183. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/yobit.py +0 -0
  184. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/zaif.py +0 -0
  185. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/abstract/zonda.py +0 -0
  186. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/ace.py +0 -0
  187. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/alpaca.py +0 -0
  188. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/ascendex.py +0 -0
  189. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/ace.py +0 -0
  190. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/alpaca.py +0 -0
  191. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/ascendex.py +0 -0
  192. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/__init__.py +0 -0
  193. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/throttler.py +0 -0
  194. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/__init__.py +0 -0
  195. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  196. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/cache.py +0 -0
  197. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/client.py +0 -0
  198. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/fast_client.py +0 -0
  199. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/functions.py +0 -0
  200. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/future.py +0 -0
  201. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/order_book.py +0 -0
  202. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  203. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bequant.py +0 -0
  204. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bigone.py +0 -0
  205. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/binance.py +0 -0
  206. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/binancecoinm.py +0 -0
  207. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/binanceus.py +0 -0
  208. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/binanceusdm.py +0 -0
  209. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bit2c.py +0 -0
  210. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitbank.py +0 -0
  211. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitbns.py +0 -0
  212. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitcoincom.py +0 -0
  213. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitfinex.py +0 -0
  214. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitfinex1.py +0 -0
  215. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitflyer.py +0 -0
  216. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bithumb.py +0 -0
  217. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitmart.py +0 -0
  218. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitmex.py +0 -0
  219. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitopro.py +0 -0
  220. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitpanda.py +0 -0
  221. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitrue.py +0 -0
  222. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitso.py +0 -0
  223. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitstamp.py +0 -0
  224. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitteam.py +0 -0
  225. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bitvavo.py +0 -0
  226. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bl3p.py +0 -0
  227. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/blockchaincom.py +0 -0
  228. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/blofin.py +0 -0
  229. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/btcalpha.py +0 -0
  230. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/btcbox.py +0 -0
  231. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/btcmarkets.py +0 -0
  232. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/btcturk.py +0 -0
  233. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/bybit.py +0 -0
  234. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/cex.py +0 -0
  235. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinbase.py +0 -0
  236. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinbaseadvanced.py +0 -0
  237. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinbaseexchange.py +0 -0
  238. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinbaseinternational.py +0 -0
  239. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coincatch.py +0 -0
  240. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coincheck.py +0 -0
  241. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinex.py +0 -0
  242. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinlist.py +0 -0
  243. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinmate.py +0 -0
  244. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinmetro.py +0 -0
  245. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinone.py +0 -0
  246. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/coinspot.py +0 -0
  247. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/cryptocom.py +0 -0
  248. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/currencycom.py +0 -0
  249. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/defx.py +0 -0
  250. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/delta.py +0 -0
  251. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/fmfwio.py +0 -0
  252. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/gate.py +0 -0
  253. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/gateio.py +0 -0
  254. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/gemini.py +0 -0
  255. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/hashkey.py +0 -0
  256. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/htx.py +0 -0
  257. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/huobi.py +0 -0
  258. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/kraken.py +0 -0
  259. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/krakenfutures.py +0 -0
  260. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/kucoin.py +0 -0
  261. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/kucoinfutures.py +0 -0
  262. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/okx.py +0 -0
  263. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/paymium.py +0 -0
  264. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/phemex.py +0 -0
  265. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/poloniex.py +0 -0
  266. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/poloniexfutures.py +0 -0
  267. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/probit.py +0 -0
  268. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/timex.py +0 -0
  269. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/tokocrypto.py +0 -0
  270. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/tradeogre.py +0 -0
  271. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/upbit.py +0 -0
  272. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/vertex.py +0 -0
  273. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/wavesexchange.py +0 -0
  274. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/wazirx.py +0 -0
  275. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/whitebit.py +0 -0
  276. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/woo.py +0 -0
  277. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/woofipro.py +0 -0
  278. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/xt.py +0 -0
  279. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/yobit.py +0 -0
  280. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/zaif.py +0 -0
  281. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/async_support/zonda.py +0 -0
  282. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/__init__.py +0 -0
  283. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/decimal_to_precision.py +0 -0
  284. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/errors.py +0 -0
  285. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/precise.py +0 -0
  286. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/base/types.py +0 -0
  287. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bequant.py +0 -0
  288. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bigone.py +0 -0
  289. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/binance.py +0 -0
  290. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/binancecoinm.py +0 -0
  291. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/binanceus.py +0 -0
  292. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/binanceusdm.py +0 -0
  293. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bit2c.py +0 -0
  294. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitbank.py +0 -0
  295. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitbns.py +0 -0
  296. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitcoincom.py +0 -0
  297. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitfinex.py +0 -0
  298. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitfinex1.py +0 -0
  299. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitflyer.py +0 -0
  300. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bithumb.py +0 -0
  301. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitmart.py +0 -0
  302. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitmex.py +0 -0
  303. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitopro.py +0 -0
  304. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitpanda.py +0 -0
  305. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitrue.py +0 -0
  306. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitso.py +0 -0
  307. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitstamp.py +0 -0
  308. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitteam.py +0 -0
  309. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bitvavo.py +0 -0
  310. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bl3p.py +0 -0
  311. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/blockchaincom.py +0 -0
  312. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/blofin.py +0 -0
  313. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/btcalpha.py +0 -0
  314. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/btcbox.py +0 -0
  315. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/btcmarkets.py +0 -0
  316. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/btcturk.py +0 -0
  317. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/bybit.py +0 -0
  318. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/cex.py +0 -0
  319. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinbase.py +0 -0
  320. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinbaseadvanced.py +0 -0
  321. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinbaseexchange.py +0 -0
  322. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinbaseinternational.py +0 -0
  323. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coincatch.py +0 -0
  324. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coincheck.py +0 -0
  325. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinex.py +0 -0
  326. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinlist.py +0 -0
  327. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinmate.py +0 -0
  328. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinmetro.py +0 -0
  329. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinone.py +0 -0
  330. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/coinspot.py +0 -0
  331. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/cryptocom.py +0 -0
  332. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/currencycom.py +0 -0
  333. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/defx.py +0 -0
  334. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/delta.py +0 -0
  335. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/fmfwio.py +0 -0
  336. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/gate.py +0 -0
  337. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/gateio.py +0 -0
  338. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/gemini.py +0 -0
  339. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/hashkey.py +0 -0
  340. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/htx.py +0 -0
  341. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/huobi.py +0 -0
  342. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/kraken.py +0 -0
  343. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/krakenfutures.py +0 -0
  344. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/kucoin.py +0 -0
  345. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/kucoinfutures.py +0 -0
  346. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/okx.py +0 -0
  347. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/paymium.py +0 -0
  348. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/phemex.py +0 -0
  349. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/poloniex.py +0 -0
  350. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/poloniexfutures.py +0 -0
  351. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/alpaca.py +0 -0
  352. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/ascendex.py +0 -0
  353. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bequant.py +0 -0
  354. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/binance.py +0 -0
  355. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/binancecoinm.py +0 -0
  356. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/binanceus.py +0 -0
  357. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/binanceusdm.py +0 -0
  358. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bingx.py +0 -0
  359. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitcoincom.py +0 -0
  360. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitfinex.py +0 -0
  361. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitfinex1.py +0 -0
  362. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitget.py +0 -0
  363. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bithumb.py +0 -0
  364. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitmex.py +0 -0
  365. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitopro.py +0 -0
  366. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitpanda.py +0 -0
  367. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitrue.py +0 -0
  368. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitstamp.py +0 -0
  369. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bitvavo.py +0 -0
  370. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/blockchaincom.py +0 -0
  371. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/blofin.py +0 -0
  372. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/bybit.py +0 -0
  373. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/cex.py +0 -0
  374. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinbase.py +0 -0
  375. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinbaseadvanced.py +0 -0
  376. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinbaseexchange.py +0 -0
  377. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinbaseinternational.py +0 -0
  378. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coincatch.py +0 -0
  379. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coincheck.py +0 -0
  380. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinex.py +0 -0
  381. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/coinone.py +0 -0
  382. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/cryptocom.py +0 -0
  383. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/currencycom.py +0 -0
  384. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/defx.py +0 -0
  385. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/deribit.py +0 -0
  386. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/exmo.py +0 -0
  387. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/gate.py +0 -0
  388. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/gateio.py +0 -0
  389. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/gemini.py +0 -0
  390. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/hashkey.py +0 -0
  391. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/hitbtc.py +0 -0
  392. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/hollaex.py +0 -0
  393. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/htx.py +0 -0
  394. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/huobi.py +0 -0
  395. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/huobijp.py +0 -0
  396. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/hyperliquid.py +0 -0
  397. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/idex.py +0 -0
  398. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/independentreserve.py +0 -0
  399. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/kraken.py +0 -0
  400. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/krakenfutures.py +0 -0
  401. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/kucoin.py +0 -0
  402. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/kucoinfutures.py +0 -0
  403. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/lbank.py +0 -0
  404. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/luno.py +0 -0
  405. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/mexc.py +0 -0
  406. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/myokx.py +0 -0
  407. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/ndax.py +0 -0
  408. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/okcoin.py +0 -0
  409. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/okx.py +0 -0
  410. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/onetrading.py +0 -0
  411. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/oxfun.py +0 -0
  412. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/p2b.py +0 -0
  413. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/paradex.py +0 -0
  414. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/phemex.py +0 -0
  415. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/poloniex.py +0 -0
  416. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/poloniexfutures.py +0 -0
  417. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/probit.py +0 -0
  418. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/upbit.py +0 -0
  419. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/vertex.py +0 -0
  420. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/wazirx.py +0 -0
  421. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/whitebit.py +0 -0
  422. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/woo.py +0 -0
  423. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/woofipro.py +0 -0
  424. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/pro/xt.py +0 -0
  425. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/probit.py +0 -0
  426. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/__init__.py +0 -0
  427. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  428. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  429. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  430. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  431. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  432. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  433. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  434. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  435. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  436. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  437. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  438. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  439. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  440. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  441. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  442. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  443. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  444. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  445. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  446. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  447. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  448. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  449. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  450. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  451. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  452. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  453. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  454. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  455. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  456. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  457. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  458. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  459. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  460. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  461. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  462. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  463. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  464. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  465. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  466. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  467. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  468. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  469. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  470. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  471. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  472. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  473. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  474. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  475. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  476. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  477. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  478. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  479. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  480. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  481. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  482. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  483. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  484. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  485. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  486. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  487. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  488. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  489. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  490. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  491. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  492. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  493. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  494. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  495. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  496. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  497. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  498. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  499. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  500. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  501. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/__init__.py +0 -0
  502. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  503. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  504. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  505. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/common.py +0 -0
  506. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  507. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/grammar.py +0 -0
  508. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  509. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/indenter.py +0 -0
  510. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/lark.py +0 -0
  511. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/lexer.py +0 -0
  512. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  513. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  514. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  515. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  516. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  517. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  518. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  519. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  520. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  521. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  522. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  523. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  524. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  525. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  526. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/py.typed +0 -0
  527. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  528. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  529. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  530. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  531. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  532. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tree.py +0 -0
  533. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  534. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  535. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/utils.py +0 -0
  536. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/lark/visitors.py +0 -0
  537. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  538. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  539. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  540. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  541. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  542. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  543. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  544. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  545. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  546. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  547. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  548. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  549. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  550. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  551. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  552. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  553. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  554. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  555. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  556. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  557. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  558. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  559. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  560. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  561. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  562. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  563. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  564. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  565. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  566. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  567. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  568. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  569. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  570. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  571. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  572. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  573. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  574. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  575. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  576. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  577. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  578. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  579. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  580. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  581. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  582. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  583. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  584. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  585. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/common.py +0 -0
  586. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/constants.py +0 -0
  587. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  588. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  589. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  590. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  591. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  592. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  593. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  594. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  595. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  596. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  597. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  598. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  599. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  600. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  601. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  602. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  603. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  604. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  605. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  606. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  607. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  608. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  609. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  610. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  611. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  612. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  613. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  614. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  615. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  616. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  617. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  618. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  619. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  620. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  621. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  622. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  623. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  624. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  625. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  626. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  627. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  628. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  629. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  630. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  631. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  632. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  633. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  634. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  635. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  636. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  637. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  638. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  639. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  640. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/_version.py +0 -0
  641. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  642. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  643. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  644. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  645. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  646. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  647. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  648. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  649. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/toolz/utils.py +0 -0
  650. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  651. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  652. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/test/__init__.py +0 -0
  653. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/test/tests_async.py +0 -0
  654. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/test/tests_helpers.py +0 -0
  655. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/test/tests_init.py +0 -0
  656. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/test/tests_sync.py +0 -0
  657. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/timex.py +0 -0
  658. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/tokocrypto.py +0 -0
  659. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/tradeogre.py +0 -0
  660. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/upbit.py +0 -0
  661. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/vertex.py +0 -0
  662. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/wavesexchange.py +0 -0
  663. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/wazirx.py +0 -0
  664. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/whitebit.py +0 -0
  665. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/woo.py +0 -0
  666. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/woofipro.py +0 -0
  667. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/xt.py +0 -0
  668. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/yobit.py +0 -0
  669. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/zaif.py +0 -0
  670. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt/zonda.py +0 -0
  671. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt.egg-info/SOURCES.txt +0 -0
  672. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt.egg-info/dependency_links.txt +0 -0
  673. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt.egg-info/requires.txt +0 -0
  674. {ccxt-4.4.48 → ccxt-4.4.49}/ccxt.egg-info/top_level.txt +0 -0
  675. {ccxt-4.4.48 → ccxt-4.4.49}/setup.cfg +0 -0
  676. {ccxt-4.4.48 → ccxt-4.4.49}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.48
3
+ Version: 4.4.49
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
@@ -265,13 +265,13 @@ console.log(version, Object.keys(exchanges));
265
265
 
266
266
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
267
267
 
268
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.48/dist/ccxt.browser.min.js
269
- * unpkg: https://unpkg.com/ccxt@4.4.48/dist/ccxt.browser.min.js
268
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.49/dist/ccxt.browser.min.js
269
+ * unpkg: https://unpkg.com/ccxt@4.4.49/dist/ccxt.browser.min.js
270
270
 
271
271
  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
272
 
273
273
  ```HTML
274
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.48/dist/ccxt.browser.min.js"></script>
274
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.49/dist/ccxt.browser.min.js"></script>
275
275
  ```
276
276
 
277
277
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.48'
25
+ __version__ = '4.4.49'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.48'
7
+ __version__ = '4.4.49'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.48'
5
+ __version__ = '4.4.49'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -830,8 +830,8 @@ class bingx(Exchange, ImplicitAPI):
830
830
  # "symbols": [
831
831
  # {
832
832
  # "symbol": "GEAR-USDT",
833
- # "minQty": 735,
834
- # "maxQty": 2941177,
833
+ # "minQty": 735, # deprecated
834
+ # "maxQty": 2941177, # deprecated
835
835
  # "minNotional": 5,
836
836
  # "maxNotional": 20000,
837
837
  # "status": 1,
@@ -949,6 +949,9 @@ class bingx(Exchange, ImplicitAPI):
949
949
  isActive = True # spot active
950
950
  isInverse = None if (spot) else checkIsInverse
951
951
  isLinear = None if (spot) else checkIsLinear
952
+ minAmount = None
953
+ if not spot:
954
+ minAmount = self.safe_number_2(market, 'minQty', 'tradeMinQuantity')
952
955
  timeOnline = self.safe_integer(market, 'timeOnline')
953
956
  if timeOnline == 0:
954
957
  timeOnline = None
@@ -989,8 +992,8 @@ class bingx(Exchange, ImplicitAPI):
989
992
  'max': None,
990
993
  },
991
994
  'amount': {
992
- 'min': self.safe_number_2(market, 'minQty', 'tradeMinQuantity'),
993
- 'max': self.safe_number(market, 'maxQty'),
995
+ 'min': minAmount,
996
+ 'max': None,
994
997
  },
995
998
  'price': {
996
999
  'min': minTickSize,
@@ -1622,21 +1625,24 @@ class bingx(Exchange, ImplicitAPI):
1622
1625
  # }
1623
1626
  #
1624
1627
  data = self.safe_list(response, 'data', [])
1625
- rates = []
1626
- for i in range(0, len(data)):
1627
- entry = data[i]
1628
- marketId = self.safe_string(entry, 'symbol')
1629
- symbolInner = self.safe_symbol(marketId, market, '-', 'swap')
1630
- timestamp = self.safe_integer(entry, 'fundingTime')
1631
- rates.append({
1632
- 'info': entry,
1633
- 'symbol': symbolInner,
1634
- 'fundingRate': self.safe_number(entry, 'fundingRate'),
1635
- 'timestamp': timestamp,
1636
- 'datetime': self.iso8601(timestamp),
1637
- })
1638
- sorted = self.sort_by(rates, 'timestamp')
1639
- return self.filter_by_symbol_since_limit(sorted, market['symbol'], since, limit)
1628
+ return self.parse_funding_rate_histories(data, market, since, limit)
1629
+
1630
+ def parse_funding_rate_history(self, contract, market: Market = None):
1631
+ #
1632
+ # {
1633
+ # "symbol": "BTC-USDT",
1634
+ # "fundingRate": "0.0001",
1635
+ # "fundingTime": 1585684800000
1636
+ # }
1637
+ #
1638
+ timestamp = self.safe_integer(contract, 'fundingTime')
1639
+ return {
1640
+ 'info': contract,
1641
+ 'symbol': self.safe_symbol(self.safe_string(contract, 'symbol'), market, '-', 'swap'),
1642
+ 'fundingRate': self.safe_number(contract, 'fundingRate'),
1643
+ 'timestamp': timestamp,
1644
+ 'datetime': self.iso8601(timestamp),
1645
+ }
1640
1646
 
1641
1647
  async def fetch_open_interest(self, symbol: str, params={}):
1642
1648
  """
@@ -2275,12 +2281,13 @@ class bingx(Exchange, ImplicitAPI):
2275
2281
  else:
2276
2282
  linearSwapData = self.safe_dict(response, 'data', {})
2277
2283
  linearSwapBalance = self.safe_dict(linearSwapData, 'balance')
2278
- currencyId = self.safe_string(linearSwapBalance, 'asset')
2279
- code = self.safe_currency_code(currencyId)
2280
- account = self.account()
2281
- account['free'] = self.safe_string(linearSwapBalance, 'availableMargin')
2282
- account['used'] = self.safe_string(linearSwapBalance, 'usedMargin')
2283
- result[code] = account
2284
+ if linearSwapBalance:
2285
+ currencyId = self.safe_string(linearSwapBalance, 'asset')
2286
+ code = self.safe_currency_code(currencyId)
2287
+ account = self.account()
2288
+ account['free'] = self.safe_string(linearSwapBalance, 'availableMargin')
2289
+ account['used'] = self.safe_string(linearSwapBalance, 'usedMargin')
2290
+ result[code] = account
2284
2291
  return self.safe_balance(result)
2285
2292
 
2286
2293
  async def fetch_position_history(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Position]:
@@ -6161,6 +6168,37 @@ class bingx(Exchange, ImplicitAPI):
6161
6168
  'tierBased': False,
6162
6169
  }
6163
6170
 
6171
+ def custom_encode(self, params):
6172
+ sortedParams = self.keysort(params)
6173
+ keys = list(sortedParams.keys())
6174
+ adjustedValue = None
6175
+ result = None
6176
+ for i in range(0, len(keys)):
6177
+ key = keys[i]
6178
+ value = sortedParams[key]
6179
+ if isinstance(value, list):
6180
+ arrStr = None
6181
+ for j in range(0, len(value)):
6182
+ arrayElement = value[j]
6183
+ isString = (isinstance(arrayElement, str))
6184
+ if isString:
6185
+ if j > 0:
6186
+ arrStr += ',' + '"' + str(arrayElement) + '"'
6187
+ else:
6188
+ arrStr = '"' + str(arrayElement) + '"'
6189
+ else:
6190
+ if j > 0:
6191
+ arrStr += ',' + str(arrayElement)
6192
+ else:
6193
+ arrStr = str(arrayElement)
6194
+ adjustedValue = '[' + arrStr + ']'
6195
+ value = adjustedValue
6196
+ if i == 0:
6197
+ result = key + '=' + value
6198
+ else:
6199
+ result += '&' + key + '=' + value
6200
+ return result
6201
+
6164
6202
  def sign(self, path, section='public', method='GET', params={}, headers=None, body=None):
6165
6203
  type = section[0]
6166
6204
  version = section[1]
@@ -6189,16 +6227,22 @@ class bingx(Exchange, ImplicitAPI):
6189
6227
  elif access == 'private':
6190
6228
  self.check_required_credentials()
6191
6229
  isJsonContentType = (((type == 'subAccount') or (type == 'account/transfer')) and (method == 'POST'))
6192
- parsedParams = self.parse_params(params)
6193
- signature = self.hmac(self.encode(self.rawencode(parsedParams)), self.encode(self.secret), hashlib.sha256)
6230
+ parsedParams = None
6231
+ encodeRequest = None
6232
+ if isJsonContentType:
6233
+ encodeRequest = self.custom_encode(params)
6234
+ else:
6235
+ parsedParams = self.parse_params(params)
6236
+ encodeRequest = self.rawencode(parsedParams)
6237
+ signature = self.hmac(self.encode(encodeRequest), self.encode(self.secret), hashlib.sha256)
6194
6238
  headers = {
6195
6239
  'X-BX-APIKEY': self.apiKey,
6196
6240
  'X-SOURCE-KEY': self.safe_string(self.options, 'broker', 'CCXT'),
6197
6241
  }
6198
6242
  if isJsonContentType:
6199
6243
  headers['Content-Type'] = 'application/json'
6200
- parsedParams['signature'] = signature
6201
- body = self.json(parsedParams)
6244
+ params['signature'] = signature
6245
+ body = self.json(params)
6202
6246
  else:
6203
6247
  query = self.urlencode(parsedParams)
6204
6248
  url += '?' + query + '&' + 'signature=' + signature
@@ -1403,18 +1403,18 @@ class bitget(Exchange, ImplicitAPI):
1403
1403
  '1m': 30,
1404
1404
  '3m': 30,
1405
1405
  '5m': 30,
1406
- '10m': 52,
1406
+ '10m': 30,
1407
1407
  '15m': 52,
1408
- '30m': 52,
1408
+ '30m': 62,
1409
1409
  '1h': 83,
1410
1410
  '2h': 120,
1411
1411
  '4h': 240,
1412
1412
  '6h': 360,
1413
1413
  '12h': 360,
1414
- '1d': 360,
1415
- '3d': 1000,
1416
- '1w': 1000,
1417
- '1M': 1000,
1414
+ '1d': 300,
1415
+ '3d': 300,
1416
+ '1w': 300,
1417
+ '1M': 300,
1418
1418
  },
1419
1419
  },
1420
1420
  'fetchTrades': {
@@ -3464,6 +3464,7 @@ class bitget(Exchange, ImplicitAPI):
3464
3464
  :param int [limit]: the maximum amount of candles to fetch
3465
3465
  :param dict [params]: extra parameters specific to the exchange API endpoint
3466
3466
  :param int [params.until]: timestamp in ms of the latest candle to fetch
3467
+ :param boolean [params.useHistoryEndpoint]: whether to force to use historical endpoint(it has max limit of 200)
3467
3468
  :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)
3468
3469
  :param str [params.price]: *swap only* "mark"(to fetch mark price candles) or "index"(to fetch index price candles)
3469
3470
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
@@ -3475,8 +3476,9 @@ class bitget(Exchange, ImplicitAPI):
3475
3476
  paginate = False
3476
3477
  paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate')
3477
3478
  if paginate:
3478
- return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimitForHistoryEndpoint)
3479
+ return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimitForRecentEndpoint)
3479
3480
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
3481
+ useHistoryEndpoint = self.safe_bool(params, 'useHistoryEndpoint', False)
3480
3482
  market = None
3481
3483
  if sandboxMode:
3482
3484
  sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
@@ -3504,7 +3506,7 @@ class bitget(Exchange, ImplicitAPI):
3504
3506
  ohlcOptions = self.safe_dict(self.options, 'fetchOHLCV', {})
3505
3507
  retrievableDaysMap = self.safe_dict(ohlcOptions, 'maxDaysPerTimeframe', {})
3506
3508
  maxRetrievableDaysForRecent = self.safe_integer(retrievableDaysMap, timeframe, 30) # default to safe minimum
3507
- endpointTsBoundary = now - maxRetrievableDaysForRecent * msInDay
3509
+ endpointTsBoundary = now - (maxRetrievableDaysForRecent - 1) * msInDay
3508
3510
  if limitDefined:
3509
3511
  limit = min(limit, maxLimitForRecentEndpoint)
3510
3512
  request['limit'] = limit
@@ -3535,7 +3537,7 @@ class bitget(Exchange, ImplicitAPI):
3535
3537
  # make request
3536
3538
  if market['spot']:
3537
3539
  # checks if we need history endpoint
3538
- if historicalEndpointNeeded:
3540
+ if historicalEndpointNeeded or useHistoryEndpoint:
3539
3541
  response = await self.publicSpotGetV2SpotMarketHistoryCandles(self.extend(request, params))
3540
3542
  else:
3541
3543
  response = await self.publicSpotGetV2SpotMarketCandles(self.extend(request, params))
@@ -3559,7 +3561,7 @@ class bitget(Exchange, ImplicitAPI):
3559
3561
  elif priceType == 'index':
3560
3562
  response = await self.publicMixGetV2MixMarketHistoryIndexCandles(extended)
3561
3563
  else:
3562
- if historicalEndpointNeeded:
3564
+ if historicalEndpointNeeded or useHistoryEndpoint:
3563
3565
  response = await self.publicMixGetV2MixMarketHistoryCandles(extended)
3564
3566
  else:
3565
3567
  response = await self.publicMixGetV2MixMarketCandles(extended)
@@ -875,27 +875,36 @@ class coinsph(Exchange, ImplicitAPI):
875
875
  :param int [since]: timestamp in ms of the earliest candle to fetch
876
876
  :param int [limit]: the maximum amount of candles to fetch(default 500, max 1000)
877
877
  :param dict [params]: extra parameters specific to the exchange API endpoint
878
+ :param int [params.until]: timestamp in ms of the latest candle to fetch
878
879
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
879
880
  """
880
881
  await self.load_markets()
881
882
  market = self.market(symbol)
882
883
  interval = self.safe_string(self.timeframes, timeframe)
884
+ until = self.safe_integer(params, 'until')
883
885
  request: dict = {
884
886
  'symbol': market['id'],
885
887
  'interval': interval,
886
888
  }
889
+ if limit is None:
890
+ limit = 1000
887
891
  if since is not None:
888
892
  request['startTime'] = since
889
- request['limit'] = 1000
890
893
  # since work properly only when it is "younger" than last "limit" candle
891
- if limit is not None:
892
- duration = self.parse_timeframe(timeframe) * 1000
893
- request['endTime'] = self.sum(since, duration * (limit - 1))
894
+ if until is not None:
895
+ request['endTime'] = until
894
896
  else:
895
- request['endTime'] = self.milliseconds()
896
- else:
897
- if limit is not None:
898
- request['limit'] = limit
897
+ duration = self.parse_timeframe(timeframe) * 1000
898
+ endTimeByLimit = self.sum(since, duration * (limit - 1))
899
+ now = self.milliseconds()
900
+ request['endTime'] = min(endTimeByLimit, now)
901
+ elif until is not None:
902
+ request['endTime'] = until
903
+ # since work properly only when it is "younger" than last "limit" candle
904
+ duration = self.parse_timeframe(timeframe) * 1000
905
+ request['startTime'] = until - (duration * (limit - 1))
906
+ request['limit'] = limit
907
+ params = self.omit(params, 'until')
899
908
  response = await self.publicGetOpenapiQuoteV1Klines(self.extend(request, params))
900
909
  #
901
910
  # [
@@ -291,6 +291,88 @@ class deribit(Exchange, ImplicitAPI):
291
291
  },
292
292
  },
293
293
  },
294
+ 'features': {
295
+ 'default': {
296
+ 'sandbox': True,
297
+ 'createOrder': {
298
+ 'marginMode': False,
299
+ 'triggerPrice': True, # todo
300
+ # todo implement
301
+ 'triggerPriceType': {
302
+ 'last': True,
303
+ 'mark': True,
304
+ 'index': True,
305
+ },
306
+ 'triggerDirection': False,
307
+ 'stopLossPrice': False, # todo
308
+ 'takeProfitPrice': False, # todo
309
+ 'attachedStopLossTakeProfit': None,
310
+ 'timeInForce': {
311
+ 'IOC': True,
312
+ 'FOK': True,
313
+ 'PO': True,
314
+ 'GTD': True,
315
+ },
316
+ 'hedged': False,
317
+ 'selfTradePrevention': False,
318
+ 'trailing': True, # todo
319
+ 'leverage': False,
320
+ 'marketBuyByCost': True, # todo
321
+ 'marketBuyRequiresPrice': False,
322
+ 'iceberg': True, # todo
323
+ },
324
+ 'createOrders': None,
325
+ 'fetchMyTrades': {
326
+ 'marginMode': False,
327
+ 'limit': 100, # todo: revise
328
+ 'daysBack': 100000,
329
+ 'untilDays': 100000,
330
+ },
331
+ 'fetchOrder': {
332
+ 'marginMode': False,
333
+ 'trigger': False,
334
+ 'trailing': False,
335
+ },
336
+ 'fetchOpenOrders': {
337
+ 'marginMode': False,
338
+ 'limit': None,
339
+ 'trigger': False,
340
+ 'trailing': False,
341
+ },
342
+ 'fetchOrders': None,
343
+ 'fetchClosedOrders': {
344
+ 'marginMode': False,
345
+ 'limit': 100,
346
+ 'daysBack': 100000,
347
+ 'daysBackCanceled': 1,
348
+ 'untilDays': 100000,
349
+ 'trigger': False,
350
+ 'trailing': False,
351
+ },
352
+ 'fetchOHLCV': {
353
+ 'limit': 1000, # todo: recheck
354
+ },
355
+ },
356
+ 'spot': {
357
+ 'extends': 'default',
358
+ },
359
+ 'swap': {
360
+ 'linear': {
361
+ 'extends': 'default',
362
+ },
363
+ 'inverse': {
364
+ 'extends': 'default',
365
+ },
366
+ },
367
+ 'future': {
368
+ 'linear': {
369
+ 'extends': 'default',
370
+ },
371
+ 'inverse': {
372
+ 'extends': 'default',
373
+ },
374
+ },
375
+ },
294
376
  'exceptions': {
295
377
  # 0 or absent Success, No error.
296
378
  '9999': PermissionDenied, # 'api_not_enabled' User didn't enable API for the Account.
@@ -254,6 +254,109 @@ class digifinex(Exchange, ImplicitAPI):
254
254
  },
255
255
  },
256
256
  },
257
+ 'features': {
258
+ 'default': {
259
+ 'sandbox': False,
260
+ 'createOrder': {
261
+ 'marginMode': True,
262
+ 'triggerPrice': False,
263
+ 'triggerPriceType': None,
264
+ 'triggerDirection': False,
265
+ 'stopLossPrice': False,
266
+ 'takeProfitPrice': False,
267
+ 'attachedStopLossTakeProfit': None,
268
+ 'timeInForce': {
269
+ 'IOC': False,
270
+ 'FOK': False,
271
+ 'PO': True,
272
+ 'GTD': False,
273
+ },
274
+ 'hedged': False,
275
+ 'selfTradePrevention': False,
276
+ 'trailing': False,
277
+ 'leverage': False,
278
+ 'marketBuyByCost': False,
279
+ 'marketBuyRequiresPrice': False,
280
+ 'iceberg': False,
281
+ },
282
+ 'createOrders': {
283
+ 'max': 10,
284
+ 'marginMode': True,
285
+ },
286
+ 'fetchMyTrades': {
287
+ 'marginMode': True,
288
+ 'limit': 500,
289
+ 'daysBack': 100000, # todo
290
+ 'untilDays': 30,
291
+ },
292
+ 'fetchOrder': {
293
+ 'marginMode': True,
294
+ 'trigger': False,
295
+ 'trailing': False,
296
+ 'marketType': True,
297
+ },
298
+ 'fetchOpenOrders': {
299
+ 'marginMode': True,
300
+ 'limit': None,
301
+ 'trigger': False,
302
+ 'trailing': False,
303
+ },
304
+ 'fetchOrders': {
305
+ 'marginMode': True,
306
+ 'limit': 100,
307
+ 'daysBack': 100000, # todo
308
+ 'untilDays': 30,
309
+ 'trigger': False,
310
+ 'trailing': False,
311
+ },
312
+ 'fetchClosedOrders': None,
313
+ 'fetchOHLCV': {
314
+ 'limit': 500,
315
+ },
316
+ },
317
+ 'spot': {
318
+ 'extends': 'default',
319
+ },
320
+ 'forDerivatives': {
321
+ 'extends': 'default',
322
+ 'createOrders': {
323
+ 'max': 20,
324
+ 'marginMode': False,
325
+ },
326
+ 'fetchMyTrades': {
327
+ 'marginMode': False,
328
+ 'limit': 100,
329
+ 'daysBack': 100000, # todo
330
+ 'untilDays': 100000, # todo
331
+ },
332
+ 'fetchOrder': {
333
+ 'marginMode': False,
334
+ },
335
+ 'fetchOpenOrders': {
336
+ 'marginMode': False,
337
+ 'limit': 100,
338
+ },
339
+ 'fetchOrders': {
340
+ 'marginMode': False,
341
+ 'daysBack': 100000, # todo
342
+ },
343
+ 'fetchOHLCV': {
344
+ 'limit': 100,
345
+ },
346
+ },
347
+ 'swap': {
348
+ 'linear': {
349
+ 'extends': 'forDerivatives',
350
+ },
351
+ 'inverse': {
352
+ 'extends': 'forDerivatives',
353
+ },
354
+ },
355
+ 'future': {
356
+ 'linear': None,
357
+ 'inverse': None,
358
+ },
359
+ },
257
360
  'fees': {
258
361
  'trading': {
259
362
  'tierBased': True,
@@ -1459,6 +1562,7 @@ class digifinex(Exchange, ImplicitAPI):
1459
1562
  :param int [since]: timestamp in ms of the earliest candle to fetch
1460
1563
  :param int [limit]: the maximum amount of candles to fetch
1461
1564
  :param dict [params]: extra parameters specific to the exchange API endpoint
1565
+ :param int [params.until]: timestamp in ms of the latest candle to fetch
1462
1566
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
1463
1567
  """
1464
1568
  await self.load_markets()
@@ -1472,19 +1576,30 @@ class digifinex(Exchange, ImplicitAPI):
1472
1576
  request['limit'] = min(limit, 100)
1473
1577
  response = await self.publicSwapGetPublicCandles(self.extend(request, params))
1474
1578
  else:
1579
+ until = self.safe_integer(params, 'until')
1475
1580
  request['symbol'] = market['id']
1476
1581
  request['period'] = self.safe_string(self.timeframes, timeframe, timeframe)
1477
- if since is not None:
1478
- startTime = self.parse_to_int(since / 1000)
1582
+ startTime = since
1583
+ duration = self.parse_timeframe(timeframe)
1584
+ if startTime is None:
1585
+ if (limit is not None) or (until is not None):
1586
+ endTime = until if (until is not None) else self.milliseconds()
1587
+ startLimit = limit if (limit is not None) else 200
1588
+ startTime = endTime - (startLimit * duration * 1000)
1589
+ if startTime is not None:
1590
+ startTime = self.parse_to_int(startTime / 1000)
1479
1591
  request['start_time'] = startTime
1480
- if limit is not None:
1481
- duration = self.parse_timeframe(timeframe)
1482
- request['end_time'] = self.sum(startTime, limit * duration)
1483
- elif limit is not None:
1484
- endTime = self.seconds()
1485
- duration = self.parse_timeframe(timeframe)
1486
- auxLimit = limit # in c# -limit is mutating the arg
1487
- request['start_time'] = self.sum(endTime, -auxLimit * duration)
1592
+ if (limit is not None) or (until is not None):
1593
+ if until is not None:
1594
+ endByUntil = self.parse_to_int(until / 1000)
1595
+ if limit is not None:
1596
+ endByLimit = self.sum(startTime, limit * duration)
1597
+ request['end_time'] = min(endByLimit, endByUntil)
1598
+ else:
1599
+ request['end_time'] = endByUntil
1600
+ else:
1601
+ request['end_time'] = self.sum(startTime, limit * duration)
1602
+ params = self.omit(params, 'until')
1488
1603
  response = await self.publicSpotGetKline(self.extend(request, params))
1489
1604
  #
1490
1605
  # spot
@@ -235,6 +235,66 @@ class ellipx(Exchange, ImplicitAPI):
235
235
  'ETH': 'Ethereum',
236
236
  },
237
237
  },
238
+ 'features': {
239
+ 'spot': {
240
+ 'sandbox': False,
241
+ 'createOrder': {
242
+ 'marginMode': False,
243
+ 'triggerPrice': False,
244
+ 'triggerPriceType': None,
245
+ 'triggerDirection': False,
246
+ 'stopLossPrice': False,
247
+ 'takeProfitPrice': False,
248
+ 'attachedStopLossTakeProfit': None,
249
+ 'timeInForce': {
250
+ 'IOC': False,
251
+ 'FOK': False,
252
+ 'PO': False,
253
+ 'GTD': False,
254
+ },
255
+ 'hedged': False,
256
+ 'selfTradePrevention': False,
257
+ 'trailing': False,
258
+ 'leverage': False,
259
+ 'marketBuyByCost': True,
260
+ 'marketBuyRequiresPrice': False,
261
+ 'iceberg': False,
262
+ },
263
+ 'createOrders': None,
264
+ 'fetchMyTrades': None,
265
+ 'fetchOrder': {
266
+ 'marginMode': False,
267
+ 'trigger': False,
268
+ 'trailing': False,
269
+ },
270
+ 'fetchOpenOrders': {
271
+ 'marginMode': False,
272
+ 'limit': None,
273
+ 'trigger': False,
274
+ 'trailing': False,
275
+ },
276
+ 'fetchOrders': {
277
+ 'marginMode': False,
278
+ 'limit': None, # todo
279
+ 'daysBack': None, # todo
280
+ 'untilDays': None, # todo
281
+ 'trigger': False,
282
+ 'trailing': False,
283
+ },
284
+ 'fetchClosedOrders': None,
285
+ 'fetchOHLCV': {
286
+ 'limit': 100,
287
+ },
288
+ },
289
+ 'swap': {
290
+ 'linear': None,
291
+ 'inverse': None,
292
+ },
293
+ 'future': {
294
+ 'linear': None,
295
+ 'inverse': None,
296
+ },
297
+ },
238
298
  'commonCurrencies': {},
239
299
  'exceptions': {
240
300
  'exact': {
@@ -662,6 +722,7 @@ class ellipx(Exchange, ImplicitAPI):
662
722
  :param int [since]: timestamp in ms of the earliest candle to fetch
663
723
  :param int [limit]: the maximum amount of candles to fetch
664
724
  :param dict [params]: extra parameters specific to the API endpoint
725
+ :param int [params.until]: timestamp in ms of the earliest candle to fetch
665
726
  :returns OHLCV[]: A list of candles ordered, open, high, low, close, volume
666
727
  """
667
728
  await self.load_markets()