ccxt 4.4.31__tar.gz → 4.4.32__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 (669) hide show
  1. {ccxt-4.4.31/ccxt.egg-info → ccxt-4.4.32}/PKG-INFO +10 -4
  2. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/aiohttp_client.py +25 -3
  6. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitvavo.py +0 -3
  7. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/cex.py +1 -1
  8. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinex.py +1 -1
  9. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/deribit.py +2 -2
  10. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/gate.py +15 -2
  11. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/hitbtc.py +3 -3
  12. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/htx.py +1 -1
  13. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/indodax.py +1 -1
  14. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/kraken.py +2 -2
  15. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/kucoin.py +5 -3
  16. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/kucoinfutures.py +93 -25
  17. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/okx.py +2 -2
  18. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/phemex.py +17 -15
  19. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/wavesexchange.py +3 -0
  20. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/woofipro.py +2 -2
  21. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/exchange.py +14 -2
  22. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitvavo.py +0 -3
  23. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/cex.py +1 -1
  24. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinex.py +1 -1
  25. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/deribit.py +2 -2
  26. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/gate.py +15 -2
  27. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/hitbtc.py +3 -3
  28. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/htx.py +1 -1
  29. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/indodax.py +1 -1
  30. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/kraken.py +2 -2
  31. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/kucoin.py +5 -3
  32. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/kucoinfutures.py +93 -25
  33. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/okx.py +2 -2
  34. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/phemex.py +17 -15
  35. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/__init__.py +1 -1
  36. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/binance.py +8 -8
  37. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitget.py +4 -4
  38. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitmart.py +2 -2
  39. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitmex.py +2 -2
  40. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitvavo.py +46 -45
  41. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/blofin.py +2 -2
  42. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bybit.py +2 -2
  43. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/cryptocom.py +4 -4
  44. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/gate.py +4 -4
  45. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/hashkey.py +3 -3
  46. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/mexc.py +1 -2
  47. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/wavesexchange.py +3 -0
  48. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/woofipro.py +2 -2
  49. {ccxt-4.4.31 → ccxt-4.4.32/ccxt.egg-info}/PKG-INFO +10 -4
  50. {ccxt-4.4.31 → ccxt-4.4.32}/package.json +1 -1
  51. {ccxt-4.4.31 → ccxt-4.4.32}/LICENSE.txt +0 -0
  52. {ccxt-4.4.31 → ccxt-4.4.32}/MANIFEST.in +0 -0
  53. {ccxt-4.4.31 → ccxt-4.4.32}/README.rst +0 -0
  54. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/__init__.py +0 -0
  55. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/ace.py +0 -0
  56. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/alpaca.py +0 -0
  57. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/ascendex.py +0 -0
  58. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bequant.py +0 -0
  59. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bigone.py +0 -0
  60. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/binance.py +0 -0
  61. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/binancecoinm.py +0 -0
  62. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/binanceus.py +0 -0
  63. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/binanceusdm.py +0 -0
  64. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bingx.py +0 -0
  65. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bit2c.py +0 -0
  66. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitbank.py +0 -0
  67. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitbns.py +0 -0
  68. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitcoincom.py +0 -0
  69. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitfinex.py +0 -0
  70. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitfinex2.py +0 -0
  71. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitflyer.py +0 -0
  72. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitget.py +0 -0
  73. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bithumb.py +0 -0
  74. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitmart.py +0 -0
  75. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitmex.py +0 -0
  76. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitopro.py +0 -0
  77. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitpanda.py +0 -0
  78. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitrue.py +0 -0
  79. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitso.py +0 -0
  80. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitstamp.py +0 -0
  81. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitteam.py +0 -0
  82. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bitvavo.py +0 -0
  83. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bl3p.py +0 -0
  84. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/blockchaincom.py +0 -0
  85. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/blofin.py +0 -0
  86. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/btcalpha.py +0 -0
  87. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/btcbox.py +0 -0
  88. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/btcmarkets.py +0 -0
  89. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/btcturk.py +0 -0
  90. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/bybit.py +0 -0
  91. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/cex.py +0 -0
  92. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinbase.py +0 -0
  93. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinbaseadvanced.py +0 -0
  94. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinbaseexchange.py +0 -0
  95. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinbaseinternational.py +0 -0
  96. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coincatch.py +0 -0
  97. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coincheck.py +0 -0
  98. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinex.py +0 -0
  99. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinlist.py +0 -0
  100. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinmate.py +0 -0
  101. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinmetro.py +0 -0
  102. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinone.py +0 -0
  103. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinsph.py +0 -0
  104. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/coinspot.py +0 -0
  105. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/cryptocom.py +0 -0
  106. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/currencycom.py +0 -0
  107. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/delta.py +0 -0
  108. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/deribit.py +0 -0
  109. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/digifinex.py +0 -0
  110. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/exmo.py +0 -0
  111. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/fmfwio.py +0 -0
  112. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/gate.py +0 -0
  113. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/gateio.py +0 -0
  114. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/gemini.py +0 -0
  115. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/hashkey.py +0 -0
  116. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/hitbtc.py +0 -0
  117. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/hollaex.py +0 -0
  118. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/htx.py +0 -0
  119. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/huobi.py +0 -0
  120. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/huobijp.py +0 -0
  121. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/hyperliquid.py +0 -0
  122. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/idex.py +0 -0
  123. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/independentreserve.py +0 -0
  124. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/indodax.py +0 -0
  125. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/kraken.py +0 -0
  126. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/krakenfutures.py +0 -0
  127. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/kucoin.py +0 -0
  128. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/kucoinfutures.py +0 -0
  129. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/kuna.py +0 -0
  130. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/latoken.py +0 -0
  131. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/lbank.py +0 -0
  132. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/luno.py +0 -0
  133. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/lykke.py +0 -0
  134. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/mercado.py +0 -0
  135. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/mexc.py +0 -0
  136. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/ndax.py +0 -0
  137. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/novadax.py +0 -0
  138. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/oceanex.py +0 -0
  139. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/okcoin.py +0 -0
  140. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/okx.py +0 -0
  141. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/onetrading.py +0 -0
  142. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/oxfun.py +0 -0
  143. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/p2b.py +0 -0
  144. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/paradex.py +0 -0
  145. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/paymium.py +0 -0
  146. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/phemex.py +0 -0
  147. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/poloniex.py +0 -0
  148. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/poloniexfutures.py +0 -0
  149. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/probit.py +0 -0
  150. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/timex.py +0 -0
  151. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/tokocrypto.py +0 -0
  152. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/tradeogre.py +0 -0
  153. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/upbit.py +0 -0
  154. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/vertex.py +0 -0
  155. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/wavesexchange.py +0 -0
  156. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/wazirx.py +0 -0
  157. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/whitebit.py +0 -0
  158. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/woo.py +0 -0
  159. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/woofipro.py +0 -0
  160. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/xt.py +0 -0
  161. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/yobit.py +0 -0
  162. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/zaif.py +0 -0
  163. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/abstract/zonda.py +0 -0
  164. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/ace.py +0 -0
  165. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/alpaca.py +0 -0
  166. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/ascendex.py +0 -0
  167. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/ace.py +0 -0
  168. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/alpaca.py +0 -0
  169. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/ascendex.py +0 -0
  170. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/__init__.py +0 -0
  171. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/throttler.py +0 -0
  172. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/__init__.py +0 -0
  173. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/cache.py +0 -0
  174. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/client.py +0 -0
  175. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/fast_client.py +0 -0
  176. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/functions.py +0 -0
  177. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/future.py +0 -0
  178. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/order_book.py +0 -0
  179. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  180. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bequant.py +0 -0
  181. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bigone.py +0 -0
  182. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/binance.py +0 -0
  183. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/binancecoinm.py +0 -0
  184. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/binanceus.py +0 -0
  185. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/binanceusdm.py +0 -0
  186. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bingx.py +0 -0
  187. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bit2c.py +0 -0
  188. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitbank.py +0 -0
  189. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitbay.py +0 -0
  190. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitbns.py +0 -0
  191. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitcoincom.py +0 -0
  192. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitfinex.py +0 -0
  193. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitfinex2.py +0 -0
  194. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitflyer.py +0 -0
  195. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitget.py +0 -0
  196. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bithumb.py +0 -0
  197. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitmart.py +0 -0
  198. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitmex.py +0 -0
  199. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitopro.py +0 -0
  200. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitpanda.py +0 -0
  201. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitrue.py +0 -0
  202. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitso.py +0 -0
  203. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitstamp.py +0 -0
  204. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bitteam.py +0 -0
  205. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bl3p.py +0 -0
  206. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/blockchaincom.py +0 -0
  207. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/blofin.py +0 -0
  208. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/btcalpha.py +0 -0
  209. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/btcbox.py +0 -0
  210. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/btcmarkets.py +0 -0
  211. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/btcturk.py +0 -0
  212. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/bybit.py +0 -0
  213. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinbase.py +0 -0
  214. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinbaseadvanced.py +0 -0
  215. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinbaseexchange.py +0 -0
  216. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinbaseinternational.py +0 -0
  217. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coincatch.py +0 -0
  218. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coincheck.py +0 -0
  219. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinlist.py +0 -0
  220. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinmate.py +0 -0
  221. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinmetro.py +0 -0
  222. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinone.py +0 -0
  223. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinsph.py +0 -0
  224. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/coinspot.py +0 -0
  225. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/cryptocom.py +0 -0
  226. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/currencycom.py +0 -0
  227. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/delta.py +0 -0
  228. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/digifinex.py +0 -0
  229. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/exmo.py +0 -0
  230. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/fmfwio.py +0 -0
  231. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/gateio.py +0 -0
  232. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/gemini.py +0 -0
  233. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/hashkey.py +0 -0
  234. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/hitbtc3.py +0 -0
  235. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/hollaex.py +0 -0
  236. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/huobi.py +0 -0
  237. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/huobijp.py +0 -0
  238. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/hyperliquid.py +0 -0
  239. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/idex.py +0 -0
  240. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/independentreserve.py +0 -0
  241. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/krakenfutures.py +0 -0
  242. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/kuna.py +0 -0
  243. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/latoken.py +0 -0
  244. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/lbank.py +0 -0
  245. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/luno.py +0 -0
  246. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/lykke.py +0 -0
  247. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/mercado.py +0 -0
  248. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/mexc.py +0 -0
  249. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/ndax.py +0 -0
  250. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/novadax.py +0 -0
  251. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/oceanex.py +0 -0
  252. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/okcoin.py +0 -0
  253. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/onetrading.py +0 -0
  254. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/oxfun.py +0 -0
  255. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/p2b.py +0 -0
  256. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/paradex.py +0 -0
  257. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/paymium.py +0 -0
  258. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/poloniex.py +0 -0
  259. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/poloniexfutures.py +0 -0
  260. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/probit.py +0 -0
  261. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/timex.py +0 -0
  262. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/tokocrypto.py +0 -0
  263. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/tradeogre.py +0 -0
  264. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/upbit.py +0 -0
  265. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/vertex.py +0 -0
  266. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/wazirx.py +0 -0
  267. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/whitebit.py +0 -0
  268. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/woo.py +0 -0
  269. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/xt.py +0 -0
  270. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/yobit.py +0 -0
  271. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/zaif.py +0 -0
  272. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/async_support/zonda.py +0 -0
  273. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/__init__.py +0 -0
  274. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/decimal_to_precision.py +0 -0
  275. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/errors.py +0 -0
  276. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/precise.py +0 -0
  277. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/base/types.py +0 -0
  278. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bequant.py +0 -0
  279. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bigone.py +0 -0
  280. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/binance.py +0 -0
  281. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/binancecoinm.py +0 -0
  282. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/binanceus.py +0 -0
  283. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/binanceusdm.py +0 -0
  284. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bingx.py +0 -0
  285. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bit2c.py +0 -0
  286. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitbank.py +0 -0
  287. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitbay.py +0 -0
  288. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitbns.py +0 -0
  289. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitcoincom.py +0 -0
  290. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitfinex.py +0 -0
  291. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitfinex2.py +0 -0
  292. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitflyer.py +0 -0
  293. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitget.py +0 -0
  294. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bithumb.py +0 -0
  295. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitmart.py +0 -0
  296. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitmex.py +0 -0
  297. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitopro.py +0 -0
  298. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitpanda.py +0 -0
  299. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitrue.py +0 -0
  300. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitso.py +0 -0
  301. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitstamp.py +0 -0
  302. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bitteam.py +0 -0
  303. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bl3p.py +0 -0
  304. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/blockchaincom.py +0 -0
  305. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/blofin.py +0 -0
  306. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/btcalpha.py +0 -0
  307. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/btcbox.py +0 -0
  308. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/btcmarkets.py +0 -0
  309. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/btcturk.py +0 -0
  310. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/bybit.py +0 -0
  311. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinbase.py +0 -0
  312. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinbaseadvanced.py +0 -0
  313. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinbaseexchange.py +0 -0
  314. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinbaseinternational.py +0 -0
  315. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coincatch.py +0 -0
  316. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coincheck.py +0 -0
  317. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinlist.py +0 -0
  318. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinmate.py +0 -0
  319. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinmetro.py +0 -0
  320. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinone.py +0 -0
  321. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinsph.py +0 -0
  322. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/coinspot.py +0 -0
  323. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/cryptocom.py +0 -0
  324. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/currencycom.py +0 -0
  325. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/delta.py +0 -0
  326. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/digifinex.py +0 -0
  327. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/exmo.py +0 -0
  328. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/fmfwio.py +0 -0
  329. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/gateio.py +0 -0
  330. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/gemini.py +0 -0
  331. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/hashkey.py +0 -0
  332. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/hitbtc3.py +0 -0
  333. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/hollaex.py +0 -0
  334. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/huobi.py +0 -0
  335. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/huobijp.py +0 -0
  336. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/hyperliquid.py +0 -0
  337. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/idex.py +0 -0
  338. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/independentreserve.py +0 -0
  339. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/krakenfutures.py +0 -0
  340. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/kuna.py +0 -0
  341. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/latoken.py +0 -0
  342. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/lbank.py +0 -0
  343. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/luno.py +0 -0
  344. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/lykke.py +0 -0
  345. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/mercado.py +0 -0
  346. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/mexc.py +0 -0
  347. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/ndax.py +0 -0
  348. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/novadax.py +0 -0
  349. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/oceanex.py +0 -0
  350. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/okcoin.py +0 -0
  351. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/onetrading.py +0 -0
  352. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/oxfun.py +0 -0
  353. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/p2b.py +0 -0
  354. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/paradex.py +0 -0
  355. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/paymium.py +0 -0
  356. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/poloniex.py +0 -0
  357. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/poloniexfutures.py +0 -0
  358. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/alpaca.py +0 -0
  359. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/ascendex.py +0 -0
  360. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bequant.py +0 -0
  361. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/binancecoinm.py +0 -0
  362. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/binanceus.py +0 -0
  363. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/binanceusdm.py +0 -0
  364. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bingx.py +0 -0
  365. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitcoincom.py +0 -0
  366. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitfinex.py +0 -0
  367. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitfinex2.py +0 -0
  368. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bithumb.py +0 -0
  369. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitopro.py +0 -0
  370. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitpanda.py +0 -0
  371. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitrue.py +0 -0
  372. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/bitstamp.py +0 -0
  373. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/blockchaincom.py +0 -0
  374. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/cex.py +0 -0
  375. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinbase.py +0 -0
  376. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinbaseadvanced.py +0 -0
  377. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinbaseexchange.py +0 -0
  378. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinbaseinternational.py +0 -0
  379. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coincatch.py +0 -0
  380. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coincheck.py +0 -0
  381. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinex.py +0 -0
  382. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/coinone.py +0 -0
  383. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/currencycom.py +0 -0
  384. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/deribit.py +0 -0
  385. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/exmo.py +0 -0
  386. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/gateio.py +0 -0
  387. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/gemini.py +0 -0
  388. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/hitbtc.py +0 -0
  389. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/hollaex.py +0 -0
  390. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/htx.py +0 -0
  391. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/huobi.py +0 -0
  392. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/huobijp.py +0 -0
  393. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/hyperliquid.py +0 -0
  394. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/idex.py +0 -0
  395. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/independentreserve.py +0 -0
  396. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/kraken.py +0 -0
  397. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/krakenfutures.py +0 -0
  398. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/kucoin.py +0 -0
  399. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/kucoinfutures.py +0 -0
  400. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/lbank.py +0 -0
  401. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/luno.py +0 -0
  402. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/ndax.py +0 -0
  403. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/okcoin.py +0 -0
  404. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/okx.py +0 -0
  405. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/onetrading.py +0 -0
  406. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/oxfun.py +0 -0
  407. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/p2b.py +0 -0
  408. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/paradex.py +0 -0
  409. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/phemex.py +0 -0
  410. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/poloniex.py +0 -0
  411. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/poloniexfutures.py +0 -0
  412. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/probit.py +0 -0
  413. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/upbit.py +0 -0
  414. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/vertex.py +0 -0
  415. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/wazirx.py +0 -0
  416. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/whitebit.py +0 -0
  417. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/woo.py +0 -0
  418. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/woofipro.py +0 -0
  419. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/pro/xt.py +0 -0
  420. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/probit.py +0 -0
  421. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/__init__.py +0 -0
  422. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  423. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  424. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  425. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  426. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  427. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  428. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  429. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  430. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  431. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  432. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  433. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  434. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  435. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  436. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  437. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  438. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  439. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  440. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  441. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  442. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  443. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  444. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  445. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  446. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  447. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  448. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  449. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  450. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  451. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  452. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  453. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  454. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  455. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  456. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  457. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  458. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  459. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  460. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  461. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  462. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  463. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  464. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  465. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  466. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  467. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  468. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  469. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  470. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  471. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  472. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  473. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  474. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  475. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  476. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  477. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  478. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  479. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  480. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  481. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  482. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  483. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  484. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  485. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  486. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  487. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  488. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  489. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  490. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  491. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  492. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  493. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  494. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  495. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  496. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/__init__.py +0 -0
  497. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  498. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  499. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  500. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/common.py +0 -0
  501. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  502. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/grammar.py +0 -0
  503. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  504. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/indenter.py +0 -0
  505. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/lark.py +0 -0
  506. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/lexer.py +0 -0
  507. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  508. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  509. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  510. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  511. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  512. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  513. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  514. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  515. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  516. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  517. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  518. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  519. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  520. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  521. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/py.typed +0 -0
  522. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  523. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  524. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  525. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  526. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  527. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tree.py +0 -0
  528. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  529. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  530. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/utils.py +0 -0
  531. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/lark/visitors.py +0 -0
  532. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  533. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  534. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  535. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  536. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  537. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  538. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  539. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  540. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  541. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  542. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  543. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  544. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  545. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  546. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  547. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  548. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  549. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  550. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  551. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  552. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  553. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  554. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  555. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  556. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  557. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  558. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  559. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  560. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  561. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  562. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  563. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  564. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  565. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  566. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  567. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  568. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  569. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  570. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  571. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  572. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  573. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  574. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  575. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  576. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  577. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  578. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  579. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  580. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/common.py +0 -0
  581. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/constants.py +0 -0
  582. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  583. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  584. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  585. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  586. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  587. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  588. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  589. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  590. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  591. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  592. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  593. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  594. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  595. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  596. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  597. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  598. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  599. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  600. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  601. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  602. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  603. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  604. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  605. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  606. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  607. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  608. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  609. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  610. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  611. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  612. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  613. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  614. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  615. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  616. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  617. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  618. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  619. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  620. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  621. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  622. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  623. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  624. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  625. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  626. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  627. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  628. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  629. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  630. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  631. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  632. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  633. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  634. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  635. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/_version.py +0 -0
  636. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  637. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  638. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  639. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  640. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  641. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  642. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  643. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  644. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/toolz/utils.py +0 -0
  645. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  646. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  647. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/test/__init__.py +0 -0
  648. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/test/tests_async.py +0 -0
  649. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/test/tests_helpers.py +0 -0
  650. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/test/tests_init.py +0 -0
  651. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/test/tests_sync.py +0 -0
  652. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/timex.py +0 -0
  653. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/tokocrypto.py +0 -0
  654. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/tradeogre.py +0 -0
  655. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/upbit.py +0 -0
  656. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/vertex.py +0 -0
  657. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/wazirx.py +0 -0
  658. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/whitebit.py +0 -0
  659. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/woo.py +0 -0
  660. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/xt.py +0 -0
  661. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/yobit.py +0 -0
  662. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/zaif.py +0 -0
  663. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt/zonda.py +0 -0
  664. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt.egg-info/SOURCES.txt +0 -0
  665. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt.egg-info/dependency_links.txt +0 -0
  666. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt.egg-info/requires.txt +0 -0
  667. {ccxt-4.4.31 → ccxt-4.4.32}/ccxt.egg-info/top_level.txt +0 -0
  668. {ccxt-4.4.31 → ccxt-4.4.32}/setup.cfg +0 -0
  669. {ccxt-4.4.31 → ccxt-4.4.32}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.31
3
+ Version: 4.4.32
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
@@ -262,13 +262,13 @@ console.log(version, Object.keys(exchanges));
262
262
 
263
263
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
264
264
 
265
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.31/dist/ccxt.browser.min.js
266
- * unpkg: https://unpkg.com/ccxt@4.4.31/dist/ccxt.browser.min.js
265
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.32/dist/ccxt.browser.min.js
266
+ * unpkg: https://unpkg.com/ccxt@4.4.32/dist/ccxt.browser.min.js
267
267
 
268
268
  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.
269
269
 
270
270
  ```HTML
271
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.31/dist/ccxt.browser.min.js"></script>
271
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.32/dist/ccxt.browser.min.js"></script>
272
272
  ```
273
273
 
274
274
  Creates a global `ccxt` object:
@@ -296,6 +296,12 @@ The library supports concurrent asynchronous mode with asyncio and async/await i
296
296
  import ccxt.async_support as ccxt # link against the asynchronous version of ccxt
297
297
  ```
298
298
 
299
+ #### orjson support
300
+
301
+ CCXT also supports `orjson` for parsing JSON since it is much faster than the builtin library. This is especially important when using websockets because some exchanges return big messages that need to be parsed and dispatched as quickly as possible.
302
+
303
+ However, `orjson` is not enabled by default because it is not supported by every python interpreter. If you want to opt-in, you just need to install it (`pip install orjson`) on your local environment. CCXT will detect the installion and pick it up automatically.
304
+
299
305
  ### PHP
300
306
 
301
307
  [ccxt in PHP with **Packagist/Composer**](https://packagist.org/packages/ccxt/ccxt) (PHP 7.0+)
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.31'
25
+ __version__ = '4.4.32'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.31'
7
+ __version__ = '4.4.32'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.31'
5
+ __version__ = '4.4.32'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1,5 +1,11 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
+ orjson = None
4
+ try:
5
+ import orjson as orjson
6
+ except ImportError:
7
+ pass
8
+
3
9
  import json
4
10
  from asyncio import sleep, ensure_future
5
11
  from aiohttp import WSMsgType
@@ -25,8 +31,16 @@ class AiohttpClient(Client):
25
31
  self.log(iso8601(milliseconds()), 'message', data)
26
32
  if isinstance(data, bytes):
27
33
  data = data.decode()
28
- decoded = json.loads(data) if is_json_encoded_object(data) else data
29
- self.on_message_callback(self, decoded)
34
+ # decoded = json.loads(data) if is_json_encoded_object(data) else data
35
+ decode = None
36
+ if is_json_encoded_object(data):
37
+ if orjson is None:
38
+ decode = json.loads(data)
39
+ else:
40
+ decode = orjson.loads(data)
41
+ else:
42
+ decode = data
43
+ self.on_message_callback(self, decode)
30
44
 
31
45
  def handle_message(self, message):
32
46
  # self.log(iso8601(milliseconds()), message)
@@ -80,7 +94,15 @@ class AiohttpClient(Client):
80
94
  async def send(self, message):
81
95
  if self.verbose:
82
96
  self.log(iso8601(milliseconds()), 'sending', message)
83
- return await self.connection.send_str(message if isinstance(message, str) else json.dumps(message, separators=(',', ':')))
97
+ send_msg = None
98
+ if isinstance(message, str):
99
+ send_msg = message
100
+ else:
101
+ if orjson is None:
102
+ send_msg = json.dumps(message, separators=(',', ':'))
103
+ else:
104
+ send_msg = orjson.dumps(message).decode('utf-8')
105
+ return await self.connection.send_str(send_msg)
84
106
 
85
107
  async def close(self, code=1000):
86
108
  if self.verbose:
@@ -1097,9 +1097,6 @@ class bitvavo(Exchange, ImplicitAPI):
1097
1097
  request['timeInForce'] = timeInForce
1098
1098
  if postOnly:
1099
1099
  request['postOnly'] = True
1100
- clientOrderId = self.safe_string(params, 'clientOrderId')
1101
- if clientOrderId is None:
1102
- request['clientOrderId'] = self.uuid22()
1103
1100
  return self.extend(request, params)
1104
1101
 
1105
1102
  async def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
@@ -848,7 +848,7 @@ class cex(Exchange, ImplicitAPI):
848
848
 
849
849
  https://trade.cex.io/docs/#rest-private-api-calls-orders
850
850
 
851
- @param status
851
+ :param str status: order status to fetch for
852
852
  :param str symbol: unified market symbol of the market orders were made in
853
853
  :param int [since]: the earliest time in ms to fetch orders for
854
854
  :param int [limit]: the maximum number of order structures to retrieve
@@ -3253,7 +3253,7 @@ class coinex(Exchange, ImplicitAPI):
3253
3253
  https://docs.coinex.com/api/v2/futures/order/http/list-finished-order
3254
3254
  https://docs.coinex.com/api/v2/futures/order/http/list-finished-stop-order
3255
3255
 
3256
- @param status
3256
+ :param str status: order status to fetch for
3257
3257
  :param str symbol: unified market symbol of the market orders were made in
3258
3258
  :param int [since]: the earliest time in ms to fetch orders for
3259
3259
  :param int [limit]: the maximum number of order structures to retrieve
@@ -2965,8 +2965,8 @@ class deribit(Exchange, ImplicitAPI):
2965
2965
  https://docs.deribit.com/#public-get_funding_rate_history
2966
2966
 
2967
2967
  :param str symbol: unified market symbol
2968
- @param since
2969
- @param limit
2968
+ :param int [since]: the earliest time in ms to fetch funding rate history for
2969
+ :param int [limit]: the maximum number of entries to retrieve
2970
2970
  :param dict [params]: extra parameters specific to the exchange API endpoint
2971
2971
  :param int [params.end_timestamp]: fetch funding rate ending at self timestamp
2972
2972
  :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
@@ -3023,18 +3023,31 @@ class gate(Exchange, ImplicitAPI):
3023
3023
  :param int [since]: timestamp in ms of the earliest funding rate to fetch
3024
3024
  :param int [limit]: the maximum amount of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-history-structure>` to fetch
3025
3025
  :param dict [params]: extra parameters specific to the exchange API endpoint
3026
+ :param int [params.until]: timestamp in ms of the latest funding rate to fetch
3027
+ :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)
3026
3028
  :returns dict[]: a list of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-history-structure>`
3027
3029
  """
3028
3030
  if symbol is None:
3029
3031
  raise ArgumentsRequired(self.id + ' fetchFundingRateHistory() requires a symbol argument')
3030
3032
  await self.load_markets()
3033
+ paginate = False
3034
+ paginate, params = self.handle_option_and_params(params, 'fetchFundingRateHistory', 'paginate')
3035
+ if paginate:
3036
+ return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '8h', params)
3031
3037
  market = self.market(symbol)
3032
3038
  if not market['swap']:
3033
3039
  raise BadSymbol(self.id + ' fetchFundingRateHistory() supports swap contracts only')
3034
- request, query = self.prepare_request(market, None, params)
3040
+ request: dict = {}
3041
+ request, params = self.prepare_request(market, None, params)
3035
3042
  if limit is not None:
3036
3043
  request['limit'] = limit
3037
- response = await self.publicFuturesGetSettleFundingRate(self.extend(request, query))
3044
+ if since is not None:
3045
+ request['from'] = self.parse_to_int(since / 1000)
3046
+ until = self.safe_integer(params, 'until')
3047
+ if until is not None:
3048
+ params = self.omit(params, 'until')
3049
+ request['to'] = self.parse_to_int(until / 1000)
3050
+ response = await self.publicFuturesGetSettleFundingRate(self.extend(request, params))
3038
3051
  #
3039
3052
  # {
3040
3053
  # "r": "0.00063521",
@@ -1530,7 +1530,7 @@ class hitbtc(Exchange, ImplicitAPI):
1530
1530
 
1531
1531
  https://api.hitbtc.com/#order-books
1532
1532
 
1533
- :param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
1533
+ :param str[] [symbols]: list of unified market symbols, all symbols fetched if None, default is None
1534
1534
  :param int [limit]: max number of entries per orderbook to return, default is None
1535
1535
  :param dict [params]: extra parameters specific to the exchange API endpoint
1536
1536
  :returns dict: a dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbol
@@ -3396,8 +3396,8 @@ class hitbtc(Exchange, ImplicitAPI):
3396
3396
 
3397
3397
  https://api.hitbtc.com/#close-all-futures-margin-positions
3398
3398
 
3399
- @param symbol
3400
- @param side
3399
+ :param str symbol: unified ccxt market symbol
3400
+ :param str side: 'buy' or 'sell'
3401
3401
  :param dict [params]: extra parameters specific to the okx api endpoint
3402
3402
  :param str [params.symbol]: *required* unified market symbol
3403
3403
  :param str [params.marginMode]: 'cross' or 'isolated', default is 'cross'
@@ -3071,7 +3071,7 @@ class htx(Exchange, ImplicitAPI):
3071
3071
 
3072
3072
  :param str type: 'spot', 'swap' or 'future
3073
3073
  :param str [marginMode]: 'cross' or 'isolated'
3074
- @param symbol
3074
+ :param str [symbol]: unified ccxt market symbol
3075
3075
  :param dict [params]: extra parameters specific to the exchange API endpoint
3076
3076
  :returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
3077
3077
  """
@@ -29,7 +29,7 @@ class indodax(Exchange, ImplicitAPI):
29
29
  'countries': ['ID'], # Indonesia
30
30
  # 10 requests per second for making trades => 1000ms / 10 = 100ms
31
31
  # 180 requests per minute(public endpoints) = 2 requests per second => cost = (1000ms / rateLimit) / 2 = 5
32
- 'rateLimit': 100,
32
+ 'rateLimit': 50,
33
33
  'has': {
34
34
  'CORS': None,
35
35
  'spot': True,
@@ -2045,8 +2045,8 @@ class kraken(Exchange, ImplicitAPI):
2045
2045
 
2046
2046
  https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
2047
2047
 
2048
- :param str[]|None ids: list of order id
2049
- @param symbol
2048
+ :param str[] [ids]: list of order id
2049
+ :param str [symbol]: unified ccxt market symbol
2050
2050
  :param dict [params]: extra parameters specific to the kraken api endpoint
2051
2051
  :returns dict[]: a list of `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2052
2052
  """
@@ -591,6 +591,8 @@ class kucoin(Exchange, ImplicitAPI):
591
591
  '400303': PermissionDenied, # {"msg":"To enjoy the full range of our products and services, we kindly request you complete the identity verification process.","code":"400303"}
592
592
  '500000': ExchangeNotAvailable, # {"code":"500000","msg":"Internal Server Error"}
593
593
  '260220': InvalidAddress, # {"code": "260220", "msg": "deposit.address.not.exists"}
594
+ '600100': InsufficientFunds, # {"msg":"Funds below the minimum requirement.","code":"600100"}
595
+ '600101': InvalidOrder, # {"msg":"The order funds should more then 0.1 USDT.","code":"600101"}
594
596
  '900014': BadRequest, # {"code":"900014","msg":"Invalid chainId"}
595
597
  },
596
598
  'broad': {
@@ -1245,7 +1247,7 @@ class kucoin(Exchange, ImplicitAPI):
1245
1247
 
1246
1248
  async def load_migration_status(self, force: bool = False):
1247
1249
  """
1248
- @param force
1250
+ :param boolean force: load account state for non hf
1249
1251
  loads the migration status for the account(hf or not)
1250
1252
 
1251
1253
  https://www.kucoin.com/docs/rest/spot-trading/spot-hf-trade-pro-account/get-user-type
@@ -4740,8 +4742,8 @@ class kucoin(Exchange, ImplicitAPI):
4740
4742
 
4741
4743
  https://www.kucoin.com/docs/rest/margin-trading/margin-trading-v3-/modify-leverage-multiplier
4742
4744
 
4743
- @param leverage
4744
- :param str symbol: unified market symbol
4745
+ :param int [leverage]: New leverage multiplier. Must be greater than 1 and up to two decimal places, and cannot be less than the user's current debt leverage or greater than the system's maximum leverage
4746
+ :param str [symbol]: unified market symbol
4745
4747
  :param dict [params]: extra parameters specific to the exchange API endpoint
4746
4748
  :returns dict: response from the exchange
4747
4749
  """
@@ -1212,8 +1212,8 @@ class kucoinfutures(kucoin, ImplicitAPI):
1212
1212
  https://www.kucoin.com/docs/rest/futures-trading/positions/get-positions-history
1213
1213
 
1214
1214
  :param str[] [symbols]: list of unified market symbols
1215
- @param since
1216
- @param limit
1215
+ :param int [since]: the earliest time in ms to fetch position history for
1216
+ :param int [limit]: the maximum number of entries to retrieve
1217
1217
  :param dict [params]: extra parameters specific to the exchange API endpoint
1218
1218
  :param int [params.until]: closing end time
1219
1219
  :param int [params.pageId]: page id
@@ -1404,7 +1404,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
1404
1404
  """
1405
1405
  Create an order on the exchange
1406
1406
 
1407
- https://docs.kucoin.com/futures/#place-an-order
1407
+ https://www.kucoin.com/docs/rest/futures-trading/orders/place-order
1408
1408
  https://www.kucoin.com/docs/rest/futures-trading/orders/place-take-profit-and-stop-loss-order#http-request
1409
1409
 
1410
1410
  :param str symbol: Unified CCXT market symbol
@@ -1421,6 +1421,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
1421
1421
  :param bool [params.reduceOnly]: A mark to reduce the position size only. Set to False by default. Need to set the position size when reduceOnly is True.
1422
1422
  :param str [params.timeInForce]: GTC, GTT, IOC, or FOK, default is GTC, limit orders only
1423
1423
  :param str [params.postOnly]: Post only flag, invalid when timeInForce is IOC or FOK
1424
+ :param float [params.cost]: the cost of the order in units of USDT
1424
1425
  ----------------- Exchange Specific Parameters -----------------
1425
1426
  :param float [params.leverage]: Leverage size of the order
1426
1427
  :param str [params.clientOid]: client order id, defaults to uuid if not passed
@@ -1510,17 +1511,21 @@ class kucoinfutures(kucoin, ImplicitAPI):
1510
1511
  # required param, cannot be used twice
1511
1512
  clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId', self.uuid())
1512
1513
  params = self.omit(params, ['clientOid', 'clientOrderId'])
1513
- if amount < 1:
1514
- raise InvalidOrder(self.id + ' createOrder() minimum contract order amount is 1')
1515
- preciseAmount = int(self.amount_to_precision(symbol, amount))
1516
1514
  request: dict = {
1517
1515
  'clientOid': clientOrderId,
1518
1516
  'side': side,
1519
1517
  'symbol': market['id'],
1520
1518
  'type': type, # limit or market
1521
- 'size': preciseAmount,
1522
1519
  'leverage': 1,
1523
1520
  }
1521
+ cost = self.safe_string(params, 'cost')
1522
+ params = self.omit(params, 'cost')
1523
+ if cost is not None:
1524
+ request['valueQty'] = self.cost_to_precision(symbol, cost)
1525
+ else:
1526
+ if amount < 1:
1527
+ raise InvalidOrder(self.id + ' createOrder() minimum contract order amount is 1')
1528
+ request['size'] = int(self.amount_to_precision(symbol, amount))
1524
1529
  triggerPrice, stopLossPrice, takeProfitPrice = self.handle_trigger_prices(params)
1525
1530
  stopLoss = self.safe_dict(params, 'stopLoss')
1526
1531
  takeProfit = self.safe_dict(params, 'takeProfit')
@@ -2349,6 +2354,10 @@ class kucoinfutures(kucoin, ImplicitAPI):
2349
2354
  async def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
2350
2355
  """
2351
2356
  transfer currency internally between wallets on the same account
2357
+
2358
+ https://www.kucoin.com/docs/rest/funding/transfer/transfer-to-main-or-trade-account
2359
+ https://www.kucoin.com/docs/rest/funding/transfer/transfer-to-futures-account
2360
+
2352
2361
  :param str code: unified currency code
2353
2362
  :param float amount: amount to transfer
2354
2363
  :param str fromAccount: account to transfer from
@@ -2356,47 +2365,99 @@ class kucoinfutures(kucoin, ImplicitAPI):
2356
2365
  :param dict [params]: extra parameters specific to the exchange API endpoint
2357
2366
  :returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
2358
2367
  """
2359
- if (toAccount != 'main' and toAccount != 'funding') or (fromAccount != 'futures' and fromAccount != 'future' and fromAccount != 'contract'):
2360
- raise BadRequest(self.id + ' transfer() only supports transfers from contract(future) account to main(funding) account')
2361
2368
  await self.load_markets()
2362
2369
  currency = self.currency(code)
2363
2370
  amountToPrecision = self.currency_to_precision(code, amount)
2364
2371
  request: dict = {
2365
- 'currency': self.safe_string(currency, 'id'), # Currency,including XBT,USDT
2372
+ 'currency': self.safe_string(currency, 'id'),
2366
2373
  'amount': amountToPrecision,
2367
2374
  }
2368
- # transfer from usdm futures wallet to spot wallet
2369
- response = await self.futuresPrivatePostTransferOut(self.extend(request, params))
2370
- #
2371
- # {
2372
- # "code": "200000",
2373
- # "data": {
2374
- # "applyId": "5bffb63303aa675e8bbe18f9" # Transfer-out request ID
2375
- # }
2376
- # }
2377
- #
2378
- data = self.safe_value(response, 'data')
2375
+ toAccountString = self.parse_transfer_type(toAccount)
2376
+ response = None
2377
+ if toAccountString == 'TRADE' or toAccountString == 'MAIN':
2378
+ request['recAccountType'] = toAccountString
2379
+ response = await self.futuresPrivatePostTransferOut(self.extend(request, params))
2380
+ #
2381
+ # {
2382
+ # "code": "200000",
2383
+ # "data": {
2384
+ # "applyId": "6738754373ceee00011ec3f8",
2385
+ # "bizNo": "6738754373ceee00011ec3f7",
2386
+ # "payAccountType": "CONTRACT",
2387
+ # "payTag": "DEFAULT",
2388
+ # "remark": "",
2389
+ # "recAccountType": "MAIN",
2390
+ # "recTag": "DEFAULT",
2391
+ # "recRemark": "",
2392
+ # "recSystem": "KUCOIN",
2393
+ # "status": "PROCESSING",
2394
+ # "currency": "USDT",
2395
+ # "amount": "5",
2396
+ # "fee": "0",
2397
+ # "sn": 1519769124846692,
2398
+ # "reason": "",
2399
+ # "createdAt": 1731753283000,
2400
+ # "updatedAt": 1731753283000
2401
+ # }
2402
+ # }
2403
+ #
2404
+ elif toAccount == 'future' or toAccount == 'swap' or toAccount == 'contract':
2405
+ request['payAccountType'] = self.parse_transfer_type(fromAccount)
2406
+ response = await self.futuresPrivatePostTransferIn(self.extend(request, params))
2407
+ #
2408
+ # {
2409
+ # "code": "200000",
2410
+ # "data": {
2411
+ # "applyId": "5bffb63303aa675e8bbe18f9" # Transfer-out request ID
2412
+ # }
2413
+ # }
2414
+ #
2415
+ else:
2416
+ raise BadRequest(self.id + ' transfer() only supports transfers between future/swap, spot and funding accounts')
2417
+ data = self.safe_dict(response, 'data', {})
2379
2418
  return self.extend(self.parse_transfer(data, currency), {
2380
2419
  'amount': self.parse_number(amountToPrecision),
2381
- 'fromAccount': 'future',
2382
- 'toAccount': 'spot',
2420
+ 'fromAccount': fromAccount,
2421
+ 'toAccount': toAccount,
2383
2422
  })
2384
2423
 
2385
2424
  def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2386
2425
  #
2387
- # transfer
2426
+ # transfer to spot or funding account
2388
2427
  #
2389
2428
  # {
2390
2429
  # "applyId": "5bffb63303aa675e8bbe18f9" # Transfer-out request ID
2391
2430
  # }
2392
2431
  #
2432
+ # transfer to future account
2433
+ #
2434
+ # {
2435
+ # "applyId": "6738754373ceee00011ec3f8",
2436
+ # "bizNo": "6738754373ceee00011ec3f7",
2437
+ # "payAccountType": "CONTRACT",
2438
+ # "payTag": "DEFAULT",
2439
+ # "remark": "",
2440
+ # "recAccountType": "MAIN",
2441
+ # "recTag": "DEFAULT",
2442
+ # "recRemark": "",
2443
+ # "recSystem": "KUCOIN",
2444
+ # "status": "PROCESSING",
2445
+ # "currency": "USDT",
2446
+ # "amount": "5",
2447
+ # "fee": "0",
2448
+ # "sn": 1519769124846692,
2449
+ # "reason": "",
2450
+ # "createdAt": 1731753283000,
2451
+ # "updatedAt": 1731753283000
2452
+ # }
2453
+ #
2393
2454
  timestamp = self.safe_integer(transfer, 'updatedAt')
2394
2455
  return {
2395
2456
  'id': self.safe_string(transfer, 'applyId'),
2396
2457
  'timestamp': timestamp,
2397
2458
  'datetime': self.iso8601(timestamp),
2398
2459
  'currency': self.safe_currency_code(None, currency),
2399
- 'amount': None,
2460
+ 'amount': self.safe_number(transfer, 'amount'),
2400
2461
  'fromAccount': None,
2401
2462
  'toAccount': None,
2402
2463
  'status': self.safe_string(transfer, 'status'),
@@ -2409,6 +2470,13 @@ class kucoinfutures(kucoin, ImplicitAPI):
2409
2470
  }
2410
2471
  return self.safe_string(statuses, status, status)
2411
2472
 
2473
+ def parse_transfer_type(self, transferType: Str) -> Str:
2474
+ transferTypes: dict = {
2475
+ 'spot': 'TRADE',
2476
+ 'funding': 'MAIN',
2477
+ }
2478
+ return self.safe_string_upper(transferTypes, transferType, transferType)
2479
+
2412
2480
  async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
2413
2481
  """
2414
2482
 
@@ -7933,8 +7933,8 @@ class okx(Exchange, ImplicitAPI):
7933
7933
 
7934
7934
  :param str [symbol]: not used by okx fetchMarginAdjustmentHistory
7935
7935
  :param str [type]: "add" or "reduce"
7936
- @param since
7937
- @param limit
7936
+ :param int [since]: the earliest time in ms to fetch margin adjustment history for
7937
+ :param int [limit]: the maximum number of entries to retrieve
7938
7938
  :param dict params: extra parameters specific to the exchange api endpoint
7939
7939
  :param boolean [params.auto]: True if fetching auto margin increases
7940
7940
  :returns dict[]: a list of `margin structures <https://docs.ccxt.com/#/?id=margin-loan-structure>`
@@ -504,6 +504,13 @@ class phemex(Exchange, ImplicitAPI):
504
504
  'transfer': {
505
505
  'fillResponseFromRequest': True,
506
506
  },
507
+ 'triggerPriceTypesMap': {
508
+ 'last': 'ByLastPrice',
509
+ 'mark': 'ByMarkPrice',
510
+ 'index': 'ByIndexPrice',
511
+ 'ask': 'ByAskPrice',
512
+ 'bid': 'ByBidPrice',
513
+ },
507
514
  },
508
515
  })
509
516
 
@@ -2070,6 +2077,7 @@ class phemex(Exchange, ImplicitAPI):
2070
2077
  'PartiallyFilled': 'open',
2071
2078
  'Filled': 'closed',
2072
2079
  'Canceled': 'canceled',
2080
+ 'Suspended': 'canceled',
2073
2081
  '1': 'open',
2074
2082
  '2': 'canceled',
2075
2083
  '3': 'closed',
@@ -2539,13 +2547,10 @@ class phemex(Exchange, ImplicitAPI):
2539
2547
  request['stopLossEp'] = self.to_ep(stopLossTriggerPrice, market)
2540
2548
  stopLossTriggerPriceType = self.safe_string_2(stopLoss, 'triggerPriceType', 'slTrigger')
2541
2549
  if stopLossTriggerPriceType is not None:
2542
- if market['settle'] == 'USDT':
2543
- if (stopLossTriggerPriceType != 'ByMarkPrice') and (stopLossTriggerPriceType != 'ByLastPrice') and (stopLossTriggerPriceType != 'ByIndexPrice') and (stopLossTriggerPriceType != 'ByAskPrice') and (stopLossTriggerPriceType != 'ByBidPrice') and (stopLossTriggerPriceType != 'ByMarkPriceLimit') and (stopLossTriggerPriceType != 'ByLastPriceLimit'):
2544
- raise InvalidOrder(self.id + ' createOrder() take profit trigger price type must be one of "ByMarkPrice", "ByIndexPrice", "ByAskPrice", "ByBidPrice", "ByMarkPriceLimit", "ByLastPriceLimit" or "ByLastPrice"')
2545
- else:
2546
- if (stopLossTriggerPriceType != 'ByMarkPrice') and (stopLossTriggerPriceType != 'ByLastPrice'):
2547
- raise InvalidOrder(self.id + ' createOrder() take profit trigger price type must be one of "ByMarkPrice", or "ByLastPrice"')
2548
- request['slTrigger'] = stopLossTriggerPriceType
2550
+ request['slTrigger'] = self.safe_string(self.options['triggerPriceTypesMap'], stopLossTriggerPriceType, stopLossTriggerPriceType)
2551
+ slLimitPrice = self.safe_string(stopLoss, 'price')
2552
+ if slLimitPrice is not None:
2553
+ request['slPxRp'] = self.price_to_precision(symbol, slLimitPrice)
2549
2554
  if takeProfitDefined:
2550
2555
  takeProfitTriggerPrice = self.safe_value_2(takeProfit, 'triggerPrice', 'stopPrice')
2551
2556
  if takeProfitTriggerPrice is None:
@@ -2554,15 +2559,12 @@ class phemex(Exchange, ImplicitAPI):
2554
2559
  request['takeProfitRp'] = self.price_to_precision(symbol, takeProfitTriggerPrice)
2555
2560
  else:
2556
2561
  request['takeProfitEp'] = self.to_ep(takeProfitTriggerPrice, market)
2557
- takeProfitTriggerPriceType = self.safe_string_2(stopLoss, 'triggerPriceType', 'tpTrigger')
2562
+ takeProfitTriggerPriceType = self.safe_string_2(takeProfit, 'triggerPriceType', 'tpTrigger')
2558
2563
  if takeProfitTriggerPriceType is not None:
2559
- if market['settle'] == 'USDT':
2560
- if (takeProfitTriggerPriceType != 'ByMarkPrice') and (takeProfitTriggerPriceType != 'ByLastPrice') and (takeProfitTriggerPriceType != 'ByIndexPrice') and (takeProfitTriggerPriceType != 'ByAskPrice') and (takeProfitTriggerPriceType != 'ByBidPrice') and (takeProfitTriggerPriceType != 'ByMarkPriceLimit') and (takeProfitTriggerPriceType != 'ByLastPriceLimit'):
2561
- raise InvalidOrder(self.id + ' createOrder() take profit trigger price type must be one of "ByMarkPrice", "ByIndexPrice", "ByAskPrice", "ByBidPrice", "ByMarkPriceLimit", "ByLastPriceLimit" or "ByLastPrice"')
2562
- else:
2563
- if (takeProfitTriggerPriceType != 'ByMarkPrice') and (takeProfitTriggerPriceType != 'ByLastPrice'):
2564
- raise InvalidOrder(self.id + ' createOrder() take profit trigger price type must be one of "ByMarkPrice", or "ByLastPrice"')
2565
- request['tpTrigger'] = takeProfitTriggerPriceType
2564
+ request['tpTrigger'] = self.safe_string(self.options['triggerPriceTypesMap'], takeProfitTriggerPriceType, takeProfitTriggerPriceType)
2565
+ tpLimitPrice = self.safe_string(takeProfit, 'price')
2566
+ if tpLimitPrice is not None:
2567
+ request['tpPxRp'] = self.price_to_precision(symbol, tpLimitPrice)
2566
2568
  if (type == 'Limit') or (type == 'StopLimit') or (type == 'LimitIfTouched'):
2567
2569
  if market['settle'] == 'USDT':
2568
2570
  request['priceRp'] = self.price_to_precision(symbol, price)
@@ -1890,6 +1890,9 @@ class wavesexchange(Exchange, ImplicitAPI):
1890
1890
  async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1891
1891
  """
1892
1892
  fetch all trades made by the user
1893
+
1894
+ https://api.wavesplatform.com/v0/docs/#/transactions/searchTxsExchange
1895
+
1893
1896
  :param str symbol: unified market symbol
1894
1897
  :param int [since]: the earliest time in ms to fetch trades for
1895
1898
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -2379,8 +2379,8 @@ class woofipro(Exchange, ImplicitAPI):
2379
2379
 
2380
2380
  https://orderly.network/docs/build-on-evm/evm-api/restful-api/private/update-leverage-setting
2381
2381
 
2382
- @param leverage
2383
- :param str symbol: unified market symbol
2382
+ :param int [leverage]: the rate of leverage
2383
+ :param str [symbol]: unified market symbol
2384
2384
  :param dict [params]: extra parameters specific to the exchange API endpoint
2385
2385
  :returns dict: response from the exchange
2386
2386
  """
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.31'
7
+ __version__ = '4.4.32'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -88,6 +88,14 @@ import gzip
88
88
  import hashlib
89
89
  import hmac
90
90
  import io
91
+
92
+ # load orjson if available, otherwise default to json
93
+ orjson = None
94
+ try:
95
+ import orjson as orjson
96
+ except ImportError:
97
+ pass
98
+
91
99
  import json
92
100
  import math
93
101
  import random
@@ -486,9 +494,11 @@ class Exchange(object):
486
494
  return response_body.strip()
487
495
 
488
496
  def on_json_response(self, response_body):
489
- if self.quoteJsonNumbers:
497
+ if self.quoteJsonNumbers and orjson is None:
490
498
  return json.loads(response_body, parse_float=str, parse_int=str)
491
499
  else:
500
+ if orjson:
501
+ return orjson.loads(response_body)
492
502
  return json.loads(response_body)
493
503
 
494
504
  def fetch(self, url, method='GET', headers=None, body=None):
@@ -1433,6 +1443,8 @@ class Exchange(object):
1433
1443
 
1434
1444
  @staticmethod
1435
1445
  def json(data, params=None):
1446
+ if orjson:
1447
+ return orjson.dumps(data).decode('utf-8')
1436
1448
  return json.dumps(data, separators=(',', ':'), cls=SafeJSONEncoder)
1437
1449
 
1438
1450
  @staticmethod
@@ -1097,9 +1097,6 @@ class bitvavo(Exchange, ImplicitAPI):
1097
1097
  request['timeInForce'] = timeInForce
1098
1098
  if postOnly:
1099
1099
  request['postOnly'] = True
1100
- clientOrderId = self.safe_string(params, 'clientOrderId')
1101
- if clientOrderId is None:
1102
- request['clientOrderId'] = self.uuid22()
1103
1100
  return self.extend(request, params)
1104
1101
 
1105
1102
  def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):