ccxt 4.4.16__tar.gz → 4.4.17__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 (664) hide show
  1. {ccxt-4.4.16/ccxt.egg-info → ccxt-4.4.17}/PKG-INFO +4 -4
  2. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/mexc.py +1 -0
  4. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/exchange.py +1 -1
  6. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/binance.py +9 -4
  7. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bingx.py +54 -0
  8. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitvavo.py +2 -2
  9. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bybit.py +6 -3
  10. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinbaseinternational.py +4 -8
  11. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/kuna.py +4 -12
  12. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/mexc.py +1 -0
  13. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/okx.py +33 -1
  14. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/timex.py +4 -8
  15. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/exchange.py +13 -1
  16. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/binance.py +9 -4
  17. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bingx.py +54 -0
  18. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitvavo.py +2 -2
  19. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bybit.py +6 -3
  20. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinbaseinternational.py +4 -8
  21. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/kuna.py +4 -12
  22. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/mexc.py +1 -0
  23. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/okx.py +33 -1
  24. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/__init__.py +1 -1
  25. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitvavo.py +1 -1
  26. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/timex.py +4 -8
  27. {ccxt-4.4.16 → ccxt-4.4.17/ccxt.egg-info}/PKG-INFO +4 -4
  28. {ccxt-4.4.16 → ccxt-4.4.17}/package.json +1 -1
  29. {ccxt-4.4.16 → ccxt-4.4.17}/LICENSE.txt +0 -0
  30. {ccxt-4.4.16 → ccxt-4.4.17}/MANIFEST.in +0 -0
  31. {ccxt-4.4.16 → ccxt-4.4.17}/README.rst +0 -0
  32. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/__init__.py +0 -0
  33. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/ace.py +0 -0
  34. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/alpaca.py +0 -0
  35. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/ascendex.py +0 -0
  36. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bequant.py +0 -0
  37. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bigone.py +0 -0
  38. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/binance.py +0 -0
  39. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/binancecoinm.py +0 -0
  40. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/binanceus.py +0 -0
  41. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/binanceusdm.py +0 -0
  42. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bingx.py +0 -0
  43. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bit2c.py +0 -0
  44. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitbank.py +0 -0
  45. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitbns.py +0 -0
  46. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitcoincom.py +0 -0
  47. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitfinex.py +0 -0
  48. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitfinex2.py +0 -0
  49. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitflyer.py +0 -0
  50. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitget.py +0 -0
  51. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bithumb.py +0 -0
  52. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitmart.py +0 -0
  53. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitmex.py +0 -0
  54. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitopro.py +0 -0
  55. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitpanda.py +0 -0
  56. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitrue.py +0 -0
  57. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitso.py +0 -0
  58. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitstamp.py +0 -0
  59. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitteam.py +0 -0
  60. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bitvavo.py +0 -0
  61. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bl3p.py +0 -0
  62. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/blockchaincom.py +0 -0
  63. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/blofin.py +0 -0
  64. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/btcalpha.py +0 -0
  65. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/btcbox.py +0 -0
  66. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/btcmarkets.py +0 -0
  67. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/btcturk.py +0 -0
  68. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/bybit.py +0 -0
  69. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/cex.py +0 -0
  70. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinbase.py +0 -0
  71. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinbaseadvanced.py +0 -0
  72. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinbaseexchange.py +0 -0
  73. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinbaseinternational.py +0 -0
  74. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coincheck.py +0 -0
  75. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinex.py +0 -0
  76. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinlist.py +0 -0
  77. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinmate.py +0 -0
  78. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinmetro.py +0 -0
  79. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinone.py +0 -0
  80. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinsph.py +0 -0
  81. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/coinspot.py +0 -0
  82. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/cryptocom.py +0 -0
  83. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/currencycom.py +0 -0
  84. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/delta.py +0 -0
  85. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/deribit.py +0 -0
  86. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/digifinex.py +0 -0
  87. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/exmo.py +0 -0
  88. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/fmfwio.py +0 -0
  89. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/gate.py +0 -0
  90. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/gateio.py +0 -0
  91. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/gemini.py +0 -0
  92. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/hashkey.py +0 -0
  93. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/hitbtc.py +0 -0
  94. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/hollaex.py +0 -0
  95. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/htx.py +0 -0
  96. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/huobi.py +0 -0
  97. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/huobijp.py +0 -0
  98. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/hyperliquid.py +0 -0
  99. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/idex.py +0 -0
  100. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/independentreserve.py +0 -0
  101. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/indodax.py +0 -0
  102. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/kraken.py +0 -0
  103. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/krakenfutures.py +0 -0
  104. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/kucoin.py +0 -0
  105. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/kucoinfutures.py +0 -0
  106. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/kuna.py +0 -0
  107. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/latoken.py +0 -0
  108. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/lbank.py +0 -0
  109. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/luno.py +0 -0
  110. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/lykke.py +0 -0
  111. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/mercado.py +0 -0
  112. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/ndax.py +0 -0
  113. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/novadax.py +0 -0
  114. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/oceanex.py +0 -0
  115. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/okcoin.py +0 -0
  116. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/okx.py +0 -0
  117. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/onetrading.py +0 -0
  118. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/oxfun.py +0 -0
  119. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/p2b.py +0 -0
  120. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/paradex.py +0 -0
  121. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/paymium.py +0 -0
  122. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/phemex.py +0 -0
  123. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/poloniex.py +0 -0
  124. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/poloniexfutures.py +0 -0
  125. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/probit.py +0 -0
  126. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/timex.py +0 -0
  127. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/tokocrypto.py +0 -0
  128. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/tradeogre.py +0 -0
  129. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/upbit.py +0 -0
  130. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/vertex.py +0 -0
  131. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/wavesexchange.py +0 -0
  132. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/wazirx.py +0 -0
  133. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/whitebit.py +0 -0
  134. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/woo.py +0 -0
  135. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/woofipro.py +0 -0
  136. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/xt.py +0 -0
  137. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/yobit.py +0 -0
  138. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/zaif.py +0 -0
  139. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/abstract/zonda.py +0 -0
  140. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/ace.py +0 -0
  141. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/alpaca.py +0 -0
  142. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/ascendex.py +0 -0
  143. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/ace.py +0 -0
  144. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/alpaca.py +0 -0
  145. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/ascendex.py +0 -0
  146. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/__init__.py +0 -0
  147. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/throttler.py +0 -0
  148. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/__init__.py +0 -0
  149. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  150. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/cache.py +0 -0
  151. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/client.py +0 -0
  152. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/fast_client.py +0 -0
  153. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/functions.py +0 -0
  154. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/future.py +0 -0
  155. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/order_book.py +0 -0
  156. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  157. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bequant.py +0 -0
  158. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bigone.py +0 -0
  159. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/binancecoinm.py +0 -0
  160. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/binanceus.py +0 -0
  161. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/binanceusdm.py +0 -0
  162. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bit2c.py +0 -0
  163. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitbank.py +0 -0
  164. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitbay.py +0 -0
  165. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitbns.py +0 -0
  166. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitcoincom.py +0 -0
  167. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitfinex.py +0 -0
  168. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitfinex2.py +0 -0
  169. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitflyer.py +0 -0
  170. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitget.py +0 -0
  171. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bithumb.py +0 -0
  172. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitmart.py +0 -0
  173. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitmex.py +0 -0
  174. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitopro.py +0 -0
  175. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitpanda.py +0 -0
  176. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitrue.py +0 -0
  177. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitso.py +0 -0
  178. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitstamp.py +0 -0
  179. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bitteam.py +0 -0
  180. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/bl3p.py +0 -0
  181. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/blockchaincom.py +0 -0
  182. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/blofin.py +0 -0
  183. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/btcalpha.py +0 -0
  184. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/btcbox.py +0 -0
  185. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/btcmarkets.py +0 -0
  186. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/btcturk.py +0 -0
  187. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/cex.py +0 -0
  188. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinbase.py +0 -0
  189. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinbaseadvanced.py +0 -0
  190. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinbaseexchange.py +0 -0
  191. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coincheck.py +0 -0
  192. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinex.py +0 -0
  193. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinlist.py +0 -0
  194. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinmate.py +0 -0
  195. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinmetro.py +0 -0
  196. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinone.py +0 -0
  197. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinsph.py +0 -0
  198. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/coinspot.py +0 -0
  199. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/cryptocom.py +0 -0
  200. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/currencycom.py +0 -0
  201. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/delta.py +0 -0
  202. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/deribit.py +0 -0
  203. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/digifinex.py +0 -0
  204. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/exmo.py +0 -0
  205. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/fmfwio.py +0 -0
  206. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/gate.py +0 -0
  207. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/gateio.py +0 -0
  208. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/gemini.py +0 -0
  209. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/hashkey.py +0 -0
  210. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/hitbtc.py +0 -0
  211. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/hitbtc3.py +0 -0
  212. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/hollaex.py +0 -0
  213. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/htx.py +0 -0
  214. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/huobi.py +0 -0
  215. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/huobijp.py +0 -0
  216. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/hyperliquid.py +0 -0
  217. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/idex.py +0 -0
  218. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/independentreserve.py +0 -0
  219. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/indodax.py +0 -0
  220. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/kraken.py +0 -0
  221. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/krakenfutures.py +0 -0
  222. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/kucoin.py +0 -0
  223. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/kucoinfutures.py +0 -0
  224. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/latoken.py +0 -0
  225. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/lbank.py +0 -0
  226. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/luno.py +0 -0
  227. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/lykke.py +0 -0
  228. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/mercado.py +0 -0
  229. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/ndax.py +0 -0
  230. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/novadax.py +0 -0
  231. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/oceanex.py +0 -0
  232. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/okcoin.py +0 -0
  233. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/onetrading.py +0 -0
  234. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/oxfun.py +0 -0
  235. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/p2b.py +0 -0
  236. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/paradex.py +0 -0
  237. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/paymium.py +0 -0
  238. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/phemex.py +0 -0
  239. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/poloniex.py +0 -0
  240. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/poloniexfutures.py +0 -0
  241. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/probit.py +0 -0
  242. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/tokocrypto.py +0 -0
  243. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/tradeogre.py +0 -0
  244. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/upbit.py +0 -0
  245. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/vertex.py +0 -0
  246. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/wavesexchange.py +0 -0
  247. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/wazirx.py +0 -0
  248. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/whitebit.py +0 -0
  249. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/woo.py +0 -0
  250. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/woofipro.py +0 -0
  251. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/xt.py +0 -0
  252. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/yobit.py +0 -0
  253. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/zaif.py +0 -0
  254. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/async_support/zonda.py +0 -0
  255. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/__init__.py +0 -0
  256. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/decimal_to_precision.py +0 -0
  257. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/errors.py +0 -0
  258. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/precise.py +0 -0
  259. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/base/types.py +0 -0
  260. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bequant.py +0 -0
  261. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bigone.py +0 -0
  262. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/binancecoinm.py +0 -0
  263. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/binanceus.py +0 -0
  264. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/binanceusdm.py +0 -0
  265. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bit2c.py +0 -0
  266. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitbank.py +0 -0
  267. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitbay.py +0 -0
  268. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitbns.py +0 -0
  269. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitcoincom.py +0 -0
  270. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitfinex.py +0 -0
  271. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitfinex2.py +0 -0
  272. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitflyer.py +0 -0
  273. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitget.py +0 -0
  274. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bithumb.py +0 -0
  275. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitmart.py +0 -0
  276. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitmex.py +0 -0
  277. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitopro.py +0 -0
  278. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitpanda.py +0 -0
  279. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitrue.py +0 -0
  280. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitso.py +0 -0
  281. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitstamp.py +0 -0
  282. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bitteam.py +0 -0
  283. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/bl3p.py +0 -0
  284. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/blockchaincom.py +0 -0
  285. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/blofin.py +0 -0
  286. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/btcalpha.py +0 -0
  287. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/btcbox.py +0 -0
  288. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/btcmarkets.py +0 -0
  289. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/btcturk.py +0 -0
  290. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/cex.py +0 -0
  291. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinbase.py +0 -0
  292. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinbaseadvanced.py +0 -0
  293. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinbaseexchange.py +0 -0
  294. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coincheck.py +0 -0
  295. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinex.py +0 -0
  296. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinlist.py +0 -0
  297. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinmate.py +0 -0
  298. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinmetro.py +0 -0
  299. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinone.py +0 -0
  300. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinsph.py +0 -0
  301. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/coinspot.py +0 -0
  302. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/cryptocom.py +0 -0
  303. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/currencycom.py +0 -0
  304. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/delta.py +0 -0
  305. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/deribit.py +0 -0
  306. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/digifinex.py +0 -0
  307. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/exmo.py +0 -0
  308. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/fmfwio.py +0 -0
  309. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/gate.py +0 -0
  310. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/gateio.py +0 -0
  311. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/gemini.py +0 -0
  312. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/hashkey.py +0 -0
  313. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/hitbtc.py +0 -0
  314. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/hitbtc3.py +0 -0
  315. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/hollaex.py +0 -0
  316. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/htx.py +0 -0
  317. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/huobi.py +0 -0
  318. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/huobijp.py +0 -0
  319. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/hyperliquid.py +0 -0
  320. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/idex.py +0 -0
  321. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/independentreserve.py +0 -0
  322. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/indodax.py +0 -0
  323. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/kraken.py +0 -0
  324. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/krakenfutures.py +0 -0
  325. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/kucoin.py +0 -0
  326. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/kucoinfutures.py +0 -0
  327. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/latoken.py +0 -0
  328. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/lbank.py +0 -0
  329. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/luno.py +0 -0
  330. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/lykke.py +0 -0
  331. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/mercado.py +0 -0
  332. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/ndax.py +0 -0
  333. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/novadax.py +0 -0
  334. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/oceanex.py +0 -0
  335. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/okcoin.py +0 -0
  336. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/onetrading.py +0 -0
  337. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/oxfun.py +0 -0
  338. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/p2b.py +0 -0
  339. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/paradex.py +0 -0
  340. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/paymium.py +0 -0
  341. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/phemex.py +0 -0
  342. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/poloniex.py +0 -0
  343. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/poloniexfutures.py +0 -0
  344. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/alpaca.py +0 -0
  345. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/ascendex.py +0 -0
  346. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bequant.py +0 -0
  347. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/binance.py +0 -0
  348. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/binancecoinm.py +0 -0
  349. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/binanceus.py +0 -0
  350. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/binanceusdm.py +0 -0
  351. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bingx.py +0 -0
  352. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitcoincom.py +0 -0
  353. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitfinex.py +0 -0
  354. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitfinex2.py +0 -0
  355. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitget.py +0 -0
  356. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bithumb.py +0 -0
  357. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitmart.py +0 -0
  358. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitmex.py +0 -0
  359. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitopro.py +0 -0
  360. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitpanda.py +0 -0
  361. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitrue.py +0 -0
  362. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bitstamp.py +0 -0
  363. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/blockchaincom.py +0 -0
  364. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/blofin.py +0 -0
  365. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/bybit.py +0 -0
  366. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/cex.py +0 -0
  367. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coinbase.py +0 -0
  368. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coinbaseexchange.py +0 -0
  369. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coinbaseinternational.py +0 -0
  370. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coincheck.py +0 -0
  371. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coinex.py +0 -0
  372. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/coinone.py +0 -0
  373. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/cryptocom.py +0 -0
  374. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/currencycom.py +0 -0
  375. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/deribit.py +0 -0
  376. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/exmo.py +0 -0
  377. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/gate.py +0 -0
  378. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/gateio.py +0 -0
  379. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/gemini.py +0 -0
  380. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/hashkey.py +0 -0
  381. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/hitbtc.py +0 -0
  382. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/hollaex.py +0 -0
  383. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/htx.py +0 -0
  384. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/huobi.py +0 -0
  385. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/huobijp.py +0 -0
  386. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/hyperliquid.py +0 -0
  387. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/idex.py +0 -0
  388. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/independentreserve.py +0 -0
  389. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/kraken.py +0 -0
  390. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/krakenfutures.py +0 -0
  391. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/kucoin.py +0 -0
  392. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/kucoinfutures.py +0 -0
  393. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/lbank.py +0 -0
  394. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/luno.py +0 -0
  395. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/mexc.py +0 -0
  396. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/ndax.py +0 -0
  397. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/okcoin.py +0 -0
  398. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/okx.py +0 -0
  399. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/onetrading.py +0 -0
  400. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/oxfun.py +0 -0
  401. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/p2b.py +0 -0
  402. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/paradex.py +0 -0
  403. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/phemex.py +0 -0
  404. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/poloniex.py +0 -0
  405. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/poloniexfutures.py +0 -0
  406. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/probit.py +0 -0
  407. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/upbit.py +0 -0
  408. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/vertex.py +0 -0
  409. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/wazirx.py +0 -0
  410. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/whitebit.py +0 -0
  411. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/woo.py +0 -0
  412. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/woofipro.py +0 -0
  413. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/pro/xt.py +0 -0
  414. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/probit.py +0 -0
  415. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/__init__.py +0 -0
  416. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  417. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  418. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  419. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  420. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  421. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  422. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  423. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  424. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  425. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  426. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  427. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  428. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  429. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  430. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  431. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  432. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  433. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  434. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  435. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  436. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  437. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  438. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  439. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  440. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  441. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  442. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  443. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  444. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  445. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  446. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  447. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  448. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  449. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  450. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  451. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  452. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  453. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  454. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  455. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  456. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  457. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  458. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  459. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  460. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  461. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  462. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  463. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  464. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  465. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  466. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  467. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  468. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  469. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  470. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  471. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  472. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  473. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  474. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  475. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  476. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  477. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  478. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  479. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  480. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  481. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  482. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  483. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  484. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  485. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  486. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  487. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  488. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  489. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  490. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/__init__.py +0 -0
  491. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  492. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  493. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  494. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/common.py +0 -0
  495. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  496. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/grammar.py +0 -0
  497. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  498. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/indenter.py +0 -0
  499. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/lark.py +0 -0
  500. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/lexer.py +0 -0
  501. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  502. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  503. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  504. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  505. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  506. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  507. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  508. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  509. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  510. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  511. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  512. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  513. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  514. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  515. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/py.typed +0 -0
  516. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  517. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  518. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  519. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  520. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  521. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tree.py +0 -0
  522. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  523. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  524. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/utils.py +0 -0
  525. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/lark/visitors.py +0 -0
  526. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  527. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  528. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  529. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  530. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  531. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  532. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  533. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  534. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  535. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  536. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  537. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  538. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  539. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  540. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  541. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  542. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  543. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  544. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  545. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  546. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  547. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  548. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  549. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  550. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  551. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  552. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  553. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  554. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  555. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  556. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  557. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  558. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  559. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  560. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  561. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  562. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  563. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  564. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  565. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  566. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  567. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  568. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  569. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  570. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  571. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  572. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  573. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  574. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/common.py +0 -0
  575. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/constants.py +0 -0
  576. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  577. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  578. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  579. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  580. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  581. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  582. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  583. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  584. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  585. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  586. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  587. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  588. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  589. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  590. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  591. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  592. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  593. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  594. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  595. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  596. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  597. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  598. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  599. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  600. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  601. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  602. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  603. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  604. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  605. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  606. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  607. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  608. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  609. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  610. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  611. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  612. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  613. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  614. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  615. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  616. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  617. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  618. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  619. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  620. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  621. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  622. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  623. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  624. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  625. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  626. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  627. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  628. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  629. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/_version.py +0 -0
  630. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  631. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  632. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  633. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  634. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  635. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  636. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  637. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  638. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/toolz/utils.py +0 -0
  639. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  640. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  641. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/test/__init__.py +0 -0
  642. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/test/tests_async.py +0 -0
  643. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/test/tests_helpers.py +0 -0
  644. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/test/tests_init.py +0 -0
  645. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/test/tests_sync.py +0 -0
  646. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/tokocrypto.py +0 -0
  647. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/tradeogre.py +0 -0
  648. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/upbit.py +0 -0
  649. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/vertex.py +0 -0
  650. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/wavesexchange.py +0 -0
  651. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/wazirx.py +0 -0
  652. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/whitebit.py +0 -0
  653. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/woo.py +0 -0
  654. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/woofipro.py +0 -0
  655. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/xt.py +0 -0
  656. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/yobit.py +0 -0
  657. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/zaif.py +0 -0
  658. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt/zonda.py +0 -0
  659. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt.egg-info/SOURCES.txt +0 -0
  660. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt.egg-info/dependency_links.txt +0 -0
  661. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt.egg-info/requires.txt +0 -0
  662. {ccxt-4.4.16 → ccxt-4.4.17}/ccxt.egg-info/top_level.txt +0 -0
  663. {ccxt-4.4.16 → ccxt-4.4.17}/setup.cfg +0 -0
  664. {ccxt-4.4.16 → ccxt-4.4.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.16
3
+ Version: 4.4.17
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.16/dist/ccxt.browser.min.js
264
- * unpkg: https://unpkg.com/ccxt@4.4.16/dist/ccxt.browser.min.js
263
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.17/dist/ccxt.browser.min.js
264
+ * unpkg: https://unpkg.com/ccxt@4.4.17/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.16/dist/ccxt.browser.min.js"></script>
269
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.17/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.16'
25
+ __version__ = '4.4.17'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -56,6 +56,7 @@ class ImplicitAPI:
56
56
  spot_private_get_rebate_affiliate_commission_detail = spotPrivateGetRebateAffiliateCommissionDetail = Entry('rebate/affiliate/commission/detail', ['spot', 'private'], 'GET', {'cost': 1})
57
57
  spot_private_get_mxdeduct_enable = spotPrivateGetMxDeductEnable = Entry('mxDeduct/enable', ['spot', 'private'], 'GET', {'cost': 1})
58
58
  spot_private_get_userdatastream = spotPrivateGetUserDataStream = Entry('userDataStream', ['spot', 'private'], 'GET', {'cost': 1})
59
+ spot_private_get_selfsymbols = spotPrivateGetSelfSymbols = Entry('selfSymbols', ['spot', 'private'], 'GET', {'cost': 1})
59
60
  spot_private_post_order = spotPrivatePostOrder = Entry('order', ['spot', 'private'], 'POST', {'cost': 1})
60
61
  spot_private_post_order_test = spotPrivatePostOrderTest = Entry('order/test', ['spot', 'private'], 'POST', {'cost': 1})
61
62
  spot_private_post_sub_account_virtualsubaccount = spotPrivatePostSubAccountVirtualSubAccount = Entry('sub-account/virtualSubAccount', ['spot', 'private'], 'POST', {'cost': 1})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.16'
7
+ __version__ = '4.4.17'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.16'
5
+ __version__ = '4.4.17'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -2663,11 +2663,16 @@ class binance(Exchange, ImplicitAPI):
2663
2663
  apiBackup = self.safe_value(self.urls, 'apiBackup')
2664
2664
  if apiBackup is not None:
2665
2665
  return None
2666
- promises = [self.sapiGetCapitalConfigGetall(params), self.sapiGetMarginAllAssets(params)]
2666
+ promises = [self.sapiGetCapitalConfigGetall(params)]
2667
+ fetchMargins = self.safe_bool(self.options, 'fetchMargins', False)
2668
+ if fetchMargins:
2669
+ promises.append(self.sapiGetMarginAllPairs(params))
2667
2670
  results = await asyncio.gather(*promises)
2668
2671
  responseCurrencies = results[0]
2669
- responseMarginables = results[1]
2670
- marginablesById = self.index_by(responseMarginables, 'assetName')
2672
+ marginablesById = None
2673
+ if fetchMargins:
2674
+ responseMarginables = results[1]
2675
+ marginablesById = self.index_by(responseMarginables, 'assetName')
2671
2676
  result: dict = {}
2672
2677
  for i in range(0, len(responseCurrencies)):
2673
2678
  #
@@ -4115,7 +4120,7 @@ class binance(Exchange, ImplicitAPI):
4115
4120
  fetches mark price for the market
4116
4121
  :see: https://binance-docs.github.io/apidocs/futures/en/#mark-price
4117
4122
  :see: https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4118
- :param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
4123
+ :param str symbol: unified symbol of the market to fetch the ticker for
4119
4124
  :param dict [params]: extra parameters specific to the exchange API endpoint
4120
4125
  :param str [params.subType]: "linear" or "inverse"
4121
4126
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -82,6 +82,7 @@ class bingx(Exchange, ImplicitAPI):
82
82
  'fetchMarginMode': True,
83
83
  'fetchMarkets': True,
84
84
  'fetchMarkOHLCV': True,
85
+ 'fetchMarkPrice': True,
85
86
  'fetchMarkPrices': True,
86
87
  'fetchMyLiquidations': True,
87
88
  'fetchOHLCV': True,
@@ -1657,6 +1658,59 @@ class bingx(Exchange, ImplicitAPI):
1657
1658
  tickers = self.safe_list(response, 'data')
1658
1659
  return self.parse_tickers(tickers, symbols)
1659
1660
 
1661
+ async def fetch_mark_price(self, symbol: str, params={}) -> Ticker:
1662
+ """
1663
+ fetches mark prices for the market
1664
+ :see: https://bingx-api.github.io/docs/#/en-us/swapV2/market-api.html#Mark%20Price%20and%20Funding%20Rate
1665
+ :param str symbol: unified symbol of the market to fetch the ticker for
1666
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1667
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
1668
+ """
1669
+ await self.load_markets()
1670
+ market = self.market(symbol)
1671
+ subType = None
1672
+ subType, params = self.handle_sub_type_and_params('fetchMarkPrice', market, params, 'linear')
1673
+ request = {
1674
+ 'symbol': market['id'],
1675
+ }
1676
+ response = None
1677
+ if subType == 'inverse':
1678
+ response = await self.cswapV1PublicGetMarketPremiumIndex(self.extend(request, params))
1679
+ #
1680
+ # {
1681
+ # "code": 0,
1682
+ # "msg": "",
1683
+ # "timestamp": 1728577213289,
1684
+ # "data": [
1685
+ # {
1686
+ # "symbol": "ETH-USD",
1687
+ # "lastFundingRate": "0.0001",
1688
+ # "markPrice": "2402.68",
1689
+ # "indexPrice": "2404.92",
1690
+ # "nextFundingTime": 1728604800000
1691
+ # }
1692
+ # ]
1693
+ # }
1694
+ #
1695
+ else:
1696
+ response = await self.swapV2PublicGetQuotePremiumIndex(self.extend(request, params))
1697
+ #
1698
+ # {
1699
+ # "code": 0,
1700
+ # "msg": "",
1701
+ # "data": {
1702
+ # "symbol": "ETH-USDT",
1703
+ # "markPrice": "2408.40",
1704
+ # "indexPrice": "2409.62",
1705
+ # "lastFundingRate": "0.00009900",
1706
+ # "nextFundingTime": 1728604800000
1707
+ # }
1708
+ # }
1709
+ #
1710
+ if isinstance(response['data'], list):
1711
+ return self.parse_ticker(self.safe_dict(response['data'], 0, {}), market)
1712
+ return self.parse_ticker(response['data'], market)
1713
+
1660
1714
  async def fetch_mark_prices(self, symbols: Strings = None, params={}) -> Tickers:
1661
1715
  """
1662
1716
  fetches mark prices for multiple markets
@@ -458,9 +458,9 @@ class bitvavo(Exchange, ImplicitAPI):
458
458
  # },
459
459
  # ]
460
460
  #
461
- return self.parse_currencies(response)
461
+ return self.parse_currencies_custom(response)
462
462
 
463
- def parse_currencies(self, currencies):
463
+ def parse_currencies_custom(self, currencies):
464
464
  #
465
465
  # [
466
466
  # {
@@ -4539,7 +4539,7 @@ class bybit(Exchange, ImplicitAPI):
4539
4539
  length = len(result)
4540
4540
  if length == 0:
4541
4541
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4542
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4542
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4543
4543
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4544
4544
  if length > 1:
4545
4545
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -4628,6 +4628,9 @@ class bybit(Exchange, ImplicitAPI):
4628
4628
  #
4629
4629
  result = self.safe_dict(response, 'result', {})
4630
4630
  innerList = self.safe_list(result, 'list', [])
4631
+ if len(innerList) == 0:
4632
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4633
+ raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4631
4634
  order = self.safe_dict(innerList, 0, {})
4632
4635
  return self.parse_order(order, market)
4633
4636
 
@@ -4778,7 +4781,7 @@ class bybit(Exchange, ImplicitAPI):
4778
4781
  length = len(result)
4779
4782
  if length == 0:
4780
4783
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4781
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4784
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4782
4785
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4783
4786
  if length > 1:
4784
4787
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -4807,7 +4810,7 @@ class bybit(Exchange, ImplicitAPI):
4807
4810
  length = len(result)
4808
4811
  if length == 0:
4809
4812
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4810
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4813
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4811
4814
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4812
4815
  if length > 1:
4813
4816
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -1315,13 +1315,9 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1315
1315
  # ...
1316
1316
  # ]
1317
1317
  #
1318
- result: dict = {}
1319
- for i in range(0, len(currencies)):
1320
- currency = self.parse_currency(currencies[i])
1321
- result[currency['code']] = currency
1322
- return result
1318
+ return self.parse_currencies(currencies)
1323
1319
 
1324
- def parse_currency(self, currency: dict):
1320
+ def parse_currency(self, currency: dict) -> Currency:
1325
1321
  #
1326
1322
  # {
1327
1323
  # "asset_id":"1",
@@ -1335,7 +1331,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1335
1331
  id = self.safe_string(currency, 'asset_name')
1336
1332
  code = self.safe_currency_code(id)
1337
1333
  statusId = self.safe_string(currency, 'status')
1338
- return {
1334
+ return self.safe_currency_structure({
1339
1335
  'id': id,
1340
1336
  'name': code,
1341
1337
  'code': code,
@@ -1348,7 +1344,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1348
1344
  'fee': None,
1349
1345
  'fees': None,
1350
1346
  'limits': self.limits,
1351
- }
1347
+ })
1352
1348
 
1353
1349
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
1354
1350
  """
@@ -462,15 +462,7 @@ class kuna(Exchange, ImplicitAPI):
462
462
  data = self.safe_value(response, 'data', [])
463
463
  return self.parse_currencies(data)
464
464
 
465
- def parse_currencies(self, currencies, params={}):
466
- currencies = self.to_array(currencies)
467
- result: dict = {}
468
- for i in range(0, len(currencies)):
469
- currency = self.parse_currency(currencies[i])
470
- result[currency['code']] = currency
471
- return result
472
-
473
- def parse_currency(self, currency: dict):
465
+ def parse_currency(self, currency: dict) -> Currency:
474
466
  #
475
467
  # {
476
468
  # "code": "BTC",
@@ -494,7 +486,7 @@ class kuna(Exchange, ImplicitAPI):
494
486
  currencyId = self.safe_string(currency, 'code')
495
487
  precision = self.safe_string(currency, 'precision')
496
488
  tradePrecision = self.safe_string(currency, 'tradePrecision')
497
- return {
489
+ return self.safe_currency_structure({
498
490
  'info': currency,
499
491
  'id': currencyId,
500
492
  'code': self.safe_currency_code(currencyId),
@@ -505,7 +497,7 @@ class kuna(Exchange, ImplicitAPI):
505
497
  'deposit': None,
506
498
  'withdraw': None,
507
499
  'fee': None,
508
- 'precision': Precise.string_min(precision, tradePrecision),
500
+ 'precision': self.parse_number(Precise.string_min(precision, tradePrecision)),
509
501
  'limits': {
510
502
  'amount': {
511
503
  'min': None,
@@ -517,7 +509,7 @@ class kuna(Exchange, ImplicitAPI):
517
509
  },
518
510
  },
519
511
  'networks': {},
520
- }
512
+ })
521
513
 
522
514
  async def fetch_markets(self, params={}) -> List[Market]:
523
515
  """
@@ -243,6 +243,7 @@ class mexc(Exchange, ImplicitAPI):
243
243
  'rebate/affiliate/commission/detail': 1,
244
244
  'mxDeduct/enable': 1,
245
245
  'userDataStream': 1,
246
+ 'selfSymbols': 1,
246
247
  },
247
248
  'post': {
248
249
  'order': 1,
@@ -123,6 +123,7 @@ class okx(Exchange, ImplicitAPI):
123
123
  'fetchMarketLeverageTiers': True,
124
124
  'fetchMarkets': True,
125
125
  'fetchMarkOHLCV': True,
126
+ 'fetchMarkPrice': True,
126
127
  'fetchMarkPrices': True,
127
128
  'fetchMySettlementHistory': False,
128
129
  'fetchMyTrades': True,
@@ -1958,6 +1959,37 @@ class okx(Exchange, ImplicitAPI):
1958
1959
  tickers = self.safe_list(response, 'data', [])
1959
1960
  return self.parse_tickers(tickers, symbols)
1960
1961
 
1962
+ async def fetch_mark_price(self, symbol: str, params={}) -> Ticker:
1963
+ """
1964
+ fetches mark price for the market
1965
+ :see: https://www.okx.com/docs-v5/en/#public-data-rest-api-get-mark-price
1966
+ :param str symbol: unified symbol of the market to fetch the ticker for
1967
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1968
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
1969
+ """
1970
+ await self.load_markets()
1971
+ market = self.market(symbol)
1972
+ request: dict = {
1973
+ 'instId': market['id'],
1974
+ }
1975
+ response = await self.publicGetPublicMarkPrice(self.extend(request, params))
1976
+ #
1977
+ # {
1978
+ # "code": "0",
1979
+ # "data": [
1980
+ # {
1981
+ # "instId": "ETH-USDT",
1982
+ # "instType": "MARGIN",
1983
+ # "markPx": "2403.98",
1984
+ # "ts": "1728578500703"
1985
+ # }
1986
+ # ],
1987
+ # "msg": ""
1988
+ # }
1989
+ #
1990
+ data = self.safe_list(response, 'data')
1991
+ return self.parse_ticker(self.safe_dict(data, 0), market)
1992
+
1961
1993
  async def fetch_mark_prices(self, symbols: Strings = None, params={}) -> Tickers:
1962
1994
  """
1963
1995
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
@@ -1978,7 +2010,7 @@ class okx(Exchange, ImplicitAPI):
1978
2010
  defaultUnderlying = self.safe_string(self.options, 'defaultUnderlying', 'BTC-USD')
1979
2011
  currencyId = self.safe_string_2(params, 'uly', 'marketId', defaultUnderlying)
1980
2012
  if currencyId is None:
1981
- raise ArgumentsRequired(self.id + ' fetchTickers() requires an underlying uly or marketId parameter for options markets')
2013
+ raise ArgumentsRequired(self.id + ' fetchMarkPrices() requires an underlying uly or marketId parameter for options markets')
1982
2014
  else:
1983
2015
  request['uly'] = currencyId
1984
2016
  response = await self.publicGetPublicMarkPrice(self.extend(request, params))
@@ -359,11 +359,7 @@ class timex(Exchange, ImplicitAPI):
359
359
  # },
360
360
  # ]
361
361
  #
362
- result = []
363
- for i in range(0, len(response)):
364
- currency = response[i]
365
- result.append(self.parse_currency(currency))
366
- return self.index_by(result, 'code')
362
+ return self.parse_currencies(response)
367
363
 
368
364
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
369
365
  """
@@ -1239,7 +1235,7 @@ class timex(Exchange, ImplicitAPI):
1239
1235
  'info': market,
1240
1236
  }
1241
1237
 
1242
- def parse_currency(self, currency: dict):
1238
+ def parse_currency(self, currency: dict) -> Currency:
1243
1239
  #
1244
1240
  # {
1245
1241
  # "symbol": "BTC",
@@ -1300,7 +1296,7 @@ class timex(Exchange, ImplicitAPI):
1300
1296
  for i in range(0, -dotIndex):
1301
1297
  fraction += '0'
1302
1298
  fee = self.parse_number(fraction + feeString)
1303
- return {
1299
+ return self.safe_currency_structure({
1304
1300
  'id': code,
1305
1301
  'code': code,
1306
1302
  'info': currency,
@@ -1316,7 +1312,7 @@ class timex(Exchange, ImplicitAPI):
1316
1312
  'amount': {'min': None, 'max': None},
1317
1313
  },
1318
1314
  'networks': {},
1319
- }
1315
+ })
1320
1316
 
1321
1317
  def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1322
1318
  #
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.16'
7
+ __version__ = '4.4.17'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2491,6 +2491,18 @@ class Exchange(object):
2491
2491
  def fetch_trading_limits(self, symbols: Strings = None, params={}):
2492
2492
  raise NotSupported(self.id + ' fetchTradingLimits() is not supported yet')
2493
2493
 
2494
+ def parse_currency(self, rawCurrency: dict):
2495
+ raise NotSupported(self.id + ' parseCurrency() is not supported yet')
2496
+
2497
+ def parse_currencies(self, rawCurrencies):
2498
+ result = {}
2499
+ arr = self.to_array(rawCurrencies)
2500
+ for i in range(0, len(arr)):
2501
+ parsed = self.parse_currency(arr[i])
2502
+ code = parsed['code']
2503
+ result[code] = parsed
2504
+ return result
2505
+
2494
2506
  def parse_market(self, market: dict):
2495
2507
  raise NotSupported(self.id + ' parseMarket() is not supported yet')
2496
2508
 
@@ -2662,11 +2662,16 @@ class binance(Exchange, ImplicitAPI):
2662
2662
  apiBackup = self.safe_value(self.urls, 'apiBackup')
2663
2663
  if apiBackup is not None:
2664
2664
  return None
2665
- promises = [self.sapiGetCapitalConfigGetall(params), self.sapiGetMarginAllAssets(params)]
2665
+ promises = [self.sapiGetCapitalConfigGetall(params)]
2666
+ fetchMargins = self.safe_bool(self.options, 'fetchMargins', False)
2667
+ if fetchMargins:
2668
+ promises.append(self.sapiGetMarginAllPairs(params))
2666
2669
  results = promises
2667
2670
  responseCurrencies = results[0]
2668
- responseMarginables = results[1]
2669
- marginablesById = self.index_by(responseMarginables, 'assetName')
2671
+ marginablesById = None
2672
+ if fetchMargins:
2673
+ responseMarginables = results[1]
2674
+ marginablesById = self.index_by(responseMarginables, 'assetName')
2670
2675
  result: dict = {}
2671
2676
  for i in range(0, len(responseCurrencies)):
2672
2677
  #
@@ -4114,7 +4119,7 @@ class binance(Exchange, ImplicitAPI):
4114
4119
  fetches mark price for the market
4115
4120
  :see: https://binance-docs.github.io/apidocs/futures/en/#mark-price
4116
4121
  :see: https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4117
- :param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
4122
+ :param str symbol: unified symbol of the market to fetch the ticker for
4118
4123
  :param dict [params]: extra parameters specific to the exchange API endpoint
4119
4124
  :param str [params.subType]: "linear" or "inverse"
4120
4125
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -81,6 +81,7 @@ class bingx(Exchange, ImplicitAPI):
81
81
  'fetchMarginMode': True,
82
82
  'fetchMarkets': True,
83
83
  'fetchMarkOHLCV': True,
84
+ 'fetchMarkPrice': True,
84
85
  'fetchMarkPrices': True,
85
86
  'fetchMyLiquidations': True,
86
87
  'fetchOHLCV': True,
@@ -1656,6 +1657,59 @@ class bingx(Exchange, ImplicitAPI):
1656
1657
  tickers = self.safe_list(response, 'data')
1657
1658
  return self.parse_tickers(tickers, symbols)
1658
1659
 
1660
+ def fetch_mark_price(self, symbol: str, params={}) -> Ticker:
1661
+ """
1662
+ fetches mark prices for the market
1663
+ :see: https://bingx-api.github.io/docs/#/en-us/swapV2/market-api.html#Mark%20Price%20and%20Funding%20Rate
1664
+ :param str symbol: unified symbol of the market to fetch the ticker for
1665
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1666
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
1667
+ """
1668
+ self.load_markets()
1669
+ market = self.market(symbol)
1670
+ subType = None
1671
+ subType, params = self.handle_sub_type_and_params('fetchMarkPrice', market, params, 'linear')
1672
+ request = {
1673
+ 'symbol': market['id'],
1674
+ }
1675
+ response = None
1676
+ if subType == 'inverse':
1677
+ response = self.cswapV1PublicGetMarketPremiumIndex(self.extend(request, params))
1678
+ #
1679
+ # {
1680
+ # "code": 0,
1681
+ # "msg": "",
1682
+ # "timestamp": 1728577213289,
1683
+ # "data": [
1684
+ # {
1685
+ # "symbol": "ETH-USD",
1686
+ # "lastFundingRate": "0.0001",
1687
+ # "markPrice": "2402.68",
1688
+ # "indexPrice": "2404.92",
1689
+ # "nextFundingTime": 1728604800000
1690
+ # }
1691
+ # ]
1692
+ # }
1693
+ #
1694
+ else:
1695
+ response = self.swapV2PublicGetQuotePremiumIndex(self.extend(request, params))
1696
+ #
1697
+ # {
1698
+ # "code": 0,
1699
+ # "msg": "",
1700
+ # "data": {
1701
+ # "symbol": "ETH-USDT",
1702
+ # "markPrice": "2408.40",
1703
+ # "indexPrice": "2409.62",
1704
+ # "lastFundingRate": "0.00009900",
1705
+ # "nextFundingTime": 1728604800000
1706
+ # }
1707
+ # }
1708
+ #
1709
+ if isinstance(response['data'], list):
1710
+ return self.parse_ticker(self.safe_dict(response['data'], 0, {}), market)
1711
+ return self.parse_ticker(response['data'], market)
1712
+
1659
1713
  def fetch_mark_prices(self, symbols: Strings = None, params={}) -> Tickers:
1660
1714
  """
1661
1715
  fetches mark prices for multiple markets
@@ -458,9 +458,9 @@ class bitvavo(Exchange, ImplicitAPI):
458
458
  # },
459
459
  # ]
460
460
  #
461
- return self.parse_currencies(response)
461
+ return self.parse_currencies_custom(response)
462
462
 
463
- def parse_currencies(self, currencies):
463
+ def parse_currencies_custom(self, currencies):
464
464
  #
465
465
  # [
466
466
  # {
@@ -4538,7 +4538,7 @@ class bybit(Exchange, ImplicitAPI):
4538
4538
  length = len(result)
4539
4539
  if length == 0:
4540
4540
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4541
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4541
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4542
4542
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4543
4543
  if length > 1:
4544
4544
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -4627,6 +4627,9 @@ class bybit(Exchange, ImplicitAPI):
4627
4627
  #
4628
4628
  result = self.safe_dict(response, 'result', {})
4629
4629
  innerList = self.safe_list(result, 'list', [])
4630
+ if len(innerList) == 0:
4631
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4632
+ raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4630
4633
  order = self.safe_dict(innerList, 0, {})
4631
4634
  return self.parse_order(order, market)
4632
4635
 
@@ -4777,7 +4780,7 @@ class bybit(Exchange, ImplicitAPI):
4777
4780
  length = len(result)
4778
4781
  if length == 0:
4779
4782
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4780
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4783
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4781
4784
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4782
4785
  if length > 1:
4783
4786
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -4806,7 +4809,7 @@ class bybit(Exchange, ImplicitAPI):
4806
4809
  length = len(result)
4807
4810
  if length == 0:
4808
4811
  isTrigger = self.safe_bool_n(params, ['trigger', 'stop'], False)
4809
- extra = '' if isTrigger else 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4812
+ extra = '' if isTrigger else ' If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = True'
4810
4813
  raise OrderNotFound('Order ' + str(id) + ' was not found.' + extra)
4811
4814
  if length > 1:
4812
4815
  raise InvalidOrder(self.id + ' returned more than one order')
@@ -1315,13 +1315,9 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1315
1315
  # ...
1316
1316
  # ]
1317
1317
  #
1318
- result: dict = {}
1319
- for i in range(0, len(currencies)):
1320
- currency = self.parse_currency(currencies[i])
1321
- result[currency['code']] = currency
1322
- return result
1318
+ return self.parse_currencies(currencies)
1323
1319
 
1324
- def parse_currency(self, currency: dict):
1320
+ def parse_currency(self, currency: dict) -> Currency:
1325
1321
  #
1326
1322
  # {
1327
1323
  # "asset_id":"1",
@@ -1335,7 +1331,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1335
1331
  id = self.safe_string(currency, 'asset_name')
1336
1332
  code = self.safe_currency_code(id)
1337
1333
  statusId = self.safe_string(currency, 'status')
1338
- return {
1334
+ return self.safe_currency_structure({
1339
1335
  'id': id,
1340
1336
  'name': code,
1341
1337
  'code': code,
@@ -1348,7 +1344,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1348
1344
  'fee': None,
1349
1345
  'fees': None,
1350
1346
  'limits': self.limits,
1351
- }
1347
+ })
1352
1348
 
1353
1349
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
1354
1350
  """
@@ -462,15 +462,7 @@ class kuna(Exchange, ImplicitAPI):
462
462
  data = self.safe_value(response, 'data', [])
463
463
  return self.parse_currencies(data)
464
464
 
465
- def parse_currencies(self, currencies, params={}):
466
- currencies = self.to_array(currencies)
467
- result: dict = {}
468
- for i in range(0, len(currencies)):
469
- currency = self.parse_currency(currencies[i])
470
- result[currency['code']] = currency
471
- return result
472
-
473
- def parse_currency(self, currency: dict):
465
+ def parse_currency(self, currency: dict) -> Currency:
474
466
  #
475
467
  # {
476
468
  # "code": "BTC",
@@ -494,7 +486,7 @@ class kuna(Exchange, ImplicitAPI):
494
486
  currencyId = self.safe_string(currency, 'code')
495
487
  precision = self.safe_string(currency, 'precision')
496
488
  tradePrecision = self.safe_string(currency, 'tradePrecision')
497
- return {
489
+ return self.safe_currency_structure({
498
490
  'info': currency,
499
491
  'id': currencyId,
500
492
  'code': self.safe_currency_code(currencyId),
@@ -505,7 +497,7 @@ class kuna(Exchange, ImplicitAPI):
505
497
  'deposit': None,
506
498
  'withdraw': None,
507
499
  'fee': None,
508
- 'precision': Precise.string_min(precision, tradePrecision),
500
+ 'precision': self.parse_number(Precise.string_min(precision, tradePrecision)),
509
501
  'limits': {
510
502
  'amount': {
511
503
  'min': None,
@@ -517,7 +509,7 @@ class kuna(Exchange, ImplicitAPI):
517
509
  },
518
510
  },
519
511
  'networks': {},
520
- }
512
+ })
521
513
 
522
514
  def fetch_markets(self, params={}) -> List[Market]:
523
515
  """