ccxt 4.4.20__tar.gz → 4.4.21__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 (665) hide show
  1. {ccxt-4.4.20/ccxt.egg-info → ccxt-4.4.21}/PKG-INFO +4 -4
  2. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bybit.py +1 -0
  4. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/kucoin.py +1 -0
  5. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/kucoinfutures.py +1 -0
  6. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/okx.py +3 -0
  7. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/__init__.py +1 -1
  8. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/exchange.py +1 -1
  9. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/binance.py +0 -9
  10. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bingx.py +5 -1
  11. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bybit.py +61 -3
  12. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/htx.py +26 -2
  13. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/hyperliquid.py +7 -6
  14. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/kucoin.py +15 -31
  15. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/kucoinfutures.py +2 -2
  16. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/okx.py +9 -9
  17. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/exchange.py +13 -1
  18. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/binance.py +0 -9
  19. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bingx.py +5 -1
  20. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bybit.py +61 -3
  21. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/htx.py +26 -2
  22. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/hyperliquid.py +7 -6
  23. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/kucoin.py +15 -31
  24. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/kucoinfutures.py +2 -2
  25. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/okx.py +9 -9
  26. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/__init__.py +1 -1
  27. {ccxt-4.4.20 → ccxt-4.4.21/ccxt.egg-info}/PKG-INFO +4 -4
  28. {ccxt-4.4.20 → ccxt-4.4.21}/package.json +1 -1
  29. {ccxt-4.4.20 → ccxt-4.4.21}/LICENSE.txt +0 -0
  30. {ccxt-4.4.20 → ccxt-4.4.21}/MANIFEST.in +0 -0
  31. {ccxt-4.4.20 → ccxt-4.4.21}/README.rst +0 -0
  32. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/__init__.py +0 -0
  33. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/ace.py +0 -0
  34. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/alpaca.py +0 -0
  35. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/ascendex.py +0 -0
  36. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bequant.py +0 -0
  37. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bigone.py +0 -0
  38. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/binance.py +0 -0
  39. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/binancecoinm.py +0 -0
  40. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/binanceus.py +0 -0
  41. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/binanceusdm.py +0 -0
  42. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bingx.py +0 -0
  43. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bit2c.py +0 -0
  44. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitbank.py +0 -0
  45. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitbns.py +0 -0
  46. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitcoincom.py +0 -0
  47. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitfinex.py +0 -0
  48. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitfinex2.py +0 -0
  49. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitflyer.py +0 -0
  50. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitget.py +0 -0
  51. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bithumb.py +0 -0
  52. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitmart.py +0 -0
  53. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitmex.py +0 -0
  54. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitopro.py +0 -0
  55. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitpanda.py +0 -0
  56. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitrue.py +0 -0
  57. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitso.py +0 -0
  58. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitstamp.py +0 -0
  59. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitteam.py +0 -0
  60. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bitvavo.py +0 -0
  61. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/bl3p.py +0 -0
  62. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/blockchaincom.py +0 -0
  63. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/blofin.py +0 -0
  64. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/btcalpha.py +0 -0
  65. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/btcbox.py +0 -0
  66. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/btcmarkets.py +0 -0
  67. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/btcturk.py +0 -0
  68. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/cex.py +0 -0
  69. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinbase.py +0 -0
  70. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinbaseadvanced.py +0 -0
  71. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinbaseexchange.py +0 -0
  72. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinbaseinternational.py +0 -0
  73. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coincheck.py +0 -0
  74. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinex.py +0 -0
  75. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinlist.py +0 -0
  76. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinmate.py +0 -0
  77. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinmetro.py +0 -0
  78. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinone.py +0 -0
  79. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinsph.py +0 -0
  80. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/coinspot.py +0 -0
  81. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/cryptocom.py +0 -0
  82. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/currencycom.py +0 -0
  83. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/delta.py +0 -0
  84. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/deribit.py +0 -0
  85. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/digifinex.py +0 -0
  86. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/exmo.py +0 -0
  87. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/fmfwio.py +0 -0
  88. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/gate.py +0 -0
  89. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/gateio.py +0 -0
  90. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/gemini.py +0 -0
  91. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/hashkey.py +0 -0
  92. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/hitbtc.py +0 -0
  93. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/hollaex.py +0 -0
  94. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/htx.py +0 -0
  95. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/huobi.py +0 -0
  96. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/huobijp.py +0 -0
  97. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/hyperliquid.py +0 -0
  98. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/idex.py +0 -0
  99. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/independentreserve.py +0 -0
  100. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/indodax.py +0 -0
  101. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/kraken.py +0 -0
  102. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/krakenfutures.py +0 -0
  103. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/kuna.py +0 -0
  104. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/latoken.py +0 -0
  105. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/lbank.py +0 -0
  106. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/luno.py +0 -0
  107. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/lykke.py +0 -0
  108. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/mercado.py +0 -0
  109. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/mexc.py +0 -0
  110. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/ndax.py +0 -0
  111. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/novadax.py +0 -0
  112. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/oceanex.py +0 -0
  113. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/okcoin.py +0 -0
  114. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/onetrading.py +0 -0
  115. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/oxfun.py +0 -0
  116. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/p2b.py +0 -0
  117. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/paradex.py +0 -0
  118. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/paymium.py +0 -0
  119. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/phemex.py +0 -0
  120. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/poloniex.py +0 -0
  121. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/poloniexfutures.py +0 -0
  122. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/probit.py +0 -0
  123. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/timex.py +0 -0
  124. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/tokocrypto.py +0 -0
  125. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/tradeogre.py +0 -0
  126. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/upbit.py +0 -0
  127. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/vertex.py +0 -0
  128. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/wavesexchange.py +0 -0
  129. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/wazirx.py +0 -0
  130. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/whitebit.py +0 -0
  131. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/woo.py +0 -0
  132. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/woofipro.py +0 -0
  133. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/xt.py +0 -0
  134. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/yobit.py +0 -0
  135. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/zaif.py +0 -0
  136. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/abstract/zonda.py +0 -0
  137. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/ace.py +0 -0
  138. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/alpaca.py +0 -0
  139. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/ascendex.py +0 -0
  140. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/ace.py +0 -0
  141. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/alpaca.py +0 -0
  142. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/ascendex.py +0 -0
  143. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/__init__.py +0 -0
  144. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/throttler.py +0 -0
  145. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/__init__.py +0 -0
  146. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  147. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/cache.py +0 -0
  148. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/client.py +0 -0
  149. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/fast_client.py +0 -0
  150. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/functions.py +0 -0
  151. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/future.py +0 -0
  152. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/order_book.py +0 -0
  153. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  154. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bequant.py +0 -0
  155. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bigone.py +0 -0
  156. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/binancecoinm.py +0 -0
  157. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/binanceus.py +0 -0
  158. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/binanceusdm.py +0 -0
  159. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bit2c.py +0 -0
  160. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitbank.py +0 -0
  161. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitbay.py +0 -0
  162. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitbns.py +0 -0
  163. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitcoincom.py +0 -0
  164. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitfinex.py +0 -0
  165. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitfinex2.py +0 -0
  166. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitflyer.py +0 -0
  167. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitget.py +0 -0
  168. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bithumb.py +0 -0
  169. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitmart.py +0 -0
  170. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitmex.py +0 -0
  171. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitopro.py +0 -0
  172. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitpanda.py +0 -0
  173. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitrue.py +0 -0
  174. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitso.py +0 -0
  175. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitstamp.py +0 -0
  176. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitteam.py +0 -0
  177. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bitvavo.py +0 -0
  178. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/bl3p.py +0 -0
  179. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/blockchaincom.py +0 -0
  180. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/blofin.py +0 -0
  181. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/btcalpha.py +0 -0
  182. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/btcbox.py +0 -0
  183. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/btcmarkets.py +0 -0
  184. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/btcturk.py +0 -0
  185. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/cex.py +0 -0
  186. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinbase.py +0 -0
  187. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinbaseadvanced.py +0 -0
  188. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinbaseexchange.py +0 -0
  189. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinbaseinternational.py +0 -0
  190. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coincheck.py +0 -0
  191. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinex.py +0 -0
  192. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinlist.py +0 -0
  193. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinmate.py +0 -0
  194. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinmetro.py +0 -0
  195. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinone.py +0 -0
  196. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinsph.py +0 -0
  197. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/coinspot.py +0 -0
  198. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/cryptocom.py +0 -0
  199. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/currencycom.py +0 -0
  200. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/delta.py +0 -0
  201. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/deribit.py +0 -0
  202. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/digifinex.py +0 -0
  203. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/exmo.py +0 -0
  204. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/fmfwio.py +0 -0
  205. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/gate.py +0 -0
  206. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/gateio.py +0 -0
  207. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/gemini.py +0 -0
  208. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/hashkey.py +0 -0
  209. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/hitbtc.py +0 -0
  210. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/hitbtc3.py +0 -0
  211. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/hollaex.py +0 -0
  212. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/huobi.py +0 -0
  213. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/huobijp.py +0 -0
  214. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/idex.py +0 -0
  215. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/independentreserve.py +0 -0
  216. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/indodax.py +0 -0
  217. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/kraken.py +0 -0
  218. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/krakenfutures.py +0 -0
  219. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/kuna.py +0 -0
  220. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/latoken.py +0 -0
  221. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/lbank.py +0 -0
  222. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/luno.py +0 -0
  223. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/lykke.py +0 -0
  224. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/mercado.py +0 -0
  225. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/mexc.py +0 -0
  226. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/ndax.py +0 -0
  227. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/novadax.py +0 -0
  228. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/oceanex.py +0 -0
  229. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/okcoin.py +0 -0
  230. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/onetrading.py +0 -0
  231. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/oxfun.py +0 -0
  232. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/p2b.py +0 -0
  233. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/paradex.py +0 -0
  234. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/paymium.py +0 -0
  235. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/phemex.py +0 -0
  236. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/poloniex.py +0 -0
  237. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/poloniexfutures.py +0 -0
  238. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/probit.py +0 -0
  239. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/timex.py +0 -0
  240. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/tokocrypto.py +0 -0
  241. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/tradeogre.py +0 -0
  242. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/upbit.py +0 -0
  243. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/vertex.py +0 -0
  244. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/wavesexchange.py +0 -0
  245. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/wazirx.py +0 -0
  246. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/whitebit.py +0 -0
  247. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/woo.py +0 -0
  248. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/woofipro.py +0 -0
  249. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/xt.py +0 -0
  250. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/yobit.py +0 -0
  251. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/zaif.py +0 -0
  252. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/async_support/zonda.py +0 -0
  253. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/__init__.py +0 -0
  254. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/decimal_to_precision.py +0 -0
  255. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/errors.py +0 -0
  256. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/precise.py +0 -0
  257. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/base/types.py +0 -0
  258. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bequant.py +0 -0
  259. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bigone.py +0 -0
  260. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/binancecoinm.py +0 -0
  261. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/binanceus.py +0 -0
  262. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/binanceusdm.py +0 -0
  263. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bit2c.py +0 -0
  264. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitbank.py +0 -0
  265. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitbay.py +0 -0
  266. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitbns.py +0 -0
  267. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitcoincom.py +0 -0
  268. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitfinex.py +0 -0
  269. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitfinex2.py +0 -0
  270. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitflyer.py +0 -0
  271. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitget.py +0 -0
  272. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bithumb.py +0 -0
  273. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitmart.py +0 -0
  274. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitmex.py +0 -0
  275. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitopro.py +0 -0
  276. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitpanda.py +0 -0
  277. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitrue.py +0 -0
  278. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitso.py +0 -0
  279. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitstamp.py +0 -0
  280. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitteam.py +0 -0
  281. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bitvavo.py +0 -0
  282. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/bl3p.py +0 -0
  283. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/blockchaincom.py +0 -0
  284. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/blofin.py +0 -0
  285. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/btcalpha.py +0 -0
  286. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/btcbox.py +0 -0
  287. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/btcmarkets.py +0 -0
  288. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/btcturk.py +0 -0
  289. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/cex.py +0 -0
  290. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinbase.py +0 -0
  291. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinbaseadvanced.py +0 -0
  292. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinbaseexchange.py +0 -0
  293. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinbaseinternational.py +0 -0
  294. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coincheck.py +0 -0
  295. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinex.py +0 -0
  296. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinlist.py +0 -0
  297. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinmate.py +0 -0
  298. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinmetro.py +0 -0
  299. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinone.py +0 -0
  300. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinsph.py +0 -0
  301. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/coinspot.py +0 -0
  302. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/cryptocom.py +0 -0
  303. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/currencycom.py +0 -0
  304. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/delta.py +0 -0
  305. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/deribit.py +0 -0
  306. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/digifinex.py +0 -0
  307. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/exmo.py +0 -0
  308. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/fmfwio.py +0 -0
  309. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/gate.py +0 -0
  310. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/gateio.py +0 -0
  311. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/gemini.py +0 -0
  312. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/hashkey.py +0 -0
  313. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/hitbtc.py +0 -0
  314. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/hitbtc3.py +0 -0
  315. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/hollaex.py +0 -0
  316. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/huobi.py +0 -0
  317. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/huobijp.py +0 -0
  318. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/idex.py +0 -0
  319. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/independentreserve.py +0 -0
  320. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/indodax.py +0 -0
  321. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/kraken.py +0 -0
  322. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/krakenfutures.py +0 -0
  323. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/kuna.py +0 -0
  324. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/latoken.py +0 -0
  325. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/lbank.py +0 -0
  326. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/luno.py +0 -0
  327. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/lykke.py +0 -0
  328. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/mercado.py +0 -0
  329. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/mexc.py +0 -0
  330. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/ndax.py +0 -0
  331. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/novadax.py +0 -0
  332. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/oceanex.py +0 -0
  333. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/okcoin.py +0 -0
  334. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/onetrading.py +0 -0
  335. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/oxfun.py +0 -0
  336. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/p2b.py +0 -0
  337. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/paradex.py +0 -0
  338. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/paymium.py +0 -0
  339. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/phemex.py +0 -0
  340. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/poloniex.py +0 -0
  341. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/poloniexfutures.py +0 -0
  342. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/alpaca.py +0 -0
  343. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/ascendex.py +0 -0
  344. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bequant.py +0 -0
  345. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/binance.py +0 -0
  346. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/binancecoinm.py +0 -0
  347. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/binanceus.py +0 -0
  348. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/binanceusdm.py +0 -0
  349. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bingx.py +0 -0
  350. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitcoincom.py +0 -0
  351. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitfinex.py +0 -0
  352. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitfinex2.py +0 -0
  353. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitget.py +0 -0
  354. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bithumb.py +0 -0
  355. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitmart.py +0 -0
  356. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitmex.py +0 -0
  357. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitopro.py +0 -0
  358. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitpanda.py +0 -0
  359. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitrue.py +0 -0
  360. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitstamp.py +0 -0
  361. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bitvavo.py +0 -0
  362. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/blockchaincom.py +0 -0
  363. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/blofin.py +0 -0
  364. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/bybit.py +0 -0
  365. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/cex.py +0 -0
  366. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinbase.py +0 -0
  367. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinbaseadvanced.py +0 -0
  368. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinbaseexchange.py +0 -0
  369. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinbaseinternational.py +0 -0
  370. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coincheck.py +0 -0
  371. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinex.py +0 -0
  372. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/coinone.py +0 -0
  373. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/cryptocom.py +0 -0
  374. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/currencycom.py +0 -0
  375. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/deribit.py +0 -0
  376. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/exmo.py +0 -0
  377. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/gate.py +0 -0
  378. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/gateio.py +0 -0
  379. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/gemini.py +0 -0
  380. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/hashkey.py +0 -0
  381. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/hitbtc.py +0 -0
  382. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/hollaex.py +0 -0
  383. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/htx.py +0 -0
  384. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/huobi.py +0 -0
  385. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/huobijp.py +0 -0
  386. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/hyperliquid.py +0 -0
  387. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/idex.py +0 -0
  388. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/independentreserve.py +0 -0
  389. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/kraken.py +0 -0
  390. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/krakenfutures.py +0 -0
  391. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/kucoin.py +0 -0
  392. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/kucoinfutures.py +0 -0
  393. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/lbank.py +0 -0
  394. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/luno.py +0 -0
  395. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/mexc.py +0 -0
  396. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/ndax.py +0 -0
  397. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/okcoin.py +0 -0
  398. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/okx.py +0 -0
  399. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/onetrading.py +0 -0
  400. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/oxfun.py +0 -0
  401. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/p2b.py +0 -0
  402. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/paradex.py +0 -0
  403. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/phemex.py +0 -0
  404. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/poloniex.py +0 -0
  405. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/poloniexfutures.py +0 -0
  406. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/probit.py +0 -0
  407. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/upbit.py +0 -0
  408. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/vertex.py +0 -0
  409. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/wazirx.py +0 -0
  410. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/whitebit.py +0 -0
  411. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/woo.py +0 -0
  412. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/woofipro.py +0 -0
  413. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/pro/xt.py +0 -0
  414. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/probit.py +0 -0
  415. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/__init__.py +0 -0
  416. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  417. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  418. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  419. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  420. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  421. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  422. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  423. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  424. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  425. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  426. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  427. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  428. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  429. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  430. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  431. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  432. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  433. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  434. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  435. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  436. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  437. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  438. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  439. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  440. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  441. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  442. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  443. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  444. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  445. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  446. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  447. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  448. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  449. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  450. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  451. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  452. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  453. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  454. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  455. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  456. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  457. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  458. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  459. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  460. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  461. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  462. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  463. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  464. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  465. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  466. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  467. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  468. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  469. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  470. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  471. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  472. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  473. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  474. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  475. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  476. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  477. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  478. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  479. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  480. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  481. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  482. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  483. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  484. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  485. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  486. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  487. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  488. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  489. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  490. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/__init__.py +0 -0
  491. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  492. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  493. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  494. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/common.py +0 -0
  495. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  496. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/grammar.py +0 -0
  497. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  498. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/indenter.py +0 -0
  499. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/lark.py +0 -0
  500. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/lexer.py +0 -0
  501. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  502. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  503. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  504. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  505. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  506. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  507. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  508. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  509. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  510. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  511. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  512. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  513. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  514. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  515. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/py.typed +0 -0
  516. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  517. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  518. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  519. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  520. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  521. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tree.py +0 -0
  522. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  523. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  524. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/utils.py +0 -0
  525. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/lark/visitors.py +0 -0
  526. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  527. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  528. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  529. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  530. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  531. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  532. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  533. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  534. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  535. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  536. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  537. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  538. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  539. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  540. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  541. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  542. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  543. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  544. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  545. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  546. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  547. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  548. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  549. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  550. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  551. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  552. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  553. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  554. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  555. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  556. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  557. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  558. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  559. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  560. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  561. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  562. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  563. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  564. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  565. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  566. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  567. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  568. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  569. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  570. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  571. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  572. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  573. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  574. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/common.py +0 -0
  575. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/constants.py +0 -0
  576. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  577. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  578. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  579. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  580. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  581. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  582. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  583. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  584. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  585. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  586. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  587. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  588. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  589. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  590. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  591. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  592. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  593. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  594. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  595. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  596. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  597. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  598. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  599. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  600. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  601. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  602. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  603. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  604. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  605. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  606. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  607. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  608. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  609. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  610. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  611. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  612. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  613. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  614. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  615. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  616. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  617. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  618. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  619. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  620. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  621. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  622. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  623. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  624. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  625. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  626. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  627. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  628. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  629. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/_version.py +0 -0
  630. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  631. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  632. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  633. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  634. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  635. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  636. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  637. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  638. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/toolz/utils.py +0 -0
  639. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  640. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  641. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/test/__init__.py +0 -0
  642. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/test/tests_async.py +0 -0
  643. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/test/tests_helpers.py +0 -0
  644. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/test/tests_init.py +0 -0
  645. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/test/tests_sync.py +0 -0
  646. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/timex.py +0 -0
  647. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/tokocrypto.py +0 -0
  648. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/tradeogre.py +0 -0
  649. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/upbit.py +0 -0
  650. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/vertex.py +0 -0
  651. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/wavesexchange.py +0 -0
  652. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/wazirx.py +0 -0
  653. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/whitebit.py +0 -0
  654. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/woo.py +0 -0
  655. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/woofipro.py +0 -0
  656. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/xt.py +0 -0
  657. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/yobit.py +0 -0
  658. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/zaif.py +0 -0
  659. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt/zonda.py +0 -0
  660. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt.egg-info/SOURCES.txt +0 -0
  661. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt.egg-info/dependency_links.txt +0 -0
  662. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt.egg-info/requires.txt +0 -0
  663. {ccxt-4.4.20 → ccxt-4.4.21}/ccxt.egg-info/top_level.txt +0 -0
  664. {ccxt-4.4.20 → ccxt-4.4.21}/setup.cfg +0 -0
  665. {ccxt-4.4.20 → ccxt-4.4.21}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.20
3
+ Version: 4.4.21
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
@@ -260,13 +260,13 @@ console.log(version, Object.keys(exchanges));
260
260
 
261
261
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
262
262
 
263
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.20/dist/ccxt.browser.min.js
264
- * unpkg: https://unpkg.com/ccxt@4.4.20/dist/ccxt.browser.min.js
263
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.21/dist/ccxt.browser.min.js
264
+ * unpkg: https://unpkg.com/ccxt@4.4.21/dist/ccxt.browser.min.js
265
265
 
266
266
  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.
267
267
 
268
268
  ```HTML
269
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.20/dist/ccxt.browser.min.js"></script>
269
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.21/dist/ccxt.browser.min.js"></script>
270
270
  ```
271
271
 
272
272
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.20'
25
+ __version__ = '4.4.21'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -163,6 +163,7 @@ class ImplicitAPI:
163
163
  private_get_v5_user_del_submember = privateGetV5UserDelSubmember = Entry('v5/user/del-submember', 'private', 'GET', {'cost': 5})
164
164
  private_get_v5_user_submembers = privateGetV5UserSubmembers = Entry('v5/user/submembers', 'private', 'GET', {'cost': 5})
165
165
  private_get_v5_spot_lever_token_order_record = privateGetV5SpotLeverTokenOrderRecord = Entry('v5/spot-lever-token/order-record', 'private', 'GET', {'cost': 1})
166
+ private_get_v5_spot_margin_trade_interest_rate_history = privateGetV5SpotMarginTradeInterestRateHistory = Entry('v5/spot-margin-trade/interest-rate-history', 'private', 'GET', {'cost': 5})
166
167
  private_get_v5_spot_margin_trade_state = privateGetV5SpotMarginTradeState = Entry('v5/spot-margin-trade/state', 'private', 'GET', {'cost': 5})
167
168
  private_get_v5_spot_cross_margin_trade_loan_info = privateGetV5SpotCrossMarginTradeLoanInfo = Entry('v5/spot-cross-margin-trade/loan-info', 'private', 'GET', {'cost': 1})
168
169
  private_get_v5_spot_cross_margin_trade_account = privateGetV5SpotCrossMarginTradeAccount = Entry('v5/spot-cross-margin-trade/account', 'private', 'GET', {'cost': 1})
@@ -20,6 +20,7 @@ class ImplicitAPI:
20
20
  public_get_mark_price_symbol_current = publicGetMarkPriceSymbolCurrent = Entry('mark-price/{symbol}/current', 'public', 'GET', {'cost': 3})
21
21
  public_get_mark_price_all_symbols = publicGetMarkPriceAllSymbols = Entry('mark-price/all-symbols', 'public', 'GET', {'cost': 3})
22
22
  public_get_margin_config = publicGetMarginConfig = Entry('margin/config', 'public', 'GET', {'cost': 25})
23
+ public_get_announcements = publicGetAnnouncements = Entry('announcements', 'public', 'GET', {'cost': 20})
23
24
  public_post_bullet_public = publicPostBulletPublic = Entry('bullet-public', 'public', 'POST', {'cost': 15})
24
25
  private_get_user_info = privateGetUserInfo = Entry('user-info', 'private', 'GET', {'cost': 30})
25
26
  private_get_accounts = privateGetAccounts = Entry('accounts', 'private', 'GET', {'cost': 7.5})
@@ -20,6 +20,7 @@ class ImplicitAPI:
20
20
  public_get_mark_price_symbol_current = publicGetMarkPriceSymbolCurrent = Entry('mark-price/{symbol}/current', 'public', 'GET', {'cost': 3})
21
21
  public_get_mark_price_all_symbols = publicGetMarkPriceAllSymbols = Entry('mark-price/all-symbols', 'public', 'GET', {'cost': 3})
22
22
  public_get_margin_config = publicGetMarginConfig = Entry('margin/config', 'public', 'GET', {'cost': 25})
23
+ public_get_announcements = publicGetAnnouncements = Entry('announcements', 'public', 'GET', {'cost': 20})
23
24
  public_post_bullet_public = publicPostBulletPublic = Entry('bullet-public', 'public', 'POST', {'cost': 15})
24
25
  private_get_user_info = privateGetUserInfo = Entry('user-info', 'private', 'GET', {'cost': 30})
25
26
  private_get_accounts = privateGetAccounts = Entry('accounts', 'private', 'GET', {'cost': 7.5})
@@ -153,6 +153,9 @@ class ImplicitAPI:
153
153
  private_get_account_fixed_loan_borrowing_limit = privateGetAccountFixedLoanBorrowingLimit = Entry('account/fixed-loan/borrowing-limit', 'private', 'GET', {'cost': 4})
154
154
  private_get_account_fixed_loan_borrowing_quote = privateGetAccountFixedLoanBorrowingQuote = Entry('account/fixed-loan/borrowing-quote', 'private', 'GET', {'cost': 5})
155
155
  private_get_account_fixed_loan_borrowing_orders_list = privateGetAccountFixedLoanBorrowingOrdersList = Entry('account/fixed-loan/borrowing-orders-list', 'private', 'GET', {'cost': 5})
156
+ private_get_account_spot_manual_borrow_repay = privateGetAccountSpotManualBorrowRepay = Entry('account/spot-manual-borrow-repay', 'private', 'GET', {'cost': 10})
157
+ private_get_account_set_auto_repay = privateGetAccountSetAutoRepay = Entry('account/set-auto-repay', 'private', 'GET', {'cost': 4})
158
+ private_get_account_spot_borrow_repay_history = privateGetAccountSpotBorrowRepayHistory = Entry('account/spot-borrow-repay-history', 'private', 'GET', {'cost': 4})
156
159
  private_get_users_subaccount_list = privateGetUsersSubaccountList = Entry('users/subaccount/list', 'private', 'GET', {'cost': 10})
157
160
  private_get_account_subaccount_balances = privateGetAccountSubaccountBalances = Entry('account/subaccount/balances', 'private', 'GET', {'cost': 3.3333333333333335})
158
161
  private_get_asset_subaccount_balances = privateGetAssetSubaccountBalances = Entry('asset/subaccount/balances', 'private', 'GET', {'cost': 3.3333333333333335})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.20'
7
+ __version__ = '4.4.21'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.20'
5
+ __version__ = '4.4.21'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -11138,15 +11138,6 @@ class binance(Exchange, ImplicitAPI):
11138
11138
  #
11139
11139
  return self.parse_borrow_rate_history(response, code, since, limit)
11140
11140
 
11141
- def parse_borrow_rate_history(self, response, code, since, limit):
11142
- result = []
11143
- for i in range(0, len(response)):
11144
- item = response[i]
11145
- borrowRate = self.parse_borrow_rate(item)
11146
- result.append(borrowRate)
11147
- sorted = self.sort_by(result, 'timestamp')
11148
- return self.filter_by_currency_since_limit(sorted, code, since, limit)
11149
-
11150
11141
  def parse_borrow_rate(self, info, currency: Currency = None):
11151
11142
  #
11152
11143
  # {
@@ -4981,7 +4981,7 @@ class bingx(Exchange, ImplicitAPI):
4981
4981
  async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
4982
4982
  """
4983
4983
  make a withdrawal
4984
- :see: https://bingx-api.github.io/docs/#/common/account-api.html#Withdraw
4984
+ :see: https://bingx-api.github.io/docs/#/en-us/spot/wallet-api.html#Withdraw
4985
4985
  :param str code: unified currency code
4986
4986
  :param float amount: the amount to withdraw
4987
4987
  :param str address: the address to withdraw to
@@ -4990,6 +4990,8 @@ class bingx(Exchange, ImplicitAPI):
4990
4990
  :param int [params.walletType]: 1 fund account, 2 standard account, 3 perpetual account
4991
4991
  :returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
4992
4992
  """
4993
+ tag, params = self.handle_withdraw_tag_and_params(tag, params)
4994
+ self.check_address(address)
4993
4995
  await self.load_markets()
4994
4996
  currency = self.currency(code)
4995
4997
  walletType = self.safe_integer(params, 'walletType')
@@ -5006,6 +5008,8 @@ class bingx(Exchange, ImplicitAPI):
5006
5008
  network = self.safe_string_upper(params, 'network')
5007
5009
  if network is not None:
5008
5010
  request['network'] = self.network_code_to_id(network)
5011
+ if tag is not None:
5012
+ request['addressTag'] = tag
5009
5013
  params = self.omit(params, ['walletType', 'network'])
5010
5014
  response = await self.walletsV1PrivatePostCapitalWithdrawApply(self.extend(request, params))
5011
5015
  data = self.safe_value(response, 'data')
@@ -385,6 +385,7 @@ class bybit(Exchange, ImplicitAPI):
385
385
  # spot leverage token
386
386
  'v5/spot-lever-token/order-record': 1, # 50/s => cost = 50 / 50 = 1
387
387
  # spot margin trade
388
+ 'v5/spot-margin-trade/interest-rate-history': 5,
388
389
  'v5/spot-margin-trade/state': 5,
389
390
  'v5/spot-cross-margin-trade/loan-info': 1, # 50/s => cost = 50 / 50 = 1
390
391
  'v5/spot-cross-margin-trade/account': 1, # 50/s => cost = 50 / 50 = 1
@@ -6776,12 +6777,22 @@ class bybit(Exchange, ImplicitAPI):
6776
6777
  # "timestamp": 1666734490778
6777
6778
  # }
6778
6779
  #
6780
+ # fetchBorrowRateHistory
6781
+ # {
6782
+ # "timestamp": 1721469600000,
6783
+ # "currency": "USDC",
6784
+ # "hourlyBorrowRate": "0.000014621596",
6785
+ # "vipLevel": "No VIP"
6786
+ # }
6787
+ #
6779
6788
  timestamp = self.safe_integer(info, 'timestamp')
6780
- currencyId = self.safe_string(info, 'coin')
6789
+ currencyId = self.safe_string_2(info, 'coin', 'currency')
6790
+ hourlyBorrowRate = self.safe_number(info, 'hourlyBorrowRate')
6791
+ period = 3600000 if (hourlyBorrowRate is not None) else 86400000 # 1h or 1d
6781
6792
  return {
6782
6793
  'currency': self.safe_currency_code(currencyId, currency),
6783
- 'rate': self.safe_number(info, 'interestRate'),
6784
- 'period': 86400000, # Daily
6794
+ 'rate': self.safe_number(info, 'interestRate', hourlyBorrowRate),
6795
+ 'period': period, # Daily
6785
6796
  'timestamp': timestamp,
6786
6797
  'datetime': self.iso8601(timestamp),
6787
6798
  'info': info,
@@ -6831,6 +6842,53 @@ class bybit(Exchange, ImplicitAPI):
6831
6842
  interest = self.parse_borrow_interests(rows, None)
6832
6843
  return self.filter_by_currency_since_limit(interest, code, since, limit)
6833
6844
 
6845
+ async def fetch_borrow_rate_history(self, code: str, since: Int = None, limit: Int = None, params={}):
6846
+ """
6847
+ retrieves a history of a currencies borrow interest rate at specific time slots
6848
+ :see: https://bybit-exchange.github.io/docs/v5/spot-margin-uta/historical-interest
6849
+ :param str code: unified currency code
6850
+ :param int [since]: timestamp for the earliest borrow rate
6851
+ :param int [limit]: the maximum number of `borrow rate structures <https://docs.ccxt.com/#/?id=borrow-rate-structure>` to retrieve
6852
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6853
+ :param int [params.until]: the latest time in ms to fetch entries for
6854
+ :returns dict[]: an array of `borrow rate structures <https://docs.ccxt.com/#/?id=borrow-rate-structure>`
6855
+ """
6856
+ await self.load_markets()
6857
+ currency = self.currency(code)
6858
+ request: dict = {
6859
+ 'currency': currency['id'],
6860
+ }
6861
+ if since is None:
6862
+ since = self.milliseconds() - 86400000 * 30 # last 30 days
6863
+ request['startTime'] = since
6864
+ endTime = self.safe_integer_2(params, 'until', 'endTime')
6865
+ params = self.omit(params, ['until'])
6866
+ if endTime is None:
6867
+ endTime = since + 86400000 * 30 # since + 30 days
6868
+ request['endTime'] = endTime
6869
+ response = await self.privateGetV5SpotMarginTradeInterestRateHistory(self.extend(request, params))
6870
+ #
6871
+ # {
6872
+ # "retCode": 0,
6873
+ # "retMsg": "OK",
6874
+ # "result": {
6875
+ # "list": [
6876
+ # {
6877
+ # "timestamp": 1721469600000,
6878
+ # "currency": "USDC",
6879
+ # "hourlyBorrowRate": "0.000014621596",
6880
+ # "vipLevel": "No VIP"
6881
+ # }
6882
+ # ]
6883
+ # },
6884
+ # "retExtInfo": "{}",
6885
+ # "time": 1721899048991
6886
+ # }
6887
+ #
6888
+ data = self.safe_dict(response, 'result')
6889
+ rows = self.safe_list(data, 'list', [])
6890
+ return self.parse_borrow_rate_history(rows, code, since, limit)
6891
+
6834
6892
  def parse_borrow_interest(self, info: dict, market: Market = None):
6835
6893
  #
6836
6894
  # {
@@ -1628,6 +1628,10 @@ class htx(Exchange, ImplicitAPI):
1628
1628
  async def fetch_markets(self, params={}) -> List[Market]:
1629
1629
  """
1630
1630
  retrieves data on all markets for huobi
1631
+ :see: https://huobiapi.github.io/docs/spot/v1/en/#get-all-supported-trading-symbol-v1-deprecated
1632
+ :see: https://huobiapi.github.io/docs/dm/v1/en/#get-contract-info
1633
+ :see: https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#query-swap-info
1634
+ :see: https://huobiapi.github.io/docs/usdt_swap/v1/en/#general-query-swap-info
1631
1635
  :param dict [params]: extra parameters specific to the exchange API endpoint
1632
1636
  :returns dict[]: an array of objects representing market data
1633
1637
  """
@@ -1651,7 +1655,19 @@ class htx(Exchange, ImplicitAPI):
1651
1655
  allMarkets = self.array_concat(allMarkets, promises[i])
1652
1656
  return allMarkets
1653
1657
 
1654
- async def fetch_markets_by_type_and_sub_type(self, type, subType, params={}):
1658
+ async def fetch_markets_by_type_and_sub_type(self, type: Str, subType: Str, params={}):
1659
+ """
1660
+ * @ignore
1661
+ retrieves data on all markets of a certain type and/or subtype
1662
+ :see: https://huobiapi.github.io/docs/spot/v1/en/#get-all-supported-trading-symbol-v1-deprecated
1663
+ :see: https://huobiapi.github.io/docs/dm/v1/en/#get-contract-info
1664
+ :see: https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#query-swap-info
1665
+ :see: https://huobiapi.github.io/docs/usdt_swap/v1/en/#general-query-swap-info
1666
+ :param str [type]: 'spot', 'swap' or 'future'
1667
+ :param str [subType]: 'linear' or 'inverse'
1668
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1669
+ :returns dict[]: an array of objects representing market data
1670
+ """
1655
1671
  isSpot = (type == 'spot')
1656
1672
  request: dict = {}
1657
1673
  response = None
@@ -3015,7 +3031,15 @@ class htx(Exchange, ImplicitAPI):
3015
3031
  'code': None,
3016
3032
  }
3017
3033
 
3018
- async def fetch_account_id_by_type(self, type, marginMode=None, symbol=None, params={}):
3034
+ async def fetch_account_id_by_type(self, type: str, marginMode: Str = None, symbol: Str = None, params={}):
3035
+ """
3036
+ fetch all the accounts by a type and marginModeassociated with a profile
3037
+ :see: https://huobiapi.github.io/docs/spot/v1/en/#get-all-accounts-of-the-current-user
3038
+ :param str type: 'spot', 'swap' or 'future
3039
+ :param str [marginMode]: 'cross' or 'isolated'
3040
+ :param dict [params]: extra parameters specific to the exchange API endpoint
3041
+ :returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
3042
+ """
3019
3043
  accounts = await self.load_accounts()
3020
3044
  accountId = self.safe_value_2(params, 'accountId', 'account-id')
3021
3045
  if accountId is not None:
@@ -639,17 +639,17 @@ class hyperliquid(Exchange, ImplicitAPI):
639
639
  code = self.safe_currency_code(self.safe_string(balance, 'coin'))
640
640
  account = self.account()
641
641
  total = self.safe_string(balance, 'total')
642
- free = self.safe_string(balance, 'hold')
642
+ used = self.safe_string(balance, 'hold')
643
643
  account['total'] = total
644
- account['used'] = free
644
+ account['used'] = used
645
645
  spotBalances[code] = account
646
646
  return self.safe_balance(spotBalances)
647
647
  data = self.safe_dict(response, 'marginSummary', {})
648
648
  result: dict = {
649
649
  'info': response,
650
650
  'USDC': {
651
- 'total': self.safe_float(data, 'accountValue'),
652
- 'used': self.safe_float(data, 'totalMarginUsed'),
651
+ 'total': self.safe_number(data, 'accountValue'),
652
+ 'free': self.safe_number(response, 'withdrawable'),
653
653
  },
654
654
  }
655
655
  timestamp = self.safe_integer(response, 'time')
@@ -2113,10 +2113,11 @@ class hyperliquid(Exchange, ImplicitAPI):
2113
2113
  leverage = self.safe_dict(entry, 'leverage', {})
2114
2114
  marginMode = self.safe_string(leverage, 'type')
2115
2115
  isIsolated = (marginMode == 'isolated')
2116
- size = self.safe_number(entry, 'szi')
2116
+ size = self.safe_string(entry, 'szi')
2117
2117
  side = None
2118
2118
  if size is not None:
2119
- side = 'long' if (size > 0) else 'short'
2119
+ side = 'long' if Precise.string_gt(size, '0') else 'short'
2120
+ size = Precise.string_abs(size)
2120
2121
  unrealizedPnl = self.safe_number(entry, 'unrealizedPnl')
2121
2122
  initialMargin = self.safe_number(entry, 'marginUsed')
2122
2123
  percentage = unrealizedPnl / initialMargin * 100
@@ -184,6 +184,7 @@ class kucoin(Exchange, ImplicitAPI):
184
184
  'mark-price/{symbol}/current': 3, # 2PW
185
185
  'mark-price/all-symbols': 3,
186
186
  'margin/config': 25, # 25SW
187
+ 'announcements': 20, # 20W
187
188
  },
188
189
  'post': {
189
190
  # ws
@@ -473,6 +474,7 @@ class kucoin(Exchange, ImplicitAPI):
473
474
  'precisionMode': TICK_SIZE,
474
475
  'exceptions': {
475
476
  'exact': {
477
+ 'The order does not exist.': OrderNotFound,
476
478
  'order not exist': OrderNotFound,
477
479
  'order not exist.': OrderNotFound, # duplicated error temporarily
478
480
  'order_not_exist': OrderNotFound, # {"code":"order_not_exist","msg":"order_not_exist"} ¯\_(ツ)_/¯
@@ -673,6 +675,7 @@ class kucoin(Exchange, ImplicitAPI):
673
675
  'currencies/{currency}': 'v3',
674
676
  'symbols': 'v2',
675
677
  'mark-price/all-symbols': 'v3',
678
+ 'announcements': 'v3',
676
679
  },
677
680
  },
678
681
  'private': {
@@ -1530,38 +1533,28 @@ class kucoin(Exchange, ImplicitAPI):
1530
1533
  # "chain": "ERC20"
1531
1534
  # }
1532
1535
  #
1536
+ minWithdrawFee = self.safe_number(fee, 'withdrawMinFee')
1533
1537
  result: dict = {
1534
1538
  'info': fee,
1535
1539
  'withdraw': {
1540
+ 'fee': minWithdrawFee,
1541
+ 'percentage': False,
1542
+ },
1543
+ 'deposit': {
1536
1544
  'fee': None,
1537
1545
  'percentage': None,
1538
1546
  },
1547
+ 'networks': {},
1548
+ }
1549
+ networkId = self.safe_string(fee, 'chain')
1550
+ networkCode = self.network_id_to_code(networkId, self.safe_string(currency, 'code'))
1551
+ result['networks'][networkCode] = {
1552
+ 'withdraw': minWithdrawFee,
1539
1553
  'deposit': {
1540
1554
  'fee': None,
1541
1555
  'percentage': None,
1542
1556
  },
1543
- 'networks': {},
1544
1557
  }
1545
- isWithdrawEnabled = self.safe_bool(fee, 'isWithdrawEnabled', True)
1546
- minFee = None
1547
- if isWithdrawEnabled:
1548
- result['withdraw']['percentage'] = False
1549
- chains = self.safe_list(fee, 'chains', [])
1550
- for i in range(0, len(chains)):
1551
- chain = chains[i]
1552
- networkId = self.safe_string(chain, 'chainId')
1553
- networkCode = self.network_id_to_code(networkId, self.safe_string(currency, 'code'))
1554
- withdrawFee = self.safe_string(chain, 'withdrawalMinFee')
1555
- if minFee is None or (Precise.string_lt(withdrawFee, minFee)):
1556
- minFee = withdrawFee
1557
- result['networks'][networkCode] = {
1558
- 'withdraw': self.parse_number(withdrawFee),
1559
- 'deposit': {
1560
- 'fee': None,
1561
- 'percentage': None,
1562
- },
1563
- }
1564
- result['withdraw']['fee'] = self.parse_number(minFee)
1565
1558
  return result
1566
1559
 
1567
1560
  def is_futures_method(self, methodName, params):
@@ -2921,7 +2914,7 @@ class kucoin(Exchange, ImplicitAPI):
2921
2914
  },
2922
2915
  'status': status,
2923
2916
  'lastTradeTimestamp': None,
2924
- 'average': None,
2917
+ 'average': self.safe_string(order, 'avgDealPrice'),
2925
2918
  'trades': None,
2926
2919
  }, market)
2927
2920
 
@@ -4154,15 +4147,6 @@ class kucoin(Exchange, ImplicitAPI):
4154
4147
  return config['v1']
4155
4148
  return self.safe_value(config, 'cost', 1)
4156
4149
 
4157
- def parse_borrow_rate_history(self, response, code, since, limit):
4158
- result = []
4159
- for i in range(0, len(response)):
4160
- item = response[i]
4161
- borrowRate = self.parse_borrow_rate(item)
4162
- result.append(borrowRate)
4163
- sorted = self.sort_by(result, 'timestamp')
4164
- return self.filter_by_currency_since_limit(sorted, code, since, limit)
4165
-
4166
4150
  def parse_borrow_rate(self, info, currency: Currency = None):
4167
4151
  #
4168
4152
  # {
@@ -2103,8 +2103,8 @@ class kucoinfutures(kucoin, ImplicitAPI):
2103
2103
  amount = self.safe_string(order, 'size')
2104
2104
  filled = self.safe_string(order, 'filledSize')
2105
2105
  cost = self.safe_string(order, 'filledValue')
2106
- average = None
2107
- if Precise.string_gt(filled, '0'):
2106
+ average = self.safe_string(order, 'avgDealPrice')
2107
+ if (average is None) and Precise.string_gt(filled, '0'):
2108
2108
  contractSize = self.safe_string(market, 'contractSize')
2109
2109
  if market['linear']:
2110
2110
  average = Precise.string_div(cost, Precise.string_mul(contractSize, filled))
@@ -18,6 +18,7 @@ from ccxt.base.errors import AccountSuspended
18
18
  from ccxt.base.errors import ArgumentsRequired
19
19
  from ccxt.base.errors import BadRequest
20
20
  from ccxt.base.errors import BadSymbol
21
+ from ccxt.base.errors import OperationRejected
21
22
  from ccxt.base.errors import ManualInteractionNeeded
22
23
  from ccxt.base.errors import InsufficientFunds
23
24
  from ccxt.base.errors import InvalidAddress
@@ -379,6 +380,9 @@ class okx(Exchange, ImplicitAPI):
379
380
  'account/fixed-loan/borrowing-limit': 4,
380
381
  'account/fixed-loan/borrowing-quote': 5,
381
382
  'account/fixed-loan/borrowing-orders-list': 5,
383
+ 'account/spot-manual-borrow-repay': 10,
384
+ 'account/set-auto-repay': 4,
385
+ 'account/spot-borrow-repay-history': 4,
382
386
  # subaccount
383
387
  'users/subaccount/list': 10,
384
388
  'account/subaccount/balances': 10 / 3,
@@ -910,6 +914,11 @@ class okx(Exchange, ImplicitAPI):
910
914
  '59301': ExchangeError, # Margin adjustment failed for exceeding the max limit
911
915
  '59313': ExchangeError, # Unable to repay. You haven't borrowed any {ccy} {ccyPair} in Quick margin mode.
912
916
  '59401': ExchangeError, # Holdings already reached the limit
917
+ '59410': OperationRejected, # You can only borrow self crypto if it supports borrowing and borrowing is enabled.
918
+ '59411': InsufficientFunds, # Manual borrowing failed. Your account's free margin is insufficient
919
+ '59412': OperationRejected, # Manual borrowing failed. The amount exceeds your borrowing limit.
920
+ '59413': OperationRejected, # You didn't borrow self crypto. No repayment needed.
921
+ '59414': BadRequest, # Manual borrowing failed. The minimum borrowing limit is {param0}.needed.
913
922
  '59500': ExchangeError, # Only the APIKey of the main account has permission
914
923
  '59501': ExchangeError, # Only 50 APIKeys can be created per account
915
924
  '59502': ExchangeError, # Note name cannot be duplicate with the currently created APIKey note name
@@ -6231,15 +6240,6 @@ class okx(Exchange, ImplicitAPI):
6231
6240
  borrowRateHistories[code] = self.filter_by_currency_since_limit(borrowRateHistories[code], code, since, limit)
6232
6241
  return borrowRateHistories
6233
6242
 
6234
- def parse_borrow_rate_history(self, response, code, since, limit):
6235
- result = []
6236
- for i in range(0, len(response)):
6237
- item = response[i]
6238
- borrowRate = self.parse_borrow_rate(item)
6239
- result.append(borrowRate)
6240
- sorted = self.sort_by(result, 'timestamp')
6241
- return self.filter_by_currency_since_limit(sorted, code, since, limit)
6242
-
6243
6243
  async def fetch_borrow_rate_histories(self, codes=None, since: Int = None, limit: Int = None, params={}):
6244
6244
  """
6245
6245
  retrieves a history of a multiple currencies borrow interest rate at specific time slots, returns all currencies if no symbols passed, default is None
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.20'
7
+ __version__ = '4.4.21'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -5445,6 +5445,18 @@ class Exchange(object):
5445
5445
  interests.append(self.parse_borrow_interest(row, market))
5446
5446
  return interests
5447
5447
 
5448
+ def parse_borrow_rate(self, info, currency: Currency = None):
5449
+ raise NotSupported(self.id + ' parseBorrowRate() is not supported yet')
5450
+
5451
+ def parse_borrow_rate_history(self, response, code: Str, since: Int, limit: Int):
5452
+ result = []
5453
+ for i in range(0, len(response)):
5454
+ item = response[i]
5455
+ borrowRate = self.parse_borrow_rate(item)
5456
+ result.append(borrowRate)
5457
+ sorted = self.sort_by(result, 'timestamp')
5458
+ return self.filter_by_currency_since_limit(sorted, code, since, limit)
5459
+
5448
5460
  def parse_isolated_borrow_rates(self, info: Any):
5449
5461
  result = {}
5450
5462
  for i in range(0, len(info)):
@@ -11137,15 +11137,6 @@ class binance(Exchange, ImplicitAPI):
11137
11137
  #
11138
11138
  return self.parse_borrow_rate_history(response, code, since, limit)
11139
11139
 
11140
- def parse_borrow_rate_history(self, response, code, since, limit):
11141
- result = []
11142
- for i in range(0, len(response)):
11143
- item = response[i]
11144
- borrowRate = self.parse_borrow_rate(item)
11145
- result.append(borrowRate)
11146
- sorted = self.sort_by(result, 'timestamp')
11147
- return self.filter_by_currency_since_limit(sorted, code, since, limit)
11148
-
11149
11140
  def parse_borrow_rate(self, info, currency: Currency = None):
11150
11141
  #
11151
11142
  # {
@@ -4980,7 +4980,7 @@ class bingx(Exchange, ImplicitAPI):
4980
4980
  def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
4981
4981
  """
4982
4982
  make a withdrawal
4983
- :see: https://bingx-api.github.io/docs/#/common/account-api.html#Withdraw
4983
+ :see: https://bingx-api.github.io/docs/#/en-us/spot/wallet-api.html#Withdraw
4984
4984
  :param str code: unified currency code
4985
4985
  :param float amount: the amount to withdraw
4986
4986
  :param str address: the address to withdraw to
@@ -4989,6 +4989,8 @@ class bingx(Exchange, ImplicitAPI):
4989
4989
  :param int [params.walletType]: 1 fund account, 2 standard account, 3 perpetual account
4990
4990
  :returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
4991
4991
  """
4992
+ tag, params = self.handle_withdraw_tag_and_params(tag, params)
4993
+ self.check_address(address)
4992
4994
  self.load_markets()
4993
4995
  currency = self.currency(code)
4994
4996
  walletType = self.safe_integer(params, 'walletType')
@@ -5005,6 +5007,8 @@ class bingx(Exchange, ImplicitAPI):
5005
5007
  network = self.safe_string_upper(params, 'network')
5006
5008
  if network is not None:
5007
5009
  request['network'] = self.network_code_to_id(network)
5010
+ if tag is not None:
5011
+ request['addressTag'] = tag
5008
5012
  params = self.omit(params, ['walletType', 'network'])
5009
5013
  response = self.walletsV1PrivatePostCapitalWithdrawApply(self.extend(request, params))
5010
5014
  data = self.safe_value(response, 'data')
@@ -384,6 +384,7 @@ class bybit(Exchange, ImplicitAPI):
384
384
  # spot leverage token
385
385
  'v5/spot-lever-token/order-record': 1, # 50/s => cost = 50 / 50 = 1
386
386
  # spot margin trade
387
+ 'v5/spot-margin-trade/interest-rate-history': 5,
387
388
  'v5/spot-margin-trade/state': 5,
388
389
  'v5/spot-cross-margin-trade/loan-info': 1, # 50/s => cost = 50 / 50 = 1
389
390
  'v5/spot-cross-margin-trade/account': 1, # 50/s => cost = 50 / 50 = 1
@@ -6775,12 +6776,22 @@ class bybit(Exchange, ImplicitAPI):
6775
6776
  # "timestamp": 1666734490778
6776
6777
  # }
6777
6778
  #
6779
+ # fetchBorrowRateHistory
6780
+ # {
6781
+ # "timestamp": 1721469600000,
6782
+ # "currency": "USDC",
6783
+ # "hourlyBorrowRate": "0.000014621596",
6784
+ # "vipLevel": "No VIP"
6785
+ # }
6786
+ #
6778
6787
  timestamp = self.safe_integer(info, 'timestamp')
6779
- currencyId = self.safe_string(info, 'coin')
6788
+ currencyId = self.safe_string_2(info, 'coin', 'currency')
6789
+ hourlyBorrowRate = self.safe_number(info, 'hourlyBorrowRate')
6790
+ period = 3600000 if (hourlyBorrowRate is not None) else 86400000 # 1h or 1d
6780
6791
  return {
6781
6792
  'currency': self.safe_currency_code(currencyId, currency),
6782
- 'rate': self.safe_number(info, 'interestRate'),
6783
- 'period': 86400000, # Daily
6793
+ 'rate': self.safe_number(info, 'interestRate', hourlyBorrowRate),
6794
+ 'period': period, # Daily
6784
6795
  'timestamp': timestamp,
6785
6796
  'datetime': self.iso8601(timestamp),
6786
6797
  'info': info,
@@ -6830,6 +6841,53 @@ class bybit(Exchange, ImplicitAPI):
6830
6841
  interest = self.parse_borrow_interests(rows, None)
6831
6842
  return self.filter_by_currency_since_limit(interest, code, since, limit)
6832
6843
 
6844
+ def fetch_borrow_rate_history(self, code: str, since: Int = None, limit: Int = None, params={}):
6845
+ """
6846
+ retrieves a history of a currencies borrow interest rate at specific time slots
6847
+ :see: https://bybit-exchange.github.io/docs/v5/spot-margin-uta/historical-interest
6848
+ :param str code: unified currency code
6849
+ :param int [since]: timestamp for the earliest borrow rate
6850
+ :param int [limit]: the maximum number of `borrow rate structures <https://docs.ccxt.com/#/?id=borrow-rate-structure>` to retrieve
6851
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6852
+ :param int [params.until]: the latest time in ms to fetch entries for
6853
+ :returns dict[]: an array of `borrow rate structures <https://docs.ccxt.com/#/?id=borrow-rate-structure>`
6854
+ """
6855
+ self.load_markets()
6856
+ currency = self.currency(code)
6857
+ request: dict = {
6858
+ 'currency': currency['id'],
6859
+ }
6860
+ if since is None:
6861
+ since = self.milliseconds() - 86400000 * 30 # last 30 days
6862
+ request['startTime'] = since
6863
+ endTime = self.safe_integer_2(params, 'until', 'endTime')
6864
+ params = self.omit(params, ['until'])
6865
+ if endTime is None:
6866
+ endTime = since + 86400000 * 30 # since + 30 days
6867
+ request['endTime'] = endTime
6868
+ response = self.privateGetV5SpotMarginTradeInterestRateHistory(self.extend(request, params))
6869
+ #
6870
+ # {
6871
+ # "retCode": 0,
6872
+ # "retMsg": "OK",
6873
+ # "result": {
6874
+ # "list": [
6875
+ # {
6876
+ # "timestamp": 1721469600000,
6877
+ # "currency": "USDC",
6878
+ # "hourlyBorrowRate": "0.000014621596",
6879
+ # "vipLevel": "No VIP"
6880
+ # }
6881
+ # ]
6882
+ # },
6883
+ # "retExtInfo": "{}",
6884
+ # "time": 1721899048991
6885
+ # }
6886
+ #
6887
+ data = self.safe_dict(response, 'result')
6888
+ rows = self.safe_list(data, 'list', [])
6889
+ return self.parse_borrow_rate_history(rows, code, since, limit)
6890
+
6833
6891
  def parse_borrow_interest(self, info: dict, market: Market = None):
6834
6892
  #
6835
6893
  # {