ccxt 4.4.48__tar.gz → 4.4.50__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.50}/PKG-INFO +4 -4
  2. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/binance.py +1 -0
  4. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/binancecoinm.py +1 -0
  5. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/binanceus.py +1 -0
  6. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/binanceusdm.py +1 -0
  7. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/alpaca.py +62 -1
  8. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/__init__.py +1 -1
  9. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/alpaca.py +62 -1
  10. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/exchange.py +1 -1
  11. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/binance.py +8 -4
  12. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bingx.py +73 -29
  13. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitget.py +12 -10
  14. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/blofin.py +1 -1
  15. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinex.py +3 -3
  16. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinsph.py +17 -8
  17. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/deribit.py +82 -0
  18. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/digifinex.py +125 -10
  19. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/ellipx.py +61 -0
  20. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/exmo.py +58 -0
  21. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/hitbtc.py +99 -0
  22. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/hollaex.py +85 -16
  23. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/huobijp.py +73 -0
  24. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/hyperliquid.py +22 -1
  25. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/idex.py +71 -0
  26. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/independentreserve.py +64 -0
  27. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/indodax.py +61 -0
  28. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/kucoin.py +47 -67
  29. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/kuna.py +60 -1
  30. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/latoken.py +64 -0
  31. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/lbank.py +70 -0
  32. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/luno.py +73 -0
  33. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/lykke.py +64 -0
  34. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/mercado.py +65 -0
  35. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/mexc.py +4 -3
  36. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/myokx.py +10 -0
  37. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/ndax.py +71 -0
  38. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/novadax.py +74 -0
  39. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/oceanex.py +69 -0
  40. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/okcoin.py +92 -7
  41. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/onetrading.py +66 -0
  42. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/oxfun.py +66 -0
  43. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/p2b.py +63 -1
  44. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/paradex.py +68 -0
  45. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/paymium.py +42 -0
  46. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/probit.py +68 -1
  47. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/timex.py +67 -0
  48. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/tokocrypto.py +81 -4
  49. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/tradeogre.py +58 -1
  50. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/whitebit.py +10 -4
  51. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/exchange.py +62 -1
  52. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/binance.py +8 -4
  53. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bingx.py +73 -29
  54. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitget.py +12 -10
  55. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/blofin.py +1 -1
  56. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinex.py +3 -3
  57. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinsph.py +17 -8
  58. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/deribit.py +82 -0
  59. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/digifinex.py +125 -10
  60. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/ellipx.py +61 -0
  61. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/exmo.py +58 -0
  62. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/hitbtc.py +99 -0
  63. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/hollaex.py +85 -16
  64. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/huobijp.py +73 -0
  65. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/hyperliquid.py +22 -1
  66. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/idex.py +71 -0
  67. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/independentreserve.py +64 -0
  68. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/indodax.py +61 -0
  69. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/kucoin.py +47 -67
  70. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/kuna.py +60 -1
  71. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/latoken.py +64 -0
  72. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/lbank.py +70 -0
  73. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/luno.py +73 -0
  74. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/lykke.py +64 -0
  75. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/mercado.py +65 -0
  76. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/mexc.py +4 -3
  77. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/myokx.py +10 -0
  78. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/ndax.py +71 -0
  79. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/novadax.py +74 -0
  80. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/oceanex.py +69 -0
  81. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/okcoin.py +92 -7
  82. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/onetrading.py +66 -0
  83. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/oxfun.py +66 -0
  84. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/p2b.py +63 -1
  85. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/paradex.py +68 -0
  86. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/paymium.py +42 -0
  87. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/__init__.py +1 -1
  88. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitmart.py +5 -0
  89. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/probit.py +68 -1
  90. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/timex.py +67 -0
  91. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/tokocrypto.py +81 -4
  92. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/tradeogre.py +58 -1
  93. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/whitebit.py +10 -4
  94. {ccxt-4.4.48 → ccxt-4.4.50/ccxt.egg-info}/PKG-INFO +4 -4
  95. {ccxt-4.4.48 → ccxt-4.4.50}/package.json +2 -2
  96. {ccxt-4.4.48 → ccxt-4.4.50}/LICENSE.txt +0 -0
  97. {ccxt-4.4.48 → ccxt-4.4.50}/MANIFEST.in +0 -0
  98. {ccxt-4.4.48 → ccxt-4.4.50}/README.rst +0 -0
  99. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/__init__.py +0 -0
  100. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/ace.py +0 -0
  101. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/alpaca.py +0 -0
  102. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/ascendex.py +0 -0
  103. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bequant.py +0 -0
  104. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bigone.py +0 -0
  105. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bingx.py +0 -0
  106. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bit2c.py +0 -0
  107. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitbank.py +0 -0
  108. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitbns.py +0 -0
  109. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitcoincom.py +0 -0
  110. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitfinex.py +0 -0
  111. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitfinex1.py +0 -0
  112. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitflyer.py +0 -0
  113. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitget.py +0 -0
  114. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bithumb.py +0 -0
  115. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitmart.py +0 -0
  116. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitmex.py +0 -0
  117. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitopro.py +0 -0
  118. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitpanda.py +0 -0
  119. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitrue.py +0 -0
  120. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitso.py +0 -0
  121. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitstamp.py +0 -0
  122. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitteam.py +0 -0
  123. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bitvavo.py +0 -0
  124. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bl3p.py +0 -0
  125. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/blockchaincom.py +0 -0
  126. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/blofin.py +0 -0
  127. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/btcalpha.py +0 -0
  128. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/btcbox.py +0 -0
  129. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/btcmarkets.py +0 -0
  130. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/btcturk.py +0 -0
  131. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/bybit.py +0 -0
  132. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/cex.py +0 -0
  133. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinbase.py +0 -0
  134. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinbaseadvanced.py +0 -0
  135. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinbaseexchange.py +0 -0
  136. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinbaseinternational.py +0 -0
  137. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coincatch.py +0 -0
  138. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coincheck.py +0 -0
  139. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinex.py +0 -0
  140. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinlist.py +0 -0
  141. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinmate.py +0 -0
  142. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinmetro.py +0 -0
  143. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinone.py +0 -0
  144. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinsph.py +0 -0
  145. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/coinspot.py +0 -0
  146. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/cryptocom.py +0 -0
  147. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/currencycom.py +0 -0
  148. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/defx.py +0 -0
  149. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/delta.py +0 -0
  150. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/deribit.py +0 -0
  151. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/digifinex.py +0 -0
  152. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/ellipx.py +0 -0
  153. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/exmo.py +0 -0
  154. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/fmfwio.py +0 -0
  155. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/gate.py +0 -0
  156. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/gateio.py +0 -0
  157. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/gemini.py +0 -0
  158. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/hashkey.py +0 -0
  159. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/hitbtc.py +0 -0
  160. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/hollaex.py +0 -0
  161. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/htx.py +0 -0
  162. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/huobi.py +0 -0
  163. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/huobijp.py +0 -0
  164. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/hyperliquid.py +0 -0
  165. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/idex.py +0 -0
  166. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/independentreserve.py +0 -0
  167. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/indodax.py +0 -0
  168. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/kraken.py +0 -0
  169. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/krakenfutures.py +0 -0
  170. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/kucoin.py +0 -0
  171. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/kucoinfutures.py +0 -0
  172. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/kuna.py +0 -0
  173. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/latoken.py +0 -0
  174. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/lbank.py +0 -0
  175. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/luno.py +0 -0
  176. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/lykke.py +0 -0
  177. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/mercado.py +0 -0
  178. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/mexc.py +0 -0
  179. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/myokx.py +0 -0
  180. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/ndax.py +0 -0
  181. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/novadax.py +0 -0
  182. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/oceanex.py +0 -0
  183. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/okcoin.py +0 -0
  184. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/okx.py +0 -0
  185. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/onetrading.py +0 -0
  186. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/oxfun.py +0 -0
  187. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/p2b.py +0 -0
  188. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/paradex.py +0 -0
  189. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/paymium.py +0 -0
  190. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/phemex.py +0 -0
  191. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/poloniex.py +0 -0
  192. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/poloniexfutures.py +0 -0
  193. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/probit.py +0 -0
  194. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/timex.py +0 -0
  195. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/tokocrypto.py +0 -0
  196. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/tradeogre.py +0 -0
  197. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/upbit.py +0 -0
  198. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/vertex.py +0 -0
  199. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/wavesexchange.py +0 -0
  200. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/wazirx.py +0 -0
  201. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/whitebit.py +0 -0
  202. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/woo.py +0 -0
  203. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/woofipro.py +0 -0
  204. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/xt.py +0 -0
  205. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/yobit.py +0 -0
  206. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/zaif.py +0 -0
  207. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/abstract/zonda.py +0 -0
  208. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/ace.py +0 -0
  209. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/ascendex.py +0 -0
  210. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/ace.py +0 -0
  211. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/ascendex.py +0 -0
  212. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/__init__.py +0 -0
  213. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/throttler.py +0 -0
  214. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/__init__.py +0 -0
  215. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  216. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/cache.py +0 -0
  217. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/client.py +0 -0
  218. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/fast_client.py +0 -0
  219. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/functions.py +0 -0
  220. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/future.py +0 -0
  221. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/order_book.py +0 -0
  222. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  223. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bequant.py +0 -0
  224. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bigone.py +0 -0
  225. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/binancecoinm.py +0 -0
  226. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/binanceus.py +0 -0
  227. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/binanceusdm.py +0 -0
  228. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bit2c.py +0 -0
  229. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitbank.py +0 -0
  230. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitbns.py +0 -0
  231. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitcoincom.py +0 -0
  232. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitfinex.py +0 -0
  233. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitfinex1.py +0 -0
  234. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitflyer.py +0 -0
  235. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bithumb.py +0 -0
  236. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitmart.py +0 -0
  237. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitmex.py +0 -0
  238. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitopro.py +0 -0
  239. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitpanda.py +0 -0
  240. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitrue.py +0 -0
  241. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitso.py +0 -0
  242. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitstamp.py +0 -0
  243. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitteam.py +0 -0
  244. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bitvavo.py +0 -0
  245. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bl3p.py +0 -0
  246. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/blockchaincom.py +0 -0
  247. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/btcalpha.py +0 -0
  248. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/btcbox.py +0 -0
  249. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/btcmarkets.py +0 -0
  250. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/btcturk.py +0 -0
  251. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/bybit.py +0 -0
  252. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/cex.py +0 -0
  253. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinbase.py +0 -0
  254. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinbaseadvanced.py +0 -0
  255. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinbaseexchange.py +0 -0
  256. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinbaseinternational.py +0 -0
  257. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coincatch.py +0 -0
  258. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coincheck.py +0 -0
  259. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinlist.py +0 -0
  260. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinmate.py +0 -0
  261. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinmetro.py +0 -0
  262. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinone.py +0 -0
  263. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/coinspot.py +0 -0
  264. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/cryptocom.py +0 -0
  265. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/currencycom.py +0 -0
  266. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/defx.py +0 -0
  267. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/delta.py +0 -0
  268. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/fmfwio.py +0 -0
  269. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/gate.py +0 -0
  270. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/gateio.py +0 -0
  271. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/gemini.py +0 -0
  272. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/hashkey.py +0 -0
  273. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/htx.py +0 -0
  274. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/huobi.py +0 -0
  275. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/kraken.py +0 -0
  276. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/krakenfutures.py +0 -0
  277. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/kucoinfutures.py +0 -0
  278. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/okx.py +0 -0
  279. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/phemex.py +0 -0
  280. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/poloniex.py +0 -0
  281. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/poloniexfutures.py +0 -0
  282. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/upbit.py +0 -0
  283. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/vertex.py +0 -0
  284. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/wavesexchange.py +0 -0
  285. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/wazirx.py +0 -0
  286. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/woo.py +0 -0
  287. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/woofipro.py +0 -0
  288. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/xt.py +0 -0
  289. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/yobit.py +0 -0
  290. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/zaif.py +0 -0
  291. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/async_support/zonda.py +0 -0
  292. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/__init__.py +0 -0
  293. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/decimal_to_precision.py +0 -0
  294. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/errors.py +0 -0
  295. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/precise.py +0 -0
  296. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/base/types.py +0 -0
  297. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bequant.py +0 -0
  298. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bigone.py +0 -0
  299. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/binancecoinm.py +0 -0
  300. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/binanceus.py +0 -0
  301. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/binanceusdm.py +0 -0
  302. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bit2c.py +0 -0
  303. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitbank.py +0 -0
  304. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitbns.py +0 -0
  305. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitcoincom.py +0 -0
  306. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitfinex.py +0 -0
  307. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitfinex1.py +0 -0
  308. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitflyer.py +0 -0
  309. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bithumb.py +0 -0
  310. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitmart.py +0 -0
  311. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitmex.py +0 -0
  312. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitopro.py +0 -0
  313. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitpanda.py +0 -0
  314. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitrue.py +0 -0
  315. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitso.py +0 -0
  316. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitstamp.py +0 -0
  317. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitteam.py +0 -0
  318. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bitvavo.py +0 -0
  319. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bl3p.py +0 -0
  320. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/blockchaincom.py +0 -0
  321. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/btcalpha.py +0 -0
  322. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/btcbox.py +0 -0
  323. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/btcmarkets.py +0 -0
  324. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/btcturk.py +0 -0
  325. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/bybit.py +0 -0
  326. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/cex.py +0 -0
  327. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinbase.py +0 -0
  328. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinbaseadvanced.py +0 -0
  329. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinbaseexchange.py +0 -0
  330. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinbaseinternational.py +0 -0
  331. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coincatch.py +0 -0
  332. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coincheck.py +0 -0
  333. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinlist.py +0 -0
  334. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinmate.py +0 -0
  335. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinmetro.py +0 -0
  336. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinone.py +0 -0
  337. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/coinspot.py +0 -0
  338. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/cryptocom.py +0 -0
  339. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/currencycom.py +0 -0
  340. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/defx.py +0 -0
  341. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/delta.py +0 -0
  342. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/fmfwio.py +0 -0
  343. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/gate.py +0 -0
  344. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/gateio.py +0 -0
  345. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/gemini.py +0 -0
  346. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/hashkey.py +0 -0
  347. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/htx.py +0 -0
  348. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/huobi.py +0 -0
  349. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/kraken.py +0 -0
  350. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/krakenfutures.py +0 -0
  351. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/kucoinfutures.py +0 -0
  352. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/okx.py +0 -0
  353. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/phemex.py +0 -0
  354. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/poloniex.py +0 -0
  355. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/poloniexfutures.py +0 -0
  356. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/alpaca.py +0 -0
  357. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/ascendex.py +0 -0
  358. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bequant.py +0 -0
  359. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/binance.py +0 -0
  360. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/binancecoinm.py +0 -0
  361. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/binanceus.py +0 -0
  362. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/binanceusdm.py +0 -0
  363. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bingx.py +0 -0
  364. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitcoincom.py +0 -0
  365. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitfinex.py +0 -0
  366. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitfinex1.py +0 -0
  367. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitget.py +0 -0
  368. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bithumb.py +0 -0
  369. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitmex.py +0 -0
  370. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitopro.py +0 -0
  371. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitpanda.py +0 -0
  372. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitrue.py +0 -0
  373. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitstamp.py +0 -0
  374. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bitvavo.py +0 -0
  375. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/blockchaincom.py +0 -0
  376. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/blofin.py +0 -0
  377. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/bybit.py +0 -0
  378. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/cex.py +0 -0
  379. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinbase.py +0 -0
  380. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinbaseadvanced.py +0 -0
  381. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinbaseexchange.py +0 -0
  382. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinbaseinternational.py +0 -0
  383. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coincatch.py +0 -0
  384. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coincheck.py +0 -0
  385. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinex.py +0 -0
  386. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/coinone.py +0 -0
  387. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/cryptocom.py +0 -0
  388. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/currencycom.py +0 -0
  389. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/defx.py +0 -0
  390. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/deribit.py +0 -0
  391. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/exmo.py +0 -0
  392. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/gate.py +0 -0
  393. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/gateio.py +0 -0
  394. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/gemini.py +0 -0
  395. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/hashkey.py +0 -0
  396. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/hitbtc.py +0 -0
  397. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/hollaex.py +0 -0
  398. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/htx.py +0 -0
  399. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/huobi.py +0 -0
  400. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/huobijp.py +0 -0
  401. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/hyperliquid.py +0 -0
  402. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/idex.py +0 -0
  403. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/independentreserve.py +0 -0
  404. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/kraken.py +0 -0
  405. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/krakenfutures.py +0 -0
  406. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/kucoin.py +0 -0
  407. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/kucoinfutures.py +0 -0
  408. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/lbank.py +0 -0
  409. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/luno.py +0 -0
  410. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/mexc.py +0 -0
  411. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/myokx.py +0 -0
  412. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/ndax.py +0 -0
  413. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/okcoin.py +0 -0
  414. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/okx.py +0 -0
  415. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/onetrading.py +0 -0
  416. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/oxfun.py +0 -0
  417. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/p2b.py +0 -0
  418. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/paradex.py +0 -0
  419. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/phemex.py +0 -0
  420. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/poloniex.py +0 -0
  421. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/poloniexfutures.py +0 -0
  422. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/probit.py +0 -0
  423. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/upbit.py +0 -0
  424. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/vertex.py +0 -0
  425. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/wazirx.py +0 -0
  426. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/whitebit.py +0 -0
  427. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/woo.py +0 -0
  428. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/woofipro.py +0 -0
  429. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/pro/xt.py +0 -0
  430. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/__init__.py +0 -0
  431. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  432. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  433. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  434. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  435. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  436. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  437. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  438. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  439. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  440. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  441. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  442. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  443. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  444. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  445. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  446. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  447. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  448. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  449. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  450. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  451. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  452. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  453. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  454. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  455. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  456. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  457. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  458. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  459. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  460. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  461. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  462. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  463. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  464. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  465. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  466. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  467. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  468. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  469. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  470. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  471. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  472. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  473. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  474. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  475. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  476. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  477. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  478. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  479. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  480. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  481. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  482. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  483. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  484. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  485. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  486. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  487. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  488. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  489. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  490. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  491. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  492. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  493. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  494. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  495. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  496. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  497. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  498. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  499. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  500. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  501. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  502. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  503. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  504. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  505. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/__init__.py +0 -0
  506. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  507. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  508. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  509. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/common.py +0 -0
  510. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  511. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/grammar.py +0 -0
  512. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  513. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/indenter.py +0 -0
  514. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/lark.py +0 -0
  515. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/lexer.py +0 -0
  516. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  517. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  518. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  519. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  520. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  521. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  522. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  523. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  524. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  525. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  526. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  527. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  528. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  529. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  530. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/py.typed +0 -0
  531. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  532. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  533. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  534. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  535. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  536. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tree.py +0 -0
  537. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  538. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  539. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/utils.py +0 -0
  540. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/lark/visitors.py +0 -0
  541. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  542. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  543. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  544. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  545. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  546. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  547. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  548. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  549. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  550. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  551. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  552. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  553. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  554. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  555. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  556. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  557. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  558. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  559. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  560. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  561. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  562. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  563. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  564. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  565. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  566. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  567. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  568. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  569. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  570. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  571. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  572. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  573. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  574. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  575. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  576. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  577. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  578. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  579. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  580. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  581. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  582. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  583. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  584. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  585. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  586. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  587. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  588. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  589. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/common.py +0 -0
  590. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/constants.py +0 -0
  591. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  592. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  593. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  594. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  595. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  596. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  597. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  598. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  599. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  600. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  601. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  602. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  603. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  604. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  605. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  606. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  607. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  608. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  609. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  610. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  611. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  612. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  613. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  614. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  615. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  616. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  617. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  618. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  619. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  620. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  621. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  622. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  623. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  624. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  625. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  626. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  627. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  628. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  629. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  630. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  631. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  632. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  633. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  634. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  635. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  636. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  637. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  638. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  639. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  640. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  641. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  642. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  643. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  644. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/_version.py +0 -0
  645. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  646. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  647. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  648. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  649. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  650. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  651. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  652. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  653. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/toolz/utils.py +0 -0
  654. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  655. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  656. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/test/__init__.py +0 -0
  657. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/test/tests_async.py +0 -0
  658. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/test/tests_helpers.py +0 -0
  659. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/test/tests_init.py +0 -0
  660. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/test/tests_sync.py +0 -0
  661. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/upbit.py +0 -0
  662. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/vertex.py +0 -0
  663. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/wavesexchange.py +0 -0
  664. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/wazirx.py +0 -0
  665. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/woo.py +0 -0
  666. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/woofipro.py +0 -0
  667. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/xt.py +0 -0
  668. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/yobit.py +0 -0
  669. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/zaif.py +0 -0
  670. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt/zonda.py +0 -0
  671. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt.egg-info/SOURCES.txt +0 -0
  672. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt.egg-info/dependency_links.txt +0 -0
  673. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt.egg-info/requires.txt +0 -0
  674. {ccxt-4.4.48 → ccxt-4.4.50}/ccxt.egg-info/top_level.txt +0 -0
  675. {ccxt-4.4.48 → ccxt-4.4.50}/setup.cfg +0 -0
  676. {ccxt-4.4.48 → ccxt-4.4.50}/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.50
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.50/dist/ccxt.browser.min.js
269
+ * unpkg: https://unpkg.com/ccxt@4.4.50/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.50/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.50'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -220,6 +220,7 @@ class ImplicitAPI:
220
220
  sapi_get_portfolio_repay_futures_switch = sapiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'GET', {'cost': 3})
221
221
  sapi_get_portfolio_margin_asset_leverage = sapiGetPortfolioMarginAssetLeverage = Entry('portfolio/margin-asset-leverage', 'sapi', 'GET', {'cost': 5})
222
222
  sapi_get_portfolio_balance = sapiGetPortfolioBalance = Entry('portfolio/balance', 'sapi', 'GET', {'cost': 2})
223
+ sapi_get_portfolio_negative_balance_exchange_record = sapiGetPortfolioNegativeBalanceExchangeRecord = Entry('portfolio/negative-balance-exchange-record', 'sapi', 'GET', {'cost': 2})
223
224
  sapi_get_staking_productlist = sapiGetStakingProductList = Entry('staking/productList', 'sapi', 'GET', {'cost': 0.1})
224
225
  sapi_get_staking_position = sapiGetStakingPosition = Entry('staking/position', 'sapi', 'GET', {'cost': 0.1})
225
226
  sapi_get_staking_stakingrecord = sapiGetStakingStakingRecord = Entry('staking/stakingRecord', 'sapi', 'GET', {'cost': 0.1})
@@ -220,6 +220,7 @@ class ImplicitAPI:
220
220
  sapi_get_portfolio_repay_futures_switch = sapiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'GET', {'cost': 3})
221
221
  sapi_get_portfolio_margin_asset_leverage = sapiGetPortfolioMarginAssetLeverage = Entry('portfolio/margin-asset-leverage', 'sapi', 'GET', {'cost': 5})
222
222
  sapi_get_portfolio_balance = sapiGetPortfolioBalance = Entry('portfolio/balance', 'sapi', 'GET', {'cost': 2})
223
+ sapi_get_portfolio_negative_balance_exchange_record = sapiGetPortfolioNegativeBalanceExchangeRecord = Entry('portfolio/negative-balance-exchange-record', 'sapi', 'GET', {'cost': 2})
223
224
  sapi_get_staking_productlist = sapiGetStakingProductList = Entry('staking/productList', 'sapi', 'GET', {'cost': 0.1})
224
225
  sapi_get_staking_position = sapiGetStakingPosition = Entry('staking/position', 'sapi', 'GET', {'cost': 0.1})
225
226
  sapi_get_staking_stakingrecord = sapiGetStakingStakingRecord = Entry('staking/stakingRecord', 'sapi', 'GET', {'cost': 0.1})
@@ -220,6 +220,7 @@ class ImplicitAPI:
220
220
  sapi_get_portfolio_repay_futures_switch = sapiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'GET', {'cost': 3})
221
221
  sapi_get_portfolio_margin_asset_leverage = sapiGetPortfolioMarginAssetLeverage = Entry('portfolio/margin-asset-leverage', 'sapi', 'GET', {'cost': 5})
222
222
  sapi_get_portfolio_balance = sapiGetPortfolioBalance = Entry('portfolio/balance', 'sapi', 'GET', {'cost': 2})
223
+ sapi_get_portfolio_negative_balance_exchange_record = sapiGetPortfolioNegativeBalanceExchangeRecord = Entry('portfolio/negative-balance-exchange-record', 'sapi', 'GET', {'cost': 2})
223
224
  sapi_get_staking_productlist = sapiGetStakingProductList = Entry('staking/productList', 'sapi', 'GET', {'cost': 0.1})
224
225
  sapi_get_staking_position = sapiGetStakingPosition = Entry('staking/position', 'sapi', 'GET', {'cost': 0.1})
225
226
  sapi_get_staking_stakingrecord = sapiGetStakingStakingRecord = Entry('staking/stakingRecord', 'sapi', 'GET', {'cost': 0.1})
@@ -220,6 +220,7 @@ class ImplicitAPI:
220
220
  sapi_get_portfolio_repay_futures_switch = sapiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'GET', {'cost': 3})
221
221
  sapi_get_portfolio_margin_asset_leverage = sapiGetPortfolioMarginAssetLeverage = Entry('portfolio/margin-asset-leverage', 'sapi', 'GET', {'cost': 5})
222
222
  sapi_get_portfolio_balance = sapiGetPortfolioBalance = Entry('portfolio/balance', 'sapi', 'GET', {'cost': 2})
223
+ sapi_get_portfolio_negative_balance_exchange_record = sapiGetPortfolioNegativeBalanceExchangeRecord = Entry('portfolio/negative-balance-exchange-record', 'sapi', 'GET', {'cost': 2})
223
224
  sapi_get_staking_productlist = sapiGetStakingProductList = Entry('staking/productList', 'sapi', 'GET', {'cost': 0.1})
224
225
  sapi_get_staking_position = sapiGetStakingPosition = Entry('staking/position', 'sapi', 'GET', {'cost': 0.1})
225
226
  sapi_get_staking_stakingrecord = sapiGetStakingStakingRecord = Entry('staking/stakingRecord', 'sapi', 'GET', {'cost': 0.1})
@@ -60,6 +60,9 @@ class alpaca(Exchange, ImplicitAPI):
60
60
  'cancelOrder': True,
61
61
  'closeAllPositions': False,
62
62
  'closePosition': False,
63
+ 'createMarketBuyOrder': True,
64
+ 'createMarketBuyOrderWithCost': True,
65
+ 'createMarketOrderWithCost': True,
63
66
  'createOrder': True,
64
67
  'createStopOrder': True,
65
68
  'createTriggerOrder': True,
@@ -905,6 +908,58 @@ class alpaca(Exchange, ImplicitAPI):
905
908
  clientOrderId = self.safe_string(params, 'clientOrderId', defaultClientId)
906
909
  return clientOrderId
907
910
 
911
+ def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
912
+ """
913
+ create a market order by providing the symbol, side and cost
914
+
915
+ https://docs.alpaca.markets/reference/postorder
916
+
917
+ :param str symbol: unified symbol of the market to create an order in
918
+ :param str side: 'buy' or 'sell'
919
+ :param float cost: how much you want to trade in units of the quote currency
920
+ :param dict [params]: extra parameters specific to the exchange API endpoint
921
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
922
+ """
923
+ self.load_markets()
924
+ req = {
925
+ 'cost': cost,
926
+ }
927
+ return self.create_order(symbol, 'market', side, 0, None, self.extend(req, params))
928
+
929
+ def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
930
+ """
931
+ create a market buy order by providing the symbol and cost
932
+
933
+ https://docs.alpaca.markets/reference/postorder
934
+
935
+ :param str symbol: unified symbol of the market to create an order in
936
+ :param float cost: how much you want to trade in units of the quote currency
937
+ :param dict [params]: extra parameters specific to the exchange API endpoint
938
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
939
+ """
940
+ self.load_markets()
941
+ req = {
942
+ 'cost': cost,
943
+ }
944
+ return self.create_order(symbol, 'market', 'buy', 0, None, self.extend(req, params))
945
+
946
+ def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
947
+ """
948
+ create a market sell order by providing the symbol and cost
949
+
950
+ https://docs.alpaca.markets/reference/postorder
951
+
952
+ :param str symbol: unified symbol of the market to create an order in
953
+ :param float cost: how much you want to trade in units of the quote currency
954
+ :param dict [params]: extra parameters specific to the exchange API endpoint
955
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
956
+ """
957
+ self.load_markets()
958
+ req = {
959
+ 'cost': cost,
960
+ }
961
+ return self.create_order(symbol, 'market', 'sell', cost, None, self.extend(req, params))
962
+
908
963
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
909
964
  """
910
965
  create a trade order
@@ -918,6 +973,7 @@ class alpaca(Exchange, ImplicitAPI):
918
973
  :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
919
974
  :param dict [params]: extra parameters specific to the exchange API endpoint
920
975
  :param float [params.triggerPrice]: The price at which a trigger order is triggered at
976
+ :param float [params.cost]: *market orders only* the cost of the order in units of the quote currency
921
977
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
922
978
  """
923
979
  self.load_markets()
@@ -925,7 +981,6 @@ class alpaca(Exchange, ImplicitAPI):
925
981
  id = market['id']
926
982
  request: dict = {
927
983
  'symbol': id,
928
- 'qty': self.amount_to_precision(symbol, amount),
929
984
  'side': side,
930
985
  'type': type, # market, limit, stop_limit
931
986
  }
@@ -940,6 +995,12 @@ class alpaca(Exchange, ImplicitAPI):
940
995
  request['type'] = newType
941
996
  if type.find('limit') >= 0:
942
997
  request['limit_price'] = self.price_to_precision(symbol, price)
998
+ cost = self.safe_string(params, 'cost')
999
+ if cost is not None:
1000
+ params = self.omit(params, 'cost')
1001
+ request['notional'] = self.cost_to_precision(symbol, cost)
1002
+ else:
1003
+ request['qty'] = self.amount_to_precision(symbol, amount)
943
1004
  defaultTIF = self.safe_string(self.options, 'defaultTimeInForce')
944
1005
  request['time_in_force'] = self.safe_string(params, 'timeInForce', defaultTIF)
945
1006
  params = self.omit(params, ['timeInForce', 'triggerPrice'])
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.48'
7
+ __version__ = '4.4.50'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -60,6 +60,9 @@ class alpaca(Exchange, ImplicitAPI):
60
60
  'cancelOrder': True,
61
61
  'closeAllPositions': False,
62
62
  'closePosition': False,
63
+ 'createMarketBuyOrder': True,
64
+ 'createMarketBuyOrderWithCost': True,
65
+ 'createMarketOrderWithCost': True,
63
66
  'createOrder': True,
64
67
  'createStopOrder': True,
65
68
  'createTriggerOrder': True,
@@ -905,6 +908,58 @@ class alpaca(Exchange, ImplicitAPI):
905
908
  clientOrderId = self.safe_string(params, 'clientOrderId', defaultClientId)
906
909
  return clientOrderId
907
910
 
911
+ async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
912
+ """
913
+ create a market order by providing the symbol, side and cost
914
+
915
+ https://docs.alpaca.markets/reference/postorder
916
+
917
+ :param str symbol: unified symbol of the market to create an order in
918
+ :param str side: 'buy' or 'sell'
919
+ :param float cost: how much you want to trade in units of the quote currency
920
+ :param dict [params]: extra parameters specific to the exchange API endpoint
921
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
922
+ """
923
+ await self.load_markets()
924
+ req = {
925
+ 'cost': cost,
926
+ }
927
+ return await self.create_order(symbol, 'market', side, 0, None, self.extend(req, params))
928
+
929
+ async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
930
+ """
931
+ create a market buy order by providing the symbol and cost
932
+
933
+ https://docs.alpaca.markets/reference/postorder
934
+
935
+ :param str symbol: unified symbol of the market to create an order in
936
+ :param float cost: how much you want to trade in units of the quote currency
937
+ :param dict [params]: extra parameters specific to the exchange API endpoint
938
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
939
+ """
940
+ await self.load_markets()
941
+ req = {
942
+ 'cost': cost,
943
+ }
944
+ return await self.create_order(symbol, 'market', 'buy', 0, None, self.extend(req, params))
945
+
946
+ async def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
947
+ """
948
+ create a market sell order by providing the symbol and cost
949
+
950
+ https://docs.alpaca.markets/reference/postorder
951
+
952
+ :param str symbol: unified symbol of the market to create an order in
953
+ :param float cost: how much you want to trade in units of the quote currency
954
+ :param dict [params]: extra parameters specific to the exchange API endpoint
955
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
956
+ """
957
+ await self.load_markets()
958
+ req = {
959
+ 'cost': cost,
960
+ }
961
+ return await self.create_order(symbol, 'market', 'sell', cost, None, self.extend(req, params))
962
+
908
963
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
909
964
  """
910
965
  create a trade order
@@ -918,6 +973,7 @@ class alpaca(Exchange, ImplicitAPI):
918
973
  :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
919
974
  :param dict [params]: extra parameters specific to the exchange API endpoint
920
975
  :param float [params.triggerPrice]: The price at which a trigger order is triggered at
976
+ :param float [params.cost]: *market orders only* the cost of the order in units of the quote currency
921
977
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
922
978
  """
923
979
  await self.load_markets()
@@ -925,7 +981,6 @@ class alpaca(Exchange, ImplicitAPI):
925
981
  id = market['id']
926
982
  request: dict = {
927
983
  'symbol': id,
928
- 'qty': self.amount_to_precision(symbol, amount),
929
984
  'side': side,
930
985
  'type': type, # market, limit, stop_limit
931
986
  }
@@ -940,6 +995,12 @@ class alpaca(Exchange, ImplicitAPI):
940
995
  request['type'] = newType
941
996
  if type.find('limit') >= 0:
942
997
  request['limit_price'] = self.price_to_precision(symbol, price)
998
+ cost = self.safe_string(params, 'cost')
999
+ if cost is not None:
1000
+ params = self.omit(params, 'cost')
1001
+ request['notional'] = self.cost_to_precision(symbol, cost)
1002
+ else:
1003
+ request['qty'] = self.amount_to_precision(symbol, amount)
943
1004
  defaultTIF = self.safe_string(self.options, 'defaultTimeInForce')
944
1005
  request['time_in_force'] = self.safe_string(params, 'timeInForce', defaultTIF)
945
1006
  params = self.omit(params, ['timeInForce', 'triggerPrice'])
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.48'
5
+ __version__ = '4.4.50'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -503,6 +503,7 @@ class binance(Exchange, ImplicitAPI):
503
503
  'portfolio/repay-futures-switch': 3, # Weight(IP): 30 => cost = 0.1 * 30 = 3
504
504
  'portfolio/margin-asset-leverage': 5, # Weight(IP): 50 => cost = 0.1 * 50 = 5
505
505
  'portfolio/balance': 2,
506
+ 'portfolio/negative-balance-exchange-record': 2,
506
507
  # staking
507
508
  'staking/productList': 0.1,
508
509
  'staking/position': 0.1,
@@ -5001,11 +5002,13 @@ class binance(Exchange, ImplicitAPI):
5001
5002
  until = self.safe_integer(params, 'until')
5002
5003
  if until is not None:
5003
5004
  request['endTime'] = until
5004
- if limit is not None:
5005
- isFutureOrSwap = (market['swap'] or market['future'])
5006
- request['limit'] = min(limit, 1000) if isFutureOrSwap else limit # default = 500, maximum = 1000
5007
5005
  method = self.safe_string(self.options, 'fetchTradesMethod')
5008
5006
  method = self.safe_string_2(params, 'fetchTradesMethod', 'method', method)
5007
+ if limit is not None:
5008
+ isFutureOrSwap = (market['swap'] or market['future'])
5009
+ isHistoricalEndpoint = (method is not None) and (method.find('GetHistoricalTrades') >= 0)
5010
+ maxLimitForContractHistorical = 500 if isHistoricalEndpoint else 1000
5011
+ request['limit'] = min(limit, maxLimitForContractHistorical) if isFutureOrSwap else limit # default = 500, maximum = 1000
5009
5012
  params = self.omit(params, ['until', 'fetchTradesMethod'])
5010
5013
  response = None
5011
5014
  if market['option'] or method == 'eapiPublicGetTrades':
@@ -6837,6 +6840,7 @@ class binance(Exchange, ImplicitAPI):
6837
6840
  :param str symbol: unified market symbol
6838
6841
  :param dict [params]: extra parameters specific to the exchange API endpoint
6839
6842
  :param str [params.trigger]: set to True if you would like to fetch portfolio margin account stop or conditional orders
6843
+ :param boolean [params.portfolioMargin]: set to True if you would like to fetch for a portfolio margin account
6840
6844
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
6841
6845
  """
6842
6846
  if symbol is None:
@@ -10159,7 +10163,7 @@ class binance(Exchange, ImplicitAPI):
10159
10163
  # }
10160
10164
  #
10161
10165
  marketId = self.safe_string(position, 'symbol')
10162
- market = self.safe_market(marketId, market)
10166
+ market = self.safe_market(marketId, market, None, 'swap')
10163
10167
  symbol = market['symbol']
10164
10168
  side = self.safe_string_lower(position, 'side')
10165
10169
  quantity = self.safe_string(position, 'quantity')
@@ -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)
@@ -295,7 +295,7 @@ class blofin(Exchange, ImplicitAPI):
295
295
  'trailing': False,
296
296
  },
297
297
  'fetchOHLCV': {
298
- 'max': 1440,
298
+ 'limit': 1440,
299
299
  },
300
300
  },
301
301
  'spot': {
@@ -481,7 +481,7 @@ class coinex(Exchange, ImplicitAPI):
481
481
  'ERC20': 'ERC20',
482
482
  'BRC20': 'BRC20',
483
483
  'SOL': 'SOL',
484
- 'TON': 'SOL',
484
+ 'TON': 'TON',
485
485
  'BSV': 'BSV',
486
486
  'AVAXC': 'AVA_C',
487
487
  'AVAXX': 'AVA',
@@ -4609,13 +4609,13 @@ class coinex(Exchange, ImplicitAPI):
4609
4609
  self.check_address(address)
4610
4610
  await self.load_markets()
4611
4611
  currency = self.currency(code)
4612
- if tag:
4613
- address = address + ':' + tag
4614
4612
  request: dict = {
4615
4613
  'ccy': currency['id'],
4616
4614
  'to_address': address, # must be authorized, inter-user transfer by a registered mobile phone number or an email address is supported
4617
4615
  'amount': self.number_to_string(amount), # the actual amount without fees, https://www.coinex.com/fees
4618
4616
  }
4617
+ if tag is not None:
4618
+ request['memo'] = tag
4619
4619
  networkCode = None
4620
4620
  networkCode, params = self.handle_network_code_and_params(params)
4621
4621
  if networkCode is not None:
@@ -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
  # [