ccxt 4.3.60__tar.gz → 4.3.62__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 (528) hide show
  1. {ccxt-4.3.60/ccxt.egg-info → ccxt-4.3.62}/PKG-INFO +4 -4
  2. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/fast_client.py +2 -2
  6. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/binance.py +37 -29
  7. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bingx.py +41 -33
  8. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bybit.py +9 -1
  9. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/hyperliquid.py +10 -2
  10. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/mexc.py +2 -1
  11. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/tradeogre.py +1 -1
  12. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/vertex.py +10 -1
  13. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/xt.py +1 -1
  14. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/exchange.py +1 -1
  15. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/binance.py +37 -29
  16. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bingx.py +41 -33
  17. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bybit.py +9 -1
  18. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/hyperliquid.py +10 -2
  19. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/mexc.py +2 -1
  20. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/__init__.py +1 -1
  21. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/alpaca.py +3 -3
  22. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/binance.py +2 -4
  23. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bingx.py +2 -2
  24. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitfinex2.py +2 -2
  25. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitget.py +1 -1
  26. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitmex.py +1 -1
  27. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitopro.py +1 -1
  28. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bybit.py +5 -5
  29. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coinbaseexchange.py +2 -2
  30. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coincheck.py +1 -1
  31. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coinone.py +1 -1
  32. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/cryptocom.py +1 -1
  33. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/deribit.py +1 -1
  34. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/gate.py +2 -2
  35. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/hollaex.py +1 -1
  36. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/htx.py +1 -1
  37. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/hyperliquid.py +3 -3
  38. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/kraken.py +1 -1
  39. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/kucoin.py +3 -4
  40. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/mexc.py +1 -1
  41. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/okx.py +1 -1
  42. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/oxfun.py +1 -1
  43. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/phemex.py +1 -1
  44. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/upbit.py +1 -1
  45. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/vertex.py +2 -2
  46. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/whitebit.py +1 -1
  47. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/woo.py +1 -1
  48. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/tradeogre.py +1 -1
  49. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/vertex.py +10 -1
  50. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/xt.py +1 -1
  51. {ccxt-4.3.60 → ccxt-4.3.62/ccxt.egg-info}/PKG-INFO +4 -4
  52. {ccxt-4.3.60 → ccxt-4.3.62}/package.json +1 -1
  53. {ccxt-4.3.60 → ccxt-4.3.62}/LICENSE.txt +0 -0
  54. {ccxt-4.3.60 → ccxt-4.3.62}/MANIFEST.in +0 -0
  55. {ccxt-4.3.60 → ccxt-4.3.62}/README.rst +0 -0
  56. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/__init__.py +0 -0
  57. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/ace.py +0 -0
  58. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/alpaca.py +0 -0
  59. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/ascendex.py +0 -0
  60. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bequant.py +0 -0
  61. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bigone.py +0 -0
  62. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/binance.py +0 -0
  63. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/binancecoinm.py +0 -0
  64. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/binanceus.py +0 -0
  65. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/binanceusdm.py +0 -0
  66. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bingx.py +0 -0
  67. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bit2c.py +0 -0
  68. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitbank.py +0 -0
  69. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitbay.py +0 -0
  70. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitbns.py +0 -0
  71. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitcoincom.py +0 -0
  72. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitfinex.py +0 -0
  73. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitfinex2.py +0 -0
  74. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitflyer.py +0 -0
  75. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitget.py +0 -0
  76. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bithumb.py +0 -0
  77. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitmart.py +0 -0
  78. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitmex.py +0 -0
  79. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitopro.py +0 -0
  80. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitpanda.py +0 -0
  81. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitrue.py +0 -0
  82. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitso.py +0 -0
  83. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitstamp.py +0 -0
  84. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitteam.py +0 -0
  85. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bitvavo.py +0 -0
  86. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bl3p.py +0 -0
  87. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/blockchaincom.py +0 -0
  88. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/blofin.py +0 -0
  89. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/btcalpha.py +0 -0
  90. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/btcbox.py +0 -0
  91. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/btcmarkets.py +0 -0
  92. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/btcturk.py +0 -0
  93. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/bybit.py +0 -0
  94. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/cex.py +0 -0
  95. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinbase.py +0 -0
  96. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinbaseadvanced.py +0 -0
  97. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinbaseexchange.py +0 -0
  98. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinbaseinternational.py +0 -0
  99. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coincheck.py +0 -0
  100. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinex.py +0 -0
  101. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinlist.py +0 -0
  102. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinmate.py +0 -0
  103. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinmetro.py +0 -0
  104. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinone.py +0 -0
  105. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinsph.py +0 -0
  106. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/coinspot.py +0 -0
  107. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/cryptocom.py +0 -0
  108. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/currencycom.py +0 -0
  109. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/delta.py +0 -0
  110. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/deribit.py +0 -0
  111. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/digifinex.py +0 -0
  112. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/exmo.py +0 -0
  113. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/fmfwio.py +0 -0
  114. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/gate.py +0 -0
  115. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/gateio.py +0 -0
  116. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/gemini.py +0 -0
  117. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/hitbtc.py +0 -0
  118. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/hitbtc3.py +0 -0
  119. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/hollaex.py +0 -0
  120. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/htx.py +0 -0
  121. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/huobi.py +0 -0
  122. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/huobijp.py +0 -0
  123. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/hyperliquid.py +0 -0
  124. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/idex.py +0 -0
  125. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/independentreserve.py +0 -0
  126. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/indodax.py +0 -0
  127. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/kraken.py +0 -0
  128. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/krakenfutures.py +0 -0
  129. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/kucoin.py +0 -0
  130. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/kucoinfutures.py +0 -0
  131. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/kuna.py +0 -0
  132. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/latoken.py +0 -0
  133. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/lbank.py +0 -0
  134. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/luno.py +0 -0
  135. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/lykke.py +0 -0
  136. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/mercado.py +0 -0
  137. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/mexc.py +0 -0
  138. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/ndax.py +0 -0
  139. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/novadax.py +0 -0
  140. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/oceanex.py +0 -0
  141. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/okcoin.py +0 -0
  142. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/okx.py +0 -0
  143. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/onetrading.py +0 -0
  144. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/oxfun.py +0 -0
  145. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/p2b.py +0 -0
  146. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/paymium.py +0 -0
  147. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/phemex.py +0 -0
  148. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/poloniex.py +0 -0
  149. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/poloniexfutures.py +0 -0
  150. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/probit.py +0 -0
  151. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/timex.py +0 -0
  152. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/tokocrypto.py +0 -0
  153. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/tradeogre.py +0 -0
  154. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/upbit.py +0 -0
  155. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/vertex.py +0 -0
  156. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/wavesexchange.py +0 -0
  157. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/wazirx.py +0 -0
  158. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/whitebit.py +0 -0
  159. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/woo.py +0 -0
  160. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/woofipro.py +0 -0
  161. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/xt.py +0 -0
  162. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/yobit.py +0 -0
  163. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/zaif.py +0 -0
  164. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/abstract/zonda.py +0 -0
  165. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/ace.py +0 -0
  166. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/alpaca.py +0 -0
  167. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/ascendex.py +0 -0
  168. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/ace.py +0 -0
  169. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/alpaca.py +0 -0
  170. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/ascendex.py +0 -0
  171. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/__init__.py +0 -0
  172. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/throttler.py +0 -0
  173. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/__init__.py +0 -0
  174. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  175. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/cache.py +0 -0
  176. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/client.py +0 -0
  177. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/functions.py +0 -0
  178. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/future.py +0 -0
  179. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/order_book.py +0 -0
  180. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  181. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bequant.py +0 -0
  182. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bigone.py +0 -0
  183. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/binancecoinm.py +0 -0
  184. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/binanceus.py +0 -0
  185. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/binanceusdm.py +0 -0
  186. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bit2c.py +0 -0
  187. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitbank.py +0 -0
  188. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitbay.py +0 -0
  189. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitbns.py +0 -0
  190. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitcoincom.py +0 -0
  191. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitfinex.py +0 -0
  192. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitfinex2.py +0 -0
  193. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitflyer.py +0 -0
  194. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitget.py +0 -0
  195. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bithumb.py +0 -0
  196. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitmart.py +0 -0
  197. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitmex.py +0 -0
  198. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitopro.py +0 -0
  199. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitpanda.py +0 -0
  200. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitrue.py +0 -0
  201. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitso.py +0 -0
  202. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitstamp.py +0 -0
  203. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitteam.py +0 -0
  204. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bitvavo.py +0 -0
  205. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/bl3p.py +0 -0
  206. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/blockchaincom.py +0 -0
  207. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/blofin.py +0 -0
  208. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/btcalpha.py +0 -0
  209. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/btcbox.py +0 -0
  210. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/btcmarkets.py +0 -0
  211. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/btcturk.py +0 -0
  212. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/cex.py +0 -0
  213. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinbase.py +0 -0
  214. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinbaseadvanced.py +0 -0
  215. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinbaseexchange.py +0 -0
  216. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinbaseinternational.py +0 -0
  217. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coincheck.py +0 -0
  218. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinex.py +0 -0
  219. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinlist.py +0 -0
  220. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinmate.py +0 -0
  221. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinmetro.py +0 -0
  222. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinone.py +0 -0
  223. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinsph.py +0 -0
  224. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/coinspot.py +0 -0
  225. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/cryptocom.py +0 -0
  226. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/currencycom.py +0 -0
  227. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/delta.py +0 -0
  228. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/deribit.py +0 -0
  229. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/digifinex.py +0 -0
  230. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/exmo.py +0 -0
  231. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/fmfwio.py +0 -0
  232. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/gate.py +0 -0
  233. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/gateio.py +0 -0
  234. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/gemini.py +0 -0
  235. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/hitbtc.py +0 -0
  236. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/hitbtc3.py +0 -0
  237. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/hollaex.py +0 -0
  238. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/htx.py +0 -0
  239. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/huobi.py +0 -0
  240. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/huobijp.py +0 -0
  241. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/idex.py +0 -0
  242. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/independentreserve.py +0 -0
  243. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/indodax.py +0 -0
  244. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/kraken.py +0 -0
  245. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/krakenfutures.py +0 -0
  246. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/kucoin.py +0 -0
  247. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/kucoinfutures.py +0 -0
  248. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/kuna.py +0 -0
  249. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/latoken.py +0 -0
  250. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/lbank.py +0 -0
  251. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/luno.py +0 -0
  252. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/lykke.py +0 -0
  253. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/mercado.py +0 -0
  254. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/ndax.py +0 -0
  255. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/novadax.py +0 -0
  256. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/oceanex.py +0 -0
  257. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/okcoin.py +0 -0
  258. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/okx.py +0 -0
  259. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/onetrading.py +0 -0
  260. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/oxfun.py +0 -0
  261. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/p2b.py +0 -0
  262. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/paymium.py +0 -0
  263. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/phemex.py +0 -0
  264. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/poloniex.py +0 -0
  265. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/poloniexfutures.py +0 -0
  266. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/probit.py +0 -0
  267. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/timex.py +0 -0
  268. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/tokocrypto.py +0 -0
  269. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/upbit.py +0 -0
  270. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/wavesexchange.py +0 -0
  271. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/wazirx.py +0 -0
  272. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/whitebit.py +0 -0
  273. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/woo.py +0 -0
  274. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/woofipro.py +0 -0
  275. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/yobit.py +0 -0
  276. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/zaif.py +0 -0
  277. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/async_support/zonda.py +0 -0
  278. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/__init__.py +0 -0
  279. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/decimal_to_precision.py +0 -0
  280. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/errors.py +0 -0
  281. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/precise.py +0 -0
  282. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/base/types.py +0 -0
  283. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bequant.py +0 -0
  284. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bigone.py +0 -0
  285. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/binancecoinm.py +0 -0
  286. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/binanceus.py +0 -0
  287. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/binanceusdm.py +0 -0
  288. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bit2c.py +0 -0
  289. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitbank.py +0 -0
  290. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitbay.py +0 -0
  291. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitbns.py +0 -0
  292. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitcoincom.py +0 -0
  293. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitfinex.py +0 -0
  294. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitfinex2.py +0 -0
  295. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitflyer.py +0 -0
  296. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitget.py +0 -0
  297. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bithumb.py +0 -0
  298. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitmart.py +0 -0
  299. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitmex.py +0 -0
  300. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitopro.py +0 -0
  301. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitpanda.py +0 -0
  302. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitrue.py +0 -0
  303. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitso.py +0 -0
  304. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitstamp.py +0 -0
  305. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitteam.py +0 -0
  306. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bitvavo.py +0 -0
  307. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/bl3p.py +0 -0
  308. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/blockchaincom.py +0 -0
  309. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/blofin.py +0 -0
  310. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/btcalpha.py +0 -0
  311. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/btcbox.py +0 -0
  312. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/btcmarkets.py +0 -0
  313. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/btcturk.py +0 -0
  314. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/cex.py +0 -0
  315. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinbase.py +0 -0
  316. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinbaseadvanced.py +0 -0
  317. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinbaseexchange.py +0 -0
  318. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinbaseinternational.py +0 -0
  319. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coincheck.py +0 -0
  320. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinex.py +0 -0
  321. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinlist.py +0 -0
  322. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinmate.py +0 -0
  323. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinmetro.py +0 -0
  324. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinone.py +0 -0
  325. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinsph.py +0 -0
  326. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/coinspot.py +0 -0
  327. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/cryptocom.py +0 -0
  328. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/currencycom.py +0 -0
  329. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/delta.py +0 -0
  330. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/deribit.py +0 -0
  331. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/digifinex.py +0 -0
  332. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/exmo.py +0 -0
  333. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/fmfwio.py +0 -0
  334. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/gate.py +0 -0
  335. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/gateio.py +0 -0
  336. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/gemini.py +0 -0
  337. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/hitbtc.py +0 -0
  338. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/hitbtc3.py +0 -0
  339. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/hollaex.py +0 -0
  340. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/htx.py +0 -0
  341. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/huobi.py +0 -0
  342. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/huobijp.py +0 -0
  343. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/idex.py +0 -0
  344. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/independentreserve.py +0 -0
  345. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/indodax.py +0 -0
  346. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/kraken.py +0 -0
  347. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/krakenfutures.py +0 -0
  348. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/kucoin.py +0 -0
  349. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/kucoinfutures.py +0 -0
  350. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/kuna.py +0 -0
  351. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/latoken.py +0 -0
  352. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/lbank.py +0 -0
  353. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/luno.py +0 -0
  354. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/lykke.py +0 -0
  355. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/mercado.py +0 -0
  356. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/ndax.py +0 -0
  357. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/novadax.py +0 -0
  358. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/oceanex.py +0 -0
  359. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/okcoin.py +0 -0
  360. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/okx.py +0 -0
  361. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/onetrading.py +0 -0
  362. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/oxfun.py +0 -0
  363. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/p2b.py +0 -0
  364. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/paymium.py +0 -0
  365. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/phemex.py +0 -0
  366. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/poloniex.py +0 -0
  367. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/poloniexfutures.py +0 -0
  368. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/ascendex.py +0 -0
  369. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bequant.py +0 -0
  370. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/binancecoinm.py +0 -0
  371. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/binanceus.py +0 -0
  372. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/binanceusdm.py +0 -0
  373. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitcoincom.py +0 -0
  374. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitfinex.py +0 -0
  375. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bithumb.py +0 -0
  376. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitmart.py +0 -0
  377. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitpanda.py +0 -0
  378. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitrue.py +0 -0
  379. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitstamp.py +0 -0
  380. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/bitvavo.py +0 -0
  381. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/blockchaincom.py +0 -0
  382. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/cex.py +0 -0
  383. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coinbase.py +0 -0
  384. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coinbaseinternational.py +0 -0
  385. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/coinex.py +0 -0
  386. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/currencycom.py +0 -0
  387. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/exmo.py +0 -0
  388. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/gateio.py +0 -0
  389. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/gemini.py +0 -0
  390. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/hitbtc.py +0 -0
  391. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/huobi.py +0 -0
  392. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/huobijp.py +0 -0
  393. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/idex.py +0 -0
  394. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/independentreserve.py +0 -0
  395. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/krakenfutures.py +0 -0
  396. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/kucoinfutures.py +0 -0
  397. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/lbank.py +0 -0
  398. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/luno.py +0 -0
  399. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/ndax.py +0 -0
  400. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/okcoin.py +0 -0
  401. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/onetrading.py +0 -0
  402. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/p2b.py +0 -0
  403. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/poloniex.py +0 -0
  404. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/poloniexfutures.py +0 -0
  405. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/probit.py +0 -0
  406. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/wazirx.py +0 -0
  407. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/woofipro.py +0 -0
  408. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/pro/xt.py +0 -0
  409. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/probit.py +0 -0
  410. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/__init__.py +0 -0
  411. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  412. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  413. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  414. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  415. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  416. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  417. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  418. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  419. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  420. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  421. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  422. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  423. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  424. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  425. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  426. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  427. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  428. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  429. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  430. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  431. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  432. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  433. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  434. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  435. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  436. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  437. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  438. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  439. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  440. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  441. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  442. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  443. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  444. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  445. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  446. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  447. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  448. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  449. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  450. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  451. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  452. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  453. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  454. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  455. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  456. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  457. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  458. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  459. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  460. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  461. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  462. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  463. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  464. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  465. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  466. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  467. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  468. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  469. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  470. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  471. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  472. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  473. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  474. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  475. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  476. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  477. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  478. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  479. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  480. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  481. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  482. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  483. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  484. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  485. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  486. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  487. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  488. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  489. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  490. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  491. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  492. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  493. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  494. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  495. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  496. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  497. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/_version.py +0 -0
  498. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  499. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  500. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  501. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  502. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  503. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  504. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  505. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  506. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/static_dependencies/toolz/utils.py +0 -0
  507. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/test/__init__.py +0 -0
  508. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/test/tests_async.py +0 -0
  509. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/test/tests_helpers.py +0 -0
  510. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/test/tests_init.py +0 -0
  511. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/test/tests_sync.py +0 -0
  512. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/timex.py +0 -0
  513. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/tokocrypto.py +0 -0
  514. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/upbit.py +0 -0
  515. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/wavesexchange.py +0 -0
  516. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/wazirx.py +0 -0
  517. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/whitebit.py +0 -0
  518. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/woo.py +0 -0
  519. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/woofipro.py +0 -0
  520. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/yobit.py +0 -0
  521. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/zaif.py +0 -0
  522. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt/zonda.py +0 -0
  523. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt.egg-info/SOURCES.txt +0 -0
  524. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt.egg-info/dependency_links.txt +0 -0
  525. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt.egg-info/requires.txt +0 -0
  526. {ccxt-4.3.60 → ccxt-4.3.62}/ccxt.egg-info/top_level.txt +0 -0
  527. {ccxt-4.3.60 → ccxt-4.3.62}/setup.cfg +0 -0
  528. {ccxt-4.3.60 → ccxt-4.3.62}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.60
3
+ Version: 4.3.62
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
@@ -257,13 +257,13 @@ console.log(version, Object.keys(exchanges));
257
257
 
258
258
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
259
259
 
260
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.60/dist/ccxt.browser.min.js
261
- * unpkg: https://unpkg.com/ccxt@4.3.60/dist/ccxt.browser.min.js
260
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.62/dist/ccxt.browser.min.js
261
+ * unpkg: https://unpkg.com/ccxt@4.3.62/dist/ccxt.browser.min.js
262
262
 
263
263
  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.
264
264
 
265
265
  ```HTML
266
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.60/dist/ccxt.browser.min.js"></script>
266
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.62/dist/ccxt.browser.min.js"></script>
267
267
  ```
268
268
 
269
269
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.60'
25
+ __version__ = '4.3.62'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.60'
7
+ __version__ = '4.3.62'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.60'
5
+ __version__ = '4.3.62'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -35,7 +35,7 @@ class FastClient(AiohttpClient):
35
35
  self.stack.append(message)
36
36
 
37
37
  def feed_eof():
38
- if self._close_code == 1000: # OK close
38
+ if self.connection._close_code == 1000: # OK close
39
39
  self.on_close(1000)
40
40
  else:
41
41
  self.on_error(1006) # ABNORMAL_CLOSURE
@@ -58,7 +58,7 @@ class FastClient(AiohttpClient):
58
58
  try:
59
59
  await _self._writer.close(code, message)
60
60
  _self._response.close()
61
- self._close_code = 1000
61
+ _self._close_code = 1000
62
62
  except asyncio.CancelledError:
63
63
  _self._response.close()
64
64
  _self._close_code = 1006
@@ -9104,34 +9104,38 @@ class binance(Exchange, ImplicitAPI):
9104
9104
  if marginMode == 'cross':
9105
9105
  # calculate collateral
9106
9106
  precision = self.safe_dict(market, 'precision', {})
9107
- if linear:
9108
- # walletBalance = (liquidationPrice * (±1 + mmp) ± entryPrice) * contracts
9109
- onePlusMaintenanceMarginPercentageString = None
9110
- entryPriceSignString = entryPriceString
9111
- if side == 'short':
9112
- onePlusMaintenanceMarginPercentageString = Precise.string_add('1', maintenanceMarginPercentageString)
9113
- entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9114
- else:
9115
- onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9116
- inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9117
- leftSide = Precise.string_add(inner, entryPriceSignString)
9118
- quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9119
- if quotePrecision is not None:
9120
- collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9121
- else:
9122
- # walletBalance = (contracts * contractSize) * (±1/entryPrice - (±1 - mmp) / liquidationPrice)
9123
- onePlusMaintenanceMarginPercentageString = None
9124
- entryPriceSignString = entryPriceString
9125
- if side == 'short':
9126
- onePlusMaintenanceMarginPercentageString = Precise.string_sub('1', maintenanceMarginPercentageString)
9107
+ basePrecisionValue = self.safe_string(precision, 'base')
9108
+ quotePrecisionValue = self.safe_string_2(precision, 'quote', 'price')
9109
+ precisionIsUndefined = (basePrecisionValue is None) and (quotePrecisionValue is None)
9110
+ if not precisionIsUndefined:
9111
+ if linear:
9112
+ # walletBalance = (liquidationPrice * (±1 + mmp) ± entryPrice) * contracts
9113
+ onePlusMaintenanceMarginPercentageString = None
9114
+ entryPriceSignString = entryPriceString
9115
+ if side == 'short':
9116
+ onePlusMaintenanceMarginPercentageString = Precise.string_add('1', maintenanceMarginPercentageString)
9117
+ entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9118
+ else:
9119
+ onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9120
+ inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9121
+ leftSide = Precise.string_add(inner, entryPriceSignString)
9122
+ quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9123
+ if quotePrecision is not None:
9124
+ collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9127
9125
  else:
9128
- onePlusMaintenanceMarginPercentageString = Precise.string_sub('-1', maintenanceMarginPercentageString)
9129
- entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9130
- leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9131
- rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9132
- basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9133
- if basePrecision is not None:
9134
- collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9126
+ # walletBalance = (contracts * contractSize) * (±1/entryPrice -1 - mmp) / liquidationPrice)
9127
+ onePlusMaintenanceMarginPercentageString = None
9128
+ entryPriceSignString = entryPriceString
9129
+ if side == 'short':
9130
+ onePlusMaintenanceMarginPercentageString = Precise.string_sub('1', maintenanceMarginPercentageString)
9131
+ else:
9132
+ onePlusMaintenanceMarginPercentageString = Precise.string_sub('-1', maintenanceMarginPercentageString)
9133
+ entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9134
+ leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9135
+ rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9136
+ basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9137
+ if basePrecision is not None:
9138
+ collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9135
9139
  else:
9136
9140
  collateralString = self.safe_string(position, 'isolatedMargin')
9137
9141
  collateralString = '0' if (collateralString is None) else collateralString
@@ -9696,9 +9700,10 @@ class binance(Exchange, ImplicitAPI):
9696
9700
  #
9697
9701
  result = []
9698
9702
  for i in range(0, len(response)):
9699
- parsed = self.parse_position_risk(response[i])
9700
- entryPrice = self.safe_string(parsed, 'entryPrice')
9703
+ rawPosition = response[i]
9704
+ entryPrice = self.safe_string(rawPosition, 'entryPrice')
9701
9705
  if (entryPrice != '0') and (entryPrice != '0.0') and (entryPrice != '0.00000000'):
9706
+ parsed = self.parse_position_risk(response[i])
9702
9707
  result.append(parsed)
9703
9708
  symbols = self.market_symbols(symbols)
9704
9709
  return self.filter_by_array_positions(result, 'symbol', symbols, False)
@@ -11201,6 +11206,8 @@ class binance(Exchange, ImplicitAPI):
11201
11206
  request: dict = {}
11202
11207
  if market['option']:
11203
11208
  request['underlyingAsset'] = market['baseId']
11209
+ if market['expiry'] is None:
11210
+ raise NotSupported(self.id + ' fetchOpenInterest does not support ' + symbol)
11204
11211
  request['expiration'] = self.yymmdd(market['expiry'])
11205
11212
  else:
11206
11213
  request['symbol'] = market['id']
@@ -11242,6 +11249,7 @@ class binance(Exchange, ImplicitAPI):
11242
11249
  # ]
11243
11250
  #
11244
11251
  if market['option']:
11252
+ symbol = market['symbol']
11245
11253
  result = self.parse_open_interests(response, market)
11246
11254
  for i in range(0, len(result)):
11247
11255
  item = result[i]
@@ -528,37 +528,40 @@ class bingx(Exchange, ImplicitAPI):
528
528
  response = await self.walletsV1PrivateGetCapitalConfigGetall(params)
529
529
  #
530
530
  # {
531
- # "code": 0,
532
- # "timestamp": 1688045966616,
533
- # "data": [
531
+ # "code": 0,
532
+ # "timestamp": 1702623271477,
533
+ # "data": [
534
+ # {
535
+ # "coin": "BTC",
536
+ # "name": "BTC",
537
+ # "networkList": [
534
538
  # {
535
- # "coin": "BTC",
536
539
  # "name": "BTC",
537
- # "networkList": [
538
- # {
539
- # "name": "BTC",
540
- # "network": "BTC",
541
- # "isDefault": True,
542
- # "minConfirm": "2",
543
- # "withdrawEnable": True,
544
- # "withdrawFee": "0.00035",
545
- # "withdrawMax": "1.62842",
546
- # "withdrawMin": "0.0005"
547
- # },
548
- # {
549
- # "name": "BTC",
550
- # "network": "BEP20",
551
- # "isDefault": False,
552
- # "minConfirm": "15",
553
- # "withdrawEnable": True,
554
- # "withdrawFee": "0.00001",
555
- # "withdrawMax": "1.62734",
556
- # "withdrawMin": "0.0001"
557
- # }
558
- # ]
559
- # },
560
- # ...
561
- # ],
540
+ # "network": "BTC",
541
+ # "isDefault": True,
542
+ # "minConfirm": 2,
543
+ # "withdrawEnable": True,
544
+ # "depositEnable": True,
545
+ # "withdrawFee": "0.0006",
546
+ # "withdrawMax": "1.17522",
547
+ # "withdrawMin": "0.0005",
548
+ # "depositMin": "0.0002"
549
+ # },
550
+ # {
551
+ # "name": "BTC",
552
+ # "network": "BEP20",
553
+ # "isDefault": False,
554
+ # "minConfirm": 15,
555
+ # "withdrawEnable": True,
556
+ # "depositEnable": True,
557
+ # "withdrawFee": "0.0000066",
558
+ # "withdrawMax": "1.17522",
559
+ # "withdrawMin": "0.0000066",
560
+ # "depositMin": "0.0002"
561
+ # }
562
+ # ]
563
+ # }
564
+ # ]
562
565
  # }
563
566
  #
564
567
  data = self.safe_list(response, 'data', [])
@@ -572,6 +575,7 @@ class bingx(Exchange, ImplicitAPI):
572
575
  networks: dict = {}
573
576
  fee = None
574
577
  active = None
578
+ depositEnabled = None
575
579
  withdrawEnabled = None
576
580
  defaultLimits: dict = {}
577
581
  for j in range(0, len(networkList)):
@@ -579,13 +583,17 @@ class bingx(Exchange, ImplicitAPI):
579
583
  network = self.safe_string(rawNetwork, 'network')
580
584
  networkCode = self.network_id_to_code(network)
581
585
  isDefault = self.safe_bool(rawNetwork, 'isDefault')
586
+ depositEnabled = self.safe_bool(rawNetwork, 'depositEnable')
582
587
  withdrawEnabled = self.safe_bool(rawNetwork, 'withdrawEnable')
583
588
  limits: dict = {
584
- 'amounts': {'min': self.safe_number(rawNetwork, 'withdrawMin'), 'max': self.safe_number(rawNetwork, 'withdrawMax')},
589
+ 'withdraw': {
590
+ 'min': self.safe_number(rawNetwork, 'withdrawMin'),
591
+ 'max': self.safe_number(rawNetwork, 'withdrawMax'),
592
+ },
585
593
  }
586
594
  if isDefault:
587
595
  fee = self.safe_number(rawNetwork, 'withdrawFee')
588
- active = withdrawEnabled
596
+ active = depositEnabled or withdrawEnabled
589
597
  defaultLimits = limits
590
598
  networks[networkCode] = {
591
599
  'info': rawNetwork,
@@ -593,7 +601,7 @@ class bingx(Exchange, ImplicitAPI):
593
601
  'network': networkCode,
594
602
  'fee': fee,
595
603
  'active': active,
596
- 'deposit': None,
604
+ 'deposit': depositEnabled,
597
605
  'withdraw': withdrawEnabled,
598
606
  'precision': None,
599
607
  'limits': limits,
@@ -605,7 +613,7 @@ class bingx(Exchange, ImplicitAPI):
605
613
  'precision': None,
606
614
  'name': name,
607
615
  'active': active,
608
- 'deposit': None,
616
+ 'deposit': depositEnabled,
609
617
  'withdraw': withdrawEnabled,
610
618
  'networks': networks,
611
619
  'fee': fee,
@@ -4052,6 +4052,10 @@ class bybit(Exchange, ImplicitAPI):
4052
4052
  raise ArgumentsRequired(self.id + ' cancelOrders() requires a symbol argument')
4053
4053
  await self.load_markets()
4054
4054
  market = self.market(symbol)
4055
+ types = await self.is_unified_enabled()
4056
+ enableUnifiedAccount = types[1]
4057
+ if not enableUnifiedAccount:
4058
+ raise NotSupported(self.id + ' cancelOrders() supports UTA accounts only')
4055
4059
  category = None
4056
4060
  category, params = self.get_bybit_type('cancelOrders', market, params)
4057
4061
  if category == 'inverse':
@@ -4153,6 +4157,10 @@ class bybit(Exchange, ImplicitAPI):
4153
4157
  :returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
4154
4158
  """
4155
4159
  await self.load_markets()
4160
+ types = await self.is_unified_enabled()
4161
+ enableUnifiedAccount = types[1]
4162
+ if not enableUnifiedAccount:
4163
+ raise NotSupported(self.id + ' cancelOrdersForSymbols() supports UTA accounts only')
4156
4164
  ordersRequests = []
4157
4165
  category = None
4158
4166
  for i in range(0, len(orders)):
@@ -5870,6 +5878,7 @@ class bybit(Exchange, ImplicitAPI):
5870
5878
  :param str [params.settleCoin]: Settle coin. Supports linear, inverse & option
5871
5879
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
5872
5880
  """
5881
+ await self.load_markets()
5873
5882
  symbol = None
5874
5883
  if (symbols is not None) and isinstance(symbols, list):
5875
5884
  symbolsLength = len(symbols)
@@ -5881,7 +5890,6 @@ class bybit(Exchange, ImplicitAPI):
5881
5890
  elif symbols is not None:
5882
5891
  symbol = symbols
5883
5892
  symbols = [self.symbol(symbol)]
5884
- await self.load_markets()
5885
5893
  enableUnifiedMargin, enableUnifiedAccount = await self.is_unified_enabled()
5886
5894
  isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
5887
5895
  request: dict = {}
@@ -256,8 +256,16 @@ class hyperliquid(Exchange, ImplicitAPI):
256
256
  'withdraw': None,
257
257
  'networks': None,
258
258
  'fee': None,
259
- # 'fees': fees,
260
- 'limits': None,
259
+ 'limits': {
260
+ 'amount': {
261
+ 'min': None,
262
+ 'max': None,
263
+ },
264
+ 'withdraw': {
265
+ 'min': None,
266
+ 'max': None,
267
+ },
268
+ },
261
269
  }
262
270
  return result
263
271
 
@@ -4905,9 +4905,10 @@ class mexc(Exchange, ImplicitAPI):
4905
4905
  :returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
4906
4906
  """
4907
4907
  tag, params = self.handle_withdraw_tag_and_params(tag, params)
4908
- networks = self.safe_value(self.options, 'networks', {})
4908
+ networks = self.safe_dict(self.options, 'networks', {})
4909
4909
  network = self.safe_string_2(params, 'network', 'netWork') # self line allows the user to specify either ERC20 or ETH
4910
4910
  network = self.safe_string(networks, network, network) # handle ETH > ERC-20 alias
4911
+ network = self.network_code_to_id(network)
4911
4912
  self.check_address(address)
4912
4913
  await self.load_markets()
4913
4914
  currency = self.currency(code)
@@ -221,7 +221,7 @@ class tradeogre(Exchange, ImplicitAPI):
221
221
  'inverse': None,
222
222
  'contractSize': None,
223
223
  'taker': self.fees['trading']['taker'],
224
- 'maker': self.fees['trading']['taker'],
224
+ 'maker': self.fees['trading']['maker'],
225
225
  'expiry': None,
226
226
  'expiryDatetime': None,
227
227
  'strike': None,
@@ -400,7 +400,16 @@ class vertex(Exchange, ImplicitAPI):
400
400
  'withdraw': self.safe_bool(data, 'can_withdraw'),
401
401
  'networks': None,
402
402
  'fee': None,
403
- 'limits': None,
403
+ 'limits': {
404
+ 'amount': {
405
+ 'min': None,
406
+ 'max': None,
407
+ },
408
+ 'withdraw': {
409
+ 'min': None,
410
+ 'max': None,
411
+ },
412
+ },
404
413
  }
405
414
  return result
406
415
 
@@ -4490,7 +4490,7 @@ class xt(Exchange, ImplicitAPI):
4490
4490
  if isUndefinedBody:
4491
4491
  if urlencoded:
4492
4492
  url += '?' + urlencoded
4493
- payloadString += '#' + method + '#' + payload + '#' + urlencoded
4493
+ payloadString += '#' + method + '#' + payload + '#' + self.rawencode(self.keysort(query))
4494
4494
  else:
4495
4495
  payloadString += '#' + method + '#' + payload
4496
4496
  else:
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.60'
7
+ __version__ = '4.3.62'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -9103,34 +9103,38 @@ class binance(Exchange, ImplicitAPI):
9103
9103
  if marginMode == 'cross':
9104
9104
  # calculate collateral
9105
9105
  precision = self.safe_dict(market, 'precision', {})
9106
- if linear:
9107
- # walletBalance = (liquidationPrice * (±1 + mmp) ± entryPrice) * contracts
9108
- onePlusMaintenanceMarginPercentageString = None
9109
- entryPriceSignString = entryPriceString
9110
- if side == 'short':
9111
- onePlusMaintenanceMarginPercentageString = Precise.string_add('1', maintenanceMarginPercentageString)
9112
- entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9113
- else:
9114
- onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9115
- inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9116
- leftSide = Precise.string_add(inner, entryPriceSignString)
9117
- quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9118
- if quotePrecision is not None:
9119
- collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9120
- else:
9121
- # walletBalance = (contracts * contractSize) * (±1/entryPrice - (±1 - mmp) / liquidationPrice)
9122
- onePlusMaintenanceMarginPercentageString = None
9123
- entryPriceSignString = entryPriceString
9124
- if side == 'short':
9125
- onePlusMaintenanceMarginPercentageString = Precise.string_sub('1', maintenanceMarginPercentageString)
9106
+ basePrecisionValue = self.safe_string(precision, 'base')
9107
+ quotePrecisionValue = self.safe_string_2(precision, 'quote', 'price')
9108
+ precisionIsUndefined = (basePrecisionValue is None) and (quotePrecisionValue is None)
9109
+ if not precisionIsUndefined:
9110
+ if linear:
9111
+ # walletBalance = (liquidationPrice * (±1 + mmp) ± entryPrice) * contracts
9112
+ onePlusMaintenanceMarginPercentageString = None
9113
+ entryPriceSignString = entryPriceString
9114
+ if side == 'short':
9115
+ onePlusMaintenanceMarginPercentageString = Precise.string_add('1', maintenanceMarginPercentageString)
9116
+ entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9117
+ else:
9118
+ onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9119
+ inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9120
+ leftSide = Precise.string_add(inner, entryPriceSignString)
9121
+ quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9122
+ if quotePrecision is not None:
9123
+ collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9126
9124
  else:
9127
- onePlusMaintenanceMarginPercentageString = Precise.string_sub('-1', maintenanceMarginPercentageString)
9128
- entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9129
- leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9130
- rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9131
- basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9132
- if basePrecision is not None:
9133
- collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9125
+ # walletBalance = (contracts * contractSize) * (±1/entryPrice -1 - mmp) / liquidationPrice)
9126
+ onePlusMaintenanceMarginPercentageString = None
9127
+ entryPriceSignString = entryPriceString
9128
+ if side == 'short':
9129
+ onePlusMaintenanceMarginPercentageString = Precise.string_sub('1', maintenanceMarginPercentageString)
9130
+ else:
9131
+ onePlusMaintenanceMarginPercentageString = Precise.string_sub('-1', maintenanceMarginPercentageString)
9132
+ entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9133
+ leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9134
+ rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9135
+ basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9136
+ if basePrecision is not None:
9137
+ collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9134
9138
  else:
9135
9139
  collateralString = self.safe_string(position, 'isolatedMargin')
9136
9140
  collateralString = '0' if (collateralString is None) else collateralString
@@ -9695,9 +9699,10 @@ class binance(Exchange, ImplicitAPI):
9695
9699
  #
9696
9700
  result = []
9697
9701
  for i in range(0, len(response)):
9698
- parsed = self.parse_position_risk(response[i])
9699
- entryPrice = self.safe_string(parsed, 'entryPrice')
9702
+ rawPosition = response[i]
9703
+ entryPrice = self.safe_string(rawPosition, 'entryPrice')
9700
9704
  if (entryPrice != '0') and (entryPrice != '0.0') and (entryPrice != '0.00000000'):
9705
+ parsed = self.parse_position_risk(response[i])
9701
9706
  result.append(parsed)
9702
9707
  symbols = self.market_symbols(symbols)
9703
9708
  return self.filter_by_array_positions(result, 'symbol', symbols, False)
@@ -11200,6 +11205,8 @@ class binance(Exchange, ImplicitAPI):
11200
11205
  request: dict = {}
11201
11206
  if market['option']:
11202
11207
  request['underlyingAsset'] = market['baseId']
11208
+ if market['expiry'] is None:
11209
+ raise NotSupported(self.id + ' fetchOpenInterest does not support ' + symbol)
11203
11210
  request['expiration'] = self.yymmdd(market['expiry'])
11204
11211
  else:
11205
11212
  request['symbol'] = market['id']
@@ -11241,6 +11248,7 @@ class binance(Exchange, ImplicitAPI):
11241
11248
  # ]
11242
11249
  #
11243
11250
  if market['option']:
11251
+ symbol = market['symbol']
11244
11252
  result = self.parse_open_interests(response, market)
11245
11253
  for i in range(0, len(result)):
11246
11254
  item = result[i]
@@ -527,37 +527,40 @@ class bingx(Exchange, ImplicitAPI):
527
527
  response = self.walletsV1PrivateGetCapitalConfigGetall(params)
528
528
  #
529
529
  # {
530
- # "code": 0,
531
- # "timestamp": 1688045966616,
532
- # "data": [
530
+ # "code": 0,
531
+ # "timestamp": 1702623271477,
532
+ # "data": [
533
+ # {
534
+ # "coin": "BTC",
535
+ # "name": "BTC",
536
+ # "networkList": [
533
537
  # {
534
- # "coin": "BTC",
535
538
  # "name": "BTC",
536
- # "networkList": [
537
- # {
538
- # "name": "BTC",
539
- # "network": "BTC",
540
- # "isDefault": True,
541
- # "minConfirm": "2",
542
- # "withdrawEnable": True,
543
- # "withdrawFee": "0.00035",
544
- # "withdrawMax": "1.62842",
545
- # "withdrawMin": "0.0005"
546
- # },
547
- # {
548
- # "name": "BTC",
549
- # "network": "BEP20",
550
- # "isDefault": False,
551
- # "minConfirm": "15",
552
- # "withdrawEnable": True,
553
- # "withdrawFee": "0.00001",
554
- # "withdrawMax": "1.62734",
555
- # "withdrawMin": "0.0001"
556
- # }
557
- # ]
558
- # },
559
- # ...
560
- # ],
539
+ # "network": "BTC",
540
+ # "isDefault": True,
541
+ # "minConfirm": 2,
542
+ # "withdrawEnable": True,
543
+ # "depositEnable": True,
544
+ # "withdrawFee": "0.0006",
545
+ # "withdrawMax": "1.17522",
546
+ # "withdrawMin": "0.0005",
547
+ # "depositMin": "0.0002"
548
+ # },
549
+ # {
550
+ # "name": "BTC",
551
+ # "network": "BEP20",
552
+ # "isDefault": False,
553
+ # "minConfirm": 15,
554
+ # "withdrawEnable": True,
555
+ # "depositEnable": True,
556
+ # "withdrawFee": "0.0000066",
557
+ # "withdrawMax": "1.17522",
558
+ # "withdrawMin": "0.0000066",
559
+ # "depositMin": "0.0002"
560
+ # }
561
+ # ]
562
+ # }
563
+ # ]
561
564
  # }
562
565
  #
563
566
  data = self.safe_list(response, 'data', [])
@@ -571,6 +574,7 @@ class bingx(Exchange, ImplicitAPI):
571
574
  networks: dict = {}
572
575
  fee = None
573
576
  active = None
577
+ depositEnabled = None
574
578
  withdrawEnabled = None
575
579
  defaultLimits: dict = {}
576
580
  for j in range(0, len(networkList)):
@@ -578,13 +582,17 @@ class bingx(Exchange, ImplicitAPI):
578
582
  network = self.safe_string(rawNetwork, 'network')
579
583
  networkCode = self.network_id_to_code(network)
580
584
  isDefault = self.safe_bool(rawNetwork, 'isDefault')
585
+ depositEnabled = self.safe_bool(rawNetwork, 'depositEnable')
581
586
  withdrawEnabled = self.safe_bool(rawNetwork, 'withdrawEnable')
582
587
  limits: dict = {
583
- 'amounts': {'min': self.safe_number(rawNetwork, 'withdrawMin'), 'max': self.safe_number(rawNetwork, 'withdrawMax')},
588
+ 'withdraw': {
589
+ 'min': self.safe_number(rawNetwork, 'withdrawMin'),
590
+ 'max': self.safe_number(rawNetwork, 'withdrawMax'),
591
+ },
584
592
  }
585
593
  if isDefault:
586
594
  fee = self.safe_number(rawNetwork, 'withdrawFee')
587
- active = withdrawEnabled
595
+ active = depositEnabled or withdrawEnabled
588
596
  defaultLimits = limits
589
597
  networks[networkCode] = {
590
598
  'info': rawNetwork,
@@ -592,7 +600,7 @@ class bingx(Exchange, ImplicitAPI):
592
600
  'network': networkCode,
593
601
  'fee': fee,
594
602
  'active': active,
595
- 'deposit': None,
603
+ 'deposit': depositEnabled,
596
604
  'withdraw': withdrawEnabled,
597
605
  'precision': None,
598
606
  'limits': limits,
@@ -604,7 +612,7 @@ class bingx(Exchange, ImplicitAPI):
604
612
  'precision': None,
605
613
  'name': name,
606
614
  'active': active,
607
- 'deposit': None,
615
+ 'deposit': depositEnabled,
608
616
  'withdraw': withdrawEnabled,
609
617
  'networks': networks,
610
618
  'fee': fee,