ccxt 4.0.75__tar.gz → 4.0.77__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 (464) hide show
  1. {ccxt-4.0.75/ccxt.egg-info → ccxt-4.0.77}/PKG-INFO +4 -4
  2. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/__init__.py +1 -1
  3. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bingx.py +2 -0
  4. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinsph.py +5 -0
  5. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/gate.py +24 -0
  6. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/gateio.py +24 -0
  7. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/ace.py +2 -2
  8. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/alpaca.py +1 -1
  9. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/ascendex.py +3 -3
  10. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/__init__.py +1 -1
  11. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/ace.py +2 -2
  12. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/alpaca.py +1 -1
  13. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/ascendex.py +3 -3
  14. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/exchange.py +3 -3
  15. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bigone.py +2 -2
  16. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/binance.py +5 -5
  17. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bingx.py +72 -21
  18. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bit2c.py +2 -2
  19. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitbank.py +2 -2
  20. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitbns.py +2 -2
  21. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitfinex.py +2 -2
  22. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitfinex2.py +4 -4
  23. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitflyer.py +2 -2
  24. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitforex.py +2 -2
  25. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitget.py +5 -5
  26. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bithumb.py +2 -2
  27. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitmart.py +2 -2
  28. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitmex.py +5 -5
  29. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitopro.py +3 -3
  30. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitpanda.py +2 -2
  31. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitrue.py +3 -3
  32. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitso.py +2 -2
  33. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitstamp.py +2 -2
  34. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitstamp1.py +2 -2
  35. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bittrex.py +3 -3
  36. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitvavo.py +3 -3
  37. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bkex.py +4 -4
  38. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bl3p.py +2 -2
  39. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/blockchaincom.py +1 -1
  40. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/btcalpha.py +2 -2
  41. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/btcbox.py +2 -2
  42. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/btcmarkets.py +2 -2
  43. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/btctradeua.py +2 -2
  44. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/btcturk.py +2 -2
  45. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bybit.py +6 -6
  46. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/cex.py +2 -2
  47. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinbase.py +3 -3
  48. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinbasepro.py +2 -2
  49. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coincheck.py +2 -2
  50. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinex.py +6 -6
  51. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinfalcon.py +2 -2
  52. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinmate.py +2 -2
  53. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinone.py +2 -2
  54. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinsph.py +7 -2
  55. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinspot.py +2 -2
  56. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/cryptocom.py +5 -5
  57. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/currencycom.py +2 -2
  58. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/delta.py +2 -2
  59. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/deribit.py +3 -3
  60. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/digifinex.py +4 -4
  61. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/exmo.py +2 -2
  62. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/gate.py +46 -4
  63. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/gemini.py +3 -3
  64. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/hitbtc.py +4 -4
  65. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/hollaex.py +3 -3
  66. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/huobi.py +5 -5
  67. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/huobijp.py +2 -2
  68. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/idex.py +2 -2
  69. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/independentreserve.py +2 -2
  70. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/indodax.py +2 -2
  71. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/kraken.py +2 -2
  72. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/kucoin.py +4 -4
  73. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/kucoinfutures.py +5 -5
  74. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/kuna.py +2 -2
  75. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/latoken.py +2 -2
  76. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/lbank.py +2 -2
  77. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/lbank2.py +2 -2
  78. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/luno.py +2 -2
  79. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/lykke.py +2 -2
  80. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/mercado.py +2 -2
  81. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/mexc.py +6 -3
  82. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/ndax.py +2 -2
  83. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/novadax.py +2 -2
  84. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/oceanex.py +2 -2
  85. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/okcoin.py +2 -2
  86. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/okx.py +4 -4
  87. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/paymium.py +2 -2
  88. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/phemex.py +2 -2
  89. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/poloniex.py +149 -68
  90. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/poloniexfutures.py +2 -2
  91. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/probit.py +2 -2
  92. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/tidex.py +2 -2
  93. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/timex.py +2 -2
  94. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/tokocrypto.py +2 -2
  95. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/upbit.py +2 -2
  96. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/wavesexchange.py +3 -3
  97. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/wazirx.py +2 -2
  98. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/whitebit.py +4 -3
  99. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/woo.py +2 -2
  100. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/yobit.py +2 -2
  101. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/zaif.py +2 -2
  102. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/zonda.py +2 -2
  103. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/exchange.py +3 -3
  104. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bigone.py +2 -2
  105. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/binance.py +5 -5
  106. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bingx.py +72 -21
  107. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bit2c.py +2 -2
  108. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitbank.py +2 -2
  109. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitbns.py +2 -2
  110. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitfinex.py +2 -2
  111. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitfinex2.py +4 -4
  112. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitflyer.py +2 -2
  113. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitforex.py +2 -2
  114. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitget.py +5 -5
  115. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bithumb.py +2 -2
  116. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitmart.py +2 -2
  117. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitmex.py +5 -5
  118. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitopro.py +3 -3
  119. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitpanda.py +2 -2
  120. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitrue.py +3 -3
  121. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitso.py +2 -2
  122. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitstamp.py +2 -2
  123. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitstamp1.py +2 -2
  124. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bittrex.py +3 -3
  125. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitvavo.py +3 -3
  126. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bkex.py +4 -4
  127. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bl3p.py +2 -2
  128. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/blockchaincom.py +1 -1
  129. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/btcalpha.py +2 -2
  130. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/btcbox.py +2 -2
  131. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/btcmarkets.py +2 -2
  132. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/btctradeua.py +2 -2
  133. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/btcturk.py +2 -2
  134. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bybit.py +6 -6
  135. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/cex.py +2 -2
  136. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinbase.py +3 -3
  137. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinbasepro.py +2 -2
  138. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coincheck.py +2 -2
  139. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinex.py +6 -6
  140. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinfalcon.py +2 -2
  141. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinmate.py +2 -2
  142. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinone.py +2 -2
  143. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinsph.py +7 -2
  144. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinspot.py +2 -2
  145. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/cryptocom.py +5 -5
  146. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/currencycom.py +2 -2
  147. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/delta.py +2 -2
  148. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/deribit.py +3 -3
  149. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/digifinex.py +4 -4
  150. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/exmo.py +2 -2
  151. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/gate.py +46 -4
  152. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/gemini.py +3 -3
  153. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/hitbtc.py +4 -4
  154. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/hollaex.py +3 -3
  155. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/huobi.py +5 -5
  156. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/huobijp.py +2 -2
  157. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/idex.py +2 -2
  158. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/independentreserve.py +2 -2
  159. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/indodax.py +2 -2
  160. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/kraken.py +2 -2
  161. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/kucoin.py +4 -4
  162. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/kucoinfutures.py +5 -5
  163. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/kuna.py +2 -2
  164. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/latoken.py +2 -2
  165. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/lbank.py +2 -2
  166. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/lbank2.py +2 -2
  167. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/luno.py +2 -2
  168. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/lykke.py +2 -2
  169. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/mercado.py +2 -2
  170. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/mexc.py +6 -3
  171. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/ndax.py +2 -2
  172. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/novadax.py +2 -2
  173. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/oceanex.py +2 -2
  174. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/okcoin.py +2 -2
  175. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/okx.py +4 -4
  176. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/paymium.py +2 -2
  177. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/phemex.py +2 -2
  178. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/poloniex.py +149 -68
  179. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/poloniexfutures.py +2 -2
  180. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/__init__.py +1 -1
  181. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/ascendex.py +2 -2
  182. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/binance.py +6 -6
  183. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitfinex.py +1 -1
  184. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitfinex2.py +2 -2
  185. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitget.py +2 -2
  186. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitmart.py +1 -1
  187. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitmex.py +2 -2
  188. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitopro.py +2 -2
  189. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitpanda.py +6 -6
  190. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitrue.py +1 -1
  191. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitstamp.py +1 -1
  192. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bittrex.py +2 -2
  193. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitvavo.py +1 -1
  194. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/blockchaincom.py +5 -5
  195. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bybit.py +1 -1
  196. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/cex.py +4 -4
  197. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/coinbase.py +5 -5
  198. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/coinbasepro.py +1 -1
  199. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/coinex.py +2 -2
  200. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/cryptocom.py +3 -3
  201. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/currencycom.py +2 -2
  202. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/deribit.py +3 -3
  203. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/exmo.py +3 -3
  204. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/gate.py +2 -2
  205. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/gemini.py +1 -1
  206. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/hitbtc.py +1 -1
  207. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/hollaex.py +2 -2
  208. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/huobi.py +2 -2
  209. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/huobijp.py +1 -1
  210. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/idex.py +1 -1
  211. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/independentreserve.py +1 -1
  212. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/kraken.py +6 -6
  213. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/krakenfutures.py +5 -5
  214. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/kucoin.py +2 -2
  215. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/kucoinfutures.py +3 -2
  216. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/luno.py +1 -1
  217. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/mexc.py +6 -6
  218. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/ndax.py +1 -1
  219. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/okcoin.py +2 -2
  220. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/okx.py +10 -7
  221. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/phemex.py +2 -2
  222. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/poloniex.py +6 -6
  223. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/poloniexfutures.py +5 -5
  224. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/probit.py +6 -6
  225. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/upbit.py +1 -1
  226. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/wazirx.py +3 -3
  227. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/whitebit.py +2 -2
  228. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/probit.py +2 -2
  229. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/tidex.py +2 -2
  230. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/timex.py +2 -2
  231. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/tokocrypto.py +2 -2
  232. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/upbit.py +2 -2
  233. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/wavesexchange.py +3 -3
  234. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/wazirx.py +2 -2
  235. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/whitebit.py +4 -3
  236. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/woo.py +2 -2
  237. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/yobit.py +2 -2
  238. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/zaif.py +2 -2
  239. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/zonda.py +2 -2
  240. {ccxt-4.0.75 → ccxt-4.0.77/ccxt.egg-info}/PKG-INFO +4 -4
  241. {ccxt-4.0.75 → ccxt-4.0.77}/package.json +1 -1
  242. {ccxt-4.0.75 → ccxt-4.0.77}/LICENSE.txt +0 -0
  243. {ccxt-4.0.75 → ccxt-4.0.77}/MANIFEST.in +0 -0
  244. {ccxt-4.0.75 → ccxt-4.0.77}/README.rst +0 -0
  245. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/__init__.py +0 -0
  246. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/ace.py +0 -0
  247. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/alpaca.py +0 -0
  248. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/ascendex.py +0 -0
  249. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bequant.py +0 -0
  250. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bigone.py +0 -0
  251. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/binance.py +0 -0
  252. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/binancecoinm.py +0 -0
  253. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/binanceus.py +0 -0
  254. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/binanceusdm.py +0 -0
  255. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bit2c.py +0 -0
  256. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitbank.py +0 -0
  257. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitbay.py +0 -0
  258. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitbns.py +0 -0
  259. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitcoincom.py +0 -0
  260. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitfinex.py +0 -0
  261. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitfinex2.py +0 -0
  262. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitflyer.py +0 -0
  263. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitforex.py +0 -0
  264. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitget.py +0 -0
  265. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bithumb.py +0 -0
  266. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitmart.py +0 -0
  267. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitmex.py +0 -0
  268. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitopro.py +0 -0
  269. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitpanda.py +0 -0
  270. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitrue.py +0 -0
  271. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitso.py +0 -0
  272. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitstamp.py +0 -0
  273. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitstamp1.py +0 -0
  274. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bittrex.py +0 -0
  275. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bitvavo.py +0 -0
  276. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bkex.py +0 -0
  277. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bl3p.py +0 -0
  278. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/blockchaincom.py +0 -0
  279. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/btcalpha.py +0 -0
  280. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/btcbox.py +0 -0
  281. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/btcmarkets.py +0 -0
  282. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/btctradeua.py +0 -0
  283. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/btcturk.py +0 -0
  284. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/bybit.py +0 -0
  285. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/cex.py +0 -0
  286. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinbase.py +0 -0
  287. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinbaseprime.py +0 -0
  288. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinbasepro.py +0 -0
  289. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coincheck.py +0 -0
  290. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinex.py +0 -0
  291. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinfalcon.py +0 -0
  292. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinmate.py +0 -0
  293. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinone.py +0 -0
  294. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/coinspot.py +0 -0
  295. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/cryptocom.py +0 -0
  296. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/currencycom.py +0 -0
  297. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/delta.py +0 -0
  298. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/deribit.py +0 -0
  299. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/digifinex.py +0 -0
  300. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/exmo.py +0 -0
  301. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/fmfwio.py +0 -0
  302. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/gemini.py +0 -0
  303. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/hitbtc.py +0 -0
  304. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/hitbtc3.py +0 -0
  305. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/hollaex.py +0 -0
  306. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/huobi.py +0 -0
  307. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/huobijp.py +0 -0
  308. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/huobipro.py +0 -0
  309. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/idex.py +0 -0
  310. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/independentreserve.py +0 -0
  311. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/indodax.py +0 -0
  312. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/kraken.py +0 -0
  313. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/krakenfutures.py +0 -0
  314. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/kucoin.py +0 -0
  315. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/kucoinfutures.py +0 -0
  316. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/kuna.py +0 -0
  317. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/latoken.py +0 -0
  318. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/lbank.py +0 -0
  319. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/lbank2.py +0 -0
  320. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/luno.py +0 -0
  321. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/lykke.py +0 -0
  322. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/mercado.py +0 -0
  323. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/mexc.py +0 -0
  324. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/mexc3.py +0 -0
  325. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/ndax.py +0 -0
  326. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/novadax.py +0 -0
  327. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/oceanex.py +0 -0
  328. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/okcoin.py +0 -0
  329. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/okex.py +0 -0
  330. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/okex5.py +0 -0
  331. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/okx.py +0 -0
  332. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/paymium.py +0 -0
  333. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/phemex.py +0 -0
  334. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/poloniex.py +0 -0
  335. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/poloniexfutures.py +0 -0
  336. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/probit.py +0 -0
  337. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/tidex.py +0 -0
  338. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/timex.py +0 -0
  339. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/tokocrypto.py +0 -0
  340. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/upbit.py +0 -0
  341. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/wavesexchange.py +0 -0
  342. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/wazirx.py +0 -0
  343. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/whitebit.py +0 -0
  344. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/woo.py +0 -0
  345. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/yobit.py +0 -0
  346. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/zaif.py +0 -0
  347. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/abstract/zonda.py +0 -0
  348. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/__init__.py +0 -0
  349. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/throttler.py +0 -0
  350. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/__init__.py +0 -0
  351. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  352. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/cache.py +0 -0
  353. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/client.py +0 -0
  354. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/fast_client.py +0 -0
  355. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/functions.py +0 -0
  356. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/future.py +0 -0
  357. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/order_book.py +0 -0
  358. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  359. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bequant.py +0 -0
  360. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/binancecoinm.py +0 -0
  361. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/binanceus.py +0 -0
  362. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/binanceusdm.py +0 -0
  363. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitbay.py +0 -0
  364. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/bitcoincom.py +0 -0
  365. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/coinbaseprime.py +0 -0
  366. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/flowbtc.py +0 -0
  367. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/fmfwio.py +0 -0
  368. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/gateio.py +0 -0
  369. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/hitbtc3.py +0 -0
  370. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/huobipro.py +0 -0
  371. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/krakenfutures.py +0 -0
  372. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/mexc3.py +0 -0
  373. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/okex.py +0 -0
  374. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/async_support/okex5.py +0 -0
  375. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/__init__.py +0 -0
  376. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/decimal_to_precision.py +0 -0
  377. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/errors.py +0 -0
  378. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/precise.py +0 -0
  379. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/base/types.py +0 -0
  380. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bequant.py +0 -0
  381. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/binancecoinm.py +0 -0
  382. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/binanceus.py +0 -0
  383. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/binanceusdm.py +0 -0
  384. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitbay.py +0 -0
  385. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/bitcoincom.py +0 -0
  386. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/coinbaseprime.py +0 -0
  387. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/flowbtc.py +0 -0
  388. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/fmfwio.py +0 -0
  389. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/gateio.py +0 -0
  390. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/hitbtc3.py +0 -0
  391. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/huobipro.py +0 -0
  392. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/krakenfutures.py +0 -0
  393. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/mexc3.py +0 -0
  394. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/okex.py +0 -0
  395. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/okex5.py +0 -0
  396. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/alpaca.py +0 -0
  397. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bequant.py +0 -0
  398. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/binancecoinm.py +0 -0
  399. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/binanceus.py +0 -0
  400. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/binanceusdm.py +0 -0
  401. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/bitcoincom.py +0 -0
  402. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/btcex.py +0 -0
  403. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/coinbaseprime.py +0 -0
  404. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/gateio.py +0 -0
  405. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/huobipro.py +0 -0
  406. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/mexc3.py +0 -0
  407. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/okex.py +0 -0
  408. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/ripio.py +0 -0
  409. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/woo.py +0 -0
  410. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/pro/zb.py +0 -0
  411. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/__init__.py +0 -0
  412. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  413. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  414. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  415. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  416. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  417. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  418. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  419. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  420. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  421. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  422. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  423. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  424. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/__init__.py +0 -0
  425. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/__init__.py +0 -0
  426. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_account.py +0 -0
  427. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_balance.py +0 -0
  428. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_borrow_interest.py +0 -0
  429. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_borrow_rate.py +0 -0
  430. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_calculate_fee.py +0 -0
  431. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_crypto.py +0 -0
  432. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_currency.py +0 -0
  433. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_datetime.py +0 -0
  434. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  435. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_deep_extend.py +0 -0
  436. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  437. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  438. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_funding_rate_history.py +0 -0
  439. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_ledger_entry.py +0 -0
  440. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_ledger_item.py +0 -0
  441. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_leverage_tier.py +0 -0
  442. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_margin_modification.py +0 -0
  443. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_market.py +0 -0
  444. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_number.py +0 -0
  445. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_ohlcv.py +0 -0
  446. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_open_interest.py +0 -0
  447. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_order.py +0 -0
  448. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_order_book.py +0 -0
  449. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_position.py +0 -0
  450. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_shared_methods.py +0 -0
  451. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_status.py +0 -0
  452. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_throttle.py +0 -0
  453. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_ticker.py +0 -0
  454. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_trade.py +0 -0
  455. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_trading_fee.py +0 -0
  456. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/base/test_transaction.py +0 -0
  457. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/test_async.py +0 -0
  458. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt/test/test_sync.py +0 -0
  459. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt.egg-info/SOURCES.txt +0 -0
  460. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt.egg-info/dependency_links.txt +0 -0
  461. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt.egg-info/requires.txt +0 -0
  462. {ccxt-4.0.75 → ccxt-4.0.77}/ccxt.egg-info/top_level.txt +0 -0
  463. {ccxt-4.0.75 → ccxt-4.0.77}/setup.cfg +0 -0
  464. {ccxt-4.0.75 → ccxt-4.0.77}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.0.75
3
+ Version: 4.0.77
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ 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.0.75/dist/ccxt.browser.js
232
- * unpkg: https://unpkg.com/ccxt@4.0.75/dist/ccxt.browser.js
231
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.77/dist/ccxt.browser.js
232
+ * unpkg: https://unpkg.com/ccxt@4.0.77/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.0.75/dist/ccxt.browser.js"></script>
237
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.77/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.0.75'
25
+ __version__ = '4.0.77'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -10,9 +10,11 @@ class ImplicitAPI:
10
10
  spot_v1_private_get_trade_openorders = spotV1PrivateGetTradeOpenOrders = Entry('trade/openOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
11
11
  spot_v1_private_get_trade_historyorders = spotV1PrivateGetTradeHistoryOrders = Entry('trade/historyOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
12
12
  spot_v1_private_get_account_balance = spotV1PrivateGetAccountBalance = Entry('account/balance', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
13
+ spot_v1_private_get_ticker_24hr = spotV1PrivateGetTicker24hr = Entry('ticker/24hr', ['spot', 'v1', 'private'], 'GET', {'cost': 1})
13
14
  spot_v1_private_post_trade_order = spotV1PrivatePostTradeOrder = Entry('trade/order', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
14
15
  spot_v1_private_post_trade_cancel = spotV1PrivatePostTradeCancel = Entry('trade/cancel', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
15
16
  spot_v1_private_post_trade_batchorders = spotV1PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
17
+ spot_v1_private_post_trade_cancelorders = spotV1PrivatePostTradeCancelOrders = Entry('trade/cancelOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
16
18
  spot_v3_private_get_get_asset_transfer = spotV3PrivateGetGetAssetTransfer = Entry('get/asset/transfer', ['spot', 'v3', 'private'], 'GET', {'cost': 3})
17
19
  spot_v3_private_get_asset_transfer = spotV3PrivateGetAssetTransfer = Entry('asset/transfer', ['spot', 'v3', 'private'], 'GET', {'cost': 3})
18
20
  spot_v3_private_get_capital_deposit_hisrec = spotV3PrivateGetCapitalDepositHisrec = Entry('capital/deposit/hisrec', ['spot', 'v3', 'private'], 'GET', {'cost': 3})
@@ -43,6 +43,11 @@ class ImplicitAPI:
43
43
  private_post_openapi_convert_v1_get_supported_trading_pairs = privatePostOpenapiConvertV1GetSupportedTradingPairs = Entry('openapi/convert/v1/get-supported-trading-pairs', 'private', 'POST', {'cost': 1})
44
44
  private_post_openapi_convert_v1_get_quote = privatePostOpenapiConvertV1GetQuote = Entry('openapi/convert/v1/get-quote', 'private', 'POST', {'cost': 1})
45
45
  private_post_openapi_convert_v1_accpet_quote = privatePostOpenapiConvertV1AccpetQuote = Entry('openapi/convert/v1/accpet-quote', 'private', 'POST', {'cost': 1})
46
+ private_post_openapi_fiat_v1_support_channel = privatePostOpenapiFiatV1SupportChannel = Entry('openapi/fiat/v1/support-channel', 'private', 'POST', {'cost': 1})
47
+ private_post_openapi_fiat_v1_cash_out = privatePostOpenapiFiatV1CashOut = Entry('openapi/fiat/v1/cash-out', 'private', 'POST', {'cost': 1})
48
+ private_post_openapi_fiat_v1_history = privatePostOpenapiFiatV1History = Entry('openapi/fiat/v1/history', 'private', 'POST', {'cost': 1})
49
+ private_post_openapi_migration_v4_sellorder = privatePostOpenapiMigrationV4Sellorder = Entry('openapi/migration/v4/sellorder', 'private', 'POST', {'cost': 1})
50
+ private_post_openapi_migration_v4_validate_field = privatePostOpenapiMigrationV4ValidateField = Entry('openapi/migration/v4/validate-field', 'private', 'POST', {'cost': 1})
46
51
  private_post_openapi_transfer_v3_transfers = privatePostOpenapiTransferV3Transfers = Entry('openapi/transfer/v3/transfers', 'private', 'POST', {'cost': 1})
47
52
  private_delete_openapi_v1_order = privateDeleteOpenapiV1Order = Entry('openapi/v1/order', 'private', 'DELETE', {'cost': 1})
48
53
  private_delete_openapi_v1_openorders = privateDeleteOpenapiV1OpenOrders = Entry('openapi/v1/openOrders', 'private', 'DELETE', {'cost': 1})
@@ -80,6 +80,19 @@ class ImplicitAPI:
80
80
  private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
81
81
  private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
82
82
  private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
83
+ private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
84
+ private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
85
+ private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
86
+ private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
87
+ private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
88
+ private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
89
+ private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
90
+ private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
91
+ private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
92
+ private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
93
+ private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
94
+ private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
95
+ private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
83
96
  private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
84
97
  private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
85
98
  private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
@@ -213,10 +226,21 @@ class ImplicitAPI:
213
226
  private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
214
227
  private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
215
228
  private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
229
+ private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
230
+ private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
231
+ private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
232
+ private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
233
+ private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
234
+ private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
235
+ private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
236
+ private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
237
+ private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
238
+ private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
216
239
  private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
217
240
  private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
218
241
  private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
219
242
  private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
220
243
  private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
244
+ private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
221
245
  private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
222
246
  private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
@@ -80,6 +80,19 @@ class ImplicitAPI:
80
80
  private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
81
81
  private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
82
82
  private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
83
+ private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
84
+ private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
85
+ private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
86
+ private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
87
+ private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
88
+ private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
89
+ private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
90
+ private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
91
+ private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
92
+ private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
93
+ private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
94
+ private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
95
+ private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
83
96
  private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
84
97
  private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
85
98
  private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
@@ -213,10 +226,21 @@ class ImplicitAPI:
213
226
  private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
214
227
  private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
215
228
  private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
229
+ private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
230
+ private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
231
+ private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
232
+ private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
233
+ private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
234
+ private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
235
+ private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
236
+ private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
237
+ private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
238
+ private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
216
239
  private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
217
240
  private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
218
241
  private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
219
242
  private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
220
243
  private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
244
+ private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
221
245
  private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
222
246
  private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
@@ -859,7 +859,7 @@ class ace(Exchange, ImplicitAPI):
859
859
  :param int [since]: timestamp in ms of the earliest trade to fetch
860
860
  :param int [limit]: the maximum amount of trades to fetch
861
861
  :param dict [params]: extra parameters specific to the ace api endpoint
862
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
862
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
863
863
  """
864
864
  self.load_markets()
865
865
  market = self.safe_market(symbol)
@@ -939,7 +939,7 @@ class ace(Exchange, ImplicitAPI):
939
939
  query for balance and get the amount of funds available for trading or funds locked in orders
940
940
  see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---account-balance
941
941
  :param dict [params]: extra parameters specific to the ace api endpoint
942
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
942
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
943
943
  """
944
944
  self.load_markets()
945
945
  response = self.privatePostV2CoinCustomerAccount(params)
@@ -325,7 +325,7 @@ class alpaca(Exchange, ImplicitAPI):
325
325
  :param int [since]: timestamp in ms of the earliest trade to fetch
326
326
  :param int [limit]: the maximum amount of trades to fetch
327
327
  :param dict [params]: extra parameters specific to the alpaca api endpoint
328
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
328
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
329
329
  """
330
330
  self.load_markets()
331
331
  market = self.market(symbol)
@@ -792,7 +792,7 @@ class ascendex(Exchange, ImplicitAPI):
792
792
  """
793
793
  query for balance and get the amount of funds available for trading or funds locked in orders
794
794
  :param dict [params]: extra parameters specific to the ascendex api endpoint
795
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
795
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
796
796
  """
797
797
  self.load_markets()
798
798
  self.load_accounts()
@@ -1160,7 +1160,7 @@ class ascendex(Exchange, ImplicitAPI):
1160
1160
  :param int [since]: timestamp in ms of the earliest trade to fetch
1161
1161
  :param int [limit]: the maximum amount of trades to fetch
1162
1162
  :param dict [params]: extra parameters specific to the ascendex api endpoint
1163
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
1163
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
1164
1164
  """
1165
1165
  self.load_markets()
1166
1166
  market = self.market(symbol)
@@ -2828,7 +2828,7 @@ class ascendex(Exchange, ImplicitAPI):
2828
2828
  see https://ascendex.github.io/ascendex-pro-api/#list-all-assets
2829
2829
  :param str[]|None codes: list of unified currency codes
2830
2830
  :param dict [params]: extra parameters specific to the ascendex api endpoint
2831
- :returns dict: a list of `fee structures <https://docs.ccxt.com/en/latest/manual.html#fee-structure>`
2831
+ :returns dict: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
2832
2832
  """
2833
2833
  self.load_markets()
2834
2834
  response = self.v2PublicGetAssets(params)
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.75'
7
+ __version__ = '4.0.77'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -859,7 +859,7 @@ class ace(Exchange, ImplicitAPI):
859
859
  :param int [since]: timestamp in ms of the earliest trade to fetch
860
860
  :param int [limit]: the maximum amount of trades to fetch
861
861
  :param dict [params]: extra parameters specific to the ace api endpoint
862
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
862
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
863
863
  """
864
864
  await self.load_markets()
865
865
  market = self.safe_market(symbol)
@@ -939,7 +939,7 @@ class ace(Exchange, ImplicitAPI):
939
939
  query for balance and get the amount of funds available for trading or funds locked in orders
940
940
  see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---account-balance
941
941
  :param dict [params]: extra parameters specific to the ace api endpoint
942
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
942
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
943
943
  """
944
944
  await self.load_markets()
945
945
  response = await self.privatePostV2CoinCustomerAccount(params)
@@ -325,7 +325,7 @@ class alpaca(Exchange, ImplicitAPI):
325
325
  :param int [since]: timestamp in ms of the earliest trade to fetch
326
326
  :param int [limit]: the maximum amount of trades to fetch
327
327
  :param dict [params]: extra parameters specific to the alpaca api endpoint
328
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
328
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
329
329
  """
330
330
  await self.load_markets()
331
331
  market = self.market(symbol)
@@ -792,7 +792,7 @@ class ascendex(Exchange, ImplicitAPI):
792
792
  """
793
793
  query for balance and get the amount of funds available for trading or funds locked in orders
794
794
  :param dict [params]: extra parameters specific to the ascendex api endpoint
795
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
795
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
796
796
  """
797
797
  await self.load_markets()
798
798
  await self.load_accounts()
@@ -1160,7 +1160,7 @@ class ascendex(Exchange, ImplicitAPI):
1160
1160
  :param int [since]: timestamp in ms of the earliest trade to fetch
1161
1161
  :param int [limit]: the maximum amount of trades to fetch
1162
1162
  :param dict [params]: extra parameters specific to the ascendex api endpoint
1163
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
1163
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
1164
1164
  """
1165
1165
  await self.load_markets()
1166
1166
  market = self.market(symbol)
@@ -2828,7 +2828,7 @@ class ascendex(Exchange, ImplicitAPI):
2828
2828
  see https://ascendex.github.io/ascendex-pro-api/#list-all-assets
2829
2829
  :param str[]|None codes: list of unified currency codes
2830
2830
  :param dict [params]: extra parameters specific to the ascendex api endpoint
2831
- :returns dict: a list of `fee structures <https://docs.ccxt.com/en/latest/manual.html#fee-structure>`
2831
+ :returns dict: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
2832
2832
  """
2833
2833
  await self.load_markets()
2834
2834
  response = await self.v2PublicGetAssets(params)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.0.75'
5
+ __version__ = '4.0.77'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -2323,7 +2323,7 @@ class Exchange(BaseExchange):
2323
2323
  :param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
2324
2324
  :param int [limit]: max number of deposit/withdrawals to return, default is None
2325
2325
  :param dict [params]: extra parameters specific to the exchange api endpoint
2326
- :returns dict: a list of `transaction structures <https://docs.ccxt.com/en/latest/manual.html#transaction-structure>`
2326
+ :returns dict: a list of `transaction structures <https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure>`
2327
2327
  """
2328
2328
  raise NotSupported(self.id + ' fetchDepositsWithdrawals() is not supported yet')
2329
2329
 
@@ -2981,7 +2981,7 @@ class Exchange(BaseExchange):
2981
2981
  :param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
2982
2982
  :param int [limit]: max number of deposit/withdrawals to return, default is None
2983
2983
  :param dict [params]: extra parameters specific to the exchange api endpoint
2984
- :returns dict: a list of `transaction structures <https://docs.ccxt.com/en/latest/manual.html#transaction-structure>`
2984
+ :returns dict: a list of `transaction structures <https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure>`
2985
2985
  """
2986
2986
  if self.has['fetchDepositsWithdrawals']:
2987
2987
  return await self.fetchDepositsWithdrawals(code, since, limit, params)
@@ -896,7 +896,7 @@ class bigone(Exchange, ImplicitAPI):
896
896
  :param int [since]: timestamp in ms of the earliest trade to fetch
897
897
  :param int [limit]: the maximum amount of trades to fetch
898
898
  :param dict [params]: extra parameters specific to the bigone api endpoint
899
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
899
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
900
900
  """
901
901
  await self.load_markets()
902
902
  market = self.market(symbol)
@@ -1020,7 +1020,7 @@ class bigone(Exchange, ImplicitAPI):
1020
1020
  """
1021
1021
  query for balance and get the amount of funds available for trading or funds locked in orders
1022
1022
  :param dict [params]: extra parameters specific to the bigone api endpoint
1023
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
1023
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
1024
1024
  """
1025
1025
  await self.load_markets()
1026
1026
  type = self.safe_string(params, 'type', '')
@@ -2444,7 +2444,7 @@ class binance(Exchange, ImplicitAPI):
2444
2444
  :param str [params.type]: 'future', 'delivery', 'savings', 'funding', or 'spot'
2445
2445
  :param str [params.marginMode]: 'cross' or 'isolated', for margin trading, uses self.options.defaultMarginMode if not passed, defaults to None/None/None
2446
2446
  :param str[]|None [params.symbols]: unified market symbols, only used in isolated margin mode
2447
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
2447
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
2448
2448
  """
2449
2449
  await self.load_markets()
2450
2450
  defaultType = self.safe_string_2(self.options, 'fetchBalance', 'defaultType', 'spot')
@@ -3471,7 +3471,7 @@ class binance(Exchange, ImplicitAPI):
3471
3471
  *
3472
3472
  * EXCHANGE SPECIFIC PARAMETERS
3473
3473
  :param int [params.fromId]: trade id to fetch from, default gets most recent trades, not used when fetchTradesMethod is 'publicGetTrades', 'fapiPublicGetTrades', 'dapiPublicGetTrades', or 'eapiPublicGetTrades'
3474
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
3474
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
3475
3475
  """
3476
3476
  await self.load_markets()
3477
3477
  market = self.market(symbol)
@@ -6066,10 +6066,10 @@ class binance(Exchange, ImplicitAPI):
6066
6066
  fetches historical funding rate prices
6067
6067
  :param str symbol: unified symbol of the market to fetch the funding rate history for
6068
6068
  :param int [since]: timestamp in ms of the earliest funding rate to fetch
6069
- :param int [limit]: the maximum amount of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>` to fetch
6069
+ :param int [limit]: the maximum amount of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>` to fetch
6070
6070
  :param dict [params]: extra parameters specific to the binance api endpoint
6071
6071
  :param int [params.until]: timestamp in ms of the latest funding rate
6072
- :returns dict[]: a list of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>`
6072
+ :returns dict[]: a list of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>`
6073
6073
  """
6074
6074
  await self.load_markets()
6075
6075
  request = {}
@@ -6705,7 +6705,7 @@ class binance(Exchange, ImplicitAPI):
6705
6705
  fetch data on an open position
6706
6706
  :param str symbol: unified market symbol of the market the position is held in
6707
6707
  :param dict [params]: extra parameters specific to the binance api endpoint
6708
- :returns dict: a `position structure <https://docs.ccxt.com/en/latest/manual.html#position-structure>`
6708
+ :returns dict: a `position structure <https://github.com/ccxt/ccxt/wiki/Manual#position-structure>`
6709
6709
  """
6710
6710
  await self.load_markets()
6711
6711
  market = self.market(symbol)
@@ -116,11 +116,13 @@ class bingx(Exchange, ImplicitAPI):
116
116
  'trade/openOrders': 3,
117
117
  'trade/historyOrders': 3,
118
118
  'account/balance': 3,
119
+ 'ticker/24hr': 1,
119
120
  },
120
121
  'post': {
121
122
  'trade/order': 3,
122
123
  'trade/cancel': 3,
123
124
  'trade/batchOrders': 3,
125
+ 'trade/cancelOrders': 3,
124
126
  },
125
127
  },
126
128
  },
@@ -676,7 +678,7 @@ class bingx(Exchange, ImplicitAPI):
676
678
  :param int [since]: timestamp in ms of the earliest trade to fetch
677
679
  :param int [limit]: the maximum amount of trades to fetch
678
680
  :param dict [params]: extra parameters specific to the bingx api endpoint
679
- :returns [dict]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
681
+ :returns [dict]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
680
682
  """
681
683
  await self.load_markets()
682
684
  market = self.market(symbol)
@@ -957,9 +959,9 @@ class bingx(Exchange, ImplicitAPI):
957
959
  see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Funding%20Rate%20History
958
960
  :param str symbol: unified symbol of the market to fetch the funding rate history for
959
961
  :param int [since]: timestamp in ms of the earliest funding rate to fetch
960
- :param int [limit]: the maximum amount of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>` to fetch
962
+ :param int [limit]: the maximum amount of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>` to fetch
961
963
  :param dict [params]: extra parameters specific to the bingx api endpoint
962
- :returns [dict]: a list of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>`
964
+ :returns [dict]: a list of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>`
963
965
  """
964
966
  self.check_required_symbol('fetchFundingRateHistory', symbol)
965
967
  await self.load_markets()
@@ -1056,18 +1058,21 @@ class bingx(Exchange, ImplicitAPI):
1056
1058
  """
1057
1059
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
1058
1060
  see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Get%20Ticker
1061
+ see https://bingx-api.github.io/docs/#/spot/market-api.html#24%E5%B0%8F%E6%97%B6%E4%BB%B7%E6%A0%BC%E5%8F%98%E5%8A%A8%E6%83%85%E5%86%B5
1059
1062
  :param str symbol: unified symbol of the market to fetch the ticker for
1060
1063
  :param dict [params]: extra parameters specific to the bingx api endpoint
1061
1064
  :returns dict: a `ticker structure <https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure>`
1062
1065
  """
1063
1066
  await self.load_markets()
1064
1067
  market = self.market(symbol)
1065
- if not market['swap']:
1066
- raise BadRequest(self.id + ' fetchTicker is only supported for swap markets.')
1067
1068
  request = {
1068
1069
  'symbol': market['id'],
1069
1070
  }
1070
- response = await self.swapV2PublicGetQuoteTicker(self.extend(request, params))
1071
+ response = None
1072
+ if market['spot']:
1073
+ response = await self.spotV1PrivateGetTicker24hr(self.extend(request, params))
1074
+ else:
1075
+ response = await self.swapV2PublicGetQuoteTicker(self.extend(request, params))
1071
1076
  #
1072
1077
  # {
1073
1078
  # "code": 0,
@@ -1089,7 +1094,8 @@ class bingx(Exchange, ImplicitAPI):
1089
1094
  # }
1090
1095
  #
1091
1096
  data = self.safe_value(response, 'data')
1092
- return self.parse_ticker(data, market)
1097
+ ticker = self.safe_value(data, 0, data)
1098
+ return self.parse_ticker(ticker, market)
1093
1099
 
1094
1100
  async def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
1095
1101
  """
@@ -1133,6 +1139,20 @@ class bingx(Exchange, ImplicitAPI):
1133
1139
  return self.parse_tickers(tickers, symbols)
1134
1140
 
1135
1141
  def parse_ticker(self, ticker, market=None):
1142
+ #
1143
+ # spot
1144
+ # {
1145
+ # symbol: 'BTC-USDT',
1146
+ # openPrice: '26032.08',
1147
+ # highPrice: '26178.86',
1148
+ # lowPrice: '25968.18',
1149
+ # lastPrice: '26113.60',
1150
+ # volume: '1161.79',
1151
+ # quoteVolume: '30288466.44',
1152
+ # openTime: '1693081020762',
1153
+ # closeTime: '1693167420762'
1154
+ # }
1155
+ # swap
1136
1156
  #
1137
1157
  # {
1138
1158
  # "symbol": "BTC-USDT",
@@ -1150,20 +1170,22 @@ class bingx(Exchange, ImplicitAPI):
1150
1170
  # }
1151
1171
  #
1152
1172
  marketId = self.safe_string(ticker, 'symbol')
1153
- defaultType = self.safe_string(self.options, 'defaultType', 'swap')
1154
- symbol = self.safe_symbol(marketId, market, '-', defaultType)
1173
+ change = self.safe_string(ticker, 'priceChange')
1174
+ type = 'spot' if (change is None) else 'swap'
1175
+ symbol = self.safe_symbol(marketId, market, None, type)
1155
1176
  open = self.safe_string(ticker, 'openPrice')
1156
1177
  high = self.safe_string(ticker, 'highPrice')
1157
1178
  low = self.safe_string(ticker, 'lowPrice')
1158
1179
  close = self.safe_string(ticker, 'lastPrice')
1159
1180
  quoteVolume = self.safe_string(ticker, 'quoteVolume')
1160
1181
  baseVolume = self.safe_string(ticker, 'volume')
1161
- change = self.safe_string(ticker, 'chapriceChangenge')
1162
1182
  percentage = self.safe_string(ticker, 'priceChangePercent')
1183
+ ts = self.safe_integer(ticker, 'closeTime')
1184
+ datetime = self.iso8601(ts)
1163
1185
  return self.safe_ticker({
1164
1186
  'symbol': symbol,
1165
- 'timestamp': None,
1166
- 'datetime': None,
1187
+ 'timestamp': ts,
1188
+ 'datetime': datetime,
1167
1189
  'high': high,
1168
1190
  'low': low,
1169
1191
  'bid': None,
@@ -1191,7 +1213,7 @@ class bingx(Exchange, ImplicitAPI):
1191
1213
  see https://bingx-api.github.io/docs/#/standard/contract-interface.html#Query%20standard%20contract%20balance
1192
1214
  :param dict [params]: extra parameters specific to the cryptocom api endpoint
1193
1215
  :param boolean [params.standard]: whether to fetch standard contract balances
1194
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
1216
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
1195
1217
  """
1196
1218
  await self.load_markets()
1197
1219
  response = None
@@ -1796,6 +1818,7 @@ class bingx(Exchange, ImplicitAPI):
1796
1818
  """
1797
1819
  cancel multiple orders
1798
1820
  see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Cancel%20a%20Batch%20of%20Orders
1821
+ see https://bingx-api.github.io/docs/#/spot/trade-api.html#Cancel%20a%20Batch%20of%20Orders
1799
1822
  :param [str] ids: order ids
1800
1823
  :param str symbol: unified market symbol, default is None
1801
1824
  :param dict [params]: extra parameters specific to the bingx api endpoint
@@ -1804,13 +1827,21 @@ class bingx(Exchange, ImplicitAPI):
1804
1827
  self.check_required_symbol('cancelOrders', symbol)
1805
1828
  await self.load_markets()
1806
1829
  market = self.market(symbol)
1807
- if market['type'] != 'swap':
1808
- raise BadRequest(self.id + ' cancelOrders is only supported for swap markets.')
1809
1830
  request = {
1810
1831
  'symbol': market['id'],
1811
- 'ids': ids,
1812
1832
  }
1813
- response = await self.swapV2PrivateDeleteTradeBatchOrders(self.extend(request, params))
1833
+ parsedIds = []
1834
+ for i in range(0, len(ids)):
1835
+ id = ids[i]
1836
+ stringId = str(id)
1837
+ parsedIds.append(stringId)
1838
+ response = None
1839
+ if market['spot']:
1840
+ request['orderIds'] = ','.join(parsedIds)
1841
+ response = await self.spotV1PrivatePostTradeCancelOrders(self.extend(request, params))
1842
+ else:
1843
+ request['orderIdList'] = parsedIds
1844
+ response = await self.swapV2PrivateDeleteTradeBatchOrders(self.extend(request, params))
1814
1845
  #
1815
1846
  # {
1816
1847
  # "code": 0,
@@ -2607,7 +2638,7 @@ class bingx(Exchange, ImplicitAPI):
2607
2638
  see https://bingx-api.github.io/docs/#/common/account-api.html#All%20Coins'%20Information
2608
2639
  :param [str]|None codes: list of unified currency codes
2609
2640
  :param dict [params]: extra parameters specific to the bingx api endpoint
2610
- :returns dict: a list of `fee structures <https://docs.ccxt.com/en/latest/manual.html#fee-structure>`
2641
+ :returns dict: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
2611
2642
  """
2612
2643
  await self.load_markets()
2613
2644
  response = await self.walletsV1PrivateGetCapitalConfigGetall(params)
@@ -2654,6 +2685,27 @@ class bingx(Exchange, ImplicitAPI):
2654
2685
  # }
2655
2686
  self.parse_transaction(data)
2656
2687
 
2688
+ def parse_params(self, params):
2689
+ result = ''
2690
+ sortedParams = self.keysort(params)
2691
+ keys = list(sortedParams.keys())
2692
+ for i in range(0, len(keys)):
2693
+ key = keys[i]
2694
+ if i > 0:
2695
+ result += '&'
2696
+ value = sortedParams[key]
2697
+ if isinstance(value, list):
2698
+ result += key + '=['
2699
+ for j in range(0, len(value)):
2700
+ arrayElement = value[j]
2701
+ if j > 0:
2702
+ result += ','
2703
+ result += str(arrayElement)
2704
+ result += ']'
2705
+ else:
2706
+ result += key + '=' + str(value)
2707
+ return result
2708
+
2657
2709
  def sign(self, path, section='public', method='GET', params={}, headers=None, body=None):
2658
2710
  type = section[0]
2659
2711
  version = section[1]
@@ -2674,9 +2726,8 @@ class bingx(Exchange, ImplicitAPI):
2674
2726
  elif access == 'private':
2675
2727
  self.check_required_credentials()
2676
2728
  params['timestamp'] = self.nonce()
2677
- query = self.urlencode(params)
2678
- rawQuery = self.rawencode(params)
2679
- signature = self.hmac(self.encode(rawQuery), self.encode(self.secret), hashlib.sha256)
2729
+ query = self.parse_params(params)
2730
+ signature = self.hmac(self.encode(query), self.encode(self.secret), hashlib.sha256)
2680
2731
  if params:
2681
2732
  query = '?' + query + '&'
2682
2733
  else:
@@ -210,7 +210,7 @@ class bit2c(Exchange, ImplicitAPI):
210
210
  """
211
211
  query for balance and get the amount of funds available for trading or funds locked in orders
212
212
  :param dict [params]: extra parameters specific to the bit2c api endpoint
213
- :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
213
+ :returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
214
214
  """
215
215
  await self.load_markets()
216
216
  response = await self.privateGetAccountBalanceV2(params)
@@ -325,7 +325,7 @@ class bit2c(Exchange, ImplicitAPI):
325
325
  :param int [since]: timestamp in ms of the earliest trade to fetch
326
326
  :param int [limit]: the maximum amount of trades to fetch
327
327
  :param dict [params]: extra parameters specific to the bit2c api endpoint
328
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
328
+ :returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#public-trades>`
329
329
  """
330
330
  await self.load_markets()
331
331
  market = self.market(symbol)