ccxt 4.2.78__tar.gz → 4.2.80__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 (542) hide show
  1. {ccxt-4.2.78/ccxt.egg-info → ccxt-4.2.80}/PKG-INFO +6 -6
  2. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bingx.py +1 -0
  4. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/gate.py +1 -0
  5. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/gateio.py +1 -0
  6. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/upbit.py +1 -0
  7. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/__init__.py +1 -1
  8. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/exchange.py +10 -1
  9. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/functions.py +1 -1
  10. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/binance.py +3 -3
  11. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bingx.py +37 -5
  12. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitstamp.py +20 -26
  13. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bybit.py +92 -0
  14. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinbaseinternational.py +2 -2
  15. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/deribit.py +152 -1
  16. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/gate.py +11 -4
  17. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/hyperliquid.py +42 -9
  18. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/mexc.py +2 -2
  19. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/upbit.py +2 -0
  20. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/exchange.py +38 -9
  21. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/types.py +23 -0
  22. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/binance.py +3 -3
  23. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bingx.py +37 -5
  24. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitstamp.py +20 -26
  25. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bybit.py +92 -0
  26. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinbaseinternational.py +2 -2
  27. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/deribit.py +152 -1
  28. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/gate.py +11 -4
  29. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/hyperliquid.py +42 -9
  30. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/mexc.py +2 -2
  31. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/__init__.py +1 -1
  32. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/alpaca.py +1 -1
  33. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/binance.py +5 -5
  34. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitfinex2.py +1 -1
  35. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitget.py +1 -1
  36. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitmart.py +1 -1
  37. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitmex.py +1 -1
  38. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitopro.py +2 -1
  39. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/blockchaincom.py +1 -1
  40. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bybit.py +14 -1
  41. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/cex.py +9 -5
  42. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/cryptocom.py +1 -1
  43. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/gemini.py +4 -3
  44. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/hitbtc.py +1 -1
  45. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/htx.py +1 -1
  46. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/okcoin.py +1 -1
  47. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/onetrading.py +1 -1
  48. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/phemex.py +6 -1
  49. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/woo.py +30 -0
  50. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_ohlcv.py +3 -2
  51. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_shared_methods.py +8 -0
  52. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_ticker.py +7 -1
  53. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/test_async.py +26 -25
  54. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/test_sync.py +26 -25
  55. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/upbit.py +2 -0
  56. {ccxt-4.2.78 → ccxt-4.2.80/ccxt.egg-info}/PKG-INFO +6 -6
  57. {ccxt-4.2.78 → ccxt-4.2.80}/package.json +1 -1
  58. {ccxt-4.2.78 → ccxt-4.2.80}/LICENSE.txt +0 -0
  59. {ccxt-4.2.78 → ccxt-4.2.80}/MANIFEST.in +0 -0
  60. {ccxt-4.2.78 → ccxt-4.2.80}/README.rst +0 -0
  61. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/__init__.py +0 -0
  62. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/ace.py +0 -0
  63. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/alpaca.py +0 -0
  64. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/ascendex.py +0 -0
  65. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bequant.py +0 -0
  66. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bigone.py +0 -0
  67. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/binance.py +0 -0
  68. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/binancecoinm.py +0 -0
  69. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/binanceus.py +0 -0
  70. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/binanceusdm.py +0 -0
  71. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bit2c.py +0 -0
  72. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitbank.py +0 -0
  73. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitbay.py +0 -0
  74. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitbns.py +0 -0
  75. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitcoincom.py +0 -0
  76. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitfinex.py +0 -0
  77. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitfinex2.py +0 -0
  78. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitflyer.py +0 -0
  79. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitget.py +0 -0
  80. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bithumb.py +0 -0
  81. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitmart.py +0 -0
  82. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitmex.py +0 -0
  83. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitopro.py +0 -0
  84. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitpanda.py +0 -0
  85. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitrue.py +0 -0
  86. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitso.py +0 -0
  87. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitstamp.py +0 -0
  88. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitteam.py +0 -0
  89. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bitvavo.py +0 -0
  90. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bl3p.py +0 -0
  91. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/blockchaincom.py +0 -0
  92. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/blofin.py +0 -0
  93. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/btcalpha.py +0 -0
  94. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/btcbox.py +0 -0
  95. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/btcmarkets.py +0 -0
  96. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/btcturk.py +0 -0
  97. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/bybit.py +0 -0
  98. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/cex.py +0 -0
  99. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinbase.py +0 -0
  100. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinbaseinternational.py +0 -0
  101. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinbasepro.py +0 -0
  102. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coincheck.py +0 -0
  103. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinex.py +0 -0
  104. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinlist.py +0 -0
  105. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinmate.py +0 -0
  106. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinmetro.py +0 -0
  107. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinone.py +0 -0
  108. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinsph.py +0 -0
  109. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/coinspot.py +0 -0
  110. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/cryptocom.py +0 -0
  111. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/currencycom.py +0 -0
  112. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/delta.py +0 -0
  113. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/deribit.py +0 -0
  114. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/digifinex.py +0 -0
  115. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/exmo.py +0 -0
  116. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/fmfwio.py +0 -0
  117. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/gemini.py +0 -0
  118. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/hitbtc.py +0 -0
  119. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/hitbtc3.py +0 -0
  120. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/hollaex.py +0 -0
  121. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/htx.py +0 -0
  122. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/huobi.py +0 -0
  123. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/huobijp.py +0 -0
  124. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/hyperliquid.py +0 -0
  125. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/idex.py +0 -0
  126. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/independentreserve.py +0 -0
  127. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/indodax.py +0 -0
  128. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/kraken.py +0 -0
  129. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/krakenfutures.py +0 -0
  130. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/kucoin.py +0 -0
  131. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/kucoinfutures.py +0 -0
  132. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/kuna.py +0 -0
  133. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/latoken.py +0 -0
  134. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/lbank.py +0 -0
  135. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/luno.py +0 -0
  136. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/lykke.py +0 -0
  137. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/mercado.py +0 -0
  138. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/mexc.py +0 -0
  139. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/ndax.py +0 -0
  140. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/novadax.py +0 -0
  141. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/oceanex.py +0 -0
  142. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/okcoin.py +0 -0
  143. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/okx.py +0 -0
  144. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/onetrading.py +0 -0
  145. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/p2b.py +0 -0
  146. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/paymium.py +0 -0
  147. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/phemex.py +0 -0
  148. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/poloniex.py +0 -0
  149. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/poloniexfutures.py +0 -0
  150. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/probit.py +0 -0
  151. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/timex.py +0 -0
  152. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/tokocrypto.py +0 -0
  153. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/tradeogre.py +0 -0
  154. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/wavesexchange.py +0 -0
  155. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/wazirx.py +0 -0
  156. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/whitebit.py +0 -0
  157. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/woo.py +0 -0
  158. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/yobit.py +0 -0
  159. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/zaif.py +0 -0
  160. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/abstract/zonda.py +0 -0
  161. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/ace.py +0 -0
  162. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/alpaca.py +0 -0
  163. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/ascendex.py +0 -0
  164. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/ace.py +0 -0
  165. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/alpaca.py +0 -0
  166. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/ascendex.py +0 -0
  167. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/__init__.py +0 -0
  168. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/throttler.py +0 -0
  169. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/__init__.py +0 -0
  170. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  171. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/cache.py +0 -0
  172. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/client.py +0 -0
  173. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/fast_client.py +0 -0
  174. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/future.py +0 -0
  175. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/order_book.py +0 -0
  176. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  177. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bequant.py +0 -0
  178. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bigone.py +0 -0
  179. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/binancecoinm.py +0 -0
  180. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/binanceus.py +0 -0
  181. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/binanceusdm.py +0 -0
  182. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bit2c.py +0 -0
  183. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitbank.py +0 -0
  184. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitbay.py +0 -0
  185. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitbns.py +0 -0
  186. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitcoincom.py +0 -0
  187. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitfinex.py +0 -0
  188. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitfinex2.py +0 -0
  189. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitflyer.py +0 -0
  190. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitget.py +0 -0
  191. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bithumb.py +0 -0
  192. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitmart.py +0 -0
  193. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitmex.py +0 -0
  194. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitopro.py +0 -0
  195. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitpanda.py +0 -0
  196. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitrue.py +0 -0
  197. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitso.py +0 -0
  198. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitteam.py +0 -0
  199. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bitvavo.py +0 -0
  200. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/bl3p.py +0 -0
  201. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/blockchaincom.py +0 -0
  202. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/blofin.py +0 -0
  203. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/btcalpha.py +0 -0
  204. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/btcbox.py +0 -0
  205. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/btcmarkets.py +0 -0
  206. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/btcturk.py +0 -0
  207. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/cex.py +0 -0
  208. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinbase.py +0 -0
  209. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinbasepro.py +0 -0
  210. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coincheck.py +0 -0
  211. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinex.py +0 -0
  212. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinlist.py +0 -0
  213. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinmate.py +0 -0
  214. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinmetro.py +0 -0
  215. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinone.py +0 -0
  216. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinsph.py +0 -0
  217. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/coinspot.py +0 -0
  218. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/cryptocom.py +0 -0
  219. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/currencycom.py +0 -0
  220. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/delta.py +0 -0
  221. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/digifinex.py +0 -0
  222. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/exmo.py +0 -0
  223. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/flowbtc.py +0 -0
  224. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/fmfwio.py +0 -0
  225. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/gateio.py +0 -0
  226. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/gemini.py +0 -0
  227. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/hitbtc.py +0 -0
  228. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/hitbtc3.py +0 -0
  229. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/hollaex.py +0 -0
  230. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/htx.py +0 -0
  231. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/huobi.py +0 -0
  232. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/huobijp.py +0 -0
  233. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/idex.py +0 -0
  234. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/independentreserve.py +0 -0
  235. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/indodax.py +0 -0
  236. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/kraken.py +0 -0
  237. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/krakenfutures.py +0 -0
  238. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/kucoin.py +0 -0
  239. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/kucoinfutures.py +0 -0
  240. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/kuna.py +0 -0
  241. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/latoken.py +0 -0
  242. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/lbank.py +0 -0
  243. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/luno.py +0 -0
  244. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/lykke.py +0 -0
  245. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/mercado.py +0 -0
  246. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/ndax.py +0 -0
  247. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/novadax.py +0 -0
  248. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/oceanex.py +0 -0
  249. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/okcoin.py +0 -0
  250. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/okx.py +0 -0
  251. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/onetrading.py +0 -0
  252. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/p2b.py +0 -0
  253. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/paymium.py +0 -0
  254. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/phemex.py +0 -0
  255. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/poloniex.py +0 -0
  256. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/poloniexfutures.py +0 -0
  257. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/probit.py +0 -0
  258. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/timex.py +0 -0
  259. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/tokocrypto.py +0 -0
  260. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/tradeogre.py +0 -0
  261. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/wavesexchange.py +0 -0
  262. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/wazirx.py +0 -0
  263. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/whitebit.py +0 -0
  264. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/woo.py +0 -0
  265. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/yobit.py +0 -0
  266. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/zaif.py +0 -0
  267. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/async_support/zonda.py +0 -0
  268. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/__init__.py +0 -0
  269. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/decimal_to_precision.py +0 -0
  270. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/errors.py +0 -0
  271. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/base/precise.py +0 -0
  272. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bequant.py +0 -0
  273. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bigone.py +0 -0
  274. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/binancecoinm.py +0 -0
  275. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/binanceus.py +0 -0
  276. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/binanceusdm.py +0 -0
  277. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bit2c.py +0 -0
  278. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitbank.py +0 -0
  279. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitbay.py +0 -0
  280. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitbns.py +0 -0
  281. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitcoincom.py +0 -0
  282. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitfinex.py +0 -0
  283. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitfinex2.py +0 -0
  284. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitflyer.py +0 -0
  285. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitget.py +0 -0
  286. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bithumb.py +0 -0
  287. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitmart.py +0 -0
  288. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitmex.py +0 -0
  289. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitopro.py +0 -0
  290. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitpanda.py +0 -0
  291. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitrue.py +0 -0
  292. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitso.py +0 -0
  293. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitteam.py +0 -0
  294. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bitvavo.py +0 -0
  295. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/bl3p.py +0 -0
  296. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/blockchaincom.py +0 -0
  297. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/blofin.py +0 -0
  298. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/btcalpha.py +0 -0
  299. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/btcbox.py +0 -0
  300. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/btcmarkets.py +0 -0
  301. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/btcturk.py +0 -0
  302. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/cex.py +0 -0
  303. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinbase.py +0 -0
  304. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinbasepro.py +0 -0
  305. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coincheck.py +0 -0
  306. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinex.py +0 -0
  307. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinlist.py +0 -0
  308. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinmate.py +0 -0
  309. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinmetro.py +0 -0
  310. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinone.py +0 -0
  311. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinsph.py +0 -0
  312. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/coinspot.py +0 -0
  313. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/cryptocom.py +0 -0
  314. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/currencycom.py +0 -0
  315. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/delta.py +0 -0
  316. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/digifinex.py +0 -0
  317. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/exmo.py +0 -0
  318. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/flowbtc.py +0 -0
  319. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/fmfwio.py +0 -0
  320. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/gateio.py +0 -0
  321. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/gemini.py +0 -0
  322. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/hitbtc.py +0 -0
  323. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/hitbtc3.py +0 -0
  324. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/hollaex.py +0 -0
  325. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/htx.py +0 -0
  326. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/huobi.py +0 -0
  327. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/huobijp.py +0 -0
  328. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/idex.py +0 -0
  329. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/independentreserve.py +0 -0
  330. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/indodax.py +0 -0
  331. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/kraken.py +0 -0
  332. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/krakenfutures.py +0 -0
  333. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/kucoin.py +0 -0
  334. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/kucoinfutures.py +0 -0
  335. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/kuna.py +0 -0
  336. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/latoken.py +0 -0
  337. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/lbank.py +0 -0
  338. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/luno.py +0 -0
  339. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/lykke.py +0 -0
  340. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/mercado.py +0 -0
  341. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/ndax.py +0 -0
  342. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/novadax.py +0 -0
  343. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/oceanex.py +0 -0
  344. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/okcoin.py +0 -0
  345. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/okx.py +0 -0
  346. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/onetrading.py +0 -0
  347. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/p2b.py +0 -0
  348. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/paymium.py +0 -0
  349. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/phemex.py +0 -0
  350. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/poloniex.py +0 -0
  351. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/poloniexfutures.py +0 -0
  352. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/ascendex.py +0 -0
  353. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bequant.py +0 -0
  354. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/binancecoinm.py +0 -0
  355. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/binanceus.py +0 -0
  356. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/binanceusdm.py +0 -0
  357. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bingx.py +0 -0
  358. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitcoincom.py +0 -0
  359. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitfinex.py +0 -0
  360. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitpanda.py +0 -0
  361. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitrue.py +0 -0
  362. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitstamp.py +0 -0
  363. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/bitvavo.py +0 -0
  364. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coinbase.py +0 -0
  365. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coinbaseinternational.py +0 -0
  366. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coinbasepro.py +0 -0
  367. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coincheck.py +0 -0
  368. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coinex.py +0 -0
  369. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/coinone.py +0 -0
  370. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/currencycom.py +0 -0
  371. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/deribit.py +0 -0
  372. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/exmo.py +0 -0
  373. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/gate.py +0 -0
  374. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/gateio.py +0 -0
  375. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/hollaex.py +0 -0
  376. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/huobi.py +0 -0
  377. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/huobijp.py +0 -0
  378. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/hyperliquid.py +0 -0
  379. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/idex.py +0 -0
  380. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/independentreserve.py +0 -0
  381. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/kraken.py +0 -0
  382. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/krakenfutures.py +0 -0
  383. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/kucoin.py +0 -0
  384. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/kucoinfutures.py +0 -0
  385. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/lbank.py +0 -0
  386. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/luno.py +0 -0
  387. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/mexc.py +0 -0
  388. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/ndax.py +0 -0
  389. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/okx.py +0 -0
  390. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/p2b.py +0 -0
  391. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/poloniex.py +0 -0
  392. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/poloniexfutures.py +0 -0
  393. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/probit.py +0 -0
  394. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/upbit.py +0 -0
  395. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/wazirx.py +0 -0
  396. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/pro/whitebit.py +0 -0
  397. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/probit.py +0 -0
  398. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/__init__.py +0 -0
  399. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  400. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  401. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  402. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  403. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  404. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  405. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  406. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  407. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  408. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  409. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  410. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  411. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  412. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  413. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  414. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  415. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  416. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  417. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  418. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  419. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  420. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  421. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  422. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  423. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  424. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  425. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  426. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  427. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  428. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  429. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  430. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  431. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  432. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  433. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  434. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  435. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  436. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  437. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  438. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  439. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  440. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  441. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  442. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  443. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  444. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  445. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  446. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  447. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  448. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  449. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  450. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  451. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  452. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  453. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  454. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  455. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  456. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  457. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  458. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  459. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  460. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  461. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  462. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  463. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  464. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  465. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  466. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  467. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  468. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  469. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  470. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  471. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  472. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  473. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  474. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  475. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  476. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  477. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  478. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  479. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  480. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  481. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  482. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  483. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  484. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  485. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/_version.py +0 -0
  486. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  487. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  488. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  489. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  490. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  491. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  492. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  493. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  494. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/utils.py +0 -0
  495. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/__init__.py +0 -0
  496. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/__init__.py +0 -0
  497. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_account.py +0 -0
  498. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_balance.py +0 -0
  499. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_borrow_interest.py +0 -0
  500. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_borrow_rate.py +0 -0
  501. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_calculate_fee.py +0 -0
  502. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_crypto.py +0 -0
  503. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_currency.py +0 -0
  504. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_datetime.py +0 -0
  505. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  506. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_deep_extend.py +0 -0
  507. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  508. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  509. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_funding_rate_history.py +0 -0
  510. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_last_price.py +0 -0
  511. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_ledger_entry.py +0 -0
  512. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_ledger_item.py +0 -0
  513. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_leverage_tier.py +0 -0
  514. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_margin_mode.py +0 -0
  515. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_margin_modification.py +0 -0
  516. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_market.py +0 -0
  517. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_number.py +0 -0
  518. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_open_interest.py +0 -0
  519. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_order.py +0 -0
  520. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_order_book.py +0 -0
  521. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_position.py +0 -0
  522. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_status.py +0 -0
  523. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_throttle.py +0 -0
  524. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_trade.py +0 -0
  525. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_trading_fee.py +0 -0
  526. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/test/base/test_transaction.py +0 -0
  527. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/timex.py +0 -0
  528. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/tokocrypto.py +0 -0
  529. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/tradeogre.py +0 -0
  530. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/wavesexchange.py +0 -0
  531. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/wazirx.py +0 -0
  532. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/whitebit.py +0 -0
  533. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/woo.py +0 -0
  534. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/yobit.py +0 -0
  535. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/zaif.py +0 -0
  536. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt/zonda.py +0 -0
  537. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt.egg-info/SOURCES.txt +0 -0
  538. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt.egg-info/dependency_links.txt +0 -0
  539. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt.egg-info/requires.txt +0 -0
  540. {ccxt-4.2.78 → ccxt-4.2.80}/ccxt.egg-info/top_level.txt +0 -0
  541. {ccxt-4.2.78 → ccxt-4.2.80}/setup.cfg +0 -0
  542. {ccxt-4.2.78 → ccxt-4.2.80}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.78
3
+ Version: 4.2.80
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -55,7 +55,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
55
55
  | [![bitmart](https://user-images.githubusercontent.com/1294454/129991357-8f47464b-d0f4-41d6-8a82-34122f0d1398.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developer-pro.bitmart.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with BitMart using CCXT's referral link for a 30% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d30%25&color=orange)](http://www.bitmart.com/?r=rQCFLh) |
56
56
  | [![bitmex](https://github.com/ccxt/ccxt/assets/43336371/cea9cfe5-c57e-4b84-b2ac-77b960b04445)](https://www.bitmex.com/app/register/NZTR1q) | bitmex | [BitMEX](https://www.bitmex.com/app/register/NZTR1q) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://www.bitmex.com/app/apiOverview) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with BitMEX using CCXT's referral link for a 10% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d10%25&color=orange)](https://www.bitmex.com/app/register/NZTR1q) |
57
57
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
58
- | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
58
+ | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbase.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
59
59
  | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://viabtc.github.io/coinex_api_en_doc) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
60
60
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Crypto.com using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://crypto.com/exch/kdacthrnxt) |
61
61
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/signup/2436035) |
@@ -108,7 +108,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
108
108
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
109
109
  | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://cex.io/cex-api) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
110
110
  | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developers.coinbase.com/api/v2) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
111
- | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbaseinternational.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
111
+ | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbase.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
112
112
  | [![coinbasepro](https://user-images.githubusercontent.com/1294454/41764625-63b7ffde-760a-11e8-996d-a6328fa9347a.jpg)](https://pro.coinbase.com/) | coinbasepro | [Coinbase Pro](https://pro.coinbase.com/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.pro.coinbase.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
113
113
  | [![coincheck](https://user-images.githubusercontent.com/51840849/87182088-1d6d6380-c2ec-11ea-9c64-8ab9f9b289f5.jpg)](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coincheck.com/documents/exchange/api) | | |
114
114
  | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://viabtc.github.io/coinex_api_en_doc) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -226,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
226
226
 
227
227
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
228
228
 
229
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.78/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.2.78/dist/ccxt.browser.js
229
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.80/dist/ccxt.browser.js
230
+ * unpkg: https://unpkg.com/ccxt@4.2.80/dist/ccxt.browser.js
231
231
 
232
232
  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.
233
233
 
234
234
  ```HTML
235
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.78/dist/ccxt.browser.js"></script>
235
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.80/dist/ccxt.browser.js"></script>
236
236
  ```
237
237
 
238
238
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.78'
25
+ __version__ = '4.2.80'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -32,6 +32,7 @@ class ImplicitAPI:
32
32
  swap_v1_private_get_trade_batchcancelreplace = swapV1PrivateGetTradeBatchCancelReplace = Entry('trade/batchCancelReplace', ['swap', 'v1', 'private'], 'GET', {'cost': 1})
33
33
  swap_v1_private_post_trade_cancelreplace = swapV1PrivatePostTradeCancelReplace = Entry('trade/cancelReplace', ['swap', 'v1', 'private'], 'POST', {'cost': 1})
34
34
  swap_v1_private_post_positionside_dual = swapV1PrivatePostPositionSideDual = Entry('positionSide/dual', ['swap', 'v1', 'private'], 'POST', {'cost': 1})
35
+ swap_v1_private_post_trade_closeposition = swapV1PrivatePostTradeClosePosition = Entry('trade/closePosition', ['swap', 'v1', 'private'], 'POST', {'cost': 1})
35
36
  swap_v2_public_get_server_time = swapV2PublicGetServerTime = Entry('server/time', ['swap', 'v2', 'public'], 'GET', {'cost': 3})
36
37
  swap_v2_public_get_quote_contracts = swapV2PublicGetQuoteContracts = Entry('quote/contracts', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
37
38
  swap_v2_public_get_quote_price = swapV2PublicGetQuotePrice = Entry('quote/price', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
@@ -91,6 +91,7 @@ class ImplicitAPI:
91
91
  private_unified_get_loan_records = privateUnifiedGetLoanRecords = Entry('loan_records', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
92
92
  private_unified_get_interest_records = privateUnifiedGetInterestRecords = Entry('interest_records', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
93
93
  private_unified_get_estimate_rate = privateUnifiedGetEstimateRate = Entry('estimate_rate', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
94
+ private_unified_get_currency_discount_tiers = privateUnifiedGetCurrencyDiscountTiers = Entry('currency_discount_tiers', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
94
95
  private_unified_post_account_mode = privateUnifiedPostAccountMode = Entry('account_mode', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
95
96
  private_unified_post_loans = privateUnifiedPostLoans = Entry('loans', ['private', 'unified'], 'POST', {'cost': 13.333333333333334})
96
97
  private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
@@ -91,6 +91,7 @@ class ImplicitAPI:
91
91
  private_unified_get_loan_records = privateUnifiedGetLoanRecords = Entry('loan_records', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
92
92
  private_unified_get_interest_records = privateUnifiedGetInterestRecords = Entry('interest_records', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
93
93
  private_unified_get_estimate_rate = privateUnifiedGetEstimateRate = Entry('estimate_rate', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
94
+ private_unified_get_currency_discount_tiers = privateUnifiedGetCurrencyDiscountTiers = Entry('currency_discount_tiers', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
94
95
  private_unified_post_account_mode = privateUnifiedPostAccountMode = Entry('account_mode', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
95
96
  private_unified_post_loans = privateUnifiedPostLoans = Entry('loans', ['private', 'unified'], 'POST', {'cost': 13.333333333333334})
96
97
  private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
@@ -9,6 +9,7 @@ class ImplicitAPI:
9
9
  public_get_candles_minutes_1 = publicGetCandlesMinutes1 = Entry('candles/minutes/1', 'public', 'GET', {})
10
10
  public_get_candles_minutes_3 = publicGetCandlesMinutes3 = Entry('candles/minutes/3', 'public', 'GET', {})
11
11
  public_get_candles_minutes_5 = publicGetCandlesMinutes5 = Entry('candles/minutes/5', 'public', 'GET', {})
12
+ public_get_candles_minutes_10 = publicGetCandlesMinutes10 = Entry('candles/minutes/10', 'public', 'GET', {})
12
13
  public_get_candles_minutes_15 = publicGetCandlesMinutes15 = Entry('candles/minutes/15', 'public', 'GET', {})
13
14
  public_get_candles_minutes_30 = publicGetCandlesMinutes30 = Entry('candles/minutes/30', 'public', 'GET', {})
14
15
  public_get_candles_minutes_60 = publicGetCandlesMinutes60 = Entry('candles/minutes/60', 'public', 'GET', {})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.78'
7
+ __version__ = '4.2.80'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.78'
5
+ __version__ = '4.2.80'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -982,6 +982,9 @@ class Exchange(BaseExchange):
982
982
  async def fetch_order_books(self, symbols: List[str] = None, limit: Int = None, params={}):
983
983
  raise NotSupported(self.id + ' fetchOrderBooks() is not supported yet')
984
984
 
985
+ async def watch_bids_asks(self, symbols: List[str] = None, params={}):
986
+ raise NotSupported(self.id + ' watchBidsAsks() is not supported yet')
987
+
985
988
  async def watch_tickers(self, symbols: List[str] = None, params={}):
986
989
  raise NotSupported(self.id + ' watchTickers() is not supported yet')
987
990
 
@@ -1284,6 +1287,12 @@ class Exchange(BaseExchange):
1284
1287
  async def fetch_greeks(self, symbol: str, params={}):
1285
1288
  raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
1286
1289
 
1290
+ async def fetch_option_chain(self, code: str, params={}):
1291
+ raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
1292
+
1293
+ async def fetch_option(self, symbol: str, params={}):
1294
+ raise NotSupported(self.id + ' fetchOption() is not supported yet')
1295
+
1287
1296
  async def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1288
1297
  """
1289
1298
  fetch history of deposits and withdrawals
@@ -34,7 +34,7 @@ def iso8601(timestamp=None):
34
34
  if int(timestamp) < 0:
35
35
  return None
36
36
  try:
37
- utc = datetime.datetime.utcfromtimestamp(timestamp // 1000)
37
+ utc = datetime.datetime.fromtimestamp(timestamp // 1000, datetime.timezone.utc)
38
38
  return utc.strftime('%Y-%m-%dT%H:%M:%S.%f')[:-6] + "{:03d}".format(int(timestamp) % 1000) + 'Z'
39
39
  except (TypeError, OverflowError, OSError):
40
40
  return None
@@ -2423,13 +2423,13 @@ class binance(Exchange, ImplicitAPI):
2423
2423
  },
2424
2424
  })
2425
2425
 
2426
- def is_inverse(self, type, subType=None) -> bool:
2426
+ def is_inverse(self, type: str, subType: Str = None) -> bool:
2427
2427
  if subType is None:
2428
- return type == 'delivery'
2428
+ return(type == 'delivery')
2429
2429
  else:
2430
2430
  return subType == 'inverse'
2431
2431
 
2432
- def is_linear(self, type, subType=None) -> bool:
2432
+ def is_linear(self, type: str, subType: Str = None) -> bool:
2433
2433
  if subType is None:
2434
2434
  return(type == 'future') or (type == 'swap')
2435
2435
  else:
@@ -196,6 +196,7 @@ class bingx(Exchange, ImplicitAPI):
196
196
  'post': {
197
197
  'trade/cancelReplace': 1,
198
198
  'positionSide/dual': 1,
199
+ 'trade/closePosition': 1,
199
200
  },
200
201
  },
201
202
  },
@@ -2032,6 +2033,8 @@ class bingx(Exchange, ImplicitAPI):
2032
2033
  'SELL': 'sell',
2033
2034
  'SHORT': 'sell',
2034
2035
  'LONG': 'buy',
2036
+ 'ask': 'sell',
2037
+ 'bid': 'buy',
2035
2038
  }
2036
2039
  return self.safe_string(sides, side, side)
2037
2040
 
@@ -3656,14 +3659,43 @@ class bingx(Exchange, ImplicitAPI):
3656
3659
  :param str symbol: Unified CCXT market symbol
3657
3660
  :param str [side]: not used by bingx
3658
3661
  :param dict [params]: extra parameters specific to the bingx api endpoint
3662
+ :param str|None [params.positionId]: it is recommended to hasattr(self, fill) parameter when closing a position
3659
3663
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3660
3664
  """
3661
3665
  await self.load_markets()
3662
- market = self.market(symbol)
3663
- request: dict = {
3664
- 'symbol': market['id'],
3665
- }
3666
- response = await self.swapV2PrivatePostTradeCloseAllPositions(self.extend(request, params))
3666
+ positionId = self.safe_string(params, 'positionId')
3667
+ params = self.omit(params, 'positionId')
3668
+ response = None
3669
+ if positionId is not None:
3670
+ request: dict = {
3671
+ 'positionId': positionId,
3672
+ }
3673
+ response = await self.swapV1PrivatePostTradeClosePosition(self.extend(request, params))
3674
+ else:
3675
+ market = self.market(symbol)
3676
+ request: dict = {
3677
+ 'symbol': market['id'],
3678
+ }
3679
+ response = await self.swapV2PrivatePostTradeCloseAllPositions(self.extend(request, params))
3680
+ #
3681
+ # swapV1PrivatePostTradeClosePosition
3682
+ #
3683
+ # {
3684
+ # "code": 0,
3685
+ # "msg": "",
3686
+ # "timestamp": 1710992264190,
3687
+ # "data": {
3688
+ # "orderId": 1770656007907930112,
3689
+ # "positionId": "1751667128353910784",
3690
+ # "symbol": "LTC-USDT",
3691
+ # "side": "Ask",
3692
+ # "type": "MARKET",
3693
+ # "positionSide": "Long",
3694
+ # "origQty": "0.2"
3695
+ # }
3696
+ # }
3697
+ #
3698
+ # swapV2PrivatePostTradeCloseAllPositions
3667
3699
  #
3668
3700
  # {
3669
3701
  # "code": 0,
@@ -1082,16 +1082,17 @@ class bitstamp(Exchange, ImplicitAPI):
1082
1082
  'timestamp': None,
1083
1083
  'datetime': None,
1084
1084
  }
1085
- codes = list(self.currencies.keys())
1086
- for i in range(0, len(codes)):
1087
- code = codes[i]
1088
- currency = self.currency(code)
1089
- currencyId = currency['id']
1085
+ if response is None:
1086
+ response = []
1087
+ for i in range(0, len(response)):
1088
+ currencyBalance = response[i]
1089
+ currencyId = self.safe_string(currencyBalance, 'currency')
1090
+ currencyCode = self.safe_currency_code(currencyId)
1090
1091
  account = self.account()
1091
- account['free'] = self.safe_string(response, currencyId + '_available')
1092
- account['used'] = self.safe_string(response, currencyId + '_reserved')
1093
- account['total'] = self.safe_string(response, currencyId + '_balance')
1094
- result[code] = account
1092
+ account['free'] = self.safe_string(currencyBalance, 'available')
1093
+ account['used'] = self.safe_string(currencyBalance, 'reserved')
1094
+ account['total'] = self.safe_string(currencyBalance, 'total')
1095
+ result[currencyCode] = account
1095
1096
  return self.safe_balance(result)
1096
1097
 
1097
1098
  async def fetch_balance(self, params={}) -> Balances:
@@ -1102,24 +1103,17 @@ class bitstamp(Exchange, ImplicitAPI):
1102
1103
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
1103
1104
  """
1104
1105
  await self.load_markets()
1105
- response = await self.privatePostBalance(params)
1106
+ response = await self.privatePostAccountBalances(params)
1106
1107
  #
1107
- # {
1108
- # "aave_available": "0.00000000",
1109
- # "aave_balance": "0.00000000",
1110
- # "aave_reserved": "0.00000000",
1111
- # "aave_withdrawal_fee": "0.07000000",
1112
- # "aavebtc_fee": "0.000",
1113
- # "aaveeur_fee": "0.000",
1114
- # "aaveusd_fee": "0.000",
1115
- # "bat_available": "0.00000000",
1116
- # "bat_balance": "0.00000000",
1117
- # "bat_reserved": "0.00000000",
1118
- # "bat_withdrawal_fee": "5.00000000",
1119
- # "batbtc_fee": "0.000",
1120
- # "bateur_fee": "0.000",
1121
- # "batusd_fee": "0.000",
1122
- # }
1108
+ # [
1109
+ # {
1110
+ # "currency": "usdt",
1111
+ # "total": "7.00000",
1112
+ # "available": "7.00000",
1113
+ # "reserved": "0.00000"
1114
+ # },
1115
+ # ...
1116
+ # ]
1123
1117
  #
1124
1118
  return self.parse_balance(response)
1125
1119
 
@@ -85,6 +85,7 @@ class bybit(Exchange, ImplicitAPI):
85
85
  'fetchDeposits': True,
86
86
  'fetchDepositWithdrawFee': 'emulated',
87
87
  'fetchDepositWithdrawFees': True,
88
+ 'fetchFundingHistory': True,
88
89
  'fetchFundingRate': True, # emulated in exchange
89
90
  'fetchFundingRateHistory': True,
90
91
  'fetchFundingRates': True,
@@ -7540,6 +7541,97 @@ class bybit(Exchange, ImplicitAPI):
7540
7541
  })
7541
7542
  return tiers
7542
7543
 
7544
+ async def fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
7545
+ """
7546
+ fetch the history of funding payments paid and received on self account
7547
+ :see: https://bybit-exchange.github.io/docs/api-explorer/v5/position/execution
7548
+ :param str [symbol]: unified market symbol
7549
+ :param int [since]: the earliest time in ms to fetch funding history for
7550
+ :param int [limit]: the maximum number of funding history structures to retrieve
7551
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7552
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
7553
+ :returns dict: a `funding history structure <https://docs.ccxt.com/#/?id=funding-history-structure>`
7554
+ """
7555
+ await self.load_markets()
7556
+ paginate = False
7557
+ paginate, params = self.handle_option_and_params(params, 'fetchFundingHistory', 'paginate')
7558
+ if paginate:
7559
+ return await self.fetch_paginated_call_cursor('fetchFundingHistory', symbol, since, limit, params, 'nextPageCursor', 'cursor', None, 100)
7560
+ request = {
7561
+ 'execType': 'Funding',
7562
+ }
7563
+ market: Market = None
7564
+ if symbol is not None:
7565
+ market = self.market(symbol)
7566
+ request['symbol'] = market['id']
7567
+ type = None
7568
+ type, params = self.get_bybit_type('fetchFundingHistory', market, params)
7569
+ request['category'] = type
7570
+ if symbol is not None:
7571
+ request['symbol'] = market['id']
7572
+ if since is not None:
7573
+ request['startTime'] = since
7574
+ if limit is not None:
7575
+ request['size'] = limit
7576
+ else:
7577
+ request['size'] = 100
7578
+ request, params = self.handle_until_option('endTime', request, params)
7579
+ response = await self.privateGetV5ExecutionList(self.extend(request, params))
7580
+ fundings = self.add_pagination_cursor_to_result(response)
7581
+ return self.parse_incomes(fundings, market, since, limit)
7582
+
7583
+ def parse_income(self, income, market: Market = None):
7584
+ #
7585
+ # {
7586
+ # "symbol": "XMRUSDT",
7587
+ # "orderType": "UNKNOWN",
7588
+ # "underlyingPrice": "",
7589
+ # "orderLinkId": "",
7590
+ # "orderId": "a11e5fe2-1dbf-4bab-a9b2-af80a14efc5d",
7591
+ # "stopOrderType": "UNKNOWN",
7592
+ # "execTime": "1710950400000",
7593
+ # "feeCurrency": "",
7594
+ # "createType": "",
7595
+ # "feeRate": "-0.000761",
7596
+ # "tradeIv": "",
7597
+ # "blockTradeId": "",
7598
+ # "markPrice": "136.79",
7599
+ # "execPrice": "137.11",
7600
+ # "markIv": "",
7601
+ # "orderQty": "0",
7602
+ # "orderPrice": "0",
7603
+ # "execValue": "134.3678",
7604
+ # "closedSize": "0",
7605
+ # "execType": "Funding",
7606
+ # "seq": "28097658790",
7607
+ # "side": "Sell",
7608
+ # "indexPrice": "",
7609
+ # "leavesQty": "0",
7610
+ # "isMaker": False,
7611
+ # "execFee": "-0.10232512",
7612
+ # "execId": "8d1ef156-4ec6-4445-9a6c-1c0c24dbd046",
7613
+ # "marketUnit": "",
7614
+ # "execQty": "0.98",
7615
+ # "nextPageCursor": "5774437%3A0%2C5771289%3A0"
7616
+ # }
7617
+ #
7618
+ marketId = self.safe_string(income, 'symbol')
7619
+ market = self.safe_market(marketId, market, None, 'contract')
7620
+ code = 'USDT'
7621
+ if market['inverse']:
7622
+ code = market['quote']
7623
+ timestamp = self.safe_integer(income, 'execTime')
7624
+ return {
7625
+ 'info': income,
7626
+ 'symbol': self.safe_symbol(marketId, market, '-', 'swap'),
7627
+ 'code': code,
7628
+ 'timestamp': timestamp,
7629
+ 'datetime': self.iso8601(timestamp),
7630
+ 'id': self.safe_string(income, 'execId'),
7631
+ 'amount': self.safe_number(income, 'execQty'),
7632
+ 'rate': self.safe_number(income, 'feeRate'),
7633
+ }
7634
+
7543
7635
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
7544
7636
  url = self.implode_hostname(self.urls['api'][api]) + '/' + path
7545
7637
  if api == 'public':
@@ -126,10 +126,10 @@ class coinbaseinternational(Exchange, ImplicitAPI):
126
126
  },
127
127
  'www': 'https://international.coinbase.com',
128
128
  'doc': [
129
- 'https://docs.cloud.coinbaseinternational.com/intx/docs',
129
+ 'https://docs.cloud.coinbase.com/intx/docs',
130
130
  ],
131
131
  'fees': [
132
- 'https://help.coinbaseinternational.com/en/international-exchange/trading-deposits-withdrawals/international-exchange-fees',
132
+ 'https://help.coinbase.com/en/international-exchange/trading-deposits-withdrawals/international-exchange-fees',
133
133
  ],
134
134
  'referral': '',
135
135
  },
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.deribit import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -83,6 +83,8 @@ class deribit(Exchange, ImplicitAPI):
83
83
  'fetchMyTrades': True,
84
84
  'fetchOHLCV': True,
85
85
  'fetchOpenOrders': True,
86
+ 'fetchOption': True,
87
+ 'fetchOptionChain': True,
86
88
  'fetchOrder': True,
87
89
  'fetchOrderBook': True,
88
90
  'fetchOrders': False,
@@ -3270,6 +3272,155 @@ class deribit(Exchange, ImplicitAPI):
3270
3272
  'info': greeks,
3271
3273
  }
3272
3274
 
3275
+ async def fetch_option(self, symbol: str, params={}) -> Option:
3276
+ """
3277
+ fetches option data that is commonly found in an option chain
3278
+ :see: https://docs.deribit.com/#public-get_book_summary_by_instrument
3279
+ :param str symbol: unified market symbol
3280
+ :param dict [params]: extra parameters specific to the exchange API endpoint
3281
+ :returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
3282
+ """
3283
+ await self.load_markets()
3284
+ market = self.market(symbol)
3285
+ request = {
3286
+ 'instrument_name': market['id'],
3287
+ }
3288
+ response = await self.publicGetGetBookSummaryByInstrument(self.extend(request, params))
3289
+ #
3290
+ # {
3291
+ # "jsonrpc": "2.0",
3292
+ # "result": [
3293
+ # {
3294
+ # "mid_price": 0.04025,
3295
+ # "volume_usd": 11045.12,
3296
+ # "quote_currency": "BTC",
3297
+ # "estimated_delivery_price": 65444.72,
3298
+ # "creation_timestamp": 1711100949273,
3299
+ # "base_currency": "BTC",
3300
+ # "underlying_index": "BTC-27DEC24",
3301
+ # "underlying_price": 73742.14,
3302
+ # "volume": 4.0,
3303
+ # "interest_rate": 0.0,
3304
+ # "price_change": -6.9767,
3305
+ # "open_interest": 274.2,
3306
+ # "ask_price": 0.042,
3307
+ # "bid_price": 0.0385,
3308
+ # "instrument_name": "BTC-27DEC24-240000-C",
3309
+ # "mark_price": 0.04007735,
3310
+ # "last": 0.04,
3311
+ # "low": 0.04,
3312
+ # "high": 0.043
3313
+ # }
3314
+ # ],
3315
+ # "usIn": 1711100949273223,
3316
+ # "usOut": 1711100949273580,
3317
+ # "usDiff": 357,
3318
+ # "testnet": False
3319
+ # }
3320
+ #
3321
+ result = self.safe_list(response, 'result', [])
3322
+ chain = self.safe_dict(result, 0, {})
3323
+ return self.parse_option(chain, None, market)
3324
+
3325
+ async def fetch_option_chain(self, code: str, params={}) -> OptionChain:
3326
+ """
3327
+ fetches data for an underlying asset that is commonly found in an option chain
3328
+ :see: https://docs.deribit.com/#public-get_book_summary_by_currency
3329
+ :param str currency: base currency to fetch an option chain for
3330
+ :param dict [params]: extra parameters specific to the exchange API endpoint
3331
+ :returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
3332
+ """
3333
+ await self.load_markets()
3334
+ currency = self.currency(code)
3335
+ request = {
3336
+ 'currency': currency['id'],
3337
+ 'kind': 'option',
3338
+ }
3339
+ response = await self.publicGetGetBookSummaryByCurrency(self.extend(request, params))
3340
+ #
3341
+ # {
3342
+ # "jsonrpc": "2.0",
3343
+ # "result": [
3344
+ # {
3345
+ # "mid_price": 0.4075,
3346
+ # "volume_usd": 2836.83,
3347
+ # "quote_currency": "BTC",
3348
+ # "estimated_delivery_price": 65479.26,
3349
+ # "creation_timestamp": 1711101594477,
3350
+ # "base_currency": "BTC",
3351
+ # "underlying_index": "BTC-28JUN24",
3352
+ # "underlying_price": 68827.27,
3353
+ # "volume": 0.1,
3354
+ # "interest_rate": 0.0,
3355
+ # "price_change": 0.0,
3356
+ # "open_interest": 364.1,
3357
+ # "ask_price": 0.411,
3358
+ # "bid_price": 0.404,
3359
+ # "instrument_name": "BTC-28JUN24-42000-C",
3360
+ # "mark_price": 0.40752052,
3361
+ # "last": 0.423,
3362
+ # "low": 0.423,
3363
+ # "high": 0.423
3364
+ # }
3365
+ # ],
3366
+ # "usIn": 1711101594456388,
3367
+ # "usOut": 1711101594484065,
3368
+ # "usDiff": 27677,
3369
+ # "testnet": False
3370
+ # }
3371
+ #
3372
+ result = self.safe_list(response, 'result', [])
3373
+ return self.parse_option_chain(result, 'base_currency', 'instrument_name')
3374
+
3375
+ def parse_option(self, chain, currency: Currency = None, market: Market = None):
3376
+ #
3377
+ # {
3378
+ # "mid_price": 0.04025,
3379
+ # "volume_usd": 11045.12,
3380
+ # "quote_currency": "BTC",
3381
+ # "estimated_delivery_price": 65444.72,
3382
+ # "creation_timestamp": 1711100949273,
3383
+ # "base_currency": "BTC",
3384
+ # "underlying_index": "BTC-27DEC24",
3385
+ # "underlying_price": 73742.14,
3386
+ # "volume": 4.0,
3387
+ # "interest_rate": 0.0,
3388
+ # "price_change": -6.9767,
3389
+ # "open_interest": 274.2,
3390
+ # "ask_price": 0.042,
3391
+ # "bid_price": 0.0385,
3392
+ # "instrument_name": "BTC-27DEC24-240000-C",
3393
+ # "mark_price": 0.04007735,
3394
+ # "last": 0.04,
3395
+ # "low": 0.04,
3396
+ # "high": 0.043
3397
+ # }
3398
+ #
3399
+ marketId = self.safe_string(chain, 'instrument_name')
3400
+ market = self.safe_market(marketId, market)
3401
+ currencyId = self.safe_string(chain, 'base_currency')
3402
+ code = self.safe_currency_code(currencyId, currency)
3403
+ timestamp = self.safe_integer(chain, 'timestamp')
3404
+ return {
3405
+ 'info': chain,
3406
+ 'currency': code['code'],
3407
+ 'symbol': market['symbol'],
3408
+ 'timestamp': timestamp,
3409
+ 'datetime': self.iso8601(timestamp),
3410
+ 'impliedVolatility': None,
3411
+ 'openInterest': self.safe_number(chain, 'open_interest'),
3412
+ 'bidPrice': self.safe_number(chain, 'bid_price'),
3413
+ 'askPrice': self.safe_number(chain, 'ask_price'),
3414
+ 'midPrice': self.safe_number(chain, 'mid_price'),
3415
+ 'markPrice': self.safe_number(chain, 'mark_price'),
3416
+ 'lastPrice': self.safe_number(chain, 'last'),
3417
+ 'underlyingPrice': self.safe_number(chain, 'underlying_price'),
3418
+ 'change': None,
3419
+ 'percentage': self.safe_number(chain, 'price_change'),
3420
+ 'baseVolume': self.safe_number(chain, 'volume'),
3421
+ 'quoteVolume': self.safe_number(chain, 'volume_usd'),
3422
+ }
3423
+
3273
3424
  def nonce(self):
3274
3425
  return self.milliseconds()
3275
3426