ccxt 4.2.55__tar.gz → 4.2.56__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 (446) hide show
  1. {ccxt-4.2.55/ccxt.egg-info → ccxt-4.2.56}/PKG-INFO +4 -4
  2. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/woo.py +9 -0
  4. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/exchange.py +1 -1
  6. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bingx.py +36 -35
  7. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/upbit.py +1 -1
  8. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/woo.py +37 -0
  9. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/exchange.py +2 -2
  10. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/types.py +2 -1
  11. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bingx.py +36 -35
  12. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/__init__.py +1 -1
  13. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitget.py +65 -72
  14. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bybit.py +19 -5
  15. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/currencycom.py +2 -1
  16. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/kraken.py +1 -1
  17. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/upbit.py +1 -1
  18. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/woo.py +37 -0
  19. {ccxt-4.2.55 → ccxt-4.2.56/ccxt.egg-info}/PKG-INFO +4 -4
  20. {ccxt-4.2.55 → ccxt-4.2.56}/package.json +1 -1
  21. {ccxt-4.2.55 → ccxt-4.2.56}/LICENSE.txt +0 -0
  22. {ccxt-4.2.55 → ccxt-4.2.56}/MANIFEST.in +0 -0
  23. {ccxt-4.2.55 → ccxt-4.2.56}/README.rst +0 -0
  24. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/__init__.py +0 -0
  25. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/ace.py +0 -0
  26. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/alpaca.py +0 -0
  27. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/ascendex.py +0 -0
  28. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bequant.py +0 -0
  29. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bigone.py +0 -0
  30. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/binance.py +0 -0
  31. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/binancecoinm.py +0 -0
  32. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/binanceus.py +0 -0
  33. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/binanceusdm.py +0 -0
  34. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bingx.py +0 -0
  35. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bit2c.py +0 -0
  36. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitbank.py +0 -0
  37. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitbay.py +0 -0
  38. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitbns.py +0 -0
  39. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitcoincom.py +0 -0
  40. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitfinex.py +0 -0
  41. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitfinex2.py +0 -0
  42. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitflyer.py +0 -0
  43. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitget.py +0 -0
  44. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bithumb.py +0 -0
  45. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitmart.py +0 -0
  46. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitmex.py +0 -0
  47. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitopro.py +0 -0
  48. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitpanda.py +0 -0
  49. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitrue.py +0 -0
  50. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitso.py +0 -0
  51. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitstamp.py +0 -0
  52. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitteam.py +0 -0
  53. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bitvavo.py +0 -0
  54. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bl3p.py +0 -0
  55. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/blockchaincom.py +0 -0
  56. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/blofin.py +0 -0
  57. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/btcalpha.py +0 -0
  58. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/btcbox.py +0 -0
  59. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/btcmarkets.py +0 -0
  60. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/btcturk.py +0 -0
  61. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/bybit.py +0 -0
  62. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/cex.py +0 -0
  63. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinbase.py +0 -0
  64. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinbasepro.py +0 -0
  65. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coincheck.py +0 -0
  66. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinex.py +0 -0
  67. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinlist.py +0 -0
  68. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinmate.py +0 -0
  69. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinmetro.py +0 -0
  70. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinone.py +0 -0
  71. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinsph.py +0 -0
  72. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/coinspot.py +0 -0
  73. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/cryptocom.py +0 -0
  74. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/currencycom.py +0 -0
  75. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/delta.py +0 -0
  76. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/deribit.py +0 -0
  77. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/digifinex.py +0 -0
  78. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/exmo.py +0 -0
  79. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/fmfwio.py +0 -0
  80. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/gate.py +0 -0
  81. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/gateio.py +0 -0
  82. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/gemini.py +0 -0
  83. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/hitbtc.py +0 -0
  84. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/hitbtc3.py +0 -0
  85. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/hollaex.py +0 -0
  86. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/htx.py +0 -0
  87. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/huobi.py +0 -0
  88. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/huobijp.py +0 -0
  89. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/idex.py +0 -0
  90. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/independentreserve.py +0 -0
  91. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/indodax.py +0 -0
  92. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/kraken.py +0 -0
  93. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/krakenfutures.py +0 -0
  94. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/kucoin.py +0 -0
  95. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/kucoinfutures.py +0 -0
  96. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/kuna.py +0 -0
  97. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/latoken.py +0 -0
  98. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/lbank.py +0 -0
  99. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/luno.py +0 -0
  100. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/lykke.py +0 -0
  101. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/mercado.py +0 -0
  102. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/mexc.py +0 -0
  103. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/ndax.py +0 -0
  104. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/novadax.py +0 -0
  105. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/oceanex.py +0 -0
  106. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/okcoin.py +0 -0
  107. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/okx.py +0 -0
  108. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/onetrading.py +0 -0
  109. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/p2b.py +0 -0
  110. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/paymium.py +0 -0
  111. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/phemex.py +0 -0
  112. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/poloniex.py +0 -0
  113. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/poloniexfutures.py +0 -0
  114. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/probit.py +0 -0
  115. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/timex.py +0 -0
  116. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/tokocrypto.py +0 -0
  117. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/upbit.py +0 -0
  118. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/wavesexchange.py +0 -0
  119. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/wazirx.py +0 -0
  120. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/whitebit.py +0 -0
  121. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/yobit.py +0 -0
  122. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/zaif.py +0 -0
  123. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/abstract/zonda.py +0 -0
  124. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/ace.py +0 -0
  125. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/alpaca.py +0 -0
  126. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/ascendex.py +0 -0
  127. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/ace.py +0 -0
  128. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/alpaca.py +0 -0
  129. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/ascendex.py +0 -0
  130. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/__init__.py +0 -0
  131. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/throttler.py +0 -0
  132. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/__init__.py +0 -0
  133. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  134. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/cache.py +0 -0
  135. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/client.py +0 -0
  136. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/fast_client.py +0 -0
  137. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/functions.py +0 -0
  138. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/future.py +0 -0
  139. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/order_book.py +0 -0
  140. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  141. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bequant.py +0 -0
  142. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bigone.py +0 -0
  143. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/binance.py +0 -0
  144. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/binancecoinm.py +0 -0
  145. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/binanceus.py +0 -0
  146. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/binanceusdm.py +0 -0
  147. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bit2c.py +0 -0
  148. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitbank.py +0 -0
  149. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitbay.py +0 -0
  150. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitbns.py +0 -0
  151. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitcoincom.py +0 -0
  152. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitfinex.py +0 -0
  153. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitfinex2.py +0 -0
  154. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitflyer.py +0 -0
  155. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitget.py +0 -0
  156. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bithumb.py +0 -0
  157. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitmart.py +0 -0
  158. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitmex.py +0 -0
  159. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitopro.py +0 -0
  160. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitpanda.py +0 -0
  161. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitrue.py +0 -0
  162. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitso.py +0 -0
  163. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitstamp.py +0 -0
  164. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitteam.py +0 -0
  165. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bitvavo.py +0 -0
  166. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bl3p.py +0 -0
  167. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/blockchaincom.py +0 -0
  168. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/blofin.py +0 -0
  169. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/btcalpha.py +0 -0
  170. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/btcbox.py +0 -0
  171. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/btcmarkets.py +0 -0
  172. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/btcturk.py +0 -0
  173. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/bybit.py +0 -0
  174. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/cex.py +0 -0
  175. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinbase.py +0 -0
  176. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinbasepro.py +0 -0
  177. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coincheck.py +0 -0
  178. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinex.py +0 -0
  179. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinlist.py +0 -0
  180. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinmate.py +0 -0
  181. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinmetro.py +0 -0
  182. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinone.py +0 -0
  183. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinsph.py +0 -0
  184. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/coinspot.py +0 -0
  185. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/cryptocom.py +0 -0
  186. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/currencycom.py +0 -0
  187. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/delta.py +0 -0
  188. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/deribit.py +0 -0
  189. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/digifinex.py +0 -0
  190. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/exmo.py +0 -0
  191. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/flowbtc.py +0 -0
  192. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/fmfwio.py +0 -0
  193. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/gate.py +0 -0
  194. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/gateio.py +0 -0
  195. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/gemini.py +0 -0
  196. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/hitbtc.py +0 -0
  197. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/hitbtc3.py +0 -0
  198. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/hollaex.py +0 -0
  199. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/htx.py +0 -0
  200. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/huobi.py +0 -0
  201. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/huobijp.py +0 -0
  202. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/idex.py +0 -0
  203. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/independentreserve.py +0 -0
  204. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/indodax.py +0 -0
  205. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/kraken.py +0 -0
  206. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/krakenfutures.py +0 -0
  207. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/kucoin.py +0 -0
  208. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/kucoinfutures.py +0 -0
  209. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/kuna.py +0 -0
  210. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/latoken.py +0 -0
  211. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/lbank.py +0 -0
  212. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/luno.py +0 -0
  213. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/lykke.py +0 -0
  214. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/mercado.py +0 -0
  215. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/mexc.py +0 -0
  216. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/ndax.py +0 -0
  217. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/novadax.py +0 -0
  218. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/oceanex.py +0 -0
  219. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/okcoin.py +0 -0
  220. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/okx.py +0 -0
  221. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/onetrading.py +0 -0
  222. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/p2b.py +0 -0
  223. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/paymium.py +0 -0
  224. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/phemex.py +0 -0
  225. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/poloniex.py +0 -0
  226. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/poloniexfutures.py +0 -0
  227. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/probit.py +0 -0
  228. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/timex.py +0 -0
  229. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/tokocrypto.py +0 -0
  230. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/wavesexchange.py +0 -0
  231. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/wazirx.py +0 -0
  232. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/whitebit.py +0 -0
  233. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/yobit.py +0 -0
  234. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/zaif.py +0 -0
  235. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/async_support/zonda.py +0 -0
  236. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/__init__.py +0 -0
  237. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/decimal_to_precision.py +0 -0
  238. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/errors.py +0 -0
  239. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/base/precise.py +0 -0
  240. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bequant.py +0 -0
  241. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bigone.py +0 -0
  242. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/binance.py +0 -0
  243. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/binancecoinm.py +0 -0
  244. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/binanceus.py +0 -0
  245. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/binanceusdm.py +0 -0
  246. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bit2c.py +0 -0
  247. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitbank.py +0 -0
  248. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitbay.py +0 -0
  249. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitbns.py +0 -0
  250. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitcoincom.py +0 -0
  251. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitfinex.py +0 -0
  252. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitfinex2.py +0 -0
  253. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitflyer.py +0 -0
  254. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitget.py +0 -0
  255. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bithumb.py +0 -0
  256. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitmart.py +0 -0
  257. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitmex.py +0 -0
  258. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitopro.py +0 -0
  259. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitpanda.py +0 -0
  260. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitrue.py +0 -0
  261. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitso.py +0 -0
  262. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitstamp.py +0 -0
  263. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitteam.py +0 -0
  264. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bitvavo.py +0 -0
  265. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bl3p.py +0 -0
  266. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/blockchaincom.py +0 -0
  267. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/blofin.py +0 -0
  268. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/btcalpha.py +0 -0
  269. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/btcbox.py +0 -0
  270. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/btcmarkets.py +0 -0
  271. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/btcturk.py +0 -0
  272. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/bybit.py +0 -0
  273. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/cex.py +0 -0
  274. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinbase.py +0 -0
  275. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinbasepro.py +0 -0
  276. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coincheck.py +0 -0
  277. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinex.py +0 -0
  278. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinlist.py +0 -0
  279. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinmate.py +0 -0
  280. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinmetro.py +0 -0
  281. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinone.py +0 -0
  282. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinsph.py +0 -0
  283. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/coinspot.py +0 -0
  284. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/cryptocom.py +0 -0
  285. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/currencycom.py +0 -0
  286. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/delta.py +0 -0
  287. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/deribit.py +0 -0
  288. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/digifinex.py +0 -0
  289. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/exmo.py +0 -0
  290. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/flowbtc.py +0 -0
  291. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/fmfwio.py +0 -0
  292. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/gate.py +0 -0
  293. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/gateio.py +0 -0
  294. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/gemini.py +0 -0
  295. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/hitbtc.py +0 -0
  296. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/hitbtc3.py +0 -0
  297. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/hollaex.py +0 -0
  298. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/htx.py +0 -0
  299. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/huobi.py +0 -0
  300. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/huobijp.py +0 -0
  301. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/idex.py +0 -0
  302. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/independentreserve.py +0 -0
  303. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/indodax.py +0 -0
  304. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/kraken.py +0 -0
  305. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/krakenfutures.py +0 -0
  306. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/kucoin.py +0 -0
  307. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/kucoinfutures.py +0 -0
  308. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/kuna.py +0 -0
  309. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/latoken.py +0 -0
  310. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/lbank.py +0 -0
  311. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/luno.py +0 -0
  312. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/lykke.py +0 -0
  313. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/mercado.py +0 -0
  314. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/mexc.py +0 -0
  315. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/ndax.py +0 -0
  316. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/novadax.py +0 -0
  317. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/oceanex.py +0 -0
  318. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/okcoin.py +0 -0
  319. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/okx.py +0 -0
  320. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/onetrading.py +0 -0
  321. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/p2b.py +0 -0
  322. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/paymium.py +0 -0
  323. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/phemex.py +0 -0
  324. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/poloniex.py +0 -0
  325. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/poloniexfutures.py +0 -0
  326. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/alpaca.py +0 -0
  327. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/ascendex.py +0 -0
  328. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bequant.py +0 -0
  329. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/binance.py +0 -0
  330. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/binancecoinm.py +0 -0
  331. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/binanceus.py +0 -0
  332. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/binanceusdm.py +0 -0
  333. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bingx.py +0 -0
  334. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitcoincom.py +0 -0
  335. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitfinex.py +0 -0
  336. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitfinex2.py +0 -0
  337. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitmart.py +0 -0
  338. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitmex.py +0 -0
  339. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitopro.py +0 -0
  340. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitpanda.py +0 -0
  341. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitrue.py +0 -0
  342. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitstamp.py +0 -0
  343. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/bitvavo.py +0 -0
  344. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/blockchaincom.py +0 -0
  345. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/cex.py +0 -0
  346. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/coinbase.py +0 -0
  347. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/coinbasepro.py +0 -0
  348. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/coincheck.py +0 -0
  349. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/coinex.py +0 -0
  350. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/coinone.py +0 -0
  351. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/cryptocom.py +0 -0
  352. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/deribit.py +0 -0
  353. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/exmo.py +0 -0
  354. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/gate.py +0 -0
  355. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/gateio.py +0 -0
  356. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/gemini.py +0 -0
  357. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/hitbtc.py +0 -0
  358. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/hollaex.py +0 -0
  359. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/htx.py +0 -0
  360. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/huobi.py +0 -0
  361. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/huobijp.py +0 -0
  362. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/idex.py +0 -0
  363. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/independentreserve.py +0 -0
  364. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/krakenfutures.py +0 -0
  365. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/kucoin.py +0 -0
  366. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/kucoinfutures.py +0 -0
  367. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/lbank.py +0 -0
  368. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/luno.py +0 -0
  369. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/mexc.py +0 -0
  370. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/ndax.py +0 -0
  371. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/okcoin.py +0 -0
  372. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/okx.py +0 -0
  373. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/onetrading.py +0 -0
  374. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/p2b.py +0 -0
  375. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/phemex.py +0 -0
  376. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/poloniex.py +0 -0
  377. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/poloniexfutures.py +0 -0
  378. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/probit.py +0 -0
  379. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/upbit.py +0 -0
  380. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/wazirx.py +0 -0
  381. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/whitebit.py +0 -0
  382. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/pro/woo.py +0 -0
  383. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/probit.py +0 -0
  384. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/__init__.py +0 -0
  385. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  386. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  387. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  388. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  389. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  390. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  391. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  392. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  393. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  394. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  395. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  396. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  397. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/__init__.py +0 -0
  398. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/__init__.py +0 -0
  399. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_account.py +0 -0
  400. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_balance.py +0 -0
  401. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_borrow_interest.py +0 -0
  402. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_borrow_rate.py +0 -0
  403. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_calculate_fee.py +0 -0
  404. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_crypto.py +0 -0
  405. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_currency.py +0 -0
  406. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_datetime.py +0 -0
  407. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  408. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_deep_extend.py +0 -0
  409. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  410. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  411. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_funding_rate_history.py +0 -0
  412. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_last_price.py +0 -0
  413. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_ledger_entry.py +0 -0
  414. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_ledger_item.py +0 -0
  415. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_leverage_tier.py +0 -0
  416. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_margin_modification.py +0 -0
  417. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_market.py +0 -0
  418. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_number.py +0 -0
  419. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_ohlcv.py +0 -0
  420. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_open_interest.py +0 -0
  421. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_order.py +0 -0
  422. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_order_book.py +0 -0
  423. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_position.py +0 -0
  424. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_shared_methods.py +0 -0
  425. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_status.py +0 -0
  426. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_throttle.py +0 -0
  427. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_ticker.py +0 -0
  428. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_trade.py +0 -0
  429. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_trading_fee.py +0 -0
  430. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/base/test_transaction.py +0 -0
  431. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/test_async.py +0 -0
  432. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/test/test_sync.py +0 -0
  433. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/timex.py +0 -0
  434. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/tokocrypto.py +0 -0
  435. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/wavesexchange.py +0 -0
  436. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/wazirx.py +0 -0
  437. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/whitebit.py +0 -0
  438. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/yobit.py +0 -0
  439. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/zaif.py +0 -0
  440. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt/zonda.py +0 -0
  441. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt.egg-info/SOURCES.txt +0 -0
  442. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt.egg-info/dependency_links.txt +0 -0
  443. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt.egg-info/requires.txt +0 -0
  444. {ccxt-4.2.55 → ccxt-4.2.56}/ccxt.egg-info/top_level.txt +0 -0
  445. {ccxt-4.2.55 → ccxt-4.2.56}/setup.cfg +0 -0
  446. {ccxt-4.2.55 → ccxt-4.2.56}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.55
3
+ Version: 4.2.56
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
@@ -222,13 +222,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
222
222
 
223
223
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
224
224
 
225
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.55/dist/ccxt.browser.js
226
- * unpkg: https://unpkg.com/ccxt@4.2.55/dist/ccxt.browser.js
225
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.56/dist/ccxt.browser.js
226
+ * unpkg: https://unpkg.com/ccxt@4.2.56/dist/ccxt.browser.js
227
227
 
228
228
  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
229
 
230
230
  ```HTML
231
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.55/dist/ccxt.browser.js"></script>
231
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.56/dist/ccxt.browser.js"></script>
232
232
  ```
233
233
 
234
234
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.55'
25
+ __version__ = '4.2.56'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -24,10 +24,16 @@ class ImplicitAPI:
24
24
  v1_private_get_client_trade_tid = v1PrivateGetClientTradeTid = Entry('client/trade/{tid}', ['v1', 'private'], 'GET', {'cost': 1})
25
25
  v1_private_get_order_oid_trades = v1PrivateGetOrderOidTrades = Entry('order/{oid}/trades', ['v1', 'private'], 'GET', {'cost': 1})
26
26
  v1_private_get_client_trades = v1PrivateGetClientTrades = Entry('client/trades', ['v1', 'private'], 'GET', {'cost': 1})
27
+ v1_private_get_client_hist_trades = v1PrivateGetClientHistTrades = Entry('client/hist_trades', ['v1', 'private'], 'GET', {'cost': 1})
28
+ v1_private_get_staking_yield_history = v1PrivateGetStakingYieldHistory = Entry('staking/yield_history', ['v1', 'private'], 'GET', {'cost': 1})
29
+ v1_private_get_client_holding = v1PrivateGetClientHolding = Entry('client/holding', ['v1', 'private'], 'GET', {'cost': 1})
27
30
  v1_private_get_asset_deposit = v1PrivateGetAssetDeposit = Entry('asset/deposit', ['v1', 'private'], 'GET', {'cost': 10})
28
31
  v1_private_get_asset_history = v1PrivateGetAssetHistory = Entry('asset/history', ['v1', 'private'], 'GET', {'cost': 60})
29
32
  v1_private_get_sub_account_all = v1PrivateGetSubAccountAll = Entry('sub_account/all', ['v1', 'private'], 'GET', {'cost': 60})
30
33
  v1_private_get_sub_account_assets = v1PrivateGetSubAccountAssets = Entry('sub_account/assets', ['v1', 'private'], 'GET', {'cost': 60})
34
+ v1_private_get_sub_account_asset_detail = v1PrivateGetSubAccountAssetDetail = Entry('sub_account/asset_detail', ['v1', 'private'], 'GET', {'cost': 60})
35
+ v1_private_get_sub_account_ip_restriction = v1PrivateGetSubAccountIpRestriction = Entry('sub_account/ip_restriction', ['v1', 'private'], 'GET', {'cost': 10})
36
+ v1_private_get_asset_main_sub_transfer_history = v1PrivateGetAssetMainSubTransferHistory = Entry('asset/main_sub_transfer_history', ['v1', 'private'], 'GET', {'cost': 30})
31
37
  v1_private_get_token_interest = v1PrivateGetTokenInterest = Entry('token_interest', ['v1', 'private'], 'GET', {'cost': 60})
32
38
  v1_private_get_token_interest_token = v1PrivateGetTokenInterestToken = Entry('token_interest/{token}', ['v1', 'private'], 'GET', {'cost': 60})
33
39
  v1_private_get_interest_history = v1PrivateGetInterestHistory = Entry('interest/history', ['v1', 'private'], 'GET', {'cost': 60})
@@ -38,9 +44,12 @@ class ImplicitAPI:
38
44
  v1_private_get_client_transaction_history = v1PrivateGetClientTransactionHistory = Entry('client/transaction_history', ['v1', 'private'], 'GET', {'cost': 60})
39
45
  v1_private_post_order = v1PrivatePostOrder = Entry('order', ['v1', 'private'], 'POST', {'cost': 5})
40
46
  v1_private_post_asset_main_sub_transfer = v1PrivatePostAssetMainSubTransfer = Entry('asset/main_sub_transfer', ['v1', 'private'], 'POST', {'cost': 30})
47
+ v1_private_post_asset_ltv = v1PrivatePostAssetLtv = Entry('asset/ltv', ['v1', 'private'], 'POST', {'cost': 30})
41
48
  v1_private_post_asset_withdraw = v1PrivatePostAssetWithdraw = Entry('asset/withdraw', ['v1', 'private'], 'POST', {'cost': 30})
49
+ v1_private_post_asset_internal_withdraw = v1PrivatePostAssetInternalWithdraw = Entry('asset/internal_withdraw', ['v1', 'private'], 'POST', {'cost': 30})
42
50
  v1_private_post_interest_repay = v1PrivatePostInterestRepay = Entry('interest/repay', ['v1', 'private'], 'POST', {'cost': 60})
43
51
  v1_private_post_client_account_mode = v1PrivatePostClientAccountMode = Entry('client/account_mode', ['v1', 'private'], 'POST', {'cost': 120})
52
+ v1_private_post_client_position_mode = v1PrivatePostClientPositionMode = Entry('client/position_mode', ['v1', 'private'], 'POST', {'cost': 5})
44
53
  v1_private_post_client_leverage = v1PrivatePostClientLeverage = Entry('client/leverage', ['v1', 'private'], 'POST', {'cost': 120})
45
54
  v1_private_delete_order = v1PrivateDeleteOrder = Entry('order', ['v1', 'private'], 'DELETE', {'cost': 1})
46
55
  v1_private_delete_client_order = v1PrivateDeleteClientOrder = Entry('client/order', ['v1', 'private'], 'DELETE', {'cost': 1})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.55'
7
+ __version__ = '4.2.56'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.55'
5
+ __version__ = '4.2.56'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -723,7 +723,7 @@ class bingx(Exchange, ImplicitAPI):
723
723
  if paginate:
724
724
  return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 1440)
725
725
  market = self.market(symbol)
726
- request = {
726
+ request: dict = {
727
727
  'symbol': market['id'],
728
728
  }
729
729
  request['interval'] = self.safe_string(self.timeframes, timeframe, timeframe)
@@ -850,7 +850,7 @@ class bingx(Exchange, ImplicitAPI):
850
850
  """
851
851
  await self.load_markets()
852
852
  market = self.market(symbol)
853
- request = {
853
+ request: dict = {
854
854
  'symbol': market['id'],
855
855
  }
856
856
  if limit is not None:
@@ -1038,7 +1038,7 @@ class bingx(Exchange, ImplicitAPI):
1038
1038
  """
1039
1039
  await self.load_markets()
1040
1040
  market = self.market(symbol)
1041
- request = {
1041
+ request: dict = {
1042
1042
  'symbol': market['id'],
1043
1043
  }
1044
1044
  if limit is not None:
@@ -1121,7 +1121,7 @@ class bingx(Exchange, ImplicitAPI):
1121
1121
  """
1122
1122
  await self.load_markets()
1123
1123
  market = self.market(symbol)
1124
- request = {
1124
+ request: dict = {
1125
1125
  'symbol': market['id'],
1126
1126
  }
1127
1127
  response = await self.swapV2PublicGetQuotePremiumIndex(self.extend(request, params))
@@ -1217,7 +1217,7 @@ class bingx(Exchange, ImplicitAPI):
1217
1217
  if paginate:
1218
1218
  return await self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '8h', params)
1219
1219
  market = self.market(symbol)
1220
- request = {
1220
+ request: dict = {
1221
1221
  'symbol': market['id'],
1222
1222
  }
1223
1223
  if since is not None:
@@ -1270,7 +1270,7 @@ class bingx(Exchange, ImplicitAPI):
1270
1270
  """
1271
1271
  await self.load_markets()
1272
1272
  market = self.market(symbol)
1273
- request = {
1273
+ request: dict = {
1274
1274
  'symbol': market['id'],
1275
1275
  }
1276
1276
  response = await self.swapV2PublicGetQuoteOpenInterest(self.extend(request, params))
@@ -1322,7 +1322,7 @@ class bingx(Exchange, ImplicitAPI):
1322
1322
  """
1323
1323
  await self.load_markets()
1324
1324
  market = self.market(symbol)
1325
- request = {
1325
+ request: dict = {
1326
1326
  'symbol': market['id'],
1327
1327
  }
1328
1328
  response = None
@@ -1347,7 +1347,8 @@ class bingx(Exchange, ImplicitAPI):
1347
1347
  if symbols is not None:
1348
1348
  symbols = self.market_symbols(symbols)
1349
1349
  firstSymbol = self.safe_string(symbols, 0)
1350
- market = self.market(firstSymbol)
1350
+ if firstSymbol is not None:
1351
+ market = self.market(firstSymbol)
1351
1352
  type = None
1352
1353
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
1353
1354
  response = None
@@ -1358,7 +1359,7 @@ class bingx(Exchange, ImplicitAPI):
1358
1359
  tickers = self.safe_value(response, 'data')
1359
1360
  return self.parse_tickers(tickers, symbols)
1360
1361
 
1361
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1362
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1362
1363
  #
1363
1364
  # spot
1364
1365
  # {
@@ -1716,7 +1717,7 @@ class bingx(Exchange, ImplicitAPI):
1716
1717
  marketType = None
1717
1718
  marketType, params = self.handle_market_type_and_params('createOrder', market, params)
1718
1719
  type = type.upper()
1719
- request = {
1720
+ request: dict = {
1720
1721
  'symbol': market['id'],
1721
1722
  'type': type,
1722
1723
  'side': side.upper(),
@@ -1815,7 +1816,7 @@ class bingx(Exchange, ImplicitAPI):
1815
1816
  slTriggerPrice = self.safe_string_2(stopLoss, 'triggerPrice', 'stopPrice', stopLoss)
1816
1817
  slWorkingType = self.safe_string(stopLoss, 'workingType', 'MARK_PRICE')
1817
1818
  slType = self.safe_string(stopLoss, 'type', 'STOP_MARKET')
1818
- slRequest = {
1819
+ slRequest: dict = {
1819
1820
  'stopPrice': self.parse_to_numeric(self.price_to_precision(symbol, slTriggerPrice)),
1820
1821
  'workingType': slWorkingType,
1821
1822
  'type': slType,
@@ -1830,7 +1831,7 @@ class bingx(Exchange, ImplicitAPI):
1830
1831
  tkTriggerPrice = self.safe_string_2(takeProfit, 'triggerPrice', 'stopPrice', takeProfit)
1831
1832
  tkWorkingType = self.safe_string(takeProfit, 'workingType', 'MARK_PRICE')
1832
1833
  tpType = self.safe_string(takeProfit, 'type', 'TAKE_PROFIT_MARKET')
1833
- tpRequest = {
1834
+ tpRequest: dict = {
1834
1835
  'stopPrice': self.parse_to_numeric(self.price_to_precision(symbol, tkTriggerPrice)),
1835
1836
  'workingType': tkWorkingType,
1836
1837
  'type': tpType,
@@ -1961,7 +1962,7 @@ class bingx(Exchange, ImplicitAPI):
1961
1962
  orderRequest = self.create_order_request(marketId, type, side, amount, price, orderParams)
1962
1963
  ordersRequests.append(orderRequest)
1963
1964
  market = self.market(symbol)
1964
- request = {}
1965
+ request: dict = {}
1965
1966
  response = None
1966
1967
  if market['swap']:
1967
1968
  request['batchOrders'] = self.json(ordersRequests)
@@ -2335,7 +2336,7 @@ class bingx(Exchange, ImplicitAPI):
2335
2336
  raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
2336
2337
  await self.load_markets()
2337
2338
  market = self.market(symbol)
2338
- request = {
2339
+ request: dict = {
2339
2340
  'symbol': market['id'],
2340
2341
  }
2341
2342
  clientOrderId = self.safe_string_2(params, 'clientOrderId', 'clientOrderID')
@@ -2413,7 +2414,7 @@ class bingx(Exchange, ImplicitAPI):
2413
2414
  raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
2414
2415
  await self.load_markets()
2415
2416
  market = self.market(symbol)
2416
- request = {
2417
+ request: dict = {
2417
2418
  'symbol': market['id'],
2418
2419
  }
2419
2420
  response = None
@@ -2491,7 +2492,7 @@ class bingx(Exchange, ImplicitAPI):
2491
2492
  raise ArgumentsRequired(self.id + ' cancelOrders() requires a symbol argument')
2492
2493
  await self.load_markets()
2493
2494
  market = self.market(symbol)
2494
- request = {
2495
+ request: dict = {
2495
2496
  'symbol': market['id'],
2496
2497
  }
2497
2498
  clientOrderIds = self.safe_value(params, 'clientOrderIds')
@@ -2560,7 +2561,7 @@ class bingx(Exchange, ImplicitAPI):
2560
2561
  raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
2561
2562
  await self.load_markets()
2562
2563
  market = self.market(symbol)
2563
- request = {
2564
+ request: dict = {
2564
2565
  'symbol': market['id'],
2565
2566
  'orderId': id,
2566
2567
  }
@@ -2638,7 +2639,7 @@ class bingx(Exchange, ImplicitAPI):
2638
2639
  """
2639
2640
  await self.load_markets()
2640
2641
  market = None
2641
- request = {}
2642
+ request: dict = {}
2642
2643
  if symbol is not None:
2643
2644
  market = self.market(symbol)
2644
2645
  request['symbol'] = market['id']
@@ -2725,7 +2726,7 @@ class bingx(Exchange, ImplicitAPI):
2725
2726
  raise ArgumentsRequired(self.id + ' fetchClosedOrders() requires a symbol argument')
2726
2727
  await self.load_markets()
2727
2728
  market = self.market(symbol)
2728
- request = {
2729
+ request: dict = {
2729
2730
  'symbol': market['id'],
2730
2731
  }
2731
2732
  response = None
@@ -2813,7 +2814,7 @@ class bingx(Exchange, ImplicitAPI):
2813
2814
  accountsByType = self.safe_value(self.options, 'accountsByType', {})
2814
2815
  fromId = self.safe_string(accountsByType, fromAccount, fromAccount)
2815
2816
  toId = self.safe_string(accountsByType, toAccount, toAccount)
2816
- request = {
2817
+ request: dict = {
2817
2818
  'asset': currency['id'],
2818
2819
  'amount': self.currency_to_precision(code, amount),
2819
2820
  'type': fromId + '_' + toId,
@@ -2857,7 +2858,7 @@ class bingx(Exchange, ImplicitAPI):
2857
2858
  toId = self.safe_string(accountsByType, toAccount, toAccount)
2858
2859
  if fromId is None or toId is None:
2859
2860
  raise ExchangeError(self.id + ' fromAccount & toAccount parameter are required')
2860
- request = {
2861
+ request: dict = {
2861
2862
  'type': fromId + '_' + toId,
2862
2863
  }
2863
2864
  if since is not None:
@@ -2919,7 +2920,7 @@ class bingx(Exchange, ImplicitAPI):
2919
2920
  currency = self.currency(code)
2920
2921
  defaultRecvWindow = self.safe_integer(self.options, 'recvWindow')
2921
2922
  recvWindow = self.safe_integer(self.parse_params, 'recvWindow', defaultRecvWindow)
2922
- request = {
2923
+ request: dict = {
2923
2924
  'coin': currency['id'],
2924
2925
  'offset': 0,
2925
2926
  'limit': 1000,
@@ -3008,7 +3009,7 @@ class bingx(Exchange, ImplicitAPI):
3008
3009
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
3009
3010
  """
3010
3011
  await self.load_markets()
3011
- request = {
3012
+ request: dict = {
3012
3013
  }
3013
3014
  currency = None
3014
3015
  if code is not None:
@@ -3049,7 +3050,7 @@ class bingx(Exchange, ImplicitAPI):
3049
3050
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
3050
3051
  """
3051
3052
  await self.load_markets()
3052
- request = {
3053
+ request: dict = {
3053
3054
  }
3054
3055
  currency = None
3055
3056
  if code is not None:
@@ -3174,7 +3175,7 @@ class bingx(Exchange, ImplicitAPI):
3174
3175
  'internal': None,
3175
3176
  }
3176
3177
 
3177
- def parse_transaction_status(self, status):
3178
+ def parse_transaction_status(self, status: str):
3178
3179
  statuses = {
3179
3180
  '0': 'pending',
3180
3181
  '1': 'ok',
@@ -3213,7 +3214,7 @@ class bingx(Exchange, ImplicitAPI):
3213
3214
  marginMode = 'CROSSED'
3214
3215
  if marginMode != 'ISOLATED' and marginMode != 'CROSSED':
3215
3216
  raise BadRequest(self.id + ' setMarginMode() marginMode argument should be isolated or cross')
3216
- request = {
3217
+ request: dict = {
3217
3218
  'symbol': market['id'],
3218
3219
  'marginType': marginMode,
3219
3220
  }
@@ -3235,7 +3236,7 @@ class bingx(Exchange, ImplicitAPI):
3235
3236
  raise ArgumentsRequired(self.id + ' setMargin() requires a type parameter either 1(increase margin) or 2(decrease margin)')
3236
3237
  await self.load_markets()
3237
3238
  market = self.market(symbol)
3238
- request = {
3239
+ request: dict = {
3239
3240
  'symbol': market['id'],
3240
3241
  'amount': self.amount_to_precision(market['symbol'], amount),
3241
3242
  'type': type,
@@ -3261,7 +3262,7 @@ class bingx(Exchange, ImplicitAPI):
3261
3262
  """
3262
3263
  await self.load_markets()
3263
3264
  market = self.market(symbol)
3264
- request = {
3265
+ request: dict = {
3265
3266
  'symbol': market['id'],
3266
3267
  }
3267
3268
  response = await self.swapV2PrivateGetTradeLeverage(self.extend(request, params))
@@ -3293,7 +3294,7 @@ class bingx(Exchange, ImplicitAPI):
3293
3294
  self.check_required_argument('setLeverage', side, 'side', ['LONG', 'SHORT', 'BOTH'])
3294
3295
  await self.load_markets()
3295
3296
  market = self.market(symbol)
3296
- request = {
3297
+ request: dict = {
3297
3298
  'symbol': market['id'],
3298
3299
  'side': side,
3299
3300
  'leverage': leverage,
@@ -3329,7 +3330,7 @@ class bingx(Exchange, ImplicitAPI):
3329
3330
  market = self.market(symbol)
3330
3331
  now = self.milliseconds()
3331
3332
  response = None
3332
- request = {
3333
+ request: dict = {
3333
3334
  'symbol': market['id'],
3334
3335
  }
3335
3336
  if since is not None:
@@ -3493,7 +3494,7 @@ class bingx(Exchange, ImplicitAPI):
3493
3494
  walletType = 1
3494
3495
  if not self.in_array(walletType, [1, 2, 3]):
3495
3496
  raise BadRequest(self.id + ' withdraw() requires either 1 fund account, 2 standard futures account, 3 perpetual account for walletType')
3496
- request = {
3497
+ request: dict = {
3497
3498
  'coin': currency['id'],
3498
3499
  'address': address,
3499
3500
  'amount': self.number_to_string(amount),
@@ -3641,7 +3642,7 @@ class bingx(Exchange, ImplicitAPI):
3641
3642
  """
3642
3643
  await self.load_markets()
3643
3644
  market = self.market(symbol)
3644
- request = {
3645
+ request: dict = {
3645
3646
  'symbol': market['id'],
3646
3647
  }
3647
3648
  response = await self.swapV2PrivatePostTradeCloseAllPositions(self.extend(request, params))
@@ -3675,7 +3676,7 @@ class bingx(Exchange, ImplicitAPI):
3675
3676
  marketType, params = self.handle_market_type_and_params('closeAllPositions', None, params)
3676
3677
  if marketType == 'margin':
3677
3678
  raise BadRequest(self.id + ' closePositions() cannot be used for ' + marketType + ' markets')
3678
- request = {
3679
+ request: dict = {
3679
3680
  'recvWindow': recvWindow,
3680
3681
  }
3681
3682
  response = await self.swapV2PrivatePostTradeCloseAllPositions(self.extend(request, params))
@@ -3740,7 +3741,7 @@ class bingx(Exchange, ImplicitAPI):
3740
3741
  dualSidePosition = 'true'
3741
3742
  else:
3742
3743
  dualSidePosition = 'false'
3743
- request = {
3744
+ request: dict = {
3744
3745
  'dualSidePosition': dualSidePosition,
3745
3746
  }
3746
3747
  #
@@ -3929,7 +3930,7 @@ class bingx(Exchange, ImplicitAPI):
3929
3930
  def nonce(self):
3930
3931
  return self.milliseconds()
3931
3932
 
3932
- def set_sandbox_mode(self, enable):
3933
+ def set_sandbox_mode(self, enable: bool):
3933
3934
  super(bingx, self).set_sandbox_mode(enable)
3934
3935
  self.options['sandboxMode'] = enable
3935
3936
 
@@ -604,7 +604,7 @@ class upbit(Exchange, ImplicitAPI):
604
604
  # "trade_time": "104543",
605
605
  # "trade_date_kst": "20181122",
606
606
  # "trade_time_kst": "194543",
607
- # "trade_timestamp": 1542883543097,
607
+ # "trade_timestamp": 1542883543096,
608
608
  # "opening_price": 0.02976455,
609
609
  # "high_price": 0.02992577,
610
610
  # "low_price": 0.02934283,
@@ -106,6 +106,7 @@ class woo(Exchange, ImplicitAPI):
106
106
  'reduceMargin': False,
107
107
  'setLeverage': True,
108
108
  'setMargin': False,
109
+ 'setPositionMode': True,
109
110
  'transfer': True,
110
111
  'withdraw': True, # exchange have that endpoint disabled atm, but was once implemented in ccxt per old docs: https://kronosresearch.github.io/wootrade-documents/#token-withdraw
111
112
  },
@@ -180,10 +181,16 @@ class woo(Exchange, ImplicitAPI):
180
181
  'client/trade/{tid}': 1,
181
182
  'order/{oid}/trades': 1,
182
183
  'client/trades': 1,
184
+ 'client/hist_trades': 1,
185
+ 'staking/yield_history': 1,
186
+ 'client/holding': 1,
183
187
  'asset/deposit': 10,
184
188
  'asset/history': 60,
185
189
  'sub_account/all': 60,
186
190
  'sub_account/assets': 60,
191
+ 'sub_account/asset_detail': 60,
192
+ 'sub_account/ip_restriction': 10,
193
+ 'asset/main_sub_transfer_history': 30,
187
194
  'token_interest': 60,
188
195
  'token_interest/{token}': 60,
189
196
  'interest/history': 60,
@@ -196,9 +203,12 @@ class woo(Exchange, ImplicitAPI):
196
203
  'post': {
197
204
  'order': 5, # 2 requests per 1 second per symbol
198
205
  'asset/main_sub_transfer': 30, # 20 requests per 60 seconds
206
+ 'asset/ltv': 30,
199
207
  'asset/withdraw': 30, # implemented in ccxt, disabled on the exchange side https://kronosresearch.github.io/wootrade-documents/#token-withdraw
208
+ 'asset/internal_withdraw': 30,
200
209
  'interest/repay': 60,
201
210
  'client/account_mode': 120,
211
+ 'client/position_mode': 5,
202
212
  'client/leverage': 120,
203
213
  },
204
214
  'delete': {
@@ -2434,6 +2444,33 @@ class woo(Exchange, ImplicitAPI):
2434
2444
  sorted = self.sort_by(rates, 'timestamp')
2435
2445
  return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
2436
2446
 
2447
+ async def set_position_mode(self, hedged: bool, symbol: Str = None, params={}):
2448
+ """
2449
+ set hedged to True or False for a market
2450
+ :see: https://docs.woo.org/#update-position-mode
2451
+ :param bool hedged: set to True to use HEDGE_MODE, False for ONE_WAY
2452
+ :param str symbol: not used by woo setPositionMode
2453
+ :param dict [params]: extra parameters specific to the exchange API endpoint
2454
+ :returns dict: response from the exchange
2455
+ """
2456
+ hedgeMode = None
2457
+ if hedged:
2458
+ hedgeMode = 'HEDGE_MODE'
2459
+ else:
2460
+ hedgeMode = 'ONE_WAY'
2461
+ request = {
2462
+ 'position_mode': hedgeMode,
2463
+ }
2464
+ response = await self.v1PrivatePostClientPositionMode(self.extend(request, params))
2465
+ #
2466
+ # {
2467
+ # "success": True,
2468
+ # "data": {},
2469
+ # "timestamp": "1709195608551"
2470
+ # }
2471
+ #
2472
+ return response
2473
+
2437
2474
  async def fetch_leverage(self, symbol: str, params={}):
2438
2475
  await self.load_markets()
2439
2476
  response = await self.v3PrivateGetAccountinfo(params)
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.55'
7
+ __version__ = '4.2.56'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2032,7 +2032,7 @@ class Exchange(object):
2032
2032
  return self.arraySlice(result, -limit)
2033
2033
  return self.filter_by_limit(result, limit, key, sinceIsDefined)
2034
2034
 
2035
- def set_sandbox_mode(self, enabled):
2035
+ def set_sandbox_mode(self, enabled: bool):
2036
2036
  if enabled:
2037
2037
  if 'test' in self.urls:
2038
2038
  if isinstance(self.urls['api'], str):
@@ -1,6 +1,6 @@
1
1
  import sys
2
2
  import types
3
- from typing import Union, List, Optional, Any
3
+ from typing import Union, List, Optional, Any as PythonAny
4
4
  from decimal import Decimal
5
5
 
6
6
 
@@ -20,6 +20,7 @@ else:
20
20
  OrderSide = Literal['buy', 'sell']
21
21
  OrderType = Literal['limit', 'market']
22
22
  PositionSide = Literal['long', 'short']
23
+ Any = PythonAny
23
24
 
24
25
 
25
26
  class Entry: