ccxt 4.0.35__tar.gz → 4.0.38__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.35/ccxt.egg-info → ccxt-4.0.38}/PKG-INFO +4 -4
  2. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/__init__.py +1 -1
  3. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/binance.py +5 -2
  4. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/binancecoinm.py +5 -2
  5. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/binanceus.py +5 -2
  6. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/binanceusdm.py +5 -2
  7. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/gate.py +2 -0
  8. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/gateio.py +2 -0
  9. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/okex.py +1 -0
  10. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/okex5.py +1 -0
  11. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/okx.py +1 -0
  12. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/__init__.py +1 -1
  13. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/exchange.py +6 -3
  14. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/binance.py +6 -3
  15. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinex.py +15 -15
  16. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/gate.py +3 -0
  17. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/okx.py +1 -0
  18. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/exchange.py +6 -3
  19. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/binance.py +6 -3
  20. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinex.py +15 -15
  21. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/gate.py +3 -0
  22. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/okx.py +1 -0
  23. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/__init__.py +1 -1
  24. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/coinex.py +79 -7
  25. {ccxt-4.0.35 → ccxt-4.0.38/ccxt.egg-info}/PKG-INFO +4 -4
  26. {ccxt-4.0.35 → ccxt-4.0.38}/package.json +1 -1
  27. {ccxt-4.0.35 → ccxt-4.0.38}/LICENSE.txt +0 -0
  28. {ccxt-4.0.35 → ccxt-4.0.38}/MANIFEST.in +0 -0
  29. {ccxt-4.0.35 → ccxt-4.0.38}/README.rst +0 -0
  30. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/__init__.py +0 -0
  31. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/ace.py +0 -0
  32. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/alpaca.py +0 -0
  33. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/ascendex.py +0 -0
  34. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bequant.py +0 -0
  35. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bigone.py +0 -0
  36. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bingx.py +0 -0
  37. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bit2c.py +0 -0
  38. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitbank.py +0 -0
  39. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitbay.py +0 -0
  40. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitbns.py +0 -0
  41. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitcoincom.py +0 -0
  42. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitfinex.py +0 -0
  43. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitfinex2.py +0 -0
  44. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitflyer.py +0 -0
  45. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitforex.py +0 -0
  46. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitget.py +0 -0
  47. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bithumb.py +0 -0
  48. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitmart.py +0 -0
  49. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitmex.py +0 -0
  50. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitopro.py +0 -0
  51. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitpanda.py +0 -0
  52. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitrue.py +0 -0
  53. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitso.py +0 -0
  54. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitstamp.py +0 -0
  55. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitstamp1.py +0 -0
  56. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bittrex.py +0 -0
  57. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bitvavo.py +0 -0
  58. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bkex.py +0 -0
  59. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bl3p.py +0 -0
  60. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/blockchaincom.py +0 -0
  61. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/btcalpha.py +0 -0
  62. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/btcbox.py +0 -0
  63. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/btcmarkets.py +0 -0
  64. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/btctradeua.py +0 -0
  65. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/btcturk.py +0 -0
  66. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/bybit.py +0 -0
  67. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/cex.py +0 -0
  68. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinbase.py +0 -0
  69. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinbaseprime.py +0 -0
  70. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinbasepro.py +0 -0
  71. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coincheck.py +0 -0
  72. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinex.py +0 -0
  73. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinfalcon.py +0 -0
  74. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinmate.py +0 -0
  75. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinone.py +0 -0
  76. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinsph.py +0 -0
  77. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/coinspot.py +0 -0
  78. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/cryptocom.py +0 -0
  79. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/currencycom.py +0 -0
  80. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/delta.py +0 -0
  81. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/deribit.py +0 -0
  82. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/digifinex.py +0 -0
  83. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/exmo.py +0 -0
  84. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/fmfwio.py +0 -0
  85. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/gemini.py +0 -0
  86. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/hitbtc.py +0 -0
  87. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/hitbtc3.py +0 -0
  88. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/hollaex.py +0 -0
  89. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/huobi.py +0 -0
  90. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/huobijp.py +0 -0
  91. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/huobipro.py +0 -0
  92. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/idex.py +0 -0
  93. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/independentreserve.py +0 -0
  94. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/indodax.py +0 -0
  95. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/kraken.py +0 -0
  96. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/krakenfutures.py +0 -0
  97. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/kucoin.py +0 -0
  98. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/kucoinfutures.py +0 -0
  99. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/kuna.py +0 -0
  100. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/latoken.py +0 -0
  101. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/lbank.py +0 -0
  102. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/lbank2.py +0 -0
  103. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/luno.py +0 -0
  104. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/lykke.py +0 -0
  105. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/mercado.py +0 -0
  106. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/mexc.py +0 -0
  107. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/mexc3.py +0 -0
  108. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/ndax.py +0 -0
  109. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/novadax.py +0 -0
  110. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/oceanex.py +0 -0
  111. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/okcoin.py +0 -0
  112. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/paymium.py +0 -0
  113. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/phemex.py +0 -0
  114. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/poloniex.py +0 -0
  115. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/poloniexfutures.py +0 -0
  116. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/probit.py +0 -0
  117. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/tidex.py +0 -0
  118. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/timex.py +0 -0
  119. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/tokocrypto.py +0 -0
  120. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/upbit.py +0 -0
  121. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/wavesexchange.py +0 -0
  122. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/wazirx.py +0 -0
  123. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/whitebit.py +0 -0
  124. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/woo.py +0 -0
  125. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/yobit.py +0 -0
  126. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/zaif.py +0 -0
  127. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/abstract/zonda.py +0 -0
  128. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/ace.py +0 -0
  129. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/alpaca.py +0 -0
  130. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/ascendex.py +0 -0
  131. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/ace.py +0 -0
  132. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/alpaca.py +0 -0
  133. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/ascendex.py +0 -0
  134. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/__init__.py +0 -0
  135. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/throttler.py +0 -0
  136. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/__init__.py +0 -0
  137. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  138. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/cache.py +0 -0
  139. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/client.py +0 -0
  140. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/fast_client.py +0 -0
  141. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/functions.py +0 -0
  142. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/future.py +0 -0
  143. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/order_book.py +0 -0
  144. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  145. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bequant.py +0 -0
  146. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bigone.py +0 -0
  147. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/binancecoinm.py +0 -0
  148. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/binanceus.py +0 -0
  149. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/binanceusdm.py +0 -0
  150. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bingx.py +0 -0
  151. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bit2c.py +0 -0
  152. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitbank.py +0 -0
  153. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitbay.py +0 -0
  154. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitbns.py +0 -0
  155. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitcoincom.py +0 -0
  156. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitfinex.py +0 -0
  157. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitfinex2.py +0 -0
  158. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitflyer.py +0 -0
  159. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitforex.py +0 -0
  160. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitget.py +0 -0
  161. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bithumb.py +0 -0
  162. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitmart.py +0 -0
  163. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitmex.py +0 -0
  164. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitopro.py +0 -0
  165. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitpanda.py +0 -0
  166. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitrue.py +0 -0
  167. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitso.py +0 -0
  168. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitstamp.py +0 -0
  169. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitstamp1.py +0 -0
  170. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bittrex.py +0 -0
  171. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bitvavo.py +0 -0
  172. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bkex.py +0 -0
  173. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bl3p.py +0 -0
  174. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/blockchaincom.py +0 -0
  175. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/btcalpha.py +0 -0
  176. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/btcbox.py +0 -0
  177. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/btcmarkets.py +0 -0
  178. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/btctradeua.py +0 -0
  179. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/btcturk.py +0 -0
  180. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/bybit.py +0 -0
  181. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/cex.py +0 -0
  182. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinbase.py +0 -0
  183. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinbaseprime.py +0 -0
  184. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinbasepro.py +0 -0
  185. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coincheck.py +0 -0
  186. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinfalcon.py +0 -0
  187. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinmate.py +0 -0
  188. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinone.py +0 -0
  189. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinsph.py +0 -0
  190. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/coinspot.py +0 -0
  191. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/cryptocom.py +0 -0
  192. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/currencycom.py +0 -0
  193. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/delta.py +0 -0
  194. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/deribit.py +0 -0
  195. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/digifinex.py +0 -0
  196. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/exmo.py +0 -0
  197. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/flowbtc.py +0 -0
  198. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/fmfwio.py +0 -0
  199. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/gateio.py +0 -0
  200. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/gemini.py +0 -0
  201. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/hitbtc.py +0 -0
  202. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/hitbtc3.py +0 -0
  203. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/hollaex.py +0 -0
  204. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/huobi.py +0 -0
  205. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/huobijp.py +0 -0
  206. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/huobipro.py +0 -0
  207. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/idex.py +0 -0
  208. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/independentreserve.py +0 -0
  209. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/indodax.py +0 -0
  210. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/kraken.py +0 -0
  211. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/krakenfutures.py +0 -0
  212. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/kucoin.py +0 -0
  213. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/kucoinfutures.py +0 -0
  214. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/kuna.py +0 -0
  215. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/latoken.py +0 -0
  216. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/lbank.py +0 -0
  217. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/lbank2.py +0 -0
  218. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/luno.py +0 -0
  219. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/lykke.py +0 -0
  220. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/mercado.py +0 -0
  221. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/mexc.py +0 -0
  222. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/mexc3.py +0 -0
  223. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/ndax.py +0 -0
  224. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/novadax.py +0 -0
  225. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/oceanex.py +0 -0
  226. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/okcoin.py +0 -0
  227. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/okex.py +0 -0
  228. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/okex5.py +0 -0
  229. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/paymium.py +0 -0
  230. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/phemex.py +0 -0
  231. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/poloniex.py +0 -0
  232. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/poloniexfutures.py +0 -0
  233. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/probit.py +0 -0
  234. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/tidex.py +0 -0
  235. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/timex.py +0 -0
  236. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/tokocrypto.py +0 -0
  237. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/upbit.py +0 -0
  238. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/wavesexchange.py +0 -0
  239. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/wazirx.py +0 -0
  240. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/whitebit.py +0 -0
  241. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/woo.py +0 -0
  242. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/yobit.py +0 -0
  243. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/zaif.py +0 -0
  244. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/async_support/zonda.py +0 -0
  245. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/__init__.py +0 -0
  246. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/decimal_to_precision.py +0 -0
  247. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/errors.py +0 -0
  248. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/precise.py +0 -0
  249. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/base/types.py +0 -0
  250. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bequant.py +0 -0
  251. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bigone.py +0 -0
  252. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/binancecoinm.py +0 -0
  253. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/binanceus.py +0 -0
  254. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/binanceusdm.py +0 -0
  255. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bingx.py +0 -0
  256. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bit2c.py +0 -0
  257. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitbank.py +0 -0
  258. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitbay.py +0 -0
  259. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitbns.py +0 -0
  260. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitcoincom.py +0 -0
  261. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitfinex.py +0 -0
  262. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitfinex2.py +0 -0
  263. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitflyer.py +0 -0
  264. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitforex.py +0 -0
  265. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitget.py +0 -0
  266. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bithumb.py +0 -0
  267. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitmart.py +0 -0
  268. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitmex.py +0 -0
  269. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitopro.py +0 -0
  270. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitpanda.py +0 -0
  271. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitrue.py +0 -0
  272. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitso.py +0 -0
  273. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitstamp.py +0 -0
  274. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitstamp1.py +0 -0
  275. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bittrex.py +0 -0
  276. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bitvavo.py +0 -0
  277. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bkex.py +0 -0
  278. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bl3p.py +0 -0
  279. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/blockchaincom.py +0 -0
  280. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/btcalpha.py +0 -0
  281. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/btcbox.py +0 -0
  282. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/btcmarkets.py +0 -0
  283. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/btctradeua.py +0 -0
  284. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/btcturk.py +0 -0
  285. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/bybit.py +0 -0
  286. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/cex.py +0 -0
  287. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinbase.py +0 -0
  288. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinbaseprime.py +0 -0
  289. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinbasepro.py +0 -0
  290. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coincheck.py +0 -0
  291. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinfalcon.py +0 -0
  292. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinmate.py +0 -0
  293. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinone.py +0 -0
  294. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinsph.py +0 -0
  295. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/coinspot.py +0 -0
  296. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/cryptocom.py +0 -0
  297. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/currencycom.py +0 -0
  298. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/delta.py +0 -0
  299. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/deribit.py +0 -0
  300. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/digifinex.py +0 -0
  301. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/exmo.py +0 -0
  302. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/flowbtc.py +0 -0
  303. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/fmfwio.py +0 -0
  304. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/gateio.py +0 -0
  305. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/gemini.py +0 -0
  306. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/hitbtc.py +0 -0
  307. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/hitbtc3.py +0 -0
  308. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/hollaex.py +0 -0
  309. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/huobi.py +0 -0
  310. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/huobijp.py +0 -0
  311. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/huobipro.py +0 -0
  312. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/idex.py +0 -0
  313. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/independentreserve.py +0 -0
  314. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/indodax.py +0 -0
  315. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/kraken.py +0 -0
  316. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/krakenfutures.py +0 -0
  317. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/kucoin.py +0 -0
  318. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/kucoinfutures.py +0 -0
  319. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/kuna.py +0 -0
  320. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/latoken.py +0 -0
  321. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/lbank.py +0 -0
  322. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/lbank2.py +0 -0
  323. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/luno.py +0 -0
  324. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/lykke.py +0 -0
  325. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/mercado.py +0 -0
  326. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/mexc.py +0 -0
  327. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/mexc3.py +0 -0
  328. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/ndax.py +0 -0
  329. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/novadax.py +0 -0
  330. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/oceanex.py +0 -0
  331. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/okcoin.py +0 -0
  332. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/okex.py +0 -0
  333. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/okex5.py +0 -0
  334. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/paymium.py +0 -0
  335. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/phemex.py +0 -0
  336. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/poloniex.py +0 -0
  337. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/poloniexfutures.py +0 -0
  338. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/alpaca.py +0 -0
  339. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/ascendex.py +0 -0
  340. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bequant.py +0 -0
  341. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/binance.py +0 -0
  342. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/binancecoinm.py +0 -0
  343. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/binanceus.py +0 -0
  344. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/binanceusdm.py +0 -0
  345. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitcoincom.py +0 -0
  346. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitfinex.py +0 -0
  347. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitfinex2.py +0 -0
  348. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitget.py +0 -0
  349. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitmart.py +0 -0
  350. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitmex.py +0 -0
  351. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitopro.py +0 -0
  352. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitpanda.py +0 -0
  353. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitrue.py +0 -0
  354. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitstamp.py +0 -0
  355. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bittrex.py +0 -0
  356. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bitvavo.py +0 -0
  357. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/blockchaincom.py +0 -0
  358. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/btcex.py +0 -0
  359. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/bybit.py +0 -0
  360. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/cex.py +0 -0
  361. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/coinbase.py +0 -0
  362. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/coinbaseprime.py +0 -0
  363. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/coinbasepro.py +0 -0
  364. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/cryptocom.py +0 -0
  365. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/currencycom.py +0 -0
  366. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/deribit.py +0 -0
  367. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/exmo.py +0 -0
  368. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/gate.py +0 -0
  369. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/gateio.py +0 -0
  370. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/gemini.py +0 -0
  371. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/hitbtc.py +0 -0
  372. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/hollaex.py +0 -0
  373. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/huobi.py +0 -0
  374. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/huobijp.py +0 -0
  375. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/huobipro.py +0 -0
  376. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/idex.py +0 -0
  377. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/independentreserve.py +0 -0
  378. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/kraken.py +0 -0
  379. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/krakenfutures.py +0 -0
  380. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/kucoin.py +0 -0
  381. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/kucoinfutures.py +0 -0
  382. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/luno.py +0 -0
  383. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/mexc.py +0 -0
  384. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/mexc3.py +0 -0
  385. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/ndax.py +0 -0
  386. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/okcoin.py +0 -0
  387. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/okex.py +0 -0
  388. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/okx.py +0 -0
  389. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/phemex.py +0 -0
  390. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/poloniex.py +0 -0
  391. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/poloniexfutures.py +0 -0
  392. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/probit.py +0 -0
  393. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/ripio.py +0 -0
  394. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/upbit.py +0 -0
  395. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/wazirx.py +0 -0
  396. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/whitebit.py +0 -0
  397. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/woo.py +0 -0
  398. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/pro/zb.py +0 -0
  399. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/probit.py +0 -0
  400. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/__init__.py +0 -0
  401. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  402. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  403. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  404. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  405. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  406. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  407. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  408. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  409. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  410. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  411. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  412. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  413. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/__init__.py +0 -0
  414. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/__init__.py +0 -0
  415. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_account.py +0 -0
  416. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_balance.py +0 -0
  417. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_borrow_interest.py +0 -0
  418. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_borrow_rate.py +0 -0
  419. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_calculate_fee.py +0 -0
  420. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_crypto.py +0 -0
  421. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_currency.py +0 -0
  422. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_datetime.py +0 -0
  423. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  424. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_deep_extend.py +0 -0
  425. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  426. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  427. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_funding_rate_history.py +0 -0
  428. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_ledger_entry.py +0 -0
  429. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_ledger_item.py +0 -0
  430. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_leverage_tier.py +0 -0
  431. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_margin_modification.py +0 -0
  432. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_market.py +0 -0
  433. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_number.py +0 -0
  434. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_ohlcv.py +0 -0
  435. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_open_interest.py +0 -0
  436. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_order.py +0 -0
  437. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_order_book.py +0 -0
  438. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_position.py +0 -0
  439. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_shared_methods.py +0 -0
  440. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_status.py +0 -0
  441. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_throttle.py +0 -0
  442. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_ticker.py +0 -0
  443. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_trade.py +0 -0
  444. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_trading_fee.py +0 -0
  445. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/base/test_transaction.py +0 -0
  446. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/test_async.py +0 -0
  447. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/test/test_sync.py +0 -0
  448. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/tidex.py +0 -0
  449. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/timex.py +0 -0
  450. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/tokocrypto.py +0 -0
  451. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/upbit.py +0 -0
  452. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/wavesexchange.py +0 -0
  453. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/wazirx.py +0 -0
  454. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/whitebit.py +0 -0
  455. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/woo.py +0 -0
  456. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/yobit.py +0 -0
  457. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/zaif.py +0 -0
  458. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt/zonda.py +0 -0
  459. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt.egg-info/SOURCES.txt +0 -0
  460. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt.egg-info/dependency_links.txt +0 -0
  461. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt.egg-info/requires.txt +0 -0
  462. {ccxt-4.0.35 → ccxt-4.0.38}/ccxt.egg-info/top_level.txt +0 -0
  463. {ccxt-4.0.35 → ccxt-4.0.38}/setup.cfg +0 -0
  464. {ccxt-4.0.35 → ccxt-4.0.38}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.0.35
3
+ Version: 4.0.38
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
@@ -229,13 +229,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
229
229
 
230
230
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
231
231
 
232
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.35/dist/ccxt.browser.js
233
- * unpkg: https://unpkg.com/ccxt@4.0.35/dist/ccxt.browser.js
232
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.38/dist/ccxt.browser.js
233
+ * unpkg: https://unpkg.com/ccxt@4.0.38/dist/ccxt.browser.js
234
234
 
235
235
  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.
236
236
 
237
237
  ```HTML
238
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.35/dist/ccxt.browser.js"></script>
238
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.38/dist/ccxt.browser.js"></script>
239
239
  ```
240
240
 
241
241
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.0.35'
25
+ __version__ = '4.0.38'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -298,8 +298,9 @@ class ImplicitAPI:
298
298
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
299
299
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
300
300
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
301
- sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
302
- sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
301
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
302
+ sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
303
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
303
304
  sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
304
305
  sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
305
306
  sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
@@ -492,6 +493,8 @@ class ImplicitAPI:
492
493
  eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
493
494
  eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
494
495
  eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
496
+ eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
497
+ eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
495
498
  eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
496
499
  eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
497
500
  eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
@@ -298,8 +298,9 @@ class ImplicitAPI:
298
298
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
299
299
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
300
300
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
301
- sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
302
- sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
301
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
302
+ sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
303
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
303
304
  sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
304
305
  sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
305
306
  sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
@@ -492,6 +493,8 @@ class ImplicitAPI:
492
493
  eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
493
494
  eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
494
495
  eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
496
+ eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
497
+ eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
495
498
  eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
496
499
  eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
497
500
  eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
@@ -298,8 +298,9 @@ class ImplicitAPI:
298
298
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
299
299
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
300
300
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
301
- sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
302
- sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
301
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
302
+ sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
303
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
303
304
  sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
304
305
  sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
305
306
  sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
@@ -492,6 +493,8 @@ class ImplicitAPI:
492
493
  eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
493
494
  eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
494
495
  eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
496
+ eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
497
+ eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
495
498
  eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
496
499
  eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
497
500
  eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
@@ -298,8 +298,9 @@ class ImplicitAPI:
298
298
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
299
299
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
300
300
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
301
- sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
302
- sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
301
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
302
+ sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
303
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
303
304
  sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
304
305
  sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
305
306
  sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
@@ -492,6 +493,8 @@ class ImplicitAPI:
492
493
  eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
493
494
  eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
494
495
  eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
496
+ eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
497
+ eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
495
498
  eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
496
499
  eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
497
500
  eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
@@ -136,6 +136,8 @@ class ImplicitAPI:
136
136
  private_margin_patch_loans_loan_id = privateMarginPatchLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
137
137
  private_margin_patch_loan_records_loan_record_id = privateMarginPatchLoanRecordsLoanRecordId = Entry('loan_records/{loan_record_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
138
138
  private_margin_delete_loans_loan_id = privateMarginDeleteLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'DELETE', {'cost': 1.5})
139
+ private_flash_swap_get_currencies = privateFlash_swapGetCurrencies = Entry('currencies', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
140
+ private_flash_swap_get_currency_pairs = privateFlash_swapGetCurrencyPairs = Entry('currency_pairs', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
139
141
  private_flash_swap_get_orders = privateFlash_swapGetOrders = Entry('orders', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
140
142
  private_flash_swap_get_orders_order_id = privateFlash_swapGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
141
143
  private_flash_swap_post_orders = privateFlash_swapPostOrders = Entry('orders', ['private', 'flash_swap'], 'POST', {'cost': 1.5})
@@ -136,6 +136,8 @@ class ImplicitAPI:
136
136
  private_margin_patch_loans_loan_id = privateMarginPatchLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
137
137
  private_margin_patch_loan_records_loan_record_id = privateMarginPatchLoanRecordsLoanRecordId = Entry('loan_records/{loan_record_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
138
138
  private_margin_delete_loans_loan_id = privateMarginDeleteLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'DELETE', {'cost': 1.5})
139
+ private_flash_swap_get_currencies = privateFlash_swapGetCurrencies = Entry('currencies', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
140
+ private_flash_swap_get_currency_pairs = privateFlash_swapGetCurrencyPairs = Entry('currency_pairs', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
139
141
  private_flash_swap_get_orders = privateFlash_swapGetOrders = Entry('orders', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
140
142
  private_flash_swap_get_orders_order_id = privateFlash_swapGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
141
143
  private_flash_swap_post_orders = privateFlash_swapPostOrders = Entry('orders', ['private', 'flash_swap'], 'POST', {'cost': 1.5})
@@ -215,6 +215,7 @@ class ImplicitAPI:
215
215
  private_post_account_set_riskoffset_type = privatePostAccountSetRiskOffsetType = Entry('account/set-riskOffset-type', 'private', 'POST', {'cost': 2})
216
216
  private_post_account_activate_option = privatePostAccountActivateOption = Entry('account/activate-option', 'private', 'POST', {'cost': 4})
217
217
  private_post_account_set_auto_loan = privatePostAccountSetAutoLoan = Entry('account/set-auto-loan', 'private', 'POST', {'cost': 4})
218
+ private_post_account_set_account_level = privatePostAccountSetAccountLevel = Entry('account/set-account-level', 'private', 'POST', {'cost': 4})
218
219
  private_post_account_mmp_reset = privatePostAccountMmpReset = Entry('account/mmp-reset', 'private', 'POST', {'cost': 4})
219
220
  private_post_account_mmp_config = privatePostAccountMmpConfig = Entry('account/mmp-config', 'private', 'POST', {'cost': 100})
220
221
  private_post_users_subaccount_modify_apikey = privatePostUsersSubaccountModifyApikey = Entry('users/subaccount/modify-apikey', 'private', 'POST', {'cost': 10})
@@ -215,6 +215,7 @@ class ImplicitAPI:
215
215
  private_post_account_set_riskoffset_type = privatePostAccountSetRiskOffsetType = Entry('account/set-riskOffset-type', 'private', 'POST', {'cost': 2})
216
216
  private_post_account_activate_option = privatePostAccountActivateOption = Entry('account/activate-option', 'private', 'POST', {'cost': 4})
217
217
  private_post_account_set_auto_loan = privatePostAccountSetAutoLoan = Entry('account/set-auto-loan', 'private', 'POST', {'cost': 4})
218
+ private_post_account_set_account_level = privatePostAccountSetAccountLevel = Entry('account/set-account-level', 'private', 'POST', {'cost': 4})
218
219
  private_post_account_mmp_reset = privatePostAccountMmpReset = Entry('account/mmp-reset', 'private', 'POST', {'cost': 4})
219
220
  private_post_account_mmp_config = privatePostAccountMmpConfig = Entry('account/mmp-config', 'private', 'POST', {'cost': 100})
220
221
  private_post_users_subaccount_modify_apikey = privatePostUsersSubaccountModifyApikey = Entry('users/subaccount/modify-apikey', 'private', 'POST', {'cost': 10})
@@ -215,6 +215,7 @@ class ImplicitAPI:
215
215
  private_post_account_set_riskoffset_type = privatePostAccountSetRiskOffsetType = Entry('account/set-riskOffset-type', 'private', 'POST', {'cost': 2})
216
216
  private_post_account_activate_option = privatePostAccountActivateOption = Entry('account/activate-option', 'private', 'POST', {'cost': 4})
217
217
  private_post_account_set_auto_loan = privatePostAccountSetAutoLoan = Entry('account/set-auto-loan', 'private', 'POST', {'cost': 4})
218
+ private_post_account_set_account_level = privatePostAccountSetAccountLevel = Entry('account/set-account-level', 'private', 'POST', {'cost': 4})
218
219
  private_post_account_mmp_reset = privatePostAccountMmpReset = Entry('account/mmp-reset', 'private', 'POST', {'cost': 4})
219
220
  private_post_account_mmp_config = privatePostAccountMmpConfig = Entry('account/mmp-config', 'private', 'POST', {'cost': 100})
220
221
  private_post_users_subaccount_modify_apikey = privatePostUsersSubaccountModifyApikey = Entry('users/subaccount/modify-apikey', 'private', 'POST', {'cost': 10})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.35'
7
+ __version__ = '4.0.38'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.0.35'
5
+ __version__ = '4.0.38'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -599,7 +599,7 @@ class Exchange(BaseExchange):
599
599
  value = self.safe_value(entry, key)
600
600
  if value and (value >= since):
601
601
  result.append(entry)
602
- if tail:
602
+ if tail and limit is not None:
603
603
  return self.arraySlice(result, -limit)
604
604
  return self.filter_by_limit(result, limit, key)
605
605
 
@@ -620,7 +620,7 @@ class Exchange(BaseExchange):
620
620
  secondCondition = entryKeyGESince if sinceIsDefined else True
621
621
  if firstCondition and secondCondition:
622
622
  result.append(entry)
623
- if tail:
623
+ if tail and limit is not None:
624
624
  return self.arraySlice(result, -limit)
625
625
  return self.filter_by_limit(result, limit, key)
626
626
 
@@ -2281,6 +2281,9 @@ class Exchange(BaseExchange):
2281
2281
  async def watch_my_trades(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
2282
2282
  raise NotSupported(self.id + ' watchMyTrades() is not supported yet')
2283
2283
 
2284
+ async def fetch_ohlcv_ws(self, symbol: str, timeframe: str = '1m', since: Optional[int] = None, limit: Optional[int] = None, params={}):
2285
+ raise NotSupported(self.id + ' fetchOHLCVWs() is not supported yet')
2286
+
2284
2287
  async def fetch_deposits_withdrawals(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
2285
2288
  """
2286
2289
  fetch history of deposits and withdrawals
@@ -542,8 +542,9 @@ class binance(Exchange, ImplicitAPI):
542
542
  'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
543
543
  'convert/getQuote': 20.001,
544
544
  'convert/acceptQuote': 3.3335,
545
- 'portfolio/auto-collection': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
546
- 'portfolio/bnb-transfer': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
545
+ 'portfolio/auto-collection': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
546
+ 'portfolio/asset-collection': 6, # Weight(IP): 60 => cost = 0.1 * 60 = 6
547
+ 'portfolio/bnb-transfer': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
547
548
  'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
548
549
  'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
549
550
  'lending/auto-invest/plan/add': 0.1, # Weight(IP): 1 => cost = 0.1 * 1 = 0.1
@@ -818,6 +819,8 @@ class binance(Exchange, ImplicitAPI):
818
819
  'userTrades': 5,
819
820
  'exerciseRecord': 5,
820
821
  'bill': 1,
822
+ 'income/asyn': 5,
823
+ 'income/asyn/id': 5,
821
824
  'marginAccount': 3,
822
825
  'mmp': 1,
823
826
  'countdownCancelAll': 1,
@@ -3640,7 +3643,7 @@ class binance(Exchange, ImplicitAPI):
3640
3643
  if postOnly:
3641
3644
  uppercaseType = 'LIMIT_MAKER'
3642
3645
  request['type'] = uppercaseType
3643
- stopPrice = self.safe_number(params, 'stopPrice')
3646
+ stopPrice = self.safe_number_2(params, 'stopPrice', 'triggerPrice')
3644
3647
  if stopPrice is not None:
3645
3648
  if uppercaseType == 'MARKET':
3646
3649
  uppercaseType = 'STOP_LOSS'
@@ -3070,30 +3070,30 @@ class coinex(Exchange, ImplicitAPI):
3070
3070
 
3071
3071
  async def set_leverage(self, leverage, symbol: Optional[str] = None, params={}):
3072
3072
  """
3073
+ see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http014_adjust_leverage
3073
3074
  set the level of leverage for a market
3074
3075
  :param float leverage: the rate of leverage
3075
3076
  :param str symbol: unified market symbol
3076
3077
  :param dict [params]: extra parameters specific to the coinex api endpoint
3078
+ :param str [params.marginMode]: 'cross' or 'isolated'(default is 'cross')
3077
3079
  :returns dict: response from the exchange
3078
3080
  """
3079
- if symbol is None:
3080
- raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
3081
+ self.check_required_symbol('setLeverage', symbol)
3081
3082
  await self.load_markets()
3082
- defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode')
3083
- defaultPositionType = None
3084
- if defaultMarginMode == 'isolated':
3085
- defaultPositionType = 1
3086
- elif defaultMarginMode == 'cross':
3087
- defaultPositionType = 2
3088
- positionType = self.safe_integer(params, 'position_type', defaultPositionType)
3089
- if positionType is None:
3090
- raise ArgumentsRequired(self.id + ' setLeverage() requires a position_type parameter that will transfer margin to the specified trading pair')
3091
3083
  market = self.market(symbol)
3092
- maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
3093
- if market['type'] != 'swap':
3084
+ if not market['swap']:
3094
3085
  raise BadSymbol(self.id + ' setLeverage() supports swap contracts only')
3095
- if (leverage < 3) or (leverage > maxLeverage):
3096
- raise BadRequest(self.id + ' setLeverage() leverage should be between 3 and ' + str(maxLeverage) + ' for ' + symbol)
3086
+ marginMode = None
3087
+ marginMode, params = self.handle_margin_mode_and_params('setLeverage', params, 'cross')
3088
+ positionType = None
3089
+ if marginMode == 'isolated':
3090
+ positionType = 1
3091
+ elif marginMode == 'cross':
3092
+ positionType = 2
3093
+ minLeverage = self.safe_integer(market['limits']['leverage'], 'min', 1)
3094
+ maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
3095
+ if (leverage < minLeverage) or (leverage > maxLeverage):
3096
+ raise BadRequest(self.id + ' setLeverage() leverage should be between ' + str(minLeverage) + ' and ' + str(maxLeverage) + ' for ' + symbol)
3097
3097
  request = {
3098
3098
  'market': market['id'],
3099
3099
  'leverage': str(leverage),
@@ -373,6 +373,8 @@ class gate(Exchange, ImplicitAPI):
373
373
  },
374
374
  'flash_swap': {
375
375
  'get': {
376
+ 'currencies': 1.5,
377
+ 'currency_pairs': 1.5,
376
378
  'orders': 1.5,
377
379
  'orders/{order_id}': 1.5,
378
380
  },
@@ -783,6 +785,7 @@ class gate(Exchange, ImplicitAPI):
783
785
  'REPAY_TOO_MUCH': ExchangeError,
784
786
  'TOO_MANY_CURRENCY_PAIRS': InvalidOrder,
785
787
  'TOO_MANY_ORDERS': InvalidOrder,
788
+ 'TOO_MANY_REQUESTS': RateLimitExceeded,
786
789
  'MIXED_ACCOUNT_TYPE': InvalidOrder,
787
790
  'AUTO_BORROW_TOO_MUCH': ExchangeError,
788
791
  'TRADE_RESTRICTED': InsufficientFunds,
@@ -420,6 +420,7 @@ class okx(Exchange, ImplicitAPI):
420
420
  'account/set-riskOffset-type': 2,
421
421
  'account/activate-option': 4,
422
422
  'account/set-auto-loan': 4,
423
+ 'account/set-account-level': 4,
423
424
  'account/mmp-reset': 4,
424
425
  'account/mmp-config': 100,
425
426
  # subaccount
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.35'
7
+ __version__ = '4.0.38'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1772,7 +1772,7 @@ class Exchange(object):
1772
1772
  value = self.safe_value(entry, key)
1773
1773
  if value and (value >= since):
1774
1774
  result.append(entry)
1775
- if tail:
1775
+ if tail and limit is not None:
1776
1776
  return self.arraySlice(result, -limit)
1777
1777
  return self.filter_by_limit(result, limit, key)
1778
1778
 
@@ -1793,7 +1793,7 @@ class Exchange(object):
1793
1793
  secondCondition = entryKeyGESince if sinceIsDefined else True
1794
1794
  if firstCondition and secondCondition:
1795
1795
  result.append(entry)
1796
- if tail:
1796
+ if tail and limit is not None:
1797
1797
  return self.arraySlice(result, -limit)
1798
1798
  return self.filter_by_limit(result, limit, key)
1799
1799
 
@@ -3454,6 +3454,9 @@ class Exchange(object):
3454
3454
  def watch_my_trades(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
3455
3455
  raise NotSupported(self.id + ' watchMyTrades() is not supported yet')
3456
3456
 
3457
+ def fetch_ohlcv_ws(self, symbol: str, timeframe: str = '1m', since: Optional[int] = None, limit: Optional[int] = None, params={}):
3458
+ raise NotSupported(self.id + ' fetchOHLCVWs() is not supported yet')
3459
+
3457
3460
  def fetch_deposits_withdrawals(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
3458
3461
  """
3459
3462
  fetch history of deposits and withdrawals
@@ -541,8 +541,9 @@ class binance(Exchange, ImplicitAPI):
541
541
  'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
542
542
  'convert/getQuote': 20.001,
543
543
  'convert/acceptQuote': 3.3335,
544
- 'portfolio/auto-collection': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
545
- 'portfolio/bnb-transfer': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
544
+ 'portfolio/auto-collection': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
545
+ 'portfolio/asset-collection': 6, # Weight(IP): 60 => cost = 0.1 * 60 = 6
546
+ 'portfolio/bnb-transfer': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
546
547
  'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
547
548
  'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
548
549
  'lending/auto-invest/plan/add': 0.1, # Weight(IP): 1 => cost = 0.1 * 1 = 0.1
@@ -817,6 +818,8 @@ class binance(Exchange, ImplicitAPI):
817
818
  'userTrades': 5,
818
819
  'exerciseRecord': 5,
819
820
  'bill': 1,
821
+ 'income/asyn': 5,
822
+ 'income/asyn/id': 5,
820
823
  'marginAccount': 3,
821
824
  'mmp': 1,
822
825
  'countdownCancelAll': 1,
@@ -3639,7 +3642,7 @@ class binance(Exchange, ImplicitAPI):
3639
3642
  if postOnly:
3640
3643
  uppercaseType = 'LIMIT_MAKER'
3641
3644
  request['type'] = uppercaseType
3642
- stopPrice = self.safe_number(params, 'stopPrice')
3645
+ stopPrice = self.safe_number_2(params, 'stopPrice', 'triggerPrice')
3643
3646
  if stopPrice is not None:
3644
3647
  if uppercaseType == 'MARKET':
3645
3648
  uppercaseType = 'STOP_LOSS'
@@ -3069,30 +3069,30 @@ class coinex(Exchange, ImplicitAPI):
3069
3069
 
3070
3070
  def set_leverage(self, leverage, symbol: Optional[str] = None, params={}):
3071
3071
  """
3072
+ see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http014_adjust_leverage
3072
3073
  set the level of leverage for a market
3073
3074
  :param float leverage: the rate of leverage
3074
3075
  :param str symbol: unified market symbol
3075
3076
  :param dict [params]: extra parameters specific to the coinex api endpoint
3077
+ :param str [params.marginMode]: 'cross' or 'isolated'(default is 'cross')
3076
3078
  :returns dict: response from the exchange
3077
3079
  """
3078
- if symbol is None:
3079
- raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
3080
+ self.check_required_symbol('setLeverage', symbol)
3080
3081
  self.load_markets()
3081
- defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode')
3082
- defaultPositionType = None
3083
- if defaultMarginMode == 'isolated':
3084
- defaultPositionType = 1
3085
- elif defaultMarginMode == 'cross':
3086
- defaultPositionType = 2
3087
- positionType = self.safe_integer(params, 'position_type', defaultPositionType)
3088
- if positionType is None:
3089
- raise ArgumentsRequired(self.id + ' setLeverage() requires a position_type parameter that will transfer margin to the specified trading pair')
3090
3082
  market = self.market(symbol)
3091
- maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
3092
- if market['type'] != 'swap':
3083
+ if not market['swap']:
3093
3084
  raise BadSymbol(self.id + ' setLeverage() supports swap contracts only')
3094
- if (leverage < 3) or (leverage > maxLeverage):
3095
- raise BadRequest(self.id + ' setLeverage() leverage should be between 3 and ' + str(maxLeverage) + ' for ' + symbol)
3085
+ marginMode = None
3086
+ marginMode, params = self.handle_margin_mode_and_params('setLeverage', params, 'cross')
3087
+ positionType = None
3088
+ if marginMode == 'isolated':
3089
+ positionType = 1
3090
+ elif marginMode == 'cross':
3091
+ positionType = 2
3092
+ minLeverage = self.safe_integer(market['limits']['leverage'], 'min', 1)
3093
+ maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
3094
+ if (leverage < minLeverage) or (leverage > maxLeverage):
3095
+ raise BadRequest(self.id + ' setLeverage() leverage should be between ' + str(minLeverage) + ' and ' + str(maxLeverage) + ' for ' + symbol)
3096
3096
  request = {
3097
3097
  'market': market['id'],
3098
3098
  'leverage': str(leverage),
@@ -372,6 +372,8 @@ class gate(Exchange, ImplicitAPI):
372
372
  },
373
373
  'flash_swap': {
374
374
  'get': {
375
+ 'currencies': 1.5,
376
+ 'currency_pairs': 1.5,
375
377
  'orders': 1.5,
376
378
  'orders/{order_id}': 1.5,
377
379
  },
@@ -782,6 +784,7 @@ class gate(Exchange, ImplicitAPI):
782
784
  'REPAY_TOO_MUCH': ExchangeError,
783
785
  'TOO_MANY_CURRENCY_PAIRS': InvalidOrder,
784
786
  'TOO_MANY_ORDERS': InvalidOrder,
787
+ 'TOO_MANY_REQUESTS': RateLimitExceeded,
785
788
  'MIXED_ACCOUNT_TYPE': InvalidOrder,
786
789
  'AUTO_BORROW_TOO_MUCH': ExchangeError,
787
790
  'TRADE_RESTRICTED': InsufficientFunds,
@@ -419,6 +419,7 @@ class okx(Exchange, ImplicitAPI):
419
419
  'account/set-riskOffset-type': 2,
420
420
  'account/activate-option': 4,
421
421
  'account/set-auto-loan': 4,
422
+ 'account/set-account-level': 4,
422
423
  'account/mmp-reset': 4,
423
424
  'account/mmp-config': 100,
424
425
  # subaccount
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.35'
7
+ __version__ = '4.0.38'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10