ccxt 4.2.87__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.87/ccxt.egg-info → ccxt-4.2.88}/PKG-INFO +5 -6
  2. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/binance.py +10 -6
  6. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitget.py +17 -16
  7. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/cryptocom.py +1 -1
  8. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/gate.py +14 -14
  9. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/krakenfutures.py +2 -1
  10. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/kucoin.py +7 -4
  11. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/mexc.py +1 -1
  12. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/exchange.py +22 -3
  13. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/binance.py +10 -6
  14. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitget.py +17 -16
  15. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/cryptocom.py +1 -1
  16. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/gate.py +14 -14
  17. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/krakenfutures.py +2 -1
  18. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/kucoin.py +7 -4
  19. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/mexc.py +1 -1
  20. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/__init__.py +1 -1
  21. {ccxt-4.2.87 → ccxt-4.2.88/ccxt.egg-info}/PKG-INFO +5 -6
  22. {ccxt-4.2.87 → ccxt-4.2.88}/package.json +1 -1
  23. {ccxt-4.2.87 → ccxt-4.2.88}/LICENSE.txt +0 -0
  24. {ccxt-4.2.87 → ccxt-4.2.88}/MANIFEST.in +0 -0
  25. {ccxt-4.2.87 → ccxt-4.2.88}/README.rst +0 -0
  26. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/__init__.py +0 -0
  27. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/ace.py +0 -0
  28. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/alpaca.py +0 -0
  29. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/ascendex.py +0 -0
  30. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bequant.py +0 -0
  31. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bigone.py +0 -0
  32. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/binance.py +0 -0
  33. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/binancecoinm.py +0 -0
  34. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/binanceus.py +0 -0
  35. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/binanceusdm.py +0 -0
  36. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bingx.py +0 -0
  37. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bit2c.py +0 -0
  38. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitbank.py +0 -0
  39. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitbay.py +0 -0
  40. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitbns.py +0 -0
  41. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitcoincom.py +0 -0
  42. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitfinex.py +0 -0
  43. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitfinex2.py +0 -0
  44. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitflyer.py +0 -0
  45. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitget.py +0 -0
  46. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bithumb.py +0 -0
  47. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitmart.py +0 -0
  48. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitmex.py +0 -0
  49. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitopro.py +0 -0
  50. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitpanda.py +0 -0
  51. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitrue.py +0 -0
  52. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitso.py +0 -0
  53. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitstamp.py +0 -0
  54. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitteam.py +0 -0
  55. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bitvavo.py +0 -0
  56. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bl3p.py +0 -0
  57. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/blockchaincom.py +0 -0
  58. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/blofin.py +0 -0
  59. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/btcalpha.py +0 -0
  60. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/btcbox.py +0 -0
  61. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/btcmarkets.py +0 -0
  62. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/btcturk.py +0 -0
  63. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/bybit.py +0 -0
  64. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/cex.py +0 -0
  65. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinbase.py +0 -0
  66. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinbaseinternational.py +0 -0
  67. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinbasepro.py +0 -0
  68. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coincheck.py +0 -0
  69. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinex.py +0 -0
  70. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinlist.py +0 -0
  71. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinmate.py +0 -0
  72. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinmetro.py +0 -0
  73. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinone.py +0 -0
  74. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinsph.py +0 -0
  75. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/coinspot.py +0 -0
  76. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/cryptocom.py +0 -0
  77. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/currencycom.py +0 -0
  78. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/delta.py +0 -0
  79. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/deribit.py +0 -0
  80. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/digifinex.py +0 -0
  81. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/exmo.py +0 -0
  82. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/fmfwio.py +0 -0
  83. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/gate.py +0 -0
  84. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/gateio.py +0 -0
  85. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/gemini.py +0 -0
  86. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/hitbtc.py +0 -0
  87. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/hitbtc3.py +0 -0
  88. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/hollaex.py +0 -0
  89. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/htx.py +0 -0
  90. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/huobi.py +0 -0
  91. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/huobijp.py +0 -0
  92. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/hyperliquid.py +0 -0
  93. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/idex.py +0 -0
  94. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/independentreserve.py +0 -0
  95. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/indodax.py +0 -0
  96. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/kraken.py +0 -0
  97. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/krakenfutures.py +0 -0
  98. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/kucoin.py +0 -0
  99. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/kucoinfutures.py +0 -0
  100. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/kuna.py +0 -0
  101. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/latoken.py +0 -0
  102. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/lbank.py +0 -0
  103. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/luno.py +0 -0
  104. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/lykke.py +0 -0
  105. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/mercado.py +0 -0
  106. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/mexc.py +0 -0
  107. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/ndax.py +0 -0
  108. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/novadax.py +0 -0
  109. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/oceanex.py +0 -0
  110. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/okcoin.py +0 -0
  111. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/okx.py +0 -0
  112. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/onetrading.py +0 -0
  113. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/p2b.py +0 -0
  114. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/paymium.py +0 -0
  115. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/phemex.py +0 -0
  116. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/poloniex.py +0 -0
  117. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/poloniexfutures.py +0 -0
  118. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/probit.py +0 -0
  119. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/timex.py +0 -0
  120. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/tokocrypto.py +0 -0
  121. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/tradeogre.py +0 -0
  122. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/upbit.py +0 -0
  123. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/wavesexchange.py +0 -0
  124. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/wazirx.py +0 -0
  125. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/whitebit.py +0 -0
  126. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/woo.py +0 -0
  127. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/yobit.py +0 -0
  128. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/zaif.py +0 -0
  129. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/abstract/zonda.py +0 -0
  130. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/ace.py +0 -0
  131. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/alpaca.py +0 -0
  132. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/ascendex.py +0 -0
  133. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/ace.py +0 -0
  134. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/alpaca.py +0 -0
  135. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/ascendex.py +0 -0
  136. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/__init__.py +0 -0
  137. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/throttler.py +0 -0
  138. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/__init__.py +0 -0
  139. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  140. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/cache.py +0 -0
  141. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/client.py +0 -0
  142. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/fast_client.py +0 -0
  143. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/functions.py +0 -0
  144. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/future.py +0 -0
  145. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/order_book.py +0 -0
  146. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  147. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bequant.py +0 -0
  148. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bigone.py +0 -0
  149. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/binancecoinm.py +0 -0
  150. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/binanceus.py +0 -0
  151. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/binanceusdm.py +0 -0
  152. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bingx.py +0 -0
  153. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bit2c.py +0 -0
  154. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitbank.py +0 -0
  155. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitbay.py +0 -0
  156. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitbns.py +0 -0
  157. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitcoincom.py +0 -0
  158. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitfinex.py +0 -0
  159. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitfinex2.py +0 -0
  160. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitflyer.py +0 -0
  161. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bithumb.py +0 -0
  162. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitmart.py +0 -0
  163. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitmex.py +0 -0
  164. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitopro.py +0 -0
  165. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitpanda.py +0 -0
  166. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitrue.py +0 -0
  167. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitso.py +0 -0
  168. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitstamp.py +0 -0
  169. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitteam.py +0 -0
  170. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bitvavo.py +0 -0
  171. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bl3p.py +0 -0
  172. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/blockchaincom.py +0 -0
  173. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/blofin.py +0 -0
  174. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/btcalpha.py +0 -0
  175. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/btcbox.py +0 -0
  176. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/btcmarkets.py +0 -0
  177. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/btcturk.py +0 -0
  178. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/bybit.py +0 -0
  179. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/cex.py +0 -0
  180. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinbase.py +0 -0
  181. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinbaseinternational.py +0 -0
  182. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinbasepro.py +0 -0
  183. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coincheck.py +0 -0
  184. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinex.py +0 -0
  185. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinlist.py +0 -0
  186. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinmate.py +0 -0
  187. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinmetro.py +0 -0
  188. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinone.py +0 -0
  189. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinsph.py +0 -0
  190. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/coinspot.py +0 -0
  191. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/currencycom.py +0 -0
  192. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/delta.py +0 -0
  193. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/deribit.py +0 -0
  194. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/digifinex.py +0 -0
  195. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/exmo.py +0 -0
  196. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/flowbtc.py +0 -0
  197. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/fmfwio.py +0 -0
  198. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/gateio.py +0 -0
  199. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/gemini.py +0 -0
  200. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/hitbtc.py +0 -0
  201. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/hitbtc3.py +0 -0
  202. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/hollaex.py +0 -0
  203. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/htx.py +0 -0
  204. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/huobi.py +0 -0
  205. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/huobijp.py +0 -0
  206. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/hyperliquid.py +0 -0
  207. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/idex.py +0 -0
  208. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/independentreserve.py +0 -0
  209. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/indodax.py +0 -0
  210. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/kraken.py +0 -0
  211. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/kucoinfutures.py +0 -0
  212. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/kuna.py +0 -0
  213. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/latoken.py +0 -0
  214. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/lbank.py +0 -0
  215. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/luno.py +0 -0
  216. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/lykke.py +0 -0
  217. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/mercado.py +0 -0
  218. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/ndax.py +0 -0
  219. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/novadax.py +0 -0
  220. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/oceanex.py +0 -0
  221. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/okcoin.py +0 -0
  222. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/okx.py +0 -0
  223. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/onetrading.py +0 -0
  224. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/p2b.py +0 -0
  225. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/paymium.py +0 -0
  226. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/phemex.py +0 -0
  227. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/poloniex.py +0 -0
  228. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/poloniexfutures.py +0 -0
  229. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/probit.py +0 -0
  230. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/timex.py +0 -0
  231. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/tokocrypto.py +0 -0
  232. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/tradeogre.py +0 -0
  233. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/upbit.py +0 -0
  234. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/wavesexchange.py +0 -0
  235. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/wazirx.py +0 -0
  236. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/whitebit.py +0 -0
  237. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/woo.py +0 -0
  238. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/yobit.py +0 -0
  239. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/zaif.py +0 -0
  240. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/async_support/zonda.py +0 -0
  241. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/__init__.py +0 -0
  242. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/decimal_to_precision.py +0 -0
  243. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/errors.py +0 -0
  244. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/precise.py +0 -0
  245. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/base/types.py +0 -0
  246. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bequant.py +0 -0
  247. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bigone.py +0 -0
  248. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/binancecoinm.py +0 -0
  249. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/binanceus.py +0 -0
  250. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/binanceusdm.py +0 -0
  251. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bingx.py +0 -0
  252. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bit2c.py +0 -0
  253. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitbank.py +0 -0
  254. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitbay.py +0 -0
  255. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitbns.py +0 -0
  256. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitcoincom.py +0 -0
  257. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitfinex.py +0 -0
  258. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitfinex2.py +0 -0
  259. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitflyer.py +0 -0
  260. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bithumb.py +0 -0
  261. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitmart.py +0 -0
  262. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitmex.py +0 -0
  263. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitopro.py +0 -0
  264. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitpanda.py +0 -0
  265. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitrue.py +0 -0
  266. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitso.py +0 -0
  267. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitstamp.py +0 -0
  268. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitteam.py +0 -0
  269. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bitvavo.py +0 -0
  270. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bl3p.py +0 -0
  271. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/blockchaincom.py +0 -0
  272. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/blofin.py +0 -0
  273. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/btcalpha.py +0 -0
  274. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/btcbox.py +0 -0
  275. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/btcmarkets.py +0 -0
  276. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/btcturk.py +0 -0
  277. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/bybit.py +0 -0
  278. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/cex.py +0 -0
  279. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinbase.py +0 -0
  280. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinbaseinternational.py +0 -0
  281. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinbasepro.py +0 -0
  282. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coincheck.py +0 -0
  283. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinex.py +0 -0
  284. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinlist.py +0 -0
  285. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinmate.py +0 -0
  286. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinmetro.py +0 -0
  287. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinone.py +0 -0
  288. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinsph.py +0 -0
  289. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/coinspot.py +0 -0
  290. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/currencycom.py +0 -0
  291. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/delta.py +0 -0
  292. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/deribit.py +0 -0
  293. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/digifinex.py +0 -0
  294. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/exmo.py +0 -0
  295. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/flowbtc.py +0 -0
  296. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/fmfwio.py +0 -0
  297. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/gateio.py +0 -0
  298. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/gemini.py +0 -0
  299. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/hitbtc.py +0 -0
  300. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/hitbtc3.py +0 -0
  301. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/hollaex.py +0 -0
  302. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/htx.py +0 -0
  303. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/huobi.py +0 -0
  304. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/huobijp.py +0 -0
  305. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/hyperliquid.py +0 -0
  306. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/idex.py +0 -0
  307. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/independentreserve.py +0 -0
  308. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/indodax.py +0 -0
  309. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/kraken.py +0 -0
  310. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/kucoinfutures.py +0 -0
  311. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/kuna.py +0 -0
  312. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/latoken.py +0 -0
  313. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/lbank.py +0 -0
  314. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/luno.py +0 -0
  315. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/lykke.py +0 -0
  316. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/mercado.py +0 -0
  317. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/ndax.py +0 -0
  318. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/novadax.py +0 -0
  319. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/oceanex.py +0 -0
  320. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/okcoin.py +0 -0
  321. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/okx.py +0 -0
  322. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/onetrading.py +0 -0
  323. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/p2b.py +0 -0
  324. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/paymium.py +0 -0
  325. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/phemex.py +0 -0
  326. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/poloniex.py +0 -0
  327. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/poloniexfutures.py +0 -0
  328. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/alpaca.py +0 -0
  329. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/ascendex.py +0 -0
  330. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bequant.py +0 -0
  331. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/binance.py +0 -0
  332. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/binancecoinm.py +0 -0
  333. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/binanceus.py +0 -0
  334. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/binanceusdm.py +0 -0
  335. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bingx.py +0 -0
  336. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitcoincom.py +0 -0
  337. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitfinex.py +0 -0
  338. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitfinex2.py +0 -0
  339. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitget.py +0 -0
  340. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bithumb.py +0 -0
  341. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitmart.py +0 -0
  342. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitmex.py +0 -0
  343. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitopro.py +0 -0
  344. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitpanda.py +0 -0
  345. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitrue.py +0 -0
  346. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitstamp.py +0 -0
  347. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bitvavo.py +0 -0
  348. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/blockchaincom.py +0 -0
  349. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/bybit.py +0 -0
  350. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/cex.py +0 -0
  351. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coinbase.py +0 -0
  352. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coinbaseinternational.py +0 -0
  353. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coinbasepro.py +0 -0
  354. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coincheck.py +0 -0
  355. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coinex.py +0 -0
  356. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/coinone.py +0 -0
  357. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/cryptocom.py +0 -0
  358. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/currencycom.py +0 -0
  359. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/deribit.py +0 -0
  360. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/exmo.py +0 -0
  361. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/gate.py +0 -0
  362. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/gateio.py +0 -0
  363. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/gemini.py +0 -0
  364. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/hitbtc.py +0 -0
  365. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/hollaex.py +0 -0
  366. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/htx.py +0 -0
  367. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/huobi.py +0 -0
  368. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/huobijp.py +0 -0
  369. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/hyperliquid.py +0 -0
  370. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/idex.py +0 -0
  371. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/independentreserve.py +0 -0
  372. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/kraken.py +0 -0
  373. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/krakenfutures.py +0 -0
  374. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/kucoin.py +0 -0
  375. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/kucoinfutures.py +0 -0
  376. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/lbank.py +0 -0
  377. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/luno.py +0 -0
  378. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/mexc.py +0 -0
  379. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/ndax.py +0 -0
  380. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/okcoin.py +0 -0
  381. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/okx.py +0 -0
  382. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/onetrading.py +0 -0
  383. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/p2b.py +0 -0
  384. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/phemex.py +0 -0
  385. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/poloniex.py +0 -0
  386. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/poloniexfutures.py +0 -0
  387. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/probit.py +0 -0
  388. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/upbit.py +0 -0
  389. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/wazirx.py +0 -0
  390. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/whitebit.py +0 -0
  391. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/pro/woo.py +0 -0
  392. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/probit.py +0 -0
  393. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/__init__.py +0 -0
  394. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  395. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  396. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  397. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  398. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  399. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  400. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  401. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  402. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  403. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  404. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  405. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  406. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  407. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  408. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  409. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  410. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  411. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  412. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  413. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  414. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  415. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  416. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  417. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  418. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  419. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  420. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  421. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  422. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  423. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  424. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  425. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  426. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  427. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  428. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  429. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  430. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  431. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  432. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  433. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  434. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  435. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  436. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  437. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  438. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  439. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  440. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  441. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  442. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  443. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  444. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  445. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  446. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  447. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  448. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  449. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  450. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  451. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  452. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  453. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  454. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  455. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  456. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  457. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  458. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  459. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  460. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  461. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  462. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  463. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  464. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  465. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  466. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  467. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  468. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  469. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  470. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  471. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  472. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  473. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  474. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  475. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  476. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  477. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  478. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  479. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  480. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/_version.py +0 -0
  481. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  482. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  483. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  484. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  485. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  486. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  487. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  488. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  489. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/static_dependencies/toolz/utils.py +0 -0
  490. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/__init__.py +0 -0
  491. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/__init__.py +0 -0
  492. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_account.py +0 -0
  493. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_balance.py +0 -0
  494. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_borrow_interest.py +0 -0
  495. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_borrow_rate.py +0 -0
  496. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_calculate_fee.py +0 -0
  497. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_crypto.py +0 -0
  498. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_currency.py +0 -0
  499. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_datetime.py +0 -0
  500. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  501. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_deep_extend.py +0 -0
  502. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  503. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  504. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_funding_rate_history.py +0 -0
  505. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_last_price.py +0 -0
  506. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_ledger_entry.py +0 -0
  507. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_ledger_item.py +0 -0
  508. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_leverage_tier.py +0 -0
  509. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_margin_mode.py +0 -0
  510. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_margin_modification.py +0 -0
  511. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_market.py +0 -0
  512. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_number.py +0 -0
  513. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_ohlcv.py +0 -0
  514. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_open_interest.py +0 -0
  515. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_order.py +0 -0
  516. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_order_book.py +0 -0
  517. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_position.py +0 -0
  518. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_shared_methods.py +0 -0
  519. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_status.py +0 -0
  520. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_throttle.py +0 -0
  521. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_ticker.py +0 -0
  522. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_trade.py +0 -0
  523. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_trading_fee.py +0 -0
  524. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/base/test_transaction.py +0 -0
  525. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/test_async.py +0 -0
  526. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/test/test_sync.py +0 -0
  527. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/timex.py +0 -0
  528. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/tokocrypto.py +0 -0
  529. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/tradeogre.py +0 -0
  530. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/upbit.py +0 -0
  531. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/wavesexchange.py +0 -0
  532. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/wazirx.py +0 -0
  533. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/whitebit.py +0 -0
  534. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/woo.py +0 -0
  535. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/yobit.py +0 -0
  536. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/zaif.py +0 -0
  537. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt/zonda.py +0 -0
  538. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt.egg-info/SOURCES.txt +0 -0
  539. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt.egg-info/dependency_links.txt +0 -0
  540. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt.egg-info/requires.txt +0 -0
  541. {ccxt-4.2.87 → ccxt-4.2.88}/ccxt.egg-info/top_level.txt +0 -0
  542. {ccxt-4.2.87 → ccxt-4.2.88}/setup.cfg +0 -0
  543. {ccxt-4.2.87 → 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.87
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.87/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.2.87/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.87/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.87'
25
+ __version__ = '4.2.88'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.87'
7
+ __version__ = '4.2.88'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.87'
5
+ __version__ = '4.2.88'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -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'],
@@ -1317,6 +1317,7 @@ class bitget(Exchange, ImplicitAPI):
1317
1317
  'commonCurrencies': {
1318
1318
  'JADE': 'Jade Protocol',
1319
1319
  'DEGEN': 'DegenReborn',
1320
+ 'TONCOIN': 'TON',
1320
1321
  },
1321
1322
  'options': {
1322
1323
  'timeframes': {
@@ -1854,8 +1855,8 @@ class bitget(Exchange, ImplicitAPI):
1854
1855
  data = self.safe_value(response, 'data', [])
1855
1856
  for i in range(0, len(data)):
1856
1857
  entry = data[i]
1857
- id = self.safe_string(entry, 'coinId')
1858
- code = self.safe_currency_code(self.safe_string(entry, 'coin'))
1858
+ id = self.safe_string(entry, 'coin') # we don't use 'coinId' has no use. it is 'coin' field that needs to be used in currency related endpoints(deposit, withdraw, etc..)
1859
+ code = self.safe_currency_code(id)
1859
1860
  chains = self.safe_value(entry, 'chains', [])
1860
1861
  networks = {}
1861
1862
  deposit = False
@@ -1972,7 +1973,7 @@ class bitget(Exchange, ImplicitAPI):
1972
1973
  raise ArgumentsRequired(self.id + ' fetchMarketLeverageTiers() requires a code argument')
1973
1974
  params = self.omit(params, 'code')
1974
1975
  currency = self.currency(code)
1975
- request['coin'] = currency['code']
1976
+ request['coin'] = currency['id']
1976
1977
  response = await self.privateMarginGetV2MarginCrossedTierData(self.extend(request, params))
1977
1978
  else:
1978
1979
  raise BadRequest(self.id + ' fetchMarketLeverageTiers() symbol does not support market ' + market['symbol'])
@@ -2119,7 +2120,7 @@ class bitget(Exchange, ImplicitAPI):
2119
2120
  if since is None:
2120
2121
  since = self.milliseconds() - 7776000000 # 90 days
2121
2122
  request = {
2122
- 'coin': currency['code'],
2123
+ 'coin': currency['id'],
2123
2124
  'startTime': since,
2124
2125
  'endTime': self.milliseconds(),
2125
2126
  }
@@ -2174,7 +2175,7 @@ class bitget(Exchange, ImplicitAPI):
2174
2175
  currency = self.currency(code)
2175
2176
  networkId = self.network_code_to_id(chain)
2176
2177
  request = {
2177
- 'coin': currency['code'],
2178
+ 'coin': currency['id'],
2178
2179
  'address': address,
2179
2180
  'chain': networkId,
2180
2181
  'size': amount,
@@ -2253,7 +2254,7 @@ class bitget(Exchange, ImplicitAPI):
2253
2254
  if since is None:
2254
2255
  since = self.milliseconds() - 7776000000 # 90 days
2255
2256
  request = {
2256
- 'coin': currency['code'],
2257
+ 'coin': currency['id'],
2257
2258
  'startTime': since,
2258
2259
  'endTime': self.milliseconds(),
2259
2260
  }
@@ -2391,7 +2392,7 @@ class bitget(Exchange, ImplicitAPI):
2391
2392
  networkId = self.network_code_to_id(networkCode, code)
2392
2393
  currency = self.currency(code)
2393
2394
  request = {
2394
- 'coin': currency['code'],
2395
+ 'coin': currency['id'],
2395
2396
  }
2396
2397
  if networkId is not None:
2397
2398
  request['chain'] = networkId
@@ -5493,7 +5494,7 @@ class bitget(Exchange, ImplicitAPI):
5493
5494
  request = {}
5494
5495
  if code is not None:
5495
5496
  currency = self.currency(code)
5496
- request['coin'] = currency['code']
5497
+ request['coin'] = currency['id']
5497
5498
  request, params = self.handle_until_option('endTime', request, params)
5498
5499
  if since is not None:
5499
5500
  request['startTime'] = since
@@ -6807,7 +6808,7 @@ class bitget(Exchange, ImplicitAPI):
6807
6808
  type = self.safe_string(accountsByType, fromAccount)
6808
6809
  currency = self.currency(code)
6809
6810
  request = {
6810
- 'coin': currency['code'],
6811
+ 'coin': currency['id'],
6811
6812
  'fromType': type,
6812
6813
  }
6813
6814
  if since is not None:
@@ -6862,7 +6863,7 @@ class bitget(Exchange, ImplicitAPI):
6862
6863
  'fromType': fromType,
6863
6864
  'toType': toType,
6864
6865
  'amount': amount,
6865
- 'coin': currency['code'],
6866
+ 'coin': currency['id'],
6866
6867
  }
6867
6868
  symbol = self.safe_string(params, 'symbol')
6868
6869
  params = self.omit(params, 'symbol')
@@ -7042,7 +7043,7 @@ class bitget(Exchange, ImplicitAPI):
7042
7043
  await self.load_markets()
7043
7044
  currency = self.currency(code)
7044
7045
  request = {
7045
- 'coin': currency['code'],
7046
+ 'coin': currency['id'],
7046
7047
  'borrowAmount': self.currency_to_precision(code, amount),
7047
7048
  }
7048
7049
  response = await self.privateMarginPostV2MarginCrossedAccountBorrow(self.extend(request, params))
@@ -7075,7 +7076,7 @@ class bitget(Exchange, ImplicitAPI):
7075
7076
  currency = self.currency(code)
7076
7077
  market = self.market(symbol)
7077
7078
  request = {
7078
- 'coin': currency['code'],
7079
+ 'coin': currency['id'],
7079
7080
  'borrowAmount': self.currency_to_precision(code, amount),
7080
7081
  'symbol': market['id'],
7081
7082
  }
@@ -7110,7 +7111,7 @@ class bitget(Exchange, ImplicitAPI):
7110
7111
  currency = self.currency(code)
7111
7112
  market = self.market(symbol)
7112
7113
  request = {
7113
- 'coin': currency['code'],
7114
+ 'coin': currency['id'],
7114
7115
  'repayAmount': self.currency_to_precision(code, amount),
7115
7116
  'symbol': market['id'],
7116
7117
  }
@@ -7144,7 +7145,7 @@ class bitget(Exchange, ImplicitAPI):
7144
7145
  await self.load_markets()
7145
7146
  currency = self.currency(code)
7146
7147
  request = {
7147
- 'coin': currency['code'],
7148
+ 'coin': currency['id'],
7148
7149
  'repayAmount': self.currency_to_precision(code, amount),
7149
7150
  }
7150
7151
  response = await self.privateMarginPostV2MarginCrossedAccountRepay(self.extend(request, params))
@@ -7490,7 +7491,7 @@ class bitget(Exchange, ImplicitAPI):
7490
7491
  await self.load_markets()
7491
7492
  currency = self.currency(code)
7492
7493
  request = {
7493
- 'coin': currency['code'],
7494
+ 'coin': currency['id'],
7494
7495
  }
7495
7496
  response = await self.privateMarginGetV2MarginCrossedInterestRateAndLimit(self.extend(request, params))
7496
7497
  #
@@ -7581,7 +7582,7 @@ class bitget(Exchange, ImplicitAPI):
7581
7582
  currency = None
7582
7583
  if code is not None:
7583
7584
  currency = self.currency(code)
7584
- request['coin'] = currency['code']
7585
+ request['coin'] = currency['id']
7585
7586
  if since is not None:
7586
7587
  request['startTime'] = since
7587
7588
  else:
@@ -2565,7 +2565,7 @@ class cryptocom(Exchange, ImplicitAPI):
2565
2565
  #
2566
2566
  result = self.safe_dict(response, 'result', {})
2567
2567
  data = self.safe_list(result, 'data', [])
2568
- return self.parse_position(data[0], market)
2568
+ return self.parse_position(self.safe_dict(data, 0), market)
2569
2569
 
2570
2570
  async def fetch_positions(self, symbols: Strings = None, params={}):
2571
2571
  """
@@ -1824,7 +1824,7 @@ class gate(Exchange, ImplicitAPI):
1824
1824
  await self.load_markets()
1825
1825
  currency = self.currency(code)
1826
1826
  request = {
1827
- 'currency': currency['id'],
1827
+ 'currency': currency['id'], # todo: currencies have network-junctions
1828
1828
  }
1829
1829
  response = await self.privateWalletGetDepositAddress(self.extend(request, params))
1830
1830
  addresses = self.safe_value(response, 'multichain_addresses')
@@ -1871,7 +1871,7 @@ class gate(Exchange, ImplicitAPI):
1871
1871
  rawNetwork = self.safe_string_upper(params, 'network')
1872
1872
  params = self.omit(params, 'network')
1873
1873
  request = {
1874
- 'currency': currency['id'],
1874
+ 'currency': currency['id'], # todo: currencies have network-junctions
1875
1875
  }
1876
1876
  response = await self.privateWalletGetDepositAddress(self.extend(request, params))
1877
1877
  #
@@ -3346,7 +3346,7 @@ class gate(Exchange, ImplicitAPI):
3346
3346
  currency = None
3347
3347
  if code is not None:
3348
3348
  currency = self.currency(code)
3349
- request['currency'] = currency['id']
3349
+ request['currency'] = currency['id'] # todo: currencies have network-junctions
3350
3350
  if limit is not None:
3351
3351
  request['limit'] = limit
3352
3352
  if since is not None:
@@ -3378,7 +3378,7 @@ class gate(Exchange, ImplicitAPI):
3378
3378
  currency = None
3379
3379
  if code is not None:
3380
3380
  currency = self.currency(code)
3381
- request['currency'] = currency['id']
3381
+ request['currency'] = currency['id'] # todo: currencies have network-junctions
3382
3382
  if limit is not None:
3383
3383
  request['limit'] = limit
3384
3384
  if since is not None:
@@ -3405,7 +3405,7 @@ class gate(Exchange, ImplicitAPI):
3405
3405
  await self.load_markets()
3406
3406
  currency = self.currency(code)
3407
3407
  request = {
3408
- 'currency': currency['id'],
3408
+ 'currency': currency['id'], # todo: currencies have network-junctions
3409
3409
  'address': address,
3410
3410
  'amount': self.currency_to_precision(code, amount),
3411
3411
  }
@@ -3418,7 +3418,7 @@ class gate(Exchange, ImplicitAPI):
3418
3418
  request['chain'] = network
3419
3419
  params = self.omit(params, 'network')
3420
3420
  else:
3421
- request['chain'] = currency['id']
3421
+ request['chain'] = currency['id'] # todo: currencies have network-junctions
3422
3422
  response = await self.privateWithdrawalsPostWithdrawals(self.extend(request, params))
3423
3423
  #
3424
3424
  # {
@@ -4762,7 +4762,7 @@ class gate(Exchange, ImplicitAPI):
4762
4762
  toId = self.convert_type_to_account(toAccount)
4763
4763
  truncated = self.currency_to_precision(code, amount)
4764
4764
  request = {
4765
- 'currency': currency['id'],
4765
+ 'currency': currency['id'], # todo: currencies have network-junctions
4766
4766
  'amount': truncated,
4767
4767
  }
4768
4768
  if not (fromId in self.options['accountsByType']):
@@ -4783,7 +4783,7 @@ class gate(Exchange, ImplicitAPI):
4783
4783
  request['currency_pair'] = market['id']
4784
4784
  params = self.omit(params, 'symbol')
4785
4785
  if (toId == 'futures') or (toId == 'delivery') or (fromId == 'futures') or (fromId == 'delivery'):
4786
- request['settle'] = currency['id']
4786
+ request['settle'] = currency['id'] # todo: currencies have network-junctions
4787
4787
  response = await self.privateWalletPostTransfers(self.extend(request, params))
4788
4788
  #
4789
4789
  # according to the docs(however actual response seems to be an empty string '')
@@ -5396,7 +5396,7 @@ class gate(Exchange, ImplicitAPI):
5396
5396
  await self.load_markets()
5397
5397
  currency = self.currency(code)
5398
5398
  request = {
5399
- 'currency': currency['id'].upper(),
5399
+ 'currency': currency['id'].upper(), # todo: currencies have network-junctions
5400
5400
  'amount': self.currency_to_precision(code, amount),
5401
5401
  }
5402
5402
  market = self.market(symbol)
@@ -5423,7 +5423,7 @@ class gate(Exchange, ImplicitAPI):
5423
5423
  await self.load_markets()
5424
5424
  currency = self.currency(code)
5425
5425
  request = {
5426
- 'currency': currency['id'].upper(),
5426
+ 'currency': currency['id'].upper(), # todo: currencies have network-junctions
5427
5427
  'amount': self.currency_to_precision(code, amount),
5428
5428
  }
5429
5429
  response = await self.privateMarginPostCrossRepayments(self.extend(request, params))
@@ -5460,7 +5460,7 @@ class gate(Exchange, ImplicitAPI):
5460
5460
  await self.load_markets()
5461
5461
  currency = self.currency(code)
5462
5462
  request = {
5463
- 'currency': currency['id'].upper(),
5463
+ 'currency': currency['id'].upper(), # todo: currencies have network-junctions
5464
5464
  'amount': self.currency_to_precision(code, amount),
5465
5465
  }
5466
5466
  response = None
@@ -5503,7 +5503,7 @@ class gate(Exchange, ImplicitAPI):
5503
5503
  await self.load_markets()
5504
5504
  currency = self.currency(code)
5505
5505
  request = {
5506
- 'currency': currency['id'].upper(),
5506
+ 'currency': currency['id'].upper(), # todo: currencies have network-junctions
5507
5507
  'amount': self.currency_to_precision(code, amount),
5508
5508
  }
5509
5509
  response = await self.privateMarginPostCrossLoans(self.extend(request, params))
@@ -5996,7 +5996,7 @@ class gate(Exchange, ImplicitAPI):
5996
5996
  if (type == 'spot') or (type == 'margin'):
5997
5997
  if code is not None:
5998
5998
  currency = self.currency(code)
5999
- request['currency'] = currency['id']
5999
+ request['currency'] = currency['id'] # todo: currencies have network-junctions
6000
6000
  if (type == 'swap') or (type == 'future'):
6001
6001
  defaultSettle = 'usdt' if (type == 'swap') else 'btc'
6002
6002
  settle = self.safe_string_lower(params, 'settle', defaultSettle)
@@ -6754,7 +6754,7 @@ class gate(Exchange, ImplicitAPI):
6754
6754
  await self.load_markets()
6755
6755
  currency = self.currency(code)
6756
6756
  request = {
6757
- 'underlying': currency['code'] + '_USDT',
6757
+ 'underlying': currency['code'] + '_USDT', # todo: currency['id'].upper() & network junctions
6758
6758
  }
6759
6759
  response = await self.publicOptionsGetContracts(self.extend(request, params))
6760
6760
  #
@@ -363,7 +363,8 @@ class krakenfutures(Exchange, ImplicitAPI):
363
363
  # swap == perpetual
364
364
  settle = None
365
365
  settleId = None
366
- amountPrecision = self.parse_number(self.parse_precision(self.safe_string(market, 'contractValueTradePrecision', '0')))
366
+ cvtp = self.safe_string(market, 'contractValueTradePrecision')
367
+ amountPrecision = self.parse_number(self.integer_precision_to_amount(cvtp))
367
368
  pricePrecision = self.safe_number(market, 'tickSize')
368
369
  contract = (swap or future or index)
369
370
  swapOrFutures = (swap or future)
@@ -3326,9 +3326,9 @@ class kucoin(Exchange, ImplicitAPI):
3326
3326
  async def fetch_balance(self, params={}) -> Balances:
3327
3327
  """
3328
3328
  query for balance and get the amount of funds available for trading or funds locked in orders
3329
- :see: https://docs.kucoin.com/#list-accounts
3330
3329
  :see: https://www.kucoin.com/docs/rest/account/basic-info/get-account-list-spot-margin-trade_hf
3331
- :see: https://docs.kucoin.com/#query-isolated-margin-account-info
3330
+ :see: https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-margin
3331
+ :see: https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-isolated-margin
3332
3332
  :param dict [params]: extra parameters specific to the exchange API endpoint
3333
3333
  :param dict [params.marginMode]: 'cross' or 'isolated', margin type for fetching margin balance
3334
3334
  :param dict [params.type]: extra parameters specific to the exchange API endpoint
@@ -3353,7 +3353,7 @@ class kucoin(Exchange, ImplicitAPI):
3353
3353
  response = None
3354
3354
  request = {}
3355
3355
  isolated = (marginMode == 'isolated') or (type == 'isolated')
3356
- cross = (marginMode == 'cross') or (type == 'cross')
3356
+ cross = (marginMode == 'cross') or (type == 'margin')
3357
3357
  if isolated:
3358
3358
  if currency is not None:
3359
3359
  request['balanceCurrency'] = currency['id']
@@ -3418,13 +3418,14 @@ class kucoin(Exchange, ImplicitAPI):
3418
3418
  # }
3419
3419
  # }
3420
3420
  #
3421
- data = self.safe_list(response, 'data', [])
3421
+ data = None
3422
3422
  result = {
3423
3423
  'info': response,
3424
3424
  'timestamp': None,
3425
3425
  'datetime': None,
3426
3426
  }
3427
3427
  if isolated:
3428
+ data = self.safe_dict(response, 'data', {})
3428
3429
  assets = self.safe_value(data, 'assets', data)
3429
3430
  for i in range(0, len(assets)):
3430
3431
  entry = assets[i]
@@ -3439,6 +3440,7 @@ class kucoin(Exchange, ImplicitAPI):
3439
3440
  subResult[quoteCode] = self.parse_balance_helper(quote)
3440
3441
  result[symbol] = self.safe_balance(subResult)
3441
3442
  elif cross:
3443
+ data = self.safe_dict(response, 'data', {})
3442
3444
  accounts = self.safe_list(data, 'accounts', [])
3443
3445
  for i in range(0, len(accounts)):
3444
3446
  balance = accounts[i]
@@ -3446,6 +3448,7 @@ class kucoin(Exchange, ImplicitAPI):
3446
3448
  codeInner = self.safe_currency_code(currencyId)
3447
3449
  result[codeInner] = self.parse_balance_helper(balance)
3448
3450
  else:
3451
+ data = self.safe_list(response, 'data', [])
3449
3452
  for i in range(0, len(data)):
3450
3453
  balance = data[i]
3451
3454
  balanceType = self.safe_string(balance, 'type')
@@ -4228,7 +4228,7 @@ class mexc(Exchange, ImplicitAPI):
4228
4228
  key = self.safe_string(keys, 0)
4229
4229
  result = self.safe_dict(addressStructures, key)
4230
4230
  if result is None:
4231
- raise InvalidAddress(self.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using the MEXC platform')
4231
+ raise InvalidAddress(self.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using .createDepositAddress() method or in MEXC website')
4232
4232
  return result
4233
4233
 
4234
4234
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.87'
7
+ __version__ = '4.2.88'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -4525,6 +4525,25 @@ class Exchange(object):
4525
4525
  parsedPrecision = parsedPrecision + '0'
4526
4526
  return parsedPrecision + '1'
4527
4527
 
4528
+ def integer_precision_to_amount(self, precision: Str):
4529
+ """
4530
+ * @ignore
4531
+ handles positive & negative numbers too. parsePrecision() does not handle negative numbers, but self method handles
4532
+ :param str precision: The number of digits to the right of the decimal
4533
+ :returns str: a string number equal to 1e-precision
4534
+ """
4535
+ if precision is None:
4536
+ return None
4537
+ if Precise.string_ge(precision, '0'):
4538
+ return self.parse_precision(precision)
4539
+ else:
4540
+ positivePrecisionString = Precise.string_abs(precision)
4541
+ positivePrecision = int(positivePrecisionString)
4542
+ parsedPrecision = '1'
4543
+ for i in range(0, positivePrecision - 1):
4544
+ parsedPrecision = parsedPrecision + '0'
4545
+ return parsedPrecision + '0'
4546
+
4528
4547
  def load_time_difference(self, params={}):
4529
4548
  serverTime = self.fetch_time(params)
4530
4549
  after = self.milliseconds()
@@ -4935,8 +4954,8 @@ class Exchange(object):
4935
4954
  entry = responseKeys[i]
4936
4955
  dictionary = entry if isArray else response[entry]
4937
4956
  currencyId = self.safe_string(dictionary, currencyIdKey) if isArray else entry
4938
- currency = self.safe_value(self.currencies_by_id, currencyId)
4939
- code = self.safe_string(currency, 'code', currencyId)
4957
+ currency = self.safe_currency(currencyId)
4958
+ code = self.safe_string(currency, 'code')
4940
4959
  if (codes is None) or (self.in_array(code, codes)):
4941
4960
  depositWithdrawFees[code] = self.parseDepositWithdrawFee(dictionary, currency)
4942
4961
  return depositWithdrawFees
@@ -1882,7 +1882,7 @@ class binance(Exchange, ImplicitAPI):
1882
1882
  '-4140': BadRequest, # Invalid symbol status for opening position
1883
1883
  '-4141': OperationRejected, # Symbol is closed
1884
1884
  '-4144': BadSymbol, # Invalid pair
1885
- '-4164': OperationRejected, # Leverage reduction is not supported in Isolated Margin Mode with open positions
1885
+ '-4164': InvalidOrder, # {"code":-4164,"msg":"Order's notional must be no smaller than 20(unless you choose reduce only)."}
1886
1886
  '-4165': BadRequest, # Invalid time interval
1887
1887
  '-4167': BadRequest, # Unable to adjust to Multi-Assets mode with symbols of USDⓈ-M Futures under isolated-margin mode.
1888
1888
  '-4168': BadRequest, # Unable to adjust to isolated-margin mode under the Multi-Assets mode.
@@ -8499,7 +8499,7 @@ class binance(Exchange, ImplicitAPI):
8499
8499
  'previousFundingDatetime': None,
8500
8500
  }
8501
8501
 
8502
- def parse_account_positions(self, account):
8502
+ def parse_account_positions(self, account, filterClosed=False):
8503
8503
  positions = self.safe_list(account, 'positions')
8504
8504
  assets = self.safe_list(account, 'assets', [])
8505
8505
  balances = {}
@@ -8521,7 +8521,8 @@ class binance(Exchange, ImplicitAPI):
8521
8521
  code = market['quote'] if market['linear'] else market['base']
8522
8522
  maintenanceMargin = self.safe_string(position, 'maintMargin')
8523
8523
  # check for maintenance margin so empty positions are not returned
8524
- if (maintenanceMargin != '0') and (maintenanceMargin != '0.00000000'):
8524
+ isPositionOpen = (maintenanceMargin != '0') and (maintenanceMargin != '0.00000000')
8525
+ if not filterClosed or isPositionOpen:
8525
8526
  # sometimes not all the codes are correctly returned...
8526
8527
  if code in balances:
8527
8528
  parsed = self.parse_account_position(self.extend(position, {
@@ -9287,10 +9288,11 @@ class binance(Exchange, ImplicitAPI):
9287
9288
  :see: https://binance-docs.github.io/apidocs/delivery/en/#account-information-user_data
9288
9289
  :see: https://binance-docs.github.io/apidocs/pm/en/#get-um-account-detail-user_data
9289
9290
  :see: https://binance-docs.github.io/apidocs/pm/en/#get-cm-account-detail-user_data
9290
- :param str[]|None symbols: list of unified market symbols
9291
+ :param str[] [symbols]: list of unified market symbols
9291
9292
  :param dict [params]: extra parameters specific to the exchange API endpoint
9292
9293
  :param boolean [params.portfolioMargin]: set to True if you would like to fetch positions in a portfolio margin account
9293
9294
  :param str [params.subType]: "linear" or "inverse"
9295
+ :param boolean [params.filterClosed]: set to True if you would like to filter out closed positions, default is False
9294
9296
  :returns dict: data on account positions
9295
9297
  """
9296
9298
  if symbols is not None:
@@ -9318,7 +9320,9 @@ class binance(Exchange, ImplicitAPI):
9318
9320
  response = self.dapiPrivateGetAccount(params)
9319
9321
  else:
9320
9322
  raise NotSupported(self.id + ' fetchPositions() supports linear and inverse contracts only')
9321
- result = self.parse_account_positions(response)
9323
+ filterClosed = None
9324
+ filterClosed, params = self.handle_option_and_params(params, 'fetchAccountPositions', 'filterClosed', False)
9325
+ result = self.parse_account_positions(response, filterClosed)
9322
9326
  symbols = self.market_symbols(symbols)
9323
9327
  return self.filter_by_array_positions(result, 'symbol', symbols, False)
9324
9328
 
@@ -10286,7 +10290,7 @@ class binance(Exchange, ImplicitAPI):
10286
10290
  raise NotSupported(self.id + ' add / reduce margin only supported with type future or delivery')
10287
10291
  self.load_markets()
10288
10292
  market = self.market(symbol)
10289
- amount = self.cost_to_precision(symbol, amount)
10293
+ amount = self.amount_to_precision(symbol, amount)
10290
10294
  request = {
10291
10295
  'type': addOrReduce,
10292
10296
  'symbol': market['id'],