ccxt 4.2.86__tar.gz → 4.2.88__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. {ccxt-4.2.86/ccxt.egg-info → ccxt-4.2.88}/PKG-INFO +5 -6
  2. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/ascendex.py +16 -6
  4. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/ascendex.py +16 -6
  6. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/exchange.py +1 -1
  7. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/binance.py +28 -11
  8. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bingx.py +39 -3
  9. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitfinex.py +2 -0
  10. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitfinex2.py +18 -4
  11. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitflyer.py +18 -0
  12. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitget.py +37 -22
  13. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitopro.py +2 -0
  14. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitrue.py +16 -8
  15. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitvavo.py +2 -0
  16. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/btcmarkets.py +1 -1
  17. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/btcturk.py +2 -1
  18. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinex.py +182 -58
  19. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/cryptocom.py +1 -1
  20. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/currencycom.py +1 -1
  21. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/delta.py +8 -6
  22. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/digifinex.py +9 -7
  23. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/exmo.py +15 -15
  24. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/gate.py +23 -20
  25. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/hitbtc.py +31 -7
  26. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/htx.py +2 -2
  27. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/huobijp.py +1 -1
  28. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/hyperliquid.py +242 -16
  29. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/idex.py +1 -1
  30. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/krakenfutures.py +4 -5
  31. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/kucoin.py +7 -4
  32. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/kucoinfutures.py +2 -2
  33. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/lbank.py +2 -0
  34. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/mexc.py +4 -4
  35. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/oceanex.py +1 -1
  36. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/okx.py +29 -15
  37. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/phemex.py +6 -4
  38. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/wazirx.py +1 -1
  39. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/zonda.py +2 -0
  40. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/exchange.py +22 -3
  41. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/types.py +12 -0
  42. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/binance.py +28 -11
  43. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bingx.py +39 -3
  44. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitfinex.py +2 -0
  45. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitfinex2.py +18 -4
  46. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitflyer.py +18 -0
  47. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitget.py +37 -22
  48. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitopro.py +2 -0
  49. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitrue.py +16 -8
  50. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitvavo.py +2 -0
  51. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/btcmarkets.py +1 -1
  52. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/btcturk.py +2 -1
  53. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinex.py +182 -58
  54. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/cryptocom.py +1 -1
  55. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/currencycom.py +1 -1
  56. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/delta.py +8 -6
  57. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/digifinex.py +9 -7
  58. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/exmo.py +15 -15
  59. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/gate.py +23 -20
  60. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/hitbtc.py +31 -7
  61. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/htx.py +2 -2
  62. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/huobijp.py +1 -1
  63. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/hyperliquid.py +241 -16
  64. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/idex.py +1 -1
  65. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/krakenfutures.py +4 -5
  66. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/kucoin.py +7 -4
  67. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/kucoinfutures.py +2 -2
  68. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/lbank.py +2 -0
  69. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/mexc.py +4 -4
  70. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/oceanex.py +1 -1
  71. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/okx.py +29 -15
  72. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/phemex.py +6 -4
  73. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/__init__.py +1 -1
  74. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/kucoin.py +10 -6
  75. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_last_price.py +0 -1
  76. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_shared_methods.py +1 -2
  77. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_status.py +1 -1
  78. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/wazirx.py +1 -1
  79. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/zonda.py +2 -0
  80. {ccxt-4.2.86 → ccxt-4.2.88/ccxt.egg-info}/PKG-INFO +5 -6
  81. {ccxt-4.2.86 → ccxt-4.2.88}/package.json +3 -2
  82. {ccxt-4.2.86 → ccxt-4.2.88}/LICENSE.txt +0 -0
  83. {ccxt-4.2.86 → ccxt-4.2.88}/MANIFEST.in +0 -0
  84. {ccxt-4.2.86 → ccxt-4.2.88}/README.rst +0 -0
  85. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/__init__.py +0 -0
  86. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/ace.py +0 -0
  87. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/alpaca.py +0 -0
  88. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/ascendex.py +0 -0
  89. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bequant.py +0 -0
  90. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bigone.py +0 -0
  91. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/binance.py +0 -0
  92. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/binancecoinm.py +0 -0
  93. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/binanceus.py +0 -0
  94. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/binanceusdm.py +0 -0
  95. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bingx.py +0 -0
  96. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bit2c.py +0 -0
  97. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitbank.py +0 -0
  98. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitbay.py +0 -0
  99. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitbns.py +0 -0
  100. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitcoincom.py +0 -0
  101. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitfinex.py +0 -0
  102. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitfinex2.py +0 -0
  103. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitflyer.py +0 -0
  104. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitget.py +0 -0
  105. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bithumb.py +0 -0
  106. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitmart.py +0 -0
  107. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitmex.py +0 -0
  108. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitopro.py +0 -0
  109. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitpanda.py +0 -0
  110. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitrue.py +0 -0
  111. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitso.py +0 -0
  112. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitstamp.py +0 -0
  113. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitteam.py +0 -0
  114. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bitvavo.py +0 -0
  115. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bl3p.py +0 -0
  116. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/blockchaincom.py +0 -0
  117. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/blofin.py +0 -0
  118. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/btcalpha.py +0 -0
  119. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/btcbox.py +0 -0
  120. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/btcmarkets.py +0 -0
  121. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/btcturk.py +0 -0
  122. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/bybit.py +0 -0
  123. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/cex.py +0 -0
  124. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinbase.py +0 -0
  125. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinbaseinternational.py +0 -0
  126. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinbasepro.py +0 -0
  127. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coincheck.py +0 -0
  128. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinex.py +0 -0
  129. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinlist.py +0 -0
  130. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinmate.py +0 -0
  131. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinmetro.py +0 -0
  132. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinone.py +0 -0
  133. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinsph.py +0 -0
  134. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/coinspot.py +0 -0
  135. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/cryptocom.py +0 -0
  136. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/currencycom.py +0 -0
  137. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/delta.py +0 -0
  138. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/deribit.py +0 -0
  139. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/digifinex.py +0 -0
  140. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/exmo.py +0 -0
  141. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/fmfwio.py +0 -0
  142. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/gate.py +0 -0
  143. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/gateio.py +0 -0
  144. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/gemini.py +0 -0
  145. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/hitbtc.py +0 -0
  146. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/hitbtc3.py +0 -0
  147. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/hollaex.py +0 -0
  148. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/htx.py +0 -0
  149. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/huobi.py +0 -0
  150. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/huobijp.py +0 -0
  151. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/hyperliquid.py +0 -0
  152. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/idex.py +0 -0
  153. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/independentreserve.py +0 -0
  154. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/indodax.py +0 -0
  155. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/kraken.py +0 -0
  156. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/krakenfutures.py +0 -0
  157. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/kucoin.py +0 -0
  158. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/kucoinfutures.py +0 -0
  159. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/kuna.py +0 -0
  160. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/latoken.py +0 -0
  161. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/lbank.py +0 -0
  162. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/luno.py +0 -0
  163. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/lykke.py +0 -0
  164. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/mercado.py +0 -0
  165. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/mexc.py +0 -0
  166. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/ndax.py +0 -0
  167. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/novadax.py +0 -0
  168. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/oceanex.py +0 -0
  169. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/okcoin.py +0 -0
  170. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/okx.py +0 -0
  171. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/onetrading.py +0 -0
  172. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/p2b.py +0 -0
  173. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/paymium.py +0 -0
  174. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/phemex.py +0 -0
  175. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/poloniex.py +0 -0
  176. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/poloniexfutures.py +0 -0
  177. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/probit.py +0 -0
  178. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/timex.py +0 -0
  179. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/tokocrypto.py +0 -0
  180. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/tradeogre.py +0 -0
  181. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/upbit.py +0 -0
  182. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/wavesexchange.py +0 -0
  183. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/wazirx.py +0 -0
  184. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/whitebit.py +0 -0
  185. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/woo.py +0 -0
  186. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/yobit.py +0 -0
  187. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/zaif.py +0 -0
  188. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/abstract/zonda.py +0 -0
  189. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/ace.py +0 -0
  190. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/alpaca.py +0 -0
  191. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/ace.py +0 -0
  192. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/alpaca.py +0 -0
  193. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/__init__.py +0 -0
  194. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/throttler.py +0 -0
  195. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/__init__.py +0 -0
  196. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  197. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/cache.py +0 -0
  198. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/client.py +0 -0
  199. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/fast_client.py +0 -0
  200. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/functions.py +0 -0
  201. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/future.py +0 -0
  202. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/order_book.py +0 -0
  203. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  204. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bequant.py +0 -0
  205. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bigone.py +0 -0
  206. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/binancecoinm.py +0 -0
  207. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/binanceus.py +0 -0
  208. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/binanceusdm.py +0 -0
  209. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bit2c.py +0 -0
  210. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitbank.py +0 -0
  211. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitbay.py +0 -0
  212. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitbns.py +0 -0
  213. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitcoincom.py +0 -0
  214. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bithumb.py +0 -0
  215. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitmart.py +0 -0
  216. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitmex.py +0 -0
  217. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitpanda.py +0 -0
  218. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitso.py +0 -0
  219. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitstamp.py +0 -0
  220. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bitteam.py +0 -0
  221. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bl3p.py +0 -0
  222. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/blockchaincom.py +0 -0
  223. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/blofin.py +0 -0
  224. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/btcalpha.py +0 -0
  225. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/btcbox.py +0 -0
  226. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/bybit.py +0 -0
  227. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/cex.py +0 -0
  228. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinbase.py +0 -0
  229. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinbaseinternational.py +0 -0
  230. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinbasepro.py +0 -0
  231. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coincheck.py +0 -0
  232. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinlist.py +0 -0
  233. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinmate.py +0 -0
  234. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinmetro.py +0 -0
  235. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinone.py +0 -0
  236. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinsph.py +0 -0
  237. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/coinspot.py +0 -0
  238. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/deribit.py +0 -0
  239. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/flowbtc.py +0 -0
  240. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/fmfwio.py +0 -0
  241. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/gateio.py +0 -0
  242. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/gemini.py +0 -0
  243. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/hitbtc3.py +0 -0
  244. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/hollaex.py +0 -0
  245. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/huobi.py +0 -0
  246. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/independentreserve.py +0 -0
  247. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/indodax.py +0 -0
  248. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/kraken.py +0 -0
  249. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/kuna.py +0 -0
  250. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/latoken.py +0 -0
  251. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/luno.py +0 -0
  252. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/lykke.py +0 -0
  253. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/mercado.py +0 -0
  254. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/ndax.py +0 -0
  255. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/novadax.py +0 -0
  256. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/okcoin.py +0 -0
  257. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/onetrading.py +0 -0
  258. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/p2b.py +0 -0
  259. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/paymium.py +0 -0
  260. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/poloniex.py +0 -0
  261. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/poloniexfutures.py +0 -0
  262. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/probit.py +0 -0
  263. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/timex.py +0 -0
  264. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/tokocrypto.py +0 -0
  265. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/tradeogre.py +0 -0
  266. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/upbit.py +0 -0
  267. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/wavesexchange.py +0 -0
  268. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/whitebit.py +0 -0
  269. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/woo.py +0 -0
  270. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/yobit.py +0 -0
  271. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/async_support/zaif.py +0 -0
  272. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/__init__.py +0 -0
  273. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/decimal_to_precision.py +0 -0
  274. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/errors.py +0 -0
  275. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/base/precise.py +0 -0
  276. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bequant.py +0 -0
  277. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bigone.py +0 -0
  278. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/binancecoinm.py +0 -0
  279. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/binanceus.py +0 -0
  280. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/binanceusdm.py +0 -0
  281. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bit2c.py +0 -0
  282. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitbank.py +0 -0
  283. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitbay.py +0 -0
  284. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitbns.py +0 -0
  285. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitcoincom.py +0 -0
  286. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bithumb.py +0 -0
  287. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitmart.py +0 -0
  288. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitmex.py +0 -0
  289. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitpanda.py +0 -0
  290. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitso.py +0 -0
  291. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitstamp.py +0 -0
  292. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bitteam.py +0 -0
  293. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bl3p.py +0 -0
  294. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/blockchaincom.py +0 -0
  295. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/blofin.py +0 -0
  296. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/btcalpha.py +0 -0
  297. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/btcbox.py +0 -0
  298. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/bybit.py +0 -0
  299. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/cex.py +0 -0
  300. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinbase.py +0 -0
  301. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinbaseinternational.py +0 -0
  302. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinbasepro.py +0 -0
  303. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coincheck.py +0 -0
  304. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinlist.py +0 -0
  305. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinmate.py +0 -0
  306. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinmetro.py +0 -0
  307. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinone.py +0 -0
  308. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinsph.py +0 -0
  309. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/coinspot.py +0 -0
  310. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/deribit.py +0 -0
  311. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/flowbtc.py +0 -0
  312. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/fmfwio.py +0 -0
  313. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/gateio.py +0 -0
  314. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/gemini.py +0 -0
  315. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/hitbtc3.py +0 -0
  316. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/hollaex.py +0 -0
  317. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/huobi.py +0 -0
  318. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/independentreserve.py +0 -0
  319. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/indodax.py +0 -0
  320. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/kraken.py +0 -0
  321. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/kuna.py +0 -0
  322. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/latoken.py +0 -0
  323. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/luno.py +0 -0
  324. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/lykke.py +0 -0
  325. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/mercado.py +0 -0
  326. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/ndax.py +0 -0
  327. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/novadax.py +0 -0
  328. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/okcoin.py +0 -0
  329. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/onetrading.py +0 -0
  330. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/p2b.py +0 -0
  331. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/paymium.py +0 -0
  332. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/poloniex.py +0 -0
  333. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/poloniexfutures.py +0 -0
  334. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/alpaca.py +0 -0
  335. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/ascendex.py +0 -0
  336. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bequant.py +0 -0
  337. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/binance.py +0 -0
  338. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/binancecoinm.py +0 -0
  339. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/binanceus.py +0 -0
  340. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/binanceusdm.py +0 -0
  341. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bingx.py +0 -0
  342. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitcoincom.py +0 -0
  343. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitfinex.py +0 -0
  344. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitfinex2.py +0 -0
  345. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitget.py +0 -0
  346. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bithumb.py +0 -0
  347. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitmart.py +0 -0
  348. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitmex.py +0 -0
  349. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitopro.py +0 -0
  350. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitpanda.py +0 -0
  351. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitrue.py +0 -0
  352. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitstamp.py +0 -0
  353. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bitvavo.py +0 -0
  354. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/blockchaincom.py +0 -0
  355. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/bybit.py +0 -0
  356. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/cex.py +0 -0
  357. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coinbase.py +0 -0
  358. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coinbaseinternational.py +0 -0
  359. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coinbasepro.py +0 -0
  360. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coincheck.py +0 -0
  361. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coinex.py +0 -0
  362. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/coinone.py +0 -0
  363. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/cryptocom.py +0 -0
  364. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/currencycom.py +0 -0
  365. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/deribit.py +0 -0
  366. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/exmo.py +0 -0
  367. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/gate.py +0 -0
  368. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/gateio.py +0 -0
  369. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/gemini.py +0 -0
  370. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/hitbtc.py +0 -0
  371. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/hollaex.py +0 -0
  372. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/htx.py +0 -0
  373. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/huobi.py +0 -0
  374. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/huobijp.py +0 -0
  375. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/hyperliquid.py +0 -0
  376. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/idex.py +0 -0
  377. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/independentreserve.py +0 -0
  378. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/kraken.py +0 -0
  379. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/krakenfutures.py +0 -0
  380. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/kucoinfutures.py +0 -0
  381. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/lbank.py +0 -0
  382. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/luno.py +0 -0
  383. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/mexc.py +0 -0
  384. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/ndax.py +0 -0
  385. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/okcoin.py +0 -0
  386. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/okx.py +0 -0
  387. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/onetrading.py +0 -0
  388. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/p2b.py +0 -0
  389. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/phemex.py +0 -0
  390. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/poloniex.py +0 -0
  391. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/poloniexfutures.py +0 -0
  392. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/probit.py +0 -0
  393. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/upbit.py +0 -0
  394. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/wazirx.py +0 -0
  395. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/whitebit.py +0 -0
  396. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/pro/woo.py +0 -0
  397. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/probit.py +0 -0
  398. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/__init__.py +0 -0
  399. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  400. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  401. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  402. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  403. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  404. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  405. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  406. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  407. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  408. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  409. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  410. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  411. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  412. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  413. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  414. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  415. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  416. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  417. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  418. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  419. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  420. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  421. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  422. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  423. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  424. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  425. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  426. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  427. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  428. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  429. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  430. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  431. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  432. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  433. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  434. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  435. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  436. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  437. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  438. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  439. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  440. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  441. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  442. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  443. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  444. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  445. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  446. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  447. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  448. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  449. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  450. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  451. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  452. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  453. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  454. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  455. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  456. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  457. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  458. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  459. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  460. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  461. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  462. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  463. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  464. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  465. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  466. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  467. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  468. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  469. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  470. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  471. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  472. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  473. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  474. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  475. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  476. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  477. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  478. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  479. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  480. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  481. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  482. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  483. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  484. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  485. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/_version.py +0 -0
  486. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  487. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  488. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  489. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  490. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  491. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  492. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  493. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  494. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/utils.py +0 -0
  495. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/__init__.py +0 -0
  496. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/__init__.py +0 -0
  497. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_account.py +0 -0
  498. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_balance.py +0 -0
  499. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_borrow_interest.py +0 -0
  500. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_borrow_rate.py +0 -0
  501. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_calculate_fee.py +0 -0
  502. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_crypto.py +0 -0
  503. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_currency.py +0 -0
  504. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_datetime.py +0 -0
  505. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  506. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_deep_extend.py +0 -0
  507. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  508. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  509. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_funding_rate_history.py +0 -0
  510. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_ledger_entry.py +0 -0
  511. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_ledger_item.py +0 -0
  512. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_leverage_tier.py +0 -0
  513. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_margin_mode.py +0 -0
  514. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_margin_modification.py +0 -0
  515. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_market.py +0 -0
  516. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_number.py +0 -0
  517. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_ohlcv.py +0 -0
  518. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_open_interest.py +0 -0
  519. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_order.py +0 -0
  520. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_order_book.py +0 -0
  521. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_position.py +0 -0
  522. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_throttle.py +0 -0
  523. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_ticker.py +0 -0
  524. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_trade.py +0 -0
  525. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_trading_fee.py +0 -0
  526. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/base/test_transaction.py +0 -0
  527. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/test_async.py +0 -0
  528. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/test/test_sync.py +0 -0
  529. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/timex.py +0 -0
  530. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/tokocrypto.py +0 -0
  531. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/tradeogre.py +0 -0
  532. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/upbit.py +0 -0
  533. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/wavesexchange.py +0 -0
  534. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/whitebit.py +0 -0
  535. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/woo.py +0 -0
  536. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/yobit.py +0 -0
  537. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt/zaif.py +0 -0
  538. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt.egg-info/SOURCES.txt +0 -0
  539. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt.egg-info/dependency_links.txt +0 -0
  540. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt.egg-info/requires.txt +0 -0
  541. {ccxt-4.2.86 → ccxt-4.2.88}/ccxt.egg-info/top_level.txt +0 -0
  542. {ccxt-4.2.86 → ccxt-4.2.88}/setup.cfg +0 -0
  543. {ccxt-4.2.86 → ccxt-4.2.88}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.86
3
+ Version: 4.2.88
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
@@ -33,7 +33,6 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
33
33
 
34
34
 
35
35
  ## Sponsored Promotion
36
- [![bitget](https://github.com/ccxt/ccxt/assets/43336371/71359af3-c78f-4077-a64c-ac0bfe1fa01c)](https://www.bitget.com/events/competition/86c98f96df155e6bb397e866dcd86afc?channelCode=ccxt&vipCode=tg9j)
37
36
 
38
37
  ## See Also
39
38
 
@@ -66,7 +65,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
66
65
  | [![okx](https://user-images.githubusercontent.com/1294454/152485636-38b19e4a-bece-4dec-979a-5982859ffc04.jpg)](https://www.okx.com/join/CCXT2023) | okx | [OKX](https://www.okx.com/join/CCXT2023) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://www.okx.com/docs-v5/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with OKX using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.okx.com/join/CCXT2023) |
67
66
  | [![woo](https://user-images.githubusercontent.com/1294454/150730761-1a00e5e0-d28c-480f-9e65-089ce3e6ef3b.jpg)](https://x.woo.org/register?ref=YWOWC96B) | woo | [WOO X](https://x.woo.org/register?ref=YWOWC96B) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.woo.org/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with WOO X using CCXT's referral link for a 35% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d35%25&color=orange)](https://x.woo.org/register?ref=YWOWC96B) |
68
67
 
69
- ## Supported Cryptocurrency Exchange Markets
68
+ ## Supported Cryptocurrency Exchanges
70
69
 
71
70
  The CCXT library currently supports the following 97 cryptocurrency exchange markets and trading APIs:
72
71
 
@@ -226,13 +225,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
226
225
 
227
226
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
228
227
 
229
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.86/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.2.86/dist/ccxt.browser.js
228
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.88/dist/ccxt.browser.js
229
+ * unpkg: https://unpkg.com/ccxt@4.2.88/dist/ccxt.browser.js
231
230
 
232
231
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
233
232
 
234
233
  ```HTML
235
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.86/dist/ccxt.browser.js"></script>
234
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.88/dist/ccxt.browser.js"></script>
236
235
  ```
237
236
 
238
237
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.86'
25
+ __version__ = '4.2.88'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -2701,7 +2701,7 @@ class ascendex(Exchange, ImplicitAPI):
2701
2701
  result = self.parse_funding_rates(contracts)
2702
2702
  return self.filter_by_array(result, 'symbol', symbols)
2703
2703
 
2704
- def modify_margin_helper(self, symbol: str, amount, type, params={}):
2704
+ def modify_margin_helper(self, symbol: str, amount, type, params={}) -> MarginModification:
2705
2705
  self.load_markets()
2706
2706
  self.load_accounts()
2707
2707
  market = self.market(symbol)
@@ -2728,19 +2728,29 @@ class ascendex(Exchange, ImplicitAPI):
2728
2728
  'type': type,
2729
2729
  })
2730
2730
 
2731
- def parse_margin_modification(self, data, market: Market = None):
2731
+ def parse_margin_modification(self, data, market: Market = None) -> MarginModification:
2732
+ #
2733
+ # addMargin/reduceMargin
2734
+ #
2735
+ # {
2736
+ # "code": 0
2737
+ # }
2738
+ #
2732
2739
  errorCode = self.safe_string(data, 'code')
2733
2740
  status = 'ok' if (errorCode == '0') else 'failed'
2734
2741
  return {
2735
2742
  'info': data,
2743
+ 'symbol': market['symbol'],
2736
2744
  'type': None,
2737
2745
  'amount': None,
2746
+ 'total': None,
2738
2747
  'code': market['quote'],
2739
- 'symbol': market['symbol'],
2740
2748
  'status': status,
2749
+ 'timestamp': None,
2750
+ 'datetime': None,
2741
2751
  }
2742
2752
 
2743
- def reduce_margin(self, symbol: str, amount, params={}):
2753
+ def reduce_margin(self, symbol: str, amount, params={}) -> MarginModification:
2744
2754
  """
2745
2755
  remove margin from a position
2746
2756
  :param str symbol: unified market symbol
@@ -2750,7 +2760,7 @@ class ascendex(Exchange, ImplicitAPI):
2750
2760
  """
2751
2761
  return self.modify_margin_helper(symbol, -amount, 'reduce', params)
2752
2762
 
2753
- def add_margin(self, symbol: str, amount, params={}):
2763
+ def add_margin(self, symbol: str, amount, params={}) -> MarginModification:
2754
2764
  """
2755
2765
  add margin
2756
2766
  :param str symbol: unified market symbol
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.86'
7
+ __version__ = '4.2.88'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -2701,7 +2701,7 @@ class ascendex(Exchange, ImplicitAPI):
2701
2701
  result = self.parse_funding_rates(contracts)
2702
2702
  return self.filter_by_array(result, 'symbol', symbols)
2703
2703
 
2704
- async def modify_margin_helper(self, symbol: str, amount, type, params={}):
2704
+ async def modify_margin_helper(self, symbol: str, amount, type, params={}) -> MarginModification:
2705
2705
  await self.load_markets()
2706
2706
  await self.load_accounts()
2707
2707
  market = self.market(symbol)
@@ -2728,19 +2728,29 @@ class ascendex(Exchange, ImplicitAPI):
2728
2728
  'type': type,
2729
2729
  })
2730
2730
 
2731
- def parse_margin_modification(self, data, market: Market = None):
2731
+ def parse_margin_modification(self, data, market: Market = None) -> MarginModification:
2732
+ #
2733
+ # addMargin/reduceMargin
2734
+ #
2735
+ # {
2736
+ # "code": 0
2737
+ # }
2738
+ #
2732
2739
  errorCode = self.safe_string(data, 'code')
2733
2740
  status = 'ok' if (errorCode == '0') else 'failed'
2734
2741
  return {
2735
2742
  'info': data,
2743
+ 'symbol': market['symbol'],
2736
2744
  'type': None,
2737
2745
  'amount': None,
2746
+ 'total': None,
2738
2747
  'code': market['quote'],
2739
- 'symbol': market['symbol'],
2740
2748
  'status': status,
2749
+ 'timestamp': None,
2750
+ 'datetime': None,
2741
2751
  }
2742
2752
 
2743
- async def reduce_margin(self, symbol: str, amount, params={}):
2753
+ async def reduce_margin(self, symbol: str, amount, params={}) -> MarginModification:
2744
2754
  """
2745
2755
  remove margin from a position
2746
2756
  :param str symbol: unified market symbol
@@ -2750,7 +2760,7 @@ class ascendex(Exchange, ImplicitAPI):
2750
2760
  """
2751
2761
  return await self.modify_margin_helper(symbol, -amount, 'reduce', params)
2752
2762
 
2753
- async def add_margin(self, symbol: str, amount, params={}):
2763
+ async def add_margin(self, symbol: str, amount, params={}) -> MarginModification:
2754
2764
  """
2755
2765
  add margin
2756
2766
  :param str symbol: unified market symbol
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.86'
5
+ __version__ = '4.2.88'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -8,7 +8,7 @@ from ccxt.abstract.binance import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import json
11
- from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, MarginMode, MarginModes, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
+ from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import PermissionDenied
@@ -1883,7 +1883,7 @@ class binance(Exchange, ImplicitAPI):
1883
1883
  '-4140': BadRequest, # Invalid symbol status for opening position
1884
1884
  '-4141': OperationRejected, # Symbol is closed
1885
1885
  '-4144': BadSymbol, # Invalid pair
1886
- '-4164': OperationRejected, # Leverage reduction is not supported in Isolated Margin Mode with open positions
1886
+ '-4164': InvalidOrder, # {"code":-4164,"msg":"Order's notional must be no smaller than 20(unless you choose reduce only)."}
1887
1887
  '-4165': BadRequest, # Invalid time interval
1888
1888
  '-4167': BadRequest, # Unable to adjust to Multi-Assets mode with symbols of USDⓈ-M Futures under isolated-margin mode.
1889
1889
  '-4168': BadRequest, # Unable to adjust to isolated-margin mode under the Multi-Assets mode.
@@ -8500,7 +8500,7 @@ class binance(Exchange, ImplicitAPI):
8500
8500
  'previousFundingDatetime': None,
8501
8501
  }
8502
8502
 
8503
- def parse_account_positions(self, account):
8503
+ def parse_account_positions(self, account, filterClosed=False):
8504
8504
  positions = self.safe_list(account, 'positions')
8505
8505
  assets = self.safe_list(account, 'assets', [])
8506
8506
  balances = {}
@@ -8522,7 +8522,8 @@ class binance(Exchange, ImplicitAPI):
8522
8522
  code = market['quote'] if market['linear'] else market['base']
8523
8523
  maintenanceMargin = self.safe_string(position, 'maintMargin')
8524
8524
  # check for maintenance margin so empty positions are not returned
8525
- if (maintenanceMargin != '0') and (maintenanceMargin != '0.00000000'):
8525
+ isPositionOpen = (maintenanceMargin != '0') and (maintenanceMargin != '0.00000000')
8526
+ if not filterClosed or isPositionOpen:
8526
8527
  # sometimes not all the codes are correctly returned...
8527
8528
  if code in balances:
8528
8529
  parsed = self.parse_account_position(self.extend(position, {
@@ -9288,10 +9289,11 @@ class binance(Exchange, ImplicitAPI):
9288
9289
  :see: https://binance-docs.github.io/apidocs/delivery/en/#account-information-user_data
9289
9290
  :see: https://binance-docs.github.io/apidocs/pm/en/#get-um-account-detail-user_data
9290
9291
  :see: https://binance-docs.github.io/apidocs/pm/en/#get-cm-account-detail-user_data
9291
- :param str[]|None symbols: list of unified market symbols
9292
+ :param str[] [symbols]: list of unified market symbols
9292
9293
  :param dict [params]: extra parameters specific to the exchange API endpoint
9293
9294
  :param boolean [params.portfolioMargin]: set to True if you would like to fetch positions in a portfolio margin account
9294
9295
  :param str [params.subType]: "linear" or "inverse"
9296
+ :param boolean [params.filterClosed]: set to True if you would like to filter out closed positions, default is False
9295
9297
  :returns dict: data on account positions
9296
9298
  """
9297
9299
  if symbols is not None:
@@ -9319,7 +9321,9 @@ class binance(Exchange, ImplicitAPI):
9319
9321
  response = await self.dapiPrivateGetAccount(params)
9320
9322
  else:
9321
9323
  raise NotSupported(self.id + ' fetchPositions() supports linear and inverse contracts only')
9322
- result = self.parse_account_positions(response)
9324
+ filterClosed = None
9325
+ filterClosed, params = self.handle_option_and_params(params, 'fetchAccountPositions', 'filterClosed', False)
9326
+ result = self.parse_account_positions(response, filterClosed)
9323
9327
  symbols = self.market_symbols(symbols)
9324
9328
  return self.filter_by_array_positions(result, 'symbol', symbols, False)
9325
9329
 
@@ -10287,7 +10291,7 @@ class binance(Exchange, ImplicitAPI):
10287
10291
  raise NotSupported(self.id + ' add / reduce margin only supported with type future or delivery')
10288
10292
  await self.load_markets()
10289
10293
  market = self.market(symbol)
10290
- amount = self.cost_to_precision(symbol, amount)
10294
+ amount = self.amount_to_precision(symbol, amount)
10291
10295
  request = {
10292
10296
  'type': addOrReduce,
10293
10297
  'symbol': market['id'],
@@ -10313,7 +10317,17 @@ class binance(Exchange, ImplicitAPI):
10313
10317
  'code': code,
10314
10318
  })
10315
10319
 
10316
- def parse_margin_modification(self, data, market: Market = None):
10320
+ def parse_margin_modification(self, data, market: Market = None) -> MarginModification:
10321
+ #
10322
+ # add/reduce margin
10323
+ #
10324
+ # {
10325
+ # "code": 200,
10326
+ # "msg": "Successfully modify position margin.",
10327
+ # "amount": 0.001,
10328
+ # "type": 1
10329
+ # }
10330
+ #
10317
10331
  rawType = self.safe_integer(data, 'type')
10318
10332
  resultType = 'add' if (rawType == 1) else 'reduce'
10319
10333
  resultAmount = self.safe_number(data, 'amount')
@@ -10321,14 +10335,17 @@ class binance(Exchange, ImplicitAPI):
10321
10335
  status = 'ok' if (errorCode == '200') else 'failed'
10322
10336
  return {
10323
10337
  'info': data,
10338
+ 'symbol': market['symbol'],
10324
10339
  'type': resultType,
10325
10340
  'amount': resultAmount,
10341
+ 'total': None,
10326
10342
  'code': None,
10327
- 'symbol': market['symbol'],
10328
10343
  'status': status,
10344
+ 'timestamp': None,
10345
+ 'datetime': None,
10329
10346
  }
10330
10347
 
10331
- async def reduce_margin(self, symbol: str, amount, params={}):
10348
+ async def reduce_margin(self, symbol: str, amount, params={}) -> MarginModification:
10332
10349
  """
10333
10350
  :see: https://binance-docs.github.io/apidocs/delivery/en/#modify-isolated-position-margin-trade
10334
10351
  :see: https://binance-docs.github.io/apidocs/futures/en/#modify-isolated-position-margin-trade
@@ -10340,7 +10357,7 @@ class binance(Exchange, ImplicitAPI):
10340
10357
  """
10341
10358
  return await self.modify_margin_helper(symbol, amount, 2, params)
10342
10359
 
10343
- async def add_margin(self, symbol: str, amount, params={}):
10360
+ async def add_margin(self, symbol: str, amount, params={}) -> MarginModification:
10344
10361
  """
10345
10362
  :see: https://binance-docs.github.io/apidocs/delivery/en/#modify-isolated-position-margin-trade
10346
10363
  :see: https://binance-docs.github.io/apidocs/futures/en/#modify-isolated-position-margin-trade
@@ -8,7 +8,7 @@ from ccxt.abstract.bingx import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import numbers
11
- from ccxt.base.types import Balances, Currency, Int, Leverage, MarginMode, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
+ from ccxt.base.types import Balances, Currency, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import PermissionDenied
@@ -44,6 +44,7 @@ class bingx(Exchange, ImplicitAPI):
44
44
  'swap': True,
45
45
  'future': False,
46
46
  'option': False,
47
+ 'addMargin': True,
47
48
  'cancelAllOrders': True,
48
49
  'cancelOrder': True,
49
50
  'cancelOrders': True,
@@ -90,6 +91,7 @@ class bingx(Exchange, ImplicitAPI):
90
91
  'fetchTrades': True,
91
92
  'fetchTransfers': True,
92
93
  'fetchWithdrawals': True,
94
+ 'reduceMargin': True,
93
95
  'setLeverage': True,
94
96
  'setMargin': True,
95
97
  'setMarginMode': True,
@@ -3247,7 +3249,19 @@ class bingx(Exchange, ImplicitAPI):
3247
3249
  }
3248
3250
  return await self.swapV2PrivatePostTradeMarginType(self.extend(request, params))
3249
3251
 
3250
- async def set_margin(self, symbol: str, amount: float, params={}):
3252
+ async def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
3253
+ request = {
3254
+ 'type': 1,
3255
+ }
3256
+ return await self.set_margin(symbol, amount, self.extend(request, params))
3257
+
3258
+ async def reduce_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
3259
+ request = {
3260
+ 'type': 2,
3261
+ }
3262
+ return await self.set_margin(symbol, amount, self.extend(request, params))
3263
+
3264
+ async def set_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
3251
3265
  """
3252
3266
  Either adds or reduces margin in an isolated position in order to set the margin to a specific value
3253
3267
  :see: https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Adjust%20isolated%20margin
@@ -3277,7 +3291,29 @@ class bingx(Exchange, ImplicitAPI):
3277
3291
  # "type": 1
3278
3292
  # }
3279
3293
  #
3280
- return response
3294
+ return self.parse_margin_modification(response, market)
3295
+
3296
+ def parse_margin_modification(self, data, market: Market = None) -> MarginModification:
3297
+ #
3298
+ # {
3299
+ # "code": 0,
3300
+ # "msg": "",
3301
+ # "amount": 1,
3302
+ # "type": 1
3303
+ # }
3304
+ #
3305
+ type = self.safe_string(data, 'type')
3306
+ return {
3307
+ 'info': data,
3308
+ 'symbol': self.safe_string(market, 'symbol'),
3309
+ 'type': 'add' if (type == '1') else 'reduce',
3310
+ 'amount': self.safe_number(data, 'amount'),
3311
+ 'total': self.safe_number(data, 'margin'),
3312
+ 'code': self.safe_string(market, 'settle'),
3313
+ 'status': None,
3314
+ 'timestamp': None,
3315
+ 'datetime': None,
3316
+ }
3281
3317
 
3282
3318
  async def fetch_leverage(self, symbol: str, params={}) -> Leverage:
3283
3319
  """
@@ -1259,6 +1259,8 @@ class bitfinex(Exchange, ImplicitAPI):
1259
1259
  await self.load_markets()
1260
1260
  if limit is None:
1261
1261
  limit = 100
1262
+ else:
1263
+ limit = min(limit, 10000)
1262
1264
  market = self.market(symbol)
1263
1265
  v2id = 't' + market['id']
1264
1266
  request = {
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bitfinex2 import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Balances, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -1343,6 +1343,8 @@ class bitfinex2(Exchange, ImplicitAPI):
1343
1343
  market = self.market(symbol)
1344
1344
  if limit is None:
1345
1345
  limit = 10000
1346
+ else:
1347
+ limit = min(limit, 10000)
1346
1348
  request = {
1347
1349
  'symbol': market['id'],
1348
1350
  'timeframe': self.safe_string(self.timeframes, timeframe, timeframe),
@@ -3279,7 +3281,7 @@ class bitfinex2(Exchange, ImplicitAPI):
3279
3281
  'datetime': self.iso8601(timestamp),
3280
3282
  })
3281
3283
 
3282
- async def set_margin(self, symbol: str, amount: float, params={}):
3284
+ async def set_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
3283
3285
  """
3284
3286
  either adds or reduces margin in a swap position in order to set the margin to a specific value
3285
3287
  :see: https://docs.bitfinex.com/reference/rest-auth-deriv-pos-collateral-set
@@ -3307,16 +3309,28 @@ class bitfinex2(Exchange, ImplicitAPI):
3307
3309
  data = self.safe_value(response, 0)
3308
3310
  return self.parse_margin_modification(data, market)
3309
3311
 
3310
- def parse_margin_modification(self, data, market=None):
3312
+ def parse_margin_modification(self, data, market=None) -> MarginModification:
3313
+ #
3314
+ # setMargin
3315
+ #
3316
+ # [
3317
+ # [
3318
+ # 1
3319
+ # ]
3320
+ # ]
3321
+ #
3311
3322
  marginStatusRaw = data[0]
3312
3323
  marginStatus = 'ok' if (marginStatusRaw == 1) else 'failed'
3313
3324
  return {
3314
3325
  'info': data,
3326
+ 'symbol': market['symbol'],
3315
3327
  'type': None,
3316
3328
  'amount': None,
3329
+ 'total': None,
3317
3330
  'code': None,
3318
- 'symbol': market['symbol'],
3319
3331
  'status': marginStatus,
3332
+ 'timestamp': None,
3333
+ 'datetime': None,
3320
3334
  }
3321
3335
 
3322
3336
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
@@ -11,6 +11,7 @@ from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import ArgumentsRequired
13
13
  from ccxt.base.errors import OrderNotFound
14
+ from ccxt.base.errors import OnMaintenance
14
15
  from ccxt.base.decimal_to_precision import TICK_SIZE
15
16
  from ccxt.base.precise import Precise
16
17
 
@@ -118,6 +119,11 @@ class bitflyer(Exchange, ImplicitAPI):
118
119
  },
119
120
  },
120
121
  'precisionMode': TICK_SIZE,
122
+ 'exceptions': {
123
+ 'exact': {
124
+ '-2': OnMaintenance, # {"status":-2,"error_message":"Under maintenance","data":null}
125
+ },
126
+ },
121
127
  })
122
128
 
123
129
  def parse_expiry_date(self, expiry):
@@ -973,3 +979,15 @@ class bitflyer(Exchange, ImplicitAPI):
973
979
  'Content-Type': 'application/json',
974
980
  }
975
981
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
982
+
983
+ def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
984
+ if response is None:
985
+ return None # fallback to the default error handler
986
+ feedback = self.id + ' ' + body
987
+ # i.e. {"status":-2,"error_message":"Under maintenance","data":null}
988
+ errorMessage = self.safe_string(response, 'error_message')
989
+ statusCode = self.safe_number(response, 'status')
990
+ if errorMessage is not None:
991
+ self.throw_exactly_matched_exception(self.exceptions['exact'], statusCode, feedback)
992
+ self.throw_broadly_matched_exception(self.exceptions['broad'], errorMessage, feedback)
993
+ return None