ccxt 4.2.80__tar.gz → 4.2.81__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 (542) hide show
  1. {ccxt-4.2.80/ccxt.egg-info → ccxt-4.2.81}/PKG-INFO +4 -4
  2. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/__init__.py +1 -1
  3. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/binance.py +89 -1
  6. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bybit.py +174 -1
  7. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/gate.py +183 -1
  8. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/okx.py +17 -34
  9. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/exchange.py +1 -1
  10. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/binance.py +89 -1
  11. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bybit.py +174 -1
  12. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/gate.py +183 -1
  13. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/okx.py +17 -34
  14. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/__init__.py +1 -1
  15. {ccxt-4.2.80 → ccxt-4.2.81/ccxt.egg-info}/PKG-INFO +4 -4
  16. {ccxt-4.2.80 → ccxt-4.2.81}/package.json +1 -1
  17. {ccxt-4.2.80 → ccxt-4.2.81}/LICENSE.txt +0 -0
  18. {ccxt-4.2.80 → ccxt-4.2.81}/MANIFEST.in +0 -0
  19. {ccxt-4.2.80 → ccxt-4.2.81}/README.rst +0 -0
  20. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/__init__.py +0 -0
  21. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/ace.py +0 -0
  22. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/alpaca.py +0 -0
  23. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/ascendex.py +0 -0
  24. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bequant.py +0 -0
  25. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bigone.py +0 -0
  26. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/binance.py +0 -0
  27. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/binancecoinm.py +0 -0
  28. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/binanceus.py +0 -0
  29. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/binanceusdm.py +0 -0
  30. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bingx.py +0 -0
  31. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bit2c.py +0 -0
  32. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitbank.py +0 -0
  33. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitbay.py +0 -0
  34. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitbns.py +0 -0
  35. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitcoincom.py +0 -0
  36. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitfinex.py +0 -0
  37. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitfinex2.py +0 -0
  38. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitflyer.py +0 -0
  39. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitget.py +0 -0
  40. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bithumb.py +0 -0
  41. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitmart.py +0 -0
  42. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitmex.py +0 -0
  43. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitopro.py +0 -0
  44. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitpanda.py +0 -0
  45. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitrue.py +0 -0
  46. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitso.py +0 -0
  47. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitstamp.py +0 -0
  48. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitteam.py +0 -0
  49. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bitvavo.py +0 -0
  50. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bl3p.py +0 -0
  51. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/blockchaincom.py +0 -0
  52. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/blofin.py +0 -0
  53. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/btcalpha.py +0 -0
  54. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/btcbox.py +0 -0
  55. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/btcmarkets.py +0 -0
  56. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/btcturk.py +0 -0
  57. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/bybit.py +0 -0
  58. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/cex.py +0 -0
  59. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinbase.py +0 -0
  60. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinbaseinternational.py +0 -0
  61. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinbasepro.py +0 -0
  62. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coincheck.py +0 -0
  63. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinex.py +0 -0
  64. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinlist.py +0 -0
  65. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinmate.py +0 -0
  66. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinmetro.py +0 -0
  67. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinone.py +0 -0
  68. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinsph.py +0 -0
  69. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/coinspot.py +0 -0
  70. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/cryptocom.py +0 -0
  71. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/currencycom.py +0 -0
  72. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/delta.py +0 -0
  73. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/deribit.py +0 -0
  74. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/digifinex.py +0 -0
  75. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/exmo.py +0 -0
  76. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/fmfwio.py +0 -0
  77. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/gate.py +0 -0
  78. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/gateio.py +0 -0
  79. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/gemini.py +0 -0
  80. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/hitbtc.py +0 -0
  81. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/hitbtc3.py +0 -0
  82. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/hollaex.py +0 -0
  83. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/htx.py +0 -0
  84. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/huobi.py +0 -0
  85. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/huobijp.py +0 -0
  86. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/hyperliquid.py +0 -0
  87. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/idex.py +0 -0
  88. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/independentreserve.py +0 -0
  89. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/indodax.py +0 -0
  90. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/kraken.py +0 -0
  91. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/krakenfutures.py +0 -0
  92. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/kucoin.py +0 -0
  93. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/kucoinfutures.py +0 -0
  94. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/kuna.py +0 -0
  95. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/latoken.py +0 -0
  96. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/lbank.py +0 -0
  97. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/luno.py +0 -0
  98. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/lykke.py +0 -0
  99. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/mercado.py +0 -0
  100. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/mexc.py +0 -0
  101. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/ndax.py +0 -0
  102. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/novadax.py +0 -0
  103. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/oceanex.py +0 -0
  104. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/okcoin.py +0 -0
  105. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/okx.py +0 -0
  106. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/onetrading.py +0 -0
  107. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/p2b.py +0 -0
  108. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/paymium.py +0 -0
  109. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/phemex.py +0 -0
  110. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/poloniex.py +0 -0
  111. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/poloniexfutures.py +0 -0
  112. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/probit.py +0 -0
  113. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/timex.py +0 -0
  114. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/tokocrypto.py +0 -0
  115. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/tradeogre.py +0 -0
  116. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/upbit.py +0 -0
  117. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/wavesexchange.py +0 -0
  118. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/wazirx.py +0 -0
  119. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/whitebit.py +0 -0
  120. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/woo.py +0 -0
  121. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/yobit.py +0 -0
  122. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/zaif.py +0 -0
  123. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/abstract/zonda.py +0 -0
  124. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/ace.py +0 -0
  125. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/alpaca.py +0 -0
  126. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/ascendex.py +0 -0
  127. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/ace.py +0 -0
  128. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/alpaca.py +0 -0
  129. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/ascendex.py +0 -0
  130. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/__init__.py +0 -0
  131. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/throttler.py +0 -0
  132. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/__init__.py +0 -0
  133. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  134. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/cache.py +0 -0
  135. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/client.py +0 -0
  136. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/fast_client.py +0 -0
  137. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/functions.py +0 -0
  138. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/future.py +0 -0
  139. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/order_book.py +0 -0
  140. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  141. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bequant.py +0 -0
  142. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bigone.py +0 -0
  143. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/binancecoinm.py +0 -0
  144. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/binanceus.py +0 -0
  145. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/binanceusdm.py +0 -0
  146. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bingx.py +0 -0
  147. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bit2c.py +0 -0
  148. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitbank.py +0 -0
  149. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitbay.py +0 -0
  150. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitbns.py +0 -0
  151. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitcoincom.py +0 -0
  152. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitfinex.py +0 -0
  153. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitfinex2.py +0 -0
  154. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitflyer.py +0 -0
  155. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitget.py +0 -0
  156. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bithumb.py +0 -0
  157. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitmart.py +0 -0
  158. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitmex.py +0 -0
  159. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitopro.py +0 -0
  160. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitpanda.py +0 -0
  161. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitrue.py +0 -0
  162. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitso.py +0 -0
  163. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitstamp.py +0 -0
  164. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitteam.py +0 -0
  165. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bitvavo.py +0 -0
  166. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/bl3p.py +0 -0
  167. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/blockchaincom.py +0 -0
  168. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/blofin.py +0 -0
  169. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/btcalpha.py +0 -0
  170. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/btcbox.py +0 -0
  171. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/btcmarkets.py +0 -0
  172. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/btcturk.py +0 -0
  173. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/cex.py +0 -0
  174. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinbase.py +0 -0
  175. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinbaseinternational.py +0 -0
  176. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinbasepro.py +0 -0
  177. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coincheck.py +0 -0
  178. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinex.py +0 -0
  179. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinlist.py +0 -0
  180. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinmate.py +0 -0
  181. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinmetro.py +0 -0
  182. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinone.py +0 -0
  183. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinsph.py +0 -0
  184. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/coinspot.py +0 -0
  185. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/cryptocom.py +0 -0
  186. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/currencycom.py +0 -0
  187. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/delta.py +0 -0
  188. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/deribit.py +0 -0
  189. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/digifinex.py +0 -0
  190. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/exmo.py +0 -0
  191. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/flowbtc.py +0 -0
  192. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/fmfwio.py +0 -0
  193. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/gateio.py +0 -0
  194. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/gemini.py +0 -0
  195. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/hitbtc.py +0 -0
  196. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/hitbtc3.py +0 -0
  197. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/hollaex.py +0 -0
  198. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/htx.py +0 -0
  199. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/huobi.py +0 -0
  200. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/huobijp.py +0 -0
  201. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/hyperliquid.py +0 -0
  202. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/idex.py +0 -0
  203. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/independentreserve.py +0 -0
  204. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/indodax.py +0 -0
  205. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/kraken.py +0 -0
  206. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/krakenfutures.py +0 -0
  207. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/kucoin.py +0 -0
  208. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/kucoinfutures.py +0 -0
  209. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/kuna.py +0 -0
  210. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/latoken.py +0 -0
  211. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/lbank.py +0 -0
  212. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/luno.py +0 -0
  213. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/lykke.py +0 -0
  214. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/mercado.py +0 -0
  215. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/mexc.py +0 -0
  216. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/ndax.py +0 -0
  217. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/novadax.py +0 -0
  218. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/oceanex.py +0 -0
  219. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/okcoin.py +0 -0
  220. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/onetrading.py +0 -0
  221. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/p2b.py +0 -0
  222. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/paymium.py +0 -0
  223. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/phemex.py +0 -0
  224. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/poloniex.py +0 -0
  225. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/poloniexfutures.py +0 -0
  226. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/probit.py +0 -0
  227. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/timex.py +0 -0
  228. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/tokocrypto.py +0 -0
  229. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/tradeogre.py +0 -0
  230. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/upbit.py +0 -0
  231. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/wavesexchange.py +0 -0
  232. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/wazirx.py +0 -0
  233. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/whitebit.py +0 -0
  234. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/woo.py +0 -0
  235. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/yobit.py +0 -0
  236. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/zaif.py +0 -0
  237. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/async_support/zonda.py +0 -0
  238. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/__init__.py +0 -0
  239. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/decimal_to_precision.py +0 -0
  240. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/errors.py +0 -0
  241. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/precise.py +0 -0
  242. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/base/types.py +0 -0
  243. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bequant.py +0 -0
  244. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bigone.py +0 -0
  245. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/binancecoinm.py +0 -0
  246. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/binanceus.py +0 -0
  247. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/binanceusdm.py +0 -0
  248. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bingx.py +0 -0
  249. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bit2c.py +0 -0
  250. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitbank.py +0 -0
  251. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitbay.py +0 -0
  252. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitbns.py +0 -0
  253. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitcoincom.py +0 -0
  254. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitfinex.py +0 -0
  255. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitfinex2.py +0 -0
  256. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitflyer.py +0 -0
  257. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitget.py +0 -0
  258. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bithumb.py +0 -0
  259. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitmart.py +0 -0
  260. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitmex.py +0 -0
  261. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitopro.py +0 -0
  262. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitpanda.py +0 -0
  263. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitrue.py +0 -0
  264. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitso.py +0 -0
  265. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitstamp.py +0 -0
  266. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitteam.py +0 -0
  267. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bitvavo.py +0 -0
  268. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/bl3p.py +0 -0
  269. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/blockchaincom.py +0 -0
  270. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/blofin.py +0 -0
  271. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/btcalpha.py +0 -0
  272. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/btcbox.py +0 -0
  273. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/btcmarkets.py +0 -0
  274. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/btcturk.py +0 -0
  275. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/cex.py +0 -0
  276. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinbase.py +0 -0
  277. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinbaseinternational.py +0 -0
  278. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinbasepro.py +0 -0
  279. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coincheck.py +0 -0
  280. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinex.py +0 -0
  281. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinlist.py +0 -0
  282. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinmate.py +0 -0
  283. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinmetro.py +0 -0
  284. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinone.py +0 -0
  285. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinsph.py +0 -0
  286. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/coinspot.py +0 -0
  287. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/cryptocom.py +0 -0
  288. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/currencycom.py +0 -0
  289. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/delta.py +0 -0
  290. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/deribit.py +0 -0
  291. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/digifinex.py +0 -0
  292. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/exmo.py +0 -0
  293. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/flowbtc.py +0 -0
  294. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/fmfwio.py +0 -0
  295. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/gateio.py +0 -0
  296. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/gemini.py +0 -0
  297. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/hitbtc.py +0 -0
  298. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/hitbtc3.py +0 -0
  299. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/hollaex.py +0 -0
  300. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/htx.py +0 -0
  301. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/huobi.py +0 -0
  302. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/huobijp.py +0 -0
  303. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/hyperliquid.py +0 -0
  304. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/idex.py +0 -0
  305. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/independentreserve.py +0 -0
  306. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/indodax.py +0 -0
  307. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/kraken.py +0 -0
  308. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/krakenfutures.py +0 -0
  309. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/kucoin.py +0 -0
  310. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/kucoinfutures.py +0 -0
  311. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/kuna.py +0 -0
  312. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/latoken.py +0 -0
  313. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/lbank.py +0 -0
  314. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/luno.py +0 -0
  315. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/lykke.py +0 -0
  316. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/mercado.py +0 -0
  317. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/mexc.py +0 -0
  318. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/ndax.py +0 -0
  319. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/novadax.py +0 -0
  320. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/oceanex.py +0 -0
  321. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/okcoin.py +0 -0
  322. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/onetrading.py +0 -0
  323. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/p2b.py +0 -0
  324. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/paymium.py +0 -0
  325. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/phemex.py +0 -0
  326. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/poloniex.py +0 -0
  327. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/poloniexfutures.py +0 -0
  328. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/alpaca.py +0 -0
  329. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/ascendex.py +0 -0
  330. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bequant.py +0 -0
  331. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/binance.py +0 -0
  332. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/binancecoinm.py +0 -0
  333. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/binanceus.py +0 -0
  334. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/binanceusdm.py +0 -0
  335. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bingx.py +0 -0
  336. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitcoincom.py +0 -0
  337. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitfinex.py +0 -0
  338. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitfinex2.py +0 -0
  339. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitget.py +0 -0
  340. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitmart.py +0 -0
  341. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitmex.py +0 -0
  342. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitopro.py +0 -0
  343. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitpanda.py +0 -0
  344. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitrue.py +0 -0
  345. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitstamp.py +0 -0
  346. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bitvavo.py +0 -0
  347. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/blockchaincom.py +0 -0
  348. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/bybit.py +0 -0
  349. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/cex.py +0 -0
  350. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coinbase.py +0 -0
  351. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coinbaseinternational.py +0 -0
  352. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coinbasepro.py +0 -0
  353. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coincheck.py +0 -0
  354. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coinex.py +0 -0
  355. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/coinone.py +0 -0
  356. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/cryptocom.py +0 -0
  357. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/currencycom.py +0 -0
  358. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/deribit.py +0 -0
  359. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/exmo.py +0 -0
  360. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/gate.py +0 -0
  361. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/gateio.py +0 -0
  362. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/gemini.py +0 -0
  363. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/hitbtc.py +0 -0
  364. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/hollaex.py +0 -0
  365. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/htx.py +0 -0
  366. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/huobi.py +0 -0
  367. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/huobijp.py +0 -0
  368. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/hyperliquid.py +0 -0
  369. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/idex.py +0 -0
  370. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/independentreserve.py +0 -0
  371. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/kraken.py +0 -0
  372. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/krakenfutures.py +0 -0
  373. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/kucoin.py +0 -0
  374. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/kucoinfutures.py +0 -0
  375. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/lbank.py +0 -0
  376. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/luno.py +0 -0
  377. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/mexc.py +0 -0
  378. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/ndax.py +0 -0
  379. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/okcoin.py +0 -0
  380. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/okx.py +0 -0
  381. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/onetrading.py +0 -0
  382. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/p2b.py +0 -0
  383. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/phemex.py +0 -0
  384. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/poloniex.py +0 -0
  385. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/poloniexfutures.py +0 -0
  386. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/probit.py +0 -0
  387. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/upbit.py +0 -0
  388. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/wazirx.py +0 -0
  389. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/whitebit.py +0 -0
  390. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/pro/woo.py +0 -0
  391. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/probit.py +0 -0
  392. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/__init__.py +0 -0
  393. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  394. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  395. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  396. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  397. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  398. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  399. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  400. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  401. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  402. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  403. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  404. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  405. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  406. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  407. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  408. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  409. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  410. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  411. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  412. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  413. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  414. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  415. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  416. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  417. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  418. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  419. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  420. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  421. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  422. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  423. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  424. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  425. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  426. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  427. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  428. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  429. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  430. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  431. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  432. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  433. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  434. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  435. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  436. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  437. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  438. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  439. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  440. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  441. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  442. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  443. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  444. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  445. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  446. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  447. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  448. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  449. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  450. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  451. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  452. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  453. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  454. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  455. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  456. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  457. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  458. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  459. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  460. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  461. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  462. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  463. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  464. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  465. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  466. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  467. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  468. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  469. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  470. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  471. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  472. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  473. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  474. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  475. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  476. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  477. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  478. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  479. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/_version.py +0 -0
  480. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  481. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  482. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  483. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  484. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  485. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  486. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  487. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  488. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/static_dependencies/toolz/utils.py +0 -0
  489. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/__init__.py +0 -0
  490. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/__init__.py +0 -0
  491. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_account.py +0 -0
  492. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_balance.py +0 -0
  493. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_borrow_interest.py +0 -0
  494. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_borrow_rate.py +0 -0
  495. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_calculate_fee.py +0 -0
  496. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_crypto.py +0 -0
  497. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_currency.py +0 -0
  498. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_datetime.py +0 -0
  499. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  500. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_deep_extend.py +0 -0
  501. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  502. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  503. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_funding_rate_history.py +0 -0
  504. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_last_price.py +0 -0
  505. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_ledger_entry.py +0 -0
  506. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_ledger_item.py +0 -0
  507. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_leverage_tier.py +0 -0
  508. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_margin_mode.py +0 -0
  509. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_margin_modification.py +0 -0
  510. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_market.py +0 -0
  511. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_number.py +0 -0
  512. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_ohlcv.py +0 -0
  513. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_open_interest.py +0 -0
  514. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_order.py +0 -0
  515. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_order_book.py +0 -0
  516. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_position.py +0 -0
  517. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_shared_methods.py +0 -0
  518. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_status.py +0 -0
  519. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_throttle.py +0 -0
  520. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_ticker.py +0 -0
  521. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_trade.py +0 -0
  522. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_trading_fee.py +0 -0
  523. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/base/test_transaction.py +0 -0
  524. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/test_async.py +0 -0
  525. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/test/test_sync.py +0 -0
  526. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/timex.py +0 -0
  527. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/tokocrypto.py +0 -0
  528. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/tradeogre.py +0 -0
  529. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/upbit.py +0 -0
  530. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/wavesexchange.py +0 -0
  531. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/wazirx.py +0 -0
  532. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/whitebit.py +0 -0
  533. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/woo.py +0 -0
  534. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/yobit.py +0 -0
  535. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/zaif.py +0 -0
  536. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt/zonda.py +0 -0
  537. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt.egg-info/SOURCES.txt +0 -0
  538. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt.egg-info/dependency_links.txt +0 -0
  539. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt.egg-info/requires.txt +0 -0
  540. {ccxt-4.2.80 → ccxt-4.2.81}/ccxt.egg-info/top_level.txt +0 -0
  541. {ccxt-4.2.80 → ccxt-4.2.81}/setup.cfg +0 -0
  542. {ccxt-4.2.80 → ccxt-4.2.81}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.80
3
+ Version: 4.2.81
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
@@ -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.80/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.2.80/dist/ccxt.browser.js
229
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.81/dist/ccxt.browser.js
230
+ * unpkg: https://unpkg.com/ccxt@4.2.81/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.80/dist/ccxt.browser.js"></script>
235
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.81/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.80'
25
+ __version__ = '4.2.81'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.80'
7
+ __version__ = '4.2.81'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.80'
5
+ __version__ = '4.2.81'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -8,7 +8,7 @@ from ccxt.abstract.binance import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import json
11
- from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, MarginMode, MarginModes, Market, MarketInterface, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
+ from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, MarginMode, MarginModes, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import PermissionDenied
@@ -134,6 +134,8 @@ class binance(Exchange, ImplicitAPI):
134
134
  'fetchOpenInterestHistory': True,
135
135
  'fetchOpenOrder': True,
136
136
  'fetchOpenOrders': True,
137
+ 'fetchOption': True,
138
+ 'fetchOptionChain': False,
137
139
  'fetchOrder': True,
138
140
  'fetchOrderBook': True,
139
141
  'fetchOrderBooks': False,
@@ -11411,3 +11413,89 @@ class binance(Exchange, ImplicitAPI):
11411
11413
  'symbol': market['symbol'],
11412
11414
  'marginMode': 'isolated' if isIsolated else 'cross',
11413
11415
  }
11416
+
11417
+ async def fetch_option(self, symbol: str, params={}) -> Option:
11418
+ """
11419
+ fetches option data that is commonly found in an option chain
11420
+ :see: https://binance-docs.github.io/apidocs/voptions/en/#24hr-ticker-price-change-statistics
11421
+ :param str symbol: unified market symbol
11422
+ :param dict [params]: extra parameters specific to the exchange API endpoint
11423
+ :returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
11424
+ """
11425
+ await self.load_markets()
11426
+ market = self.market(symbol)
11427
+ request = {
11428
+ 'symbol': market['id'],
11429
+ }
11430
+ response = await self.eapiPublicGetTicker(self.extend(request, params))
11431
+ #
11432
+ # [
11433
+ # {
11434
+ # "symbol": "BTC-241227-80000-C",
11435
+ # "priceChange": "0",
11436
+ # "priceChangePercent": "0",
11437
+ # "lastPrice": "2750",
11438
+ # "lastQty": "0",
11439
+ # "open": "2750",
11440
+ # "high": "2750",
11441
+ # "low": "2750",
11442
+ # "volume": "0",
11443
+ # "amount": "0",
11444
+ # "bidPrice": "4880",
11445
+ # "askPrice": "0",
11446
+ # "openTime": 0,
11447
+ # "closeTime": 0,
11448
+ # "firstTradeId": 0,
11449
+ # "tradeCount": 0,
11450
+ # "strikePrice": "80000",
11451
+ # "exercisePrice": "63944.09893617"
11452
+ # }
11453
+ # ]
11454
+ #
11455
+ chain = self.safe_dict(response, 0, {})
11456
+ return self.parse_option(chain, None, market)
11457
+
11458
+ def parse_option(self, chain, currency: Currency = None, market: Market = None):
11459
+ #
11460
+ # {
11461
+ # "symbol": "BTC-241227-80000-C",
11462
+ # "priceChange": "0",
11463
+ # "priceChangePercent": "0",
11464
+ # "lastPrice": "2750",
11465
+ # "lastQty": "0",
11466
+ # "open": "2750",
11467
+ # "high": "2750",
11468
+ # "low": "2750",
11469
+ # "volume": "0",
11470
+ # "amount": "0",
11471
+ # "bidPrice": "4880",
11472
+ # "askPrice": "0",
11473
+ # "openTime": 0,
11474
+ # "closeTime": 0,
11475
+ # "firstTradeId": 0,
11476
+ # "tradeCount": 0,
11477
+ # "strikePrice": "80000",
11478
+ # "exercisePrice": "63944.09893617"
11479
+ # }
11480
+ #
11481
+ marketId = self.safe_string(chain, 'symbol')
11482
+ market = self.safe_market(marketId, market)
11483
+ return {
11484
+ 'info': chain,
11485
+ 'currency': None,
11486
+ 'symbol': market['symbol'],
11487
+ 'timestamp': None,
11488
+ 'datetime': None,
11489
+ 'impliedVolatility': None,
11490
+ 'openInterest': None,
11491
+ 'bidPrice': self.safe_number(chain, 'bidPrice'),
11492
+ 'askPrice': self.safe_number(chain, 'askPrice'),
11493
+ 'midPrice': None,
11494
+ 'markPrice': None,
11495
+ 'lastPrice': self.safe_number(chain, 'lastPrice'),
11496
+ 'underlyingPrice': self.safe_number(chain, 'exercisePrice'),
11497
+ 'change': self.safe_number(chain, 'priceChange'),
11498
+ 'percentage': self.safe_number(chain, 'priceChangePercent'),
11499
+ 'baseVolume': self.safe_number(chain, 'volume'),
11500
+ 'quoteVolume': None,
11501
+ }
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bybit import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
+ from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import PermissionDenied
@@ -107,6 +107,8 @@ class bybit(Exchange, ImplicitAPI):
107
107
  'fetchOpenInterestHistory': True,
108
108
  'fetchOpenOrder': True,
109
109
  'fetchOpenOrders': True,
110
+ 'fetchOption': True,
111
+ 'fetchOptionChain': True,
110
112
  'fetchOrder': False,
111
113
  'fetchOrderBook': True,
112
114
  'fetchOrders': False,
@@ -7632,6 +7634,177 @@ class bybit(Exchange, ImplicitAPI):
7632
7634
  'rate': self.safe_number(income, 'feeRate'),
7633
7635
  }
7634
7636
 
7637
+ async def fetch_option(self, symbol: str, params={}) -> Option:
7638
+ """
7639
+ fetches option data that is commonly found in an option chain
7640
+ :see: https://bybit-exchange.github.io/docs/v5/market/tickers
7641
+ :param str symbol: unified market symbol
7642
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7643
+ :returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
7644
+ """
7645
+ await self.load_markets()
7646
+ market = self.market(symbol)
7647
+ request = {
7648
+ 'category': 'option',
7649
+ 'symbol': market['id'],
7650
+ }
7651
+ response = await self.publicGetV5MarketTickers(self.extend(request, params))
7652
+ #
7653
+ # {
7654
+ # "retCode": 0,
7655
+ # "retMsg": "SUCCESS",
7656
+ # "result": {
7657
+ # "category": "option",
7658
+ # "list": [
7659
+ # {
7660
+ # "symbol": "BTC-27DEC24-55000-P",
7661
+ # "bid1Price": "0",
7662
+ # "bid1Size": "0",
7663
+ # "bid1Iv": "0",
7664
+ # "ask1Price": "0",
7665
+ # "ask1Size": "0",
7666
+ # "ask1Iv": "0",
7667
+ # "lastPrice": "10980",
7668
+ # "highPrice24h": "0",
7669
+ # "lowPrice24h": "0",
7670
+ # "markPrice": "11814.66756236",
7671
+ # "indexPrice": "63838.92",
7672
+ # "markIv": "0.8866",
7673
+ # "underlyingPrice": "71690.55303594",
7674
+ # "openInterest": "0.01",
7675
+ # "turnover24h": "0",
7676
+ # "volume24h": "0",
7677
+ # "totalVolume": "2",
7678
+ # "totalTurnover": "78719",
7679
+ # "delta": "-0.23284954",
7680
+ # "gamma": "0.0000055",
7681
+ # "vega": "191.70757975",
7682
+ # "theta": "-30.43617927",
7683
+ # "predictedDeliveryPrice": "0",
7684
+ # "change24h": "0"
7685
+ # }
7686
+ # ]
7687
+ # },
7688
+ # "retExtInfo": {},
7689
+ # "time": 1711162003672
7690
+ # }
7691
+ #
7692
+ result = self.safe_dict(response, 'result', {})
7693
+ resultList = self.safe_list(result, 'list', [])
7694
+ chain = self.safe_dict(resultList, 0, {})
7695
+ return self.parse_option(chain, None, market)
7696
+
7697
+ async def fetch_option_chain(self, code: str, params={}) -> OptionChain:
7698
+ """
7699
+ fetches data for an underlying asset that is commonly found in an option chain
7700
+ :see: https://bybit-exchange.github.io/docs/v5/market/tickers
7701
+ :param str currency: base currency to fetch an option chain for
7702
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7703
+ :returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
7704
+ """
7705
+ await self.load_markets()
7706
+ currency = self.currency(code)
7707
+ request = {
7708
+ 'category': 'option',
7709
+ 'baseCoin': currency['id'],
7710
+ }
7711
+ response = await self.publicGetV5MarketTickers(self.extend(request, params))
7712
+ #
7713
+ # {
7714
+ # "retCode": 0,
7715
+ # "retMsg": "SUCCESS",
7716
+ # "result": {
7717
+ # "category": "option",
7718
+ # "list": [
7719
+ # {
7720
+ # "symbol": "BTC-27DEC24-55000-P",
7721
+ # "bid1Price": "0",
7722
+ # "bid1Size": "0",
7723
+ # "bid1Iv": "0",
7724
+ # "ask1Price": "0",
7725
+ # "ask1Size": "0",
7726
+ # "ask1Iv": "0",
7727
+ # "lastPrice": "10980",
7728
+ # "highPrice24h": "0",
7729
+ # "lowPrice24h": "0",
7730
+ # "markPrice": "11814.66756236",
7731
+ # "indexPrice": "63838.92",
7732
+ # "markIv": "0.8866",
7733
+ # "underlyingPrice": "71690.55303594",
7734
+ # "openInterest": "0.01",
7735
+ # "turnover24h": "0",
7736
+ # "volume24h": "0",
7737
+ # "totalVolume": "2",
7738
+ # "totalTurnover": "78719",
7739
+ # "delta": "-0.23284954",
7740
+ # "gamma": "0.0000055",
7741
+ # "vega": "191.70757975",
7742
+ # "theta": "-30.43617927",
7743
+ # "predictedDeliveryPrice": "0",
7744
+ # "change24h": "0"
7745
+ # },
7746
+ # ]
7747
+ # },
7748
+ # "retExtInfo": {},
7749
+ # "time": 1711162003672
7750
+ # }
7751
+ #
7752
+ result = self.safe_dict(response, 'result', {})
7753
+ resultList = self.safe_list(result, 'list', [])
7754
+ return self.parse_option_chain(resultList, None, 'symbol')
7755
+
7756
+ def parse_option(self, chain, currency: Currency = None, market: Market = None):
7757
+ #
7758
+ # {
7759
+ # "symbol": "BTC-27DEC24-55000-P",
7760
+ # "bid1Price": "0",
7761
+ # "bid1Size": "0",
7762
+ # "bid1Iv": "0",
7763
+ # "ask1Price": "0",
7764
+ # "ask1Size": "0",
7765
+ # "ask1Iv": "0",
7766
+ # "lastPrice": "10980",
7767
+ # "highPrice24h": "0",
7768
+ # "lowPrice24h": "0",
7769
+ # "markPrice": "11814.66756236",
7770
+ # "indexPrice": "63838.92",
7771
+ # "markIv": "0.8866",
7772
+ # "underlyingPrice": "71690.55303594",
7773
+ # "openInterest": "0.01",
7774
+ # "turnover24h": "0",
7775
+ # "volume24h": "0",
7776
+ # "totalVolume": "2",
7777
+ # "totalTurnover": "78719",
7778
+ # "delta": "-0.23284954",
7779
+ # "gamma": "0.0000055",
7780
+ # "vega": "191.70757975",
7781
+ # "theta": "-30.43617927",
7782
+ # "predictedDeliveryPrice": "0",
7783
+ # "change24h": "0"
7784
+ # }
7785
+ #
7786
+ marketId = self.safe_string(chain, 'symbol')
7787
+ market = self.safe_market(marketId, market)
7788
+ return {
7789
+ 'info': chain,
7790
+ 'currency': None,
7791
+ 'symbol': market['symbol'],
7792
+ 'timestamp': None,
7793
+ 'datetime': None,
7794
+ 'impliedVolatility': self.safe_number(chain, 'markIv'),
7795
+ 'openInterest': self.safe_number(chain, 'openInterest'),
7796
+ 'bidPrice': self.safe_number(chain, 'bid1Price'),
7797
+ 'askPrice': self.safe_number(chain, 'ask1Price'),
7798
+ 'midPrice': None,
7799
+ 'markPrice': self.safe_number(chain, 'markPrice'),
7800
+ 'lastPrice': self.safe_number(chain, 'lastPrice'),
7801
+ 'underlyingPrice': self.safe_number(chain, 'underlyingPrice'),
7802
+ 'change': self.safe_number(chain, 'change24h'),
7803
+ 'percentage': None,
7804
+ 'baseVolume': self.safe_number(chain, 'totalVolume'),
7805
+ 'quoteVolume': None,
7806
+ }
7807
+
7635
7808
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
7636
7809
  url = self.implode_hostname(self.urls['api'][api]) + '/' + path
7637
7810
  if api == 'public':
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.gate import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Currency, FundingHistory, Greeks, Int, Leverage, Leverages, Market, MarketInterface, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
+ from ccxt.base.types import Balances, Currency, FundingHistory, Greeks, Int, Leverage, Leverages, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import PermissionDenied
@@ -151,6 +151,8 @@ class gate(Exchange, ImplicitAPI):
151
151
  'fetchOpenInterest': False,
152
152
  'fetchOpenInterestHistory': True,
153
153
  'fetchOpenOrders': True,
154
+ 'fetchOption': True,
155
+ 'fetchOptionChain': True,
154
156
  'fetchOrder': True,
155
157
  'fetchOrderBook': True,
156
158
  'fetchPosition': True,
@@ -6688,6 +6690,186 @@ class gate(Exchange, ImplicitAPI):
6688
6690
  'shortLeverage': leverageValue,
6689
6691
  }
6690
6692
 
6693
+ async def fetch_option(self, symbol: str, params={}) -> Option:
6694
+ """
6695
+ fetches option data that is commonly found in an option chain
6696
+ :see: https://www.gate.io/docs/developers/apiv4/en/#query-specified-contract-detail
6697
+ :param str symbol: unified market symbol
6698
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6699
+ :returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
6700
+ """
6701
+ await self.load_markets()
6702
+ market = self.market(symbol)
6703
+ request = {
6704
+ 'contract': market['id'],
6705
+ }
6706
+ response = await self.publicOptionsGetContractsContract(self.extend(request, params))
6707
+ #
6708
+ # {
6709
+ # "is_active": True,
6710
+ # "mark_price_round": "0.01",
6711
+ # "settle_fee_rate": "0.00015",
6712
+ # "bid1_size": 30,
6713
+ # "taker_fee_rate": "0.0003",
6714
+ # "price_limit_fee_rate": "0.1",
6715
+ # "order_price_round": "0.1",
6716
+ # "tag": "month",
6717
+ # "ref_rebate_rate": "0",
6718
+ # "name": "ETH_USDT-20240628-4500-C",
6719
+ # "strike_price": "4500",
6720
+ # "ask1_price": "280.5",
6721
+ # "ref_discount_rate": "0",
6722
+ # "order_price_deviate": "0.2",
6723
+ # "ask1_size": -19,
6724
+ # "mark_price_down": "155.45",
6725
+ # "orderbook_id": 11724695,
6726
+ # "is_call": True,
6727
+ # "last_price": "188.7",
6728
+ # "mark_price": "274.26",
6729
+ # "underlying": "ETH_USDT",
6730
+ # "create_time": 1688024882,
6731
+ # "settle_limit_fee_rate": "0.1",
6732
+ # "orders_limit": 10,
6733
+ # "mark_price_up": "403.83",
6734
+ # "position_size": 80,
6735
+ # "order_size_max": 10000,
6736
+ # "position_limit": 100000,
6737
+ # "multiplier": "0.01",
6738
+ # "order_size_min": 1,
6739
+ # "trade_size": 229,
6740
+ # "underlying_price": "3326.6",
6741
+ # "maker_fee_rate": "0.0003",
6742
+ # "expiration_time": 1719561600,
6743
+ # "trade_id": 15,
6744
+ # "bid1_price": "269.3"
6745
+ # }
6746
+ #
6747
+ return self.parse_option(response, None, market)
6748
+
6749
+ async def fetch_option_chain(self, code: str, params={}) -> OptionChain:
6750
+ """
6751
+ fetches data for an underlying asset that is commonly found in an option chain
6752
+ :see: https://www.gate.io/docs/developers/apiv4/en/#list-all-the-contracts-with-specified-underlying-and-expiration-time
6753
+ :param str currency: base currency to fetch an option chain for
6754
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6755
+ :param str [params.underlying]: the underlying asset, can be obtained from fetchUnderlyingAssets()
6756
+ :param int [params.expiration]: unix timestamp of the expiration time
6757
+ :returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
6758
+ """
6759
+ await self.load_markets()
6760
+ currency = self.currency(code)
6761
+ request = {
6762
+ 'underlying': currency['code'] + '_USDT',
6763
+ }
6764
+ response = await self.publicOptionsGetContracts(self.extend(request, params))
6765
+ #
6766
+ # [
6767
+ # {
6768
+ # "is_active": True,
6769
+ # "mark_price_round": "0.1",
6770
+ # "settle_fee_rate": "0.00015",
6771
+ # "bid1_size": 434,
6772
+ # "taker_fee_rate": "0.0003",
6773
+ # "price_limit_fee_rate": "0.1",
6774
+ # "order_price_round": "1",
6775
+ # "tag": "day",
6776
+ # "ref_rebate_rate": "0",
6777
+ # "name": "BTC_USDT-20240324-63500-P",
6778
+ # "strike_price": "63500",
6779
+ # "ask1_price": "387",
6780
+ # "ref_discount_rate": "0",
6781
+ # "order_price_deviate": "0.15",
6782
+ # "ask1_size": -454,
6783
+ # "mark_price_down": "124.3",
6784
+ # "orderbook_id": 29600,
6785
+ # "is_call": False,
6786
+ # "last_price": "0",
6787
+ # "mark_price": "366.6",
6788
+ # "underlying": "BTC_USDT",
6789
+ # "create_time": 1711118829,
6790
+ # "settle_limit_fee_rate": "0.1",
6791
+ # "orders_limit": 10,
6792
+ # "mark_price_up": "630",
6793
+ # "position_size": 0,
6794
+ # "order_size_max": 10000,
6795
+ # "position_limit": 10000,
6796
+ # "multiplier": "0.01",
6797
+ # "order_size_min": 1,
6798
+ # "trade_size": 0,
6799
+ # "underlying_price": "64084.65",
6800
+ # "maker_fee_rate": "0.0003",
6801
+ # "expiration_time": 1711267200,
6802
+ # "trade_id": 0,
6803
+ # "bid1_price": "307"
6804
+ # },
6805
+ # ]
6806
+ #
6807
+ return self.parse_option_chain(response, None, 'name')
6808
+
6809
+ def parse_option(self, chain, currency: Currency = None, market: Market = None):
6810
+ #
6811
+ # {
6812
+ # "is_active": True,
6813
+ # "mark_price_round": "0.1",
6814
+ # "settle_fee_rate": "0.00015",
6815
+ # "bid1_size": 434,
6816
+ # "taker_fee_rate": "0.0003",
6817
+ # "price_limit_fee_rate": "0.1",
6818
+ # "order_price_round": "1",
6819
+ # "tag": "day",
6820
+ # "ref_rebate_rate": "0",
6821
+ # "name": "BTC_USDT-20240324-63500-P",
6822
+ # "strike_price": "63500",
6823
+ # "ask1_price": "387",
6824
+ # "ref_discount_rate": "0",
6825
+ # "order_price_deviate": "0.15",
6826
+ # "ask1_size": -454,
6827
+ # "mark_price_down": "124.3",
6828
+ # "orderbook_id": 29600,
6829
+ # "is_call": False,
6830
+ # "last_price": "0",
6831
+ # "mark_price": "366.6",
6832
+ # "underlying": "BTC_USDT",
6833
+ # "create_time": 1711118829,
6834
+ # "settle_limit_fee_rate": "0.1",
6835
+ # "orders_limit": 10,
6836
+ # "mark_price_up": "630",
6837
+ # "position_size": 0,
6838
+ # "order_size_max": 10000,
6839
+ # "position_limit": 10000,
6840
+ # "multiplier": "0.01",
6841
+ # "order_size_min": 1,
6842
+ # "trade_size": 0,
6843
+ # "underlying_price": "64084.65",
6844
+ # "maker_fee_rate": "0.0003",
6845
+ # "expiration_time": 1711267200,
6846
+ # "trade_id": 0,
6847
+ # "bid1_price": "307"
6848
+ # }
6849
+ #
6850
+ marketId = self.safe_string(chain, 'name')
6851
+ market = self.safe_market(marketId, market)
6852
+ timestamp = self.safe_timestamp(chain, 'create_time')
6853
+ return {
6854
+ 'info': chain,
6855
+ 'currency': None,
6856
+ 'symbol': market['symbol'],
6857
+ 'timestamp': timestamp,
6858
+ 'datetime': self.iso8601(timestamp),
6859
+ 'impliedVolatility': None,
6860
+ 'openInterest': None,
6861
+ 'bidPrice': self.safe_number(chain, 'bid1_price'),
6862
+ 'askPrice': self.safe_number(chain, 'ask1_price'),
6863
+ 'midPrice': None,
6864
+ 'markPrice': self.safe_number(chain, 'mark_price'),
6865
+ 'lastPrice': self.safe_number(chain, 'last_price'),
6866
+ 'underlyingPrice': self.safe_number(chain, 'underlying_price'),
6867
+ 'change': None,
6868
+ 'percentage': None,
6869
+ 'baseVolume': None,
6870
+ 'quoteVolume': None,
6871
+ }
6872
+
6691
6873
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
6692
6874
  if response is None:
6693
6875
  return None
@@ -1834,16 +1834,27 @@ class okx(Exchange, ImplicitAPI):
1834
1834
  first = self.safe_value(data, 0, {})
1835
1835
  return self.parse_ticker(first, market)
1836
1836
 
1837
- async def fetch_tickers_by_type(self, type, symbols: Strings = None, params={}):
1837
+ async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
1838
+ """
1839
+ fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
1840
+ :see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
1841
+ :param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
1842
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1843
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
1844
+ """
1838
1845
  await self.load_markets()
1846
+ symbols = self.market_symbols(symbols)
1847
+ market = self.get_market_from_symbols(symbols)
1848
+ marketType = None
1849
+ marketType, params = self.handle_market_type_and_params('fetchTickers', market, params)
1839
1850
  request = {
1840
- 'instType': self.convert_to_instrument_type(type),
1851
+ 'instType': self.convert_to_instrument_type(marketType),
1841
1852
  }
1842
- if type == 'option':
1853
+ if marketType == 'option':
1843
1854
  defaultUnderlying = self.safe_value(self.options, 'defaultUnderlying', 'BTC-USD')
1844
1855
  currencyId = self.safe_string_2(params, 'uly', 'marketId', defaultUnderlying)
1845
1856
  if currencyId is None:
1846
- raise ArgumentsRequired(self.id + ' fetchTickersByType() requires an underlying uly or marketId parameter for options markets')
1857
+ raise ArgumentsRequired(self.id + ' fetchTickers() requires an underlying uly or marketId parameter for options markets')
1847
1858
  else:
1848
1859
  request['uly'] = currencyId
1849
1860
  response = await self.publicGetMarketTickers(self.extend(request, params))
@@ -1873,26 +1884,9 @@ class okx(Exchange, ImplicitAPI):
1873
1884
  # ]
1874
1885
  # }
1875
1886
  #
1876
- tickers = self.safe_value(response, 'data', [])
1887
+ tickers = self.safe_list(response, 'data', [])
1877
1888
  return self.parse_tickers(tickers, symbols)
1878
1889
 
1879
- async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
1880
- """
1881
- fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
1882
- :see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
1883
- :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
1884
- :param dict [params]: extra parameters specific to the exchange API endpoint
1885
- :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
1886
- """
1887
- await self.load_markets()
1888
- symbols = self.market_symbols(symbols)
1889
- first = self.safe_string(symbols, 0)
1890
- market = None
1891
- if first is not None:
1892
- market = self.market(first)
1893
- type, query = self.handle_market_type_and_params('fetchTickers', market, params)
1894
- return await self.fetch_tickers_by_type(type, symbols, query)
1895
-
1896
1890
  def parse_trade(self, trade, market: Market = None) -> Trade:
1897
1891
  #
1898
1892
  # public fetchTrades
@@ -4439,18 +4433,7 @@ class okx(Exchange, ImplicitAPI):
4439
4433
  if fee is None:
4440
4434
  raise ArgumentsRequired(self.id + ' withdraw() requires a "fee" string parameter, network transaction fee must be ≥ 0. Withdrawals to OKCoin or OKX are fee-free, please set "0". Withdrawing to external digital asset address requires network transaction fee.')
4441
4435
  request['fee'] = self.number_to_string(fee) # withdrawals to OKCoin or OKX are fee-free, please set 0
4442
- if 'password' in params:
4443
- request['pwd'] = params['password']
4444
- elif 'pwd' in params:
4445
- request['pwd'] = params['pwd']
4446
- else:
4447
- options = self.safe_value(self.options, 'withdraw', {})
4448
- password = self.safe_string_2(options, 'password', 'pwd')
4449
- if password is not None:
4450
- request['pwd'] = password
4451
- query = self.omit(params, ['fee', 'password', 'pwd'])
4452
- if not ('pwd' in request):
4453
- raise ExchangeError(self.id + ' withdraw() requires a password parameter or a pwd parameter, it must be the funding password, not the API passphrase')
4436
+ query = self.omit(params, ['fee'])
4454
4437
  response = await self.privatePostAssetWithdrawal(self.extend(request, query))
4455
4438
  #
4456
4439
  # {
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.80'
7
+ __version__ = '4.2.81'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10