ccxt 4.2.73__tar.gz → 4.2.75__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 (542) hide show
  1. {ccxt-4.2.73/ccxt.egg-info → ccxt-4.2.75}/PKG-INFO +11 -10
  2. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/__init__.py +3 -1
  3. ccxt-4.2.75/ccxt/abstract/tradeogre.py +16 -0
  4. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/ascendex.py +5 -4
  5. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/__init__.py +3 -1
  6. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/ascendex.py +5 -4
  7. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/exchange.py +1 -1
  8. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitget.py +53 -43
  9. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitmart.py +2 -0
  10. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bybit.py +84 -29
  11. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinbase.py +4 -4
  12. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinbaseinternational.py +1 -1
  13. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinbasepro.py +2 -2
  14. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinex.py +4 -3
  15. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinlist.py +2 -2
  16. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/cryptocom.py +2 -2
  17. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/currencycom.py +2 -2
  18. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/deribit.py +2 -2
  19. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/gate.py +1 -0
  20. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/htx.py +16 -9
  21. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/huobijp.py +2 -2
  22. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/hyperliquid.py +2 -1
  23. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/kraken.py +3 -3
  24. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/kucoin.py +3 -3
  25. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/luno.py +2 -2
  26. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/mexc.py +2 -2
  27. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/ndax.py +2 -2
  28. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/novadax.py +2 -2
  29. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/okx.py +2 -2
  30. ccxt-4.2.75/ccxt/async_support/tradeogre.py +598 -0
  31. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/woo.py +2 -2
  32. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/exchange.py +3 -3
  33. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/types.py +8 -1
  34. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitget.py +53 -43
  35. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitmart.py +2 -0
  36. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bybit.py +84 -29
  37. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinbase.py +4 -4
  38. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinbaseinternational.py +1 -1
  39. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinbasepro.py +2 -2
  40. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinex.py +4 -3
  41. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinlist.py +2 -2
  42. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/cryptocom.py +2 -2
  43. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/currencycom.py +2 -2
  44. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/deribit.py +2 -2
  45. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/gate.py +1 -0
  46. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/htx.py +16 -9
  47. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/huobijp.py +2 -2
  48. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/hyperliquid.py +2 -1
  49. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/kraken.py +3 -3
  50. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/kucoin.py +3 -3
  51. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/luno.py +2 -2
  52. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/mexc.py +2 -2
  53. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/ndax.py +2 -2
  54. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/novadax.py +2 -2
  55. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/okx.py +2 -2
  56. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/__init__.py +1 -1
  57. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/krakenfutures.py +8 -7
  58. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_market.py +1 -1
  59. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/test_async.py +16 -12
  60. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/test_sync.py +16 -12
  61. ccxt-4.2.75/ccxt/tradeogre.py +598 -0
  62. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/woo.py +2 -2
  63. {ccxt-4.2.73 → ccxt-4.2.75/ccxt.egg-info}/PKG-INFO +11 -10
  64. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt.egg-info/SOURCES.txt +3 -0
  65. {ccxt-4.2.73 → ccxt-4.2.75}/package.json +4 -1
  66. {ccxt-4.2.73 → ccxt-4.2.75}/LICENSE.txt +0 -0
  67. {ccxt-4.2.73 → ccxt-4.2.75}/MANIFEST.in +0 -0
  68. {ccxt-4.2.73 → ccxt-4.2.75}/README.rst +0 -0
  69. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/__init__.py +0 -0
  70. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/ace.py +0 -0
  71. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/alpaca.py +0 -0
  72. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/ascendex.py +0 -0
  73. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bequant.py +0 -0
  74. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bigone.py +0 -0
  75. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/binance.py +0 -0
  76. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/binancecoinm.py +0 -0
  77. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/binanceus.py +0 -0
  78. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/binanceusdm.py +0 -0
  79. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bingx.py +0 -0
  80. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bit2c.py +0 -0
  81. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitbank.py +0 -0
  82. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitbay.py +0 -0
  83. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitbns.py +0 -0
  84. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitcoincom.py +0 -0
  85. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitfinex.py +0 -0
  86. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitfinex2.py +0 -0
  87. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitflyer.py +0 -0
  88. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitget.py +0 -0
  89. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bithumb.py +0 -0
  90. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitmart.py +0 -0
  91. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitmex.py +0 -0
  92. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitopro.py +0 -0
  93. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitpanda.py +0 -0
  94. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitrue.py +0 -0
  95. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitso.py +0 -0
  96. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitstamp.py +0 -0
  97. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitteam.py +0 -0
  98. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bitvavo.py +0 -0
  99. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bl3p.py +0 -0
  100. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/blockchaincom.py +0 -0
  101. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/blofin.py +0 -0
  102. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/btcalpha.py +0 -0
  103. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/btcbox.py +0 -0
  104. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/btcmarkets.py +0 -0
  105. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/btcturk.py +0 -0
  106. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/bybit.py +0 -0
  107. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/cex.py +0 -0
  108. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinbase.py +0 -0
  109. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinbaseinternational.py +0 -0
  110. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinbasepro.py +0 -0
  111. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coincheck.py +0 -0
  112. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinex.py +0 -0
  113. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinlist.py +0 -0
  114. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinmate.py +0 -0
  115. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinmetro.py +0 -0
  116. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinone.py +0 -0
  117. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinsph.py +0 -0
  118. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/coinspot.py +0 -0
  119. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/cryptocom.py +0 -0
  120. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/currencycom.py +0 -0
  121. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/delta.py +0 -0
  122. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/deribit.py +0 -0
  123. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/digifinex.py +0 -0
  124. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/exmo.py +0 -0
  125. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/fmfwio.py +0 -0
  126. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/gate.py +0 -0
  127. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/gateio.py +0 -0
  128. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/gemini.py +0 -0
  129. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/hitbtc.py +0 -0
  130. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/hitbtc3.py +0 -0
  131. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/hollaex.py +0 -0
  132. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/htx.py +0 -0
  133. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/huobi.py +0 -0
  134. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/huobijp.py +0 -0
  135. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/hyperliquid.py +0 -0
  136. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/idex.py +0 -0
  137. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/independentreserve.py +0 -0
  138. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/indodax.py +0 -0
  139. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/kraken.py +0 -0
  140. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/krakenfutures.py +0 -0
  141. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/kucoin.py +0 -0
  142. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/kucoinfutures.py +0 -0
  143. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/kuna.py +0 -0
  144. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/latoken.py +0 -0
  145. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/lbank.py +0 -0
  146. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/luno.py +0 -0
  147. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/lykke.py +0 -0
  148. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/mercado.py +0 -0
  149. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/mexc.py +0 -0
  150. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/ndax.py +0 -0
  151. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/novadax.py +0 -0
  152. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/oceanex.py +0 -0
  153. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/okcoin.py +0 -0
  154. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/okx.py +0 -0
  155. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/onetrading.py +0 -0
  156. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/p2b.py +0 -0
  157. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/paymium.py +0 -0
  158. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/phemex.py +0 -0
  159. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/poloniex.py +0 -0
  160. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/poloniexfutures.py +0 -0
  161. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/probit.py +0 -0
  162. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/timex.py +0 -0
  163. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/tokocrypto.py +0 -0
  164. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/upbit.py +0 -0
  165. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/wavesexchange.py +0 -0
  166. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/wazirx.py +0 -0
  167. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/whitebit.py +0 -0
  168. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/woo.py +0 -0
  169. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/yobit.py +0 -0
  170. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/zaif.py +0 -0
  171. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/abstract/zonda.py +0 -0
  172. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/ace.py +0 -0
  173. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/alpaca.py +0 -0
  174. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/ace.py +0 -0
  175. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/alpaca.py +0 -0
  176. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/__init__.py +0 -0
  177. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/throttler.py +0 -0
  178. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/__init__.py +0 -0
  179. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  180. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/cache.py +0 -0
  181. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/client.py +0 -0
  182. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/fast_client.py +0 -0
  183. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/functions.py +0 -0
  184. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/future.py +0 -0
  185. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/order_book.py +0 -0
  186. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  187. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bequant.py +0 -0
  188. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bigone.py +0 -0
  189. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/binance.py +0 -0
  190. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/binancecoinm.py +0 -0
  191. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/binanceus.py +0 -0
  192. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/binanceusdm.py +0 -0
  193. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bingx.py +0 -0
  194. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bit2c.py +0 -0
  195. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitbank.py +0 -0
  196. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitbay.py +0 -0
  197. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitbns.py +0 -0
  198. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitcoincom.py +0 -0
  199. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitfinex.py +0 -0
  200. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitfinex2.py +0 -0
  201. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitflyer.py +0 -0
  202. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bithumb.py +0 -0
  203. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitmex.py +0 -0
  204. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitopro.py +0 -0
  205. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitpanda.py +0 -0
  206. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitrue.py +0 -0
  207. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitso.py +0 -0
  208. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitstamp.py +0 -0
  209. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitteam.py +0 -0
  210. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bitvavo.py +0 -0
  211. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/bl3p.py +0 -0
  212. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/blockchaincom.py +0 -0
  213. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/blofin.py +0 -0
  214. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/btcalpha.py +0 -0
  215. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/btcbox.py +0 -0
  216. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/btcmarkets.py +0 -0
  217. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/btcturk.py +0 -0
  218. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/cex.py +0 -0
  219. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coincheck.py +0 -0
  220. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinmate.py +0 -0
  221. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinmetro.py +0 -0
  222. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinone.py +0 -0
  223. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinsph.py +0 -0
  224. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/coinspot.py +0 -0
  225. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/delta.py +0 -0
  226. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/digifinex.py +0 -0
  227. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/exmo.py +0 -0
  228. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/flowbtc.py +0 -0
  229. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/fmfwio.py +0 -0
  230. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/gateio.py +0 -0
  231. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/gemini.py +0 -0
  232. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/hitbtc.py +0 -0
  233. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/hitbtc3.py +0 -0
  234. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/hollaex.py +0 -0
  235. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/huobi.py +0 -0
  236. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/idex.py +0 -0
  237. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/independentreserve.py +0 -0
  238. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/indodax.py +0 -0
  239. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/krakenfutures.py +0 -0
  240. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/kucoinfutures.py +0 -0
  241. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/kuna.py +0 -0
  242. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/latoken.py +0 -0
  243. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/lbank.py +0 -0
  244. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/lykke.py +0 -0
  245. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/mercado.py +0 -0
  246. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/oceanex.py +0 -0
  247. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/okcoin.py +0 -0
  248. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/onetrading.py +0 -0
  249. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/p2b.py +0 -0
  250. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/paymium.py +0 -0
  251. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/phemex.py +0 -0
  252. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/poloniex.py +0 -0
  253. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/poloniexfutures.py +0 -0
  254. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/probit.py +0 -0
  255. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/timex.py +0 -0
  256. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/tokocrypto.py +0 -0
  257. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/upbit.py +0 -0
  258. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/wavesexchange.py +0 -0
  259. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/wazirx.py +0 -0
  260. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/whitebit.py +0 -0
  261. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/yobit.py +0 -0
  262. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/zaif.py +0 -0
  263. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/async_support/zonda.py +0 -0
  264. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/__init__.py +0 -0
  265. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/decimal_to_precision.py +0 -0
  266. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/errors.py +0 -0
  267. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/base/precise.py +0 -0
  268. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bequant.py +0 -0
  269. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bigone.py +0 -0
  270. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/binance.py +0 -0
  271. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/binancecoinm.py +0 -0
  272. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/binanceus.py +0 -0
  273. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/binanceusdm.py +0 -0
  274. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bingx.py +0 -0
  275. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bit2c.py +0 -0
  276. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitbank.py +0 -0
  277. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitbay.py +0 -0
  278. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitbns.py +0 -0
  279. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitcoincom.py +0 -0
  280. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitfinex.py +0 -0
  281. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitfinex2.py +0 -0
  282. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitflyer.py +0 -0
  283. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bithumb.py +0 -0
  284. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitmex.py +0 -0
  285. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitopro.py +0 -0
  286. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitpanda.py +0 -0
  287. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitrue.py +0 -0
  288. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitso.py +0 -0
  289. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitstamp.py +0 -0
  290. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitteam.py +0 -0
  291. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bitvavo.py +0 -0
  292. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/bl3p.py +0 -0
  293. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/blockchaincom.py +0 -0
  294. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/blofin.py +0 -0
  295. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/btcalpha.py +0 -0
  296. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/btcbox.py +0 -0
  297. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/btcmarkets.py +0 -0
  298. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/btcturk.py +0 -0
  299. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/cex.py +0 -0
  300. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coincheck.py +0 -0
  301. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinmate.py +0 -0
  302. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinmetro.py +0 -0
  303. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinone.py +0 -0
  304. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinsph.py +0 -0
  305. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/coinspot.py +0 -0
  306. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/delta.py +0 -0
  307. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/digifinex.py +0 -0
  308. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/exmo.py +0 -0
  309. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/flowbtc.py +0 -0
  310. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/fmfwio.py +0 -0
  311. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/gateio.py +0 -0
  312. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/gemini.py +0 -0
  313. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/hitbtc.py +0 -0
  314. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/hitbtc3.py +0 -0
  315. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/hollaex.py +0 -0
  316. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/huobi.py +0 -0
  317. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/idex.py +0 -0
  318. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/independentreserve.py +0 -0
  319. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/indodax.py +0 -0
  320. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/krakenfutures.py +0 -0
  321. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/kucoinfutures.py +0 -0
  322. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/kuna.py +0 -0
  323. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/latoken.py +0 -0
  324. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/lbank.py +0 -0
  325. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/lykke.py +0 -0
  326. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/mercado.py +0 -0
  327. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/oceanex.py +0 -0
  328. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/okcoin.py +0 -0
  329. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/onetrading.py +0 -0
  330. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/p2b.py +0 -0
  331. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/paymium.py +0 -0
  332. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/phemex.py +0 -0
  333. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/poloniex.py +0 -0
  334. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/poloniexfutures.py +0 -0
  335. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/alpaca.py +0 -0
  336. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/ascendex.py +0 -0
  337. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bequant.py +0 -0
  338. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/binance.py +0 -0
  339. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/binancecoinm.py +0 -0
  340. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/binanceus.py +0 -0
  341. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/binanceusdm.py +0 -0
  342. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bingx.py +0 -0
  343. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitcoincom.py +0 -0
  344. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitfinex.py +0 -0
  345. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitfinex2.py +0 -0
  346. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitget.py +0 -0
  347. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitmart.py +0 -0
  348. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitmex.py +0 -0
  349. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitopro.py +0 -0
  350. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitpanda.py +0 -0
  351. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitrue.py +0 -0
  352. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitstamp.py +0 -0
  353. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bitvavo.py +0 -0
  354. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/blockchaincom.py +0 -0
  355. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/bybit.py +0 -0
  356. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/cex.py +0 -0
  357. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coinbase.py +0 -0
  358. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coinbaseinternational.py +0 -0
  359. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coinbasepro.py +0 -0
  360. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coincheck.py +0 -0
  361. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coinex.py +0 -0
  362. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/coinone.py +0 -0
  363. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/cryptocom.py +0 -0
  364. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/currencycom.py +0 -0
  365. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/deribit.py +0 -0
  366. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/exmo.py +0 -0
  367. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/gate.py +0 -0
  368. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/gateio.py +0 -0
  369. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/gemini.py +0 -0
  370. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/hitbtc.py +0 -0
  371. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/hollaex.py +0 -0
  372. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/htx.py +0 -0
  373. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/huobi.py +0 -0
  374. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/huobijp.py +0 -0
  375. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/hyperliquid.py +0 -0
  376. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/idex.py +0 -0
  377. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/independentreserve.py +0 -0
  378. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/kraken.py +0 -0
  379. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/kucoin.py +0 -0
  380. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/kucoinfutures.py +0 -0
  381. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/lbank.py +0 -0
  382. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/luno.py +0 -0
  383. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/mexc.py +0 -0
  384. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/ndax.py +0 -0
  385. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/okcoin.py +0 -0
  386. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/okx.py +0 -0
  387. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/onetrading.py +0 -0
  388. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/p2b.py +0 -0
  389. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/phemex.py +0 -0
  390. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/poloniex.py +0 -0
  391. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/poloniexfutures.py +0 -0
  392. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/probit.py +0 -0
  393. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/upbit.py +0 -0
  394. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/wazirx.py +0 -0
  395. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/whitebit.py +0 -0
  396. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/pro/woo.py +0 -0
  397. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/probit.py +0 -0
  398. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/__init__.py +0 -0
  399. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  400. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  401. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  402. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  403. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  404. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  405. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  406. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  407. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  408. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  409. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  410. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  411. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  412. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  413. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  414. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  415. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  416. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  417. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  418. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  419. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  420. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  421. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  422. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  423. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  424. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  425. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  426. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  427. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  428. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  429. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  430. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  431. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  432. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  433. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  434. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  435. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  436. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  437. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  438. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  439. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  440. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  441. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  442. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  443. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  444. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  445. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  446. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  447. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  448. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  449. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  450. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  451. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  452. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  453. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  454. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  455. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  456. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  457. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  458. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  459. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  460. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  461. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  462. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  463. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  464. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  465. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  466. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  467. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  468. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  469. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  470. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  471. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  472. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  473. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  474. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  475. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  476. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  477. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  478. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  479. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  480. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  481. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  482. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  483. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  484. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  485. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/_version.py +0 -0
  486. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  487. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  488. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  489. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  490. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  491. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  492. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  493. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  494. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/static_dependencies/toolz/utils.py +0 -0
  495. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/__init__.py +0 -0
  496. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/__init__.py +0 -0
  497. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_account.py +0 -0
  498. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_balance.py +0 -0
  499. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_borrow_interest.py +0 -0
  500. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_borrow_rate.py +0 -0
  501. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_calculate_fee.py +0 -0
  502. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_crypto.py +0 -0
  503. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_currency.py +0 -0
  504. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_datetime.py +0 -0
  505. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  506. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_deep_extend.py +0 -0
  507. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  508. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  509. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_funding_rate_history.py +0 -0
  510. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_last_price.py +0 -0
  511. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_ledger_entry.py +0 -0
  512. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_ledger_item.py +0 -0
  513. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_leverage_tier.py +0 -0
  514. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_margin_mode.py +0 -0
  515. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_margin_modification.py +0 -0
  516. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_number.py +0 -0
  517. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_ohlcv.py +0 -0
  518. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_open_interest.py +0 -0
  519. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_order.py +0 -0
  520. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_order_book.py +0 -0
  521. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_position.py +0 -0
  522. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_shared_methods.py +0 -0
  523. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_status.py +0 -0
  524. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_throttle.py +0 -0
  525. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_ticker.py +0 -0
  526. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_trade.py +0 -0
  527. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_trading_fee.py +0 -0
  528. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/test/base/test_transaction.py +0 -0
  529. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/timex.py +0 -0
  530. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/tokocrypto.py +0 -0
  531. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/upbit.py +0 -0
  532. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/wavesexchange.py +0 -0
  533. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/wazirx.py +0 -0
  534. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/whitebit.py +0 -0
  535. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/yobit.py +0 -0
  536. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/zaif.py +0 -0
  537. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt/zonda.py +0 -0
  538. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt.egg-info/dependency_links.txt +0 -0
  539. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt.egg-info/requires.txt +0 -0
  540. {ccxt-4.2.73 → ccxt-4.2.75}/ccxt.egg-info/top_level.txt +0 -0
  541. {ccxt-4.2.73 → ccxt-4.2.75}/setup.cfg +0 -0
  542. {ccxt-4.2.73 → ccxt-4.2.75}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.73
3
+ Version: 4.2.75
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
@@ -13,7 +13,7 @@ Project-URL: Twitter, https://twitter.com/ccxt_official
13
13
  Project-URL: Funding, https://opencollective.com/ccxt
14
14
  Description: # CCXT – CryptoCurrency eXchange Trading Library
15
15
 
16
- [![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-102-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official)
16
+ [![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-103-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official)
17
17
 
18
18
  A JavaScript / Python / PHP / C# library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
19
19
 
@@ -55,8 +55,8 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
55
55
  | [![bitmart](https://user-images.githubusercontent.com/1294454/129991357-8f47464b-d0f4-41d6-8a82-34122f0d1398.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developer-pro.bitmart.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with BitMart using CCXT's referral link for a 30% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d30%25&color=orange)](http://www.bitmart.com/?r=rQCFLh) |
56
56
  | [![bitmex](https://github.com/ccxt/ccxt/assets/43336371/cea9cfe5-c57e-4b84-b2ac-77b960b04445)](https://www.bitmex.com/app/register/NZTR1q) | bitmex | [BitMEX](https://www.bitmex.com/app/register/NZTR1q) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://www.bitmex.com/app/apiOverview) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with BitMEX using CCXT's referral link for a 10% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d10%25&color=orange)](https://www.bitmex.com/app/register/NZTR1q) |
57
57
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
58
- | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://www.coinbaseinternational.com/international-exchange) | coinbaseinternational | [coinbase International](https://www.coinbaseinternational.com/international-exchange) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
59
- | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://github.com/coinexcom/coinex_exchange_api/wiki) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
58
+ | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
59
+ | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://viabtc.github.io/coinex_api_en_doc) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
60
60
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Crypto.com using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://crypto.com/exch/kdacthrnxt) |
61
61
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/signup/2436035) |
62
62
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with HTX using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
@@ -68,7 +68,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
68
68
 
69
69
  ## Supported Cryptocurrency Exchange Markets
70
70
 
71
- The CCXT library currently supports the following 96 cryptocurrency exchange markets and trading APIs:
71
+ The CCXT library currently supports the following 97 cryptocurrency exchange markets and trading APIs:
72
72
 
73
73
  | logo | id | name | ver | certified | pro |
74
74
  |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|-------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
@@ -108,10 +108,10 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
108
108
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
109
109
  | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://cex.io/cex-api) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
110
110
  | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developers.coinbase.com/api/v2) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
111
- | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://www.coinbaseinternational.com/international-exchange) | coinbaseinternational | [coinbase International](https://www.coinbaseinternational.com/international-exchange) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
111
+ | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
112
112
  | [![coinbasepro](https://user-images.githubusercontent.com/1294454/41764625-63b7ffde-760a-11e8-996d-a6328fa9347a.jpg)](https://pro.coinbase.com/) | coinbasepro | [Coinbase Pro](https://pro.coinbase.com/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.pro.coinbase.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
113
113
  | [![coincheck](https://user-images.githubusercontent.com/51840849/87182088-1d6d6380-c2ec-11ea-9c64-8ab9f9b289f5.jpg)](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coincheck.com/documents/exchange/api) | | |
114
- | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://github.com/coinexcom/coinex_exchange_api/wiki) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
114
+ | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://viabtc.github.io/coinex_api_en_doc) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
115
115
  | [![coinlist](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/281108917-eff2ae1d-ce8a-4b2a-950d-8678b12da965.jpg)](https://coinlist.co) | coinlist | [Coinlist](https://coinlist.co) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://trade-docs.coinlist.co) | | |
116
116
  | [![coinmate](https://user-images.githubusercontent.com/51840849/87460806-1c9f3f00-c616-11ea-8c46-a77018a8f3f4.jpg)](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | coinmate | [CoinMate](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coinmate.docs.apiary.io) | | |
117
117
  | [![coinmetro](https://github.com/ccxt/ccxt/assets/43336371/e86f87ec-6ba3-4410-962b-f7988c5db539)](https://go.coinmetro.com/?ref=crypto24) | coinmetro | [Coinmetro](https://go.coinmetro.com/?ref=crypto24) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://documenter.getpostman.com/view/3653795/SVfWN6KS) | | |
@@ -160,6 +160,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
160
160
  | [![probit](https://user-images.githubusercontent.com/51840849/79268032-c4379480-7ea2-11ea-80b3-dd96bb29fd0d.jpg)](https://www.probit.com/r/34608773) | probit | [ProBit](https://www.probit.com/r/34608773) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs-en.probit.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
161
161
  | [![timex](https://user-images.githubusercontent.com/1294454/70423869-6839ab00-1a7f-11ea-8f94-13ae72c31115.jpg)](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | timex | [TimeX](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://plasma-relay-backend.timex.io/swagger-ui/index.html) | | |
162
162
  | [![tokocrypto](https://user-images.githubusercontent.com/1294454/183870484-d3398d0c-f6a1-4cce-91b8-d58792308716.jpg)](https://tokocrypto.com) | tokocrypto | [Tokocrypto](https://tokocrypto.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://www.tokocrypto.com/apidocs/) | | |
163
+ | [![tradeogre](https://github.com/ccxt/ccxt/assets/43336371/3aa748b7-ea44-45e9-a9e7-b1d207a2578a)](https://tradeogre.com) | tradeogre | [tradeogre](https://tradeogre.com) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://tradeogre.com/help/api) | | |
163
164
  | [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
164
165
  | [![wavesexchange](https://user-images.githubusercontent.com/1294454/84547058-5fb27d80-ad0b-11ea-8711-78ac8b3c7f31.jpg)](https://wx.network) | wavesexchange | [Waves.Exchange](https://wx.network) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.wx.network) | | |
165
166
  | [![wazirx](https://user-images.githubusercontent.com/1294454/148647666-c109c20b-f8ac-472f-91c3-5f658cb90f49.jpeg)](https://wazirx.com/invite/k7rrnks5) | wazirx | [WazirX](https://wazirx.com/invite/k7rrnks5) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.wazirx.com/#public-rest-api-for-wazirx) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -225,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
225
226
 
226
227
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
227
228
 
228
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.73/dist/ccxt.browser.js
229
- * unpkg: https://unpkg.com/ccxt@4.2.73/dist/ccxt.browser.js
229
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.75/dist/ccxt.browser.js
230
+ * unpkg: https://unpkg.com/ccxt@4.2.75/dist/ccxt.browser.js
230
231
 
231
232
  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
233
 
233
234
  ```HTML
234
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.73/dist/ccxt.browser.js"></script>
235
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.75/dist/ccxt.browser.js"></script>
235
236
  ```
236
237
 
237
238
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.73'
25
+ __version__ = '4.2.75'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -173,6 +173,7 @@ from ccxt.poloniexfutures import poloniexfutures # noqa: F4
173
173
  from ccxt.probit import probit # noqa: F401
174
174
  from ccxt.timex import timex # noqa: F401
175
175
  from ccxt.tokocrypto import tokocrypto # noqa: F401
176
+ from ccxt.tradeogre import tradeogre # noqa: F401
176
177
  from ccxt.upbit import upbit # noqa: F401
177
178
  from ccxt.wavesexchange import wavesexchange # noqa: F401
178
179
  from ccxt.wazirx import wazirx # noqa: F401
@@ -277,6 +278,7 @@ exchanges = [
277
278
  'probit',
278
279
  'timex',
279
280
  'tokocrypto',
281
+ 'tradeogre',
280
282
  'upbit',
281
283
  'wavesexchange',
282
284
  'wazirx',
@@ -0,0 +1,16 @@
1
+ from ccxt.base.types import Entry
2
+
3
+
4
+ class ImplicitAPI:
5
+ public_get_markets = publicGetMarkets = Entry('markets', 'public', 'GET', {'cost': 1})
6
+ public_get_orders_market = publicGetOrdersMarket = Entry('orders/{market}', 'public', 'GET', {'cost': 1})
7
+ public_get_ticker_market = publicGetTickerMarket = Entry('ticker/{market}', 'public', 'GET', {'cost': 1})
8
+ public_get_history_market = publicGetHistoryMarket = Entry('history/{market}', 'public', 'GET', {'cost': 1})
9
+ private_get_account_balance = privateGetAccountBalance = Entry('account/balance', 'private', 'GET', {'cost': 1})
10
+ private_get_account_balances = privateGetAccountBalances = Entry('account/balances', 'private', 'GET', {'cost': 1})
11
+ private_get_account_order_uuid = privateGetAccountOrderUuid = Entry('account/order/{uuid}', 'private', 'GET', {'cost': 1})
12
+ private_post_order_buy = privatePostOrderBuy = Entry('order/buy', 'private', 'POST', {'cost': 1})
13
+ private_post_order_sell = privatePostOrderSell = Entry('order/sell', 'private', 'POST', {'cost': 1})
14
+ private_post_order_cancel = privatePostOrderCancel = Entry('order/cancel', 'private', 'POST', {'cost': 1})
15
+ private_post_orders = privatePostOrders = Entry('orders', 'private', 'POST', {'cost': 1})
16
+ private_post_account_orders = privatePostAccountOrders = Entry('account/orders', 'private', 'POST', {'cost': 1})
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -714,7 +714,7 @@ class ascendex(Exchange, ImplicitAPI):
714
714
  data = self.safe_value(response, 'data')
715
715
  return self.safe_integer(data, 'requestReceiveAt')
716
716
 
717
- def fetch_accounts(self, params={}):
717
+ def fetch_accounts(self, params={}) -> List[Account]:
718
718
  """
719
719
  fetch all the accounts associated with a profile
720
720
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -747,7 +747,7 @@ class ascendex(Exchange, ImplicitAPI):
747
747
  {
748
748
  'id': accountGroup,
749
749
  'type': None,
750
- 'currency': None,
750
+ 'code': None,
751
751
  'info': response,
752
752
  },
753
753
  ]
@@ -2590,7 +2590,8 @@ class ascendex(Exchange, ImplicitAPI):
2590
2590
  notional = self.safe_string(position, 'buyOpenOrderNotional')
2591
2591
  if Precise.string_eq(notional, '0'):
2592
2592
  notional = self.safe_string(position, 'sellOpenOrderNotional')
2593
- marginMode = self.safe_string(position, 'marginType')
2593
+ marginType = self.safe_string(position, 'marginType')
2594
+ marginMode = 'cross' if (marginType == 'crossed') else 'isolated'
2594
2595
  collateral = None
2595
2596
  if marginMode == 'isolated':
2596
2597
  collateral = self.safe_string(position, 'isolatedMargin')
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.73'
7
+ __version__ = '4.2.75'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -153,6 +153,7 @@ from ccxt.async_support.poloniexfutures import poloniexfutures
153
153
  from ccxt.async_support.probit import probit # noqa: F401
154
154
  from ccxt.async_support.timex import timex # noqa: F401
155
155
  from ccxt.async_support.tokocrypto import tokocrypto # noqa: F401
156
+ from ccxt.async_support.tradeogre import tradeogre # noqa: F401
156
157
  from ccxt.async_support.upbit import upbit # noqa: F401
157
158
  from ccxt.async_support.wavesexchange import wavesexchange # noqa: F401
158
159
  from ccxt.async_support.wazirx import wazirx # noqa: F401
@@ -257,6 +258,7 @@ exchanges = [
257
258
  'probit',
258
259
  'timex',
259
260
  'tokocrypto',
261
+ 'tradeogre',
260
262
  'upbit',
261
263
  'wavesexchange',
262
264
  'wazirx',
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -714,7 +714,7 @@ class ascendex(Exchange, ImplicitAPI):
714
714
  data = self.safe_value(response, 'data')
715
715
  return self.safe_integer(data, 'requestReceiveAt')
716
716
 
717
- async def fetch_accounts(self, params={}):
717
+ async def fetch_accounts(self, params={}) -> List[Account]:
718
718
  """
719
719
  fetch all the accounts associated with a profile
720
720
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -747,7 +747,7 @@ class ascendex(Exchange, ImplicitAPI):
747
747
  {
748
748
  'id': accountGroup,
749
749
  'type': None,
750
- 'currency': None,
750
+ 'code': None,
751
751
  'info': response,
752
752
  },
753
753
  ]
@@ -2590,7 +2590,8 @@ class ascendex(Exchange, ImplicitAPI):
2590
2590
  notional = self.safe_string(position, 'buyOpenOrderNotional')
2591
2591
  if Precise.string_eq(notional, '0'):
2592
2592
  notional = self.safe_string(position, 'sellOpenOrderNotional')
2593
- marginMode = self.safe_string(position, 'marginType')
2593
+ marginType = self.safe_string(position, 'marginType')
2594
+ marginMode = 'cross' if (marginType == 'crossed') else 'isolated'
2594
2595
  collateral = None
2595
2596
  if marginMode == 'isolated':
2596
2597
  collateral = self.safe_string(position, 'isolatedMargin')
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.73'
5
+ __version__ = '4.2.75'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1362,10 +1362,10 @@ class bitget(Exchange, ImplicitAPI):
1362
1362
  },
1363
1363
  'fetchOHLCV': {
1364
1364
  'spot': {
1365
- 'method': 'publicSpotGetV2SpotMarketCandles', # or publicSpotGetV2SpotMarketHistoryCandles
1365
+ 'method': 'publicSpotGetV2SpotMarketCandles', # publicSpotGetV2SpotMarketCandles or publicSpotGetV2SpotMarketHistoryCandles
1366
1366
  },
1367
1367
  'swap': {
1368
- 'method': 'publicMixGetV2MixMarketCandles', # or publicMixGetV2MixMarketHistoryCandles or publicMixGetV2MixMarketHistoryIndexCandles or publicMixGetV2MixMarketHistoryMarkCandles
1368
+ 'method': 'publicMixGetV2MixMarketCandles', # publicMixGetV2MixMarketCandles or publicMixGetV2MixMarketHistoryCandles or publicMixGetV2MixMarketHistoryIndexCandles or publicMixGetV2MixMarketHistoryMarkCandles
1369
1369
  },
1370
1370
  'maxDaysPerTimeframe': {
1371
1371
  '1m': 30,
@@ -3197,11 +3197,13 @@ class bitget(Exchange, ImplicitAPI):
3197
3197
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
3198
3198
  """
3199
3199
  await self.load_markets()
3200
- maxLimit = 1000 # max 1000
3200
+ defaultLimit = 100 # default 100, max 1000
3201
+ maxLimitForRecentEndpoint = 1000
3202
+ maxLimitForHistoryEndpoint = 200 # note, max 1000 bars are supported for "recent-candles" endpoint, but "historical-candles" support only max 200
3201
3203
  paginate = False
3202
3204
  paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate')
3203
3205
  if paginate:
3204
- return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimit)
3206
+ return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimitForHistoryEndpoint)
3205
3207
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
3206
3208
  market = None
3207
3209
  if sandboxMode:
@@ -3211,28 +3213,17 @@ class bitget(Exchange, ImplicitAPI):
3211
3213
  market = self.market(symbol)
3212
3214
  marketType = 'spot' if market['spot'] else 'swap'
3213
3215
  timeframes = self.options['timeframes'][marketType]
3214
- selectedTimeframe = self.safe_string(timeframes, timeframe, timeframe)
3216
+ msInDay = 86400000
3215
3217
  duration = self.parse_timeframe(timeframe) * 1000
3216
3218
  request = {
3217
3219
  'symbol': market['id'],
3218
- 'granularity': selectedTimeframe,
3220
+ 'granularity': self.safe_string(timeframes, timeframe, timeframe),
3219
3221
  }
3220
- defaultLimit = 100 # by default, exchange returns 100 items
3221
- msInDay = 1000 * 60 * 60 * 24
3222
- if limit is not None:
3223
- limit = min(limit, maxLimit)
3224
- request['limit'] = limit
3225
3222
  until = self.safe_integer_2(params, 'until', 'till')
3223
+ limitDefined = limit is not None
3224
+ sinceDefined = since is not None
3225
+ untilDefined = until is not None
3226
3226
  params = self.omit(params, ['until', 'till'])
3227
- if until is not None:
3228
- request['endTime'] = until
3229
- if since is not None:
3230
- request['startTime'] = since
3231
- if market['spot'] and (until is None):
3232
- # for spot we need to send "entTime" too
3233
- limitForEnd = limit if (limit is not None) else defaultLimit
3234
- calculatedEnd = self.sum(since, duration * limitForEnd)
3235
- request['endTime'] = calculatedEnd
3236
3227
  response = None
3237
3228
  now = self.milliseconds()
3238
3229
  # retrievable periods listed here:
@@ -3240,33 +3231,52 @@ class bitget(Exchange, ImplicitAPI):
3240
3231
  # - https://www.bitget.com/api-doc/contract/market/Get-Candle-Data#description
3241
3232
  ohlcOptions = self.safe_dict(self.options, 'fetchOHLCV', {})
3242
3233
  retrievableDaysMap = self.safe_dict(ohlcOptions, 'maxDaysPerTimeframe', {})
3243
- maxRetrievableDaysForNonHistory = self.safe_integer(retrievableDaysMap, timeframe, 30) # default to safe minimum
3244
- endpointTsBoundary = now - maxRetrievableDaysForNonHistory * msInDay
3245
- # checks if we need history endpoint
3246
- needsHistoryEndpoint = False
3247
- displaceByLimit = 0 if (limit is None) else limit * duration
3248
- if since is not None and since < endpointTsBoundary:
3249
- # if since it earlier than the allowed diapason
3250
- needsHistoryEndpoint = True
3251
- elif until is not None and until - displaceByLimit < endpointTsBoundary:
3252
- # if until is earlier than the allowed diapason
3253
- needsHistoryEndpoint = True
3234
+ maxRetrievableDaysForRecent = self.safe_integer(retrievableDaysMap, timeframe, 30) # default to safe minimum
3235
+ endpointTsBoundary = now - maxRetrievableDaysForRecent * msInDay
3236
+ if limitDefined:
3237
+ limit = min(limit, maxLimitForRecentEndpoint)
3238
+ request['limit'] = limit
3239
+ else:
3240
+ limit = defaultLimit
3241
+ limitMultipliedDuration = limit * duration
3242
+ # exchange aligns from endTime, so it's important, not startTime
3243
+ # startTime is supported only on "recent" endpoint, not on "historical" endpoint
3244
+ calculatedStartTime = None
3245
+ calculatedEndTime = None
3246
+ if sinceDefined:
3247
+ calculatedStartTime = since
3248
+ request['startTime'] = since
3249
+ if not untilDefined:
3250
+ calculatedEndTime = self.sum(calculatedStartTime, limitMultipliedDuration)
3251
+ request['endTime'] = calculatedEndTime
3252
+ if untilDefined:
3253
+ calculatedEndTime = until
3254
+ request['endTime'] = calculatedEndTime
3255
+ if not sinceDefined:
3256
+ calculatedStartTime = calculatedEndTime - limitMultipliedDuration
3257
+ # we do not need to set "startTime" here
3258
+ historicalEndpointNeeded = (calculatedStartTime is not None) and (calculatedStartTime <= endpointTsBoundary)
3259
+ if historicalEndpointNeeded:
3260
+ # only for "historical-candles" - ensure we use correct max limit
3261
+ if limitDefined:
3262
+ request['limit'] = min(limit, maxLimitForHistoryEndpoint)
3263
+ # make request
3254
3264
  if market['spot']:
3255
- if needsHistoryEndpoint:
3265
+ # checks if we need history endpoint
3266
+ if historicalEndpointNeeded:
3256
3267
  response = await self.publicSpotGetV2SpotMarketHistoryCandles(self.extend(request, params))
3257
3268
  else:
3258
3269
  response = await self.publicSpotGetV2SpotMarketCandles(self.extend(request, params))
3259
3270
  else:
3260
- maxDistanceDaysForContracts = 90 # maximum 90 days allowed between start-end times
3261
- distanceError = False
3262
- if limit is not None and limit * duration > maxDistanceDaysForContracts * msInDay:
3263
- distanceError = True
3264
- elif since is not None and until is not None and until - since > maxDistanceDaysForContracts * msInDay:
3265
- distanceError = True
3266
- if distanceError:
3267
- raise BadRequest(self.id + ' fetchOHLCV() between start and end must be less than ' + str(maxDistanceDaysForContracts) + ' days')
3268
- priceType = self.safe_string(params, 'price')
3269
- params = self.omit(params, ['price'])
3271
+ maxDistanceDaysForContracts = 90 # for contract, maximum 90 days allowed between start-end times
3272
+ # only correct the request to fix 90 days if until was auto-calculated
3273
+ if sinceDefined:
3274
+ if not untilDefined:
3275
+ request['endTime'] = min(calculatedEndTime, self.sum(since, maxDistanceDaysForContracts * msInDay))
3276
+ elif calculatedEndTime - calculatedStartTime > maxDistanceDaysForContracts * msInDay:
3277
+ raise BadRequest(self.id + ' fetchOHLCV() between start and end must be less than ' + str(maxDistanceDaysForContracts) + ' days')
3278
+ priceType = None
3279
+ priceType, params = self.handle_param_string(params, 'price')
3270
3280
  productType = None
3271
3281
  productType, params = self.handle_product_type_and_params(market, params)
3272
3282
  request['productType'] = productType
@@ -3277,7 +3287,7 @@ class bitget(Exchange, ImplicitAPI):
3277
3287
  elif priceType == 'index':
3278
3288
  response = await self.publicMixGetV2MixMarketHistoryIndexCandles(extended)
3279
3289
  else:
3280
- if needsHistoryEndpoint:
3290
+ if historicalEndpointNeeded:
3281
3291
  response = await self.publicMixGetV2MixMarketHistoryCandles(extended)
3282
3292
  else:
3283
3293
  response = await self.publicMixGetV2MixMarketCandles(extended)
@@ -19,6 +19,7 @@ from ccxt.base.errors import InvalidAddress
19
19
  from ccxt.base.errors import InvalidOrder
20
20
  from ccxt.base.errors import OrderNotFound
21
21
  from ccxt.base.errors import NotSupported
22
+ from ccxt.base.errors import NetworkError
22
23
  from ccxt.base.errors import RateLimitExceeded
23
24
  from ccxt.base.errors import ExchangeNotAvailable
24
25
  from ccxt.base.errors import OnMaintenance
@@ -365,6 +366,7 @@ class bitmart(Exchange, ImplicitAPI):
365
366
  '70000': ExchangeError, # 200, no data
366
367
  '70001': BadRequest, # 200, request param can not be null
367
368
  '70002': BadSymbol, # 200, symbol is invalid
369
+ '70003': NetworkError, # {"code":70003,"trace":"81a9d57b63be4819b65d3065e6a4682b.105.17105295323593915","message":"net error, please try later","data":null}
368
370
  '71001': BadRequest, # 200, after is invalid
369
371
  '71002': BadRequest, # 200, before is invalid
370
372
  '71003': BadRequest, # 200, request after or before is invalid
@@ -94,6 +94,7 @@ class bybit(Exchange, ImplicitAPI):
94
94
  'fetchIsolatedBorrowRates': False,
95
95
  'fetchLedger': True,
96
96
  'fetchLeverage': True,
97
+ 'fetchLeverageTiers': True,
97
98
  'fetchMarketLeverageTiers': True,
98
99
  'fetchMarkets': True,
99
100
  'fetchMarkOHLCV': True,
@@ -6752,35 +6753,6 @@ class bybit(Exchange, ImplicitAPI):
6752
6753
  request['symbol'] = market['id']
6753
6754
  return await self.fetch_derivatives_market_leverage_tiers(symbol, params)
6754
6755
 
6755
- def parse_market_leverage_tiers(self, info, market: Market = None):
6756
- #
6757
- # {
6758
- # "id": 1,
6759
- # "symbol": "BTCUSD",
6760
- # "riskLimitValue": "150",
6761
- # "maintenanceMargin": "0.5",
6762
- # "initialMargin": "1",
6763
- # "isLowestRisk": 1,
6764
- # "maxLeverage": "100.00"
6765
- # }
6766
- #
6767
- minNotional = 0
6768
- tiers = []
6769
- for i in range(0, len(info)):
6770
- item = info[i]
6771
- maxNotional = self.safe_number(item, 'riskLimitValue')
6772
- tiers.append({
6773
- 'tier': self.sum(i, 1),
6774
- 'currency': market['base'],
6775
- 'minNotional': minNotional,
6776
- 'maxNotional': maxNotional,
6777
- 'maintenanceMarginRate': self.safe_number(item, 'maintenanceMargin'),
6778
- 'maxLeverage': self.safe_number(item, 'maxLeverage'),
6779
- 'info': item,
6780
- })
6781
- minNotional = maxNotional
6782
- return tiers
6783
-
6784
6756
  def parse_trading_fee(self, fee, market: Market = None):
6785
6757
  #
6786
6758
  # {
@@ -7448,6 +7420,89 @@ class bybit(Exchange, ImplicitAPI):
7448
7420
  'datetime': self.iso8601(timestamp),
7449
7421
  })
7450
7422
 
7423
+ async def fetch_leverage_tiers(self, symbols: Strings = None, params={}):
7424
+ """
7425
+ :see: https://bybit-exchange.github.io/docs/v5/market/risk-limit
7426
+ retrieve information on the maximum leverage, for different trade sizes
7427
+ :param str[] [symbols]: a list of unified market symbols
7428
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7429
+ :param str [params.subType]: market subType, ['linear', 'inverse'], default is 'linear'
7430
+ :returns dict: a dictionary of `leverage tiers structures <https://docs.ccxt.com/#/?id=leverage-tiers-structure>`, indexed by market symbols
7431
+ """
7432
+ await self.load_markets()
7433
+ market = None
7434
+ if symbols is not None:
7435
+ market = self.market(symbols[0])
7436
+ if market['spot']:
7437
+ raise NotSupported(self.id + ' fetchLeverageTiers() is not supported for spot market')
7438
+ subType = None
7439
+ subType, params = self.handle_sub_type_and_params('fetchTickers', market, params, 'linear')
7440
+ request = {
7441
+ 'category': subType,
7442
+ }
7443
+ response = await self.publicGetV5MarketRiskLimit(self.extend(request, params))
7444
+ result = self.safe_dict(response, 'result', {})
7445
+ data = self.safe_list(result, 'list', [])
7446
+ symbols = self.market_symbols(symbols)
7447
+ return self.parse_leverage_tiers(data, symbols, 'symbol')
7448
+
7449
+ def parse_leverage_tiers(self, response, symbols: Strings = None, marketIdKey=None):
7450
+ #
7451
+ # [
7452
+ # {
7453
+ # "id": 1,
7454
+ # "symbol": "BTCUSD",
7455
+ # "riskLimitValue": "150",
7456
+ # "maintenanceMargin": "0.5",
7457
+ # "initialMargin": "1",
7458
+ # "isLowestRisk": 1,
7459
+ # "maxLeverage": "100.00"
7460
+ # }
7461
+ # ]
7462
+ #
7463
+ tiers = {}
7464
+ marketIds = self.market_ids(symbols)
7465
+ filteredResults = self.filter_by_array(response, marketIdKey, marketIds, False)
7466
+ grouped = self.group_by(filteredResults, marketIdKey)
7467
+ keys = list(grouped.keys())
7468
+ for i in range(0, len(keys)):
7469
+ marketId = keys[i]
7470
+ entry = grouped[marketId]
7471
+ market = self.safe_market(marketId, None, None, 'contract')
7472
+ symbol = market['symbol']
7473
+ tiers[symbol] = self.parse_market_leverage_tiers(entry, market)
7474
+ return tiers
7475
+
7476
+ def parse_market_leverage_tiers(self, info, market: Market = None):
7477
+ #
7478
+ # [
7479
+ # {
7480
+ # "id": 1,
7481
+ # "symbol": "BTCUSD",
7482
+ # "riskLimitValue": "150",
7483
+ # "maintenanceMargin": "0.5",
7484
+ # "initialMargin": "1",
7485
+ # "isLowestRisk": 1,
7486
+ # "maxLeverage": "100.00"
7487
+ # }
7488
+ # ]
7489
+ #
7490
+ tiers = []
7491
+ for i in range(0, len(info)):
7492
+ tier = info[i]
7493
+ marketId = self.safe_string(info, 'symbol')
7494
+ market = self.safe_market(marketId)
7495
+ tiers.append({
7496
+ 'tier': self.safe_integer(tier, 'id'),
7497
+ 'currency': market['settle'],
7498
+ 'minNotional': None,
7499
+ 'maxNotional': None,
7500
+ 'maintenanceMarginRate': self.safe_number(tier, 'maintenanceMargin'),
7501
+ 'maxLeverage': self.safe_number(tier, 'maxLeverage'),
7502
+ 'info': tier,
7503
+ })
7504
+ return tiers
7505
+
7451
7506
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
7452
7507
  url = self.implode_hostname(self.urls['api'][api]) + '/' + path
7453
7508
  if api == 'public':
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.coinbase import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
+ from ccxt.base.types import Account, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import ArgumentsRequired
@@ -401,7 +401,7 @@ class coinbase(Exchange, ImplicitAPI):
401
401
  #
402
402
  return self.safe_timestamp_2(response, 'epoch', 'epochSeconds')
403
403
 
404
- async def fetch_accounts(self, params={}):
404
+ async def fetch_accounts(self, params={}) -> List[Account]:
405
405
  """
406
406
  fetch all the accounts associated with a profile
407
407
  :see: https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_getaccounts
@@ -415,7 +415,7 @@ class coinbase(Exchange, ImplicitAPI):
415
415
  return await self.fetch_accounts_v3(params)
416
416
  return await self.fetch_accounts_v2(params)
417
417
 
418
- async def fetch_accounts_v2(self, params={}):
418
+ async def fetch_accounts_v2(self, params={}) -> List[Account]:
419
419
  await self.load_markets()
420
420
  paginate = False
421
421
  paginate, params = self.handle_option_and_params(params, 'fetchAccounts', 'paginate')
@@ -481,7 +481,7 @@ class coinbase(Exchange, ImplicitAPI):
481
481
  accounts[lastIndex] = last
482
482
  return self.parse_accounts(data, params)
483
483
 
484
- async def fetch_accounts_v3(self, params={}):
484
+ async def fetch_accounts_v3(self, params={}) -> List[Account]:
485
485
  await self.load_markets()
486
486
  paginate = False
487
487
  paginate, params = self.handle_option_and_params(params, 'fetchAccounts', 'paginate')
@@ -124,7 +124,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
124
124
  'test': {
125
125
  'rest': 'https://api-n5e1.coinbase.com/api',
126
126
  },
127
- 'www': 'https://www.coinbaseinternational.com/international-exchange',
127
+ 'www': 'https://international.coinbase.com',
128
128
  'doc': [
129
129
  'https://docs.cloud.coinbaseinternational.com/intx/docs',
130
130
  ],