ccxt 4.3.77__tar.gz → 4.3.78__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 (662) hide show
  1. {ccxt-4.3.77/ccxt.egg-info → ccxt-4.3.78}/PKG-INFO +4 -4
  2. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/__init__.py +1 -1
  4. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/exchange.py +1 -1
  5. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bingx.py +0 -1
  6. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitget.py +1 -0
  7. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitteam.py +0 -1
  8. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/gate.py +2 -2
  9. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/kraken.py +9 -9
  10. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/kuna.py +0 -1
  11. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/vertex.py +6 -4
  12. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/woo.py +3 -0
  13. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/woofipro.py +3 -0
  14. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/xt.py +0 -1
  15. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/exchange.py +56 -36
  16. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bingx.py +0 -1
  17. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitget.py +1 -0
  18. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitteam.py +0 -1
  19. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/gate.py +2 -2
  20. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/kraken.py +9 -9
  21. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/kuna.py +0 -1
  22. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/__init__.py +1 -1
  23. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/binance.py +1 -1
  24. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/paradex.py +2 -0
  25. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/vertex.py +6 -4
  26. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/woo.py +3 -0
  27. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/woofipro.py +3 -0
  28. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/xt.py +0 -1
  29. {ccxt-4.3.77 → ccxt-4.3.78/ccxt.egg-info}/PKG-INFO +4 -4
  30. {ccxt-4.3.77 → ccxt-4.3.78}/package.json +1 -1
  31. {ccxt-4.3.77 → ccxt-4.3.78}/LICENSE.txt +0 -0
  32. {ccxt-4.3.77 → ccxt-4.3.78}/MANIFEST.in +0 -0
  33. {ccxt-4.3.77 → ccxt-4.3.78}/README.rst +0 -0
  34. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/__init__.py +0 -0
  35. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/ace.py +0 -0
  36. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/alpaca.py +0 -0
  37. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/ascendex.py +0 -0
  38. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bequant.py +0 -0
  39. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bigone.py +0 -0
  40. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/binance.py +0 -0
  41. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/binancecoinm.py +0 -0
  42. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/binanceus.py +0 -0
  43. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/binanceusdm.py +0 -0
  44. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bingx.py +0 -0
  45. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bit2c.py +0 -0
  46. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitbank.py +0 -0
  47. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitbay.py +0 -0
  48. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitbns.py +0 -0
  49. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitcoincom.py +0 -0
  50. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitfinex.py +0 -0
  51. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitfinex2.py +0 -0
  52. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitflyer.py +0 -0
  53. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitget.py +0 -0
  54. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bithumb.py +0 -0
  55. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitmart.py +0 -0
  56. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitmex.py +0 -0
  57. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitopro.py +0 -0
  58. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitpanda.py +0 -0
  59. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitrue.py +0 -0
  60. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitso.py +0 -0
  61. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitstamp.py +0 -0
  62. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitteam.py +0 -0
  63. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bitvavo.py +0 -0
  64. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bl3p.py +0 -0
  65. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/blockchaincom.py +0 -0
  66. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/blofin.py +0 -0
  67. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/btcalpha.py +0 -0
  68. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/btcbox.py +0 -0
  69. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/btcmarkets.py +0 -0
  70. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/btcturk.py +0 -0
  71. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/bybit.py +0 -0
  72. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/cex.py +0 -0
  73. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinbase.py +0 -0
  74. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinbaseadvanced.py +0 -0
  75. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinbaseexchange.py +0 -0
  76. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinbaseinternational.py +0 -0
  77. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coincheck.py +0 -0
  78. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinex.py +0 -0
  79. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinlist.py +0 -0
  80. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinmate.py +0 -0
  81. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinmetro.py +0 -0
  82. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinone.py +0 -0
  83. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinsph.py +0 -0
  84. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/coinspot.py +0 -0
  85. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/cryptocom.py +0 -0
  86. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/currencycom.py +0 -0
  87. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/delta.py +0 -0
  88. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/deribit.py +0 -0
  89. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/digifinex.py +0 -0
  90. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/exmo.py +0 -0
  91. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/fmfwio.py +0 -0
  92. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/gate.py +0 -0
  93. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/gateio.py +0 -0
  94. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/gemini.py +0 -0
  95. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/hitbtc.py +0 -0
  96. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/hitbtc3.py +0 -0
  97. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/hollaex.py +0 -0
  98. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/htx.py +0 -0
  99. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/huobi.py +0 -0
  100. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/huobijp.py +0 -0
  101. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/hyperliquid.py +0 -0
  102. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/idex.py +0 -0
  103. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/independentreserve.py +0 -0
  104. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/indodax.py +0 -0
  105. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/kraken.py +0 -0
  106. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/krakenfutures.py +0 -0
  107. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/kucoin.py +0 -0
  108. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/kucoinfutures.py +0 -0
  109. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/kuna.py +0 -0
  110. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/latoken.py +0 -0
  111. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/lbank.py +0 -0
  112. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/luno.py +0 -0
  113. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/lykke.py +0 -0
  114. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/mercado.py +0 -0
  115. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/mexc.py +0 -0
  116. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/ndax.py +0 -0
  117. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/novadax.py +0 -0
  118. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/oceanex.py +0 -0
  119. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/okcoin.py +0 -0
  120. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/okx.py +0 -0
  121. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/onetrading.py +0 -0
  122. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/oxfun.py +0 -0
  123. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/p2b.py +0 -0
  124. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/paradex.py +0 -0
  125. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/paymium.py +0 -0
  126. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/phemex.py +0 -0
  127. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/poloniex.py +0 -0
  128. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/poloniexfutures.py +0 -0
  129. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/probit.py +0 -0
  130. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/timex.py +0 -0
  131. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/tokocrypto.py +0 -0
  132. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/tradeogre.py +0 -0
  133. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/upbit.py +0 -0
  134. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/vertex.py +0 -0
  135. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/wavesexchange.py +0 -0
  136. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/wazirx.py +0 -0
  137. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/whitebit.py +0 -0
  138. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/woo.py +0 -0
  139. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/woofipro.py +0 -0
  140. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/xt.py +0 -0
  141. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/yobit.py +0 -0
  142. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/zaif.py +0 -0
  143. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/abstract/zonda.py +0 -0
  144. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/ace.py +0 -0
  145. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/alpaca.py +0 -0
  146. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/ascendex.py +0 -0
  147. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/ace.py +0 -0
  148. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/alpaca.py +0 -0
  149. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/ascendex.py +0 -0
  150. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/__init__.py +0 -0
  151. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/throttler.py +0 -0
  152. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/__init__.py +0 -0
  153. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  154. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/cache.py +0 -0
  155. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/client.py +0 -0
  156. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/fast_client.py +0 -0
  157. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/functions.py +0 -0
  158. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/future.py +0 -0
  159. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/order_book.py +0 -0
  160. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  161. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bequant.py +0 -0
  162. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bigone.py +0 -0
  163. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/binance.py +0 -0
  164. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/binancecoinm.py +0 -0
  165. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/binanceus.py +0 -0
  166. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/binanceusdm.py +0 -0
  167. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bit2c.py +0 -0
  168. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitbank.py +0 -0
  169. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitbay.py +0 -0
  170. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitbns.py +0 -0
  171. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitcoincom.py +0 -0
  172. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitfinex.py +0 -0
  173. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitfinex2.py +0 -0
  174. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitflyer.py +0 -0
  175. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bithumb.py +0 -0
  176. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitmart.py +0 -0
  177. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitmex.py +0 -0
  178. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitopro.py +0 -0
  179. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitpanda.py +0 -0
  180. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitrue.py +0 -0
  181. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitso.py +0 -0
  182. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitstamp.py +0 -0
  183. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bitvavo.py +0 -0
  184. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bl3p.py +0 -0
  185. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/blockchaincom.py +0 -0
  186. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/blofin.py +0 -0
  187. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/btcalpha.py +0 -0
  188. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/btcbox.py +0 -0
  189. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/btcmarkets.py +0 -0
  190. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/btcturk.py +0 -0
  191. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/bybit.py +0 -0
  192. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/cex.py +0 -0
  193. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinbase.py +0 -0
  194. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinbaseadvanced.py +0 -0
  195. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinbaseexchange.py +0 -0
  196. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinbaseinternational.py +0 -0
  197. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coincheck.py +0 -0
  198. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinex.py +0 -0
  199. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinlist.py +0 -0
  200. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinmate.py +0 -0
  201. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinmetro.py +0 -0
  202. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinone.py +0 -0
  203. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinsph.py +0 -0
  204. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/coinspot.py +0 -0
  205. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/cryptocom.py +0 -0
  206. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/currencycom.py +0 -0
  207. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/delta.py +0 -0
  208. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/deribit.py +0 -0
  209. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/digifinex.py +0 -0
  210. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/exmo.py +0 -0
  211. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/fmfwio.py +0 -0
  212. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/gateio.py +0 -0
  213. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/gemini.py +0 -0
  214. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/hitbtc.py +0 -0
  215. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/hitbtc3.py +0 -0
  216. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/hollaex.py +0 -0
  217. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/htx.py +0 -0
  218. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/huobi.py +0 -0
  219. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/huobijp.py +0 -0
  220. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/hyperliquid.py +0 -0
  221. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/idex.py +0 -0
  222. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/independentreserve.py +0 -0
  223. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/indodax.py +0 -0
  224. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/krakenfutures.py +0 -0
  225. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/kucoin.py +0 -0
  226. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/kucoinfutures.py +0 -0
  227. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/latoken.py +0 -0
  228. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/lbank.py +0 -0
  229. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/luno.py +0 -0
  230. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/lykke.py +0 -0
  231. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/mercado.py +0 -0
  232. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/mexc.py +0 -0
  233. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/ndax.py +0 -0
  234. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/novadax.py +0 -0
  235. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/oceanex.py +0 -0
  236. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/okcoin.py +0 -0
  237. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/okx.py +0 -0
  238. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/onetrading.py +0 -0
  239. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/oxfun.py +0 -0
  240. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/p2b.py +0 -0
  241. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/paradex.py +0 -0
  242. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/paymium.py +0 -0
  243. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/phemex.py +0 -0
  244. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/poloniex.py +0 -0
  245. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/poloniexfutures.py +0 -0
  246. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/probit.py +0 -0
  247. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/timex.py +0 -0
  248. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/tokocrypto.py +0 -0
  249. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/tradeogre.py +0 -0
  250. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/upbit.py +0 -0
  251. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/wavesexchange.py +0 -0
  252. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/wazirx.py +0 -0
  253. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/whitebit.py +0 -0
  254. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/yobit.py +0 -0
  255. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/zaif.py +0 -0
  256. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/async_support/zonda.py +0 -0
  257. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/__init__.py +0 -0
  258. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/decimal_to_precision.py +0 -0
  259. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/errors.py +0 -0
  260. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/precise.py +0 -0
  261. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/base/types.py +0 -0
  262. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bequant.py +0 -0
  263. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bigone.py +0 -0
  264. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/binance.py +0 -0
  265. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/binancecoinm.py +0 -0
  266. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/binanceus.py +0 -0
  267. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/binanceusdm.py +0 -0
  268. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bit2c.py +0 -0
  269. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitbank.py +0 -0
  270. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitbay.py +0 -0
  271. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitbns.py +0 -0
  272. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitcoincom.py +0 -0
  273. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitfinex.py +0 -0
  274. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitfinex2.py +0 -0
  275. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitflyer.py +0 -0
  276. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bithumb.py +0 -0
  277. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitmart.py +0 -0
  278. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitmex.py +0 -0
  279. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitopro.py +0 -0
  280. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitpanda.py +0 -0
  281. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitrue.py +0 -0
  282. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitso.py +0 -0
  283. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitstamp.py +0 -0
  284. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bitvavo.py +0 -0
  285. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bl3p.py +0 -0
  286. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/blockchaincom.py +0 -0
  287. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/blofin.py +0 -0
  288. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/btcalpha.py +0 -0
  289. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/btcbox.py +0 -0
  290. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/btcmarkets.py +0 -0
  291. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/btcturk.py +0 -0
  292. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/bybit.py +0 -0
  293. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/cex.py +0 -0
  294. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinbase.py +0 -0
  295. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinbaseadvanced.py +0 -0
  296. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinbaseexchange.py +0 -0
  297. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinbaseinternational.py +0 -0
  298. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coincheck.py +0 -0
  299. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinex.py +0 -0
  300. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinlist.py +0 -0
  301. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinmate.py +0 -0
  302. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinmetro.py +0 -0
  303. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinone.py +0 -0
  304. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinsph.py +0 -0
  305. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/coinspot.py +0 -0
  306. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/cryptocom.py +0 -0
  307. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/currencycom.py +0 -0
  308. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/delta.py +0 -0
  309. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/deribit.py +0 -0
  310. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/digifinex.py +0 -0
  311. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/exmo.py +0 -0
  312. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/fmfwio.py +0 -0
  313. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/gateio.py +0 -0
  314. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/gemini.py +0 -0
  315. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/hitbtc.py +0 -0
  316. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/hitbtc3.py +0 -0
  317. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/hollaex.py +0 -0
  318. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/htx.py +0 -0
  319. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/huobi.py +0 -0
  320. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/huobijp.py +0 -0
  321. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/hyperliquid.py +0 -0
  322. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/idex.py +0 -0
  323. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/independentreserve.py +0 -0
  324. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/indodax.py +0 -0
  325. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/krakenfutures.py +0 -0
  326. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/kucoin.py +0 -0
  327. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/kucoinfutures.py +0 -0
  328. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/latoken.py +0 -0
  329. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/lbank.py +0 -0
  330. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/luno.py +0 -0
  331. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/lykke.py +0 -0
  332. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/mercado.py +0 -0
  333. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/mexc.py +0 -0
  334. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/ndax.py +0 -0
  335. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/novadax.py +0 -0
  336. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/oceanex.py +0 -0
  337. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/okcoin.py +0 -0
  338. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/okx.py +0 -0
  339. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/onetrading.py +0 -0
  340. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/oxfun.py +0 -0
  341. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/p2b.py +0 -0
  342. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/paradex.py +0 -0
  343. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/paymium.py +0 -0
  344. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/phemex.py +0 -0
  345. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/poloniex.py +0 -0
  346. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/poloniexfutures.py +0 -0
  347. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/alpaca.py +0 -0
  348. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/ascendex.py +0 -0
  349. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bequant.py +0 -0
  350. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/binancecoinm.py +0 -0
  351. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/binanceus.py +0 -0
  352. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/binanceusdm.py +0 -0
  353. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bingx.py +0 -0
  354. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitcoincom.py +0 -0
  355. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitfinex.py +0 -0
  356. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitfinex2.py +0 -0
  357. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitget.py +0 -0
  358. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bithumb.py +0 -0
  359. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitmart.py +0 -0
  360. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitmex.py +0 -0
  361. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitopro.py +0 -0
  362. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitpanda.py +0 -0
  363. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitrue.py +0 -0
  364. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitstamp.py +0 -0
  365. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bitvavo.py +0 -0
  366. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/blockchaincom.py +0 -0
  367. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/blofin.py +0 -0
  368. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/bybit.py +0 -0
  369. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/cex.py +0 -0
  370. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coinbase.py +0 -0
  371. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coinbaseexchange.py +0 -0
  372. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coinbaseinternational.py +0 -0
  373. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coincheck.py +0 -0
  374. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coinex.py +0 -0
  375. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/coinone.py +0 -0
  376. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/cryptocom.py +0 -0
  377. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/currencycom.py +0 -0
  378. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/deribit.py +0 -0
  379. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/exmo.py +0 -0
  380. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/gate.py +0 -0
  381. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/gateio.py +0 -0
  382. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/gemini.py +0 -0
  383. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/hitbtc.py +0 -0
  384. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/hollaex.py +0 -0
  385. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/htx.py +0 -0
  386. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/huobi.py +0 -0
  387. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/huobijp.py +0 -0
  388. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/hyperliquid.py +0 -0
  389. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/idex.py +0 -0
  390. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/independentreserve.py +0 -0
  391. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/kraken.py +0 -0
  392. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/krakenfutures.py +0 -0
  393. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/kucoin.py +0 -0
  394. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/kucoinfutures.py +0 -0
  395. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/lbank.py +0 -0
  396. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/luno.py +0 -0
  397. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/mexc.py +0 -0
  398. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/ndax.py +0 -0
  399. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/okcoin.py +0 -0
  400. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/okx.py +0 -0
  401. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/onetrading.py +0 -0
  402. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/oxfun.py +0 -0
  403. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/p2b.py +0 -0
  404. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/phemex.py +0 -0
  405. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/poloniex.py +0 -0
  406. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/poloniexfutures.py +0 -0
  407. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/probit.py +0 -0
  408. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/upbit.py +0 -0
  409. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/vertex.py +0 -0
  410. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/wazirx.py +0 -0
  411. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/whitebit.py +0 -0
  412. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/woo.py +0 -0
  413. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/woofipro.py +0 -0
  414. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/pro/xt.py +0 -0
  415. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/probit.py +0 -0
  416. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/__init__.py +0 -0
  417. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  418. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  419. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  420. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  421. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  422. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  423. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  424. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  425. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  426. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  427. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  428. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  429. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  430. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  431. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  432. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  433. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  434. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  435. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  436. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  437. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  438. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  439. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  440. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  441. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  442. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  443. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  444. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  445. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  446. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  447. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  448. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  449. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  450. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  451. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  452. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  453. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  454. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  455. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  456. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  457. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  458. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  459. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  460. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  461. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  462. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  463. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  464. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  465. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  466. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  467. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  468. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  469. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  470. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  471. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  472. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  473. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  474. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  475. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  476. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  477. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  478. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  479. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  480. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  481. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  482. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  483. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  484. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  485. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  486. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  487. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  488. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  489. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  490. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  491. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/__init__.py +0 -0
  492. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  493. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  494. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  495. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/common.py +0 -0
  496. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  497. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/grammar.py +0 -0
  498. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  499. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/indenter.py +0 -0
  500. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/lark.py +0 -0
  501. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/lexer.py +0 -0
  502. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  503. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  504. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  505. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  506. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  507. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  508. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  509. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  510. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  511. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  512. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  513. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  514. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  515. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  516. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/py.typed +0 -0
  517. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  518. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  519. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  520. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  521. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  522. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tree.py +0 -0
  523. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  524. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  525. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/utils.py +0 -0
  526. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/lark/visitors.py +0 -0
  527. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  528. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  529. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  530. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  531. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  532. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  533. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  534. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  535. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  536. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  537. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  538. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  539. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  540. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  541. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  542. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  543. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  544. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  545. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  546. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  547. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  548. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  549. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  550. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  551. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  552. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  553. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  554. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  555. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  556. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  557. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  558. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  559. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  560. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  561. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  562. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  563. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  564. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  565. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  566. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  567. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  568. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  569. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  570. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  571. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  572. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  573. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  574. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  575. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/common.py +0 -0
  576. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/constants.py +0 -0
  577. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  578. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  579. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  580. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  581. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  582. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  583. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  584. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  585. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  586. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  587. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  588. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  589. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  590. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  591. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  592. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  593. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  594. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  595. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  596. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  597. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  598. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  599. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  600. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  601. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  602. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  603. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  604. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  605. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  606. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  607. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  608. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  609. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  610. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  611. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  612. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  613. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  614. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  615. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  616. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  617. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  618. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  619. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  620. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  621. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  622. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  623. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  624. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  625. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  626. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  627. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  628. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  629. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  630. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/_version.py +0 -0
  631. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  632. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  633. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  634. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  635. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  636. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  637. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  638. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  639. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/toolz/utils.py +0 -0
  640. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  641. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  642. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/test/__init__.py +0 -0
  643. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/test/tests_async.py +0 -0
  644. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/test/tests_helpers.py +0 -0
  645. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/test/tests_init.py +0 -0
  646. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/test/tests_sync.py +0 -0
  647. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/timex.py +0 -0
  648. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/tokocrypto.py +0 -0
  649. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/tradeogre.py +0 -0
  650. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/upbit.py +0 -0
  651. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/wavesexchange.py +0 -0
  652. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/wazirx.py +0 -0
  653. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/whitebit.py +0 -0
  654. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/yobit.py +0 -0
  655. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/zaif.py +0 -0
  656. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt/zonda.py +0 -0
  657. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt.egg-info/SOURCES.txt +0 -0
  658. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt.egg-info/dependency_links.txt +0 -0
  659. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt.egg-info/requires.txt +0 -0
  660. {ccxt-4.3.77 → ccxt-4.3.78}/ccxt.egg-info/top_level.txt +0 -0
  661. {ccxt-4.3.77 → ccxt-4.3.78}/setup.cfg +0 -0
  662. {ccxt-4.3.77 → ccxt-4.3.78}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.77
3
+ Version: 4.3.78
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
@@ -259,13 +259,13 @@ console.log(version, Object.keys(exchanges));
259
259
 
260
260
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
261
261
 
262
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.77/dist/ccxt.browser.min.js
263
- * unpkg: https://unpkg.com/ccxt@4.3.77/dist/ccxt.browser.min.js
262
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js
263
+ * unpkg: https://unpkg.com/ccxt@4.3.78/dist/ccxt.browser.min.js
264
264
 
265
265
  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.
266
266
 
267
267
  ```HTML
268
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.77/dist/ccxt.browser.min.js"></script>
268
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js"></script>
269
269
  ```
270
270
 
271
271
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.77'
25
+ __version__ = '4.3.78'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.77'
7
+ __version__ = '4.3.78'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.77'
5
+ __version__ = '4.3.78'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1180,7 +1180,6 @@ class bingx(Exchange, ImplicitAPI):
1180
1180
  'fee': {
1181
1181
  'cost': self.parse_number(Precise.string_abs(self.safe_string_2(trade, 'commission', 'n'))),
1182
1182
  'currency': currencyCode,
1183
- 'rate': None,
1184
1183
  },
1185
1184
  }, market)
1186
1185
 
@@ -1331,6 +1331,7 @@ class bitget(Exchange, ImplicitAPI):
1331
1331
  'JADE': 'Jade Protocol',
1332
1332
  'DEGEN': 'DegenReborn',
1333
1333
  'TONCOIN': 'TON',
1334
+ 'OMNI': 'omni', # conflict with Omni Network
1334
1335
  },
1335
1336
  'options': {
1336
1337
  'timeframes': {
@@ -1886,7 +1886,6 @@ class bitteam(Exchange, ImplicitAPI):
1886
1886
  fee = {
1887
1887
  'currency': self.safe_currency_code(feeCurrencyId),
1888
1888
  'cost': feeCost,
1889
- 'rate': None,
1890
1889
  }
1891
1890
  intTs = self.parse_to_int(timestamp)
1892
1891
  return self.safe_trade({
@@ -3294,8 +3294,8 @@ class gate(Exchange, ImplicitAPI):
3294
3294
  side = self.safe_string_2(trade, 'side', 'type', contractSide)
3295
3295
  orderId = self.safe_string(trade, 'order_id')
3296
3296
  feeAmount = self.safe_string(trade, 'fee')
3297
- gtFee = self.safe_string(trade, 'gt_fee')
3298
- pointFee = self.safe_string(trade, 'point_fee')
3297
+ gtFee = self.omit_zero(self.safe_string(trade, 'gt_fee'))
3298
+ pointFee = self.omit_zero(self.safe_string(trade, 'point_fee'))
3299
3299
  fees = []
3300
3300
  if feeAmount is not None:
3301
3301
  feeCurrencyId = self.safe_string(trade, 'fee_currency')
@@ -1336,7 +1336,7 @@ class kraken(Exchange, ImplicitAPI):
1336
1336
  async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1337
1337
  """
1338
1338
  create a market order by providing the symbol, side and cost
1339
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1339
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1340
1340
  :param str symbol: unified symbol of the market to create an order in(only USD markets are supported)
1341
1341
  :param str side: 'buy' or 'sell'
1342
1342
  :param float cost: how much you want to trade in units of the quote currency
@@ -1351,7 +1351,7 @@ class kraken(Exchange, ImplicitAPI):
1351
1351
  async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
1352
1352
  """
1353
1353
  create a market buy order by providing the symbol, side and cost
1354
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1354
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1355
1355
  :param str symbol: unified symbol of the market to create an order in
1356
1356
  :param float cost: how much you want to trade in units of the quote currency
1357
1357
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1362,7 +1362,7 @@ class kraken(Exchange, ImplicitAPI):
1362
1362
 
1363
1363
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1364
1364
  """
1365
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1365
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1366
1366
  create a trade order
1367
1367
  :param str symbol: unified symbol of the market to create an order in
1368
1368
  :param str type: 'market' or 'limit'
@@ -1495,6 +1495,8 @@ class kraken(Exchange, ImplicitAPI):
1495
1495
  # "status": "ok",
1496
1496
  # "txid": "OAW2BO-7RWEK-PZY5UO",
1497
1497
  # "originaltxid": "OXL6SS-UPNMC-26WBE7",
1498
+ # "newuserref": 1234,
1499
+ # "olduserref": 123,
1498
1500
  # "volume": "0.00075000",
1499
1501
  # "price": "13500.0",
1500
1502
  # "orders_cancelled": 1,
@@ -1623,7 +1625,7 @@ class kraken(Exchange, ImplicitAPI):
1623
1625
  if (id is None) or (id.startswith('[')):
1624
1626
  txid = self.safe_list(order, 'txid')
1625
1627
  id = self.safe_string(txid, 0)
1626
- clientOrderId = self.safe_string(order, 'userref')
1628
+ clientOrderId = self.safe_string_2(order, 'userref', 'newuserref')
1627
1629
  rawTrades = self.safe_value(order, 'trades', [])
1628
1630
  trades = []
1629
1631
  for i in range(0, len(rawTrades)):
@@ -1750,7 +1752,7 @@ class kraken(Exchange, ImplicitAPI):
1750
1752
  if postOnly:
1751
1753
  extendedPostFlags = flags + ',post' if (flags is not None) else 'post'
1752
1754
  request['oflags'] = extendedPostFlags
1753
- if (flags is not None) and (request['oflags'] is None):
1755
+ if (flags is not None) and not ('oflags' in request):
1754
1756
  request['oflags'] = flags
1755
1757
  params = self.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingAmount', 'trailingLimitAmount', 'offset'])
1756
1758
  return [request, params]
@@ -1758,7 +1760,7 @@ class kraken(Exchange, ImplicitAPI):
1758
1760
  async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
1759
1761
  """
1760
1762
  edit a trade order
1761
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/editOrder
1763
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/editOrder
1762
1764
  :param str id: order id
1763
1765
  :param str symbol: unified symbol of the market to create an order in
1764
1766
  :param str type: 'market' or 'limit'
@@ -1817,15 +1819,13 @@ class kraken(Exchange, ImplicitAPI):
1817
1819
  clientOrderId = self.safe_value_2(params, 'userref', 'clientOrderId')
1818
1820
  request: dict = {
1819
1821
  'trades': True, # whether or not to include trades in output(optional, default False)
1820
- # 'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
1822
+ 'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
1821
1823
  # 'userref': 'optional', # restrict results to given user reference id(optional)
1822
1824
  }
1823
1825
  query = params
1824
1826
  if clientOrderId is not None:
1825
1827
  request['userref'] = clientOrderId
1826
1828
  query = self.omit(params, ['userref', 'clientOrderId'])
1827
- else:
1828
- request['txid'] = id
1829
1829
  response = await self.privatePostQueryOrders(self.extend(request, query))
1830
1830
  #
1831
1831
  # {
@@ -870,7 +870,6 @@ class kuna(Exchange, ImplicitAPI):
870
870
  'fee': {
871
871
  'cost': self.safe_string(trade, 'fee'),
872
872
  'currency': self.safe_currency_code(self.safe_string(trade, 'feeCurrency')),
873
- 'rate': None,
874
873
  },
875
874
  }, market)
876
875
 
@@ -658,6 +658,12 @@ class vertex(Exchange, ImplicitAPI):
658
658
  amount = None
659
659
  side = None
660
660
  fee = None
661
+ feeCost = self.convert_from_x18(self.safe_string(trade, 'fee'))
662
+ if feeCost is not None:
663
+ fee = {
664
+ 'cost': feeCost,
665
+ 'currency': None,
666
+ }
661
667
  id = self.safe_string_2(trade, 'trade_id', 'submission_idx')
662
668
  order = self.safe_string(trade, 'digest')
663
669
  timestamp = self.safe_timestamp(trade, 'timestamp')
@@ -673,10 +679,6 @@ class vertex(Exchange, ImplicitAPI):
673
679
  subOrder = self.safe_dict(trade, 'order', {})
674
680
  price = self.convert_from_x18(self.safe_string(subOrder, 'priceX18'))
675
681
  amount = self.convert_from_x18(self.safe_string(trade, 'base_filled'))
676
- fee = {
677
- 'cost': self.convert_from_x18(self.safe_string(trade, 'fee')),
678
- 'currency': None,
679
- }
680
682
  if Precise.string_lt(amount, '0'):
681
683
  side = 'sell'
682
684
  else:
@@ -603,6 +603,9 @@ class woo(Exchange, ImplicitAPI):
603
603
  amount = self.safe_string(trade, 'executed_quantity')
604
604
  order_id = self.safe_string(trade, 'order_id')
605
605
  fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
606
+ feeCost = self.safe_string(fee, 'cost')
607
+ if feeCost is not None:
608
+ fee['cost'] = feeCost
606
609
  cost = Precise.string_mul(price, amount)
607
610
  side = self.safe_string_lower(trade, 'side')
608
611
  id = self.safe_string(trade, 'id')
@@ -673,6 +673,9 @@ class woofipro(Exchange, ImplicitAPI):
673
673
  amount = self.safe_string(trade, 'executed_quantity')
674
674
  order_id = self.safe_string(trade, 'order_id')
675
675
  fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
676
+ feeCost = self.safe_string(fee, 'cost')
677
+ if feeCost is not None:
678
+ fee['cost'] = feeCost
676
679
  cost = Precise.string_mul(price, amount)
677
680
  side = self.safe_string_lower(trade, 'side')
678
681
  id = self.safe_string(trade, 'id')
@@ -2035,7 +2035,6 @@ class xt(Exchange, ImplicitAPI):
2035
2035
  'fee': {
2036
2036
  'currency': self.safe_currency_code(self.safe_string_2(trade, 'feeCurrency', 'feeCoin')),
2037
2037
  'cost': self.safe_string(trade, 'fee'),
2038
- 'rate': None,
2039
2038
  },
2040
2039
  }, market)
2041
2040
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.77'
7
+ __version__ = '4.3.78'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -3276,40 +3276,53 @@ class Exchange(object):
3276
3276
  multiplyPrice = Precise.string_div('1', price)
3277
3277
  multiplyPrice = Precise.string_mul(multiplyPrice, contractSize)
3278
3278
  cost = Precise.string_mul(multiplyPrice, amount)
3279
- parseFee = self.safe_value(trade, 'fee') is None
3280
- parseFees = self.safe_value(trade, 'fees') is None
3281
- shouldParseFees = parseFee or parseFees
3282
- fees = []
3283
- fee = self.safe_value(trade, 'fee')
3284
- if shouldParseFees:
3285
- reducedFees = self.reduce_fees_by_currency(fees) if self.reduceFees else fees
3286
- reducedLength = len(reducedFees)
3287
- for i in range(0, reducedLength):
3288
- reducedFees[i]['cost'] = self.safe_number(reducedFees[i], 'cost')
3289
- if 'rate' in reducedFees[i]:
3290
- reducedFees[i]['rate'] = self.safe_number(reducedFees[i], 'rate')
3291
- if not parseFee and (reducedLength == 0):
3292
- # copy fee to avoid modification by reference
3293
- feeCopy = self.deep_extend(fee)
3294
- feeCopy['cost'] = self.safe_number(feeCopy, 'cost')
3295
- if 'rate' in feeCopy:
3296
- feeCopy['rate'] = self.safe_number(feeCopy, 'rate')
3297
- reducedFees.append(feeCopy)
3298
- if parseFees:
3299
- trade['fees'] = reducedFees
3300
- if parseFee and (reducedLength == 1):
3301
- trade['fee'] = reducedFees[0]
3302
- tradeFee = self.safe_value(trade, 'fee')
3303
- if tradeFee is not None:
3304
- tradeFee['cost'] = self.safe_number(tradeFee, 'cost')
3305
- if 'rate' in tradeFee:
3306
- tradeFee['rate'] = self.safe_number(tradeFee, 'rate')
3307
- trade['fee'] = tradeFee
3279
+ resultFee, resultFees = self.parsed_fee_and_fees(trade)
3280
+ trade['fee'] = resultFee
3281
+ trade['fees'] = resultFees
3308
3282
  trade['amount'] = self.parse_number(amount)
3309
3283
  trade['price'] = self.parse_number(price)
3310
3284
  trade['cost'] = self.parse_number(cost)
3311
3285
  return trade
3312
3286
 
3287
+ def parsed_fee_and_fees(self, container: Any):
3288
+ fee = self.safe_dict(container, 'fee')
3289
+ fees = self.safe_list(container, 'fees')
3290
+ feeDefined = fee is not None
3291
+ feesDefined = fees is not None
3292
+ # parsing only if at least one of them is defined
3293
+ shouldParseFees = (feeDefined or feesDefined)
3294
+ if shouldParseFees:
3295
+ if feeDefined:
3296
+ fee = self.parse_fee_numeric(fee)
3297
+ if not feesDefined:
3298
+ # just set it directly, no further processing needed
3299
+ fees = [fee]
3300
+ # 'fees' were set, so reparse them
3301
+ reducedFees = self.reduce_fees_by_currency(fees) if self.reduceFees else fees
3302
+ reducedLength = len(reducedFees)
3303
+ for i in range(0, reducedLength):
3304
+ reducedFees[i] = self.parse_fee_numeric(reducedFees[i])
3305
+ fees = reducedFees
3306
+ if reducedLength == 1:
3307
+ fee = reducedFees[0]
3308
+ elif reducedLength == 0:
3309
+ fee = None
3310
+ # in case `fee & fees` are None, set `fees` array
3311
+ if fee is None:
3312
+ fee = {
3313
+ 'cost': None,
3314
+ 'currency': None,
3315
+ }
3316
+ if fees is None:
3317
+ fees = []
3318
+ return [fee, fees]
3319
+
3320
+ def parse_fee_numeric(self, fee: Any):
3321
+ fee['cost'] = self.safe_number(fee, 'cost') # ensure numeric
3322
+ if 'rate' in fee:
3323
+ fee['rate'] = self.safe_number(fee, 'rate')
3324
+ return fee
3325
+
3313
3326
  def find_nearest_ceiling(self, arr: List[float], providedValue: float):
3314
3327
  # i.e. findNearestCeiling([10, 30, 50], 23) returns 30
3315
3328
  length = len(arr)
@@ -3378,12 +3391,13 @@ class Exchange(object):
3378
3391
  reduced = {}
3379
3392
  for i in range(0, len(fees)):
3380
3393
  fee = fees[i]
3381
- feeCurrencyCode = self.safe_string(fee, 'currency')
3394
+ code = self.safe_string(fee, 'currency')
3395
+ feeCurrencyCode = code is not code if None else str(i)
3382
3396
  if feeCurrencyCode is not None:
3383
3397
  rate = self.safe_string(fee, 'rate')
3384
- cost = self.safe_value(fee, 'cost')
3385
- if Precise.string_eq(cost, '0'):
3386
- # omit zero cost fees
3398
+ cost = self.safe_string(fee, 'cost')
3399
+ if cost is None:
3400
+ # omit None cost, does not make sense, however, don't omit '0' costs, still make sense
3387
3401
  continue
3388
3402
  if not (feeCurrencyCode in reduced):
3389
3403
  reduced[feeCurrencyCode] = {}
@@ -3392,7 +3406,7 @@ class Exchange(object):
3392
3406
  reduced[feeCurrencyCode][rateKey]['cost'] = Precise.string_add(reduced[feeCurrencyCode][rateKey]['cost'], cost)
3393
3407
  else:
3394
3408
  reduced[feeCurrencyCode][rateKey] = {
3395
- 'currency': feeCurrencyCode,
3409
+ 'currency': code,
3396
3410
  'cost': cost,
3397
3411
  }
3398
3412
  if rate is not None:
@@ -3424,7 +3438,13 @@ class Exchange(object):
3424
3438
  if change is None:
3425
3439
  change = Precise.string_sub(last, open)
3426
3440
  if average is None:
3427
- average = Precise.string_div(Precise.string_add(last, open), '2')
3441
+ precision = 18
3442
+ if market is not None and self.is_tick_precision():
3443
+ marketPrecision = self.safe_dict(market, 'precision')
3444
+ precisionPrice = self.safe_string(marketPrecision, 'price')
3445
+ if precisionPrice is not None:
3446
+ precision = self.precision_from_string(precisionPrice)
3447
+ average = Precise.string_div(Precise.string_add(last, open), '2', precision)
3428
3448
  if (percentage is None) and (change is not None) and (open is not None) and Precise.string_gt(open, '0'):
3429
3449
  percentage = Precise.string_mul(Precise.string_div(change, open), '100')
3430
3450
  if (change is None) and (percentage is not None) and (open is not None):
@@ -1179,7 +1179,6 @@ class bingx(Exchange, ImplicitAPI):
1179
1179
  'fee': {
1180
1180
  'cost': self.parse_number(Precise.string_abs(self.safe_string_2(trade, 'commission', 'n'))),
1181
1181
  'currency': currencyCode,
1182
- 'rate': None,
1183
1182
  },
1184
1183
  }, market)
1185
1184
 
@@ -1330,6 +1330,7 @@ class bitget(Exchange, ImplicitAPI):
1330
1330
  'JADE': 'Jade Protocol',
1331
1331
  'DEGEN': 'DegenReborn',
1332
1332
  'TONCOIN': 'TON',
1333
+ 'OMNI': 'omni', # conflict with Omni Network
1333
1334
  },
1334
1335
  'options': {
1335
1336
  'timeframes': {
@@ -1886,7 +1886,6 @@ class bitteam(Exchange, ImplicitAPI):
1886
1886
  fee = {
1887
1887
  'currency': self.safe_currency_code(feeCurrencyId),
1888
1888
  'cost': feeCost,
1889
- 'rate': None,
1890
1889
  }
1891
1890
  intTs = self.parse_to_int(timestamp)
1892
1891
  return self.safe_trade({
@@ -3293,8 +3293,8 @@ class gate(Exchange, ImplicitAPI):
3293
3293
  side = self.safe_string_2(trade, 'side', 'type', contractSide)
3294
3294
  orderId = self.safe_string(trade, 'order_id')
3295
3295
  feeAmount = self.safe_string(trade, 'fee')
3296
- gtFee = self.safe_string(trade, 'gt_fee')
3297
- pointFee = self.safe_string(trade, 'point_fee')
3296
+ gtFee = self.omit_zero(self.safe_string(trade, 'gt_fee'))
3297
+ pointFee = self.omit_zero(self.safe_string(trade, 'point_fee'))
3298
3298
  fees = []
3299
3299
  if feeAmount is not None:
3300
3300
  feeCurrencyId = self.safe_string(trade, 'fee_currency')
@@ -1336,7 +1336,7 @@ class kraken(Exchange, ImplicitAPI):
1336
1336
  def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1337
1337
  """
1338
1338
  create a market order by providing the symbol, side and cost
1339
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1339
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1340
1340
  :param str symbol: unified symbol of the market to create an order in(only USD markets are supported)
1341
1341
  :param str side: 'buy' or 'sell'
1342
1342
  :param float cost: how much you want to trade in units of the quote currency
@@ -1351,7 +1351,7 @@ class kraken(Exchange, ImplicitAPI):
1351
1351
  def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
1352
1352
  """
1353
1353
  create a market buy order by providing the symbol, side and cost
1354
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1354
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1355
1355
  :param str symbol: unified symbol of the market to create an order in
1356
1356
  :param float cost: how much you want to trade in units of the quote currency
1357
1357
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1362,7 +1362,7 @@ class kraken(Exchange, ImplicitAPI):
1362
1362
 
1363
1363
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1364
1364
  """
1365
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
1365
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
1366
1366
  create a trade order
1367
1367
  :param str symbol: unified symbol of the market to create an order in
1368
1368
  :param str type: 'market' or 'limit'
@@ -1495,6 +1495,8 @@ class kraken(Exchange, ImplicitAPI):
1495
1495
  # "status": "ok",
1496
1496
  # "txid": "OAW2BO-7RWEK-PZY5UO",
1497
1497
  # "originaltxid": "OXL6SS-UPNMC-26WBE7",
1498
+ # "newuserref": 1234,
1499
+ # "olduserref": 123,
1498
1500
  # "volume": "0.00075000",
1499
1501
  # "price": "13500.0",
1500
1502
  # "orders_cancelled": 1,
@@ -1623,7 +1625,7 @@ class kraken(Exchange, ImplicitAPI):
1623
1625
  if (id is None) or (id.startswith('[')):
1624
1626
  txid = self.safe_list(order, 'txid')
1625
1627
  id = self.safe_string(txid, 0)
1626
- clientOrderId = self.safe_string(order, 'userref')
1628
+ clientOrderId = self.safe_string_2(order, 'userref', 'newuserref')
1627
1629
  rawTrades = self.safe_value(order, 'trades', [])
1628
1630
  trades = []
1629
1631
  for i in range(0, len(rawTrades)):
@@ -1750,7 +1752,7 @@ class kraken(Exchange, ImplicitAPI):
1750
1752
  if postOnly:
1751
1753
  extendedPostFlags = flags + ',post' if (flags is not None) else 'post'
1752
1754
  request['oflags'] = extendedPostFlags
1753
- if (flags is not None) and (request['oflags'] is None):
1755
+ if (flags is not None) and not ('oflags' in request):
1754
1756
  request['oflags'] = flags
1755
1757
  params = self.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingAmount', 'trailingLimitAmount', 'offset'])
1756
1758
  return [request, params]
@@ -1758,7 +1760,7 @@ class kraken(Exchange, ImplicitAPI):
1758
1760
  def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
1759
1761
  """
1760
1762
  edit a trade order
1761
- :see: https://docs.kraken.com/rest/#tag/Trading/operation/editOrder
1763
+ :see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/editOrder
1762
1764
  :param str id: order id
1763
1765
  :param str symbol: unified symbol of the market to create an order in
1764
1766
  :param str type: 'market' or 'limit'
@@ -1817,15 +1819,13 @@ class kraken(Exchange, ImplicitAPI):
1817
1819
  clientOrderId = self.safe_value_2(params, 'userref', 'clientOrderId')
1818
1820
  request: dict = {
1819
1821
  'trades': True, # whether or not to include trades in output(optional, default False)
1820
- # 'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
1822
+ 'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
1821
1823
  # 'userref': 'optional', # restrict results to given user reference id(optional)
1822
1824
  }
1823
1825
  query = params
1824
1826
  if clientOrderId is not None:
1825
1827
  request['userref'] = clientOrderId
1826
1828
  query = self.omit(params, ['userref', 'clientOrderId'])
1827
- else:
1828
- request['txid'] = id
1829
1829
  response = self.privatePostQueryOrders(self.extend(request, query))
1830
1830
  #
1831
1831
  # {
@@ -870,7 +870,6 @@ class kuna(Exchange, ImplicitAPI):
870
870
  'fee': {
871
871
  'cost': self.safe_string(trade, 'fee'),
872
872
  'currency': self.safe_currency_code(self.safe_string(trade, 'feeCurrency')),
873
- 'rate': None,
874
873
  },
875
874
  }, market)
876
875
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.77'
7
+ __version__ = '4.3.78'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -204,7 +204,7 @@ class binance(ccxt.async_support.binance):
204
204
  :param dict [params]: exchange specific parameters for the bitmex api endpoint
205
205
  :returns dict: an array of `liquidation structures <https://github.com/ccxt/ccxt/wiki/Manual#liquidation-structure>`
206
206
  """
207
- return self.watch_liquidations_for_symbols([symbol], since, limit, params)
207
+ return await self.watch_liquidations_for_symbols([symbol], since, limit, params)
208
208
 
209
209
  async def watch_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
210
210
  """
@@ -112,6 +112,7 @@ class paradex(ccxt.async_support.paradex):
112
112
  :param dict [params]: extra parameters specific to the exchange API endpoint
113
113
  :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
114
114
  """
115
+ await self.load_markets()
115
116
  market = self.market(symbol)
116
117
  messageHash = 'order_book.' + market['id'] + '.snapshot@15@100ms'
117
118
  url = self.urls['api']['ws']
@@ -213,6 +214,7 @@ class paradex(ccxt.async_support.paradex):
213
214
  :param dict [params]: extra parameters specific to the exchange API endpoint
214
215
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
215
216
  """
217
+ await self.load_markets()
216
218
  symbols = self.market_symbols(symbols)
217
219
  channel = 'markets_summary'
218
220
  url = self.urls['api']['ws']
@@ -658,6 +658,12 @@ class vertex(Exchange, ImplicitAPI):
658
658
  amount = None
659
659
  side = None
660
660
  fee = None
661
+ feeCost = self.convert_from_x18(self.safe_string(trade, 'fee'))
662
+ if feeCost is not None:
663
+ fee = {
664
+ 'cost': feeCost,
665
+ 'currency': None,
666
+ }
661
667
  id = self.safe_string_2(trade, 'trade_id', 'submission_idx')
662
668
  order = self.safe_string(trade, 'digest')
663
669
  timestamp = self.safe_timestamp(trade, 'timestamp')
@@ -673,10 +679,6 @@ class vertex(Exchange, ImplicitAPI):
673
679
  subOrder = self.safe_dict(trade, 'order', {})
674
680
  price = self.convert_from_x18(self.safe_string(subOrder, 'priceX18'))
675
681
  amount = self.convert_from_x18(self.safe_string(trade, 'base_filled'))
676
- fee = {
677
- 'cost': self.convert_from_x18(self.safe_string(trade, 'fee')),
678
- 'currency': None,
679
- }
680
682
  if Precise.string_lt(amount, '0'):
681
683
  side = 'sell'
682
684
  else:
@@ -603,6 +603,9 @@ class woo(Exchange, ImplicitAPI):
603
603
  amount = self.safe_string(trade, 'executed_quantity')
604
604
  order_id = self.safe_string(trade, 'order_id')
605
605
  fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
606
+ feeCost = self.safe_string(fee, 'cost')
607
+ if feeCost is not None:
608
+ fee['cost'] = feeCost
606
609
  cost = Precise.string_mul(price, amount)
607
610
  side = self.safe_string_lower(trade, 'side')
608
611
  id = self.safe_string(trade, 'id')
@@ -673,6 +673,9 @@ class woofipro(Exchange, ImplicitAPI):
673
673
  amount = self.safe_string(trade, 'executed_quantity')
674
674
  order_id = self.safe_string(trade, 'order_id')
675
675
  fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
676
+ feeCost = self.safe_string(fee, 'cost')
677
+ if feeCost is not None:
678
+ fee['cost'] = feeCost
676
679
  cost = Precise.string_mul(price, amount)
677
680
  side = self.safe_string_lower(trade, 'side')
678
681
  id = self.safe_string(trade, 'id')
@@ -2034,7 +2034,6 @@ class xt(Exchange, ImplicitAPI):
2034
2034
  'fee': {
2035
2035
  'currency': self.safe_currency_code(self.safe_string_2(trade, 'feeCurrency', 'feeCoin')),
2036
2036
  'cost': self.safe_string(trade, 'fee'),
2037
- 'rate': None,
2038
2037
  },
2039
2038
  }, market)
2040
2039
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.77
3
+ Version: 4.3.78
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
@@ -259,13 +259,13 @@ console.log(version, Object.keys(exchanges));
259
259
 
260
260
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
261
261
 
262
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.77/dist/ccxt.browser.min.js
263
- * unpkg: https://unpkg.com/ccxt@4.3.77/dist/ccxt.browser.min.js
262
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js
263
+ * unpkg: https://unpkg.com/ccxt@4.3.78/dist/ccxt.browser.min.js
264
264
 
265
265
  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.
266
266
 
267
267
  ```HTML
268
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.77/dist/ccxt.browser.min.js"></script>
268
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js"></script>
269
269
  ```
270
270
 
271
271
  Creates a global `ccxt` object:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.3.77",
3
+ "version": "4.3.78",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.min.js",
6
6
  "type": "module",
File without changes
File without changes
File without changes