ccxt 4.3.24__tar.gz → 4.3.28__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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

Files changed (548) hide show
  1. {ccxt-4.3.24/ccxt.egg-info → ccxt-4.3.28}/PKG-INFO +4 -4
  2. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitget.py +1 -0
  4. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitmart.py +2 -1
  5. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/ascendex.py +1 -1
  6. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/__init__.py +1 -1
  7. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/ascendex.py +1 -1
  8. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/exchange.py +2 -2
  9. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bingx.py +40 -7
  10. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitget.py +1 -0
  11. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitmart.py +57 -2
  12. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinbase.py +1 -1
  13. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinex.py +42 -71
  14. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/kraken.py +52 -7
  15. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/krakenfutures.py +1 -1
  16. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/phemex.py +16 -2
  17. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/exchange.py +31 -27
  18. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bingx.py +40 -7
  19. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitget.py +1 -0
  20. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitmart.py +57 -2
  21. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinbase.py +1 -1
  22. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinex.py +42 -71
  23. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/kraken.py +52 -7
  24. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/krakenfutures.py +1 -1
  25. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/phemex.py +16 -2
  26. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/__init__.py +1 -1
  27. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/binance.py +1 -1
  28. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coinbase.py +5 -1
  29. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/cryptocom.py +9 -6
  30. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/kraken.py +7 -6
  31. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/okx.py +1 -1
  32. {ccxt-4.3.24 → ccxt-4.3.28/ccxt.egg-info}/PKG-INFO +4 -4
  33. {ccxt-4.3.24 → ccxt-4.3.28}/package.json +1 -1
  34. {ccxt-4.3.24 → ccxt-4.3.28}/LICENSE.txt +0 -0
  35. {ccxt-4.3.24 → ccxt-4.3.28}/MANIFEST.in +0 -0
  36. {ccxt-4.3.24 → ccxt-4.3.28}/README.rst +0 -0
  37. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/__init__.py +0 -0
  38. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/ace.py +0 -0
  39. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/alpaca.py +0 -0
  40. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/ascendex.py +0 -0
  41. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bequant.py +0 -0
  42. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bigone.py +0 -0
  43. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/binance.py +0 -0
  44. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/binancecoinm.py +0 -0
  45. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/binanceus.py +0 -0
  46. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/binanceusdm.py +0 -0
  47. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bingx.py +0 -0
  48. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bit2c.py +0 -0
  49. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitbank.py +0 -0
  50. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitbay.py +0 -0
  51. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitbns.py +0 -0
  52. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitcoincom.py +0 -0
  53. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitfinex.py +0 -0
  54. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitfinex2.py +0 -0
  55. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitflyer.py +0 -0
  56. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bithumb.py +0 -0
  57. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitmex.py +0 -0
  58. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitopro.py +0 -0
  59. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitpanda.py +0 -0
  60. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitrue.py +0 -0
  61. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitso.py +0 -0
  62. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitstamp.py +0 -0
  63. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitteam.py +0 -0
  64. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bitvavo.py +0 -0
  65. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bl3p.py +0 -0
  66. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/blockchaincom.py +0 -0
  67. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/blofin.py +0 -0
  68. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/btcalpha.py +0 -0
  69. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/btcbox.py +0 -0
  70. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/btcmarkets.py +0 -0
  71. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/btcturk.py +0 -0
  72. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/bybit.py +0 -0
  73. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/cex.py +0 -0
  74. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinbase.py +0 -0
  75. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinbaseadvanced.py +0 -0
  76. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinbaseexchange.py +0 -0
  77. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinbaseinternational.py +0 -0
  78. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coincheck.py +0 -0
  79. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinex.py +0 -0
  80. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinlist.py +0 -0
  81. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinmate.py +0 -0
  82. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinmetro.py +0 -0
  83. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinone.py +0 -0
  84. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinsph.py +0 -0
  85. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/coinspot.py +0 -0
  86. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/cryptocom.py +0 -0
  87. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/currencycom.py +0 -0
  88. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/delta.py +0 -0
  89. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/deribit.py +0 -0
  90. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/digifinex.py +0 -0
  91. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/exmo.py +0 -0
  92. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/fmfwio.py +0 -0
  93. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/gate.py +0 -0
  94. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/gateio.py +0 -0
  95. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/gemini.py +0 -0
  96. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/hitbtc.py +0 -0
  97. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/hitbtc3.py +0 -0
  98. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/hollaex.py +0 -0
  99. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/htx.py +0 -0
  100. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/huobi.py +0 -0
  101. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/huobijp.py +0 -0
  102. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/hyperliquid.py +0 -0
  103. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/idex.py +0 -0
  104. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/independentreserve.py +0 -0
  105. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/indodax.py +0 -0
  106. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/kraken.py +0 -0
  107. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/krakenfutures.py +0 -0
  108. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/kucoin.py +0 -0
  109. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/kucoinfutures.py +0 -0
  110. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/kuna.py +0 -0
  111. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/latoken.py +0 -0
  112. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/lbank.py +0 -0
  113. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/luno.py +0 -0
  114. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/lykke.py +0 -0
  115. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/mercado.py +0 -0
  116. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/mexc.py +0 -0
  117. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/ndax.py +0 -0
  118. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/novadax.py +0 -0
  119. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/oceanex.py +0 -0
  120. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/okcoin.py +0 -0
  121. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/okx.py +0 -0
  122. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/onetrading.py +0 -0
  123. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/p2b.py +0 -0
  124. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/paymium.py +0 -0
  125. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/phemex.py +0 -0
  126. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/poloniex.py +0 -0
  127. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/poloniexfutures.py +0 -0
  128. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/probit.py +0 -0
  129. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/timex.py +0 -0
  130. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/tokocrypto.py +0 -0
  131. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/tradeogre.py +0 -0
  132. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/upbit.py +0 -0
  133. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/wavesexchange.py +0 -0
  134. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/wazirx.py +0 -0
  135. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/whitebit.py +0 -0
  136. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/woo.py +0 -0
  137. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/woofipro.py +0 -0
  138. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/yobit.py +0 -0
  139. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/zaif.py +0 -0
  140. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/abstract/zonda.py +0 -0
  141. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/ace.py +0 -0
  142. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/alpaca.py +0 -0
  143. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/ace.py +0 -0
  144. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/alpaca.py +0 -0
  145. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/__init__.py +0 -0
  146. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/throttler.py +0 -0
  147. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/__init__.py +0 -0
  148. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  149. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/cache.py +0 -0
  150. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/client.py +0 -0
  151. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/fast_client.py +0 -0
  152. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/functions.py +0 -0
  153. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/future.py +0 -0
  154. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/order_book.py +0 -0
  155. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  156. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bequant.py +0 -0
  157. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bigone.py +0 -0
  158. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/binance.py +0 -0
  159. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/binancecoinm.py +0 -0
  160. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/binanceus.py +0 -0
  161. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/binanceusdm.py +0 -0
  162. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bit2c.py +0 -0
  163. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitbank.py +0 -0
  164. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitbay.py +0 -0
  165. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitbns.py +0 -0
  166. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitcoincom.py +0 -0
  167. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitfinex.py +0 -0
  168. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitfinex2.py +0 -0
  169. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitflyer.py +0 -0
  170. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bithumb.py +0 -0
  171. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitmex.py +0 -0
  172. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitopro.py +0 -0
  173. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitpanda.py +0 -0
  174. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitrue.py +0 -0
  175. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitso.py +0 -0
  176. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitstamp.py +0 -0
  177. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitteam.py +0 -0
  178. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bitvavo.py +0 -0
  179. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bl3p.py +0 -0
  180. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/blockchaincom.py +0 -0
  181. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/blofin.py +0 -0
  182. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/btcalpha.py +0 -0
  183. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/btcbox.py +0 -0
  184. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/btcmarkets.py +0 -0
  185. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/btcturk.py +0 -0
  186. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/bybit.py +2 -2
  187. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/cex.py +0 -0
  188. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinbaseadvanced.py +0 -0
  189. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinbaseexchange.py +0 -0
  190. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinbaseinternational.py +0 -0
  191. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coincheck.py +0 -0
  192. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinlist.py +0 -0
  193. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinmate.py +0 -0
  194. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinmetro.py +0 -0
  195. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinone.py +0 -0
  196. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinsph.py +0 -0
  197. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/coinspot.py +0 -0
  198. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/cryptocom.py +0 -0
  199. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/currencycom.py +0 -0
  200. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/delta.py +0 -0
  201. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/deribit.py +0 -0
  202. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/digifinex.py +0 -0
  203. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/exmo.py +0 -0
  204. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/fmfwio.py +0 -0
  205. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/gate.py +0 -0
  206. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/gateio.py +0 -0
  207. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/gemini.py +0 -0
  208. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/hitbtc.py +0 -0
  209. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/hitbtc3.py +0 -0
  210. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/hollaex.py +0 -0
  211. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/htx.py +0 -0
  212. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/huobi.py +0 -0
  213. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/huobijp.py +0 -0
  214. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/hyperliquid.py +0 -0
  215. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/idex.py +0 -0
  216. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/independentreserve.py +0 -0
  217. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/indodax.py +0 -0
  218. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/kucoin.py +0 -0
  219. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/kucoinfutures.py +0 -0
  220. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/kuna.py +0 -0
  221. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/latoken.py +0 -0
  222. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/lbank.py +0 -0
  223. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/luno.py +0 -0
  224. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/lykke.py +0 -0
  225. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/mercado.py +0 -0
  226. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/mexc.py +0 -0
  227. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/ndax.py +0 -0
  228. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/novadax.py +0 -0
  229. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/oceanex.py +0 -0
  230. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/okcoin.py +0 -0
  231. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/okx.py +0 -0
  232. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/onetrading.py +0 -0
  233. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/p2b.py +0 -0
  234. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/paymium.py +0 -0
  235. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/poloniex.py +0 -0
  236. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/poloniexfutures.py +0 -0
  237. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/probit.py +0 -0
  238. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/timex.py +0 -0
  239. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/tokocrypto.py +0 -0
  240. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/tradeogre.py +0 -0
  241. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/upbit.py +0 -0
  242. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/wavesexchange.py +0 -0
  243. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/wazirx.py +0 -0
  244. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/whitebit.py +0 -0
  245. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/woo.py +0 -0
  246. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/woofipro.py +0 -0
  247. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/yobit.py +0 -0
  248. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/zaif.py +0 -0
  249. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/async_support/zonda.py +0 -0
  250. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/__init__.py +0 -0
  251. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/decimal_to_precision.py +0 -0
  252. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/errors.py +0 -0
  253. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/precise.py +0 -0
  254. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/base/types.py +0 -0
  255. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bequant.py +0 -0
  256. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bigone.py +0 -0
  257. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/binance.py +0 -0
  258. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/binancecoinm.py +0 -0
  259. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/binanceus.py +0 -0
  260. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/binanceusdm.py +0 -0
  261. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bit2c.py +0 -0
  262. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitbank.py +0 -0
  263. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitbay.py +0 -0
  264. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitbns.py +0 -0
  265. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitcoincom.py +0 -0
  266. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitfinex.py +0 -0
  267. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitfinex2.py +0 -0
  268. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitflyer.py +0 -0
  269. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bithumb.py +0 -0
  270. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitmex.py +0 -0
  271. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitopro.py +0 -0
  272. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitpanda.py +0 -0
  273. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitrue.py +0 -0
  274. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitso.py +0 -0
  275. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitstamp.py +0 -0
  276. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitteam.py +0 -0
  277. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bitvavo.py +0 -0
  278. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bl3p.py +0 -0
  279. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/blockchaincom.py +0 -0
  280. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/blofin.py +0 -0
  281. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/btcalpha.py +0 -0
  282. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/btcbox.py +0 -0
  283. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/btcmarkets.py +0 -0
  284. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/btcturk.py +0 -0
  285. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/bybit.py +2 -2
  286. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/cex.py +0 -0
  287. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinbaseadvanced.py +0 -0
  288. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinbaseexchange.py +0 -0
  289. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinbaseinternational.py +0 -0
  290. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coincheck.py +0 -0
  291. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinlist.py +0 -0
  292. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinmate.py +0 -0
  293. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinmetro.py +0 -0
  294. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinone.py +0 -0
  295. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinsph.py +0 -0
  296. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/coinspot.py +0 -0
  297. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/cryptocom.py +0 -0
  298. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/currencycom.py +0 -0
  299. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/delta.py +0 -0
  300. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/deribit.py +0 -0
  301. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/digifinex.py +0 -0
  302. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/exmo.py +0 -0
  303. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/fmfwio.py +0 -0
  304. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/gate.py +0 -0
  305. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/gateio.py +0 -0
  306. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/gemini.py +0 -0
  307. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/hitbtc.py +0 -0
  308. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/hitbtc3.py +0 -0
  309. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/hollaex.py +0 -0
  310. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/htx.py +0 -0
  311. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/huobi.py +0 -0
  312. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/huobijp.py +0 -0
  313. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/hyperliquid.py +0 -0
  314. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/idex.py +0 -0
  315. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/independentreserve.py +0 -0
  316. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/indodax.py +0 -0
  317. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/kucoin.py +0 -0
  318. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/kucoinfutures.py +0 -0
  319. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/kuna.py +0 -0
  320. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/latoken.py +0 -0
  321. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/lbank.py +0 -0
  322. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/luno.py +0 -0
  323. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/lykke.py +0 -0
  324. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/mercado.py +0 -0
  325. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/mexc.py +0 -0
  326. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/ndax.py +0 -0
  327. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/novadax.py +0 -0
  328. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/oceanex.py +0 -0
  329. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/okcoin.py +0 -0
  330. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/okx.py +0 -0
  331. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/onetrading.py +0 -0
  332. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/p2b.py +0 -0
  333. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/paymium.py +0 -0
  334. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/poloniex.py +0 -0
  335. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/poloniexfutures.py +0 -0
  336. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/alpaca.py +0 -0
  337. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/ascendex.py +0 -0
  338. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bequant.py +0 -0
  339. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/binancecoinm.py +0 -0
  340. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/binanceus.py +0 -0
  341. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/binanceusdm.py +0 -0
  342. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bingx.py +0 -0
  343. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitcoincom.py +0 -0
  344. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitfinex.py +0 -0
  345. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitfinex2.py +0 -0
  346. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitget.py +0 -0
  347. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bithumb.py +0 -0
  348. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitmart.py +0 -0
  349. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitmex.py +0 -0
  350. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitopro.py +0 -0
  351. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitpanda.py +0 -0
  352. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitrue.py +0 -0
  353. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitstamp.py +0 -0
  354. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bitvavo.py +0 -0
  355. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/blockchaincom.py +0 -0
  356. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/bybit.py +0 -0
  357. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/cex.py +0 -0
  358. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coinbaseexchange.py +0 -0
  359. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coinbaseinternational.py +0 -0
  360. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coincheck.py +0 -0
  361. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coinex.py +0 -0
  362. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/coinone.py +0 -0
  363. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/currencycom.py +0 -0
  364. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/deribit.py +0 -0
  365. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/exmo.py +0 -0
  366. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/gate.py +0 -0
  367. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/gateio.py +0 -0
  368. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/gemini.py +0 -0
  369. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/hitbtc.py +0 -0
  370. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/hollaex.py +0 -0
  371. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/htx.py +0 -0
  372. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/huobi.py +0 -0
  373. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/huobijp.py +0 -0
  374. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/hyperliquid.py +0 -0
  375. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/idex.py +0 -0
  376. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/independentreserve.py +0 -0
  377. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/krakenfutures.py +0 -0
  378. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/kucoin.py +0 -0
  379. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/kucoinfutures.py +0 -0
  380. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/lbank.py +0 -0
  381. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/luno.py +0 -0
  382. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/mexc.py +0 -0
  383. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/ndax.py +0 -0
  384. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/okcoin.py +0 -0
  385. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/onetrading.py +0 -0
  386. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/p2b.py +0 -0
  387. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/phemex.py +0 -0
  388. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/poloniex.py +0 -0
  389. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/poloniexfutures.py +0 -0
  390. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/probit.py +0 -0
  391. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/upbit.py +0 -0
  392. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/wazirx.py +0 -0
  393. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/whitebit.py +0 -0
  394. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/woo.py +0 -0
  395. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/pro/woofipro.py +0 -0
  396. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/probit.py +0 -0
  397. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/__init__.py +0 -0
  398. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  399. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  400. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  401. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  402. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  403. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  404. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  405. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  406. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  407. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  408. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  409. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  410. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  411. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  412. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  413. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  414. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  415. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  416. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  417. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  418. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  419. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  420. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  421. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  422. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  423. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  424. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  425. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  426. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  427. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  428. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  429. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  430. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  431. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  432. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  433. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  434. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  435. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  436. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  437. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  438. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  439. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  440. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  441. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  442. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  443. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  444. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  445. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  446. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  447. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  448. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  449. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  450. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  451. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  452. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  453. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  454. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  455. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  456. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  457. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  458. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  459. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  460. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  461. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  462. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  463. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  464. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  465. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  466. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  467. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  468. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  469. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  470. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  471. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  472. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  473. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  474. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  475. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  476. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  477. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  478. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  479. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  480. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  481. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  482. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  483. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  484. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/_version.py +0 -0
  485. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  486. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  487. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  488. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  489. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  490. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  491. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  492. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  493. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/static_dependencies/toolz/utils.py +0 -0
  494. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/__init__.py +0 -0
  495. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/__init__.py +0 -0
  496. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_account.py +0 -0
  497. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_balance.py +0 -0
  498. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_borrow_interest.py +0 -0
  499. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_borrow_rate.py +0 -0
  500. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_calculate_fee.py +0 -0
  501. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_crypto.py +0 -0
  502. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_currency.py +0 -0
  503. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_datetime.py +0 -0
  504. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  505. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_deep_extend.py +0 -0
  506. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  507. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  508. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_funding_rate_history.py +0 -0
  509. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_last_price.py +0 -0
  510. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_ledger_entry.py +0 -0
  511. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_ledger_item.py +0 -0
  512. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_leverage_tier.py +0 -0
  513. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_margin_mode.py +0 -0
  514. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_margin_modification.py +0 -0
  515. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_market.py +0 -0
  516. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_number.py +0 -0
  517. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_ohlcv.py +0 -0
  518. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_open_interest.py +0 -0
  519. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_order.py +0 -0
  520. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_order_book.py +0 -0
  521. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_position.py +0 -0
  522. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_shared_methods.py +0 -0
  523. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_status.py +0 -0
  524. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_throttle.py +0 -0
  525. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_ticker.py +0 -0
  526. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_trade.py +0 -0
  527. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_trading_fee.py +0 -0
  528. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/base/test_transaction.py +0 -0
  529. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/test_async.py +0 -0
  530. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/test/test_sync.py +0 -0
  531. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/timex.py +0 -0
  532. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/tokocrypto.py +0 -0
  533. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/tradeogre.py +0 -0
  534. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/upbit.py +0 -0
  535. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/wavesexchange.py +0 -0
  536. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/wazirx.py +0 -0
  537. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/whitebit.py +0 -0
  538. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/woo.py +0 -0
  539. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/woofipro.py +0 -0
  540. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/yobit.py +0 -0
  541. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/zaif.py +0 -0
  542. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt/zonda.py +0 -0
  543. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt.egg-info/SOURCES.txt +0 -0
  544. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt.egg-info/dependency_links.txt +0 -0
  545. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt.egg-info/requires.txt +0 -0
  546. {ccxt-4.3.24 → ccxt-4.3.28}/ccxt.egg-info/top_level.txt +0 -0
  547. {ccxt-4.3.24 → ccxt-4.3.28}/setup.cfg +0 -0
  548. {ccxt-4.3.24 → ccxt-4.3.28}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.24
3
+ Version: 4.3.28
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
@@ -228,13 +228,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
228
228
 
229
229
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
230
230
 
231
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.24/dist/ccxt.browser.js
232
- * unpkg: https://unpkg.com/ccxt@4.3.24/dist/ccxt.browser.js
231
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.28/dist/ccxt.browser.js
232
+ * unpkg: https://unpkg.com/ccxt@4.3.28/dist/ccxt.browser.js
233
233
 
234
234
  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.
235
235
 
236
236
  ```HTML
237
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.24/dist/ccxt.browser.js"></script>
237
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.28/dist/ccxt.browser.js"></script>
238
238
  ```
239
239
 
240
240
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.24'
25
+ __version__ = '4.3.28'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -498,6 +498,7 @@ class ImplicitAPI:
498
498
  private_earn_get_v2_earn_loan_borrow_history = privateEarnGetV2EarnLoanBorrowHistory = Entry('v2/earn/loan/borrow-history', ['private', 'earn'], 'GET', {'cost': 2})
499
499
  private_earn_get_v2_earn_loan_debts = privateEarnGetV2EarnLoanDebts = Entry('v2/earn/loan/debts', ['private', 'earn'], 'GET', {'cost': 2})
500
500
  private_earn_get_v2_earn_loan_reduces = privateEarnGetV2EarnLoanReduces = Entry('v2/earn/loan/reduces', ['private', 'earn'], 'GET', {'cost': 2})
501
+ private_earn_get_v2_earn_account_assets = privateEarnGetV2EarnAccountAssets = Entry('v2/earn/account/assets', ['private', 'earn'], 'GET', {'cost': 2})
501
502
  private_earn_post_v2_earn_savings_subscribe = privateEarnPostV2EarnSavingsSubscribe = Entry('v2/earn/savings/subscribe', ['private', 'earn'], 'POST', {'cost': 2})
502
503
  private_earn_post_v2_earn_savings_redeem = privateEarnPostV2EarnSavingsRedeem = Entry('v2/earn/savings/redeem', ['private', 'earn'], 'POST', {'cost': 2})
503
504
  private_earn_post_v2_earn_sharkfin_subscribe = privateEarnPostV2EarnSharkfinSubscribe = Entry('v2/earn/sharkfin/subscribe', ['private', 'earn'], 'POST', {'cost': 2})
@@ -44,7 +44,7 @@ class ImplicitAPI:
44
44
  private_get_spot_v1_order_detail = privateGetSpotV1OrderDetail = Entry('spot/v1/order_detail', 'private', 'GET', {'cost': 1})
45
45
  private_get_spot_v2_orders = privateGetSpotV2Orders = Entry('spot/v2/orders', 'private', 'GET', {'cost': 5})
46
46
  private_get_spot_v1_trades = privateGetSpotV1Trades = Entry('spot/v1/trades', 'private', 'GET', {'cost': 5})
47
- private_get_spot_v2_trades = privateGetSpotV2Trades = Entry('spot/v2/trades', 'private', 'GET', {'cost': 5})
47
+ private_get_spot_v2_trades = privateGetSpotV2Trades = Entry('spot/v2/trades', 'private', 'GET', {'cost': 4})
48
48
  private_get_spot_v3_orders = privateGetSpotV3Orders = Entry('spot/v3/orders', 'private', 'GET', {'cost': 5})
49
49
  private_get_spot_v2_order_detail = privateGetSpotV2OrderDetail = Entry('spot/v2/order_detail', 'private', 'GET', {'cost': 1})
50
50
  private_get_spot_v1_margin_isolated_borrow_record = privateGetSpotV1MarginIsolatedBorrowRecord = Entry('spot/v1/margin/isolated/borrow_record', 'private', 'GET', {'cost': 1})
@@ -80,6 +80,7 @@ class ImplicitAPI:
80
80
  private_post_spot_v4_query_history_orders = privatePostSpotV4QueryHistoryOrders = Entry('spot/v4/query/history-orders', 'private', 'POST', {'cost': 5})
81
81
  private_post_spot_v4_query_trades = privatePostSpotV4QueryTrades = Entry('spot/v4/query/trades', 'private', 'POST', {'cost': 5})
82
82
  private_post_spot_v4_query_order_trades = privatePostSpotV4QueryOrderTrades = Entry('spot/v4/query/order-trades', 'private', 'POST', {'cost': 5})
83
+ private_post_spot_v4_cancel_orders = privatePostSpotV4CancelOrders = Entry('spot/v4/cancel_orders', 'private', 'POST', {'cost': 3})
83
84
  private_post_spot_v3_cancel_order = privatePostSpotV3CancelOrder = Entry('spot/v3/cancel_order', 'private', 'POST', {'cost': 1})
84
85
  private_post_spot_v2_batch_orders = privatePostSpotV2BatchOrders = Entry('spot/v2/batch_orders', 'private', 'POST', {'cost': 1})
85
86
  private_post_spot_v2_submit_order = privatePostSpotV2SubmitOrder = Entry('spot/v2/submit_order', 'private', 'POST', {'cost': 1})
@@ -1362,7 +1362,7 @@ class ascendex(Exchange, ImplicitAPI):
1362
1362
  'cost': feeCost,
1363
1363
  'currency': feeCurrencyCode,
1364
1364
  }
1365
- stopPrice = self.safe_number(order, 'stopPrice')
1365
+ stopPrice = self.omit_zero(self.safe_string(order, 'stopPrice'))
1366
1366
  reduceOnly = None
1367
1367
  execInst = self.safe_string(order, 'execInst')
1368
1368
  if execInst == 'reduceOnly':
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.24'
7
+ __version__ = '4.3.28'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1362,7 +1362,7 @@ class ascendex(Exchange, ImplicitAPI):
1362
1362
  'cost': feeCost,
1363
1363
  'currency': feeCurrencyCode,
1364
1364
  }
1365
- stopPrice = self.safe_number(order, 'stopPrice')
1365
+ stopPrice = self.omit_zero(self.safe_string(order, 'stopPrice'))
1366
1366
  reduceOnly = None
1367
1367
  execInst = self.safe_string(order, 'execInst')
1368
1368
  if execInst == 'reduceOnly':
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.24'
5
+ __version__ = '4.3.28'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -839,7 +839,7 @@ class Exchange(BaseExchange):
839
839
  await self.cancelOrder(id, symbol)
840
840
  return await self.create_order(symbol, type, side, amount, price, params)
841
841
 
842
- async def edit_order_ws(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
842
+ async def edit_order_ws(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
843
843
  await self.cancelOrderWs(id, symbol)
844
844
  return await self.createOrderWs(symbol, type, side, amount, price, params)
845
845
 
@@ -2079,6 +2079,10 @@ class bingx(Exchange, ImplicitAPI):
2079
2079
  types = {
2080
2080
  'trigger_market': 'market',
2081
2081
  'trigger_limit': 'limit',
2082
+ 'stop_limit': 'limit',
2083
+ 'stop_market': 'market',
2084
+ 'take_profit_market': 'market',
2085
+ 'stop': 'limit',
2082
2086
  }
2083
2087
  return self.safe_string(types, type, type)
2084
2088
 
@@ -2282,6 +2286,25 @@ class bingx(Exchange, ImplicitAPI):
2282
2286
  # side: 'SELL'
2283
2287
  # }
2284
2288
  # }
2289
+ # stop loss order
2290
+ # {
2291
+ # "symbol": "ETH-USDT",
2292
+ # "orderId": "1792461744476422144",
2293
+ # "price": "2775.65",
2294
+ # "StopPrice": "2778.42",
2295
+ # "origQty": "0.032359",
2296
+ # "executedQty": "0",
2297
+ # "cummulativeQuoteQty": "0",
2298
+ # "status": "NEW",
2299
+ # "type": "TAKE_STOP_LIMIT",
2300
+ # "side": "SELL",
2301
+ # "time": "1716191156868",
2302
+ # "updateTime": "1716191156868",
2303
+ # "origQuoteOrderQty": "0",
2304
+ # "fee": "0",
2305
+ # "feeAsset": "USDT",
2306
+ # "clientOrderID": ""
2307
+ # }
2285
2308
  #
2286
2309
  info = order
2287
2310
  newOrder = self.safe_dict_2(order, 'newOrderResponse', 'orderOpenResponse')
@@ -2309,21 +2332,31 @@ class bingx(Exchange, ImplicitAPI):
2309
2332
  stopLoss = self.safe_value(order, 'stopLoss')
2310
2333
  stopLossPrice = None
2311
2334
  if (stopLoss is not None) and (stopLoss != ''):
2312
- stopLossPrice = self.safe_number(stopLoss, 'stopLoss')
2335
+ stopLossPrice = self.omit_zero(self.safe_string(stopLoss, 'stopLoss'))
2313
2336
  if (stopLoss is not None) and ((not isinstance(stopLoss, numbers.Real))) and (stopLoss != ''):
2314
2337
  # stopLoss: '{"stopPrice":50,"workingType":"MARK_PRICE","type":"STOP_MARKET","quantity":1}',
2315
2338
  if isinstance(stopLoss, str):
2316
2339
  stopLoss = self.parse_json(stopLoss)
2317
- stopLossPrice = self.safe_number(stopLoss, 'stopPrice')
2340
+ stopLossPrice = self.omit_zero(self.safe_string(stopLoss, 'stopPrice'))
2318
2341
  takeProfit = self.safe_value(order, 'takeProfit')
2319
2342
  takeProfitPrice = None
2320
2343
  if takeProfit is not None and (takeProfit != ''):
2321
- takeProfitPrice = self.safe_number(takeProfit, 'takeProfit')
2344
+ takeProfitPrice = self.omit_zero(self.safe_string(takeProfit, 'takeProfit'))
2322
2345
  if (takeProfit is not None) and ((not isinstance(takeProfit, numbers.Real))) and (takeProfit != ''):
2323
2346
  # takeProfit: '{"stopPrice":150,"workingType":"MARK_PRICE","type":"TAKE_PROFIT_MARKET","quantity":1}',
2324
2347
  if isinstance(takeProfit, str):
2325
2348
  takeProfit = self.parse_json(takeProfit)
2326
- takeProfitPrice = self.safe_number(takeProfit, 'stopPrice')
2349
+ takeProfitPrice = self.omit_zero(self.safe_string(takeProfit, 'stopPrice'))
2350
+ rawType = self.safe_string_lower_2(order, 'type', 'o')
2351
+ stopPrice = self.omit_zero(self.safe_string_2(order, 'StopPrice', 'stopPrice'))
2352
+ triggerPrice = stopPrice
2353
+ if stopPrice is not None:
2354
+ if (rawType.find('stop') > -1) and (stopLossPrice is None):
2355
+ stopLossPrice = stopPrice
2356
+ triggerPrice = None
2357
+ if (rawType.find('take') > -1) and (takeProfitPrice is None):
2358
+ takeProfitPrice = stopPrice
2359
+ triggerPrice = None
2327
2360
  return self.safe_order({
2328
2361
  'info': info,
2329
2362
  'id': self.safe_string_2(order, 'orderId', 'i'),
@@ -2333,13 +2366,13 @@ class bingx(Exchange, ImplicitAPI):
2333
2366
  'datetime': self.iso8601(timestamp),
2334
2367
  'lastTradeTimestamp': lastTradeTimestamp,
2335
2368
  'lastUpdateTimestamp': self.safe_integer(order, 'updateTime'),
2336
- 'type': self.parse_order_type(self.safe_string_lower_2(order, 'type', 'o')),
2369
+ 'type': self.parse_order_type(rawType),
2337
2370
  'timeInForce': self.safe_string(order, 'timeInForce'),
2338
2371
  'postOnly': None,
2339
2372
  'side': self.parse_order_side(side),
2340
2373
  'price': self.safe_string_2(order, 'price', 'p'),
2341
- 'stopPrice': self.safe_number(order, 'stopPrice'),
2342
- 'triggerPrice': self.safe_number(order, 'stopPrice'),
2374
+ 'stopPrice': triggerPrice,
2375
+ 'triggerPrice': triggerPrice,
2343
2376
  'stopLossPrice': stopLossPrice,
2344
2377
  'takeProfitPrice': takeProfitPrice,
2345
2378
  'average': self.safe_string_2(order, 'avgPrice', 'ap'),
@@ -779,6 +779,7 @@ class bitget(Exchange, ImplicitAPI):
779
779
  'v2/earn/loan/borrow-history': 2,
780
780
  'v2/earn/loan/debts': 2,
781
781
  'v2/earn/loan/reduces': 2,
782
+ 'v2/earn/account/assets': 2,
782
783
  },
783
784
  'post': {
784
785
  'v2/earn/savings/subscribe': 2,
@@ -54,7 +54,7 @@ class bitmart(Exchange, ImplicitAPI):
54
54
  'borrowIsolatedMargin': True,
55
55
  'cancelAllOrders': True,
56
56
  'cancelOrder': True,
57
- 'cancelOrders': False,
57
+ 'cancelOrders': True,
58
58
  'createMarketBuyOrderWithCost': True,
59
59
  'createMarketOrderWithCost': False,
60
60
  'createMarketSellOrderWithCost': False,
@@ -198,7 +198,7 @@ class bitmart(Exchange, ImplicitAPI):
198
198
  'spot/v2/orders': 5,
199
199
  'spot/v1/trades': 5,
200
200
  # newer order endpoint
201
- 'spot/v2/trades': 5,
201
+ 'spot/v2/trades': 4,
202
202
  'spot/v3/orders': 5,
203
203
  'spot/v2/order_detail': 1,
204
204
  # margin
@@ -242,6 +242,7 @@ class bitmart(Exchange, ImplicitAPI):
242
242
  'spot/v4/query/history-orders': 5, # 12 times/2 sec = 6/s => 30/6 = 5
243
243
  'spot/v4/query/trades': 5, # 12 times/2 sec = 6/s => 30/6 = 5
244
244
  'spot/v4/query/order-trades': 5, # 12 times/2 sec = 6/s => 30/6 = 5
245
+ 'spot/v4/cancel_orders': 3,
245
246
  # newer endpoint
246
247
  'spot/v3/cancel_order': 1,
247
248
  'spot/v2/batch_orders': 1,
@@ -2523,6 +2524,60 @@ class bitmart(Exchange, ImplicitAPI):
2523
2524
  order = self.parse_order(id, market)
2524
2525
  return self.extend(order, {'id': id})
2525
2526
 
2527
+ async def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
2528
+ """
2529
+ cancel multiple orders
2530
+ :see: https://developer-pro.bitmart.com/en/spot/#cancel-batch-order-v4-signed
2531
+ :param str[] ids: order ids
2532
+ :param str symbol: unified symbol of the market the order was made in
2533
+ :param dict [params]: extra parameters specific to the exchange API endpoint
2534
+ :param str[] [params.clientOrderIds]: client order ids
2535
+ :returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2536
+ """
2537
+ if symbol is None:
2538
+ raise ArgumentsRequired(self.id + ' cancelOrders() requires a symbol argument')
2539
+ await self.load_markets()
2540
+ market = self.market(symbol)
2541
+ if not market['spot']:
2542
+ raise NotSupported(self.id + ' cancelOrders() does not support ' + market['type'] + ' orders, only spot orders are accepted')
2543
+ clientOrderIds = self.safe_list(params, 'clientOrderIds')
2544
+ params = self.omit(params, ['clientOrderIds'])
2545
+ request = {
2546
+ 'symbol': market['id'],
2547
+ }
2548
+ if clientOrderIds is not None:
2549
+ request['clientOrderIds'] = clientOrderIds
2550
+ else:
2551
+ request['orderIds'] = ids
2552
+ response = await self.privatePostSpotV4CancelOrders(self.extend(request, params))
2553
+ #
2554
+ # {
2555
+ # "message": "OK",
2556
+ # "code": 1000,
2557
+ # "trace": "c4edbce860164203954f7c3c81d60fc6.309.17022669632770001",
2558
+ # "data": {
2559
+ # "successIds": [
2560
+ # "213055379155243012"
2561
+ # ],
2562
+ # "failIds": [],
2563
+ # "totalCount": 1,
2564
+ # "successCount": 1,
2565
+ # "failedCount": 0
2566
+ # }
2567
+ # }
2568
+ #
2569
+ data = self.safe_dict(response, 'data', {})
2570
+ allOrders = []
2571
+ successIds = self.safe_list(data, 'successIds', [])
2572
+ for i in range(0, len(successIds)):
2573
+ id = successIds[i]
2574
+ allOrders.append(self.safe_order({'id': id, 'status': 'canceled'}, market))
2575
+ failIds = self.safe_list(data, 'failIds', [])
2576
+ for i in range(0, len(failIds)):
2577
+ id = failIds[i]
2578
+ allOrders.append(self.safe_order({'id': id, 'status': 'failed'}, market))
2579
+ return allOrders
2580
+
2526
2581
  async def cancel_all_orders(self, symbol: Str = None, params={}):
2527
2582
  """
2528
2583
  cancel all open orders in a market
@@ -2845,7 +2845,7 @@ class coinbase(Exchange, ImplicitAPI):
2845
2845
  marketId = self.safe_string(order, 'product_id')
2846
2846
  symbol = self.safe_symbol(marketId, market, '-')
2847
2847
  if symbol is not None:
2848
- market = self.market(symbol)
2848
+ market = self.safe_market(symbol, market)
2849
2849
  orderConfiguration = self.safe_dict(order, 'order_configuration', {})
2850
2850
  limitGTC = self.safe_dict(orderConfiguration, 'limit_limit_gtc')
2851
2851
  limitGTD = self.safe_dict(orderConfiguration, 'limit_limit_gtd')
@@ -458,11 +458,16 @@ class coinex(Exchange, ImplicitAPI):
458
458
  'fetchDepositAddress': {
459
459
  'fillResponseFromRequest': True,
460
460
  },
461
- 'accountsById': {
461
+ 'accountsByType': {
462
462
  'spot': 'SPOT',
463
463
  'margin': 'MARGIN',
464
464
  'swap': 'FUTURES',
465
465
  },
466
+ 'accountsById': {
467
+ 'SPOT': 'spot',
468
+ 'MARGIN': 'margin',
469
+ 'FUTURES': 'swap',
470
+ },
466
471
  'networks': {
467
472
  'BEP20': 'BSC',
468
473
  'TRX': 'TRC20',
@@ -4616,9 +4621,9 @@ class coinex(Exchange, ImplicitAPI):
4616
4621
  await self.load_markets()
4617
4622
  currency = self.currency(code)
4618
4623
  amountToPrecision = self.currency_to_precision(code, amount)
4619
- accountsById = self.safe_dict(self.options, 'accountsById', {})
4620
- fromId = self.safe_string(accountsById, fromAccount, fromAccount)
4621
- toId = self.safe_string(accountsById, toAccount, toAccount)
4624
+ accountsByType = self.safe_dict(self.options, 'accountsById', {})
4625
+ fromId = self.safe_string(accountsByType, fromAccount, fromAccount)
4626
+ toId = self.safe_string(accountsByType, toAccount, toAccount)
4622
4627
  request = {
4623
4628
  'ccy': currency['id'],
4624
4629
  'amount': amountToPrecision,
@@ -4652,6 +4657,8 @@ class coinex(Exchange, ImplicitAPI):
4652
4657
  '0': 'ok',
4653
4658
  'SUCCESS': 'ok',
4654
4659
  'OK': 'ok',
4660
+ 'finished': 'ok',
4661
+ 'FINISHED': 'ok',
4655
4662
  }
4656
4663
  return self.safe_string(statuses, status, status)
4657
4664
 
@@ -4675,91 +4682,55 @@ class coinex(Exchange, ImplicitAPI):
4675
4682
  async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
4676
4683
  """
4677
4684
  fetch a history of internal transfers made on an account
4678
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account025_margin_transfer_history
4679
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account024_contract_transfer_history
4685
+ :see: https://docs.coinex.com/api/v2/assets/transfer/http/list-transfer-history
4680
4686
  :param str code: unified currency code of the currency transferred
4681
4687
  :param int [since]: the earliest time in ms to fetch transfers for
4682
- :param int [limit]: the maximum number of transfers structures to retrieve
4688
+ :param int [limit]: the maximum number of transfer structures to retrieve
4683
4689
  :param dict [params]: extra parameters specific to the exchange API endpoint
4690
+ :param str [params.marginMode]: 'cross' or 'isolated' for fetching transfers to and from your margin account
4684
4691
  :returns dict[]: a list of `transfer structures <https://docs.ccxt.com/#/?id=transfer-structure>`
4685
4692
  """
4686
4693
  await self.load_markets()
4687
- currency = None
4694
+ if code is None:
4695
+ raise ArgumentsRequired(self.id + ' fetchTransfers() requires a code argument')
4696
+ currency = self.currency(code)
4688
4697
  request = {
4689
- 'page': 1,
4690
- # 'limit': limit,
4691
- # 'asset': 'USDT',
4692
- # 'start_time': since,
4693
- # 'end_time': 1515806440,
4694
- # 'transfer_type': 'transfer_in', # transfer_in: from Spot to Swap Account, transfer_out: from Swap to Spot Account
4698
+ 'ccy': currency['id'],
4695
4699
  }
4696
- page = self.safe_integer(params, 'page')
4697
- if page is not None:
4698
- request['page'] = page
4699
- if code is not None:
4700
- currency = self.currency(code)
4701
- request['asset'] = currency['id']
4702
- if since is not None:
4703
- request['start_time'] = since
4704
- if limit is not None:
4705
- request['limit'] = limit
4706
- else:
4707
- request['limit'] = 100
4708
- params = self.omit(params, 'page')
4709
4700
  marginMode = None
4710
4701
  marginMode, params = self.handle_margin_mode_and_params('fetchTransfers', params)
4711
- response = None
4712
4702
  if marginMode is not None:
4713
- response = await self.v1PrivateGetMarginTransferHistory(self.extend(request, params))
4703
+ request['transfer_type'] = 'MARGIN'
4714
4704
  else:
4715
- response = await self.v1PrivateGetContractTransferHistory(self.extend(request, params))
4716
- #
4717
- # Swap
4705
+ request['transfer_type'] = 'FUTURES'
4706
+ if since is not None:
4707
+ request['start_time'] = since
4708
+ if limit is not None:
4709
+ request['limit'] = limit
4710
+ request, params = self.handle_until_option('end_time', request, params)
4711
+ response = await self.v2PrivateGetAssetsTransferHistory(self.extend(request, params))
4718
4712
  #
4719
4713
  # {
4720
- # "code": 0,
4721
- # "data": {
4722
- # "records": [
4723
- # {
4724
- # "amount": "10",
4725
- # "asset": "USDT",
4726
- # "transfer_type": "transfer_out",
4727
- # "created_at": 1651633422
4728
- # },
4729
- # ],
4730
- # "total": 5
4714
+ # "data": [
4715
+ # {
4716
+ # "created_at": 1715848480646,
4717
+ # "from_account_type": "SPOT",
4718
+ # "to_account_type": "FUTURES",
4719
+ # "ccy": "USDT",
4720
+ # "amount": "10",
4721
+ # "status": "finished"
4722
+ # },
4723
+ # ],
4724
+ # "pagination": {
4725
+ # "total": 8,
4726
+ # "has_next": False
4731
4727
  # },
4732
- # "message": "Success"
4733
- # }
4734
- #
4735
- # Margin
4736
- #
4737
- # {
4738
4728
  # "code": 0,
4739
- # "data": {
4740
- # "records": [
4741
- # {
4742
- # "id": 7580062,
4743
- # "updated_at": 1653684379,
4744
- # "user_id": 3620173,
4745
- # "from_account_id": 0,
4746
- # "to_account_id": 1,
4747
- # "asset": "BTC",
4748
- # "amount": "0.00160829",
4749
- # "balance": "0.00160829",
4750
- # "transfer_type": "IN",
4751
- # "status": "SUCCESS",
4752
- # "created_at": 1653684379
4753
- # }
4754
- # ],
4755
- # "total": 1
4756
- # },
4757
- # "message": "Success"
4729
+ # "message": "OK"
4758
4730
  # }
4759
4731
  #
4760
- data = self.safe_value(response, 'data', {})
4761
- transfers = self.safe_list(data, 'records', [])
4762
- return self.parse_transfers(transfers, currency, since, limit)
4732
+ data = self.safe_list(response, 'data', [])
4733
+ return self.parse_transfers(data, currency, since, limit)
4763
4734
 
4764
4735
  async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
4765
4736
  """
@@ -58,6 +58,9 @@ class kraken(Exchange, ImplicitAPI):
58
58
  'cancelOrder': True,
59
59
  'cancelOrders': True,
60
60
  'createDepositAddress': True,
61
+ 'createMarketBuyOrderWithCost': True,
62
+ 'createMarketOrderWithCost': False,
63
+ 'createMarketSellOrderWithCost': False,
61
64
  'createOrder': True,
62
65
  'createStopLimitOrder': True,
63
66
  'createStopMarketOrder': True,
@@ -1308,6 +1311,33 @@ class kraken(Exchange, ImplicitAPI):
1308
1311
  #
1309
1312
  return self.parse_balance(response)
1310
1313
 
1314
+ async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1315
+ """
1316
+ create a market order by providing the symbol, side and cost
1317
+ :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1318
+ :param str symbol: unified symbol of the market to create an order in(only USD markets are supported)
1319
+ :param str side: 'buy' or 'sell'
1320
+ :param float cost: how much you want to trade in units of the quote currency
1321
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1322
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1323
+ """
1324
+ await self.load_markets()
1325
+ # only buy orders are supported by the endpoint
1326
+ params['cost'] = cost
1327
+ return await self.create_order(symbol, 'market', side, cost, None, params)
1328
+
1329
+ async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
1330
+ """
1331
+ create a market buy order by providing the symbol, side and cost
1332
+ :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1333
+ :param str symbol: unified symbol of the market to create an order in
1334
+ :param float cost: how much you want to trade in units of the quote currency
1335
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1336
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1337
+ """
1338
+ await self.load_markets()
1339
+ return await self.create_market_order_with_cost(symbol, 'buy', cost, params)
1340
+
1311
1341
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1312
1342
  """
1313
1343
  :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
@@ -1336,7 +1366,7 @@ class kraken(Exchange, ImplicitAPI):
1336
1366
  'ordertype': type,
1337
1367
  'volume': self.amount_to_precision(symbol, amount),
1338
1368
  }
1339
- orderRequest = self.order_request('createOrder', symbol, type, request, price, params)
1369
+ orderRequest = self.order_request('createOrder', symbol, type, request, amount, price, params)
1340
1370
  response = await self.privatePostAddOrder(self.extend(orderRequest[0], orderRequest[1]))
1341
1371
  #
1342
1372
  # {
@@ -1616,7 +1646,7 @@ class kraken(Exchange, ImplicitAPI):
1616
1646
  'trades': trades,
1617
1647
  }, market)
1618
1648
 
1619
- def order_request(self, method, symbol, type, request, price=None, params={}):
1649
+ def order_request(self, method: str, symbol: str, type: str, request: dict, amount: Num, price: Num = None, params={}):
1620
1650
  clientOrderId = self.safe_string_2(params, 'userref', 'clientOrderId')
1621
1651
  params = self.omit(params, ['userref', 'clientOrderId'])
1622
1652
  if clientOrderId is not None:
@@ -1630,9 +1660,21 @@ class kraken(Exchange, ImplicitAPI):
1630
1660
  trailingLimitAmount = self.safe_string(params, 'trailingLimitAmount')
1631
1661
  isTrailingAmountOrder = trailingAmount is not None
1632
1662
  isLimitOrder = type.endswith('limit') # supporting limit, stop-loss-limit, take-profit-limit, etc
1633
- if isLimitOrder and not isTrailingAmountOrder:
1663
+ isMarketOrder = type == 'market'
1664
+ cost = self.safe_string(params, 'cost')
1665
+ flags = self.safe_string(params, 'oflags')
1666
+ params = self.omit(params, ['cost', 'oflags'])
1667
+ isViqcOrder = (flags is not None) and (flags.find('viqc') > -1) # volume in quote currency
1668
+ if isMarketOrder and (cost is not None or isViqcOrder):
1669
+ if cost is None and (amount is not None):
1670
+ request['volume'] = self.cost_to_precision(symbol, self.number_to_string(amount))
1671
+ else:
1672
+ request['volume'] = self.cost_to_precision(symbol, cost)
1673
+ extendedOflags = flags + ',viqc' if (flags is not None) else 'viqc'
1674
+ request['oflags'] = extendedOflags
1675
+ elif isLimitOrder and not isTrailingAmountOrder:
1634
1676
  request['price'] = self.price_to_precision(symbol, price)
1635
- reduceOnly = self.safe_value_2(params, 'reduceOnly', 'reduce_only')
1677
+ reduceOnly = self.safe_bool_2(params, 'reduceOnly', 'reduce_only')
1636
1678
  if isStopLossOrTakeProfitTrigger:
1637
1679
  if isStopLossTriggerOrder:
1638
1680
  request['price'] = self.price_to_precision(symbol, stopLossTriggerPrice)
@@ -1666,7 +1708,7 @@ class kraken(Exchange, ImplicitAPI):
1666
1708
  request['reduce_only'] = True # ws request can't have stringified bool
1667
1709
  else:
1668
1710
  request['reduce_only'] = 'true' # not using hasattr(self, boolean) case, because the urlencodedNested transforms it into 'True' string
1669
- close = self.safe_value(params, 'close')
1711
+ close = self.safe_dict(params, 'close')
1670
1712
  if close is not None:
1671
1713
  close = self.extend({}, close)
1672
1714
  closePrice = self.safe_value(close, 'price')
@@ -1683,7 +1725,8 @@ class kraken(Exchange, ImplicitAPI):
1683
1725
  postOnly = None
1684
1726
  postOnly, params = self.handle_post_only(isMarket, False, params)
1685
1727
  if postOnly:
1686
- request['oflags'] = 'post'
1728
+ extendedPostFlags = flags + ',post' if (flags is not None) else 'post'
1729
+ request['oflags'] = extendedPostFlags
1687
1730
  params = self.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingAmount', 'trailingLimitAmount', 'offset'])
1688
1731
  return [request, params]
1689
1732
 
@@ -1716,7 +1759,7 @@ class kraken(Exchange, ImplicitAPI):
1716
1759
  }
1717
1760
  if amount is not None:
1718
1761
  request['volume'] = self.amount_to_precision(symbol, amount)
1719
- orderRequest = self.order_request('editOrder', symbol, type, request, price, params)
1762
+ orderRequest = self.order_request('editOrder', symbol, type, request, amount, price, params)
1720
1763
  response = await self.privatePostEditOrder(self.extend(orderRequest[0], orderRequest[1]))
1721
1764
  #
1722
1765
  # {
@@ -2808,6 +2851,8 @@ class kraken(Exchange, ImplicitAPI):
2808
2851
  raise CancelPending(self.id + ' ' + body)
2809
2852
  if body.find('Invalid arguments:volume') >= 0:
2810
2853
  raise InvalidOrder(self.id + ' ' + body)
2854
+ if body.find('Invalid arguments:viqc') >= 0:
2855
+ raise InvalidOrder(self.id + ' ' + body)
2811
2856
  if body.find('Rate limit exceeded') >= 0:
2812
2857
  raise RateLimitExceeded(self.id + ' ' + body)
2813
2858
  if response is None:
@@ -2099,7 +2099,7 @@ class krakenfutures(Exchange, ImplicitAPI):
2099
2099
 
2100
2100
  async def fetch_positions(self, symbols: Strings = None, params={}):
2101
2101
  """
2102
- :see: https://docs.futures.kraken.com/#websocket-api-private-feeds-open-positions
2102
+ :see: https://docs.futures.kraken.com/#http-api-trading-v3-api-account-information-get-open-positions
2103
2103
  Fetches current contract trading positions
2104
2104
  :param str[] symbols: List of unified symbols
2105
2105
  :param dict [params]: Not used by krakenfutures