ccxt 4.1.67__tar.gz → 4.1.68__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (453) hide show
  1. {ccxt-4.1.67/ccxt.egg-info → ccxt-4.1.68}/PKG-INFO +4 -4
  2. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/__init__.py +1 -1
  3. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/exchange.py +2 -2
  5. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bybit.py +2 -2
  6. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/gate.py +199 -2
  7. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/exchange.py +5 -5
  8. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bybit.py +2 -2
  9. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/gate.py +199 -2
  10. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/__init__.py +1 -1
  11. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/binance.py +1 -1
  12. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/phemex.py +1 -1
  13. {ccxt-4.1.67 → ccxt-4.1.68/ccxt.egg-info}/PKG-INFO +4 -4
  14. {ccxt-4.1.67 → ccxt-4.1.68}/package.json +1 -1
  15. {ccxt-4.1.67 → ccxt-4.1.68}/LICENSE.txt +0 -0
  16. {ccxt-4.1.67 → ccxt-4.1.68}/MANIFEST.in +0 -0
  17. {ccxt-4.1.67 → ccxt-4.1.68}/README.rst +0 -0
  18. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/__init__.py +0 -0
  19. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/ace.py +0 -0
  20. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/alpaca.py +0 -0
  21. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/ascendex.py +0 -0
  22. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bequant.py +0 -0
  23. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bigone.py +0 -0
  24. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/binance.py +0 -0
  25. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/binancecoinm.py +0 -0
  26. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/binanceus.py +0 -0
  27. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/binanceusdm.py +0 -0
  28. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bingx.py +0 -0
  29. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bit2c.py +0 -0
  30. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitbank.py +0 -0
  31. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitbay.py +0 -0
  32. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitbns.py +0 -0
  33. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitcoincom.py +0 -0
  34. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitfinex.py +0 -0
  35. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitfinex2.py +0 -0
  36. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitflyer.py +0 -0
  37. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitforex.py +0 -0
  38. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitget.py +0 -0
  39. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bithumb.py +0 -0
  40. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitmart.py +0 -0
  41. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitmex.py +0 -0
  42. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitopro.py +0 -0
  43. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitpanda.py +0 -0
  44. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitrue.py +0 -0
  45. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitso.py +0 -0
  46. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitstamp.py +0 -0
  47. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bittrex.py +0 -0
  48. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bitvavo.py +0 -0
  49. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bl3p.py +0 -0
  50. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/blockchaincom.py +0 -0
  51. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/btcalpha.py +0 -0
  52. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/btcbox.py +0 -0
  53. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/btcmarkets.py +0 -0
  54. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/btcturk.py +0 -0
  55. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/bybit.py +0 -0
  56. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/cex.py +0 -0
  57. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinbase.py +0 -0
  58. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinbaseprime.py +0 -0
  59. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinbasepro.py +0 -0
  60. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coincheck.py +0 -0
  61. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinex.py +0 -0
  62. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinlist.py +0 -0
  63. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinmate.py +0 -0
  64. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinone.py +0 -0
  65. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinsph.py +0 -0
  66. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/coinspot.py +0 -0
  67. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/cryptocom.py +0 -0
  68. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/currencycom.py +0 -0
  69. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/delta.py +0 -0
  70. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/deribit.py +0 -0
  71. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/digifinex.py +0 -0
  72. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/exmo.py +0 -0
  73. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/fmfwio.py +0 -0
  74. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/gate.py +0 -0
  75. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/gateio.py +0 -0
  76. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/gemini.py +0 -0
  77. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/hitbtc.py +0 -0
  78. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/hitbtc3.py +0 -0
  79. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/hollaex.py +0 -0
  80. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/htx.py +0 -0
  81. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/huobi.py +0 -0
  82. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/huobijp.py +0 -0
  83. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/idex.py +0 -0
  84. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/independentreserve.py +0 -0
  85. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/indodax.py +0 -0
  86. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/kraken.py +0 -0
  87. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/krakenfutures.py +0 -0
  88. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/kucoin.py +0 -0
  89. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/kucoinfutures.py +0 -0
  90. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/kuna.py +0 -0
  91. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/latoken.py +0 -0
  92. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/lbank.py +0 -0
  93. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/luno.py +0 -0
  94. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/lykke.py +0 -0
  95. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/mercado.py +0 -0
  96. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/mexc.py +0 -0
  97. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/ndax.py +0 -0
  98. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/novadax.py +0 -0
  99. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/oceanex.py +0 -0
  100. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/okcoin.py +0 -0
  101. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/okx.py +0 -0
  102. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/p2b.py +0 -0
  103. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/paymium.py +0 -0
  104. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/phemex.py +0 -0
  105. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/poloniex.py +0 -0
  106. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/poloniexfutures.py +0 -0
  107. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/probit.py +0 -0
  108. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/tidex.py +0 -0
  109. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/timex.py +0 -0
  110. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/tokocrypto.py +0 -0
  111. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/upbit.py +0 -0
  112. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/wavesexchange.py +0 -0
  113. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/wazirx.py +0 -0
  114. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/whitebit.py +0 -0
  115. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/woo.py +0 -0
  116. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/yobit.py +0 -0
  117. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/zaif.py +0 -0
  118. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/abstract/zonda.py +0 -0
  119. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/ace.py +0 -0
  120. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/alpaca.py +0 -0
  121. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/ascendex.py +0 -0
  122. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/ace.py +0 -0
  123. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/alpaca.py +0 -0
  124. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/ascendex.py +0 -0
  125. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/__init__.py +0 -0
  126. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/throttler.py +0 -0
  127. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/__init__.py +0 -0
  128. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  129. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/cache.py +0 -0
  130. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/client.py +0 -0
  131. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/fast_client.py +0 -0
  132. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/functions.py +0 -0
  133. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/future.py +0 -0
  134. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/order_book.py +0 -0
  135. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  136. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bequant.py +0 -0
  137. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bigone.py +0 -0
  138. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/binance.py +0 -0
  139. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/binancecoinm.py +0 -0
  140. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/binanceus.py +0 -0
  141. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/binanceusdm.py +0 -0
  142. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bingx.py +0 -0
  143. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bit2c.py +0 -0
  144. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitbank.py +0 -0
  145. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitbay.py +0 -0
  146. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitbns.py +0 -0
  147. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitcoincom.py +0 -0
  148. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitfinex.py +0 -0
  149. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitfinex2.py +0 -0
  150. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitflyer.py +0 -0
  151. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitforex.py +0 -0
  152. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitget.py +0 -0
  153. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bithumb.py +0 -0
  154. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitmart.py +0 -0
  155. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitmex.py +0 -0
  156. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitopro.py +0 -0
  157. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitpanda.py +0 -0
  158. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitrue.py +0 -0
  159. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitso.py +0 -0
  160. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitstamp.py +0 -0
  161. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bittrex.py +0 -0
  162. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bitvavo.py +0 -0
  163. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/bl3p.py +0 -0
  164. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/blockchaincom.py +0 -0
  165. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/btcalpha.py +0 -0
  166. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/btcbox.py +0 -0
  167. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/btcmarkets.py +0 -0
  168. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/btcturk.py +0 -0
  169. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/cex.py +0 -0
  170. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinbase.py +0 -0
  171. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinbaseprime.py +0 -0
  172. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinbasepro.py +0 -0
  173. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coincheck.py +0 -0
  174. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinex.py +0 -0
  175. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinlist.py +0 -0
  176. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinmate.py +0 -0
  177. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinone.py +0 -0
  178. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinsph.py +0 -0
  179. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/coinspot.py +0 -0
  180. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/cryptocom.py +0 -0
  181. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/currencycom.py +0 -0
  182. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/delta.py +0 -0
  183. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/deribit.py +0 -0
  184. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/digifinex.py +0 -0
  185. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/exmo.py +0 -0
  186. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/flowbtc.py +0 -0
  187. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/fmfwio.py +0 -0
  188. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/gateio.py +0 -0
  189. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/gemini.py +0 -0
  190. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/hitbtc.py +0 -0
  191. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/hitbtc3.py +0 -0
  192. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/hollaex.py +0 -0
  193. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/htx.py +0 -0
  194. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/huobi.py +0 -0
  195. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/huobijp.py +0 -0
  196. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/huobipro.py +0 -0
  197. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/idex.py +0 -0
  198. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/independentreserve.py +0 -0
  199. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/indodax.py +0 -0
  200. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/kraken.py +0 -0
  201. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/krakenfutures.py +0 -0
  202. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/kucoin.py +0 -0
  203. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/kucoinfutures.py +0 -0
  204. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/kuna.py +0 -0
  205. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/latoken.py +0 -0
  206. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/lbank.py +0 -0
  207. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/luno.py +0 -0
  208. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/lykke.py +0 -0
  209. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/mercado.py +0 -0
  210. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/mexc.py +0 -0
  211. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/mexc3.py +0 -0
  212. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/ndax.py +0 -0
  213. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/novadax.py +0 -0
  214. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/oceanex.py +0 -0
  215. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/okcoin.py +0 -0
  216. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/okex.py +0 -0
  217. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/okex5.py +0 -0
  218. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/okx.py +0 -0
  219. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/p2b.py +0 -0
  220. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/paymium.py +0 -0
  221. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/phemex.py +0 -0
  222. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/poloniex.py +0 -0
  223. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/poloniexfutures.py +0 -0
  224. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/probit.py +0 -0
  225. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/tidex.py +0 -0
  226. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/timex.py +0 -0
  227. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/tokocrypto.py +0 -0
  228. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/upbit.py +0 -0
  229. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/wavesexchange.py +0 -0
  230. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/wazirx.py +0 -0
  231. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/whitebit.py +0 -0
  232. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/woo.py +0 -0
  233. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/yobit.py +0 -0
  234. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/zaif.py +0 -0
  235. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/async_support/zonda.py +0 -0
  236. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/__init__.py +0 -0
  237. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/decimal_to_precision.py +0 -0
  238. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/errors.py +0 -0
  239. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/precise.py +0 -0
  240. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/base/types.py +0 -0
  241. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bequant.py +0 -0
  242. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bigone.py +0 -0
  243. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/binance.py +0 -0
  244. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/binancecoinm.py +0 -0
  245. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/binanceus.py +0 -0
  246. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/binanceusdm.py +0 -0
  247. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bingx.py +0 -0
  248. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bit2c.py +0 -0
  249. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitbank.py +0 -0
  250. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitbay.py +0 -0
  251. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitbns.py +0 -0
  252. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitcoincom.py +0 -0
  253. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitfinex.py +0 -0
  254. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitfinex2.py +0 -0
  255. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitflyer.py +0 -0
  256. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitforex.py +0 -0
  257. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitget.py +0 -0
  258. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bithumb.py +0 -0
  259. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitmart.py +0 -0
  260. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitmex.py +0 -0
  261. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitopro.py +0 -0
  262. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitpanda.py +0 -0
  263. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitrue.py +0 -0
  264. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitso.py +0 -0
  265. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitstamp.py +0 -0
  266. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bittrex.py +0 -0
  267. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bitvavo.py +0 -0
  268. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/bl3p.py +0 -0
  269. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/blockchaincom.py +0 -0
  270. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/btcalpha.py +0 -0
  271. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/btcbox.py +0 -0
  272. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/btcmarkets.py +0 -0
  273. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/btcturk.py +0 -0
  274. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/cex.py +0 -0
  275. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinbase.py +0 -0
  276. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinbaseprime.py +0 -0
  277. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinbasepro.py +0 -0
  278. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coincheck.py +0 -0
  279. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinex.py +0 -0
  280. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinlist.py +0 -0
  281. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinmate.py +0 -0
  282. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinone.py +0 -0
  283. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinsph.py +0 -0
  284. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/coinspot.py +0 -0
  285. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/cryptocom.py +0 -0
  286. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/currencycom.py +0 -0
  287. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/delta.py +0 -0
  288. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/deribit.py +0 -0
  289. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/digifinex.py +0 -0
  290. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/exmo.py +0 -0
  291. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/flowbtc.py +0 -0
  292. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/fmfwio.py +0 -0
  293. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/gateio.py +0 -0
  294. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/gemini.py +0 -0
  295. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/hitbtc.py +0 -0
  296. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/hitbtc3.py +0 -0
  297. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/hollaex.py +0 -0
  298. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/htx.py +0 -0
  299. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/huobi.py +0 -0
  300. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/huobijp.py +0 -0
  301. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/huobipro.py +0 -0
  302. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/idex.py +0 -0
  303. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/independentreserve.py +0 -0
  304. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/indodax.py +0 -0
  305. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/kraken.py +0 -0
  306. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/krakenfutures.py +0 -0
  307. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/kucoin.py +0 -0
  308. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/kucoinfutures.py +0 -0
  309. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/kuna.py +0 -0
  310. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/latoken.py +0 -0
  311. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/lbank.py +0 -0
  312. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/luno.py +0 -0
  313. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/lykke.py +0 -0
  314. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/mercado.py +0 -0
  315. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/mexc.py +0 -0
  316. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/mexc3.py +0 -0
  317. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/ndax.py +0 -0
  318. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/novadax.py +0 -0
  319. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/oceanex.py +0 -0
  320. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/okcoin.py +0 -0
  321. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/okex.py +0 -0
  322. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/okex5.py +0 -0
  323. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/okx.py +0 -0
  324. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/p2b.py +0 -0
  325. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/paymium.py +0 -0
  326. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/phemex.py +0 -0
  327. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/poloniex.py +0 -0
  328. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/poloniexfutures.py +0 -0
  329. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/alpaca.py +0 -0
  330. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/ascendex.py +0 -0
  331. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bequant.py +0 -0
  332. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/binancecoinm.py +0 -0
  333. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/binanceus.py +0 -0
  334. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/binanceusdm.py +0 -0
  335. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bingx.py +0 -0
  336. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitcoincom.py +0 -0
  337. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitfinex.py +0 -0
  338. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitfinex2.py +0 -0
  339. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitget.py +0 -0
  340. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitmart.py +0 -0
  341. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitmex.py +0 -0
  342. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitopro.py +0 -0
  343. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitpanda.py +0 -0
  344. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitrue.py +0 -0
  345. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitstamp.py +0 -0
  346. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bittrex.py +0 -0
  347. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bitvavo.py +0 -0
  348. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/blockchaincom.py +0 -0
  349. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/bybit.py +0 -0
  350. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/cex.py +0 -0
  351. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/coinbase.py +0 -0
  352. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/coinbaseprime.py +0 -0
  353. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/coinbasepro.py +0 -0
  354. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/coinex.py +0 -0
  355. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/cryptocom.py +0 -0
  356. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/currencycom.py +0 -0
  357. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/deribit.py +0 -0
  358. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/exmo.py +0 -0
  359. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/gate.py +0 -0
  360. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/gateio.py +0 -0
  361. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/gemini.py +0 -0
  362. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/hitbtc.py +0 -0
  363. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/hollaex.py +0 -0
  364. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/htx.py +0 -0
  365. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/huobi.py +0 -0
  366. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/huobijp.py +0 -0
  367. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/huobipro.py +0 -0
  368. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/idex.py +0 -0
  369. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/independentreserve.py +0 -0
  370. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/kraken.py +0 -0
  371. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/krakenfutures.py +0 -0
  372. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/kucoin.py +0 -0
  373. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/kucoinfutures.py +0 -0
  374. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/luno.py +0 -0
  375. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/mexc.py +0 -0
  376. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/mexc3.py +0 -0
  377. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/ndax.py +0 -0
  378. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/okcoin.py +0 -0
  379. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/okex.py +0 -0
  380. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/okx.py +0 -0
  381. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/poloniex.py +0 -0
  382. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/poloniexfutures.py +0 -0
  383. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/probit.py +0 -0
  384. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/upbit.py +0 -0
  385. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/wazirx.py +0 -0
  386. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/whitebit.py +0 -0
  387. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/pro/woo.py +0 -0
  388. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/probit.py +0 -0
  389. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/__init__.py +0 -0
  390. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  391. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  392. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  393. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  394. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  395. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  396. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  397. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  398. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  399. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  400. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  401. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  402. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/__init__.py +0 -0
  403. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/__init__.py +0 -0
  404. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_account.py +0 -0
  405. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_balance.py +0 -0
  406. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_borrow_interest.py +0 -0
  407. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_borrow_rate.py +0 -0
  408. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_calculate_fee.py +0 -0
  409. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_crypto.py +0 -0
  410. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_currency.py +0 -0
  411. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_datetime.py +0 -0
  412. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  413. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_deep_extend.py +0 -0
  414. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  415. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  416. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_funding_rate_history.py +0 -0
  417. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_ledger_entry.py +0 -0
  418. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_ledger_item.py +0 -0
  419. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_leverage_tier.py +0 -0
  420. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_margin_modification.py +0 -0
  421. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_market.py +0 -0
  422. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_number.py +0 -0
  423. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_ohlcv.py +0 -0
  424. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_open_interest.py +0 -0
  425. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_order.py +0 -0
  426. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_order_book.py +0 -0
  427. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_position.py +0 -0
  428. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_shared_methods.py +0 -0
  429. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_status.py +0 -0
  430. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_throttle.py +0 -0
  431. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_ticker.py +0 -0
  432. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_trade.py +0 -0
  433. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_trading_fee.py +0 -0
  434. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/base/test_transaction.py +0 -0
  435. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/test_async.py +0 -0
  436. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/test/test_sync.py +0 -0
  437. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/tidex.py +0 -0
  438. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/timex.py +0 -0
  439. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/tokocrypto.py +0 -0
  440. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/upbit.py +0 -0
  441. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/wavesexchange.py +0 -0
  442. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/wazirx.py +0 -0
  443. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/whitebit.py +0 -0
  444. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/woo.py +0 -0
  445. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/yobit.py +0 -0
  446. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/zaif.py +0 -0
  447. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt/zonda.py +0 -0
  448. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt.egg-info/SOURCES.txt +0 -0
  449. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt.egg-info/dependency_links.txt +0 -0
  450. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt.egg-info/requires.txt +0 -0
  451. {ccxt-4.1.67 → ccxt-4.1.68}/ccxt.egg-info/top_level.txt +0 -0
  452. {ccxt-4.1.67 → ccxt-4.1.68}/setup.cfg +0 -0
  453. {ccxt-4.1.67 → ccxt-4.1.68}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.1.67
3
+ Version: 4.1.68
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
@@ -224,13 +224,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
224
224
 
225
225
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
226
226
 
227
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.67/dist/ccxt.browser.js
228
- * unpkg: https://unpkg.com/ccxt@4.1.67/dist/ccxt.browser.js
227
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js
228
+ * unpkg: https://unpkg.com/ccxt@4.1.68/dist/ccxt.browser.js
229
229
 
230
230
  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.
231
231
 
232
232
  ```HTML
233
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.67/dist/ccxt.browser.js"></script>
233
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js"></script>
234
234
  ```
235
235
 
236
236
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.1.67'
25
+ __version__ = '4.1.68'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.67'
7
+ __version__ = '4.1.68'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.1.67'
5
+ __version__ = '4.1.68'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -746,7 +746,7 @@ class Exchange(BaseExchange):
746
746
  raise NotSupported(self.id + ' watchPositions() is not supported yet')
747
747
 
748
748
  async def watch_position_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}):
749
- return self.watchPositions(symbols, since, limit, params)
749
+ return await self.watchPositions(symbols, since, limit, params)
750
750
 
751
751
  async def fetch_positions_for_symbol(self, symbol: str, params={}):
752
752
  """
@@ -2057,8 +2057,8 @@ class bybit(Exchange, ImplicitAPI):
2057
2057
  parsedSymbols.append(market['symbol'])
2058
2058
  request = {
2059
2059
  # 'symbol': market['id'],
2060
- # 'baseCoin': '', Base coin. For option only
2061
- # 'expDate': '', Expiry date. e.g., 25DEC22. For option only
2060
+ # 'baseCoin': '', # Base coin. For option only
2061
+ # 'expDate': '', # Expiry date. e.g., 25DEC22. For option only
2062
2062
  }
2063
2063
  type = None
2064
2064
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
@@ -572,8 +572,6 @@ class gate(Exchange, ImplicitAPI):
572
572
  'AXIS': 'Axis DeFi',
573
573
  'BIFI': 'Bitcoin File',
574
574
  'BOX': 'DefiBox',
575
- 'BTCBEAR': 'BEAR',
576
- 'BTCBULL': 'BULL',
577
575
  'BYN': 'BeyondFi',
578
576
  'EGG': 'Goose Finance',
579
577
  'GTC': 'Game.com', # conflict with Gitcoin and Gastrocoin
@@ -869,6 +867,7 @@ class gate(Exchange, ImplicitAPI):
869
867
  'AUTO_TRIGGER_PRICE_LESS_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_LESS_LAST","message":"invalid argument: Trigger.Price must < last_price"}
870
868
  'AUTO_TRIGGER_PRICE_GREATE_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_GREATE_LAST","message":"invalid argument: Trigger.Price must > last_price"}
871
869
  'POSITION_HOLDING': BadRequest,
870
+ 'USER_LOAN_EXCEEDED': BadRequest, # {"label":"USER_LOAN_EXCEEDED","message":"Max loan amount per user would be exceeded"}
872
871
  },
873
872
  'broad': {},
874
873
  },
@@ -5265,6 +5264,204 @@ class gate(Exchange, ImplicitAPI):
5265
5264
  floor = cap
5266
5265
  return tiers
5267
5266
 
5267
+ async def repay_margin(self, code: str, amount, symbol: Str = None, params={}):
5268
+ """
5269
+ repay borrowed margin and interest
5270
+ :see: https://www.gate.io/docs/apiv4/en/#repay-cross-margin-loan
5271
+ :see: https://www.gate.io/docs/apiv4/en/#repay-a-loan
5272
+ :param str code: unified currency code of the currency to repay
5273
+ :param float amount: the amount to repay
5274
+ :param str symbol: unified market symbol, required for isolated margin
5275
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5276
+ :param str [params.mode]: 'all' or 'partial' payment mode, extra parameter required for isolated margin
5277
+ :param str [params.id]: '34267567' loan id, extra parameter required for isolated margin
5278
+ :returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
5279
+ """
5280
+ marginMode = None
5281
+ marginMode, params = self.handle_option_and_params(params, 'repayMargin', 'marginMode')
5282
+ self.check_required_argument('repayMargin', marginMode, 'marginMode', ['cross', 'isolated'])
5283
+ self.check_required_margin_argument('repayMargin', symbol, marginMode)
5284
+ await self.load_markets()
5285
+ currency = self.currency(code)
5286
+ request = {
5287
+ 'currency': currency['id'].upper(),
5288
+ 'amount': self.currency_to_precision(code, amount),
5289
+ }
5290
+ response = None
5291
+ if (marginMode == 'cross') and (symbol is None):
5292
+ response = await self.privateMarginPostCrossRepayments(self.extend(request, params))
5293
+ elif (marginMode == 'isolated') or (symbol is not None):
5294
+ if symbol is None:
5295
+ raise BadRequest(self.id + ' repayMargin() requires a symbol argument for isolated margin')
5296
+ market = self.market(symbol)
5297
+ request['currency_pair'] = market['id']
5298
+ request['type'] = 'repay'
5299
+ response = await self.privateMarginPostUniLoans(self.extend(request, params))
5300
+ #
5301
+ # Cross
5302
+ #
5303
+ # [
5304
+ # {
5305
+ # "id": "17",
5306
+ # "create_time": 1620381696159,
5307
+ # "update_time": 1620381696159,
5308
+ # "currency": "EOS",
5309
+ # "amount": "110.553635",
5310
+ # "text": "web",
5311
+ # "status": 2,
5312
+ # "repaid": "110.506649705159",
5313
+ # "repaid_interest": "0.046985294841",
5314
+ # "unpaid_interest": "0.0000074393366667"
5315
+ # }
5316
+ # ]
5317
+ #
5318
+ # Isolated
5319
+ #
5320
+ # {
5321
+ # "id": "34267567",
5322
+ # "create_time": "1656394778",
5323
+ # "expire_time": "1657258778",
5324
+ # "status": "finished",
5325
+ # "side": "borrow",
5326
+ # "currency": "USDT",
5327
+ # "rate": "0.0002",
5328
+ # "amount": "100",
5329
+ # "days": 10,
5330
+ # "auto_renew": False,
5331
+ # "currency_pair": "LTC_USDT",
5332
+ # "left": "0",
5333
+ # "repaid": "100",
5334
+ # "paid_interest": "0.003333333333",
5335
+ # "unpaid_interest": "0"
5336
+ # }
5337
+ #
5338
+ if marginMode == 'cross':
5339
+ response = response[0]
5340
+ return self.parse_margin_loan(response, currency)
5341
+
5342
+ async def borrow_margin(self, code: str, amount, symbol: Str = None, params={}):
5343
+ """
5344
+ create a loan to borrow margin
5345
+ :see: https://www.gate.io/docs/apiv4/en/#create-a-cross-margin-borrow-loan
5346
+ :see: https://www.gate.io/docs/developers/apiv4/en/#marginuni
5347
+ :param str code: unified currency code of the currency to borrow
5348
+ :param float amount: the amount to borrow
5349
+ :param str symbol: unified market symbol, required for isolated margin
5350
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5351
+ :param str [params.rate]: '0.0002' or '0.002' extra parameter required for isolated margin
5352
+ :returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
5353
+ """
5354
+ marginMode = None
5355
+ marginMode, params = self.handle_option_and_params(params, 'borrowMargin', 'marginMode')
5356
+ self.check_required_argument('borrowMargin', marginMode, 'marginMode', ['cross', 'isolated'])
5357
+ self.check_required_margin_argument('borrowMargin', symbol, marginMode)
5358
+ await self.load_markets()
5359
+ currency = self.currency(code)
5360
+ request = {
5361
+ 'currency': currency['id'].upper(),
5362
+ 'amount': self.currency_to_precision(code, amount),
5363
+ }
5364
+ response = None
5365
+ if (marginMode == 'cross') and (symbol is None):
5366
+ response = await self.privateMarginPostCrossLoans(self.extend(request, params))
5367
+ elif (marginMode == 'isolated') or (symbol is not None):
5368
+ if symbol is None:
5369
+ raise BadRequest(self.id + ' borrowMargin() requires a symbol argument for isolated margin')
5370
+ market = self.market(symbol)
5371
+ request['currency_pair'] = market['id']
5372
+ request['type'] = 'borrow'
5373
+ response = await self.privateMarginPostUniLoans(self.extend(request, params))
5374
+ #
5375
+ # Cross
5376
+ #
5377
+ # {
5378
+ # "id": "17",
5379
+ # "create_time": 1620381696159,
5380
+ # "update_time": 1620381696159,
5381
+ # "currency": "EOS",
5382
+ # "amount": "110.553635",
5383
+ # "text": "web",
5384
+ # "status": 2,
5385
+ # "repaid": "110.506649705159",
5386
+ # "repaid_interest": "0.046985294841",
5387
+ # "unpaid_interest": "0.0000074393366667"
5388
+ # }
5389
+ #
5390
+ # Isolated
5391
+ #
5392
+ # {
5393
+ # "id": "34267567",
5394
+ # "create_time": "1656394778",
5395
+ # "expire_time": "1657258778",
5396
+ # "status": "loaned",
5397
+ # "side": "borrow",
5398
+ # "currency": "USDT",
5399
+ # "rate": "0.0002",
5400
+ # "amount": "100",
5401
+ # "days": 10,
5402
+ # "auto_renew": False,
5403
+ # "currency_pair": "LTC_USDT",
5404
+ # "left": "0",
5405
+ # "repaid": "0",
5406
+ # "paid_interest": "0",
5407
+ # "unpaid_interest": "0.003333333333"
5408
+ # }
5409
+ #
5410
+ return self.parse_margin_loan(response, currency)
5411
+
5412
+ def parse_margin_loan(self, info, currency: Currency = None):
5413
+ #
5414
+ # Cross
5415
+ #
5416
+ # {
5417
+ # "id": "17",
5418
+ # "create_time": 1620381696159,
5419
+ # "update_time": 1620381696159,
5420
+ # "currency": "EOS",
5421
+ # "amount": "110.553635",
5422
+ # "text": "web",
5423
+ # "status": 2,
5424
+ # "repaid": "110.506649705159",
5425
+ # "repaid_interest": "0.046985294841",
5426
+ # "unpaid_interest": "0.0000074393366667"
5427
+ # }
5428
+ #
5429
+ # Isolated
5430
+ #
5431
+ # {
5432
+ # "id": "34267567",
5433
+ # "create_time": "1656394778",
5434
+ # "expire_time": "1657258778",
5435
+ # "status": "loaned",
5436
+ # "side": "borrow",
5437
+ # "currency": "USDT",
5438
+ # "rate": "0.0002",
5439
+ # "amount": "100",
5440
+ # "days": 10,
5441
+ # "auto_renew": False,
5442
+ # "currency_pair": "LTC_USDT",
5443
+ # "left": "0",
5444
+ # "repaid": "0",
5445
+ # "paid_interest": "0",
5446
+ # "unpaid_interest": "0.003333333333"
5447
+ # }
5448
+ #
5449
+ marginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
5450
+ timestamp = self.safe_integer(info, 'create_time')
5451
+ if marginMode == 'isolated':
5452
+ timestamp = self.safe_timestamp(info, 'create_time')
5453
+ currencyId = self.safe_string(info, 'currency')
5454
+ marketId = self.safe_string(info, 'currency_pair')
5455
+ return {
5456
+ 'id': self.safe_integer(info, 'id'),
5457
+ 'currency': self.safe_currency_code(currencyId, currency),
5458
+ 'amount': self.safe_number(info, 'amount'),
5459
+ 'symbol': self.safe_symbol(marketId, None, '_', 'margin'),
5460
+ 'timestamp': timestamp,
5461
+ 'datetime': self.iso8601(timestamp),
5462
+ 'info': info,
5463
+ }
5464
+
5268
5465
  def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
5269
5466
  authentication = api[0] # public, private
5270
5467
  type = api[1] # spot, margin, future, delivery
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.67'
7
+ __version__ = '4.1.68'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -564,7 +564,7 @@ class Exchange(object):
564
564
  proxies['http'] = socksProxy
565
565
  proxies['https'] = socksProxy
566
566
  proxyAgentSet = proxies is not None
567
- self.checkConflictingProxies(proxyAgentSet, proxyUrl)
567
+ self.check_conflicting_proxies(proxyAgentSet, proxyUrl)
568
568
  # specifically for async-python, there is ".proxies" property maintained
569
569
  if (self.proxies is not None):
570
570
  if (proxyAgentSet or proxyUrl):
@@ -1989,7 +1989,7 @@ class Exchange(object):
1989
1989
  def parse_markets(self, markets):
1990
1990
  result = []
1991
1991
  for i in range(0, len(markets)):
1992
- result.append(self.parseMarket(markets[i]))
1992
+ result.append(self.parse_market(markets[i]))
1993
1993
  return result
1994
1994
 
1995
1995
  def parse_ticker(self, ticker: object, market: Market = None):
@@ -2832,7 +2832,7 @@ class Exchange(object):
2832
2832
  'bidVolume': self.safe_number(ticker, 'bidVolume'),
2833
2833
  'ask': self.parse_number(self.omit_zero(self.safe_number(ticker, 'ask'))),
2834
2834
  'askVolume': self.safe_number(ticker, 'askVolume'),
2835
- 'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high"'))),
2835
+ 'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high'))),
2836
2836
  'low': self.parse_number(self.omit_zero(self.safe_number(ticker, 'low'))),
2837
2837
  'open': self.parse_number(self.omit_zero(self.parse_number(open))),
2838
2838
  'close': self.parse_number(self.omit_zero(self.parse_number(close))),
@@ -4338,7 +4338,7 @@ class Exchange(object):
4338
4338
  message += ', one of ' + '(' + messageOptions + ')'
4339
4339
  raise ArgumentsRequired(message)
4340
4340
 
4341
- def check_required_margin_argument(self, methodName: str, symbol: str, marginMode: str):
4341
+ def check_required_margin_argument(self, methodName: str, symbol: Str, marginMode: str):
4342
4342
  """
4343
4343
  * @ignore
4344
4344
  :param str symbol: unified symbol of the market
@@ -2056,8 +2056,8 @@ class bybit(Exchange, ImplicitAPI):
2056
2056
  parsedSymbols.append(market['symbol'])
2057
2057
  request = {
2058
2058
  # 'symbol': market['id'],
2059
- # 'baseCoin': '', Base coin. For option only
2060
- # 'expDate': '', Expiry date. e.g., 25DEC22. For option only
2059
+ # 'baseCoin': '', # Base coin. For option only
2060
+ # 'expDate': '', # Expiry date. e.g., 25DEC22. For option only
2061
2061
  }
2062
2062
  type = None
2063
2063
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
@@ -571,8 +571,6 @@ class gate(Exchange, ImplicitAPI):
571
571
  'AXIS': 'Axis DeFi',
572
572
  'BIFI': 'Bitcoin File',
573
573
  'BOX': 'DefiBox',
574
- 'BTCBEAR': 'BEAR',
575
- 'BTCBULL': 'BULL',
576
574
  'BYN': 'BeyondFi',
577
575
  'EGG': 'Goose Finance',
578
576
  'GTC': 'Game.com', # conflict with Gitcoin and Gastrocoin
@@ -868,6 +866,7 @@ class gate(Exchange, ImplicitAPI):
868
866
  'AUTO_TRIGGER_PRICE_LESS_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_LESS_LAST","message":"invalid argument: Trigger.Price must < last_price"}
869
867
  'AUTO_TRIGGER_PRICE_GREATE_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_GREATE_LAST","message":"invalid argument: Trigger.Price must > last_price"}
870
868
  'POSITION_HOLDING': BadRequest,
869
+ 'USER_LOAN_EXCEEDED': BadRequest, # {"label":"USER_LOAN_EXCEEDED","message":"Max loan amount per user would be exceeded"}
871
870
  },
872
871
  'broad': {},
873
872
  },
@@ -5264,6 +5263,204 @@ class gate(Exchange, ImplicitAPI):
5264
5263
  floor = cap
5265
5264
  return tiers
5266
5265
 
5266
+ def repay_margin(self, code: str, amount, symbol: Str = None, params={}):
5267
+ """
5268
+ repay borrowed margin and interest
5269
+ :see: https://www.gate.io/docs/apiv4/en/#repay-cross-margin-loan
5270
+ :see: https://www.gate.io/docs/apiv4/en/#repay-a-loan
5271
+ :param str code: unified currency code of the currency to repay
5272
+ :param float amount: the amount to repay
5273
+ :param str symbol: unified market symbol, required for isolated margin
5274
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5275
+ :param str [params.mode]: 'all' or 'partial' payment mode, extra parameter required for isolated margin
5276
+ :param str [params.id]: '34267567' loan id, extra parameter required for isolated margin
5277
+ :returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
5278
+ """
5279
+ marginMode = None
5280
+ marginMode, params = self.handle_option_and_params(params, 'repayMargin', 'marginMode')
5281
+ self.check_required_argument('repayMargin', marginMode, 'marginMode', ['cross', 'isolated'])
5282
+ self.check_required_margin_argument('repayMargin', symbol, marginMode)
5283
+ self.load_markets()
5284
+ currency = self.currency(code)
5285
+ request = {
5286
+ 'currency': currency['id'].upper(),
5287
+ 'amount': self.currency_to_precision(code, amount),
5288
+ }
5289
+ response = None
5290
+ if (marginMode == 'cross') and (symbol is None):
5291
+ response = self.privateMarginPostCrossRepayments(self.extend(request, params))
5292
+ elif (marginMode == 'isolated') or (symbol is not None):
5293
+ if symbol is None:
5294
+ raise BadRequest(self.id + ' repayMargin() requires a symbol argument for isolated margin')
5295
+ market = self.market(symbol)
5296
+ request['currency_pair'] = market['id']
5297
+ request['type'] = 'repay'
5298
+ response = self.privateMarginPostUniLoans(self.extend(request, params))
5299
+ #
5300
+ # Cross
5301
+ #
5302
+ # [
5303
+ # {
5304
+ # "id": "17",
5305
+ # "create_time": 1620381696159,
5306
+ # "update_time": 1620381696159,
5307
+ # "currency": "EOS",
5308
+ # "amount": "110.553635",
5309
+ # "text": "web",
5310
+ # "status": 2,
5311
+ # "repaid": "110.506649705159",
5312
+ # "repaid_interest": "0.046985294841",
5313
+ # "unpaid_interest": "0.0000074393366667"
5314
+ # }
5315
+ # ]
5316
+ #
5317
+ # Isolated
5318
+ #
5319
+ # {
5320
+ # "id": "34267567",
5321
+ # "create_time": "1656394778",
5322
+ # "expire_time": "1657258778",
5323
+ # "status": "finished",
5324
+ # "side": "borrow",
5325
+ # "currency": "USDT",
5326
+ # "rate": "0.0002",
5327
+ # "amount": "100",
5328
+ # "days": 10,
5329
+ # "auto_renew": False,
5330
+ # "currency_pair": "LTC_USDT",
5331
+ # "left": "0",
5332
+ # "repaid": "100",
5333
+ # "paid_interest": "0.003333333333",
5334
+ # "unpaid_interest": "0"
5335
+ # }
5336
+ #
5337
+ if marginMode == 'cross':
5338
+ response = response[0]
5339
+ return self.parse_margin_loan(response, currency)
5340
+
5341
+ def borrow_margin(self, code: str, amount, symbol: Str = None, params={}):
5342
+ """
5343
+ create a loan to borrow margin
5344
+ :see: https://www.gate.io/docs/apiv4/en/#create-a-cross-margin-borrow-loan
5345
+ :see: https://www.gate.io/docs/developers/apiv4/en/#marginuni
5346
+ :param str code: unified currency code of the currency to borrow
5347
+ :param float amount: the amount to borrow
5348
+ :param str symbol: unified market symbol, required for isolated margin
5349
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5350
+ :param str [params.rate]: '0.0002' or '0.002' extra parameter required for isolated margin
5351
+ :returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
5352
+ """
5353
+ marginMode = None
5354
+ marginMode, params = self.handle_option_and_params(params, 'borrowMargin', 'marginMode')
5355
+ self.check_required_argument('borrowMargin', marginMode, 'marginMode', ['cross', 'isolated'])
5356
+ self.check_required_margin_argument('borrowMargin', symbol, marginMode)
5357
+ self.load_markets()
5358
+ currency = self.currency(code)
5359
+ request = {
5360
+ 'currency': currency['id'].upper(),
5361
+ 'amount': self.currency_to_precision(code, amount),
5362
+ }
5363
+ response = None
5364
+ if (marginMode == 'cross') and (symbol is None):
5365
+ response = self.privateMarginPostCrossLoans(self.extend(request, params))
5366
+ elif (marginMode == 'isolated') or (symbol is not None):
5367
+ if symbol is None:
5368
+ raise BadRequest(self.id + ' borrowMargin() requires a symbol argument for isolated margin')
5369
+ market = self.market(symbol)
5370
+ request['currency_pair'] = market['id']
5371
+ request['type'] = 'borrow'
5372
+ response = self.privateMarginPostUniLoans(self.extend(request, params))
5373
+ #
5374
+ # Cross
5375
+ #
5376
+ # {
5377
+ # "id": "17",
5378
+ # "create_time": 1620381696159,
5379
+ # "update_time": 1620381696159,
5380
+ # "currency": "EOS",
5381
+ # "amount": "110.553635",
5382
+ # "text": "web",
5383
+ # "status": 2,
5384
+ # "repaid": "110.506649705159",
5385
+ # "repaid_interest": "0.046985294841",
5386
+ # "unpaid_interest": "0.0000074393366667"
5387
+ # }
5388
+ #
5389
+ # Isolated
5390
+ #
5391
+ # {
5392
+ # "id": "34267567",
5393
+ # "create_time": "1656394778",
5394
+ # "expire_time": "1657258778",
5395
+ # "status": "loaned",
5396
+ # "side": "borrow",
5397
+ # "currency": "USDT",
5398
+ # "rate": "0.0002",
5399
+ # "amount": "100",
5400
+ # "days": 10,
5401
+ # "auto_renew": False,
5402
+ # "currency_pair": "LTC_USDT",
5403
+ # "left": "0",
5404
+ # "repaid": "0",
5405
+ # "paid_interest": "0",
5406
+ # "unpaid_interest": "0.003333333333"
5407
+ # }
5408
+ #
5409
+ return self.parse_margin_loan(response, currency)
5410
+
5411
+ def parse_margin_loan(self, info, currency: Currency = None):
5412
+ #
5413
+ # Cross
5414
+ #
5415
+ # {
5416
+ # "id": "17",
5417
+ # "create_time": 1620381696159,
5418
+ # "update_time": 1620381696159,
5419
+ # "currency": "EOS",
5420
+ # "amount": "110.553635",
5421
+ # "text": "web",
5422
+ # "status": 2,
5423
+ # "repaid": "110.506649705159",
5424
+ # "repaid_interest": "0.046985294841",
5425
+ # "unpaid_interest": "0.0000074393366667"
5426
+ # }
5427
+ #
5428
+ # Isolated
5429
+ #
5430
+ # {
5431
+ # "id": "34267567",
5432
+ # "create_time": "1656394778",
5433
+ # "expire_time": "1657258778",
5434
+ # "status": "loaned",
5435
+ # "side": "borrow",
5436
+ # "currency": "USDT",
5437
+ # "rate": "0.0002",
5438
+ # "amount": "100",
5439
+ # "days": 10,
5440
+ # "auto_renew": False,
5441
+ # "currency_pair": "LTC_USDT",
5442
+ # "left": "0",
5443
+ # "repaid": "0",
5444
+ # "paid_interest": "0",
5445
+ # "unpaid_interest": "0.003333333333"
5446
+ # }
5447
+ #
5448
+ marginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
5449
+ timestamp = self.safe_integer(info, 'create_time')
5450
+ if marginMode == 'isolated':
5451
+ timestamp = self.safe_timestamp(info, 'create_time')
5452
+ currencyId = self.safe_string(info, 'currency')
5453
+ marketId = self.safe_string(info, 'currency_pair')
5454
+ return {
5455
+ 'id': self.safe_integer(info, 'id'),
5456
+ 'currency': self.safe_currency_code(currencyId, currency),
5457
+ 'amount': self.safe_number(info, 'amount'),
5458
+ 'symbol': self.safe_symbol(marketId, None, '_', 'margin'),
5459
+ 'timestamp': timestamp,
5460
+ 'datetime': self.iso8601(timestamp),
5461
+ 'info': info,
5462
+ }
5463
+
5267
5464
  def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
5268
5465
  authentication = api[0] # public, private
5269
5466
  type = api[1] # spot, margin, future, delivery
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.67'
7
+ __version__ = '4.1.68'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -682,7 +682,7 @@ class binance(ccxt.async_support.binance):
682
682
  def handle_trade(self, client: Client, message):
683
683
  # the trade streams push raw trade information in real-time
684
684
  # each trade has a unique buyer and seller
685
- isSpot = ((client.url.find('/stream') > -1) or (client.url.find('/testnet.binance') > -1))
685
+ isSpot = ((client.url.find('wss://stream.binance.com') > -1) or (client.url.find('/testnet.binance') > -1))
686
686
  marketType = 'spot' if (isSpot) else 'contract'
687
687
  marketId = self.safe_string(message, 's')
688
688
  market = self.safe_market(marketId, None, None, marketType)
@@ -1213,7 +1213,7 @@ class phemex(ccxt.async_support.phemex):
1213
1213
  lastTradeTimestamp = self.safe_integer_product(order, 'transactTimeNs', 0.000001)
1214
1214
  if lastTradeTimestamp == 0:
1215
1215
  lastTradeTimestamp = None
1216
- timeInForce = self.parseTimeInForce(self.safe_string(order, 'timeInForce'))
1216
+ timeInForce = self.parse_time_in_force(self.safe_string(order, 'timeInForce'))
1217
1217
  stopPrice = self.safe_string(order, 'stopPx')
1218
1218
  postOnly = (timeInForce == 'PO')
1219
1219
  return self.safe_order({
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.1.67
3
+ Version: 4.1.68
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
@@ -224,13 +224,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
224
224
 
225
225
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
226
226
 
227
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.67/dist/ccxt.browser.js
228
- * unpkg: https://unpkg.com/ccxt@4.1.67/dist/ccxt.browser.js
227
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js
228
+ * unpkg: https://unpkg.com/ccxt@4.1.68/dist/ccxt.browser.js
229
229
 
230
230
  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.
231
231
 
232
232
  ```HTML
233
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.67/dist/ccxt.browser.js"></script>
233
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js"></script>
234
234
  ```
235
235
 
236
236
  Creates a global `ccxt` object:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.1.67",
3
+ "version": "4.1.68",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes