ccxt 4.4.59__tar.gz → 4.4.61__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 (670) hide show
  1. {ccxt-4.4.59/ccxt.egg-info → ccxt-4.4.61}/PKG-INFO +4 -4
  2. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/alpaca.py +8 -3
  4. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/alpaca.py +8 -3
  6. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/exchange.py +4 -1
  7. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/binance.py +81 -1
  8. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitget.py +2 -1
  9. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bybit.py +5 -2
  10. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/gate.py +76 -13
  11. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/hollaex.py +1 -1
  12. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/oxfun.py +1 -1
  13. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/phemex.py +1 -1
  14. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/xt.py +12 -0
  15. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/exchange.py +5 -1
  16. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/binance.py +81 -1
  17. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitget.py +2 -1
  18. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bybit.py +5 -2
  19. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/gate.py +76 -13
  20. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/hollaex.py +1 -1
  21. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/oxfun.py +1 -1
  22. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/phemex.py +1 -1
  23. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/__init__.py +1 -1
  24. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/gate.py +32 -0
  25. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/xt.py +109 -3
  26. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/test/tests_async.py +11 -0
  27. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/test/tests_sync.py +11 -0
  28. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/xt.py +12 -0
  29. {ccxt-4.4.59 → ccxt-4.4.61/ccxt.egg-info}/PKG-INFO +4 -4
  30. {ccxt-4.4.59 → ccxt-4.4.61}/package.json +1 -1
  31. {ccxt-4.4.59 → ccxt-4.4.61}/LICENSE.txt +0 -0
  32. {ccxt-4.4.59 → ccxt-4.4.61}/MANIFEST.in +0 -0
  33. {ccxt-4.4.59 → ccxt-4.4.61}/README.rst +0 -0
  34. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/__init__.py +0 -0
  35. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/ace.py +0 -0
  36. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/alpaca.py +0 -0
  37. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/ascendex.py +0 -0
  38. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bequant.py +0 -0
  39. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bigone.py +0 -0
  40. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/binance.py +0 -0
  41. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/binancecoinm.py +0 -0
  42. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/binanceus.py +0 -0
  43. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/binanceusdm.py +0 -0
  44. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bingx.py +0 -0
  45. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bit2c.py +0 -0
  46. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitbank.py +0 -0
  47. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitbns.py +0 -0
  48. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitcoincom.py +0 -0
  49. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitfinex.py +0 -0
  50. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitfinex1.py +0 -0
  51. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitflyer.py +0 -0
  52. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitget.py +0 -0
  53. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bithumb.py +0 -0
  54. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitmart.py +0 -0
  55. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitmex.py +0 -0
  56. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitopro.py +0 -0
  57. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitpanda.py +0 -0
  58. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitrue.py +0 -0
  59. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitso.py +0 -0
  60. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitstamp.py +0 -0
  61. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitteam.py +0 -0
  62. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bitvavo.py +0 -0
  63. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bl3p.py +0 -0
  64. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/blockchaincom.py +0 -0
  65. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/blofin.py +0 -0
  66. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/btcalpha.py +0 -0
  67. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/btcbox.py +0 -0
  68. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/btcmarkets.py +0 -0
  69. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/btcturk.py +0 -0
  70. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/bybit.py +0 -0
  71. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/cex.py +0 -0
  72. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinbase.py +0 -0
  73. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinbaseadvanced.py +0 -0
  74. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinbaseexchange.py +0 -0
  75. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinbaseinternational.py +0 -0
  76. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coincatch.py +0 -0
  77. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coincheck.py +0 -0
  78. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinex.py +0 -0
  79. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinlist.py +0 -0
  80. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinmate.py +0 -0
  81. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinmetro.py +0 -0
  82. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinone.py +0 -0
  83. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinsph.py +0 -0
  84. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/coinspot.py +0 -0
  85. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/cryptocom.py +0 -0
  86. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/currencycom.py +0 -0
  87. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/defx.py +0 -0
  88. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/delta.py +0 -0
  89. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/deribit.py +0 -0
  90. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/digifinex.py +0 -0
  91. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/ellipx.py +0 -0
  92. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/exmo.py +0 -0
  93. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/fmfwio.py +0 -0
  94. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/gate.py +0 -0
  95. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/gateio.py +0 -0
  96. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/gemini.py +0 -0
  97. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/hashkey.py +0 -0
  98. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/hitbtc.py +0 -0
  99. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/hollaex.py +0 -0
  100. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/htx.py +0 -0
  101. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/huobi.py +0 -0
  102. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/huobijp.py +0 -0
  103. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/hyperliquid.py +0 -0
  104. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/idex.py +0 -0
  105. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/independentreserve.py +0 -0
  106. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/indodax.py +0 -0
  107. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/kraken.py +0 -0
  108. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/krakenfutures.py +0 -0
  109. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/kucoin.py +0 -0
  110. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/kucoinfutures.py +0 -0
  111. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/kuna.py +0 -0
  112. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/latoken.py +0 -0
  113. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/lbank.py +0 -0
  114. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/luno.py +0 -0
  115. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/mercado.py +0 -0
  116. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/mexc.py +0 -0
  117. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/myokx.py +0 -0
  118. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/ndax.py +0 -0
  119. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/novadax.py +0 -0
  120. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/oceanex.py +0 -0
  121. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/okcoin.py +0 -0
  122. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/okx.py +0 -0
  123. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/onetrading.py +0 -0
  124. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/oxfun.py +0 -0
  125. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/p2b.py +0 -0
  126. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/paradex.py +0 -0
  127. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/paymium.py +0 -0
  128. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/phemex.py +0 -0
  129. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/poloniex.py +0 -0
  130. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/poloniexfutures.py +0 -0
  131. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/probit.py +0 -0
  132. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/timex.py +0 -0
  133. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/tokocrypto.py +0 -0
  134. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/tradeogre.py +0 -0
  135. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/upbit.py +0 -0
  136. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/vertex.py +0 -0
  137. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/wavesexchange.py +0 -0
  138. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/whitebit.py +0 -0
  139. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/woo.py +0 -0
  140. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/woofipro.py +0 -0
  141. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/xt.py +0 -0
  142. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/yobit.py +0 -0
  143. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/zaif.py +0 -0
  144. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/abstract/zonda.py +0 -0
  145. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/ace.py +0 -0
  146. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/ascendex.py +0 -0
  147. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/ace.py +0 -0
  148. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/ascendex.py +0 -0
  149. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/__init__.py +0 -0
  150. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/throttler.py +0 -0
  151. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/__init__.py +0 -0
  152. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  153. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/cache.py +0 -0
  154. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/client.py +0 -0
  155. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/fast_client.py +0 -0
  156. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/functions.py +0 -0
  157. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/future.py +0 -0
  158. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/order_book.py +0 -0
  159. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  160. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bequant.py +0 -0
  161. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bigone.py +0 -0
  162. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/binancecoinm.py +0 -0
  163. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/binanceus.py +0 -0
  164. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/binanceusdm.py +0 -0
  165. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bingx.py +0 -0
  166. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bit2c.py +0 -0
  167. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitbank.py +0 -0
  168. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitbns.py +0 -0
  169. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitcoincom.py +0 -0
  170. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitfinex.py +0 -0
  171. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitfinex1.py +0 -0
  172. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitflyer.py +0 -0
  173. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bithumb.py +0 -0
  174. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitmart.py +0 -0
  175. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitmex.py +0 -0
  176. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitopro.py +0 -0
  177. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitpanda.py +0 -0
  178. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitrue.py +0 -0
  179. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitso.py +0 -0
  180. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitstamp.py +0 -0
  181. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitteam.py +0 -0
  182. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bitvavo.py +0 -0
  183. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/bl3p.py +0 -0
  184. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/blockchaincom.py +0 -0
  185. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/blofin.py +0 -0
  186. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/btcalpha.py +0 -0
  187. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/btcbox.py +0 -0
  188. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/btcmarkets.py +0 -0
  189. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/btcturk.py +0 -0
  190. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/cex.py +0 -0
  191. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinbase.py +0 -0
  192. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinbaseadvanced.py +0 -0
  193. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinbaseexchange.py +0 -0
  194. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinbaseinternational.py +0 -0
  195. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coincatch.py +0 -0
  196. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coincheck.py +0 -0
  197. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinex.py +0 -0
  198. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinlist.py +0 -0
  199. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinmate.py +0 -0
  200. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinmetro.py +0 -0
  201. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinone.py +0 -0
  202. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinsph.py +0 -0
  203. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/coinspot.py +0 -0
  204. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/cryptocom.py +0 -0
  205. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/currencycom.py +0 -0
  206. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/defx.py +0 -0
  207. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/delta.py +0 -0
  208. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/deribit.py +0 -0
  209. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/digifinex.py +0 -0
  210. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/ellipx.py +0 -0
  211. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/exmo.py +0 -0
  212. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/fmfwio.py +0 -0
  213. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/gateio.py +0 -0
  214. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/gemini.py +0 -0
  215. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/hashkey.py +0 -0
  216. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/hitbtc.py +0 -0
  217. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/htx.py +0 -0
  218. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/huobi.py +0 -0
  219. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/huobijp.py +0 -0
  220. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/hyperliquid.py +0 -0
  221. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/idex.py +0 -0
  222. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/independentreserve.py +0 -0
  223. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/indodax.py +0 -0
  224. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/kraken.py +0 -0
  225. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/krakenfutures.py +0 -0
  226. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/kucoin.py +0 -0
  227. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/kucoinfutures.py +0 -0
  228. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/kuna.py +0 -0
  229. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/latoken.py +0 -0
  230. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/lbank.py +0 -0
  231. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/luno.py +0 -0
  232. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/mercado.py +0 -0
  233. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/mexc.py +0 -0
  234. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/myokx.py +0 -0
  235. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/ndax.py +0 -0
  236. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/novadax.py +0 -0
  237. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/oceanex.py +0 -0
  238. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/okcoin.py +0 -0
  239. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/okx.py +0 -0
  240. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/onetrading.py +0 -0
  241. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/p2b.py +0 -0
  242. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/paradex.py +0 -0
  243. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/paymium.py +0 -0
  244. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/poloniex.py +0 -0
  245. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/poloniexfutures.py +0 -0
  246. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/probit.py +0 -0
  247. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/timex.py +0 -0
  248. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/tokocrypto.py +0 -0
  249. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/tradeogre.py +0 -0
  250. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/upbit.py +0 -0
  251. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/vertex.py +0 -0
  252. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/wavesexchange.py +0 -0
  253. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/whitebit.py +0 -0
  254. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/woo.py +0 -0
  255. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/woofipro.py +0 -0
  256. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/yobit.py +0 -0
  257. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/zaif.py +0 -0
  258. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/async_support/zonda.py +0 -0
  259. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/__init__.py +0 -0
  260. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/decimal_to_precision.py +0 -0
  261. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/errors.py +0 -0
  262. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/precise.py +0 -0
  263. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/base/types.py +0 -0
  264. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bequant.py +0 -0
  265. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bigone.py +0 -0
  266. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/binancecoinm.py +0 -0
  267. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/binanceus.py +0 -0
  268. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/binanceusdm.py +0 -0
  269. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bingx.py +0 -0
  270. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bit2c.py +0 -0
  271. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitbank.py +0 -0
  272. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitbns.py +0 -0
  273. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitcoincom.py +0 -0
  274. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitfinex.py +0 -0
  275. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitfinex1.py +0 -0
  276. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitflyer.py +0 -0
  277. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bithumb.py +0 -0
  278. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitmart.py +0 -0
  279. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitmex.py +0 -0
  280. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitopro.py +0 -0
  281. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitpanda.py +0 -0
  282. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitrue.py +0 -0
  283. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitso.py +0 -0
  284. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitstamp.py +0 -0
  285. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitteam.py +0 -0
  286. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bitvavo.py +0 -0
  287. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/bl3p.py +0 -0
  288. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/blockchaincom.py +0 -0
  289. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/blofin.py +0 -0
  290. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/btcalpha.py +0 -0
  291. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/btcbox.py +0 -0
  292. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/btcmarkets.py +0 -0
  293. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/btcturk.py +0 -0
  294. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/cex.py +0 -0
  295. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinbase.py +0 -0
  296. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinbaseadvanced.py +0 -0
  297. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinbaseexchange.py +0 -0
  298. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinbaseinternational.py +0 -0
  299. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coincatch.py +0 -0
  300. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coincheck.py +0 -0
  301. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinex.py +0 -0
  302. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinlist.py +0 -0
  303. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinmate.py +0 -0
  304. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinmetro.py +0 -0
  305. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinone.py +0 -0
  306. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinsph.py +0 -0
  307. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/coinspot.py +0 -0
  308. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/cryptocom.py +0 -0
  309. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/currencycom.py +0 -0
  310. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/defx.py +0 -0
  311. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/delta.py +0 -0
  312. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/deribit.py +0 -0
  313. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/digifinex.py +0 -0
  314. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/ellipx.py +0 -0
  315. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/exmo.py +0 -0
  316. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/fmfwio.py +0 -0
  317. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/gateio.py +0 -0
  318. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/gemini.py +0 -0
  319. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/hashkey.py +0 -0
  320. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/hitbtc.py +0 -0
  321. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/htx.py +0 -0
  322. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/huobi.py +0 -0
  323. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/huobijp.py +0 -0
  324. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/hyperliquid.py +0 -0
  325. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/idex.py +0 -0
  326. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/independentreserve.py +0 -0
  327. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/indodax.py +0 -0
  328. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/kraken.py +0 -0
  329. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/krakenfutures.py +0 -0
  330. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/kucoin.py +0 -0
  331. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/kucoinfutures.py +0 -0
  332. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/kuna.py +0 -0
  333. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/latoken.py +0 -0
  334. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/lbank.py +0 -0
  335. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/luno.py +0 -0
  336. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/mercado.py +0 -0
  337. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/mexc.py +0 -0
  338. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/myokx.py +0 -0
  339. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/ndax.py +0 -0
  340. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/novadax.py +0 -0
  341. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/oceanex.py +0 -0
  342. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/okcoin.py +0 -0
  343. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/okx.py +0 -0
  344. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/onetrading.py +0 -0
  345. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/p2b.py +0 -0
  346. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/paradex.py +0 -0
  347. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/paymium.py +0 -0
  348. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/poloniex.py +0 -0
  349. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/poloniexfutures.py +0 -0
  350. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/alpaca.py +0 -0
  351. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/ascendex.py +0 -0
  352. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bequant.py +0 -0
  353. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/binance.py +0 -0
  354. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/binancecoinm.py +0 -0
  355. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/binanceus.py +0 -0
  356. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/binanceusdm.py +0 -0
  357. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bingx.py +0 -0
  358. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitcoincom.py +0 -0
  359. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitfinex.py +0 -0
  360. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitfinex1.py +0 -0
  361. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitget.py +0 -0
  362. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bithumb.py +0 -0
  363. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitmart.py +0 -0
  364. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitmex.py +0 -0
  365. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitopro.py +0 -0
  366. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitpanda.py +0 -0
  367. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitrue.py +0 -0
  368. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitstamp.py +0 -0
  369. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bitvavo.py +0 -0
  370. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/blockchaincom.py +0 -0
  371. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/blofin.py +0 -0
  372. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/bybit.py +0 -0
  373. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/cex.py +0 -0
  374. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinbase.py +0 -0
  375. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinbaseadvanced.py +0 -0
  376. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinbaseexchange.py +0 -0
  377. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinbaseinternational.py +0 -0
  378. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coincatch.py +0 -0
  379. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coincheck.py +0 -0
  380. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinex.py +0 -0
  381. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/coinone.py +0 -0
  382. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/cryptocom.py +0 -0
  383. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/currencycom.py +0 -0
  384. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/defx.py +0 -0
  385. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/deribit.py +0 -0
  386. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/exmo.py +0 -0
  387. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/gateio.py +0 -0
  388. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/gemini.py +0 -0
  389. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/hashkey.py +0 -0
  390. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/hitbtc.py +0 -0
  391. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/hollaex.py +0 -0
  392. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/htx.py +0 -0
  393. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/huobi.py +0 -0
  394. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/huobijp.py +0 -0
  395. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/hyperliquid.py +0 -0
  396. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/idex.py +0 -0
  397. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/independentreserve.py +0 -0
  398. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/kraken.py +0 -0
  399. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/krakenfutures.py +0 -0
  400. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/kucoin.py +0 -0
  401. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/kucoinfutures.py +0 -0
  402. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/lbank.py +0 -0
  403. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/luno.py +0 -0
  404. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/mexc.py +0 -0
  405. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/myokx.py +0 -0
  406. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/ndax.py +0 -0
  407. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/okcoin.py +0 -0
  408. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/okx.py +0 -0
  409. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/onetrading.py +0 -0
  410. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/oxfun.py +0 -0
  411. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/p2b.py +0 -0
  412. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/paradex.py +0 -0
  413. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/phemex.py +0 -0
  414. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/poloniex.py +0 -0
  415. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/poloniexfutures.py +0 -0
  416. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/probit.py +0 -0
  417. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/upbit.py +0 -0
  418. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/vertex.py +0 -0
  419. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/wazirx.py +0 -0
  420. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/whitebit.py +0 -0
  421. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/woo.py +0 -0
  422. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/pro/woofipro.py +0 -0
  423. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/probit.py +0 -0
  424. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/__init__.py +0 -0
  425. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  426. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  427. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  428. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  429. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  430. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  431. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  432. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  433. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  434. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  435. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  436. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  437. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  438. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  439. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  440. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  441. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  442. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  443. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  444. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  445. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  446. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  447. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  448. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  449. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  450. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  451. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  452. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  453. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  454. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  455. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  456. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  457. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  458. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  459. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  460. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  461. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  462. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  463. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  464. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  465. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  466. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  467. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  468. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  469. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  470. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  471. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  472. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  473. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  474. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  475. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  476. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  477. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  478. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  479. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  480. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  481. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  482. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  483. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  484. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  485. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  486. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  487. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  488. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  489. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  490. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  491. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  492. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  493. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  494. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  495. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  496. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  497. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  498. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  499. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/__init__.py +0 -0
  500. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  501. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  502. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  503. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/common.py +0 -0
  504. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  505. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/grammar.py +0 -0
  506. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  507. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/indenter.py +0 -0
  508. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/lark.py +0 -0
  509. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/lexer.py +0 -0
  510. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  511. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  512. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  513. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  514. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  515. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  516. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  517. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  518. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  519. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  520. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  521. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  522. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  523. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  524. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/py.typed +0 -0
  525. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  526. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  527. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  528. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  529. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  530. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tree.py +0 -0
  531. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  532. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  533. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/utils.py +0 -0
  534. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/lark/visitors.py +0 -0
  535. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  536. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  537. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  538. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  539. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  540. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  541. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  542. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  543. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  544. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  545. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  546. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  547. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  548. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  549. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  550. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  551. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  552. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  553. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  554. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  555. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  556. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  557. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  558. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  559. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  560. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  561. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  562. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  563. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  564. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  565. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  566. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  567. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  568. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  569. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  570. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  571. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  572. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  573. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  574. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  575. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  576. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  577. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  578. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  579. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  580. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  581. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  582. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  583. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/common.py +0 -0
  584. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/constants.py +0 -0
  585. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  586. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  587. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  588. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  589. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  590. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  591. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  592. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  593. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  594. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  595. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  596. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  597. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  598. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  599. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  600. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  601. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  602. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  603. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  604. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  605. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  606. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  607. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  608. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  609. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  610. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  611. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  612. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  613. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  614. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  615. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  616. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  617. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  618. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  619. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  620. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  621. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  622. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  623. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  624. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  625. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  626. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  627. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  628. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  629. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  630. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  631. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  632. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  633. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  634. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  635. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  636. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  637. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  638. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/_version.py +0 -0
  639. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  640. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  641. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  642. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  643. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  644. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  645. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  646. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  647. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/toolz/utils.py +0 -0
  648. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  649. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  650. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/test/__init__.py +0 -0
  651. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/test/tests_helpers.py +0 -0
  652. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/test/tests_init.py +0 -0
  653. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/timex.py +0 -0
  654. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/tokocrypto.py +0 -0
  655. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/tradeogre.py +0 -0
  656. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/upbit.py +0 -0
  657. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/vertex.py +0 -0
  658. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/wavesexchange.py +0 -0
  659. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/whitebit.py +0 -0
  660. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/woo.py +0 -0
  661. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/woofipro.py +0 -0
  662. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/yobit.py +0 -0
  663. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/zaif.py +0 -0
  664. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt/zonda.py +0 -0
  665. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt.egg-info/SOURCES.txt +0 -0
  666. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt.egg-info/dependency_links.txt +0 -0
  667. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt.egg-info/requires.txt +0 -0
  668. {ccxt-4.4.59 → ccxt-4.4.61}/ccxt.egg-info/top_level.txt +0 -0
  669. {ccxt-4.4.59 → ccxt-4.4.61}/setup.cfg +0 -0
  670. {ccxt-4.4.59 → ccxt-4.4.61}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.59
3
+ Version: 4.4.61
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
@@ -266,13 +266,13 @@ console.log(version, Object.keys(exchanges));
266
266
 
267
267
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
268
268
 
269
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.59/dist/ccxt.browser.min.js
270
- * unpkg: https://unpkg.com/ccxt@4.4.59/dist/ccxt.browser.min.js
269
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.61/dist/ccxt.browser.min.js
270
+ * unpkg: https://unpkg.com/ccxt@4.4.61/dist/ccxt.browser.min.js
271
271
 
272
272
  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.
273
273
 
274
274
  ```HTML
275
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.59/dist/ccxt.browser.min.js"></script>
275
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.61/dist/ccxt.browser.min.js"></script>
276
276
  ```
277
277
 
278
278
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.59'
25
+ __version__ = '4.4.61'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -1138,9 +1138,9 @@ class alpaca(Exchange, ImplicitAPI):
1138
1138
  until = self.safe_integer(params, 'until')
1139
1139
  if until is not None:
1140
1140
  params = self.omit(params, 'until')
1141
- request['endTime'] = until
1141
+ request['endTime'] = self.iso8601(until)
1142
1142
  if since is not None:
1143
- request['after'] = since
1143
+ request['after'] = self.iso8601(since)
1144
1144
  if limit is not None:
1145
1145
  request['limit'] = limit
1146
1146
  response = self.traderPrivateGetV2Orders(self.extend(request, params))
@@ -1374,6 +1374,7 @@ class alpaca(Exchange, ImplicitAPI):
1374
1374
  :param int [limit]: the maximum number of trade structures to retrieve
1375
1375
  :param dict [params]: extra parameters specific to the exchange API endpoint
1376
1376
  :param int [params.until]: the latest time in ms to fetch trades for
1377
+ :param str [params.page_token]: page_token - used for paging
1377
1378
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1378
1379
  """
1379
1380
  self.load_markets()
@@ -1383,8 +1384,12 @@ class alpaca(Exchange, ImplicitAPI):
1383
1384
  }
1384
1385
  if symbol is not None:
1385
1386
  market = self.market(symbol)
1387
+ until = self.safe_integer(params, 'until')
1388
+ if until is not None:
1389
+ params = self.omit(params, 'until')
1390
+ request['until'] = self.iso8601(until)
1386
1391
  if since is not None:
1387
- request['after'] = since
1392
+ request['after'] = self.iso8601(since)
1388
1393
  if limit is not None:
1389
1394
  request['page_size'] = limit
1390
1395
  request, params = self.handle_until_option('until', request, params)
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.59'
7
+ __version__ = '4.4.61'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1138,9 +1138,9 @@ class alpaca(Exchange, ImplicitAPI):
1138
1138
  until = self.safe_integer(params, 'until')
1139
1139
  if until is not None:
1140
1140
  params = self.omit(params, 'until')
1141
- request['endTime'] = until
1141
+ request['endTime'] = self.iso8601(until)
1142
1142
  if since is not None:
1143
- request['after'] = since
1143
+ request['after'] = self.iso8601(since)
1144
1144
  if limit is not None:
1145
1145
  request['limit'] = limit
1146
1146
  response = await self.traderPrivateGetV2Orders(self.extend(request, params))
@@ -1374,6 +1374,7 @@ class alpaca(Exchange, ImplicitAPI):
1374
1374
  :param int [limit]: the maximum number of trade structures to retrieve
1375
1375
  :param dict [params]: extra parameters specific to the exchange API endpoint
1376
1376
  :param int [params.until]: the latest time in ms to fetch trades for
1377
+ :param str [params.page_token]: page_token - used for paging
1377
1378
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1378
1379
  """
1379
1380
  await self.load_markets()
@@ -1383,8 +1384,12 @@ class alpaca(Exchange, ImplicitAPI):
1383
1384
  }
1384
1385
  if symbol is not None:
1385
1386
  market = self.market(symbol)
1387
+ until = self.safe_integer(params, 'until')
1388
+ if until is not None:
1389
+ params = self.omit(params, 'until')
1390
+ request['until'] = self.iso8601(until)
1386
1391
  if since is not None:
1387
- request['after'] = since
1392
+ request['after'] = self.iso8601(since)
1388
1393
  if limit is not None:
1389
1394
  request['page_size'] = limit
1390
1395
  request, params = self.handle_until_option('until', request, params)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.59'
5
+ __version__ = '4.4.61'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1440,6 +1440,9 @@ class Exchange(BaseExchange):
1440
1440
  async def create_orders(self, orders: List[OrderRequest], params={}):
1441
1441
  raise NotSupported(self.id + ' createOrders() is not supported yet')
1442
1442
 
1443
+ async def edit_orders(self, orders: List[OrderRequest], params={}):
1444
+ raise NotSupported(self.id + ' editOrders() is not supported yet')
1445
+
1443
1446
  async def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1444
1447
  raise NotSupported(self.id + ' createOrderWs() is not supported yet')
1445
1448
 
@@ -86,6 +86,7 @@ class binance(Exchange, ImplicitAPI):
86
86
  'createTrailingPercentOrder': True,
87
87
  'createTriggerOrder': True,
88
88
  'editOrder': True,
89
+ 'editOrders': True,
89
90
  'fetchAccounts': None,
90
91
  'fetchBalance': True,
91
92
  'fetchBidsAsks': True,
@@ -5393,6 +5394,85 @@ class binance(Exchange, ImplicitAPI):
5393
5394
  else:
5394
5395
  return await self.edit_contract_order(id, symbol, type, side, amount, price, params)
5395
5396
 
5397
+ async def edit_orders(self, orders: List[OrderRequest], params={}):
5398
+ """
5399
+ edit a list of trade orders
5400
+
5401
+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders
5402
+ https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Multiple-Orders
5403
+
5404
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
5405
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5406
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
5407
+ """
5408
+ await self.load_markets()
5409
+ ordersRequests = []
5410
+ orderSymbols = []
5411
+ for i in range(0, len(orders)):
5412
+ rawOrder = orders[i]
5413
+ marketId = self.safe_string(rawOrder, 'symbol')
5414
+ orderSymbols.append(marketId)
5415
+ id = self.safe_string(rawOrder, 'id')
5416
+ type = self.safe_string(rawOrder, 'type')
5417
+ side = self.safe_string(rawOrder, 'side')
5418
+ amount = self.safe_value(rawOrder, 'amount')
5419
+ price = self.safe_value(rawOrder, 'price')
5420
+ orderParams = self.safe_dict(rawOrder, 'params', {})
5421
+ isPortfolioMargin = None
5422
+ isPortfolioMargin, orderParams = self.handle_option_and_params_2(orderParams, 'editOrders', 'papi', 'portfolioMargin', False)
5423
+ if isPortfolioMargin:
5424
+ raise NotSupported(self.id + ' editOrders() does not support portfolio margin orders')
5425
+ orderRequest = self.edit_contract_order_request(id, marketId, type, side, amount, price, orderParams)
5426
+ ordersRequests.append(orderRequest)
5427
+ orderSymbols = self.market_symbols(orderSymbols, None, False, True, True)
5428
+ market = self.market(orderSymbols[0])
5429
+ if market['spot'] or market['option']:
5430
+ raise NotSupported(self.id + ' editOrders() does not support ' + market['type'] + ' orders')
5431
+ response = None
5432
+ request: dict = {
5433
+ 'batchOrders': ordersRequests,
5434
+ }
5435
+ request = self.extend(request, params)
5436
+ if market['linear']:
5437
+ response = await self.fapiPrivatePutBatchOrders(request)
5438
+ elif market['inverse']:
5439
+ response = await self.dapiPrivatePutBatchOrders(request)
5440
+ #
5441
+ # [
5442
+ # {
5443
+ # "code": -4005,
5444
+ # "msg": "Quantity greater than max quantity."
5445
+ # },
5446
+ # {
5447
+ # "orderId": 650640530,
5448
+ # "symbol": "LTCUSDT",
5449
+ # "status": "NEW",
5450
+ # "clientOrderId": "x-xcKtGhcu32184eb13585491289bbaf",
5451
+ # "price": "54.00",
5452
+ # "avgPrice": "0.00",
5453
+ # "origQty": "0.100",
5454
+ # "executedQty": "0.000",
5455
+ # "cumQty": "0.000",
5456
+ # "cumQuote": "0.00000",
5457
+ # "timeInForce": "GTC",
5458
+ # "type": "LIMIT",
5459
+ # "reduceOnly": False,
5460
+ # "closePosition": False,
5461
+ # "side": "BUY",
5462
+ # "positionSide": "BOTH",
5463
+ # "stopPrice": "0.00",
5464
+ # "workingType": "CONTRACT_PRICE",
5465
+ # "priceProtect": False,
5466
+ # "origType": "LIMIT",
5467
+ # "priceMatch": "NONE",
5468
+ # "selfTradePreventionMode": "NONE",
5469
+ # "goodTillDate": 0,
5470
+ # "updateTime": 1698073926929
5471
+ # }
5472
+ # ]
5473
+ #
5474
+ return self.parse_orders(response)
5475
+
5396
5476
  def parse_order_status(self, status: Str):
5397
5477
  statuses: dict = {
5398
5478
  'NEW': 'open',
@@ -11243,7 +11323,7 @@ class binance(Exchange, ImplicitAPI):
11243
11323
  params['newClientOrderId'] = brokerId + self.uuid22()
11244
11324
  query = None
11245
11325
  # handle batchOrders
11246
- if (path == 'batchOrders') and (method == 'POST'):
11326
+ if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
11247
11327
  batchOrders = self.safe_value(params, 'batchOrders')
11248
11328
  queryBatch = (self.json(batchOrders))
11249
11329
  params['batchOrders'] = queryBatch
@@ -8856,7 +8856,8 @@ class bitget(Exchange, ImplicitAPI):
8856
8856
  if method == 'POST':
8857
8857
  headers['Content-Type'] = 'application/json'
8858
8858
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
8859
- if sandboxMode:
8859
+ if sandboxMode and (path != 'v2/public/time'):
8860
+ # https://github.com/ccxt/ccxt/issues/25252#issuecomment-2662742336
8860
8861
  if headers is None:
8861
8862
  headers = {}
8862
8863
  headers['PAPTRADING'] = '1'
@@ -6525,10 +6525,13 @@ classic accounts only/ spot not supported* fetches information on an order made
6525
6525
  # }
6526
6526
  #
6527
6527
  timestamp = self.safe_integer(interest, 'timestamp')
6528
- value = self.safe_number_2(interest, 'open_interest', 'openInterest')
6528
+ openInterest = self.safe_number_2(interest, 'open_interest', 'openInterest')
6529
+ # the openInterest is in the base asset for linear and quote asset for inverse
6530
+ amount = openInterest if market['linear'] else None
6531
+ value = openInterest if market['inverse'] else None
6529
6532
  return self.safe_open_interest({
6530
6533
  'symbol': market['symbol'],
6531
- 'openInterestAmount': None,
6534
+ 'openInterestAmount': amount,
6532
6535
  'openInterestValue': value,
6533
6536
  'timestamp': timestamp,
6534
6537
  'datetime': self.iso8601(timestamp),
@@ -675,23 +675,67 @@ class gate(Exchange, ImplicitAPI):
675
675
  },
676
676
  'createMarketBuyOrderRequiresPrice': True,
677
677
  'networks': {
678
- 'LINEA': 'LINEAETH',
679
- 'KON': 'KONET',
680
- 'AVAXC': 'AVAX_C',
678
+ 'BTC': 'BTC',
679
+ 'BRC20': 'BTCBRC', # for eg: ORDI, RATS, ...
680
+ 'ETH': 'ETH',
681
+ 'ERC20': 'ETH',
682
+ 'TRX': 'TRX',
683
+ 'TRC20': 'TRX',
684
+ 'HECO': 'HT',
685
+ 'HRC20': 'HT',
686
+ 'BSC': 'BSC',
681
687
  'BEP20': 'BSC',
688
+ 'SOL': 'SOL',
689
+ 'POLYGON': 'POL',
690
+ 'MATIC': 'POL',
691
+ 'OP': 'OPETH',
692
+ 'OPTIMISM': 'OPETH',
693
+ 'ADA': 'ADA', # CARDANO
694
+ 'AVAXC': 'AVAX_C',
695
+ 'NEAR': 'NEAR',
696
+ 'ARBONE': 'ARBEVM',
697
+ 'BASE': 'BASEEVM',
698
+ 'SUI': 'SUI',
699
+ 'CRONOS': 'CRO',
700
+ 'CRO': 'CRO',
701
+ 'APT': 'APT',
702
+ 'SCROLL': 'SCROLLETH',
703
+ 'TAIKO': 'TAIKOETH',
704
+ 'HYPE': 'HYPE',
705
+ 'ALGO': 'ALGO',
706
+ # KAVA: ['KAVA', 'KAVAEVM']
707
+ # SEI: ['SEI', 'SEIEVM']
708
+ 'LINEA': 'LINEAETH',
709
+ 'BLAST': 'BLASTETH',
710
+ 'XLM': 'XLM',
711
+ 'RSK': 'RBTC',
712
+ 'TON': 'TON',
713
+ 'MNT': 'MNT',
714
+ # 'RUNE': 'BTCRUNES', probably, cant verify atm
715
+ 'CELO': 'CELO',
716
+ 'HBAR': 'HBAR',
717
+ # 'FTM': SONIC REBRAND, todo
718
+ 'ZKSERA': 'ZKSERA',
719
+ 'KLAY': 'KLAY',
682
720
  'EOS': 'EOS',
683
- 'ERC20': 'ETH',
721
+ 'ACA': 'ACA',
722
+ # TLOS: ['TLOS', 'TLOSEVM']
723
+ # ASTR: ['ASTR', 'ASTREVM']
724
+ # CFX: ['CFX', 'CFXEVM']
725
+ 'XTZ': 'XTZ',
726
+ 'EGLD': 'EGLD',
727
+ 'GLMR': 'GLMR',
728
+ 'AURORA': 'AURORAEVM',
729
+ # others
730
+ 'KON': 'KONET',
684
731
  'GATECHAIN': 'GTEVM',
685
- 'HRC20': 'HT',
686
732
  'KUSAMA': 'KSMSM',
687
- 'NEAR': 'NEAR',
688
733
  'OKC': 'OKT',
689
- 'OPTIMISM': 'OPETH',
690
- 'POLKADOT': 'DOTSM',
691
- 'TRC20': 'TRX',
734
+ 'POLKADOT': 'DOTSM', # todo: DOT for main DOT
692
735
  'LUNA': 'LUNC',
693
- 'BASE': 'BASEEVM',
694
- 'BRC20': 'BTCBRC',
736
+ },
737
+ 'networksById': {
738
+ 'OPETH': 'OP',
695
739
  },
696
740
  'timeInForce': {
697
741
  'GTC': 'gtc',
@@ -3526,6 +3570,7 @@ class gate(Exchange, ImplicitAPI):
3526
3570
  #
3527
3571
  # public
3528
3572
  #
3573
+ # spot:
3529
3574
  # {
3530
3575
  # "id": "1334253759",
3531
3576
  # "create_time": "1626342738",
@@ -3536,6 +3581,18 @@ class gate(Exchange, ImplicitAPI):
3536
3581
  # "price": "32452.16"
3537
3582
  # }
3538
3583
  #
3584
+ # swap:
3585
+ #
3586
+ # {
3587
+ # "id": "442288327",
3588
+ # "contract": "BTC_USDT",
3589
+ # "create_time": "1739814676.707",
3590
+ # "create_time_ms": "1739814676.707",
3591
+ # "size": "-105",
3592
+ # "price": "95594.8"
3593
+ # }
3594
+ #
3595
+ #
3539
3596
  # public ws
3540
3597
  #
3541
3598
  # {
@@ -3612,8 +3669,14 @@ class gate(Exchange, ImplicitAPI):
3612
3669
  # }
3613
3670
  #
3614
3671
  id = self.safe_string_2(trade, 'id', 'trade_id')
3615
- timestamp = self.safe_timestamp_2(trade, 'time', 'create_time')
3616
- timestamp = self.safe_integer(trade, 'create_time_ms', timestamp)
3672
+ timestamp: Int = None
3673
+ msString = self.safe_string(trade, 'create_time_ms')
3674
+ if msString is not None:
3675
+ msString = Precise.string_mul(msString, '1000')
3676
+ msString = msString[0:13]
3677
+ timestamp = self.parse_to_int(msString)
3678
+ else:
3679
+ timestamp = self.safe_timestamp_2(trade, 'time', 'create_time')
3617
3680
  marketId = self.safe_string_2(trade, 'currency_pair', 'contract')
3618
3681
  marketType = 'contract' if ('contract' in trade) else 'spot'
3619
3682
  market = self.safe_market(marketId, market, '_', marketType)
@@ -1882,7 +1882,7 @@ class hollaex(Exchange, ImplicitAPI):
1882
1882
  # "network":"https://api.hollaex.network"
1883
1883
  # }
1884
1884
  #
1885
- coins = self.safe_list(response, 'coins')
1885
+ coins = self.safe_dict(response, 'coins', {})
1886
1886
  return self.parse_deposit_withdraw_fees(coins, codes, 'symbol')
1887
1887
 
1888
1888
  def normalize_number_if_needed(self, number):
@@ -2885,7 +2885,7 @@ class oxfun(Exchange, ImplicitAPI):
2885
2885
  'AccessKey': self.apiKey,
2886
2886
  'Timestamp': datetime,
2887
2887
  'Signature': signature,
2888
- 'Nonce': nonce,
2888
+ 'Nonce': str(nonce),
2889
2889
  }
2890
2890
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
2891
2891
 
@@ -1078,7 +1078,7 @@ class phemex(Exchange, ImplicitAPI):
1078
1078
  for i in range(0, len(products)):
1079
1079
  market = products[i]
1080
1080
  type = self.safe_string_lower(market, 'type')
1081
- if (type == 'perpetual') or (type == 'perpetualv2'):
1081
+ if (type == 'perpetual') or (type == 'perpetualv2') or (type == 'PerpetualPilot'):
1082
1082
  id = self.safe_string(market, 'symbol')
1083
1083
  riskLimitValues = self.safe_value(riskLimitsById, id, {})
1084
1084
  market = self.extend(market, riskLimitValues)
@@ -1394,9 +1394,15 @@ class xt(Exchange, ImplicitAPI):
1394
1394
  :param int [since]: timestamp in ms of the earliest candle to fetch
1395
1395
  :param int [limit]: the maximum amount of candles to fetch
1396
1396
  :param dict params: extra parameters specific to the xt api endpoint
1397
+ :param int [params.until]: timestamp in ms of the latest candle to fetch
1398
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1397
1399
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
1398
1400
  """
1399
1401
  await self.load_markets()
1402
+ paginate = False
1403
+ paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate', False)
1404
+ if paginate:
1405
+ return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 1000)
1400
1406
  market = self.market(symbol)
1401
1407
  request = {
1402
1408
  'symbol': market['id'],
@@ -1406,6 +1412,12 @@ class xt(Exchange, ImplicitAPI):
1406
1412
  request['startTime'] = since
1407
1413
  if limit is not None:
1408
1414
  request['limit'] = limit
1415
+ else:
1416
+ request['limit'] = 1000
1417
+ until = self.safe_integer(params, 'until')
1418
+ params = self.omit(params, ['until'])
1419
+ if until is not None:
1420
+ request['endTime'] = until
1409
1421
  response = None
1410
1422
  if market['linear']:
1411
1423
  response = await self.publicLinearGetFutureMarketV1PublicQKline(self.extend(request, params))
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.59'
7
+ __version__ = '4.4.61'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1871,6 +1871,7 @@ class Exchange(object):
1871
1871
  'createTriggerOrderWs': None,
1872
1872
  'deposit': None,
1873
1873
  'editOrder': 'emulated',
1874
+ 'editOrders': None,
1874
1875
  'editOrderWs': None,
1875
1876
  'fetchAccounts': None,
1876
1877
  'fetchBalance': True,
@@ -5178,6 +5179,9 @@ class Exchange(object):
5178
5179
  def create_orders(self, orders: List[OrderRequest], params={}):
5179
5180
  raise NotSupported(self.id + ' createOrders() is not supported yet')
5180
5181
 
5182
+ def edit_orders(self, orders: List[OrderRequest], params={}):
5183
+ raise NotSupported(self.id + ' editOrders() is not supported yet')
5184
+
5181
5185
  def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
5182
5186
  raise NotSupported(self.id + ' createOrderWs() is not supported yet')
5183
5187
 
@@ -85,6 +85,7 @@ class binance(Exchange, ImplicitAPI):
85
85
  'createTrailingPercentOrder': True,
86
86
  'createTriggerOrder': True,
87
87
  'editOrder': True,
88
+ 'editOrders': True,
88
89
  'fetchAccounts': None,
89
90
  'fetchBalance': True,
90
91
  'fetchBidsAsks': True,
@@ -5392,6 +5393,85 @@ class binance(Exchange, ImplicitAPI):
5392
5393
  else:
5393
5394
  return self.edit_contract_order(id, symbol, type, side, amount, price, params)
5394
5395
 
5396
+ def edit_orders(self, orders: List[OrderRequest], params={}):
5397
+ """
5398
+ edit a list of trade orders
5399
+
5400
+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders
5401
+ https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Multiple-Orders
5402
+
5403
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
5404
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5405
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
5406
+ """
5407
+ self.load_markets()
5408
+ ordersRequests = []
5409
+ orderSymbols = []
5410
+ for i in range(0, len(orders)):
5411
+ rawOrder = orders[i]
5412
+ marketId = self.safe_string(rawOrder, 'symbol')
5413
+ orderSymbols.append(marketId)
5414
+ id = self.safe_string(rawOrder, 'id')
5415
+ type = self.safe_string(rawOrder, 'type')
5416
+ side = self.safe_string(rawOrder, 'side')
5417
+ amount = self.safe_value(rawOrder, 'amount')
5418
+ price = self.safe_value(rawOrder, 'price')
5419
+ orderParams = self.safe_dict(rawOrder, 'params', {})
5420
+ isPortfolioMargin = None
5421
+ isPortfolioMargin, orderParams = self.handle_option_and_params_2(orderParams, 'editOrders', 'papi', 'portfolioMargin', False)
5422
+ if isPortfolioMargin:
5423
+ raise NotSupported(self.id + ' editOrders() does not support portfolio margin orders')
5424
+ orderRequest = self.edit_contract_order_request(id, marketId, type, side, amount, price, orderParams)
5425
+ ordersRequests.append(orderRequest)
5426
+ orderSymbols = self.market_symbols(orderSymbols, None, False, True, True)
5427
+ market = self.market(orderSymbols[0])
5428
+ if market['spot'] or market['option']:
5429
+ raise NotSupported(self.id + ' editOrders() does not support ' + market['type'] + ' orders')
5430
+ response = None
5431
+ request: dict = {
5432
+ 'batchOrders': ordersRequests,
5433
+ }
5434
+ request = self.extend(request, params)
5435
+ if market['linear']:
5436
+ response = self.fapiPrivatePutBatchOrders(request)
5437
+ elif market['inverse']:
5438
+ response = self.dapiPrivatePutBatchOrders(request)
5439
+ #
5440
+ # [
5441
+ # {
5442
+ # "code": -4005,
5443
+ # "msg": "Quantity greater than max quantity."
5444
+ # },
5445
+ # {
5446
+ # "orderId": 650640530,
5447
+ # "symbol": "LTCUSDT",
5448
+ # "status": "NEW",
5449
+ # "clientOrderId": "x-xcKtGhcu32184eb13585491289bbaf",
5450
+ # "price": "54.00",
5451
+ # "avgPrice": "0.00",
5452
+ # "origQty": "0.100",
5453
+ # "executedQty": "0.000",
5454
+ # "cumQty": "0.000",
5455
+ # "cumQuote": "0.00000",
5456
+ # "timeInForce": "GTC",
5457
+ # "type": "LIMIT",
5458
+ # "reduceOnly": False,
5459
+ # "closePosition": False,
5460
+ # "side": "BUY",
5461
+ # "positionSide": "BOTH",
5462
+ # "stopPrice": "0.00",
5463
+ # "workingType": "CONTRACT_PRICE",
5464
+ # "priceProtect": False,
5465
+ # "origType": "LIMIT",
5466
+ # "priceMatch": "NONE",
5467
+ # "selfTradePreventionMode": "NONE",
5468
+ # "goodTillDate": 0,
5469
+ # "updateTime": 1698073926929
5470
+ # }
5471
+ # ]
5472
+ #
5473
+ return self.parse_orders(response)
5474
+
5395
5475
  def parse_order_status(self, status: Str):
5396
5476
  statuses: dict = {
5397
5477
  'NEW': 'open',
@@ -11242,7 +11322,7 @@ class binance(Exchange, ImplicitAPI):
11242
11322
  params['newClientOrderId'] = brokerId + self.uuid22()
11243
11323
  query = None
11244
11324
  # handle batchOrders
11245
- if (path == 'batchOrders') and (method == 'POST'):
11325
+ if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
11246
11326
  batchOrders = self.safe_value(params, 'batchOrders')
11247
11327
  queryBatch = (self.json(batchOrders))
11248
11328
  params['batchOrders'] = queryBatch
@@ -8855,7 +8855,8 @@ class bitget(Exchange, ImplicitAPI):
8855
8855
  if method == 'POST':
8856
8856
  headers['Content-Type'] = 'application/json'
8857
8857
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
8858
- if sandboxMode:
8858
+ if sandboxMode and (path != 'v2/public/time'):
8859
+ # https://github.com/ccxt/ccxt/issues/25252#issuecomment-2662742336
8859
8860
  if headers is None:
8860
8861
  headers = {}
8861
8862
  headers['PAPTRADING'] = '1'
@@ -6524,10 +6524,13 @@ classic accounts only/ spot not supported* fetches information on an order made
6524
6524
  # }
6525
6525
  #
6526
6526
  timestamp = self.safe_integer(interest, 'timestamp')
6527
- value = self.safe_number_2(interest, 'open_interest', 'openInterest')
6527
+ openInterest = self.safe_number_2(interest, 'open_interest', 'openInterest')
6528
+ # the openInterest is in the base asset for linear and quote asset for inverse
6529
+ amount = openInterest if market['linear'] else None
6530
+ value = openInterest if market['inverse'] else None
6528
6531
  return self.safe_open_interest({
6529
6532
  'symbol': market['symbol'],
6530
- 'openInterestAmount': None,
6533
+ 'openInterestAmount': amount,
6531
6534
  'openInterestValue': value,
6532
6535
  'timestamp': timestamp,
6533
6536
  'datetime': self.iso8601(timestamp),