ccxt 4.3.4__tar.gz → 4.3.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. {ccxt-4.3.4/ccxt.egg-info → ccxt-4.3.6}/PKG-INFO +4 -4
  2. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/binance.py +1 -0
  4. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/binancecoinm.py +1 -0
  5. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/binanceus.py +1 -0
  6. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/binanceusdm.py +1 -0
  7. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bingx.py +1 -0
  8. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/whitebit.py +22 -1
  9. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/woo.py +1 -0
  10. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/__init__.py +1 -1
  11. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/exchange.py +227 -36
  12. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/binance.py +21 -14
  13. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bingx.py +40 -0
  14. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitmex.py +22 -0
  15. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bybit.py +81 -1
  16. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinbase.py +4 -4
  17. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinex.py +29 -32
  18. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/cryptocom.py +30 -1
  19. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/htx.py +26 -0
  20. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/hyperliquid.py +37 -0
  21. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/kraken.py +27 -0
  22. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/krakenfutures.py +26 -0
  23. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/kucoin.py +52 -4
  24. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/kucoinfutures.py +2 -2
  25. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/okx.py +104 -1
  26. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/whitebit.py +149 -2
  27. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/woo.py +27 -0
  28. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/exchange.py +233 -4
  29. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/binance.py +21 -14
  30. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bingx.py +40 -0
  31. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitmex.py +22 -0
  32. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bybit.py +81 -1
  33. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinbase.py +4 -4
  34. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinex.py +29 -32
  35. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/cryptocom.py +30 -1
  36. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/htx.py +26 -0
  37. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/hyperliquid.py +37 -0
  38. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/kraken.py +27 -0
  39. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/krakenfutures.py +26 -0
  40. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/kucoin.py +52 -4
  41. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/kucoinfutures.py +2 -2
  42. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/okx.py +104 -1
  43. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/__init__.py +1 -1
  44. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/binance.py +410 -73
  45. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitget.py +1 -1
  46. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/cex.py +1 -1
  47. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/lbank.py +1 -1
  48. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/woo.py +0 -1
  49. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/test_async.py +17 -17
  50. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/test_sync.py +17 -17
  51. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/whitebit.py +149 -2
  52. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/woo.py +27 -0
  53. {ccxt-4.3.4 → ccxt-4.3.6/ccxt.egg-info}/PKG-INFO +4 -4
  54. {ccxt-4.3.4 → ccxt-4.3.6}/package.json +1 -1
  55. {ccxt-4.3.4 → ccxt-4.3.6}/LICENSE.txt +0 -0
  56. {ccxt-4.3.4 → ccxt-4.3.6}/MANIFEST.in +0 -0
  57. {ccxt-4.3.4 → ccxt-4.3.6}/README.rst +0 -0
  58. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/__init__.py +0 -0
  59. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/ace.py +0 -0
  60. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/alpaca.py +0 -0
  61. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/ascendex.py +0 -0
  62. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bequant.py +0 -0
  63. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bigone.py +0 -0
  64. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bit2c.py +0 -0
  65. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitbank.py +0 -0
  66. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitbay.py +0 -0
  67. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitbns.py +0 -0
  68. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitcoincom.py +0 -0
  69. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitfinex.py +0 -0
  70. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitfinex2.py +0 -0
  71. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitflyer.py +0 -0
  72. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitget.py +0 -0
  73. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bithumb.py +0 -0
  74. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitmart.py +0 -0
  75. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitmex.py +0 -0
  76. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitopro.py +0 -0
  77. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitpanda.py +0 -0
  78. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitrue.py +0 -0
  79. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitso.py +0 -0
  80. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitstamp.py +0 -0
  81. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitteam.py +0 -0
  82. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bitvavo.py +0 -0
  83. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bl3p.py +0 -0
  84. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/blockchaincom.py +0 -0
  85. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/blofin.py +0 -0
  86. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/btcalpha.py +0 -0
  87. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/btcbox.py +0 -0
  88. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/btcmarkets.py +0 -0
  89. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/btcturk.py +0 -0
  90. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/bybit.py +0 -0
  91. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/cex.py +0 -0
  92. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinbase.py +0 -0
  93. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinbaseinternational.py +0 -0
  94. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinbasepro.py +0 -0
  95. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coincheck.py +0 -0
  96. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinex.py +0 -0
  97. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinlist.py +0 -0
  98. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinmate.py +0 -0
  99. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinmetro.py +0 -0
  100. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinone.py +0 -0
  101. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinsph.py +0 -0
  102. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/coinspot.py +0 -0
  103. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/cryptocom.py +0 -0
  104. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/currencycom.py +0 -0
  105. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/delta.py +0 -0
  106. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/deribit.py +0 -0
  107. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/digifinex.py +0 -0
  108. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/exmo.py +0 -0
  109. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/fmfwio.py +0 -0
  110. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/gate.py +0 -0
  111. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/gateio.py +0 -0
  112. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/gemini.py +0 -0
  113. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/hitbtc.py +0 -0
  114. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/hitbtc3.py +0 -0
  115. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/hollaex.py +0 -0
  116. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/htx.py +0 -0
  117. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/huobi.py +0 -0
  118. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/huobijp.py +0 -0
  119. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/hyperliquid.py +0 -0
  120. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/idex.py +0 -0
  121. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/independentreserve.py +0 -0
  122. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/indodax.py +0 -0
  123. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/kraken.py +0 -0
  124. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/krakenfutures.py +0 -0
  125. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/kucoin.py +0 -0
  126. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/kucoinfutures.py +0 -0
  127. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/kuna.py +0 -0
  128. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/latoken.py +0 -0
  129. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/lbank.py +0 -0
  130. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/luno.py +0 -0
  131. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/lykke.py +0 -0
  132. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/mercado.py +0 -0
  133. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/mexc.py +0 -0
  134. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/ndax.py +0 -0
  135. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/novadax.py +0 -0
  136. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/oceanex.py +0 -0
  137. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/okcoin.py +0 -0
  138. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/okx.py +0 -0
  139. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/onetrading.py +0 -0
  140. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/p2b.py +0 -0
  141. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/paymium.py +0 -0
  142. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/phemex.py +0 -0
  143. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/poloniex.py +0 -0
  144. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/poloniexfutures.py +0 -0
  145. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/probit.py +0 -0
  146. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/timex.py +0 -0
  147. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/tokocrypto.py +0 -0
  148. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/tradeogre.py +0 -0
  149. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/upbit.py +0 -0
  150. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/wavesexchange.py +0 -0
  151. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/wazirx.py +0 -0
  152. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/yobit.py +0 -0
  153. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/zaif.py +0 -0
  154. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/abstract/zonda.py +0 -0
  155. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/ace.py +0 -0
  156. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/alpaca.py +0 -0
  157. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/ascendex.py +0 -0
  158. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/ace.py +0 -0
  159. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/alpaca.py +0 -0
  160. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/ascendex.py +0 -0
  161. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/__init__.py +0 -0
  162. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/throttler.py +0 -0
  163. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/__init__.py +0 -0
  164. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  165. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/cache.py +0 -0
  166. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/client.py +0 -0
  167. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/fast_client.py +0 -0
  168. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/functions.py +0 -0
  169. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/future.py +0 -0
  170. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/order_book.py +0 -0
  171. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  172. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bequant.py +0 -0
  173. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bigone.py +0 -0
  174. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/binancecoinm.py +0 -0
  175. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/binanceus.py +0 -0
  176. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/binanceusdm.py +0 -0
  177. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bit2c.py +0 -0
  178. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitbank.py +0 -0
  179. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitbay.py +0 -0
  180. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitbns.py +0 -0
  181. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitcoincom.py +0 -0
  182. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitfinex.py +0 -0
  183. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitfinex2.py +0 -0
  184. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitflyer.py +0 -0
  185. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitget.py +0 -0
  186. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bithumb.py +0 -0
  187. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitmart.py +0 -0
  188. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitopro.py +0 -0
  189. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitpanda.py +0 -0
  190. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitrue.py +0 -0
  191. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitso.py +0 -0
  192. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitstamp.py +0 -0
  193. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitteam.py +0 -0
  194. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bitvavo.py +0 -0
  195. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/bl3p.py +0 -0
  196. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/blockchaincom.py +0 -0
  197. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/blofin.py +0 -0
  198. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/btcalpha.py +0 -0
  199. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/btcbox.py +0 -0
  200. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/btcmarkets.py +0 -0
  201. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/btcturk.py +0 -0
  202. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/cex.py +0 -0
  203. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinbaseinternational.py +0 -0
  204. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinbasepro.py +0 -0
  205. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coincheck.py +0 -0
  206. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinlist.py +0 -0
  207. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinmate.py +0 -0
  208. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinmetro.py +0 -0
  209. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinone.py +0 -0
  210. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinsph.py +0 -0
  211. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/coinspot.py +0 -0
  212. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/currencycom.py +0 -0
  213. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/delta.py +0 -0
  214. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/deribit.py +0 -0
  215. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/digifinex.py +0 -0
  216. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/exmo.py +0 -0
  217. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/flowbtc.py +0 -0
  218. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/fmfwio.py +0 -0
  219. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/gate.py +0 -0
  220. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/gateio.py +0 -0
  221. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/gemini.py +0 -0
  222. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/hitbtc.py +0 -0
  223. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/hitbtc3.py +0 -0
  224. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/hollaex.py +0 -0
  225. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/huobi.py +0 -0
  226. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/huobijp.py +0 -0
  227. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/idex.py +0 -0
  228. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/independentreserve.py +0 -0
  229. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/indodax.py +0 -0
  230. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/kuna.py +0 -0
  231. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/latoken.py +0 -0
  232. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/lbank.py +0 -0
  233. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/luno.py +0 -0
  234. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/lykke.py +0 -0
  235. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/mercado.py +0 -0
  236. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/mexc.py +0 -0
  237. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/ndax.py +0 -0
  238. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/novadax.py +0 -0
  239. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/oceanex.py +0 -0
  240. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/okcoin.py +0 -0
  241. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/onetrading.py +0 -0
  242. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/p2b.py +0 -0
  243. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/paymium.py +0 -0
  244. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/phemex.py +0 -0
  245. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/poloniex.py +0 -0
  246. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/poloniexfutures.py +0 -0
  247. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/probit.py +0 -0
  248. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/timex.py +0 -0
  249. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/tokocrypto.py +0 -0
  250. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/tradeogre.py +0 -0
  251. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/upbit.py +0 -0
  252. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/wavesexchange.py +0 -0
  253. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/wazirx.py +0 -0
  254. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/yobit.py +0 -0
  255. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/zaif.py +0 -0
  256. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/async_support/zonda.py +0 -0
  257. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/__init__.py +0 -0
  258. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/decimal_to_precision.py +0 -0
  259. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/errors.py +0 -0
  260. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/precise.py +0 -0
  261. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/base/types.py +0 -0
  262. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bequant.py +0 -0
  263. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bigone.py +0 -0
  264. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/binancecoinm.py +0 -0
  265. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/binanceus.py +0 -0
  266. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/binanceusdm.py +0 -0
  267. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bit2c.py +0 -0
  268. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitbank.py +0 -0
  269. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitbay.py +0 -0
  270. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitbns.py +0 -0
  271. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitcoincom.py +0 -0
  272. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitfinex.py +0 -0
  273. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitfinex2.py +0 -0
  274. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitflyer.py +0 -0
  275. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitget.py +0 -0
  276. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bithumb.py +0 -0
  277. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitmart.py +0 -0
  278. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitopro.py +0 -0
  279. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitpanda.py +0 -0
  280. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitrue.py +0 -0
  281. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitso.py +0 -0
  282. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitstamp.py +0 -0
  283. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitteam.py +0 -0
  284. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bitvavo.py +0 -0
  285. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/bl3p.py +0 -0
  286. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/blockchaincom.py +0 -0
  287. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/blofin.py +0 -0
  288. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/btcalpha.py +0 -0
  289. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/btcbox.py +0 -0
  290. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/btcmarkets.py +0 -0
  291. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/btcturk.py +0 -0
  292. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/cex.py +0 -0
  293. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinbaseinternational.py +0 -0
  294. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinbasepro.py +0 -0
  295. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coincheck.py +0 -0
  296. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinlist.py +0 -0
  297. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinmate.py +0 -0
  298. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinmetro.py +0 -0
  299. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinone.py +0 -0
  300. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinsph.py +0 -0
  301. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/coinspot.py +0 -0
  302. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/currencycom.py +0 -0
  303. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/delta.py +0 -0
  304. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/deribit.py +0 -0
  305. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/digifinex.py +0 -0
  306. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/exmo.py +0 -0
  307. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/flowbtc.py +0 -0
  308. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/fmfwio.py +0 -0
  309. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/gate.py +0 -0
  310. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/gateio.py +0 -0
  311. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/gemini.py +0 -0
  312. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/hitbtc.py +0 -0
  313. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/hitbtc3.py +0 -0
  314. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/hollaex.py +0 -0
  315. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/huobi.py +0 -0
  316. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/huobijp.py +0 -0
  317. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/idex.py +0 -0
  318. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/independentreserve.py +0 -0
  319. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/indodax.py +0 -0
  320. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/kuna.py +0 -0
  321. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/latoken.py +0 -0
  322. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/lbank.py +0 -0
  323. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/luno.py +0 -0
  324. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/lykke.py +0 -0
  325. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/mercado.py +0 -0
  326. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/mexc.py +0 -0
  327. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/ndax.py +0 -0
  328. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/novadax.py +0 -0
  329. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/oceanex.py +0 -0
  330. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/okcoin.py +0 -0
  331. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/onetrading.py +0 -0
  332. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/p2b.py +0 -0
  333. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/paymium.py +0 -0
  334. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/phemex.py +0 -0
  335. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/poloniex.py +0 -0
  336. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/poloniexfutures.py +0 -0
  337. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/alpaca.py +0 -0
  338. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/ascendex.py +0 -0
  339. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bequant.py +0 -0
  340. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/binancecoinm.py +0 -0
  341. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/binanceus.py +0 -0
  342. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/binanceusdm.py +0 -0
  343. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bingx.py +0 -0
  344. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitcoincom.py +0 -0
  345. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitfinex.py +0 -0
  346. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitfinex2.py +0 -0
  347. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bithumb.py +0 -0
  348. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitmart.py +0 -0
  349. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitmex.py +0 -0
  350. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitopro.py +0 -0
  351. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitpanda.py +0 -0
  352. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitrue.py +0 -0
  353. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitstamp.py +0 -0
  354. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bitvavo.py +0 -0
  355. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/blockchaincom.py +0 -0
  356. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/bybit.py +0 -0
  357. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coinbase.py +0 -0
  358. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coinbaseinternational.py +0 -0
  359. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coinbasepro.py +0 -0
  360. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coincheck.py +0 -0
  361. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coinex.py +0 -0
  362. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/coinone.py +0 -0
  363. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/cryptocom.py +0 -0
  364. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/currencycom.py +0 -0
  365. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/deribit.py +0 -0
  366. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/exmo.py +0 -0
  367. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/gate.py +0 -0
  368. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/gateio.py +0 -0
  369. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/gemini.py +0 -0
  370. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/hitbtc.py +0 -0
  371. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/hollaex.py +0 -0
  372. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/htx.py +0 -0
  373. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/huobi.py +0 -0
  374. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/huobijp.py +0 -0
  375. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/hyperliquid.py +0 -0
  376. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/idex.py +0 -0
  377. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/independentreserve.py +0 -0
  378. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/kraken.py +0 -0
  379. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/krakenfutures.py +0 -0
  380. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/kucoin.py +0 -0
  381. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/kucoinfutures.py +0 -0
  382. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/luno.py +0 -0
  383. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/mexc.py +0 -0
  384. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/ndax.py +0 -0
  385. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/okcoin.py +0 -0
  386. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/okx.py +0 -0
  387. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/onetrading.py +0 -0
  388. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/p2b.py +0 -0
  389. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/phemex.py +0 -0
  390. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/poloniex.py +0 -0
  391. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/poloniexfutures.py +0 -0
  392. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/probit.py +0 -0
  393. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/upbit.py +0 -0
  394. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/wazirx.py +0 -0
  395. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/pro/whitebit.py +0 -0
  396. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/probit.py +0 -0
  397. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/__init__.py +0 -0
  398. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  399. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  400. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  401. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  402. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  403. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  404. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  405. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  406. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  407. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  408. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  409. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  410. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  411. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  412. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  413. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  414. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  415. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  416. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  417. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  418. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  419. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  420. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  421. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  422. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  423. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  424. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  425. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  426. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  427. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  428. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  429. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  430. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  431. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  432. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  433. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  434. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  435. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  436. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  437. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  438. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  439. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  440. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  441. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  442. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  443. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  444. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  445. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  446. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  447. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  448. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  449. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  450. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  451. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  452. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  453. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  454. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  455. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  456. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  457. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  458. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  459. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  460. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  461. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  462. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  463. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  464. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  465. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  466. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  467. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  468. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  469. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  470. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  471. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  472. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  473. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  474. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  475. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  476. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  477. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  478. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  479. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  480. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  481. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  482. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  483. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  484. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/_version.py +0 -0
  485. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  486. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  487. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  488. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  489. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  490. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  491. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  492. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  493. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/static_dependencies/toolz/utils.py +0 -0
  494. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/__init__.py +0 -0
  495. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/__init__.py +0 -0
  496. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_account.py +0 -0
  497. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_balance.py +0 -0
  498. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_borrow_interest.py +0 -0
  499. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_borrow_rate.py +0 -0
  500. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_calculate_fee.py +0 -0
  501. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_crypto.py +0 -0
  502. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_currency.py +0 -0
  503. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_datetime.py +0 -0
  504. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  505. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_deep_extend.py +0 -0
  506. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  507. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  508. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_funding_rate_history.py +0 -0
  509. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_last_price.py +0 -0
  510. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_ledger_entry.py +0 -0
  511. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_ledger_item.py +0 -0
  512. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_leverage_tier.py +0 -0
  513. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_margin_mode.py +0 -0
  514. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_margin_modification.py +0 -0
  515. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_market.py +0 -0
  516. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_number.py +0 -0
  517. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_ohlcv.py +0 -0
  518. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_open_interest.py +0 -0
  519. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_order.py +0 -0
  520. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_order_book.py +0 -0
  521. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_position.py +0 -0
  522. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_shared_methods.py +0 -0
  523. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_status.py +0 -0
  524. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_throttle.py +0 -0
  525. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_ticker.py +0 -0
  526. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_trade.py +0 -0
  527. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_trading_fee.py +0 -0
  528. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/test/base/test_transaction.py +0 -0
  529. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/timex.py +0 -0
  530. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/tokocrypto.py +0 -0
  531. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/tradeogre.py +0 -0
  532. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/upbit.py +0 -0
  533. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/wavesexchange.py +0 -0
  534. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/wazirx.py +0 -0
  535. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/yobit.py +0 -0
  536. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/zaif.py +0 -0
  537. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt/zonda.py +0 -0
  538. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt.egg-info/SOURCES.txt +0 -0
  539. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt.egg-info/dependency_links.txt +0 -0
  540. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt.egg-info/requires.txt +0 -0
  541. {ccxt-4.3.4 → ccxt-4.3.6}/ccxt.egg-info/top_level.txt +0 -0
  542. {ccxt-4.3.4 → ccxt-4.3.6}/setup.cfg +0 -0
  543. {ccxt-4.3.4 → ccxt-4.3.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.4
3
+ Version: 4.3.6
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
@@ -226,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
226
226
 
227
227
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
228
228
 
229
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.4/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.3.4/dist/ccxt.browser.js
229
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.6/dist/ccxt.browser.js
230
+ * unpkg: https://unpkg.com/ccxt@4.3.6/dist/ccxt.browser.js
231
231
 
232
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.
233
233
 
234
234
  ```HTML
235
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.4/dist/ccxt.browser.js"></script>
235
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.6/dist/ccxt.browser.js"></script>
236
236
  ```
237
237
 
238
238
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.4'
25
+ __version__ = '4.3.6'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  sapi_get_capital_deposit_subaddress = sapiGetCapitalDepositSubAddress = Entry('capital/deposit/subAddress', 'sapi', 'GET', {'cost': 0.1})
88
88
  sapi_get_capital_deposit_subhisrec = sapiGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', 'sapi', 'GET', {'cost': 0.1})
89
89
  sapi_get_capital_withdraw_history = sapiGetCapitalWithdrawHistory = Entry('capital/withdraw/history', 'sapi', 'GET', {'cost': 1800})
90
+ sapi_get_capital_withdraw_address_list = sapiGetCapitalWithdrawAddressList = Entry('capital/withdraw/address/list', 'sapi', 'GET', {'cost': 10})
90
91
  sapi_get_capital_contract_convertible_coins = sapiGetCapitalContractConvertibleCoins = Entry('capital/contract/convertible-coins', 'sapi', 'GET', {'cost': 4.0002})
91
92
  sapi_get_convert_tradeflow = sapiGetConvertTradeFlow = Entry('convert/tradeFlow', 'sapi', 'GET', {'cost': 20.001})
92
93
  sapi_get_convert_exchangeinfo = sapiGetConvertExchangeInfo = Entry('convert/exchangeInfo', 'sapi', 'GET', {'cost': 50})
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  sapi_get_capital_deposit_subaddress = sapiGetCapitalDepositSubAddress = Entry('capital/deposit/subAddress', 'sapi', 'GET', {'cost': 0.1})
88
88
  sapi_get_capital_deposit_subhisrec = sapiGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', 'sapi', 'GET', {'cost': 0.1})
89
89
  sapi_get_capital_withdraw_history = sapiGetCapitalWithdrawHistory = Entry('capital/withdraw/history', 'sapi', 'GET', {'cost': 1800})
90
+ sapi_get_capital_withdraw_address_list = sapiGetCapitalWithdrawAddressList = Entry('capital/withdraw/address/list', 'sapi', 'GET', {'cost': 10})
90
91
  sapi_get_capital_contract_convertible_coins = sapiGetCapitalContractConvertibleCoins = Entry('capital/contract/convertible-coins', 'sapi', 'GET', {'cost': 4.0002})
91
92
  sapi_get_convert_tradeflow = sapiGetConvertTradeFlow = Entry('convert/tradeFlow', 'sapi', 'GET', {'cost': 20.001})
92
93
  sapi_get_convert_exchangeinfo = sapiGetConvertExchangeInfo = Entry('convert/exchangeInfo', 'sapi', 'GET', {'cost': 50})
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  sapi_get_capital_deposit_subaddress = sapiGetCapitalDepositSubAddress = Entry('capital/deposit/subAddress', 'sapi', 'GET', {'cost': 0.1})
88
88
  sapi_get_capital_deposit_subhisrec = sapiGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', 'sapi', 'GET', {'cost': 0.1})
89
89
  sapi_get_capital_withdraw_history = sapiGetCapitalWithdrawHistory = Entry('capital/withdraw/history', 'sapi', 'GET', {'cost': 1800})
90
+ sapi_get_capital_withdraw_address_list = sapiGetCapitalWithdrawAddressList = Entry('capital/withdraw/address/list', 'sapi', 'GET', {'cost': 10})
90
91
  sapi_get_capital_contract_convertible_coins = sapiGetCapitalContractConvertibleCoins = Entry('capital/contract/convertible-coins', 'sapi', 'GET', {'cost': 4.0002})
91
92
  sapi_get_convert_tradeflow = sapiGetConvertTradeFlow = Entry('convert/tradeFlow', 'sapi', 'GET', {'cost': 20.001})
92
93
  sapi_get_convert_exchangeinfo = sapiGetConvertExchangeInfo = Entry('convert/exchangeInfo', 'sapi', 'GET', {'cost': 50})
@@ -87,6 +87,7 @@ class ImplicitAPI:
87
87
  sapi_get_capital_deposit_subaddress = sapiGetCapitalDepositSubAddress = Entry('capital/deposit/subAddress', 'sapi', 'GET', {'cost': 0.1})
88
88
  sapi_get_capital_deposit_subhisrec = sapiGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', 'sapi', 'GET', {'cost': 0.1})
89
89
  sapi_get_capital_withdraw_history = sapiGetCapitalWithdrawHistory = Entry('capital/withdraw/history', 'sapi', 'GET', {'cost': 1800})
90
+ sapi_get_capital_withdraw_address_list = sapiGetCapitalWithdrawAddressList = Entry('capital/withdraw/address/list', 'sapi', 'GET', {'cost': 10})
90
91
  sapi_get_capital_contract_convertible_coins = sapiGetCapitalContractConvertibleCoins = Entry('capital/contract/convertible-coins', 'sapi', 'GET', {'cost': 4.0002})
91
92
  sapi_get_convert_tradeflow = sapiGetConvertTradeFlow = Entry('convert/tradeFlow', 'sapi', 'GET', {'cost': 20.001})
92
93
  sapi_get_convert_exchangeinfo = sapiGetConvertExchangeInfo = Entry('convert/exchangeInfo', 'sapi', 'GET', {'cost': 50})
@@ -62,6 +62,7 @@ class ImplicitAPI:
62
62
  swap_v2_private_post_trade_order = swapV2PrivatePostTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
63
63
  swap_v2_private_post_trade_batchorders = swapV2PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
64
64
  swap_v2_private_post_trade_closeallpositions = swapV2PrivatePostTradeCloseAllPositions = Entry('trade/closeAllPositions', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
65
+ swap_v2_private_post_trade_cancelallafter = swapV2PrivatePostTradeCancelAllAfter = Entry('trade/cancelAllAfter', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
65
66
  swap_v2_private_post_trade_margintype = swapV2PrivatePostTradeMarginType = Entry('trade/marginType', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
66
67
  swap_v2_private_post_trade_leverage = swapV2PrivatePostTradeLeverage = Entry('trade/leverage', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
67
68
  swap_v2_private_post_trade_positionmargin = swapV2PrivatePostTradePositionMargin = Entry('trade/positionMargin', ['swap', 'v2', 'private'], 'POST', {'cost': 3})
@@ -34,7 +34,9 @@ class ImplicitAPI:
34
34
  v4_public_get_ping = v4PublicGetPing = Entry('ping', ['v4', 'public'], 'GET', {})
35
35
  v4_public_get_markets = v4PublicGetMarkets = Entry('markets', ['v4', 'public'], 'GET', {})
36
36
  v4_public_get_futures = v4PublicGetFutures = Entry('futures', ['v4', 'public'], 'GET', {})
37
+ v4_public_get_platform_status = v4PublicGetPlatformStatus = Entry('platform/status', ['v4', 'public'], 'GET', {})
37
38
  v4_private_post_collateral_account_balance = v4PrivatePostCollateralAccountBalance = Entry('collateral-account/balance', ['v4', 'private'], 'POST', {})
39
+ v4_private_post_collateral_account_balance_summary = v4PrivatePostCollateralAccountBalanceSummary = Entry('collateral-account/balance-summary', ['v4', 'private'], 'POST', {})
38
40
  v4_private_post_collateral_account_positions_history = v4PrivatePostCollateralAccountPositionsHistory = Entry('collateral-account/positions/history', ['v4', 'private'], 'POST', {})
39
41
  v4_private_post_collateral_account_leverage = v4PrivatePostCollateralAccountLeverage = Entry('collateral-account/leverage', ['v4', 'private'], 'POST', {})
40
42
  v4_private_post_collateral_account_positions_open = v4PrivatePostCollateralAccountPositionsOpen = Entry('collateral-account/positions/open', ['v4', 'private'], 'POST', {})
@@ -51,18 +53,37 @@ class ImplicitAPI:
51
53
  v4_private_post_main_account_withdraw = v4PrivatePostMainAccountWithdraw = Entry('main-account/withdraw', ['v4', 'private'], 'POST', {})
52
54
  v4_private_post_main_account_withdraw_pay = v4PrivatePostMainAccountWithdrawPay = Entry('main-account/withdraw-pay', ['v4', 'private'], 'POST', {})
53
55
  v4_private_post_main_account_transfer = v4PrivatePostMainAccountTransfer = Entry('main-account/transfer', ['v4', 'private'], 'POST', {})
56
+ v4_private_post_main_account_smart_plans = v4PrivatePostMainAccountSmartPlans = Entry('main-account/smart/plans', ['v4', 'private'], 'POST', {})
57
+ v4_private_post_main_account_smart_investment = v4PrivatePostMainAccountSmartInvestment = Entry('main-account/smart/investment', ['v4', 'private'], 'POST', {})
58
+ v4_private_post_main_account_smart_investment_close = v4PrivatePostMainAccountSmartInvestmentClose = Entry('main-account/smart/investment/close', ['v4', 'private'], 'POST', {})
59
+ v4_private_post_main_account_smart_investments = v4PrivatePostMainAccountSmartInvestments = Entry('main-account/smart/investments', ['v4', 'private'], 'POST', {})
60
+ v4_private_post_main_account_fee = v4PrivatePostMainAccountFee = Entry('main-account/fee', ['v4', 'private'], 'POST', {})
61
+ v4_private_post_main_account_smart_interest_payment_history = v4PrivatePostMainAccountSmartInterestPaymentHistory = Entry('main-account/smart/interest-payment-history', ['v4', 'private'], 'POST', {})
54
62
  v4_private_post_trade_account_balance = v4PrivatePostTradeAccountBalance = Entry('trade-account/balance', ['v4', 'private'], 'POST', {})
55
63
  v4_private_post_trade_account_executed_history = v4PrivatePostTradeAccountExecutedHistory = Entry('trade-account/executed-history', ['v4', 'private'], 'POST', {})
56
64
  v4_private_post_trade_account_order = v4PrivatePostTradeAccountOrder = Entry('trade-account/order', ['v4', 'private'], 'POST', {})
57
65
  v4_private_post_trade_account_order_history = v4PrivatePostTradeAccountOrderHistory = Entry('trade-account/order/history', ['v4', 'private'], 'POST', {})
58
66
  v4_private_post_order_collateral_limit = v4PrivatePostOrderCollateralLimit = Entry('order/collateral/limit', ['v4', 'private'], 'POST', {})
59
67
  v4_private_post_order_collateral_market = v4PrivatePostOrderCollateralMarket = Entry('order/collateral/market', ['v4', 'private'], 'POST', {})
60
- v4_private_post_order_collateral_trigger_market = v4PrivatePostOrderCollateralTriggerMarket = Entry('order/collateral/trigger_market', ['v4', 'private'], 'POST', {})
68
+ v4_private_post_order_collateral_stop_limit = v4PrivatePostOrderCollateralStopLimit = Entry('order/collateral/stop-limit', ['v4', 'private'], 'POST', {})
69
+ v4_private_post_order_collateral_trigger_market = v4PrivatePostOrderCollateralTriggerMarket = Entry('order/collateral/trigger-market', ['v4', 'private'], 'POST', {})
61
70
  v4_private_post_order_new = v4PrivatePostOrderNew = Entry('order/new', ['v4', 'private'], 'POST', {})
62
71
  v4_private_post_order_market = v4PrivatePostOrderMarket = Entry('order/market', ['v4', 'private'], 'POST', {})
63
72
  v4_private_post_order_stock_market = v4PrivatePostOrderStockMarket = Entry('order/stock_market', ['v4', 'private'], 'POST', {})
64
73
  v4_private_post_order_stop_limit = v4PrivatePostOrderStopLimit = Entry('order/stop_limit', ['v4', 'private'], 'POST', {})
65
74
  v4_private_post_order_stop_market = v4PrivatePostOrderStopMarket = Entry('order/stop_market', ['v4', 'private'], 'POST', {})
66
75
  v4_private_post_order_cancel = v4PrivatePostOrderCancel = Entry('order/cancel', ['v4', 'private'], 'POST', {})
76
+ v4_private_post_order_cancel_all = v4PrivatePostOrderCancelAll = Entry('order/cancel/all', ['v4', 'private'], 'POST', {})
77
+ v4_private_post_order_kill_switch = v4PrivatePostOrderKillSwitch = Entry('order/kill-switch', ['v4', 'private'], 'POST', {})
78
+ v4_private_post_order_kill_switch_status = v4PrivatePostOrderKillSwitchStatus = Entry('order/kill-switch/status', ['v4', 'private'], 'POST', {})
79
+ v4_private_post_order_bulk = v4PrivatePostOrderBulk = Entry('order/bulk', ['v4', 'private'], 'POST', {})
80
+ v4_private_post_order_modify = v4PrivatePostOrderModify = Entry('order/modify', ['v4', 'private'], 'POST', {})
67
81
  v4_private_post_orders = v4PrivatePostOrders = Entry('orders', ['v4', 'private'], 'POST', {})
82
+ v4_private_post_oco_orders = v4PrivatePostOcoOrders = Entry('oco-orders', ['v4', 'private'], 'POST', {})
83
+ v4_private_post_order_collateral_oco = v4PrivatePostOrderCollateralOco = Entry('order/collateral/oco', ['v4', 'private'], 'POST', {})
84
+ v4_private_post_order_oco_cancel = v4PrivatePostOrderOcoCancel = Entry('order/oco-cancel', ['v4', 'private'], 'POST', {})
85
+ v4_private_post_order_oto_cancel = v4PrivatePostOrderOtoCancel = Entry('order/oto-cancel', ['v4', 'private'], 'POST', {})
68
86
  v4_private_post_profile_websocket_token = v4PrivatePostProfileWebsocketToken = Entry('profile/websocket_token', ['v4', 'private'], 'POST', {})
87
+ v4_private_post_convert_estimate = v4PrivatePostConvertEstimate = Entry('convert/estimate', ['v4', 'private'], 'POST', {})
88
+ v4_private_post_convert_confirm = v4PrivatePostConvertConfirm = Entry('convert/confirm', ['v4', 'private'], 'POST', {})
89
+ v4_private_post_convert_history = v4PrivatePostConvertHistory = Entry('convert/history', ['v4', 'private'], 'POST', {})
@@ -43,6 +43,7 @@ class ImplicitAPI:
43
43
  v1_private_get_position_symbol = v1PrivateGetPositionSymbol = Entry('position/{symbol}', ['v1', 'private'], 'GET', {'cost': 3.33})
44
44
  v1_private_get_client_transaction_history = v1PrivateGetClientTransactionHistory = Entry('client/transaction_history', ['v1', 'private'], 'GET', {'cost': 60})
45
45
  v1_private_post_order = v1PrivatePostOrder = Entry('order', ['v1', 'private'], 'POST', {'cost': 5})
46
+ v1_private_post_order_cancel_all_after = v1PrivatePostOrderCancelAllAfter = Entry('order/cancel_all_after', ['v1', 'private'], 'POST', {'cost': 1})
46
47
  v1_private_post_asset_main_sub_transfer = v1PrivatePostAssetMainSubTransfer = Entry('asset/main_sub_transfer', ['v1', 'private'], 'POST', {'cost': 30})
47
48
  v1_private_post_asset_ltv = v1PrivatePostAssetLtv = Entry('asset/ltv', ['v1', 'private'], 'POST', {'cost': 30})
48
49
  v1_private_post_asset_withdraw = v1PrivatePostAssetWithdraw = Entry('asset/withdraw', ['v1', 'private'], 'POST', {'cost': 30})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.4'
7
+ __version__ = '4.3.6'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.4'
5
+ __version__ = '4.3.6'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -849,6 +849,9 @@ class Exchange(BaseExchange):
849
849
  async def fetch_position(self, symbol: str, params={}):
850
850
  raise NotSupported(self.id + ' fetchPosition() is not supported yet')
851
851
 
852
+ async def fetch_position_ws(self, symbol: str, params={}):
853
+ raise NotSupported(self.id + ' fetchPositionWs() is not supported yet')
854
+
852
855
  async def watch_position(self, symbol: Str = None, params={}):
853
856
  raise NotSupported(self.id + ' watchPosition() is not supported yet')
854
857
 
@@ -867,9 +870,21 @@ class Exchange(BaseExchange):
867
870
  """
868
871
  raise NotSupported(self.id + ' fetchPositionsForSymbol() is not supported yet')
869
872
 
873
+ async def fetch_positions_for_symbol_ws(self, symbol: str, params={}):
874
+ """
875
+ fetches all open positions for specific symbol, unlike fetchPositions(which is designed to work with multiple symbols) so self method might be preffered for one-market position, because of less rate-limit consumption and speed
876
+ :param str symbol: unified market symbol
877
+ :param dict params: extra parameters specific to the endpoint
878
+ :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>` with maximum 3 items - possible one position for "one-way" mode, and possible two positions(long & short) for "two-way"(a.k.a. hedge) mode
879
+ """
880
+ raise NotSupported(self.id + ' fetchPositionsForSymbol() is not supported yet')
881
+
870
882
  async def fetch_positions(self, symbols: List[str] = None, params={}):
871
883
  raise NotSupported(self.id + ' fetchPositions() is not supported yet')
872
884
 
885
+ async def fetch_positions_ws(self, symbols: List[str] = None, params={}):
886
+ raise NotSupported(self.id + ' fetchPositions() is not supported yet')
887
+
873
888
  async def fetch_positions_risk(self, symbols: List[str] = None, params={}):
874
889
  raise NotSupported(self.id + ' fetchPositionsRisk() is not supported yet')
875
890
 
@@ -961,12 +976,29 @@ class Exchange(BaseExchange):
961
976
  else:
962
977
  raise NotSupported(self.id + ' fetchTicker() is not supported yet')
963
978
 
979
+ async def fetch_ticker_ws(self, symbol: str, params={}):
980
+ if self.has['fetchTickersWs']:
981
+ await self.load_markets()
982
+ market = self.market(symbol)
983
+ symbol = market['symbol']
984
+ tickers = await self.fetchTickerWs(symbol, params)
985
+ ticker = self.safe_dict(tickers, symbol)
986
+ if ticker is None:
987
+ raise NullResponse(self.id + ' fetchTickers() could not find a ticker for ' + symbol)
988
+ else:
989
+ return ticker
990
+ else:
991
+ raise NotSupported(self.id + ' fetchTicker() is not supported yet')
992
+
964
993
  async def watch_ticker(self, symbol: str, params={}):
965
994
  raise NotSupported(self.id + ' watchTicker() is not supported yet')
966
995
 
967
996
  async def fetch_tickers(self, symbols: List[str] = None, params={}):
968
997
  raise NotSupported(self.id + ' fetchTickers() is not supported yet')
969
998
 
999
+ async def fetch_tickers_ws(self, symbols: List[str] = None, params={}):
1000
+ raise NotSupported(self.id + ' fetchTickers() is not supported yet')
1001
+
970
1002
  async def fetch_order_books(self, symbols: List[str] = None, limit: Int = None, params={}):
971
1003
  raise NotSupported(self.id + ' fetchOrderBooks() is not supported yet')
972
1004
 
@@ -1016,6 +1048,28 @@ class Exchange(BaseExchange):
1016
1048
  return await self.create_order(symbol, type, side, amount, price, params)
1017
1049
  raise NotSupported(self.id + ' createTrailingAmountOrder() is not supported yet')
1018
1050
 
1051
+ async def create_trailing_amount_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount=None, trailingTriggerPrice=None, params={}):
1052
+ """
1053
+ create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
1054
+ :param str symbol: unified symbol of the market to create an order in
1055
+ :param str type: 'market' or 'limit'
1056
+ :param str side: 'buy' or 'sell'
1057
+ :param float amount: how much you want to trade in units of the base currency, or number of contracts
1058
+ :param float [price]: the price for the order to be filled at, in units of the quote currency, ignored in market orders
1059
+ :param float trailingAmount: the quote amount to trail away from the current market price
1060
+ :param float [trailingTriggerPrice]: the price to activate a trailing order, default uses the price argument
1061
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1062
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1063
+ """
1064
+ if trailingAmount is None:
1065
+ raise ArgumentsRequired(self.id + ' createTrailingAmountOrderWs() requires a trailingAmount argument')
1066
+ params['trailingAmount'] = trailingAmount
1067
+ if trailingTriggerPrice is not None:
1068
+ params['trailingTriggerPrice'] = trailingTriggerPrice
1069
+ if self.has['createTrailingAmountOrderWs']:
1070
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1071
+ raise NotSupported(self.id + ' createTrailingAmountOrderWs() is not supported yet')
1072
+
1019
1073
  async def create_trailing_percent_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent=None, trailingTriggerPrice=None, params={}):
1020
1074
  """
1021
1075
  create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
@@ -1038,6 +1092,28 @@ class Exchange(BaseExchange):
1038
1092
  return await self.create_order(symbol, type, side, amount, price, params)
1039
1093
  raise NotSupported(self.id + ' createTrailingPercentOrder() is not supported yet')
1040
1094
 
1095
+ async def create_trailing_percent_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent=None, trailingTriggerPrice=None, params={}):
1096
+ """
1097
+ create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
1098
+ :param str symbol: unified symbol of the market to create an order in
1099
+ :param str type: 'market' or 'limit'
1100
+ :param str side: 'buy' or 'sell'
1101
+ :param float amount: how much you want to trade in units of the base currency, or number of contracts
1102
+ :param float [price]: the price for the order to be filled at, in units of the quote currency, ignored in market orders
1103
+ :param float trailingPercent: the percent to trail away from the current market price
1104
+ :param float [trailingTriggerPrice]: the price to activate a trailing order, default uses the price argument
1105
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1106
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1107
+ """
1108
+ if trailingPercent is None:
1109
+ raise ArgumentsRequired(self.id + ' createTrailingPercentOrderWs() requires a trailingPercent argument')
1110
+ params['trailingPercent'] = trailingPercent
1111
+ if trailingTriggerPrice is not None:
1112
+ params['trailingTriggerPrice'] = trailingTriggerPrice
1113
+ if self.has['createTrailingPercentOrderWs']:
1114
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1115
+ raise NotSupported(self.id + ' createTrailingPercentOrderWs() is not supported yet')
1116
+
1041
1117
  async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1042
1118
  """
1043
1119
  create a market order by providing the symbol, side and cost
@@ -1075,6 +1151,19 @@ class Exchange(BaseExchange):
1075
1151
  return await self.create_order(symbol, 'market', 'sell', cost, 1, params)
1076
1152
  raise NotSupported(self.id + ' createMarketSellOrderWithCost() is not supported yet')
1077
1153
 
1154
+ async def create_market_order_with_cost_ws(self, symbol: str, side: OrderSide, cost: float, params={}):
1155
+ """
1156
+ create a market order by providing the symbol, side and cost
1157
+ :param str symbol: unified symbol of the market to create an order in
1158
+ :param str side: 'buy' or 'sell'
1159
+ :param float cost: how much you want to trade in units of the quote currency
1160
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1161
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1162
+ """
1163
+ if self.has['createMarketOrderWithCostWs'] or (self.has['createMarketBuyOrderWithCostWs'] and self.has['createMarketSellOrderWithCostWs']):
1164
+ return await self.createOrderWs(symbol, 'market', side, cost, 1, params)
1165
+ raise NotSupported(self.id + ' createMarketOrderWithCostWs() is not supported yet')
1166
+
1078
1167
  async def create_trigger_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, triggerPrice: Num = None, params={}):
1079
1168
  """
1080
1169
  create a trigger stop order(type 1)
@@ -1094,6 +1183,25 @@ class Exchange(BaseExchange):
1094
1183
  return await self.create_order(symbol, type, side, amount, price, params)
1095
1184
  raise NotSupported(self.id + ' createTriggerOrder() is not supported yet')
1096
1185
 
1186
+ async def create_trigger_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, triggerPrice: Num = None, params={}):
1187
+ """
1188
+ create a trigger stop order(type 1)
1189
+ :param str symbol: unified symbol of the market to create an order in
1190
+ :param str type: 'market' or 'limit'
1191
+ :param str side: 'buy' or 'sell'
1192
+ :param float amount: how much you want to trade in units of the base currency or the number of contracts
1193
+ :param float [price]: the price to fulfill the order, in units of the quote currency, ignored in market orders
1194
+ :param float triggerPrice: the price to trigger the stop order, in units of the quote currency
1195
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1196
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1197
+ """
1198
+ if triggerPrice is None:
1199
+ raise ArgumentsRequired(self.id + ' createTriggerOrderWs() requires a triggerPrice argument')
1200
+ params['triggerPrice'] = triggerPrice
1201
+ if self.has['createTriggerOrderWs']:
1202
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1203
+ raise NotSupported(self.id + ' createTriggerOrderWs() is not supported yet')
1204
+
1097
1205
  async def create_stop_loss_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, stopLossPrice: Num = None, params={}):
1098
1206
  """
1099
1207
  create a trigger stop loss order(type 2)
@@ -1113,6 +1221,25 @@ class Exchange(BaseExchange):
1113
1221
  return await self.create_order(symbol, type, side, amount, price, params)
1114
1222
  raise NotSupported(self.id + ' createStopLossOrder() is not supported yet')
1115
1223
 
1224
+ async def create_stop_loss_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, stopLossPrice: Num = None, params={}):
1225
+ """
1226
+ create a trigger stop loss order(type 2)
1227
+ :param str symbol: unified symbol of the market to create an order in
1228
+ :param str type: 'market' or 'limit'
1229
+ :param str side: 'buy' or 'sell'
1230
+ :param float amount: how much you want to trade in units of the base currency or the number of contracts
1231
+ :param float [price]: the price to fulfill the order, in units of the quote currency, ignored in market orders
1232
+ :param float stopLossPrice: the price to trigger the stop loss order, in units of the quote currency
1233
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1234
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1235
+ """
1236
+ if stopLossPrice is None:
1237
+ raise ArgumentsRequired(self.id + ' createStopLossOrderWs() requires a stopLossPrice argument')
1238
+ params['stopLossPrice'] = stopLossPrice
1239
+ if self.has['createStopLossOrderWs']:
1240
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1241
+ raise NotSupported(self.id + ' createStopLossOrderWs() is not supported yet')
1242
+
1116
1243
  async def create_take_profit_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, takeProfitPrice: Num = None, params={}):
1117
1244
  """
1118
1245
  create a trigger take profit order(type 2)
@@ -1132,6 +1259,25 @@ class Exchange(BaseExchange):
1132
1259
  return await self.create_order(symbol, type, side, amount, price, params)
1133
1260
  raise NotSupported(self.id + ' createTakeProfitOrder() is not supported yet')
1134
1261
 
1262
+ async def create_take_profit_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, takeProfitPrice: Num = None, params={}):
1263
+ """
1264
+ create a trigger take profit order(type 2)
1265
+ :param str symbol: unified symbol of the market to create an order in
1266
+ :param str type: 'market' or 'limit'
1267
+ :param str side: 'buy' or 'sell'
1268
+ :param float amount: how much you want to trade in units of the base currency or the number of contracts
1269
+ :param float [price]: the price to fulfill the order, in units of the quote currency, ignored in market orders
1270
+ :param float takeProfitPrice: the price to trigger the take profit order, in units of the quote currency
1271
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1272
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1273
+ """
1274
+ if takeProfitPrice is None:
1275
+ raise ArgumentsRequired(self.id + ' createTakeProfitOrderWs() requires a takeProfitPrice argument')
1276
+ params['takeProfitPrice'] = takeProfitPrice
1277
+ if self.has['createTakeProfitOrderWs']:
1278
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1279
+ raise NotSupported(self.id + ' createTakeProfitOrderWs() is not supported yet')
1280
+
1135
1281
  async def create_order_with_take_profit_and_stop_loss(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, takeProfit: Num = None, stopLoss: Num = None, params={}):
1136
1282
  """
1137
1283
  create an order with a stop loss or take profit attached(type 3)
@@ -1153,45 +1299,37 @@ class Exchange(BaseExchange):
1153
1299
  :param float [params.stopLossAmount]: *not available on all exchanges* the amount for a stop loss
1154
1300
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1155
1301
  """
1156
- if (takeProfit is None) and (stopLoss is None):
1157
- raise ArgumentsRequired(self.id + ' createOrderWithTakeProfitAndStopLoss() requires either a takeProfit or stopLoss argument')
1158
- if takeProfit is not None:
1159
- params['takeProfit'] = {
1160
- 'triggerPrice': takeProfit,
1161
- }
1162
- if stopLoss is not None:
1163
- params['stopLoss'] = {
1164
- 'triggerPrice': stopLoss,
1165
- }
1166
- takeProfitType = self.safe_string(params, 'takeProfitType')
1167
- takeProfitPriceType = self.safe_string(params, 'takeProfitPriceType')
1168
- takeProfitLimitPrice = self.safe_string(params, 'takeProfitLimitPrice')
1169
- takeProfitAmount = self.safe_string(params, 'takeProfitAmount')
1170
- stopLossType = self.safe_string(params, 'stopLossType')
1171
- stopLossPriceType = self.safe_string(params, 'stopLossPriceType')
1172
- stopLossLimitPrice = self.safe_string(params, 'stopLossLimitPrice')
1173
- stopLossAmount = self.safe_string(params, 'stopLossAmount')
1174
- if takeProfitType is not None:
1175
- params['takeProfit']['type'] = takeProfitType
1176
- if takeProfitPriceType is not None:
1177
- params['takeProfit']['priceType'] = takeProfitPriceType
1178
- if takeProfitLimitPrice is not None:
1179
- params['takeProfit']['price'] = self.parse_to_numeric(takeProfitLimitPrice)
1180
- if takeProfitAmount is not None:
1181
- params['takeProfit']['amount'] = self.parse_to_numeric(takeProfitAmount)
1182
- if stopLossType is not None:
1183
- params['stopLoss']['type'] = stopLossType
1184
- if stopLossPriceType is not None:
1185
- params['stopLoss']['priceType'] = stopLossPriceType
1186
- if stopLossLimitPrice is not None:
1187
- params['stopLoss']['price'] = self.parse_to_numeric(stopLossLimitPrice)
1188
- if stopLossAmount is not None:
1189
- params['stopLoss']['amount'] = self.parse_to_numeric(stopLossAmount)
1190
- params = self.omit(params, ['takeProfitType', 'takeProfitPriceType', 'takeProfitLimitPrice', 'takeProfitAmount', 'stopLossType', 'stopLossPriceType', 'stopLossLimitPrice', 'stopLossAmount'])
1302
+ params = self.set_take_profit_and_stop_loss_params(symbol, type, side, amount, price, takeProfit, stopLoss, params)
1191
1303
  if self.has['createOrderWithTakeProfitAndStopLoss']:
1192
1304
  return await self.create_order(symbol, type, side, amount, price, params)
1193
1305
  raise NotSupported(self.id + ' createOrderWithTakeProfitAndStopLoss() is not supported yet')
1194
1306
 
1307
+ async def create_order_with_take_profit_and_stop_loss_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, takeProfit: Num = None, stopLoss: Num = None, params={}):
1308
+ """
1309
+ create an order with a stop loss or take profit attached(type 3)
1310
+ :param str symbol: unified symbol of the market to create an order in
1311
+ :param str type: 'market' or 'limit'
1312
+ :param str side: 'buy' or 'sell'
1313
+ :param float amount: how much you want to trade in units of the base currency or the number of contracts
1314
+ :param float [price]: the price to fulfill the order, in units of the quote currency, ignored in market orders
1315
+ :param float [takeProfit]: the take profit price, in units of the quote currency
1316
+ :param float [stopLoss]: the stop loss price, in units of the quote currency
1317
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1318
+ :param str [params.takeProfitType]: *not available on all exchanges* 'limit' or 'market'
1319
+ :param str [params.stopLossType]: *not available on all exchanges* 'limit' or 'market'
1320
+ :param str [params.takeProfitPriceType]: *not available on all exchanges* 'last', 'mark' or 'index'
1321
+ :param str [params.stopLossPriceType]: *not available on all exchanges* 'last', 'mark' or 'index'
1322
+ :param float [params.takeProfitLimitPrice]: *not available on all exchanges* limit price for a limit take profit order
1323
+ :param float [params.stopLossLimitPrice]: *not available on all exchanges* stop loss for a limit stop loss order
1324
+ :param float [params.takeProfitAmount]: *not available on all exchanges* the amount for a take profit
1325
+ :param float [params.stopLossAmount]: *not available on all exchanges* the amount for a stop loss
1326
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1327
+ """
1328
+ params = self.set_take_profit_and_stop_loss_params(symbol, type, side, amount, price, takeProfit, stopLoss, params)
1329
+ if self.has['createOrderWithTakeProfitAndStopLossWs']:
1330
+ return await self.createOrderWs(symbol, type, side, amount, price, params)
1331
+ raise NotSupported(self.id + ' createOrderWithTakeProfitAndStopLossWs() is not supported yet')
1332
+
1195
1333
  async def create_orders(self, orders: List[OrderRequest], params={}):
1196
1334
  raise NotSupported(self.id + ' createOrders() is not supported yet')
1197
1335
 
@@ -1210,6 +1348,9 @@ class Exchange(BaseExchange):
1210
1348
  async def cancel_all_orders(self, symbol: Str = None, params={}):
1211
1349
  raise NotSupported(self.id + ' cancelAllOrders() is not supported yet')
1212
1350
 
1351
+ async def cancel_all_orders_after(self, timeout: Int, params={}):
1352
+ raise NotSupported(self.id + ' cancelAllOrdersAfter() is not supported yet')
1353
+
1213
1354
  async def cancel_orders_for_symbols(self, orders: List[CancellationRequest], params={}):
1214
1355
  raise NotSupported(self.id + ' cancelOrdersForSymbols() is not supported yet')
1215
1356
 
@@ -1349,21 +1490,39 @@ class Exchange(BaseExchange):
1349
1490
  async def create_limit_order(self, symbol: str, side: OrderSide, amount: float, price: float, params={}):
1350
1491
  return await self.create_order(symbol, 'limit', side, amount, price, params)
1351
1492
 
1493
+ async def create_limit_order_ws(self, symbol: str, side: OrderSide, amount: float, price: float, params={}):
1494
+ return await self.createOrderWs(symbol, 'limit', side, amount, price, params)
1495
+
1352
1496
  async def create_market_order(self, symbol: str, side: OrderSide, amount: float, price: Num = None, params={}):
1353
1497
  return await self.create_order(symbol, 'market', side, amount, price, params)
1354
1498
 
1499
+ async def create_market_order_ws(self, symbol: str, side: OrderSide, amount: float, price: Num = None, params={}):
1500
+ return await self.createOrderWs(symbol, 'market', side, amount, price, params)
1501
+
1355
1502
  async def create_limit_buy_order(self, symbol: str, amount: float, price: float, params={}):
1356
1503
  return await self.create_order(symbol, 'limit', 'buy', amount, price, params)
1357
1504
 
1505
+ async def create_limit_buy_order_ws(self, symbol: str, amount: float, price: float, params={}):
1506
+ return await self.createOrderWs(symbol, 'limit', 'buy', amount, price, params)
1507
+
1358
1508
  async def create_limit_sell_order(self, symbol: str, amount: float, price: float, params={}):
1359
1509
  return await self.create_order(symbol, 'limit', 'sell', amount, price, params)
1360
1510
 
1511
+ async def create_limit_sell_order_ws(self, symbol: str, amount: float, price: float, params={}):
1512
+ return await self.createOrderWs(symbol, 'limit', 'sell', amount, price, params)
1513
+
1361
1514
  async def create_market_buy_order(self, symbol: str, amount: float, params={}):
1362
1515
  return await self.create_order(symbol, 'market', 'buy', amount, None, params)
1363
1516
 
1517
+ async def create_market_buy_order_ws(self, symbol: str, amount: float, params={}):
1518
+ return await self.createOrderWs(symbol, 'market', 'buy', amount, None, params)
1519
+
1364
1520
  async def create_market_sell_order(self, symbol: str, amount: float, params={}):
1365
1521
  return await self.create_order(symbol, 'market', 'sell', amount, None, params)
1366
1522
 
1523
+ async def create_market_sell_order_ws(self, symbol: str, amount: float, params={}):
1524
+ return await self.createOrderWs(symbol, 'market', 'sell', amount, None, params)
1525
+
1367
1526
  async def load_time_difference(self, params={}):
1368
1527
  serverTime = await self.fetch_time(params)
1369
1528
  after = self.milliseconds()
@@ -1386,12 +1545,24 @@ class Exchange(BaseExchange):
1386
1545
  query = self.extend(params, {'postOnly': True})
1387
1546
  return await self.create_order(symbol, type, side, amount, price, query)
1388
1547
 
1548
+ async def create_post_only_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1549
+ if not self.has['createPostOnlyOrderWs']:
1550
+ raise NotSupported(self.id + 'createPostOnlyOrderWs() is not supported yet')
1551
+ query = self.extend(params, {'postOnly': True})
1552
+ return await self.createOrderWs(symbol, type, side, amount, price, query)
1553
+
1389
1554
  async def create_reduce_only_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1390
1555
  if not self.has['createReduceOnlyOrder']:
1391
1556
  raise NotSupported(self.id + 'createReduceOnlyOrder() is not supported yet')
1392
1557
  query = self.extend(params, {'reduceOnly': True})
1393
1558
  return await self.create_order(symbol, type, side, amount, price, query)
1394
1559
 
1560
+ async def create_reduce_only_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1561
+ if not self.has['createReduceOnlyOrderWs']:
1562
+ raise NotSupported(self.id + 'createReduceOnlyOrderWs() is not supported yet')
1563
+ query = self.extend(params, {'reduceOnly': True})
1564
+ return await self.createOrderWs(symbol, type, side, amount, price, query)
1565
+
1395
1566
  async def create_stop_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, stopPrice: Num = None, params={}):
1396
1567
  if not self.has['createStopOrder']:
1397
1568
  raise NotSupported(self.id + ' createStopOrder() is not supported yet')
@@ -1400,18 +1571,38 @@ class Exchange(BaseExchange):
1400
1571
  query = self.extend(params, {'stopPrice': stopPrice})
1401
1572
  return await self.create_order(symbol, type, side, amount, price, query)
1402
1573
 
1574
+ async def create_stop_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, stopPrice: Num = None, params={}):
1575
+ if not self.has['createStopOrderWs']:
1576
+ raise NotSupported(self.id + ' createStopOrderWs() is not supported yet')
1577
+ if stopPrice is None:
1578
+ raise ArgumentsRequired(self.id + ' createStopOrderWs() requires a stopPrice argument')
1579
+ query = self.extend(params, {'stopPrice': stopPrice})
1580
+ return await self.createOrderWs(symbol, type, side, amount, price, query)
1581
+
1403
1582
  async def create_stop_limit_order(self, symbol: str, side: OrderSide, amount: float, price: float, stopPrice: float, params={}):
1404
1583
  if not self.has['createStopLimitOrder']:
1405
1584
  raise NotSupported(self.id + ' createStopLimitOrder() is not supported yet')
1406
1585
  query = self.extend(params, {'stopPrice': stopPrice})
1407
1586
  return await self.create_order(symbol, 'limit', side, amount, price, query)
1408
1587
 
1588
+ async def create_stop_limit_order_ws(self, symbol: str, side: OrderSide, amount: float, price: float, stopPrice: float, params={}):
1589
+ if not self.has['createStopLimitOrderWs']:
1590
+ raise NotSupported(self.id + ' createStopLimitOrderWs() is not supported yet')
1591
+ query = self.extend(params, {'stopPrice': stopPrice})
1592
+ return await self.createOrderWs(symbol, 'limit', side, amount, price, query)
1593
+
1409
1594
  async def create_stop_market_order(self, symbol: str, side: OrderSide, amount: float, stopPrice: float, params={}):
1410
1595
  if not self.has['createStopMarketOrder']:
1411
1596
  raise NotSupported(self.id + ' createStopMarketOrder() is not supported yet')
1412
1597
  query = self.extend(params, {'stopPrice': stopPrice})
1413
1598
  return await self.create_order(symbol, 'market', side, amount, None, query)
1414
1599
 
1600
+ async def create_stop_market_order_ws(self, symbol: str, side: OrderSide, amount: float, stopPrice: float, params={}):
1601
+ if not self.has['createStopMarketOrderWs']:
1602
+ raise NotSupported(self.id + ' createStopMarketOrderWs() is not supported yet')
1603
+ query = self.extend(params, {'stopPrice': stopPrice})
1604
+ return await self.createOrderWs(symbol, 'market', side, amount, None, query)
1605
+
1415
1606
  async def fetch_last_prices(self, symbols: List[str] = None, params={}):
1416
1607
  raise NotSupported(self.id + ' fetchLastPrices() is not supported yet')
1417
1608