ccxt 4.2.93__tar.gz → 4.2.94__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 (543) hide show
  1. {ccxt-4.2.93/ccxt.egg-info → ccxt-4.2.94}/PKG-INFO +4 -4
  2. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/binance.py +1 -0
  4. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/binancecoinm.py +1 -0
  5. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/binanceus.py +1 -0
  6. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/binanceusdm.py +1 -0
  7. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/__init__.py +1 -1
  8. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/exchange.py +7 -1
  9. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/binance.py +60 -2
  10. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitget.py +135 -1
  11. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/okx.py +149 -1
  12. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/woo.py +135 -1
  13. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/exchange.py +18 -1
  14. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/types.py +13 -0
  15. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/binance.py +60 -2
  16. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitget.py +135 -1
  17. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/okx.py +149 -1
  18. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/__init__.py +1 -1
  19. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/kraken.py +96 -18
  20. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/krakenfutures.py +104 -39
  21. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/kucoin.py +25 -16
  22. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/woo.py +135 -1
  23. {ccxt-4.2.93 → ccxt-4.2.94/ccxt.egg-info}/PKG-INFO +4 -4
  24. {ccxt-4.2.93 → ccxt-4.2.94}/package.json +1 -1
  25. {ccxt-4.2.93 → ccxt-4.2.94}/LICENSE.txt +0 -0
  26. {ccxt-4.2.93 → ccxt-4.2.94}/MANIFEST.in +0 -0
  27. {ccxt-4.2.93 → ccxt-4.2.94}/README.rst +0 -0
  28. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/__init__.py +0 -0
  29. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/ace.py +0 -0
  30. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/alpaca.py +0 -0
  31. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/ascendex.py +0 -0
  32. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bequant.py +0 -0
  33. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bigone.py +0 -0
  34. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bingx.py +0 -0
  35. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bit2c.py +0 -0
  36. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitbank.py +0 -0
  37. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitbay.py +0 -0
  38. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitbns.py +0 -0
  39. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitcoincom.py +0 -0
  40. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitfinex.py +0 -0
  41. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitfinex2.py +0 -0
  42. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitflyer.py +0 -0
  43. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitget.py +0 -0
  44. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bithumb.py +0 -0
  45. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitmart.py +0 -0
  46. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitmex.py +0 -0
  47. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitopro.py +0 -0
  48. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitpanda.py +0 -0
  49. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitrue.py +0 -0
  50. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitso.py +0 -0
  51. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitstamp.py +0 -0
  52. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitteam.py +0 -0
  53. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bitvavo.py +0 -0
  54. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bl3p.py +0 -0
  55. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/blockchaincom.py +0 -0
  56. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/blofin.py +0 -0
  57. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/btcalpha.py +0 -0
  58. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/btcbox.py +0 -0
  59. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/btcmarkets.py +0 -0
  60. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/btcturk.py +0 -0
  61. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/bybit.py +0 -0
  62. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/cex.py +0 -0
  63. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinbase.py +0 -0
  64. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinbaseinternational.py +0 -0
  65. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinbasepro.py +0 -0
  66. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coincheck.py +0 -0
  67. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinex.py +0 -0
  68. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinlist.py +0 -0
  69. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinmate.py +0 -0
  70. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinmetro.py +0 -0
  71. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinone.py +0 -0
  72. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinsph.py +0 -0
  73. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/coinspot.py +0 -0
  74. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/cryptocom.py +0 -0
  75. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/currencycom.py +0 -0
  76. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/delta.py +0 -0
  77. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/deribit.py +0 -0
  78. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/digifinex.py +0 -0
  79. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/exmo.py +0 -0
  80. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/fmfwio.py +0 -0
  81. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/gate.py +0 -0
  82. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/gateio.py +0 -0
  83. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/gemini.py +0 -0
  84. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/hitbtc.py +0 -0
  85. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/hitbtc3.py +0 -0
  86. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/hollaex.py +0 -0
  87. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/htx.py +0 -0
  88. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/huobi.py +0 -0
  89. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/huobijp.py +0 -0
  90. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/hyperliquid.py +0 -0
  91. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/idex.py +0 -0
  92. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/independentreserve.py +0 -0
  93. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/indodax.py +0 -0
  94. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/kraken.py +0 -0
  95. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/krakenfutures.py +0 -0
  96. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/kucoin.py +0 -0
  97. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/kucoinfutures.py +0 -0
  98. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/kuna.py +0 -0
  99. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/latoken.py +0 -0
  100. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/lbank.py +0 -0
  101. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/luno.py +0 -0
  102. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/lykke.py +0 -0
  103. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/mercado.py +0 -0
  104. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/mexc.py +0 -0
  105. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/ndax.py +0 -0
  106. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/novadax.py +0 -0
  107. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/oceanex.py +0 -0
  108. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/okcoin.py +0 -0
  109. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/okx.py +0 -0
  110. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/onetrading.py +0 -0
  111. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/p2b.py +0 -0
  112. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/paymium.py +0 -0
  113. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/phemex.py +0 -0
  114. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/poloniex.py +0 -0
  115. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/poloniexfutures.py +0 -0
  116. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/probit.py +0 -0
  117. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/timex.py +0 -0
  118. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/tokocrypto.py +0 -0
  119. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/tradeogre.py +0 -0
  120. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/upbit.py +0 -0
  121. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/wavesexchange.py +0 -0
  122. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/wazirx.py +0 -0
  123. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/whitebit.py +0 -0
  124. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/woo.py +0 -0
  125. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/yobit.py +0 -0
  126. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/zaif.py +0 -0
  127. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/abstract/zonda.py +0 -0
  128. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/ace.py +0 -0
  129. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/alpaca.py +0 -0
  130. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/ascendex.py +0 -0
  131. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/ace.py +0 -0
  132. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/alpaca.py +0 -0
  133. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/ascendex.py +0 -0
  134. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/__init__.py +0 -0
  135. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/throttler.py +0 -0
  136. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/__init__.py +0 -0
  137. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  138. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/cache.py +0 -0
  139. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/client.py +0 -0
  140. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/fast_client.py +0 -0
  141. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/functions.py +0 -0
  142. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/future.py +0 -0
  143. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/order_book.py +0 -0
  144. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  145. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bequant.py +0 -0
  146. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bigone.py +0 -0
  147. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/binancecoinm.py +0 -0
  148. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/binanceus.py +0 -0
  149. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/binanceusdm.py +0 -0
  150. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bingx.py +0 -0
  151. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bit2c.py +0 -0
  152. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitbank.py +0 -0
  153. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitbay.py +0 -0
  154. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitbns.py +0 -0
  155. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitcoincom.py +0 -0
  156. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitfinex.py +0 -0
  157. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitfinex2.py +0 -0
  158. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitflyer.py +0 -0
  159. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bithumb.py +0 -0
  160. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitmart.py +0 -0
  161. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitmex.py +0 -0
  162. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitopro.py +0 -0
  163. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitpanda.py +0 -0
  164. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitrue.py +0 -0
  165. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitso.py +0 -0
  166. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitstamp.py +0 -0
  167. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitteam.py +0 -0
  168. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bitvavo.py +0 -0
  169. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bl3p.py +0 -0
  170. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/blockchaincom.py +0 -0
  171. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/blofin.py +0 -0
  172. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/btcalpha.py +0 -0
  173. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/btcbox.py +0 -0
  174. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/btcmarkets.py +0 -0
  175. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/btcturk.py +0 -0
  176. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/bybit.py +0 -0
  177. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/cex.py +0 -0
  178. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinbase.py +0 -0
  179. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinbaseinternational.py +0 -0
  180. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinbasepro.py +0 -0
  181. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coincheck.py +0 -0
  182. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinex.py +0 -0
  183. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinlist.py +0 -0
  184. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinmate.py +0 -0
  185. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinmetro.py +0 -0
  186. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinone.py +0 -0
  187. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinsph.py +0 -0
  188. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/coinspot.py +0 -0
  189. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/cryptocom.py +0 -0
  190. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/currencycom.py +0 -0
  191. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/delta.py +0 -0
  192. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/deribit.py +0 -0
  193. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/digifinex.py +0 -0
  194. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/exmo.py +0 -0
  195. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/flowbtc.py +0 -0
  196. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/fmfwio.py +0 -0
  197. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/gate.py +0 -0
  198. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/gateio.py +0 -0
  199. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/gemini.py +0 -0
  200. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/hitbtc.py +0 -0
  201. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/hitbtc3.py +0 -0
  202. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/hollaex.py +0 -0
  203. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/htx.py +0 -0
  204. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/huobi.py +0 -0
  205. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/huobijp.py +0 -0
  206. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/hyperliquid.py +0 -0
  207. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/idex.py +0 -0
  208. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/independentreserve.py +0 -0
  209. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/indodax.py +0 -0
  210. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/kraken.py +0 -0
  211. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/krakenfutures.py +0 -0
  212. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/kucoin.py +0 -0
  213. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/kucoinfutures.py +0 -0
  214. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/kuna.py +0 -0
  215. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/latoken.py +0 -0
  216. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/lbank.py +0 -0
  217. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/luno.py +0 -0
  218. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/lykke.py +0 -0
  219. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/mercado.py +0 -0
  220. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/mexc.py +0 -0
  221. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/ndax.py +0 -0
  222. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/novadax.py +0 -0
  223. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/oceanex.py +0 -0
  224. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/okcoin.py +0 -0
  225. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/onetrading.py +0 -0
  226. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/p2b.py +0 -0
  227. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/paymium.py +0 -0
  228. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/phemex.py +0 -0
  229. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/poloniex.py +0 -0
  230. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/poloniexfutures.py +0 -0
  231. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/probit.py +0 -0
  232. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/timex.py +0 -0
  233. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/tokocrypto.py +0 -0
  234. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/tradeogre.py +0 -0
  235. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/upbit.py +0 -0
  236. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/wavesexchange.py +0 -0
  237. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/wazirx.py +0 -0
  238. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/whitebit.py +0 -0
  239. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/yobit.py +0 -0
  240. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/zaif.py +0 -0
  241. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/async_support/zonda.py +0 -0
  242. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/__init__.py +0 -0
  243. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/decimal_to_precision.py +0 -0
  244. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/errors.py +0 -0
  245. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/base/precise.py +0 -0
  246. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bequant.py +0 -0
  247. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bigone.py +0 -0
  248. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/binancecoinm.py +0 -0
  249. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/binanceus.py +0 -0
  250. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/binanceusdm.py +0 -0
  251. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bingx.py +0 -0
  252. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bit2c.py +0 -0
  253. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitbank.py +0 -0
  254. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitbay.py +0 -0
  255. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitbns.py +0 -0
  256. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitcoincom.py +0 -0
  257. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitfinex.py +0 -0
  258. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitfinex2.py +0 -0
  259. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitflyer.py +0 -0
  260. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bithumb.py +0 -0
  261. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitmart.py +0 -0
  262. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitmex.py +0 -0
  263. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitopro.py +0 -0
  264. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitpanda.py +0 -0
  265. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitrue.py +0 -0
  266. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitso.py +0 -0
  267. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitstamp.py +0 -0
  268. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitteam.py +0 -0
  269. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bitvavo.py +0 -0
  270. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bl3p.py +0 -0
  271. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/blockchaincom.py +0 -0
  272. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/blofin.py +0 -0
  273. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/btcalpha.py +0 -0
  274. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/btcbox.py +0 -0
  275. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/btcmarkets.py +0 -0
  276. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/btcturk.py +0 -0
  277. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/bybit.py +0 -0
  278. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/cex.py +0 -0
  279. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinbase.py +0 -0
  280. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinbaseinternational.py +0 -0
  281. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinbasepro.py +0 -0
  282. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coincheck.py +0 -0
  283. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinex.py +0 -0
  284. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinlist.py +0 -0
  285. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinmate.py +0 -0
  286. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinmetro.py +0 -0
  287. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinone.py +0 -0
  288. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinsph.py +0 -0
  289. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/coinspot.py +0 -0
  290. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/cryptocom.py +0 -0
  291. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/currencycom.py +0 -0
  292. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/delta.py +0 -0
  293. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/deribit.py +0 -0
  294. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/digifinex.py +0 -0
  295. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/exmo.py +0 -0
  296. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/flowbtc.py +0 -0
  297. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/fmfwio.py +0 -0
  298. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/gate.py +0 -0
  299. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/gateio.py +0 -0
  300. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/gemini.py +0 -0
  301. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/hitbtc.py +0 -0
  302. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/hitbtc3.py +0 -0
  303. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/hollaex.py +0 -0
  304. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/htx.py +0 -0
  305. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/huobi.py +0 -0
  306. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/huobijp.py +0 -0
  307. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/hyperliquid.py +0 -0
  308. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/idex.py +0 -0
  309. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/independentreserve.py +0 -0
  310. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/indodax.py +0 -0
  311. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/kraken.py +0 -0
  312. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/krakenfutures.py +0 -0
  313. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/kucoin.py +0 -0
  314. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/kucoinfutures.py +0 -0
  315. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/kuna.py +0 -0
  316. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/latoken.py +0 -0
  317. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/lbank.py +0 -0
  318. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/luno.py +0 -0
  319. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/lykke.py +0 -0
  320. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/mercado.py +0 -0
  321. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/mexc.py +0 -0
  322. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/ndax.py +0 -0
  323. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/novadax.py +0 -0
  324. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/oceanex.py +0 -0
  325. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/okcoin.py +0 -0
  326. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/onetrading.py +0 -0
  327. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/p2b.py +0 -0
  328. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/paymium.py +0 -0
  329. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/phemex.py +0 -0
  330. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/poloniex.py +0 -0
  331. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/poloniexfutures.py +0 -0
  332. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/alpaca.py +0 -0
  333. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/ascendex.py +0 -0
  334. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bequant.py +0 -0
  335. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/binance.py +0 -0
  336. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/binancecoinm.py +0 -0
  337. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/binanceus.py +0 -0
  338. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/binanceusdm.py +0 -0
  339. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bingx.py +0 -0
  340. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitcoincom.py +0 -0
  341. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitfinex.py +0 -0
  342. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitfinex2.py +0 -0
  343. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitget.py +0 -0
  344. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bithumb.py +0 -0
  345. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitmart.py +0 -0
  346. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitmex.py +0 -0
  347. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitopro.py +0 -0
  348. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitpanda.py +0 -0
  349. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitrue.py +0 -0
  350. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitstamp.py +0 -0
  351. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bitvavo.py +0 -0
  352. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/blockchaincom.py +0 -0
  353. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/bybit.py +0 -0
  354. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/cex.py +0 -0
  355. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coinbase.py +0 -0
  356. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coinbaseinternational.py +0 -0
  357. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coinbasepro.py +0 -0
  358. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coincheck.py +0 -0
  359. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coinex.py +0 -0
  360. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/coinone.py +0 -0
  361. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/cryptocom.py +0 -0
  362. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/currencycom.py +0 -0
  363. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/deribit.py +0 -0
  364. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/exmo.py +0 -0
  365. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/gate.py +0 -0
  366. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/gateio.py +0 -0
  367. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/gemini.py +0 -0
  368. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/hitbtc.py +0 -0
  369. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/hollaex.py +0 -0
  370. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/htx.py +0 -0
  371. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/huobi.py +0 -0
  372. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/huobijp.py +0 -0
  373. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/hyperliquid.py +0 -0
  374. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/idex.py +0 -0
  375. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/independentreserve.py +0 -0
  376. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/kucoinfutures.py +0 -0
  377. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/lbank.py +0 -0
  378. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/luno.py +0 -0
  379. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/mexc.py +0 -0
  380. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/ndax.py +0 -0
  381. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/okcoin.py +0 -0
  382. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/okx.py +0 -0
  383. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/onetrading.py +0 -0
  384. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/p2b.py +0 -0
  385. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/phemex.py +0 -0
  386. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/poloniex.py +0 -0
  387. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/poloniexfutures.py +0 -0
  388. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/probit.py +0 -0
  389. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/upbit.py +0 -0
  390. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/wazirx.py +0 -0
  391. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/whitebit.py +0 -0
  392. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/pro/woo.py +0 -0
  393. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/probit.py +0 -0
  394. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/__init__.py +0 -0
  395. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  396. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  397. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  398. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  399. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  400. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  401. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  402. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  403. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  404. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  405. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  406. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  407. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  408. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  409. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  410. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  411. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  412. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  413. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  414. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  415. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  416. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  417. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  418. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  419. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  420. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  421. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  422. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  423. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  424. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  425. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  426. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  427. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  428. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  429. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  430. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  431. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  432. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  433. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  434. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  435. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  436. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  437. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  438. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  439. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  440. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  441. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  442. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  443. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  444. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  445. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  446. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  447. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  448. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  449. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  450. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  451. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  452. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  453. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  454. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  455. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  456. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  457. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  458. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  459. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  460. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  461. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  462. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  463. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  464. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  465. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  466. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  467. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  468. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  469. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  470. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  471. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  472. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  473. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  474. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  475. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  476. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  477. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  478. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  479. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  480. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  481. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/_version.py +0 -0
  482. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  483. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  484. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  485. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  486. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  487. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  488. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  489. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  490. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/static_dependencies/toolz/utils.py +0 -0
  491. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/__init__.py +0 -0
  492. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/__init__.py +0 -0
  493. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_account.py +0 -0
  494. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_balance.py +0 -0
  495. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_borrow_interest.py +0 -0
  496. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_borrow_rate.py +0 -0
  497. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_calculate_fee.py +0 -0
  498. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_crypto.py +0 -0
  499. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_currency.py +0 -0
  500. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_datetime.py +0 -0
  501. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  502. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_deep_extend.py +0 -0
  503. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  504. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  505. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_funding_rate_history.py +0 -0
  506. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_last_price.py +0 -0
  507. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_ledger_entry.py +0 -0
  508. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_ledger_item.py +0 -0
  509. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_leverage_tier.py +0 -0
  510. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_margin_mode.py +0 -0
  511. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_margin_modification.py +0 -0
  512. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_market.py +0 -0
  513. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_number.py +0 -0
  514. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_ohlcv.py +0 -0
  515. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_open_interest.py +0 -0
  516. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_order.py +0 -0
  517. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_order_book.py +0 -0
  518. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_position.py +0 -0
  519. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_shared_methods.py +0 -0
  520. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_status.py +0 -0
  521. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_throttle.py +0 -0
  522. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_ticker.py +0 -0
  523. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_trade.py +0 -0
  524. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_trading_fee.py +0 -0
  525. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/base/test_transaction.py +0 -0
  526. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/test_async.py +0 -0
  527. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/test/test_sync.py +0 -0
  528. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/timex.py +0 -0
  529. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/tokocrypto.py +0 -0
  530. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/tradeogre.py +0 -0
  531. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/upbit.py +0 -0
  532. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/wavesexchange.py +0 -0
  533. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/wazirx.py +0 -0
  534. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/whitebit.py +0 -0
  535. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/yobit.py +0 -0
  536. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/zaif.py +0 -0
  537. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt/zonda.py +0 -0
  538. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt.egg-info/SOURCES.txt +0 -0
  539. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt.egg-info/dependency_links.txt +0 -0
  540. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt.egg-info/requires.txt +0 -0
  541. {ccxt-4.2.93 → ccxt-4.2.94}/ccxt.egg-info/top_level.txt +0 -0
  542. {ccxt-4.2.93 → ccxt-4.2.94}/setup.cfg +0 -0
  543. {ccxt-4.2.93 → ccxt-4.2.94}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.93
3
+ Version: 4.2.94
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
@@ -225,13 +225,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
225
225
 
226
226
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
227
227
 
228
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.93/dist/ccxt.browser.js
229
- * unpkg: https://unpkg.com/ccxt@4.2.93/dist/ccxt.browser.js
228
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.94/dist/ccxt.browser.js
229
+ * unpkg: https://unpkg.com/ccxt@4.2.94/dist/ccxt.browser.js
230
230
 
231
231
  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.
232
232
 
233
233
  ```HTML
234
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.93/dist/ccxt.browser.js"></script>
234
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.94/dist/ccxt.browser.js"></script>
235
235
  ```
236
236
 
237
237
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.93'
25
+ __version__ = '4.2.94'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -608,6 +608,7 @@ class ImplicitAPI:
608
608
  private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
609
609
  private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
610
610
  private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
611
+ private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
611
612
  private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
612
613
  private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
613
614
  private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
@@ -608,6 +608,7 @@ class ImplicitAPI:
608
608
  private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
609
609
  private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
610
610
  private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
611
+ private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
611
612
  private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
612
613
  private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
613
614
  private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
@@ -660,6 +660,7 @@ class ImplicitAPI:
660
660
  private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
661
661
  private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
662
662
  private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
663
+ private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
663
664
  private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
664
665
  private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
665
666
  private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
@@ -608,6 +608,7 @@ class ImplicitAPI:
608
608
  private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
609
609
  private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
610
610
  private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
611
+ private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
611
612
  private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
612
613
  private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
613
614
  private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.93'
7
+ __version__ = '4.2.94'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.93'
5
+ __version__ = '4.2.94'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1281,6 +1281,9 @@ class Exchange(BaseExchange):
1281
1281
  async def fetch_option(self, symbol: str, params={}):
1282
1282
  raise NotSupported(self.id + ' fetchOption() is not supported yet')
1283
1283
 
1284
+ async def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}):
1285
+ raise NotSupported(self.id + ' fetchConvertQuote() is not supported yet')
1286
+
1284
1287
  async def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1285
1288
  """
1286
1289
  fetch history of deposits and withdrawals
@@ -1421,6 +1424,9 @@ class Exchange(BaseExchange):
1421
1424
  fees = await self.fetch_trading_fees(params)
1422
1425
  return self.safe_dict(fees, symbol)
1423
1426
 
1427
+ async def fetch_convert_currencies(self, params={}):
1428
+ raise NotSupported(self.id + ' fetchConvertCurrencies() is not supported yet')
1429
+
1424
1430
  async def fetch_funding_rate(self, symbol: str, params={}):
1425
1431
  if self.has['fetchFundingRates']:
1426
1432
  await self.load_markets()
@@ -94,6 +94,8 @@ class binance(Exchange, ImplicitAPI):
94
94
  'fetchCanceledOrders': 'emulated',
95
95
  'fetchClosedOrder': False,
96
96
  'fetchClosedOrders': 'emulated',
97
+ 'fetchConvertCurrencies': True,
98
+ 'fetchConvertQuote': False,
97
99
  'fetchCrossBorrowRate': True,
98
100
  'fetchCrossBorrowRates': False,
99
101
  'fetchCurrencies': True,
@@ -993,6 +995,7 @@ class binance(Exchange, ImplicitAPI):
993
995
  },
994
996
  'post': {
995
997
  'order/oco': 0.2,
998
+ 'orderList/oco': 0.2,
996
999
  'sor/order': 0.2,
997
1000
  'sor/order/test': 0.2,
998
1001
  'order': 0.2,
@@ -4109,10 +4112,13 @@ class binance(Exchange, ImplicitAPI):
4109
4112
  'interval': self.safe_string(self.timeframes, timeframe, timeframe),
4110
4113
  'limit': limit,
4111
4114
  }
4115
+ marketId = market['id']
4112
4116
  if price == 'index':
4113
- request['pair'] = market['id'] # Index price takes self argument instead of symbol
4117
+ parts = marketId.split('_')
4118
+ pair = self.safe_string(parts, 0)
4119
+ request['pair'] = pair # Index price takes self argument instead of symbol
4114
4120
  else:
4115
- request['symbol'] = market['id']
4121
+ request['symbol'] = marketId
4116
4122
  # duration = self.parse_timeframe(timeframe)
4117
4123
  if since is not None:
4118
4124
  request['startTime'] = since
@@ -11578,3 +11584,55 @@ class binance(Exchange, ImplicitAPI):
11578
11584
  #
11579
11585
  modifications = self.parse_margin_modifications(response)
11580
11586
  return self.filter_by_symbol_since_limit(modifications, symbol, since, limit)
11587
+
11588
+ async def fetch_convert_currencies(self, params={}) -> Currencies:
11589
+ """
11590
+ fetches all available currencies that can be converted
11591
+ :see: https://binance-docs.github.io/apidocs/spot/en/#query-order-quantity-precision-per-asset-user_data
11592
+ :param dict [params]: extra parameters specific to the exchange API endpoint
11593
+ :returns dict: an associative dictionary of currencies
11594
+ """
11595
+ await self.load_markets()
11596
+ response = await self.sapiGetConvertAssetInfo(params)
11597
+ #
11598
+ # [
11599
+ # {
11600
+ # "asset": "BTC",
11601
+ # "fraction": 8
11602
+ # },
11603
+ # ]
11604
+ #
11605
+ result = {}
11606
+ for i in range(0, len(response)):
11607
+ entry = response[i]
11608
+ id = self.safe_string(entry, 'asset')
11609
+ code = self.safe_currency_code(id)
11610
+ result[code] = {
11611
+ 'info': entry,
11612
+ 'id': id,
11613
+ 'code': code,
11614
+ 'networks': None,
11615
+ 'type': None,
11616
+ 'name': None,
11617
+ 'active': None,
11618
+ 'deposit': None,
11619
+ 'withdraw': None,
11620
+ 'fee': None,
11621
+ 'precision': self.safe_integer(entry, 'fraction'),
11622
+ 'limits': {
11623
+ 'amount': {
11624
+ 'min': None,
11625
+ 'max': None,
11626
+ },
11627
+ 'withdraw': {
11628
+ 'min': None,
11629
+ 'max': None,
11630
+ },
11631
+ 'deposit': {
11632
+ 'min': None,
11633
+ 'max': None,
11634
+ },
11635
+ },
11636
+ 'created': None,
11637
+ }
11638
+ return result
@@ -8,7 +8,7 @@ from ccxt.abstract.bitget import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import json
11
- from ccxt.base.types import Balances, Currencies, Currency, FundingHistory, Int, Liquidation, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
11
+ from ccxt.base.types import Balances, Conversion, Currencies, Currency, FundingHistory, Int, Liquidation, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import PermissionDenied
@@ -85,6 +85,8 @@ class bitget(Exchange, ImplicitAPI):
85
85
  'fetchCanceledAndClosedOrders': True,
86
86
  'fetchCanceledOrders': True,
87
87
  'fetchClosedOrders': True,
88
+ 'fetchConvertCurrencies': True,
89
+ 'fetchConvertQuote': True,
88
90
  'fetchCrossBorrowRate': True,
89
91
  'fetchCrossBorrowRates': False,
90
92
  'fetchCurrencies': True,
@@ -7853,6 +7855,138 @@ class bitget(Exchange, ImplicitAPI):
7853
7855
  'marginMode': marginType,
7854
7856
  }
7855
7857
 
7858
+ async def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}) -> Conversion:
7859
+ """
7860
+ fetch a quote for converting from one currency to another
7861
+ :see: https://www.bitget.com/api-doc/common/convert/Get-Quoted-Price
7862
+ :param str fromCode: the currency that you want to sell and convert from
7863
+ :param str toCode: the currency that you want to buy and convert into
7864
+ :param float [amount]: how much you want to trade in units of the from currency
7865
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7866
+ :returns dict: a `conversion structure <https://docs.ccxt.com/#/?id=conversion-structure>`
7867
+ """
7868
+ await self.load_markets()
7869
+ request = {
7870
+ 'fromCoin': fromCode.upper(),
7871
+ 'toCoin': toCode.upper(),
7872
+ 'fromCoinSize': self.number_to_string(amount),
7873
+ }
7874
+ response = await self.privateConvertGetV2ConvertQuotedPrice(self.extend(request, params))
7875
+ #
7876
+ # {
7877
+ # "code": "00000",
7878
+ # "msg": "success",
7879
+ # "requestTime": 1712121940158,
7880
+ # "data": {
7881
+ # "fromCoin": "USDT",
7882
+ # "fromCoinSize": "5",
7883
+ # "cnvtPrice": "0.9993007892377704",
7884
+ # "toCoin": "USDC",
7885
+ # "toCoinSize": "4.99650394",
7886
+ # "traceId": "1159288930228187140",
7887
+ # "fee": "0"
7888
+ # }
7889
+ # }
7890
+ #
7891
+ data = self.safe_dict(response, 'data', {})
7892
+ fromCurrencyId = self.safe_string(data, 'fromCoin', fromCode)
7893
+ fromCurrency = self.currency(fromCurrencyId)
7894
+ toCurrencyId = self.safe_string(data, 'toCoin', toCode)
7895
+ toCurrency = self.currency(toCurrencyId)
7896
+ return self.parse_conversion(data, fromCurrency, toCurrency)
7897
+
7898
+ def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
7899
+ #
7900
+ # fetchConvertQuote
7901
+ #
7902
+ # {
7903
+ # "fromCoin": "USDT",
7904
+ # "fromCoinSize": "5",
7905
+ # "cnvtPrice": "0.9993007892377704",
7906
+ # "toCoin": "USDC",
7907
+ # "toCoinSize": "4.99650394",
7908
+ # "traceId": "1159288930228187140",
7909
+ # "fee": "0"
7910
+ # }
7911
+ #
7912
+ timestamp = self.safe_integer(conversion, 'ts')
7913
+ fromCoin = self.safe_string(conversion, 'fromCoin')
7914
+ fromCode = self.safe_currency_code(fromCoin, fromCurrency)
7915
+ to = self.safe_string(conversion, 'toCoin')
7916
+ toCode = self.safe_currency_code(to, toCurrency)
7917
+ return {
7918
+ 'info': conversion,
7919
+ 'timestamp': timestamp,
7920
+ 'datetime': self.iso8601(timestamp),
7921
+ 'id': self.safe_string(conversion, 'traceId'),
7922
+ 'fromCurrency': fromCode,
7923
+ 'fromAmount': self.safe_number(conversion, 'fromCoinSize'),
7924
+ 'toCurrency': toCode,
7925
+ 'toAmount': self.safe_number(conversion, 'toCoinSize'),
7926
+ 'price': self.safe_number(conversion, 'cnvtPrice'),
7927
+ 'fee': self.safe_number(conversion, 'fee'),
7928
+ }
7929
+
7930
+ async def fetch_convert_currencies(self, params={}) -> Currencies:
7931
+ """
7932
+ fetches all available currencies that can be converted
7933
+ :see: https://www.bitget.com/api-doc/common/convert/Get-Convert-Currencies
7934
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7935
+ :returns dict: an associative dictionary of currencies
7936
+ """
7937
+ await self.load_markets()
7938
+ response = await self.privateConvertGetV2ConvertCurrencies(params)
7939
+ #
7940
+ # {
7941
+ # "code": "00000",
7942
+ # "msg": "success",
7943
+ # "requestTime": 1712121755897,
7944
+ # "data": [
7945
+ # {
7946
+ # "coin": "BTC",
7947
+ # "available": "0.00009850",
7948
+ # "maxAmount": "0.756266",
7949
+ # "minAmount": "0.00001"
7950
+ # },
7951
+ # ]
7952
+ # }
7953
+ #
7954
+ result = {}
7955
+ data = self.safe_list(response, 'data', [])
7956
+ for i in range(0, len(data)):
7957
+ entry = data[i]
7958
+ id = self.safe_string(entry, 'coin')
7959
+ code = self.safe_currency_code(id)
7960
+ result[code] = {
7961
+ 'info': entry,
7962
+ 'id': id,
7963
+ 'code': code,
7964
+ 'networks': None,
7965
+ 'type': None,
7966
+ 'name': None,
7967
+ 'active': None,
7968
+ 'deposit': None,
7969
+ 'withdraw': self.safe_number(entry, 'available'),
7970
+ 'fee': None,
7971
+ 'precision': None,
7972
+ 'limits': {
7973
+ 'amount': {
7974
+ 'min': self.safe_number(entry, 'minAmount'),
7975
+ 'max': self.safe_number(entry, 'maxAmount'),
7976
+ },
7977
+ 'withdraw': {
7978
+ 'min': None,
7979
+ 'max': None,
7980
+ },
7981
+ 'deposit': {
7982
+ 'min': None,
7983
+ 'max': None,
7984
+ },
7985
+ },
7986
+ 'created': None,
7987
+ }
7988
+ return result
7989
+
7856
7990
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
7857
7991
  if not response:
7858
7992
  return None # fallback to default error handler
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.okx import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Account, Balances, Currencies, Currency, Greeks, Int, Leverage, MarginModification, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
10
+ from ccxt.base.types import Account, Balances, Conversion, Currencies, Currency, Greeks, Int, Leverage, MarginModification, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import PermissionDenied
@@ -83,6 +83,8 @@ class okx(Exchange, ImplicitAPI):
83
83
  'fetchCanceledOrders': True,
84
84
  'fetchClosedOrder': None,
85
85
  'fetchClosedOrders': True,
86
+ 'fetchConvertCurrencies': True,
87
+ 'fetchConvertQuote': True,
86
88
  'fetchCrossBorrowRate': True,
87
89
  'fetchCrossBorrowRates': True,
88
90
  'fetchCurrencies': True,
@@ -7098,6 +7100,152 @@ class okx(Exchange, ImplicitAPI):
7098
7100
  'quoteVolume': None,
7099
7101
  }
7100
7102
 
7103
+ async def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}) -> Conversion:
7104
+ """
7105
+ fetch a quote for converting from one currency to another
7106
+ :see: https://www.okx.com/docs-v5/en/#funding-account-rest-api-estimate-quote
7107
+ :param str fromCode: the currency that you want to sell and convert from
7108
+ :param str toCode: the currency that you want to buy and convert into
7109
+ :param float [amount]: how much you want to trade in units of the from currency
7110
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7111
+ :returns dict: a `conversion structure <https://docs.ccxt.com/#/?id=conversion-structure>`
7112
+ """
7113
+ await self.load_markets()
7114
+ request = {
7115
+ 'baseCcy': fromCode.upper(),
7116
+ 'quoteCcy': toCode.upper(),
7117
+ 'rfqSzCcy': fromCode.upper(),
7118
+ 'rfqSz': self.number_to_string(amount),
7119
+ 'side': 'sell',
7120
+ }
7121
+ response = await self.privatePostAssetConvertEstimateQuote(self.extend(request, params))
7122
+ #
7123
+ # {
7124
+ # "code": "0",
7125
+ # "data": [
7126
+ # {
7127
+ # "baseCcy": "ETH",
7128
+ # "baseSz": "0.01023052",
7129
+ # "clQReqId": "",
7130
+ # "cnvtPx": "2932.40104429",
7131
+ # "origRfqSz": "30",
7132
+ # "quoteCcy": "USDT",
7133
+ # "quoteId": "quoterETH-USDT16461885104612381",
7134
+ # "quoteSz": "30",
7135
+ # "quoteTime": "1646188510461",
7136
+ # "rfqSz": "30",
7137
+ # "rfqSzCcy": "USDT",
7138
+ # "side": "buy",
7139
+ # "ttlMs": "10000"
7140
+ # }
7141
+ # ],
7142
+ # "msg": ""
7143
+ # }
7144
+ #
7145
+ data = self.safe_list(response, 'data', [])
7146
+ result = self.safe_dict(data, 0, {})
7147
+ fromCurrencyId = self.safe_string(result, 'baseCcy', fromCode)
7148
+ fromCurrency = self.currency(fromCurrencyId)
7149
+ toCurrencyId = self.safe_string(result, 'quoteCcy', toCode)
7150
+ toCurrency = self.currency(toCurrencyId)
7151
+ return self.parse_conversion(result, fromCurrency, toCurrency)
7152
+
7153
+ def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
7154
+ #
7155
+ # fetchConvertQuote
7156
+ #
7157
+ # {
7158
+ # "baseCcy": "ETH",
7159
+ # "baseSz": "0.01023052",
7160
+ # "clQReqId": "",
7161
+ # "cnvtPx": "2932.40104429",
7162
+ # "origRfqSz": "30",
7163
+ # "quoteCcy": "USDT",
7164
+ # "quoteId": "quoterETH-USDT16461885104612381",
7165
+ # "quoteSz": "30",
7166
+ # "quoteTime": "1646188510461",
7167
+ # "rfqSz": "30",
7168
+ # "rfqSzCcy": "USDT",
7169
+ # "side": "buy",
7170
+ # "ttlMs": "10000"
7171
+ # }
7172
+ #
7173
+ timestamp = self.safe_integer(conversion, 'quoteTime')
7174
+ fromCoin = self.safe_string(conversion, 'baseCcy')
7175
+ fromCode = self.safe_currency_code(fromCoin, fromCurrency)
7176
+ to = self.safe_string(conversion, 'quoteCcy')
7177
+ toCode = self.safe_currency_code(to, toCurrency)
7178
+ return {
7179
+ 'info': conversion,
7180
+ 'timestamp': timestamp,
7181
+ 'datetime': self.iso8601(timestamp),
7182
+ 'id': self.safe_string(conversion, 'clQReqId'),
7183
+ 'fromCurrency': fromCode,
7184
+ 'fromAmount': self.safe_number(conversion, 'baseSz'),
7185
+ 'toCurrency': toCode,
7186
+ 'toAmount': self.safe_number(conversion, 'quoteSz'),
7187
+ 'price': self.safe_number(conversion, 'cnvtPx'),
7188
+ 'fee': None,
7189
+ }
7190
+
7191
+ async def fetch_convert_currencies(self, params={}) -> Currencies:
7192
+ """
7193
+ fetches all available currencies that can be converted
7194
+ :see: https://www.okx.com/docs-v5/en/#funding-account-rest-api-get-convert-currencies
7195
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7196
+ :returns dict: an associative dictionary of currencies
7197
+ """
7198
+ await self.load_markets()
7199
+ response = await self.privateGetAssetConvertCurrencies(params)
7200
+ #
7201
+ # {
7202
+ # "code": "0",
7203
+ # "data": [
7204
+ # {
7205
+ # "ccy": "BTC",
7206
+ # "max": "",
7207
+ # "min": ""
7208
+ # },
7209
+ # ],
7210
+ # "msg": ""
7211
+ # }
7212
+ #
7213
+ result = {}
7214
+ data = self.safe_list(response, 'data', [])
7215
+ for i in range(0, len(data)):
7216
+ entry = data[i]
7217
+ id = self.safe_string(entry, 'ccy')
7218
+ code = self.safe_currency_code(id)
7219
+ result[code] = {
7220
+ 'info': entry,
7221
+ 'id': id,
7222
+ 'code': code,
7223
+ 'networks': None,
7224
+ 'type': None,
7225
+ 'name': None,
7226
+ 'active': None,
7227
+ 'deposit': None,
7228
+ 'withdraw': None,
7229
+ 'fee': None,
7230
+ 'precision': None,
7231
+ 'limits': {
7232
+ 'amount': {
7233
+ 'min': self.safe_number(entry, 'min'),
7234
+ 'max': self.safe_number(entry, 'max'),
7235
+ },
7236
+ 'withdraw': {
7237
+ 'min': None,
7238
+ 'max': None,
7239
+ },
7240
+ 'deposit': {
7241
+ 'min': None,
7242
+ 'max': None,
7243
+ },
7244
+ },
7245
+ 'created': None,
7246
+ }
7247
+ return result
7248
+
7101
7249
  def handle_errors(self, httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody):
7102
7250
  if not response:
7103
7251
  return None # fallback to default error handler