ccxt 4.1.83__tar.gz → 4.1.85__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 (443) hide show
  1. {ccxt-4.1.83/ccxt.egg-info → ccxt-4.1.85}/PKG-INFO +6 -5
  2. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/__init__.py +1 -1
  3. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/exchange.py +4 -1
  5. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/binance.py +1 -1
  6. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bingx.py +8 -7
  7. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bithumb.py +2 -2
  8. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitmart.py +90 -73
  9. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitopro.py +2 -2
  10. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bybit.py +3 -2
  11. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinex.py +1 -0
  12. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinsph.py +18 -9
  13. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/htx.py +33 -4
  14. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/huobijp.py +31 -5
  15. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/kucoinfutures.py +0 -3
  16. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/exchange.py +4 -1
  17. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/binance.py +1 -1
  18. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bingx.py +8 -7
  19. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitmart.py +90 -73
  20. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bybit.py +3 -2
  21. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinex.py +1 -0
  22. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinsph.py +18 -9
  23. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/htx.py +33 -4
  24. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/huobijp.py +31 -5
  25. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/kucoinfutures.py +0 -3
  26. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/__init__.py +1 -1
  27. ccxt-4.1.85/ccxt/pro/bitmart.py +1315 -0
  28. {ccxt-4.1.83 → ccxt-4.1.85/ccxt.egg-info}/PKG-INFO +6 -5
  29. {ccxt-4.1.83 → ccxt-4.1.85}/package.json +1 -1
  30. ccxt-4.1.83/ccxt/pro/bitmart.py +0 -597
  31. {ccxt-4.1.83 → ccxt-4.1.85}/LICENSE.txt +0 -0
  32. {ccxt-4.1.83 → ccxt-4.1.85}/MANIFEST.in +0 -0
  33. {ccxt-4.1.83 → ccxt-4.1.85}/README.rst +0 -0
  34. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/__init__.py +0 -0
  35. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/ace.py +0 -0
  36. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/alpaca.py +0 -0
  37. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/ascendex.py +0 -0
  38. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bequant.py +0 -0
  39. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bigone.py +0 -0
  40. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/binance.py +0 -0
  41. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/binancecoinm.py +0 -0
  42. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/binanceus.py +0 -0
  43. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/binanceusdm.py +0 -0
  44. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bingx.py +0 -0
  45. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bit2c.py +0 -0
  46. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitbank.py +0 -0
  47. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitbay.py +0 -0
  48. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitbns.py +0 -0
  49. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitcoincom.py +0 -0
  50. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitfinex.py +0 -0
  51. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitfinex2.py +0 -0
  52. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitflyer.py +0 -0
  53. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitforex.py +0 -0
  54. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitget.py +0 -0
  55. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bithumb.py +0 -0
  56. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitmart.py +0 -0
  57. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitmex.py +0 -0
  58. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitopro.py +0 -0
  59. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitpanda.py +0 -0
  60. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitrue.py +0 -0
  61. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitso.py +0 -0
  62. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitstamp.py +0 -0
  63. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bittrex.py +0 -0
  64. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bitvavo.py +0 -0
  65. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bl3p.py +0 -0
  66. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/blockchaincom.py +0 -0
  67. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/btcalpha.py +0 -0
  68. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/btcbox.py +0 -0
  69. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/btcmarkets.py +0 -0
  70. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/btcturk.py +0 -0
  71. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/bybit.py +0 -0
  72. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/cex.py +0 -0
  73. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinbase.py +0 -0
  74. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinbaseprime.py +0 -0
  75. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinbasepro.py +0 -0
  76. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coincheck.py +0 -0
  77. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinex.py +0 -0
  78. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinlist.py +0 -0
  79. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinmate.py +0 -0
  80. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinone.py +0 -0
  81. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinsph.py +0 -0
  82. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/coinspot.py +0 -0
  83. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/cryptocom.py +0 -0
  84. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/currencycom.py +0 -0
  85. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/delta.py +0 -0
  86. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/deribit.py +0 -0
  87. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/digifinex.py +0 -0
  88. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/exmo.py +0 -0
  89. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/fmfwio.py +0 -0
  90. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/gate.py +0 -0
  91. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/gateio.py +0 -0
  92. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/gemini.py +0 -0
  93. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/hitbtc.py +0 -0
  94. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/hitbtc3.py +0 -0
  95. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/hollaex.py +0 -0
  96. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/htx.py +0 -0
  97. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/huobi.py +0 -0
  98. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/huobijp.py +0 -0
  99. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/idex.py +0 -0
  100. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/independentreserve.py +0 -0
  101. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/indodax.py +0 -0
  102. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/kraken.py +0 -0
  103. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/krakenfutures.py +0 -0
  104. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/kucoin.py +0 -0
  105. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/kucoinfutures.py +0 -0
  106. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/kuna.py +0 -0
  107. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/latoken.py +0 -0
  108. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/lbank.py +0 -0
  109. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/luno.py +0 -0
  110. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/lykke.py +0 -0
  111. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/mercado.py +0 -0
  112. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/mexc.py +0 -0
  113. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/ndax.py +0 -0
  114. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/novadax.py +0 -0
  115. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/oceanex.py +0 -0
  116. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/okcoin.py +0 -0
  117. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/okx.py +0 -0
  118. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/p2b.py +0 -0
  119. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/paymium.py +0 -0
  120. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/phemex.py +0 -0
  121. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/poloniex.py +0 -0
  122. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/poloniexfutures.py +0 -0
  123. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/probit.py +0 -0
  124. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/timex.py +0 -0
  125. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/tokocrypto.py +0 -0
  126. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/upbit.py +0 -0
  127. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/wavesexchange.py +0 -0
  128. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/wazirx.py +0 -0
  129. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/whitebit.py +0 -0
  130. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/woo.py +0 -0
  131. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/yobit.py +0 -0
  132. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/zaif.py +0 -0
  133. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/abstract/zonda.py +0 -0
  134. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/ace.py +0 -0
  135. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/alpaca.py +0 -0
  136. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/ascendex.py +0 -0
  137. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/ace.py +0 -0
  138. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/alpaca.py +0 -0
  139. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/ascendex.py +0 -0
  140. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/__init__.py +0 -0
  141. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/throttler.py +0 -0
  142. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/__init__.py +0 -0
  143. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  144. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/cache.py +0 -0
  145. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/client.py +0 -0
  146. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/fast_client.py +0 -0
  147. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/functions.py +0 -0
  148. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/future.py +0 -0
  149. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/order_book.py +0 -0
  150. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  151. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bequant.py +0 -0
  152. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bigone.py +0 -0
  153. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/binancecoinm.py +0 -0
  154. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/binanceus.py +0 -0
  155. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/binanceusdm.py +0 -0
  156. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bit2c.py +0 -0
  157. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitbank.py +0 -0
  158. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitbay.py +0 -0
  159. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitbns.py +0 -0
  160. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitcoincom.py +0 -0
  161. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitfinex.py +0 -0
  162. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitfinex2.py +0 -0
  163. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitflyer.py +0 -0
  164. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitforex.py +0 -0
  165. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitget.py +0 -0
  166. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitmex.py +0 -0
  167. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitpanda.py +0 -0
  168. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitrue.py +0 -0
  169. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitso.py +0 -0
  170. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitstamp.py +0 -0
  171. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bittrex.py +0 -0
  172. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bitvavo.py +0 -0
  173. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/bl3p.py +0 -0
  174. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/blockchaincom.py +0 -0
  175. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/btcalpha.py +0 -0
  176. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/btcbox.py +0 -0
  177. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/btcmarkets.py +0 -0
  178. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/btcturk.py +0 -0
  179. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/cex.py +0 -0
  180. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinbase.py +0 -0
  181. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinbaseprime.py +0 -0
  182. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinbasepro.py +0 -0
  183. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coincheck.py +0 -0
  184. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinlist.py +0 -0
  185. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinmate.py +0 -0
  186. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinone.py +0 -0
  187. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/coinspot.py +0 -0
  188. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/cryptocom.py +0 -0
  189. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/currencycom.py +0 -0
  190. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/delta.py +0 -0
  191. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/deribit.py +0 -0
  192. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/digifinex.py +0 -0
  193. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/exmo.py +0 -0
  194. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/flowbtc.py +0 -0
  195. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/fmfwio.py +0 -0
  196. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/gate.py +0 -0
  197. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/gateio.py +0 -0
  198. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/gemini.py +0 -0
  199. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/hitbtc.py +0 -0
  200. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/hitbtc3.py +0 -0
  201. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/hollaex.py +0 -0
  202. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/huobi.py +0 -0
  203. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/idex.py +0 -0
  204. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/independentreserve.py +0 -0
  205. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/indodax.py +0 -0
  206. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/kraken.py +0 -0
  207. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/krakenfutures.py +0 -0
  208. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/kucoin.py +0 -0
  209. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/kuna.py +0 -0
  210. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/latoken.py +0 -0
  211. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/lbank.py +0 -0
  212. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/luno.py +0 -0
  213. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/lykke.py +0 -0
  214. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/mercado.py +0 -0
  215. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/mexc.py +0 -0
  216. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/ndax.py +0 -0
  217. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/novadax.py +0 -0
  218. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/oceanex.py +0 -0
  219. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/okcoin.py +0 -0
  220. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/okx.py +0 -0
  221. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/p2b.py +0 -0
  222. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/paymium.py +0 -0
  223. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/phemex.py +0 -0
  224. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/poloniex.py +0 -0
  225. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/poloniexfutures.py +0 -0
  226. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/probit.py +0 -0
  227. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/timex.py +0 -0
  228. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/tokocrypto.py +0 -0
  229. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/upbit.py +0 -0
  230. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/wavesexchange.py +0 -0
  231. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/wazirx.py +0 -0
  232. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/whitebit.py +0 -0
  233. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/woo.py +0 -0
  234. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/yobit.py +0 -0
  235. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/zaif.py +0 -0
  236. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/async_support/zonda.py +0 -0
  237. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/__init__.py +0 -0
  238. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/decimal_to_precision.py +0 -0
  239. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/errors.py +0 -0
  240. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/precise.py +0 -0
  241. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/base/types.py +0 -0
  242. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bequant.py +0 -0
  243. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bigone.py +0 -0
  244. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/binancecoinm.py +0 -0
  245. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/binanceus.py +0 -0
  246. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/binanceusdm.py +0 -0
  247. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bit2c.py +0 -0
  248. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitbank.py +0 -0
  249. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitbay.py +0 -0
  250. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitbns.py +0 -0
  251. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitcoincom.py +0 -0
  252. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitfinex.py +0 -0
  253. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitfinex2.py +0 -0
  254. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitflyer.py +0 -0
  255. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitforex.py +0 -0
  256. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitget.py +0 -0
  257. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bithumb.py +0 -0
  258. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitmex.py +0 -0
  259. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitopro.py +0 -0
  260. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitpanda.py +0 -0
  261. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitrue.py +0 -0
  262. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitso.py +0 -0
  263. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitstamp.py +0 -0
  264. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bittrex.py +0 -0
  265. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bitvavo.py +0 -0
  266. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/bl3p.py +0 -0
  267. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/blockchaincom.py +0 -0
  268. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/btcalpha.py +0 -0
  269. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/btcbox.py +0 -0
  270. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/btcmarkets.py +0 -0
  271. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/btcturk.py +0 -0
  272. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/cex.py +0 -0
  273. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinbase.py +0 -0
  274. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinbaseprime.py +0 -0
  275. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinbasepro.py +0 -0
  276. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coincheck.py +0 -0
  277. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinlist.py +0 -0
  278. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinmate.py +0 -0
  279. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinone.py +0 -0
  280. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/coinspot.py +0 -0
  281. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/cryptocom.py +0 -0
  282. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/currencycom.py +0 -0
  283. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/delta.py +0 -0
  284. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/deribit.py +0 -0
  285. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/digifinex.py +0 -0
  286. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/exmo.py +0 -0
  287. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/flowbtc.py +0 -0
  288. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/fmfwio.py +0 -0
  289. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/gate.py +0 -0
  290. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/gateio.py +0 -0
  291. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/gemini.py +0 -0
  292. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/hitbtc.py +0 -0
  293. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/hitbtc3.py +0 -0
  294. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/hollaex.py +0 -0
  295. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/huobi.py +0 -0
  296. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/idex.py +0 -0
  297. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/independentreserve.py +0 -0
  298. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/indodax.py +0 -0
  299. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/kraken.py +0 -0
  300. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/krakenfutures.py +0 -0
  301. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/kucoin.py +0 -0
  302. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/kuna.py +0 -0
  303. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/latoken.py +0 -0
  304. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/lbank.py +0 -0
  305. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/luno.py +0 -0
  306. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/lykke.py +0 -0
  307. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/mercado.py +0 -0
  308. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/mexc.py +0 -0
  309. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/ndax.py +0 -0
  310. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/novadax.py +0 -0
  311. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/oceanex.py +0 -0
  312. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/okcoin.py +0 -0
  313. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/okx.py +0 -0
  314. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/p2b.py +0 -0
  315. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/paymium.py +0 -0
  316. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/phemex.py +0 -0
  317. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/poloniex.py +0 -0
  318. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/poloniexfutures.py +0 -0
  319. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/alpaca.py +0 -0
  320. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/ascendex.py +0 -0
  321. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bequant.py +0 -0
  322. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/binance.py +0 -0
  323. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/binancecoinm.py +0 -0
  324. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/binanceus.py +0 -0
  325. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/binanceusdm.py +0 -0
  326. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bingx.py +0 -0
  327. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitcoincom.py +0 -0
  328. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitfinex.py +0 -0
  329. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitfinex2.py +0 -0
  330. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitget.py +0 -0
  331. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitmex.py +0 -0
  332. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitopro.py +0 -0
  333. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitpanda.py +0 -0
  334. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitrue.py +0 -0
  335. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitstamp.py +0 -0
  336. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bittrex.py +0 -0
  337. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bitvavo.py +0 -0
  338. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/blockchaincom.py +0 -0
  339. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/bybit.py +0 -0
  340. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/cex.py +0 -0
  341. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/coinbase.py +0 -0
  342. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/coinbaseprime.py +0 -0
  343. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/coinbasepro.py +0 -0
  344. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/coinex.py +0 -0
  345. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/cryptocom.py +0 -0
  346. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/currencycom.py +0 -0
  347. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/deribit.py +0 -0
  348. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/exmo.py +0 -0
  349. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/gate.py +0 -0
  350. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/gateio.py +0 -0
  351. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/gemini.py +0 -0
  352. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/hitbtc.py +0 -0
  353. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/hollaex.py +0 -0
  354. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/htx.py +0 -0
  355. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/huobi.py +0 -0
  356. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/huobijp.py +0 -0
  357. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/huobipro.py +0 -0
  358. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/idex.py +0 -0
  359. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/independentreserve.py +0 -0
  360. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/kraken.py +0 -0
  361. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/krakenfutures.py +0 -0
  362. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/kucoin.py +0 -0
  363. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/kucoinfutures.py +0 -0
  364. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/luno.py +0 -0
  365. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/mexc.py +0 -0
  366. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/mexc3.py +0 -0
  367. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/ndax.py +0 -0
  368. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/okcoin.py +0 -0
  369. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/okex.py +0 -0
  370. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/okx.py +0 -0
  371. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/phemex.py +0 -0
  372. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/poloniex.py +0 -0
  373. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/poloniexfutures.py +0 -0
  374. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/probit.py +0 -0
  375. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/upbit.py +0 -0
  376. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/wazirx.py +0 -0
  377. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/whitebit.py +0 -0
  378. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/pro/woo.py +0 -0
  379. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/probit.py +0 -0
  380. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/__init__.py +0 -0
  381. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  382. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  383. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  384. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  385. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  386. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  387. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  388. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  389. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  390. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  391. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  392. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  393. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/__init__.py +0 -0
  394. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/__init__.py +0 -0
  395. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_account.py +0 -0
  396. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_balance.py +0 -0
  397. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_borrow_interest.py +0 -0
  398. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_borrow_rate.py +0 -0
  399. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_calculate_fee.py +0 -0
  400. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_crypto.py +0 -0
  401. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_currency.py +0 -0
  402. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_datetime.py +0 -0
  403. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  404. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_deep_extend.py +0 -0
  405. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  406. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  407. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_funding_rate_history.py +0 -0
  408. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_ledger_entry.py +0 -0
  409. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_ledger_item.py +0 -0
  410. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_leverage_tier.py +0 -0
  411. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_margin_modification.py +0 -0
  412. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_market.py +0 -0
  413. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_number.py +0 -0
  414. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_ohlcv.py +0 -0
  415. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_open_interest.py +0 -0
  416. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_order.py +0 -0
  417. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_order_book.py +0 -0
  418. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_position.py +0 -0
  419. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_shared_methods.py +0 -0
  420. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_status.py +0 -0
  421. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_throttle.py +0 -0
  422. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_ticker.py +0 -0
  423. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_trade.py +0 -0
  424. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_trading_fee.py +0 -0
  425. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/base/test_transaction.py +0 -0
  426. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/test_async.py +0 -0
  427. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/test/test_sync.py +0 -0
  428. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/timex.py +0 -0
  429. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/tokocrypto.py +0 -0
  430. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/upbit.py +0 -0
  431. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/wavesexchange.py +0 -0
  432. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/wazirx.py +0 -0
  433. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/whitebit.py +0 -0
  434. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/woo.py +0 -0
  435. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/yobit.py +0 -0
  436. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/zaif.py +0 -0
  437. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt/zonda.py +0 -0
  438. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt.egg-info/SOURCES.txt +0 -0
  439. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt.egg-info/dependency_links.txt +0 -0
  440. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt.egg-info/requires.txt +0 -0
  441. {ccxt-4.1.83 → ccxt-4.1.85}/ccxt.egg-info/top_level.txt +0 -0
  442. {ccxt-4.1.83 → ccxt-4.1.85}/setup.cfg +0 -0
  443. {ccxt-4.1.83 → ccxt-4.1.85}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.1.83
3
+ Version: 4.1.85
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -56,6 +56,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
56
56
  | [![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) |
57
57
  | [![bitmex](https://user-images.githubusercontent.com/1294454/27766319-f653c6e6-5ed4-11e7-933d-f0bc3699ae8f.jpg)](https://www.bitmex.com/register/upZpOX) | bitmex | [BitMEX](https://www.bitmex.com/register/upZpOX) | [![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) | |
58
58
  | [![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) | |
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) | |
59
60
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/5835vstech) | cryptocom | [Crypto.com](https://crypto.com/exch/5835vstech) | [![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) | |
60
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) |
61
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) |
@@ -111,7 +112,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
111
112
  | [![coinbaseprime](https://user-images.githubusercontent.com/1294454/44539184-29f26e00-a70c-11e8-868f-e907fc236a7c.jpg)](https://exchange.coinbase.com) | coinbaseprime | [Coinbase Prime](https://exchange.coinbase.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.exchange.coinbase.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
112
113
  | [![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
114
  | [![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 Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
115
+ | [![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) |
115
116
  | [![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
117
  | [![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
118
  | [![coinone](https://user-images.githubusercontent.com/1294454/38003300-adc12fba-323f-11e8-8525-725f53c4a659.jpg)](https://coinone.co.kr) | coinone | [CoinOne](https://coinone.co.kr) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://doc.coinone.co.kr) | | |
@@ -222,13 +223,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
222
223
 
223
224
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
224
225
 
225
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js
226
- * unpkg: https://unpkg.com/ccxt@4.1.83/dist/ccxt.browser.js
226
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.85/dist/ccxt.browser.js
227
+ * unpkg: https://unpkg.com/ccxt@4.1.85/dist/ccxt.browser.js
227
228
 
228
229
  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.
229
230
 
230
231
  ```HTML
231
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.83/dist/ccxt.browser.js"></script>
232
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.85/dist/ccxt.browser.js"></script>
232
233
  ```
233
234
 
234
235
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.1.83'
25
+ __version__ = '4.1.85'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.83'
7
+ __version__ = '4.1.85'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.1.83'
5
+ __version__ = '4.1.85'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1016,6 +1016,9 @@ class Exchange(BaseExchange):
1016
1016
  async def close_all_positions(self, params={}):
1017
1017
  raise NotSupported(self.id + ' closeAllPositions() is not supported yet')
1018
1018
 
1019
+ async def fetch_l3_order_book(self, symbol: str, limit: Int = None, params={}):
1020
+ raise BadRequest(self.id + ' fetchL3OrderBook() is not supported yet')
1021
+
1019
1022
  async def fetch_deposit_address(self, code: str, params={}):
1020
1023
  if self.has['fetchDepositAddresses']:
1021
1024
  depositAddresses = await self.fetchDepositAddresses([code], params)
@@ -7939,7 +7939,7 @@ class binance(Exchange, ImplicitAPI):
7939
7939
  extendedParams = self.omit(extendedParams, ['orderidlist', 'origclientorderidlist'])
7940
7940
  query = self.rawencode(extendedParams)
7941
7941
  orderidlistLength = len(orderidlist)
7942
- origclientorderidlistLength = len(orderidlist)
7942
+ origclientorderidlistLength = len(origclientorderidlist)
7943
7943
  if orderidlistLength > 0:
7944
7944
  query = query + '&' + 'orderidlist=[' + ','.join(orderidlist) + ']'
7945
7945
  if origclientorderidlistLength > 0:
@@ -1913,6 +1913,8 @@ class bingx(Exchange, ImplicitAPI):
1913
1913
  positionSide = self.safe_string_2(order, 'positionSide', 'ps')
1914
1914
  marketType = 'spot' if (positionSide is None) else 'swap'
1915
1915
  marketId = self.safe_string_2(order, 'symbol', 's')
1916
+ if market is None:
1917
+ market = self.safe_market(marketId, None, None, marketType)
1916
1918
  symbol = self.safe_symbol(marketId, market, '-', marketType)
1917
1919
  orderId = self.safe_string_2(order, 'orderId', 'i')
1918
1920
  side = self.safe_string_lower_2(order, 'side', 'S')
@@ -2251,15 +2253,14 @@ class bingx(Exchange, ImplicitAPI):
2251
2253
  :param dict [params]: extra parameters specific to the exchange API endpoint
2252
2254
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2253
2255
  """
2254
- if symbol is None:
2255
- raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
2256
2256
  await self.load_markets()
2257
- market = self.market(symbol)
2258
- request = {
2259
- 'symbol': market['id'],
2260
- }
2257
+ market = None
2258
+ request = {}
2259
+ if symbol is not None:
2260
+ market = self.market(symbol)
2261
+ request['symbol'] = market['id']
2261
2262
  response = None
2262
- marketType, query = self.handle_market_type_and_params('fetchOrder', market, params)
2263
+ marketType, query = self.handle_market_type_and_params('fetchOpenOrders', market, params)
2263
2264
  if marketType == 'spot':
2264
2265
  response = await self.spotV1PrivateGetTradeOpenOrders(self.extend(request, query))
2265
2266
  else:
@@ -903,11 +903,11 @@ class bithumb(Exchange, ImplicitAPI):
903
903
  }
904
904
  return await self.privatePostTradeCancel(self.extend(request, params))
905
905
 
906
- def cancel_unified_order(self, order, params={}):
906
+ async def cancel_unified_order(self, order, params={}):
907
907
  request = {
908
908
  'side': order['side'],
909
909
  }
910
- return self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
910
+ return await self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
911
911
 
912
912
  async def withdraw(self, code: str, amount, address, tag=None, params={}):
913
913
  """
@@ -1308,48 +1308,58 @@ class bitmart(Exchange, ImplicitAPI):
1308
1308
  #
1309
1309
  # public fetchTrades spot( amount = count * price )
1310
1310
  #
1311
- # {
1312
- # "amount": "818.94",
1313
- # "order_time": "1637601839035", # ETH/USDT
1314
- # "price": "4221.99",
1315
- # "count": "0.19397",
1316
- # "type": "buy"
1317
- # }
1311
+ # {
1312
+ # "amount": "818.94",
1313
+ # "order_time": "1637601839035", # ETH/USDT
1314
+ # "price": "4221.99",
1315
+ # "count": "0.19397",
1316
+ # "type": "buy"
1317
+ # }
1318
1318
  #
1319
1319
  # spot: fetchMyTrades
1320
1320
  #
1321
- # {
1322
- # "tradeId":"182342999769370687",
1323
- # "orderId":"183270218784142990",
1324
- # "clientOrderId":"183270218784142990",
1325
- # "symbol":"ADA_USDT",
1326
- # "side":"buy",
1327
- # "orderMode":"spot",
1328
- # "type":"market",
1329
- # "price":"0.245948",
1330
- # "size":"20.71",
1331
- # "notional":"5.09358308",
1332
- # "fee":"0.00509358",
1333
- # "feeCoinName":"USDT",
1334
- # "tradeRole":"taker",
1335
- # "createTime":1695658457836,
1336
- # }
1321
+ # {
1322
+ # "tradeId":"182342999769370687",
1323
+ # "orderId":"183270218784142990",
1324
+ # "clientOrderId":"183270218784142990",
1325
+ # "symbol":"ADA_USDT",
1326
+ # "side":"buy",
1327
+ # "orderMode":"spot",
1328
+ # "type":"market",
1329
+ # "price":"0.245948",
1330
+ # "size":"20.71",
1331
+ # "notional":"5.09358308",
1332
+ # "fee":"0.00509358",
1333
+ # "feeCoinName":"USDT",
1334
+ # "tradeRole":"taker",
1335
+ # "createTime":1695658457836,
1336
+ # }
1337
1337
  #
1338
1338
  # swap: fetchMyTrades
1339
1339
  #
1340
- # {
1341
- # "order_id": "230930336848609",
1342
- # "trade_id": "6212604014",
1343
- # "symbol": "BTCUSDT",
1344
- # "side": 3,
1345
- # "price": "26910.4",
1346
- # "vol": "1",
1347
- # "exec_type": "Taker",
1348
- # "profit": False,
1349
- # "create_time": 1695961596692,
1350
- # "realised_profit": "-0.0003",
1351
- # "paid_fees": "0.01614624"
1352
- # }
1340
+ # {
1341
+ # "order_id": "230930336848609",
1342
+ # "trade_id": "6212604014",
1343
+ # "symbol": "BTCUSDT",
1344
+ # "side": 3,
1345
+ # "price": "26910.4",
1346
+ # "vol": "1",
1347
+ # "exec_type": "Taker",
1348
+ # "profit": False,
1349
+ # "create_time": 1695961596692,
1350
+ # "realised_profit": "-0.0003",
1351
+ # "paid_fees": "0.01614624"
1352
+ # }
1353
+ #
1354
+ # ws swap
1355
+ #
1356
+ # {
1357
+ # 'fee': '-0.000044502',
1358
+ # 'feeCcy': 'USDT',
1359
+ # 'fillPrice': '74.17',
1360
+ # 'fillQty': '1',
1361
+ # 'lastTradeID': 6802340762
1362
+ # }
1353
1363
  #
1354
1364
  timestamp = self.safe_integer_n(trade, ['order_time', 'createTime', 'create_time'])
1355
1365
  isPublicTrade = ('order_time' in trade)
@@ -1362,7 +1372,7 @@ class bitmart(Exchange, ImplicitAPI):
1362
1372
  cost = self.safe_string(trade, 'amount')
1363
1373
  side = self.safe_string(trade, 'type')
1364
1374
  else:
1365
- amount = self.safe_string_2(trade, 'size', 'vol')
1375
+ amount = self.safe_string_n(trade, ['size', 'vol', 'fillQty'])
1366
1376
  cost = self.safe_string(trade, 'notional')
1367
1377
  type = self.safe_string(trade, 'type')
1368
1378
  side = self.parse_order_side(self.safe_string(trade, 'side'))
@@ -1381,14 +1391,14 @@ class bitmart(Exchange, ImplicitAPI):
1381
1391
  }
1382
1392
  return self.safe_trade({
1383
1393
  'info': trade,
1384
- 'id': self.safe_string_2(trade, 'tradeId', 'trade_id'),
1394
+ 'id': self.safe_string_n(trade, ['tradeId', 'trade_id', 'lastTradeID']),
1385
1395
  'order': self.safe_string_2(trade, 'orderId', 'order_id'),
1386
1396
  'timestamp': timestamp,
1387
1397
  'datetime': self.iso8601(timestamp),
1388
1398
  'symbol': market['symbol'],
1389
1399
  'type': type,
1390
1400
  'side': side,
1391
- 'price': self.safe_string(trade, 'price'),
1401
+ 'price': self.safe_string_2(trade, 'price', 'fillPrice'),
1392
1402
  'amount': amount,
1393
1403
  'cost': cost,
1394
1404
  'takerOrMaker': self.safe_string_lower_2(trade, 'tradeRole', 'exec_type'),
@@ -1439,38 +1449,45 @@ class bitmart(Exchange, ImplicitAPI):
1439
1449
  def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
1440
1450
  #
1441
1451
  # spot
1442
- #
1443
- # [
1444
- # "1699512060", # timestamp
1445
- # "36746.49", # open
1446
- # "36758.71", # high
1447
- # "36736.13", # low
1448
- # "36755.99", # close
1449
- # "2.83965", # base volume
1450
- # "104353.57" # quote volume
1451
- # ]
1452
+ # [
1453
+ # "1699512060", # timestamp
1454
+ # "36746.49", # open
1455
+ # "36758.71", # high
1456
+ # "36736.13", # low
1457
+ # "36755.99", # close
1458
+ # "2.83965", # base volume
1459
+ # "104353.57" # quote volume
1460
+ # ]
1452
1461
  #
1453
1462
  # swap
1454
- #
1455
- # {
1456
- # "low_price": "20090.3",
1457
- # "high_price": "20095.5",
1458
- # "open_price": "20092.6",
1459
- # "close_price": "20091.4",
1460
- # "volume": "8748",
1461
- # "timestamp": 1665002281
1462
- # }
1463
+ # {
1464
+ # "low_price": "20090.3",
1465
+ # "high_price": "20095.5",
1466
+ # "open_price": "20092.6",
1467
+ # "close_price": "20091.4",
1468
+ # "volume": "8748",
1469
+ # "timestamp": 1665002281
1470
+ # }
1463
1471
  #
1464
1472
  # ws
1465
- #
1466
- # [
1467
- # 1631056350, # timestamp
1468
- # "46532.83", # open
1469
- # "46555.71", # high
1470
- # "46511.41", # low
1471
- # "46555.71", # close
1472
- # "0.25", # volume
1473
- # ]
1473
+ # [
1474
+ # 1631056350, # timestamp
1475
+ # "46532.83", # open
1476
+ # "46555.71", # high
1477
+ # "46511.41", # low
1478
+ # "46555.71", # close
1479
+ # "0.25", # volume
1480
+ # ]
1481
+ #
1482
+ # ws swap
1483
+ # {
1484
+ # "symbol":"BTCUSDT",
1485
+ # "o":"146.24",
1486
+ # "h":"146.24",
1487
+ # "l":"146.24",
1488
+ # "c":"146.24",
1489
+ # "v":"146"
1490
+ # }
1474
1491
  #
1475
1492
  if isinstance(ohlcv, list):
1476
1493
  return [
@@ -1483,12 +1500,12 @@ class bitmart(Exchange, ImplicitAPI):
1483
1500
  ]
1484
1501
  else:
1485
1502
  return [
1486
- self.safe_timestamp(ohlcv, 'timestamp'),
1487
- self.safe_number(ohlcv, 'open_price'),
1488
- self.safe_number(ohlcv, 'high_price'),
1489
- self.safe_number(ohlcv, 'low_price'),
1490
- self.safe_number(ohlcv, 'close_price'),
1491
- self.safe_number(ohlcv, 'volume'),
1503
+ self.safe_timestamp_2(ohlcv, 'timestamp', 'ts'),
1504
+ self.safe_number_2(ohlcv, 'open_price', 'o'),
1505
+ self.safe_number_2(ohlcv, 'high_price', 'h'),
1506
+ self.safe_number_2(ohlcv, 'low_price', 'l'),
1507
+ self.safe_number_2(ohlcv, 'close_price', 'c'),
1508
+ self.safe_number_2(ohlcv, 'volume', 'v'),
1492
1509
  ]
1493
1510
 
1494
1511
  async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
@@ -1191,11 +1191,11 @@ class bitopro(Exchange, ImplicitAPI):
1191
1191
  #
1192
1192
  return self.parse_orders(orders, market, since, limit)
1193
1193
 
1194
- def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1194
+ async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1195
1195
  request = {
1196
1196
  'statusKind': 'OPEN',
1197
1197
  }
1198
- return self.fetch_orders(symbol, since, limit, self.extend(request, params))
1198
+ return await self.fetch_orders(symbol, since, limit, self.extend(request, params))
1199
1199
 
1200
1200
  async def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1201
1201
  """
@@ -5367,8 +5367,10 @@ class bybit(Exchange, ImplicitAPI):
5367
5367
  raise ArgumentsRequired(self.id + ' fetchPositions() does not accept an array with more than one symbol')
5368
5368
  elif symbolsLength == 1:
5369
5369
  symbol = symbols[0]
5370
+ symbols = self.market_symbols(symbols)
5370
5371
  elif symbols is not None:
5371
5372
  symbol = symbols
5373
+ symbols = [self.symbol(symbol)]
5372
5374
  await self.load_markets()
5373
5375
  enableUnifiedMargin, enableUnifiedAccount = await self.is_unified_enabled()
5374
5376
  isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
@@ -5377,12 +5379,11 @@ class bybit(Exchange, ImplicitAPI):
5377
5379
  isUsdcSettled = False
5378
5380
  if symbol is not None:
5379
5381
  market = self.market(symbol)
5382
+ symbol = market['symbol']
5380
5383
  request['symbol'] = market['id']
5381
5384
  isUsdcSettled = market['settle'] == 'USDC'
5382
5385
  type = None
5383
5386
  type, params = self.get_bybit_type('fetchPositions', market, params)
5384
- if type == 'spot':
5385
- raise NotSupported(self.id + ' fetchPositions() not support spot market')
5386
5387
  if type == 'linear' or type == 'inverse':
5387
5388
  baseCoin = self.safe_string(params, 'baseCoin')
5388
5389
  if type == 'linear':
@@ -43,6 +43,7 @@ class coinex(Exchange, ImplicitAPI):
43
43
  # 20 per 2 seconds => 10 per second => weight = 40
44
44
  'rateLimit': 2.5,
45
45
  'pro': True,
46
+ 'certified': True,
46
47
  'has': {
47
48
  'CORS': None,
48
49
  'spot': True,
@@ -54,6 +54,9 @@ class coinsph(Exchange, ImplicitAPI):
54
54
  'closeAllPositions': False,
55
55
  'closePosition': False,
56
56
  'createDepositAddress': False,
57
+ 'createMarketBuyOrderWithCost': True,
58
+ 'createMarketOrderWithCost': False,
59
+ 'createMarketSellOrderWithCost': False,
57
60
  'createOrder': True,
58
61
  'createPostOnlyOrder': False,
59
62
  'createReduceOnlyOrder': False,
@@ -1028,12 +1031,14 @@ class coinsph(Exchange, ImplicitAPI):
1028
1031
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
1029
1032
  """
1030
1033
  create a trade order
1034
+ :see: https://coins-docs.github.io/rest-api/#new-order--trade
1031
1035
  :param str symbol: unified symbol of the market to create an order in
1032
1036
  :param str type: 'market', 'limit', 'stop_loss', 'take_profit', 'stop_loss_limit', 'take_profit_limit' or 'limit_maker'
1033
1037
  :param str side: 'buy' or 'sell'
1034
1038
  :param float amount: how much of currency you want to trade in units of base currency
1035
1039
  :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1036
1040
  :param dict [params]: extra parameters specific to the exchange API endpoint
1041
+ :param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
1037
1042
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1038
1043
  """
1039
1044
  # todo: add test order low priority
@@ -1065,20 +1070,24 @@ class coinsph(Exchange, ImplicitAPI):
1065
1070
  if orderSide == 'SELL':
1066
1071
  request['quantity'] = self.amount_to_precision(symbol, amount)
1067
1072
  elif orderSide == 'BUY':
1068
- quoteOrderQty = self.safe_number_2(params, 'cost', 'quoteOrderQty')
1069
- createMarketBuyOrderRequiresPrice = self.safe_value(self.options, 'createMarketBuyOrderRequiresPrice', True)
1070
- if quoteOrderQty is not None:
1071
- amount = quoteOrderQty
1073
+ quoteAmount = None
1074
+ createMarketBuyOrderRequiresPrice = True
1075
+ createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
1076
+ cost = self.safe_number_2(params, 'cost', 'quoteOrderQty')
1077
+ params = self.omit(params, 'cost')
1078
+ if cost is not None:
1079
+ quoteAmount = self.cost_to_precision(symbol, cost)
1072
1080
  elif createMarketBuyOrderRequiresPrice:
1073
1081
  if price is None:
1074
- raise InvalidOrder(self.id + " createOrder() requires the price argument with market buy orders to calculate total order cost(amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = False to supply the cost in the amount argument(the exchange-specific behaviour)")
1082
+ raise InvalidOrder(self.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
1075
1083
  else:
1076
1084
  amountString = self.number_to_string(amount)
1077
1085
  priceString = self.number_to_string(price)
1078
- quoteAmount = Precise.string_mul(amountString, priceString)
1079
- amount = self.parse_number(quoteAmount)
1080
- request['quoteOrderQty'] = self.cost_to_precision(symbol, amount)
1081
- params = self.omit(params, 'cost', 'quoteOrderQty')
1086
+ costRequest = Precise.string_mul(amountString, priceString)
1087
+ quoteAmount = self.cost_to_precision(symbol, costRequest)
1088
+ else:
1089
+ quoteAmount = self.cost_to_precision(symbol, amount)
1090
+ request['quoteOrderQty'] = quoteAmount
1082
1091
  if orderType == 'STOP_LOSS' or orderType == 'STOP_LOSS_LIMIT' or orderType == 'TAKE_PROFIT' or orderType == 'TAKE_PROFIT_LIMIT':
1083
1092
  stopPrice = self.safe_string_2(params, 'triggerPrice', 'stopPrice')
1084
1093
  if stopPrice is None:
@@ -57,6 +57,9 @@ class htx(Exchange, ImplicitAPI):
57
57
  'cancelOrder': True,
58
58
  'cancelOrders': True,
59
59
  'createDepositAddress': None,
60
+ 'createMarketBuyOrderWithCost': True,
61
+ 'createMarketOrderWithCost': False,
62
+ 'createMarketSellOrderWithCost': False,
60
63
  'createOrder': True,
61
64
  'createOrders': True,
62
65
  'createReduceOnlyOrder': False,
@@ -4536,6 +4539,22 @@ class htx(Exchange, ImplicitAPI):
4536
4539
  'trades': trades,
4537
4540
  }, market)
4538
4541
 
4542
+ async def create_market_buy_order_with_cost(self, symbol: str, cost, params={}):
4543
+ """
4544
+ create a market buy order by providing the symbol and cost
4545
+ :see: https://www.htx.com/en-us/opend/newApiPages/?id=7ec4ee16-7773-11ed-9966-0242ac110003
4546
+ :param str symbol: unified symbol of the market to create an order in
4547
+ :param float cost: how much you want to trade in units of the quote currency
4548
+ :param dict [params]: extra parameters specific to the exchange API endpoint
4549
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4550
+ """
4551
+ await self.load_markets()
4552
+ market = self.market(symbol)
4553
+ if not market['spot']:
4554
+ raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
4555
+ params['createMarketBuyOrderRequiresPrice'] = False
4556
+ return await self.create_order(symbol, 'market', 'buy', cost, None, params)
4557
+
4539
4558
  async def create_spot_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
4540
4559
  """
4541
4560
  * @ignore
@@ -4547,6 +4566,7 @@ class htx(Exchange, ImplicitAPI):
4547
4566
  :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
4548
4567
  :param dict [params]: extra parameters specific to the exchange API endpoint
4549
4568
  :param str [params.timeInForce]: supports 'IOC' and 'FOK'
4569
+ :param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
4550
4570
  :returns dict: request to be sent to the exchange
4551
4571
  """
4552
4572
  await self.load_markets()
@@ -4608,9 +4628,16 @@ class htx(Exchange, ImplicitAPI):
4608
4628
  elif marginMode == 'c2c':
4609
4629
  request['source'] = 'c2c-margin-api'
4610
4630
  if (orderType == 'market') and (side == 'buy'):
4611
- if self.options['createMarketBuyOrderRequiresPrice']:
4631
+ quoteAmount = None
4632
+ createMarketBuyOrderRequiresPrice = True
4633
+ createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
4634
+ cost = self.safe_number(params, 'cost')
4635
+ params = self.omit(params, 'cost')
4636
+ if cost is not None:
4637
+ quoteAmount = self.amount_to_precision(symbol, cost)
4638
+ elif createMarketBuyOrderRequiresPrice:
4612
4639
  if price is None:
4613
- raise InvalidOrder(self.id + " market buy order requires price argument to calculate cost(total amount of quote currency to spend for buying, amount * price). To switch off self warning exception and specify cost in the amount argument, set .options['createMarketBuyOrderRequiresPrice'] = False. Make sure you know what you're doing.")
4640
+ raise InvalidOrder(self.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
4614
4641
  else:
4615
4642
  # despite that cost = amount * price is in quote currency and should have quote precision
4616
4643
  # the exchange API requires the cost supplied in 'amount' to be of base precision
@@ -4620,9 +4647,10 @@ class htx(Exchange, ImplicitAPI):
4620
4647
  # we use amountToPrecision here because the exchange requires cost in base precision
4621
4648
  amountString = self.number_to_string(amount)
4622
4649
  priceString = self.number_to_string(price)
4623
- request['amount'] = self.cost_to_precision(symbol, Precise.string_mul(amountString, priceString))
4650
+ quoteAmount = self.amount_to_precision(symbol, Precise.string_mul(amountString, priceString))
4624
4651
  else:
4625
- request['amount'] = self.cost_to_precision(symbol, amount)
4652
+ quoteAmount = self.amount_to_precision(symbol, amount)
4653
+ request['amount'] = quoteAmount
4626
4654
  else:
4627
4655
  request['amount'] = self.amount_to_precision(symbol, amount)
4628
4656
  limitOrderTypes = self.safe_value(options, 'limitOrderTypes', {})
@@ -4732,6 +4760,7 @@ class htx(Exchange, ImplicitAPI):
4732
4760
  :param bool [params.postOnly]: *contract only* True or False
4733
4761
  :param int [params.leverRate]: *contract only* required for all contract orders except tpsl, leverage greater than 20x requires prior approval of high-leverage agreement
4734
4762
  :param str [params.timeInForce]: supports 'IOC' and 'FOK'
4763
+ :param float [params.cost]: *spot market buy only* the quote quantity that can be used alternative for the amount
4735
4764
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4736
4765
  """
4737
4766
  await self.load_markets()