ccxt 4.3.48__tar.gz → 4.3.50__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 (556) hide show
  1. {ccxt-4.3.48/ccxt.egg-info → ccxt-4.3.50}/PKG-INFO +4 -4
  2. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/ace.py +4 -6
  4. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/ace.py +4 -6
  6. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/exchange.py +1 -1
  7. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/binance.py +14 -19
  8. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitget.py +1 -0
  9. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitso.py +13 -1
  10. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/htx.py +10 -10
  11. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/hyperliquid.py +13 -2
  12. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/kraken.py +4 -3
  13. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/krakenfutures.py +1 -1
  14. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/kucoin.py +4 -4
  15. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/kucoinfutures.py +1 -1
  16. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/exchange.py +1 -1
  17. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/binance.py +14 -19
  18. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitget.py +1 -0
  19. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitso.py +13 -1
  20. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/htx.py +10 -10
  21. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/hyperliquid.py +13 -2
  22. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/kraken.py +4 -3
  23. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/krakenfutures.py +1 -1
  24. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/kucoin.py +4 -4
  25. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/kucoinfutures.py +1 -1
  26. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/__init__.py +1 -1
  27. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coinbaseinternational.py +5 -0
  28. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/gate.py +2 -2
  29. {ccxt-4.3.48 → ccxt-4.3.50/ccxt.egg-info}/PKG-INFO +4 -4
  30. {ccxt-4.3.48 → ccxt-4.3.50}/package.json +1 -1
  31. {ccxt-4.3.48 → ccxt-4.3.50}/LICENSE.txt +0 -0
  32. {ccxt-4.3.48 → ccxt-4.3.50}/MANIFEST.in +0 -0
  33. {ccxt-4.3.48 → ccxt-4.3.50}/README.rst +0 -0
  34. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/__init__.py +0 -0
  35. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/ace.py +0 -0
  36. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/alpaca.py +0 -0
  37. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/ascendex.py +0 -0
  38. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bequant.py +0 -0
  39. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bigone.py +0 -0
  40. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/binance.py +0 -0
  41. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/binancecoinm.py +0 -0
  42. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/binanceus.py +0 -0
  43. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/binanceusdm.py +0 -0
  44. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bingx.py +0 -0
  45. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bit2c.py +0 -0
  46. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitbank.py +0 -0
  47. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitbay.py +0 -0
  48. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitbns.py +0 -0
  49. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitcoincom.py +0 -0
  50. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitfinex.py +0 -0
  51. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitfinex2.py +0 -0
  52. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitflyer.py +0 -0
  53. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitget.py +0 -0
  54. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bithumb.py +0 -0
  55. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitmart.py +0 -0
  56. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitmex.py +0 -0
  57. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitopro.py +0 -0
  58. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitpanda.py +0 -0
  59. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitrue.py +0 -0
  60. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitso.py +0 -0
  61. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitstamp.py +0 -0
  62. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitteam.py +0 -0
  63. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bitvavo.py +0 -0
  64. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bl3p.py +0 -0
  65. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/blockchaincom.py +0 -0
  66. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/blofin.py +0 -0
  67. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/btcalpha.py +0 -0
  68. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/btcbox.py +0 -0
  69. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/btcmarkets.py +0 -0
  70. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/btcturk.py +0 -0
  71. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/bybit.py +0 -0
  72. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/cex.py +0 -0
  73. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinbase.py +0 -0
  74. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinbaseadvanced.py +0 -0
  75. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinbaseexchange.py +0 -0
  76. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinbaseinternational.py +0 -0
  77. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coincheck.py +0 -0
  78. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinex.py +0 -0
  79. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinlist.py +0 -0
  80. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinmate.py +0 -0
  81. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinmetro.py +0 -0
  82. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinone.py +0 -0
  83. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinsph.py +0 -0
  84. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/coinspot.py +0 -0
  85. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/cryptocom.py +0 -0
  86. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/currencycom.py +0 -0
  87. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/delta.py +0 -0
  88. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/deribit.py +0 -0
  89. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/digifinex.py +0 -0
  90. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/exmo.py +0 -0
  91. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/fmfwio.py +0 -0
  92. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/gate.py +0 -0
  93. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/gateio.py +0 -0
  94. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/gemini.py +0 -0
  95. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/hitbtc.py +0 -0
  96. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/hitbtc3.py +0 -0
  97. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/hollaex.py +0 -0
  98. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/htx.py +0 -0
  99. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/huobi.py +0 -0
  100. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/huobijp.py +0 -0
  101. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/hyperliquid.py +0 -0
  102. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/idex.py +0 -0
  103. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/independentreserve.py +0 -0
  104. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/indodax.py +0 -0
  105. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/kraken.py +0 -0
  106. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/krakenfutures.py +0 -0
  107. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/kucoin.py +0 -0
  108. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/kucoinfutures.py +0 -0
  109. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/kuna.py +0 -0
  110. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/latoken.py +0 -0
  111. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/lbank.py +0 -0
  112. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/luno.py +0 -0
  113. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/lykke.py +0 -0
  114. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/mercado.py +0 -0
  115. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/mexc.py +0 -0
  116. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/ndax.py +0 -0
  117. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/novadax.py +0 -0
  118. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/oceanex.py +0 -0
  119. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/okcoin.py +0 -0
  120. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/okx.py +0 -0
  121. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/onetrading.py +0 -0
  122. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/oxfun.py +0 -0
  123. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/p2b.py +0 -0
  124. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/paymium.py +0 -0
  125. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/phemex.py +0 -0
  126. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/poloniex.py +0 -0
  127. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/poloniexfutures.py +0 -0
  128. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/probit.py +0 -0
  129. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/timex.py +0 -0
  130. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/tokocrypto.py +0 -0
  131. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/tradeogre.py +0 -0
  132. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/upbit.py +0 -0
  133. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/wavesexchange.py +0 -0
  134. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/wazirx.py +0 -0
  135. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/whitebit.py +0 -0
  136. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/woo.py +0 -0
  137. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/woofipro.py +0 -0
  138. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/xt.py +0 -0
  139. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/yobit.py +0 -0
  140. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/zaif.py +0 -0
  141. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/abstract/zonda.py +0 -0
  142. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/alpaca.py +0 -0
  143. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/ascendex.py +0 -0
  144. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/alpaca.py +0 -0
  145. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/ascendex.py +0 -0
  146. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/__init__.py +0 -0
  147. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/throttler.py +0 -0
  148. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/__init__.py +0 -0
  149. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  150. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/cache.py +0 -0
  151. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/client.py +0 -0
  152. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/fast_client.py +0 -0
  153. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/functions.py +0 -0
  154. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/future.py +0 -0
  155. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/order_book.py +0 -0
  156. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  157. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bequant.py +0 -0
  158. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bigone.py +0 -0
  159. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/binancecoinm.py +0 -0
  160. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/binanceus.py +0 -0
  161. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/binanceusdm.py +0 -0
  162. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bingx.py +0 -0
  163. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bit2c.py +0 -0
  164. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitbank.py +0 -0
  165. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitbay.py +0 -0
  166. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitbns.py +0 -0
  167. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitcoincom.py +0 -0
  168. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitfinex.py +0 -0
  169. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitfinex2.py +0 -0
  170. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitflyer.py +0 -0
  171. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bithumb.py +0 -0
  172. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitmart.py +0 -0
  173. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitmex.py +0 -0
  174. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitopro.py +0 -0
  175. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitpanda.py +0 -0
  176. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitrue.py +0 -0
  177. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitstamp.py +0 -0
  178. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitteam.py +0 -0
  179. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bitvavo.py +0 -0
  180. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bl3p.py +0 -0
  181. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/blockchaincom.py +0 -0
  182. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/blofin.py +0 -0
  183. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/btcalpha.py +0 -0
  184. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/btcbox.py +0 -0
  185. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/btcmarkets.py +0 -0
  186. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/btcturk.py +0 -0
  187. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/bybit.py +0 -0
  188. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/cex.py +0 -0
  189. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinbase.py +0 -0
  190. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinbaseadvanced.py +0 -0
  191. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinbaseexchange.py +0 -0
  192. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinbaseinternational.py +0 -0
  193. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coincheck.py +0 -0
  194. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinex.py +0 -0
  195. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinlist.py +0 -0
  196. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinmate.py +0 -0
  197. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinmetro.py +0 -0
  198. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinone.py +0 -0
  199. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinsph.py +0 -0
  200. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/coinspot.py +0 -0
  201. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/cryptocom.py +0 -0
  202. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/currencycom.py +0 -0
  203. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/delta.py +0 -0
  204. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/deribit.py +0 -0
  205. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/digifinex.py +0 -0
  206. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/exmo.py +0 -0
  207. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/fmfwio.py +0 -0
  208. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/gate.py +0 -0
  209. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/gateio.py +0 -0
  210. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/gemini.py +0 -0
  211. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/hitbtc.py +0 -0
  212. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/hitbtc3.py +0 -0
  213. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/hollaex.py +0 -0
  214. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/huobi.py +0 -0
  215. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/huobijp.py +0 -0
  216. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/idex.py +0 -0
  217. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/independentreserve.py +0 -0
  218. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/indodax.py +0 -0
  219. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/kuna.py +0 -0
  220. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/latoken.py +0 -0
  221. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/lbank.py +0 -0
  222. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/luno.py +0 -0
  223. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/lykke.py +0 -0
  224. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/mercado.py +0 -0
  225. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/mexc.py +0 -0
  226. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/ndax.py +0 -0
  227. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/novadax.py +0 -0
  228. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/oceanex.py +0 -0
  229. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/okcoin.py +0 -0
  230. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/okx.py +0 -0
  231. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/onetrading.py +0 -0
  232. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/oxfun.py +0 -0
  233. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/p2b.py +0 -0
  234. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/paymium.py +0 -0
  235. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/phemex.py +0 -0
  236. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/poloniex.py +0 -0
  237. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/poloniexfutures.py +0 -0
  238. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/probit.py +0 -0
  239. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/timex.py +0 -0
  240. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/tokocrypto.py +0 -0
  241. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/tradeogre.py +0 -0
  242. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/upbit.py +0 -0
  243. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/wavesexchange.py +0 -0
  244. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/wazirx.py +0 -0
  245. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/whitebit.py +0 -0
  246. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/woo.py +0 -0
  247. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/woofipro.py +0 -0
  248. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/xt.py +0 -0
  249. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/yobit.py +0 -0
  250. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/zaif.py +0 -0
  251. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/async_support/zonda.py +0 -0
  252. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/__init__.py +0 -0
  253. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/decimal_to_precision.py +0 -0
  254. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/errors.py +0 -0
  255. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/precise.py +0 -0
  256. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/base/types.py +0 -0
  257. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bequant.py +0 -0
  258. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bigone.py +0 -0
  259. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/binancecoinm.py +0 -0
  260. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/binanceus.py +0 -0
  261. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/binanceusdm.py +0 -0
  262. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bingx.py +0 -0
  263. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bit2c.py +0 -0
  264. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitbank.py +0 -0
  265. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitbay.py +0 -0
  266. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitbns.py +0 -0
  267. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitcoincom.py +0 -0
  268. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitfinex.py +0 -0
  269. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitfinex2.py +0 -0
  270. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitflyer.py +0 -0
  271. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bithumb.py +0 -0
  272. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitmart.py +0 -0
  273. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitmex.py +0 -0
  274. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitopro.py +0 -0
  275. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitpanda.py +0 -0
  276. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitrue.py +0 -0
  277. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitstamp.py +0 -0
  278. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitteam.py +0 -0
  279. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bitvavo.py +0 -0
  280. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bl3p.py +0 -0
  281. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/blockchaincom.py +0 -0
  282. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/blofin.py +0 -0
  283. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/btcalpha.py +0 -0
  284. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/btcbox.py +0 -0
  285. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/btcmarkets.py +0 -0
  286. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/btcturk.py +0 -0
  287. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/bybit.py +0 -0
  288. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/cex.py +0 -0
  289. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinbase.py +0 -0
  290. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinbaseadvanced.py +0 -0
  291. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinbaseexchange.py +0 -0
  292. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinbaseinternational.py +0 -0
  293. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coincheck.py +0 -0
  294. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinex.py +0 -0
  295. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinlist.py +0 -0
  296. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinmate.py +0 -0
  297. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinmetro.py +0 -0
  298. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinone.py +0 -0
  299. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinsph.py +0 -0
  300. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/coinspot.py +0 -0
  301. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/cryptocom.py +0 -0
  302. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/currencycom.py +0 -0
  303. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/delta.py +0 -0
  304. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/deribit.py +0 -0
  305. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/digifinex.py +0 -0
  306. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/exmo.py +0 -0
  307. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/fmfwio.py +0 -0
  308. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/gate.py +0 -0
  309. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/gateio.py +0 -0
  310. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/gemini.py +0 -0
  311. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/hitbtc.py +0 -0
  312. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/hitbtc3.py +0 -0
  313. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/hollaex.py +0 -0
  314. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/huobi.py +0 -0
  315. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/huobijp.py +0 -0
  316. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/idex.py +0 -0
  317. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/independentreserve.py +0 -0
  318. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/indodax.py +0 -0
  319. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/kuna.py +0 -0
  320. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/latoken.py +0 -0
  321. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/lbank.py +0 -0
  322. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/luno.py +0 -0
  323. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/lykke.py +0 -0
  324. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/mercado.py +0 -0
  325. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/mexc.py +0 -0
  326. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/ndax.py +0 -0
  327. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/novadax.py +0 -0
  328. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/oceanex.py +0 -0
  329. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/okcoin.py +0 -0
  330. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/okx.py +0 -0
  331. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/onetrading.py +0 -0
  332. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/oxfun.py +0 -0
  333. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/p2b.py +0 -0
  334. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/paymium.py +0 -0
  335. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/phemex.py +0 -0
  336. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/poloniex.py +0 -0
  337. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/poloniexfutures.py +0 -0
  338. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/alpaca.py +0 -0
  339. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/ascendex.py +0 -0
  340. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bequant.py +0 -0
  341. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/binance.py +0 -0
  342. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/binancecoinm.py +0 -0
  343. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/binanceus.py +0 -0
  344. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/binanceusdm.py +0 -0
  345. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bingx.py +0 -0
  346. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitcoincom.py +0 -0
  347. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitfinex.py +0 -0
  348. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitfinex2.py +0 -0
  349. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitget.py +0 -0
  350. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bithumb.py +0 -0
  351. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitmart.py +0 -0
  352. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitmex.py +0 -0
  353. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitopro.py +0 -0
  354. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitpanda.py +0 -0
  355. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitrue.py +0 -0
  356. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitstamp.py +0 -0
  357. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bitvavo.py +0 -0
  358. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/blockchaincom.py +0 -0
  359. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/bybit.py +0 -0
  360. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/cex.py +0 -0
  361. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coinbase.py +0 -0
  362. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coinbaseexchange.py +0 -0
  363. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coincheck.py +0 -0
  364. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coinex.py +0 -0
  365. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/coinone.py +0 -0
  366. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/cryptocom.py +0 -0
  367. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/currencycom.py +0 -0
  368. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/deribit.py +0 -0
  369. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/exmo.py +0 -0
  370. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/gateio.py +0 -0
  371. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/gemini.py +0 -0
  372. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/hitbtc.py +0 -0
  373. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/hollaex.py +0 -0
  374. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/htx.py +0 -0
  375. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/huobi.py +0 -0
  376. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/huobijp.py +0 -0
  377. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/hyperliquid.py +0 -0
  378. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/idex.py +0 -0
  379. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/independentreserve.py +0 -0
  380. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/kraken.py +0 -0
  381. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/krakenfutures.py +0 -0
  382. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/kucoin.py +0 -0
  383. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/kucoinfutures.py +0 -0
  384. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/lbank.py +0 -0
  385. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/luno.py +0 -0
  386. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/mexc.py +0 -0
  387. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/ndax.py +0 -0
  388. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/okcoin.py +0 -0
  389. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/okx.py +0 -0
  390. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/onetrading.py +0 -0
  391. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/oxfun.py +0 -0
  392. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/p2b.py +0 -0
  393. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/phemex.py +0 -0
  394. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/poloniex.py +0 -0
  395. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/poloniexfutures.py +0 -0
  396. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/probit.py +0 -0
  397. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/upbit.py +0 -0
  398. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/wazirx.py +0 -0
  399. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/whitebit.py +0 -0
  400. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/woo.py +0 -0
  401. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/pro/woofipro.py +0 -0
  402. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/probit.py +0 -0
  403. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/__init__.py +0 -0
  404. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  405. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  406. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  407. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  408. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  409. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  410. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  411. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  412. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  413. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  414. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  415. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  416. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  417. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  418. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  419. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  420. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  421. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  422. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  423. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  424. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  425. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  426. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  427. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  428. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  429. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  430. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  431. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  432. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  433. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  434. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  435. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  436. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  437. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  438. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  439. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  440. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  441. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  442. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  443. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  444. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  445. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  446. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  447. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  448. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  449. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  450. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  451. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  452. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  453. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  454. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  455. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  456. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  457. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  458. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  459. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  460. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  461. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  462. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  463. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  464. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  465. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  466. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  467. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  468. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  469. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  470. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  471. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  472. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  473. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  474. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  475. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  476. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  477. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  478. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  479. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  480. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  481. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  482. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  483. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  484. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  485. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  486. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  487. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  488. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  489. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  490. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/_version.py +0 -0
  491. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  492. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  493. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  494. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  495. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  496. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  497. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  498. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  499. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/static_dependencies/toolz/utils.py +0 -0
  500. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/__init__.py +0 -0
  501. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/__init__.py +0 -0
  502. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_account.py +0 -0
  503. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_balance.py +0 -0
  504. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_borrow_interest.py +0 -0
  505. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_borrow_rate.py +0 -0
  506. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_calculate_fee.py +0 -0
  507. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_crypto.py +0 -0
  508. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_currency.py +0 -0
  509. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_datetime.py +0 -0
  510. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  511. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_deep_extend.py +0 -0
  512. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  513. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  514. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_funding_rate_history.py +0 -0
  515. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_last_price.py +0 -0
  516. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_ledger_entry.py +0 -0
  517. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_ledger_item.py +0 -0
  518. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_leverage_tier.py +0 -0
  519. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_liquidation.py +0 -0
  520. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_margin_mode.py +0 -0
  521. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_margin_modification.py +0 -0
  522. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_market.py +0 -0
  523. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_number.py +0 -0
  524. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_ohlcv.py +0 -0
  525. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_open_interest.py +0 -0
  526. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_order.py +0 -0
  527. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_order_book.py +0 -0
  528. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_position.py +0 -0
  529. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_shared_methods.py +0 -0
  530. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_status.py +0 -0
  531. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_throttle.py +0 -0
  532. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_ticker.py +0 -0
  533. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_trade.py +0 -0
  534. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_trading_fee.py +0 -0
  535. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/base/test_transaction.py +0 -0
  536. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/test_async.py +0 -0
  537. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/test/test_sync.py +0 -0
  538. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/timex.py +0 -0
  539. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/tokocrypto.py +0 -0
  540. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/tradeogre.py +0 -0
  541. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/upbit.py +0 -0
  542. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/wavesexchange.py +0 -0
  543. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/wazirx.py +0 -0
  544. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/whitebit.py +0 -0
  545. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/woo.py +0 -0
  546. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/woofipro.py +0 -0
  547. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/xt.py +0 -0
  548. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/yobit.py +0 -0
  549. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/zaif.py +0 -0
  550. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt/zonda.py +0 -0
  551. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt.egg-info/SOURCES.txt +0 -0
  552. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt.egg-info/dependency_links.txt +0 -0
  553. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt.egg-info/requires.txt +0 -0
  554. {ccxt-4.3.48 → ccxt-4.3.50}/ccxt.egg-info/top_level.txt +0 -0
  555. {ccxt-4.3.48 → ccxt-4.3.50}/setup.cfg +0 -0
  556. {ccxt-4.3.48 → ccxt-4.3.50}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.48
3
+ Version: 4.3.50
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
@@ -232,13 +232,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
232
232
 
233
233
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
234
234
 
235
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.48/dist/ccxt.browser.min.js
236
- * unpkg: https://unpkg.com/ccxt@4.3.48/dist/ccxt.browser.min.js
235
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.50/dist/ccxt.browser.min.js
236
+ * unpkg: https://unpkg.com/ccxt@4.3.50/dist/ccxt.browser.min.js
237
237
 
238
238
  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.
239
239
 
240
240
  ```HTML
241
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.48/dist/ccxt.browser.min.js"></script>
241
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.50/dist/ccxt.browser.min.js"></script>
242
242
  ```
243
243
 
244
244
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.48'
25
+ __version__ = '4.3.50'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -977,13 +977,11 @@ class ace(Exchange, ImplicitAPI):
977
977
  auth = 'ACE_SIGN' + self.secret
978
978
  data = self.extend({
979
979
  'apiKey': self.apiKey,
980
- 'timeStamp': nonce,
980
+ 'timeStamp': self.number_to_string(nonce),
981
981
  }, params)
982
- dataKeys = list(data.keys())
983
- sortedDataKeys = self.sort_by(dataKeys, 0, False, '')
984
- for i in range(0, len(sortedDataKeys)):
985
- key = sortedDataKeys[i]
986
- auth += self.safe_string(data, key)
982
+ sortedData = self.keysort(data)
983
+ values = list(sortedData.values())
984
+ auth += ''.join(values)
987
985
  signature = self.hash(self.encode(auth), 'sha256', 'hex')
988
986
  data['signKey'] = signature
989
987
  headers = {
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.48'
7
+ __version__ = '4.3.50'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -977,13 +977,11 @@ class ace(Exchange, ImplicitAPI):
977
977
  auth = 'ACE_SIGN' + self.secret
978
978
  data = self.extend({
979
979
  'apiKey': self.apiKey,
980
- 'timeStamp': nonce,
980
+ 'timeStamp': self.number_to_string(nonce),
981
981
  }, params)
982
- dataKeys = list(data.keys())
983
- sortedDataKeys = self.sort_by(dataKeys, 0, False, '')
984
- for i in range(0, len(sortedDataKeys)):
985
- key = sortedDataKeys[i]
986
- auth += self.safe_string(data, key)
982
+ sortedData = self.keysort(data)
983
+ values = list(sortedData.values())
984
+ auth += ''.join(values)
987
985
  signature = self.hash(self.encode(auth), 'sha256', 'hex')
988
986
  data['signKey'] = signature
989
987
  headers = {
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.48'
5
+ __version__ = '4.3.50'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -34,7 +34,7 @@ from ccxt.base.errors import OnMaintenance
34
34
  from ccxt.base.errors import InvalidNonce
35
35
  from ccxt.base.errors import RequestTimeout
36
36
  from ccxt.base.decimal_to_precision import TRUNCATE
37
- from ccxt.base.decimal_to_precision import DECIMAL_PLACES
37
+ from ccxt.base.decimal_to_precision import TICK_SIZE
38
38
  from ccxt.base.precise import Precise
39
39
 
40
40
 
@@ -1204,7 +1204,7 @@ class binance(Exchange, ImplicitAPI):
1204
1204
  'BCC': 'BCC', # kept for backward-compatibility https://github.com/ccxt/ccxt/issues/4848
1205
1205
  'YOYO': 'YOYOW',
1206
1206
  },
1207
- 'precisionMode': DECIMAL_PLACES,
1207
+ 'precisionMode': TICK_SIZE,
1208
1208
  # exchange-specific options
1209
1209
  'options': {
1210
1210
  'sandboxMode': False,
@@ -2771,7 +2771,7 @@ class binance(Exchange, ImplicitAPI):
2771
2771
  'deposit': depositEnable,
2772
2772
  'withdraw': withdrawEnable,
2773
2773
  'fee': self.parse_number(fee),
2774
- 'precision': minPrecision,
2774
+ 'precision': self.parse_number(precisionTick),
2775
2775
  'limits': {
2776
2776
  'withdraw': {
2777
2777
  'min': self.safe_number(networkItem, 'withdrawMin'),
@@ -2785,14 +2785,11 @@ class binance(Exchange, ImplicitAPI):
2785
2785
  }
2786
2786
  trading = self.safe_bool(entry, 'trading')
2787
2787
  active = (isWithdrawEnabled and isDepositEnabled and trading)
2788
- maxDecimalPlaces = None
2789
- if minPrecision is not None:
2790
- maxDecimalPlaces = int(self.number_to_string(self.precision_from_string(minPrecision)))
2791
2788
  result[code] = {
2792
2789
  'id': id,
2793
2790
  'name': name,
2794
2791
  'code': code,
2795
- 'precision': maxDecimalPlaces,
2792
+ 'precision': self.parse_number(minPrecision),
2796
2793
  'info': entry,
2797
2794
  'active': active,
2798
2795
  'deposit': isDepositEnabled,
@@ -3148,10 +3145,10 @@ class binance(Exchange, ImplicitAPI):
3148
3145
  'strike': parsedStrike,
3149
3146
  'optionType': self.safe_string_lower(market, 'side'),
3150
3147
  'precision': {
3151
- 'amount': self.safe_integer_2(market, 'quantityPrecision', 'quantityScale'),
3152
- 'price': self.safe_integer_2(market, 'pricePrecision', 'priceScale'),
3153
- 'base': self.safe_integer(market, 'baseAssetPrecision'),
3154
- 'quote': self.safe_integer(market, 'quotePrecision'),
3148
+ 'amount': self.parse_number(self.parse_precision(self.safe_string_2(market, 'quantityPrecision', 'quantityScale'))),
3149
+ 'price': self.parse_number(self.parse_precision(self.safe_string_2(market, 'pricePrecision', 'priceScale'))),
3150
+ 'base': self.parse_number(self.parse_precision(self.safe_string(market, 'baseAssetPrecision'))),
3151
+ 'quote': self.parse_number(self.parse_precision(self.safe_string(market, 'quotePrecision'))),
3155
3152
  },
3156
3153
  'limits': {
3157
3154
  'leverage': {
@@ -3184,11 +3181,10 @@ class binance(Exchange, ImplicitAPI):
3184
3181
  'min': self.safe_number(filter, 'minPrice'),
3185
3182
  'max': self.safe_number(filter, 'maxPrice'),
3186
3183
  }
3187
- entry['precision']['price'] = self.precision_from_string(filter['tickSize'])
3184
+ entry['precision']['price'] = self.safe_number(filter, 'tickSize')
3188
3185
  if 'LOT_SIZE' in filtersByType:
3189
3186
  filter = self.safe_dict(filtersByType, 'LOT_SIZE', {})
3190
- stepSize = self.safe_string(filter, 'stepSize')
3191
- entry['precision']['amount'] = self.precision_from_string(stepSize)
3187
+ entry['precision']['amount'] = self.safe_number(filter, 'stepSize')
3192
3188
  entry['limits']['amount'] = {
3193
3189
  'min': self.safe_number(filter, 'minQty'),
3194
3190
  'max': self.safe_number(filter, 'maxQty'),
@@ -8903,7 +8899,7 @@ class binance(Exchange, ImplicitAPI):
8903
8899
  leftSide = Precise.string_mul(size, onePlusMaintenanceMarginPercentageString)
8904
8900
  rightSide = Precise.string_sub(Precise.string_mul(Precise.string_div('1', entryPriceSignString), size), walletBalance)
8905
8901
  liquidationPriceStringRaw = Precise.string_div(leftSide, rightSide)
8906
- pricePrecision = market['precision']['price']
8902
+ pricePrecision = self.precision_from_string(self.safe_string(market['precision'], 'price'))
8907
8903
  pricePrecisionPlusOne = pricePrecision + 1
8908
8904
  pricePrecisionPlusOneString = str(pricePrecisionPlusOne)
8909
8905
  # round half up
@@ -9068,8 +9064,7 @@ class binance(Exchange, ImplicitAPI):
9068
9064
  onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9069
9065
  inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9070
9066
  leftSide = Precise.string_add(inner, entryPriceSignString)
9071
- pricePrecision = self.safe_integer(precision, 'price')
9072
- quotePrecision = self.safe_integer(precision, 'quote', pricePrecision)
9067
+ quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9073
9068
  if quotePrecision is not None:
9074
9069
  collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9075
9070
  else:
@@ -9083,7 +9078,7 @@ class binance(Exchange, ImplicitAPI):
9083
9078
  entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9084
9079
  leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9085
9080
  rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9086
- basePrecision = self.safe_integer(precision, 'base')
9081
+ basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9087
9082
  if basePrecision is not None:
9088
9083
  collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9089
9084
  else:
@@ -11890,7 +11885,7 @@ class binance(Exchange, ImplicitAPI):
11890
11885
  'deposit': None,
11891
11886
  'withdraw': None,
11892
11887
  'fee': None,
11893
- 'precision': self.safe_integer(entry, 'fraction'),
11888
+ 'precision': self.parse_number(self.parse_precision(self.safe_string(entry, 'fraction'))),
11894
11889
  'limits': {
11895
11890
  'amount': {
11896
11891
  'min': None,
@@ -3981,6 +3981,7 @@ class bitget(Exchange, ImplicitAPI):
3981
3981
  :param str [params.trailingTriggerPrice]: *swap and future only* the price to trigger a trailing stop order, default uses the price argument
3982
3982
  :param str [params.triggerType]: *swap and future only* 'fill_price', 'mark_price' or 'index_price'
3983
3983
  :param boolean [params.oneWayMode]: *swap and future only* required to set self to True in one_way_mode and you can leave self in hedge_mode, can adjust the mode using the setPositionMode() method
3984
+ :param bool [params.reduceOnly]: True or False whether the order is reduce-only
3984
3985
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3985
3986
  """
3986
3987
  await self.load_markets()
@@ -962,7 +962,19 @@ class bitso(Exchange, ImplicitAPI):
962
962
  request: dict = {
963
963
  'oid': id,
964
964
  }
965
- return await self.privateDeleteOrdersOid(self.extend(request, params))
965
+ response = await self.privateDeleteOrdersOid(self.extend(request, params))
966
+ #
967
+ # {
968
+ # "success": True,
969
+ # "payload": ["yWTQGxDMZ0VimZgZ"]
970
+ # }
971
+ #
972
+ payload = self.safe_list(response, 'payload', [])
973
+ orderId = self.safe_string(payload, 0)
974
+ return self.safe_order({
975
+ 'info': response,
976
+ 'id': orderId,
977
+ })
966
978
 
967
979
  async def cancel_orders(self, ids, symbol: Str = None, params={}):
968
980
  """
@@ -3747,10 +3747,10 @@ class htx(Exchange, ImplicitAPI):
3747
3747
  'status': '0', # support multiple query seperated by ',',such as '3,4,5', 0: all. 3. Have sumbmitted the orders; 4. Orders partially matched; 5. Orders cancelled with partially matched; 6. Orders fully matched; 7. Orders cancelled
3748
3748
  }
3749
3749
  response = None
3750
- stop = self.safe_value(params, 'stop')
3750
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
3751
3751
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
3752
3752
  trailing = self.safe_bool(params, 'trailing', False)
3753
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
3753
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
3754
3754
  if stop or stopLossTakeProfit or trailing:
3755
3755
  if limit is not None:
3756
3756
  request['page_size'] = limit
@@ -4071,10 +4071,10 @@ class htx(Exchange, ImplicitAPI):
4071
4071
  if limit is not None:
4072
4072
  request['page_size'] = limit
4073
4073
  request['contract_code'] = market['id']
4074
- stop = self.safe_value(params, 'stop')
4074
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
4075
4075
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
4076
4076
  trailing = self.safe_bool(params, 'trailing', False)
4077
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
4077
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
4078
4078
  if market['linear']:
4079
4079
  marginMode = None
4080
4080
  marginMode, params = self.handle_margin_mode_and_params('fetchOpenOrders', params)
@@ -5306,10 +5306,10 @@ class htx(Exchange, ImplicitAPI):
5306
5306
  request['symbol'] = market['settleId']
5307
5307
  else:
5308
5308
  request['contract_code'] = market['id']
5309
- stop = self.safe_value(params, 'stop')
5309
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5310
5310
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5311
5311
  trailing = self.safe_bool(params, 'trailing', False)
5312
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
5312
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
5313
5313
  if market['linear']:
5314
5314
  marginMode = None
5315
5315
  marginMode, params = self.handle_margin_mode_and_params('cancelOrder', params)
@@ -5433,9 +5433,9 @@ class htx(Exchange, ImplicitAPI):
5433
5433
  request['symbol'] = market['settleId']
5434
5434
  else:
5435
5435
  request['contract_code'] = market['id']
5436
- stop = self.safe_value(params, 'stop')
5436
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5437
5437
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5438
- params = self.omit(params, ['stop', 'stopLossTakeProfit'])
5438
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trigger'])
5439
5439
  if market['linear']:
5440
5440
  marginMode = None
5441
5441
  marginMode, params = self.handle_margin_mode_and_params('cancelOrders', params)
@@ -5565,10 +5565,10 @@ class htx(Exchange, ImplicitAPI):
5565
5565
  if market['future']:
5566
5566
  request['symbol'] = market['settleId']
5567
5567
  request['contract_code'] = market['id']
5568
- stop = self.safe_value(params, 'stop')
5568
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5569
5569
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5570
5570
  trailing = self.safe_bool(params, 'trailing', False)
5571
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
5571
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
5572
5572
  if market['linear']:
5573
5573
  marginMode = None
5574
5574
  marginMode, params = self.handle_margin_mode_and_params('cancelAllOrders', params)
@@ -1170,7 +1170,8 @@ class hyperliquid(Exchange, ImplicitAPI):
1170
1170
  :param str [params.vaultAddress]: the vault address for order
1171
1171
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1172
1172
  """
1173
- return await self.cancel_orders([id], symbol, params)
1173
+ orders = await self.cancel_orders([id], symbol, params)
1174
+ return self.safe_dict(orders, 0)
1174
1175
 
1175
1176
  async def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
1176
1177
  """
@@ -1240,7 +1241,17 @@ class hyperliquid(Exchange, ImplicitAPI):
1240
1241
  # }
1241
1242
  # }
1242
1243
  #
1243
- return response
1244
+ innerResponse = self.safe_dict(response, 'response')
1245
+ data = self.safe_dict(innerResponse, 'data')
1246
+ statuses = self.safe_list(data, 'statuses')
1247
+ orders = []
1248
+ for i in range(0, len(statuses)):
1249
+ status = statuses[i]
1250
+ orders.append(self.safe_order({
1251
+ 'info': status,
1252
+ 'status': status,
1253
+ }))
1254
+ return orders
1244
1255
 
1245
1256
  async def cancel_orders_for_symbols(self, orders: List[CancellationRequest], params={}):
1246
1257
  """
@@ -1639,6 +1639,7 @@ class kraken(Exchange, ImplicitAPI):
1639
1639
  'filled': filled,
1640
1640
  'average': average,
1641
1641
  'remaining': None,
1642
+ 'reduceOnly': self.safe_bool_2(order, 'reduceOnly', 'reduce_only'),
1642
1643
  'fee': fee,
1643
1644
  'trades': trades,
1644
1645
  }, market)
@@ -1993,7 +1994,7 @@ class kraken(Exchange, ImplicitAPI):
1993
1994
  async def cancel_order(self, id: str, symbol: Str = None, params={}):
1994
1995
  """
1995
1996
  cancels an open order
1996
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/cancelOrder
1997
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/cancelOrder
1997
1998
  :param str id: order id
1998
1999
  :param str symbol: unified symbol of the market the order was made in
1999
2000
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -2028,7 +2029,7 @@ class kraken(Exchange, ImplicitAPI):
2028
2029
  async def cancel_orders(self, ids, symbol: Str = None, params={}):
2029
2030
  """
2030
2031
  cancel multiple orders
2031
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/cancelOrderBatch
2032
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/cancelOrderBatch
2032
2033
  :param str[] ids: open orders transaction ID(txid) or user reference(userref)
2033
2034
  :param str symbol: unified market symbol
2034
2035
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -2055,7 +2056,7 @@ class kraken(Exchange, ImplicitAPI):
2055
2056
  async def cancel_all_orders(self, symbol: Str = None, params={}):
2056
2057
  """
2057
2058
  cancel all open orders
2058
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/cancelAllOrders
2059
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/cancelAllOrders
2059
2060
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
2060
2061
  :param dict [params]: extra parameters specific to the exchange API endpoint
2061
2062
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1762,7 +1762,7 @@ class krakenfutures(Exchange, ImplicitAPI):
1762
1762
  'type': self.parse_order_type(type),
1763
1763
  'timeInForce': timeInForce,
1764
1764
  'postOnly': type == 'post',
1765
- 'reduceOnly': self.safe_value(details, 'reduceOnly'),
1765
+ 'reduceOnly': self.safe_bool_2(details, 'reduceOnly', 'reduce_only'),
1766
1766
  'side': self.safe_string(details, 'side'),
1767
1767
  'price': price,
1768
1768
  'stopPrice': self.safe_string(details, 'triggerPrice'),
@@ -2397,9 +2397,9 @@ class kucoin(Exchange, ImplicitAPI):
2397
2397
  await self.load_markets()
2398
2398
  lowercaseStatus = status.lower()
2399
2399
  until = self.safe_integer(params, 'until')
2400
- stop = self.safe_bool(params, 'stop', False)
2400
+ stop = self.safe_bool_2(params, 'stop', 'trigger', False)
2401
2401
  hf = self.safe_bool(params, 'hf', False)
2402
- params = self.omit(params, ['stop', 'hf', 'until'])
2402
+ params = self.omit(params, ['stop', 'hf', 'until', 'trigger'])
2403
2403
  marginMode, query = self.handle_margin_mode_and_params('fetchOrdersByStatus', params)
2404
2404
  if lowercaseStatus == 'open':
2405
2405
  lowercaseStatus = 'active'
@@ -2556,7 +2556,7 @@ class kucoin(Exchange, ImplicitAPI):
2556
2556
  await self.load_markets()
2557
2557
  request: dict = {}
2558
2558
  clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId')
2559
- stop = self.safe_bool(params, 'stop', False)
2559
+ stop = self.safe_bool_2(params, 'stop', 'trigger', False)
2560
2560
  hf = self.safe_bool(params, 'hf', False)
2561
2561
  market = None
2562
2562
  if symbol is not None:
@@ -2565,7 +2565,7 @@ class kucoin(Exchange, ImplicitAPI):
2565
2565
  if symbol is None:
2566
2566
  raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol parameter for hf orders')
2567
2567
  request['symbol'] = market['id']
2568
- params = self.omit(params, ['stop', 'hf', 'clientOid', 'clientOrderId'])
2568
+ params = self.omit(params, ['stop', 'hf', 'clientOid', 'clientOrderId', 'trigger'])
2569
2569
  response = None
2570
2570
  if clientOrderId is not None:
2571
2571
  request['clientOid'] = clientOrderId
@@ -1688,7 +1688,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
1688
1688
  paginate, params = self.handle_option_and_params(params, 'fetchOrdersByStatus', 'paginate')
1689
1689
  if paginate:
1690
1690
  return await self.fetch_paginated_call_dynamic('fetchOrdersByStatus', symbol, since, limit, params)
1691
- stop = self.safe_value_2(params, 'stop', 'trigger')
1691
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
1692
1692
  until = self.safe_integer(params, 'until')
1693
1693
  params = self.omit(params, ['stop', 'until', 'trigger'])
1694
1694
  if status == 'closed':
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.48'
7
+ __version__ = '4.3.50'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -33,7 +33,7 @@ from ccxt.base.errors import OnMaintenance
33
33
  from ccxt.base.errors import InvalidNonce
34
34
  from ccxt.base.errors import RequestTimeout
35
35
  from ccxt.base.decimal_to_precision import TRUNCATE
36
- from ccxt.base.decimal_to_precision import DECIMAL_PLACES
36
+ from ccxt.base.decimal_to_precision import TICK_SIZE
37
37
  from ccxt.base.precise import Precise
38
38
 
39
39
 
@@ -1203,7 +1203,7 @@ class binance(Exchange, ImplicitAPI):
1203
1203
  'BCC': 'BCC', # kept for backward-compatibility https://github.com/ccxt/ccxt/issues/4848
1204
1204
  'YOYO': 'YOYOW',
1205
1205
  },
1206
- 'precisionMode': DECIMAL_PLACES,
1206
+ 'precisionMode': TICK_SIZE,
1207
1207
  # exchange-specific options
1208
1208
  'options': {
1209
1209
  'sandboxMode': False,
@@ -2770,7 +2770,7 @@ class binance(Exchange, ImplicitAPI):
2770
2770
  'deposit': depositEnable,
2771
2771
  'withdraw': withdrawEnable,
2772
2772
  'fee': self.parse_number(fee),
2773
- 'precision': minPrecision,
2773
+ 'precision': self.parse_number(precisionTick),
2774
2774
  'limits': {
2775
2775
  'withdraw': {
2776
2776
  'min': self.safe_number(networkItem, 'withdrawMin'),
@@ -2784,14 +2784,11 @@ class binance(Exchange, ImplicitAPI):
2784
2784
  }
2785
2785
  trading = self.safe_bool(entry, 'trading')
2786
2786
  active = (isWithdrawEnabled and isDepositEnabled and trading)
2787
- maxDecimalPlaces = None
2788
- if minPrecision is not None:
2789
- maxDecimalPlaces = int(self.number_to_string(self.precision_from_string(minPrecision)))
2790
2787
  result[code] = {
2791
2788
  'id': id,
2792
2789
  'name': name,
2793
2790
  'code': code,
2794
- 'precision': maxDecimalPlaces,
2791
+ 'precision': self.parse_number(minPrecision),
2795
2792
  'info': entry,
2796
2793
  'active': active,
2797
2794
  'deposit': isDepositEnabled,
@@ -3147,10 +3144,10 @@ class binance(Exchange, ImplicitAPI):
3147
3144
  'strike': parsedStrike,
3148
3145
  'optionType': self.safe_string_lower(market, 'side'),
3149
3146
  'precision': {
3150
- 'amount': self.safe_integer_2(market, 'quantityPrecision', 'quantityScale'),
3151
- 'price': self.safe_integer_2(market, 'pricePrecision', 'priceScale'),
3152
- 'base': self.safe_integer(market, 'baseAssetPrecision'),
3153
- 'quote': self.safe_integer(market, 'quotePrecision'),
3147
+ 'amount': self.parse_number(self.parse_precision(self.safe_string_2(market, 'quantityPrecision', 'quantityScale'))),
3148
+ 'price': self.parse_number(self.parse_precision(self.safe_string_2(market, 'pricePrecision', 'priceScale'))),
3149
+ 'base': self.parse_number(self.parse_precision(self.safe_string(market, 'baseAssetPrecision'))),
3150
+ 'quote': self.parse_number(self.parse_precision(self.safe_string(market, 'quotePrecision'))),
3154
3151
  },
3155
3152
  'limits': {
3156
3153
  'leverage': {
@@ -3183,11 +3180,10 @@ class binance(Exchange, ImplicitAPI):
3183
3180
  'min': self.safe_number(filter, 'minPrice'),
3184
3181
  'max': self.safe_number(filter, 'maxPrice'),
3185
3182
  }
3186
- entry['precision']['price'] = self.precision_from_string(filter['tickSize'])
3183
+ entry['precision']['price'] = self.safe_number(filter, 'tickSize')
3187
3184
  if 'LOT_SIZE' in filtersByType:
3188
3185
  filter = self.safe_dict(filtersByType, 'LOT_SIZE', {})
3189
- stepSize = self.safe_string(filter, 'stepSize')
3190
- entry['precision']['amount'] = self.precision_from_string(stepSize)
3186
+ entry['precision']['amount'] = self.safe_number(filter, 'stepSize')
3191
3187
  entry['limits']['amount'] = {
3192
3188
  'min': self.safe_number(filter, 'minQty'),
3193
3189
  'max': self.safe_number(filter, 'maxQty'),
@@ -8902,7 +8898,7 @@ class binance(Exchange, ImplicitAPI):
8902
8898
  leftSide = Precise.string_mul(size, onePlusMaintenanceMarginPercentageString)
8903
8899
  rightSide = Precise.string_sub(Precise.string_mul(Precise.string_div('1', entryPriceSignString), size), walletBalance)
8904
8900
  liquidationPriceStringRaw = Precise.string_div(leftSide, rightSide)
8905
- pricePrecision = market['precision']['price']
8901
+ pricePrecision = self.precision_from_string(self.safe_string(market['precision'], 'price'))
8906
8902
  pricePrecisionPlusOne = pricePrecision + 1
8907
8903
  pricePrecisionPlusOneString = str(pricePrecisionPlusOne)
8908
8904
  # round half up
@@ -9067,8 +9063,7 @@ class binance(Exchange, ImplicitAPI):
9067
9063
  onePlusMaintenanceMarginPercentageString = Precise.string_add('-1', maintenanceMarginPercentageString)
9068
9064
  inner = Precise.string_mul(liquidationPriceString, onePlusMaintenanceMarginPercentageString)
9069
9065
  leftSide = Precise.string_add(inner, entryPriceSignString)
9070
- pricePrecision = self.safe_integer(precision, 'price')
9071
- quotePrecision = self.safe_integer(precision, 'quote', pricePrecision)
9066
+ quotePrecision = self.precision_from_string(self.safe_string_2(precision, 'quote', 'price'))
9072
9067
  if quotePrecision is not None:
9073
9068
  collateralString = Precise.string_div(Precise.string_mul(leftSide, contractsAbs), '1', quotePrecision)
9074
9069
  else:
@@ -9082,7 +9077,7 @@ class binance(Exchange, ImplicitAPI):
9082
9077
  entryPriceSignString = Precise.string_mul('-1', entryPriceSignString)
9083
9078
  leftSide = Precise.string_mul(contractsAbs, contractSizeString)
9084
9079
  rightSide = Precise.string_sub(Precise.string_div('1', entryPriceSignString), Precise.string_div(onePlusMaintenanceMarginPercentageString, liquidationPriceString))
9085
- basePrecision = self.safe_integer(precision, 'base')
9080
+ basePrecision = self.precision_from_string(self.safe_string(precision, 'base'))
9086
9081
  if basePrecision is not None:
9087
9082
  collateralString = Precise.string_div(Precise.string_mul(leftSide, rightSide), '1', basePrecision)
9088
9083
  else:
@@ -11889,7 +11884,7 @@ class binance(Exchange, ImplicitAPI):
11889
11884
  'deposit': None,
11890
11885
  'withdraw': None,
11891
11886
  'fee': None,
11892
- 'precision': self.safe_integer(entry, 'fraction'),
11887
+ 'precision': self.parse_number(self.parse_precision(self.safe_string(entry, 'fraction'))),
11893
11888
  'limits': {
11894
11889
  'amount': {
11895
11890
  'min': None,
@@ -3980,6 +3980,7 @@ class bitget(Exchange, ImplicitAPI):
3980
3980
  :param str [params.trailingTriggerPrice]: *swap and future only* the price to trigger a trailing stop order, default uses the price argument
3981
3981
  :param str [params.triggerType]: *swap and future only* 'fill_price', 'mark_price' or 'index_price'
3982
3982
  :param boolean [params.oneWayMode]: *swap and future only* required to set self to True in one_way_mode and you can leave self in hedge_mode, can adjust the mode using the setPositionMode() method
3983
+ :param bool [params.reduceOnly]: True or False whether the order is reduce-only
3983
3984
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3984
3985
  """
3985
3986
  self.load_markets()
@@ -962,7 +962,19 @@ class bitso(Exchange, ImplicitAPI):
962
962
  request: dict = {
963
963
  'oid': id,
964
964
  }
965
- return self.privateDeleteOrdersOid(self.extend(request, params))
965
+ response = self.privateDeleteOrdersOid(self.extend(request, params))
966
+ #
967
+ # {
968
+ # "success": True,
969
+ # "payload": ["yWTQGxDMZ0VimZgZ"]
970
+ # }
971
+ #
972
+ payload = self.safe_list(response, 'payload', [])
973
+ orderId = self.safe_string(payload, 0)
974
+ return self.safe_order({
975
+ 'info': response,
976
+ 'id': orderId,
977
+ })
966
978
 
967
979
  def cancel_orders(self, ids, symbol: Str = None, params={}):
968
980
  """
@@ -3746,10 +3746,10 @@ class htx(Exchange, ImplicitAPI):
3746
3746
  'status': '0', # support multiple query seperated by ',',such as '3,4,5', 0: all. 3. Have sumbmitted the orders; 4. Orders partially matched; 5. Orders cancelled with partially matched; 6. Orders fully matched; 7. Orders cancelled
3747
3747
  }
3748
3748
  response = None
3749
- stop = self.safe_value(params, 'stop')
3749
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
3750
3750
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
3751
3751
  trailing = self.safe_bool(params, 'trailing', False)
3752
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
3752
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
3753
3753
  if stop or stopLossTakeProfit or trailing:
3754
3754
  if limit is not None:
3755
3755
  request['page_size'] = limit
@@ -4070,10 +4070,10 @@ class htx(Exchange, ImplicitAPI):
4070
4070
  if limit is not None:
4071
4071
  request['page_size'] = limit
4072
4072
  request['contract_code'] = market['id']
4073
- stop = self.safe_value(params, 'stop')
4073
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
4074
4074
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
4075
4075
  trailing = self.safe_bool(params, 'trailing', False)
4076
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
4076
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
4077
4077
  if market['linear']:
4078
4078
  marginMode = None
4079
4079
  marginMode, params = self.handle_margin_mode_and_params('fetchOpenOrders', params)
@@ -5305,10 +5305,10 @@ class htx(Exchange, ImplicitAPI):
5305
5305
  request['symbol'] = market['settleId']
5306
5306
  else:
5307
5307
  request['contract_code'] = market['id']
5308
- stop = self.safe_value(params, 'stop')
5308
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5309
5309
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5310
5310
  trailing = self.safe_bool(params, 'trailing', False)
5311
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
5311
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
5312
5312
  if market['linear']:
5313
5313
  marginMode = None
5314
5314
  marginMode, params = self.handle_margin_mode_and_params('cancelOrder', params)
@@ -5432,9 +5432,9 @@ class htx(Exchange, ImplicitAPI):
5432
5432
  request['symbol'] = market['settleId']
5433
5433
  else:
5434
5434
  request['contract_code'] = market['id']
5435
- stop = self.safe_value(params, 'stop')
5435
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5436
5436
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5437
- params = self.omit(params, ['stop', 'stopLossTakeProfit'])
5437
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trigger'])
5438
5438
  if market['linear']:
5439
5439
  marginMode = None
5440
5440
  marginMode, params = self.handle_margin_mode_and_params('cancelOrders', params)
@@ -5564,10 +5564,10 @@ class htx(Exchange, ImplicitAPI):
5564
5564
  if market['future']:
5565
5565
  request['symbol'] = market['settleId']
5566
5566
  request['contract_code'] = market['id']
5567
- stop = self.safe_value(params, 'stop')
5567
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
5568
5568
  stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
5569
5569
  trailing = self.safe_bool(params, 'trailing', False)
5570
- params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing'])
5570
+ params = self.omit(params, ['stop', 'stopLossTakeProfit', 'trailing', 'trigger'])
5571
5571
  if market['linear']:
5572
5572
  marginMode = None
5573
5573
  marginMode, params = self.handle_margin_mode_and_params('cancelAllOrders', params)