ccxt 4.4.67__tar.gz → 4.4.69__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 (673) hide show
  1. {ccxt-4.4.67/ccxt.egg-info → ccxt-4.4.69}/PKG-INFO +6 -6
  2. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/__init__.py +1 -1
  3. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/paradex.py +23 -0
  4. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/tradeogre.py +1 -0
  5. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/__init__.py +1 -1
  6. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/exchange.py +10 -5
  7. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/binance.py +16 -2
  8. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitrue.py +1 -1
  9. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitstamp.py +2 -3
  10. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bybit.py +1 -1
  11. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinbase.py +69 -2
  12. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/cryptomus.py +122 -6
  13. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/hyperliquid.py +1 -1
  14. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/luno.py +113 -1
  15. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/paradex.py +173 -5
  16. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/phemex.py +2 -2
  17. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/tradeogre.py +14 -9
  18. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/whitebit.py +210 -2
  19. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/exchange.py +6 -4
  20. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/binance.py +16 -2
  21. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitrue.py +1 -1
  22. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitstamp.py +2 -3
  23. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bybit.py +1 -1
  24. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinbase.py +69 -2
  25. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/cryptomus.py +122 -6
  26. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/hyperliquid.py +1 -1
  27. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/luno.py +113 -1
  28. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/paradex.py +173 -5
  29. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/phemex.py +2 -2
  30. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/__init__.py +1 -1
  31. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/test/tests_async.py +22 -0
  32. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/test/tests_sync.py +22 -0
  33. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/tradeogre.py +14 -9
  34. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/whitebit.py +210 -2
  35. {ccxt-4.4.67 → ccxt-4.4.69/ccxt.egg-info}/PKG-INFO +6 -6
  36. {ccxt-4.4.67 → ccxt-4.4.69}/package.json +4 -4
  37. {ccxt-4.4.67 → ccxt-4.4.69}/LICENSE.txt +0 -0
  38. {ccxt-4.4.67 → ccxt-4.4.69}/MANIFEST.in +0 -0
  39. {ccxt-4.4.67 → ccxt-4.4.69}/README.rst +0 -0
  40. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/__init__.py +0 -0
  41. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/ace.py +0 -0
  42. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/alpaca.py +0 -0
  43. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/ascendex.py +0 -0
  44. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bequant.py +0 -0
  45. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bigone.py +0 -0
  46. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/binance.py +0 -0
  47. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/binancecoinm.py +0 -0
  48. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/binanceus.py +0 -0
  49. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/binanceusdm.py +0 -0
  50. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bingx.py +0 -0
  51. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bit2c.py +0 -0
  52. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitbank.py +0 -0
  53. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitbns.py +0 -0
  54. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitcoincom.py +0 -0
  55. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitfinex.py +0 -0
  56. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitfinex1.py +0 -0
  57. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitflyer.py +0 -0
  58. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitget.py +0 -0
  59. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bithumb.py +0 -0
  60. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitmart.py +0 -0
  61. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitmex.py +0 -0
  62. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitopro.py +0 -0
  63. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitpanda.py +0 -0
  64. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitrue.py +0 -0
  65. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitso.py +0 -0
  66. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitstamp.py +0 -0
  67. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitteam.py +0 -0
  68. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bitvavo.py +0 -0
  69. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bl3p.py +0 -0
  70. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/blockchaincom.py +0 -0
  71. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/blofin.py +0 -0
  72. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/btcalpha.py +0 -0
  73. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/btcbox.py +0 -0
  74. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/btcmarkets.py +0 -0
  75. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/btcturk.py +0 -0
  76. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/bybit.py +0 -0
  77. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/cex.py +0 -0
  78. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinbase.py +0 -0
  79. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinbaseadvanced.py +0 -0
  80. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinbaseexchange.py +0 -0
  81. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinbaseinternational.py +0 -0
  82. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coincatch.py +0 -0
  83. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coincheck.py +0 -0
  84. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinex.py +0 -0
  85. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinlist.py +0 -0
  86. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinmate.py +0 -0
  87. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinmetro.py +0 -0
  88. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinone.py +0 -0
  89. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinsph.py +0 -0
  90. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/coinspot.py +0 -0
  91. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/cryptocom.py +0 -0
  92. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/cryptomus.py +0 -0
  93. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/defx.py +0 -0
  94. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/delta.py +0 -0
  95. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/deribit.py +0 -0
  96. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/derive.py +0 -0
  97. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/digifinex.py +0 -0
  98. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/ellipx.py +0 -0
  99. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/exmo.py +0 -0
  100. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/fmfwio.py +0 -0
  101. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/gate.py +0 -0
  102. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/gateio.py +0 -0
  103. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/gemini.py +0 -0
  104. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/hashkey.py +0 -0
  105. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/hitbtc.py +0 -0
  106. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/hollaex.py +0 -0
  107. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/htx.py +0 -0
  108. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/huobi.py +0 -0
  109. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/huobijp.py +0 -0
  110. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/hyperliquid.py +0 -0
  111. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/idex.py +0 -0
  112. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/independentreserve.py +0 -0
  113. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/indodax.py +0 -0
  114. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/kraken.py +0 -0
  115. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/krakenfutures.py +0 -0
  116. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/kucoin.py +0 -0
  117. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/kucoinfutures.py +0 -0
  118. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/kuna.py +0 -0
  119. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/latoken.py +0 -0
  120. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/lbank.py +0 -0
  121. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/luno.py +0 -0
  122. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/mercado.py +0 -0
  123. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/mexc.py +0 -0
  124. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/myokx.py +0 -0
  125. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/ndax.py +0 -0
  126. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/novadax.py +0 -0
  127. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/oceanex.py +0 -0
  128. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/okcoin.py +0 -0
  129. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/okx.py +0 -0
  130. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/onetrading.py +0 -0
  131. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/oxfun.py +0 -0
  132. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/p2b.py +0 -0
  133. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/paymium.py +0 -0
  134. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/phemex.py +0 -0
  135. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/poloniex.py +0 -0
  136. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/poloniexfutures.py +0 -0
  137. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/probit.py +0 -0
  138. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/timex.py +0 -0
  139. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/tokocrypto.py +0 -0
  140. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/upbit.py +0 -0
  141. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/vertex.py +0 -0
  142. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/wavesexchange.py +0 -0
  143. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/whitebit.py +0 -0
  144. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/woo.py +0 -0
  145. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/woofipro.py +0 -0
  146. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/xt.py +0 -0
  147. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/yobit.py +0 -0
  148. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/zaif.py +0 -0
  149. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/abstract/zonda.py +0 -0
  150. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/ace.py +0 -0
  151. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/alpaca.py +0 -0
  152. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/ascendex.py +0 -0
  153. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/ace.py +0 -0
  154. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/alpaca.py +0 -0
  155. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/ascendex.py +0 -0
  156. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/__init__.py +0 -0
  157. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/throttler.py +0 -0
  158. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/__init__.py +0 -0
  159. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  160. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/cache.py +0 -0
  161. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/client.py +0 -0
  162. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/fast_client.py +0 -0
  163. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/functions.py +0 -0
  164. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/future.py +0 -0
  165. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/order_book.py +0 -0
  166. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  167. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bequant.py +0 -0
  168. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bigone.py +0 -0
  169. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/binancecoinm.py +0 -0
  170. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/binanceus.py +0 -0
  171. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/binanceusdm.py +0 -0
  172. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bingx.py +0 -0
  173. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bit2c.py +0 -0
  174. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitbank.py +0 -0
  175. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitbns.py +0 -0
  176. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitcoincom.py +0 -0
  177. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitfinex.py +0 -0
  178. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitfinex1.py +0 -0
  179. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitflyer.py +0 -0
  180. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitget.py +0 -0
  181. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bithumb.py +0 -0
  182. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitmart.py +0 -0
  183. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitmex.py +0 -0
  184. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitopro.py +0 -0
  185. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitpanda.py +0 -0
  186. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitso.py +0 -0
  187. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitteam.py +0 -0
  188. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bitvavo.py +0 -0
  189. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/bl3p.py +0 -0
  190. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/blockchaincom.py +0 -0
  191. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/blofin.py +0 -0
  192. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/btcalpha.py +0 -0
  193. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/btcbox.py +0 -0
  194. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/btcmarkets.py +0 -0
  195. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/btcturk.py +0 -0
  196. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/cex.py +0 -0
  197. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinbaseadvanced.py +0 -0
  198. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinbaseexchange.py +0 -0
  199. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinbaseinternational.py +0 -0
  200. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coincatch.py +0 -0
  201. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coincheck.py +0 -0
  202. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinex.py +0 -0
  203. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinlist.py +0 -0
  204. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinmate.py +0 -0
  205. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinmetro.py +0 -0
  206. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinone.py +0 -0
  207. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinsph.py +0 -0
  208. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/coinspot.py +0 -0
  209. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/cryptocom.py +0 -0
  210. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/defx.py +0 -0
  211. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/delta.py +0 -0
  212. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/deribit.py +0 -0
  213. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/derive.py +0 -0
  214. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/digifinex.py +0 -0
  215. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/ellipx.py +0 -0
  216. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/exmo.py +0 -0
  217. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/fmfwio.py +0 -0
  218. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/gate.py +0 -0
  219. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/gateio.py +0 -0
  220. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/gemini.py +0 -0
  221. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/hashkey.py +0 -0
  222. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/hitbtc.py +0 -0
  223. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/hollaex.py +0 -0
  224. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/htx.py +0 -0
  225. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/huobi.py +0 -0
  226. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/huobijp.py +0 -0
  227. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/idex.py +0 -0
  228. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/independentreserve.py +0 -0
  229. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/indodax.py +0 -0
  230. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/kraken.py +0 -0
  231. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/krakenfutures.py +0 -0
  232. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/kucoin.py +0 -0
  233. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/kucoinfutures.py +0 -0
  234. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/kuna.py +0 -0
  235. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/latoken.py +0 -0
  236. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/lbank.py +0 -0
  237. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/mercado.py +0 -0
  238. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/mexc.py +0 -0
  239. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/myokx.py +0 -0
  240. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/ndax.py +0 -0
  241. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/novadax.py +0 -0
  242. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/oceanex.py +0 -0
  243. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/okcoin.py +0 -0
  244. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/okx.py +0 -0
  245. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/onetrading.py +0 -0
  246. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/oxfun.py +0 -0
  247. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/p2b.py +0 -0
  248. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/paymium.py +0 -0
  249. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/poloniex.py +0 -0
  250. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/poloniexfutures.py +0 -0
  251. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/probit.py +0 -0
  252. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/timex.py +0 -0
  253. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/tokocrypto.py +0 -0
  254. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/upbit.py +0 -0
  255. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/vertex.py +0 -0
  256. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/wavesexchange.py +0 -0
  257. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/woo.py +0 -0
  258. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/woofipro.py +0 -0
  259. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/xt.py +0 -0
  260. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/yobit.py +0 -0
  261. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/zaif.py +0 -0
  262. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/async_support/zonda.py +0 -0
  263. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/__init__.py +0 -0
  264. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/decimal_to_precision.py +0 -0
  265. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/errors.py +0 -0
  266. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/precise.py +0 -0
  267. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/base/types.py +0 -0
  268. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bequant.py +0 -0
  269. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bigone.py +0 -0
  270. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/binancecoinm.py +0 -0
  271. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/binanceus.py +0 -0
  272. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/binanceusdm.py +0 -0
  273. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bingx.py +0 -0
  274. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bit2c.py +0 -0
  275. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitbank.py +0 -0
  276. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitbns.py +0 -0
  277. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitcoincom.py +0 -0
  278. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitfinex.py +0 -0
  279. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitfinex1.py +0 -0
  280. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitflyer.py +0 -0
  281. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitget.py +0 -0
  282. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bithumb.py +0 -0
  283. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitmart.py +0 -0
  284. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitmex.py +0 -0
  285. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitopro.py +0 -0
  286. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitpanda.py +0 -0
  287. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitso.py +0 -0
  288. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitteam.py +0 -0
  289. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bitvavo.py +0 -0
  290. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/bl3p.py +0 -0
  291. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/blockchaincom.py +0 -0
  292. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/blofin.py +0 -0
  293. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/btcalpha.py +0 -0
  294. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/btcbox.py +0 -0
  295. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/btcmarkets.py +0 -0
  296. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/btcturk.py +0 -0
  297. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/cex.py +0 -0
  298. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinbaseadvanced.py +0 -0
  299. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinbaseexchange.py +0 -0
  300. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinbaseinternational.py +0 -0
  301. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coincatch.py +0 -0
  302. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coincheck.py +0 -0
  303. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinex.py +0 -0
  304. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinlist.py +0 -0
  305. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinmate.py +0 -0
  306. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinmetro.py +0 -0
  307. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinone.py +0 -0
  308. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinsph.py +0 -0
  309. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/coinspot.py +0 -0
  310. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/cryptocom.py +0 -0
  311. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/defx.py +0 -0
  312. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/delta.py +0 -0
  313. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/deribit.py +0 -0
  314. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/derive.py +0 -0
  315. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/digifinex.py +0 -0
  316. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/ellipx.py +0 -0
  317. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/exmo.py +0 -0
  318. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/fmfwio.py +0 -0
  319. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/gate.py +0 -0
  320. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/gateio.py +0 -0
  321. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/gemini.py +0 -0
  322. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/hashkey.py +0 -0
  323. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/hitbtc.py +0 -0
  324. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/hollaex.py +0 -0
  325. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/htx.py +0 -0
  326. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/huobi.py +0 -0
  327. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/huobijp.py +0 -0
  328. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/idex.py +0 -0
  329. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/independentreserve.py +0 -0
  330. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/indodax.py +0 -0
  331. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/kraken.py +0 -0
  332. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/krakenfutures.py +0 -0
  333. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/kucoin.py +0 -0
  334. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/kucoinfutures.py +0 -0
  335. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/kuna.py +0 -0
  336. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/latoken.py +0 -0
  337. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/lbank.py +0 -0
  338. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/mercado.py +0 -0
  339. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/mexc.py +0 -0
  340. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/myokx.py +0 -0
  341. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/ndax.py +0 -0
  342. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/novadax.py +0 -0
  343. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/oceanex.py +0 -0
  344. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/okcoin.py +0 -0
  345. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/okx.py +0 -0
  346. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/onetrading.py +0 -0
  347. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/oxfun.py +0 -0
  348. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/p2b.py +0 -0
  349. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/paymium.py +0 -0
  350. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/poloniex.py +0 -0
  351. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/poloniexfutures.py +0 -0
  352. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/alpaca.py +0 -0
  353. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/ascendex.py +0 -0
  354. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bequant.py +0 -0
  355. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/binance.py +0 -0
  356. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/binancecoinm.py +0 -0
  357. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/binanceus.py +0 -0
  358. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/binanceusdm.py +0 -0
  359. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bingx.py +0 -0
  360. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitcoincom.py +0 -0
  361. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitfinex.py +0 -0
  362. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitfinex1.py +0 -0
  363. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitget.py +0 -0
  364. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bithumb.py +0 -0
  365. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitmart.py +0 -0
  366. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitmex.py +0 -0
  367. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitopro.py +0 -0
  368. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitpanda.py +0 -0
  369. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitrue.py +0 -0
  370. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitstamp.py +0 -0
  371. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bitvavo.py +0 -0
  372. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/blockchaincom.py +0 -0
  373. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/blofin.py +0 -0
  374. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/bybit.py +0 -0
  375. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/cex.py +0 -0
  376. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinbase.py +0 -0
  377. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinbaseadvanced.py +0 -0
  378. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinbaseexchange.py +0 -0
  379. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinbaseinternational.py +0 -0
  380. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coincatch.py +0 -0
  381. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coincheck.py +0 -0
  382. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinex.py +0 -0
  383. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/coinone.py +0 -0
  384. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/cryptocom.py +0 -0
  385. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/defx.py +0 -0
  386. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/deribit.py +0 -0
  387. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/derive.py +0 -0
  388. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/exmo.py +0 -0
  389. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/gate.py +0 -0
  390. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/gateio.py +0 -0
  391. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/gemini.py +0 -0
  392. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/hashkey.py +0 -0
  393. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/hitbtc.py +0 -0
  394. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/hollaex.py +0 -0
  395. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/htx.py +0 -0
  396. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/huobi.py +0 -0
  397. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/huobijp.py +0 -0
  398. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/hyperliquid.py +0 -0
  399. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/idex.py +0 -0
  400. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/independentreserve.py +0 -0
  401. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/kraken.py +0 -0
  402. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/krakenfutures.py +0 -0
  403. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/kucoin.py +0 -0
  404. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/kucoinfutures.py +0 -0
  405. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/lbank.py +0 -0
  406. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/luno.py +0 -0
  407. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/mexc.py +0 -0
  408. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/myokx.py +0 -0
  409. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/ndax.py +0 -0
  410. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/okcoin.py +0 -0
  411. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/okx.py +0 -0
  412. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/onetrading.py +0 -0
  413. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/oxfun.py +0 -0
  414. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/p2b.py +0 -0
  415. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/paradex.py +0 -0
  416. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/phemex.py +0 -0
  417. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/poloniex.py +0 -0
  418. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/poloniexfutures.py +0 -0
  419. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/probit.py +0 -0
  420. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/upbit.py +0 -0
  421. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/vertex.py +0 -0
  422. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/wazirx.py +0 -0
  423. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/whitebit.py +0 -0
  424. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/woo.py +0 -0
  425. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/woofipro.py +0 -0
  426. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/pro/xt.py +0 -0
  427. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/probit.py +0 -0
  428. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/__init__.py +0 -0
  429. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  430. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  431. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  432. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  433. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  434. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  435. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  436. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  437. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  438. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  439. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  440. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  441. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  442. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  443. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  444. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  445. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  446. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  447. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  448. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  449. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  450. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  451. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  452. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  453. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  454. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  455. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  456. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  457. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  458. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  459. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  460. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  461. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  462. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  463. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  464. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  465. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  466. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  467. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  468. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  469. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  470. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  471. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  472. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  473. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  474. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  475. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  476. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  477. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  478. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  479. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  480. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  481. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  482. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  483. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  484. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  485. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  486. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  487. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  488. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  489. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  490. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  491. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  492. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  493. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  494. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  495. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  496. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  497. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  498. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  499. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  500. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  501. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  502. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  503. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/__init__.py +0 -0
  504. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  505. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  506. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  507. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/common.py +0 -0
  508. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/exceptions.py +0 -0
  509. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/grammar.py +0 -0
  510. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  511. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/indenter.py +0 -0
  512. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/lark.py +0 -0
  513. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/lexer.py +0 -0
  514. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  515. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  516. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  517. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  518. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  519. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  520. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  521. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  522. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  523. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  524. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  525. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  526. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  527. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  528. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/py.typed +0 -0
  529. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  530. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  531. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  532. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  533. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  534. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tree.py +0 -0
  535. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  536. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  537. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/utils.py +0 -0
  538. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/lark/visitors.py +0 -0
  539. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  540. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/base.py +0 -0
  541. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  542. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  543. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  544. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  545. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  546. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  547. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  548. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  549. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/types.py +0 -0
  550. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  551. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  552. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  553. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  554. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  555. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  556. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  557. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  558. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  559. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  560. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  561. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  562. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  563. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  564. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  565. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  566. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  567. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  568. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  569. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  570. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  571. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  572. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  573. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/__init__.py +0 -0
  574. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  575. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  576. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  577. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  578. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  579. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  580. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  581. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  582. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  583. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  584. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  585. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  586. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  587. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/common.py +0 -0
  588. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/constants.py +0 -0
  589. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  590. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  591. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  592. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  593. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  594. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  595. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  596. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  597. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  598. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  599. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  600. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  601. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  602. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  603. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  604. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  605. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  606. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  607. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  608. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  609. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  610. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  611. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  612. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  613. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  614. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  615. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  616. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  617. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  618. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  619. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  620. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  621. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  622. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  623. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  624. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  625. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  626. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/__init__.py +0 -0
  627. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  628. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  629. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  630. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  631. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  632. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/__init__.py +0 -0
  633. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  634. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  635. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  636. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  637. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  638. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  639. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  640. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  641. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  642. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/_version.py +0 -0
  643. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  644. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  645. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  646. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  647. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  648. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  649. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  650. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  651. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/toolz/utils.py +0 -0
  652. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  653. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
  654. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/test/__init__.py +0 -0
  655. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/test/tests_helpers.py +0 -0
  656. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/test/tests_init.py +0 -0
  657. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/timex.py +0 -0
  658. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/tokocrypto.py +0 -0
  659. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/upbit.py +0 -0
  660. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/vertex.py +0 -0
  661. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/wavesexchange.py +0 -0
  662. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/woo.py +0 -0
  663. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/woofipro.py +0 -0
  664. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/xt.py +0 -0
  665. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/yobit.py +0 -0
  666. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/zaif.py +0 -0
  667. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt/zonda.py +0 -0
  668. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt.egg-info/SOURCES.txt +0 -0
  669. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt.egg-info/dependency_links.txt +0 -0
  670. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt.egg-info/requires.txt +0 -0
  671. {ccxt-4.4.67 → ccxt-4.4.69}/ccxt.egg-info/top_level.txt +0 -0
  672. {ccxt-4.4.67 → ccxt-4.4.69}/setup.cfg +0 -0
  673. {ccxt-4.4.67 → ccxt-4.4.69}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.67
3
+ Version: 4.4.69
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
@@ -72,7 +72,7 @@ Current feature list:
72
72
  ## Certified Cryptocurrency Exchanges
73
73
 
74
74
 
75
- | logo | id | name | ver | type | certified | pro | discount |
75
+ |logo |id |name |ver |type |certified |pro |discount |
76
76
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
77
77
  | [![binance](https://github.com/user-attachments/assets/e9419b93-ccb0-46aa-9bff-c883f096274b)](https://accounts.binance.com/en/register?ref=D7YA7CLY) | binance | [Binance](https://accounts.binance.com/en/register?ref=D7YA7CLY) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://developers.binance.com/en) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Binance using CCXT's referral link for a 10% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d10%25&color=orange)](https://accounts.binance.com/en/register?ref=D7YA7CLY) |
78
78
  | [![binancecoinm](https://github.com/user-attachments/assets/387cfc4e-5f33-48cd-8f5c-cd4854dabf0c)](https://accounts.binance.com/en/register?ref=D7YA7CLY) | binancecoinm | [Binance COIN-M](https://accounts.binance.com/en/register?ref=D7YA7CLY) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://binance-docs.github.io/apidocs/delivery/en/) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Binance COIN-M using CCXT's referral link for a 10% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d10%25&color=orange)](https://accounts.binance.com/en/register?ref=D7YA7CLY) |
@@ -99,7 +99,7 @@ Current feature list:
99
99
 
100
100
  The CCXT library currently supports the following 106 cryptocurrency exchange markets and trading APIs:
101
101
 
102
- | logo | id | name | ver | type | certified | pro |
102
+ |logo |id |name |ver |type |certified |pro |
103
103
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
104
104
  | [![ace](https://github.com/user-attachments/assets/115f1e4a-0fd0-4b76-85d5-a49ebf64d1c8)](https://ace.io/) | ace | [ACE](https://ace.io/) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://github.com/ace-exchange/ace-offical-api-docs) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | |
105
105
  | [![alpaca](https://github.com/user-attachments/assets/e9476df8-a450-4c3e-ab9a-1a7794219e1b)](https://alpaca.markets) | alpaca | [Alpaca](https://alpaca.markets) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://alpaca.markets/docs/) | ![CEX – Centralized EXchange](https://img.shields.io/badge/CEX-green.svg "CEX – Centralized EXchange") | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -267,13 +267,13 @@ console.log(version, Object.keys(exchanges));
267
267
 
268
268
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
269
269
 
270
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.67/dist/ccxt.browser.min.js
271
- * unpkg: https://unpkg.com/ccxt@4.4.67/dist/ccxt.browser.min.js
270
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.69/dist/ccxt.browser.min.js
271
+ * unpkg: https://unpkg.com/ccxt@4.4.69/dist/ccxt.browser.min.js
272
272
 
273
273
  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.
274
274
 
275
275
  ```HTML
276
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.67/dist/ccxt.browser.min.js"></script>
276
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.69/dist/ccxt.browser.min.js"></script>
277
277
  ```
278
278
 
279
279
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.67'
25
+ __version__ = '4.4.69'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -14,8 +14,19 @@ class ImplicitAPI:
14
14
  public_get_system_state = publicGetSystemState = Entry('system/state', 'public', 'GET', {'cost': 1})
15
15
  public_get_system_time = publicGetSystemTime = Entry('system/time', 'public', 'GET', {'cost': 1})
16
16
  public_get_trades = publicGetTrades = Entry('trades', 'public', 'GET', {'cost': 1})
17
+ public_get_vaults = publicGetVaults = Entry('vaults', 'public', 'GET', {'cost': 1})
18
+ public_get_vaults_balance = publicGetVaultsBalance = Entry('vaults/balance', 'public', 'GET', {'cost': 1})
19
+ public_get_vaults_config = publicGetVaultsConfig = Entry('vaults/config', 'public', 'GET', {'cost': 1})
20
+ public_get_vaults_history = publicGetVaultsHistory = Entry('vaults/history', 'public', 'GET', {'cost': 1})
21
+ public_get_vaults_positions = publicGetVaultsPositions = Entry('vaults/positions', 'public', 'GET', {'cost': 1})
22
+ public_get_vaults_summary = publicGetVaultsSummary = Entry('vaults/summary', 'public', 'GET', {'cost': 1})
23
+ public_get_vaults_transfers = publicGetVaultsTransfers = Entry('vaults/transfers', 'public', 'GET', {'cost': 1})
17
24
  private_get_account = privateGetAccount = Entry('account', 'private', 'GET', {'cost': 1})
25
+ private_get_account_info = privateGetAccountInfo = Entry('account/info', 'private', 'GET', {'cost': 1})
26
+ private_get_account_history = privateGetAccountHistory = Entry('account/history', 'private', 'GET', {'cost': 1})
27
+ private_get_account_margin = privateGetAccountMargin = Entry('account/margin', 'private', 'GET', {'cost': 1})
18
28
  private_get_account_profile = privateGetAccountProfile = Entry('account/profile', 'private', 'GET', {'cost': 1})
29
+ private_get_account_subaccounts = privateGetAccountSubaccounts = Entry('account/subaccounts', 'private', 'GET', {'cost': 1})
19
30
  private_get_balance = privateGetBalance = Entry('balance', 'private', 'GET', {'cost': 1})
20
31
  private_get_fills = privateGetFills = Entry('fills', 'private', 'GET', {'cost': 1})
21
32
  private_get_funding_payments = privateGetFundingPayments = Entry('funding/payments', 'private', 'GET', {'cost': 1})
@@ -28,13 +39,25 @@ class ImplicitAPI:
28
39
  private_get_orders_by_client_id_client_id = privateGetOrdersByClientIdClientId = Entry('orders/by_client_id/{client_id}', 'private', 'GET', {'cost': 1})
29
40
  private_get_orders_order_id = privateGetOrdersOrderId = Entry('orders/{order_id}', 'private', 'GET', {'cost': 1})
30
41
  private_get_points_data_market_program = privateGetPointsDataMarketProgram = Entry('points_data/{market}/{program}', 'private', 'GET', {'cost': 1})
42
+ private_get_referrals_qr_code = privateGetReferralsQrCode = Entry('referrals/qr-code', 'private', 'GET', {'cost': 1})
31
43
  private_get_referrals_summary = privateGetReferralsSummary = Entry('referrals/summary', 'private', 'GET', {'cost': 1})
32
44
  private_get_transfers = privateGetTransfers = Entry('transfers', 'private', 'GET', {'cost': 1})
45
+ private_get_algo_orders = privateGetAlgoOrders = Entry('algo/orders', 'private', 'GET', {'cost': 1})
46
+ private_get_algo_orders_history = privateGetAlgoOrdersHistory = Entry('algo/orders-history', 'private', 'GET', {'cost': 1})
47
+ private_get_algo_orders_algo_id = privateGetAlgoOrdersAlgoId = Entry('algo/orders/{algo_id}', 'private', 'GET', {'cost': 1})
48
+ private_get_vaults_account_summary = privateGetVaultsAccountSummary = Entry('vaults/account-summary', 'private', 'GET', {'cost': 1})
49
+ private_post_account_margin_market = privatePostAccountMarginMarket = Entry('account/margin/{market}', 'private', 'POST', {'cost': 1})
50
+ private_post_account_profile_max_slippage = privatePostAccountProfileMaxSlippage = Entry('account/profile/max_slippage', 'private', 'POST', {'cost': 1})
33
51
  private_post_account_profile_referral_code = privatePostAccountProfileReferralCode = Entry('account/profile/referral_code', 'private', 'POST', {'cost': 1})
34
52
  private_post_account_profile_username = privatePostAccountProfileUsername = Entry('account/profile/username', 'private', 'POST', {'cost': 1})
35
53
  private_post_auth = privatePostAuth = Entry('auth', 'private', 'POST', {'cost': 1})
36
54
  private_post_onboarding = privatePostOnboarding = Entry('onboarding', 'private', 'POST', {'cost': 1})
37
55
  private_post_orders = privatePostOrders = Entry('orders', 'private', 'POST', {'cost': 1})
56
+ private_post_orders_batch = privatePostOrdersBatch = Entry('orders/batch', 'private', 'POST', {'cost': 1})
57
+ private_post_algo_orders = privatePostAlgoOrders = Entry('algo/orders', 'private', 'POST', {'cost': 1})
58
+ private_post_vaults = privatePostVaults = Entry('vaults', 'private', 'POST', {'cost': 1})
59
+ private_put_orders_order_id = privatePutOrdersOrderId = Entry('orders/{order_id}', 'private', 'PUT', {'cost': 1})
38
60
  private_delete_orders = privateDeleteOrders = Entry('orders', 'private', 'DELETE', {'cost': 1})
39
61
  private_delete_orders_by_client_id_client_id = privateDeleteOrdersByClientIdClientId = Entry('orders/by_client_id/{client_id}', 'private', 'DELETE', {'cost': 1})
40
62
  private_delete_orders_order_id = privateDeleteOrdersOrderId = Entry('orders/{order_id}', 'private', 'DELETE', {'cost': 1})
63
+ private_delete_algo_orders_algo_id = privateDeleteAlgoOrdersAlgoId = Entry('algo/orders/{algo_id}', 'private', 'DELETE', {'cost': 1})
@@ -7,6 +7,7 @@ class ImplicitAPI:
7
7
  public_get_ticker_market = publicGetTickerMarket = Entry('ticker/{market}', 'public', 'GET', {'cost': 1})
8
8
  public_get_history_market = publicGetHistoryMarket = Entry('history/{market}', 'public', 'GET', {'cost': 1})
9
9
  public_get_chart_interval_market_timestamp = publicGetChartIntervalMarketTimestamp = Entry('chart/{interval}/{market}/{timestamp}', 'public', 'GET', {'cost': 1})
10
+ public_get_chart_interval_market = publicGetChartIntervalMarket = Entry('chart/{interval}/{market}', 'public', 'GET', {'cost': 1})
10
11
  private_get_account_balance = privateGetAccountBalance = Entry('account/balance', 'private', 'GET', {'cost': 1})
11
12
  private_get_account_balances = privateGetAccountBalances = Entry('account/balances', 'private', 'GET', {'cost': 1})
12
13
  private_get_account_order_uuid = privateGetAccountOrderUuid = Entry('account/order/{uuid}', 'private', 'GET', {'cost': 1})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.67'
7
+ __version__ = '4.4.69'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.67'
5
+ __version__ = '4.4.69'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -24,7 +24,7 @@ from ccxt.async_support.base.throttler import Throttler
24
24
 
25
25
  # -----------------------------------------------------------------------------
26
26
 
27
- from ccxt.base.errors import BaseError, NetworkError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded
27
+ from ccxt.base.errors import BaseError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded, OperationFailed
28
28
  from ccxt.base.types import OrderType, OrderSide, OrderRequest, CancellationRequest
29
29
 
30
30
  # -----------------------------------------------------------------------------
@@ -283,6 +283,10 @@ class Exchange(BaseExchange):
283
283
  self.markets_loading = asyncio.ensure_future(coroutine)
284
284
  try:
285
285
  result = await self.markets_loading
286
+ except asyncio.CancelledError as e: # CancelledError is a base exception so we need to catch it explicitly
287
+ self.reloading_markets = False
288
+ self.markets_loading = None
289
+ raise e
286
290
  except Exception as e:
287
291
  self.reloading_markets = False
288
292
  self.markets_loading = None
@@ -881,14 +885,15 @@ class Exchange(BaseExchange):
881
885
  try:
882
886
  return await self.fetch(request['url'], request['method'], request['headers'], request['body'])
883
887
  except Exception as e:
884
- if isinstance(e, NetworkError):
888
+ if isinstance(e, OperationFailed):
885
889
  if i < retries:
886
890
  if self.verbose:
887
891
  self.log('Request failed with the error: ' + str(e) + ', retrying ' + (i + str(1)) + ' of ' + str(retries) + '...')
888
892
  if (retryDelay is not None) and (retryDelay != 0):
889
893
  await self.sleep(retryDelay)
890
- # continue #check self
891
- if i >= retries:
894
+ else:
895
+ raise e
896
+ else:
892
897
  raise e
893
898
  return None # self line is never reached, but exists for c# value return requirement
894
899
 
@@ -11326,8 +11326,22 @@ class binance(Exchange, ImplicitAPI):
11326
11326
  query = None
11327
11327
  # handle batchOrders
11328
11328
  if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
11329
- batchOrders = self.safe_value(params, 'batchOrders')
11330
- queryBatch = (self.json(batchOrders))
11329
+ batchOrders = self.safe_list(params, 'batchOrders')
11330
+ checkedBatchOrders = batchOrders
11331
+ if method == 'POST' and api == 'fapiPrivate':
11332
+ # check broker id if batchOrders are called with fapiPrivatePostBatchOrders
11333
+ checkedBatchOrders = []
11334
+ for i in range(0, len(batchOrders)):
11335
+ batchOrder = batchOrders[i]
11336
+ newClientOrderId = self.safe_string(batchOrder, 'newClientOrderId')
11337
+ if newClientOrderId is None:
11338
+ defaultId = 'x-xcKtGhcu' # batchOrders can not be spot or margin
11339
+ broker = self.safe_dict(self.options, 'broker', {})
11340
+ brokerId = self.safe_string(broker, 'future', defaultId)
11341
+ newClientOrderId = brokerId + self.uuid22()
11342
+ batchOrder['newClientOrderId'] = newClientOrderId
11343
+ checkedBatchOrders.append(batchOrder)
11344
+ queryBatch = (self.json(checkedBatchOrders))
11331
11345
  params['batchOrders'] = queryBatch
11332
11346
  defaultRecvWindow = self.safe_integer(self.options, 'recvWindow')
11333
11347
  extendedParams = self.extend({
@@ -1634,7 +1634,7 @@ class bitrue(Exchange, ImplicitAPI):
1634
1634
  tickers: dict = {}
1635
1635
  for i in range(0, len(data)):
1636
1636
  ticker = self.safe_dict(data, i, {})
1637
- market = self.market(self.safe_value(ticker, 'symbol'))
1637
+ market = self.safe_market(self.safe_string(ticker, 'symbol'))
1638
1638
  tickers[market['id']] = ticker
1639
1639
  return self.parse_tickers(tickers, symbols)
1640
1640
 
@@ -1282,10 +1282,9 @@ class bitstamp(Exchange, ImplicitAPI):
1282
1282
 
1283
1283
  def parse_trading_fees(self, fees):
1284
1284
  result: dict = {'info': fees}
1285
- symbols = self.symbols
1286
- for i in range(0, len(symbols)):
1287
- symbol = symbols[i]
1285
+ for i in range(0, len(fees)):
1288
1286
  fee = self.parse_trading_fee(fees[i])
1287
+ symbol = fee['symbol']
1289
1288
  result[symbol] = fee
1290
1289
  return result
1291
1290
 
@@ -8826,7 +8826,7 @@ classic accounts only/ spot not supported* fetches information on an order made
8826
8826
  feedback = self.id + ' private api uses /user/v3/private/query-api to check if you have a unified account. The API key of user id must own one of permissions: "Account Transfer", "Subaccount Transfer", "Withdrawal" ' + body
8827
8827
  else:
8828
8828
  feedback = self.id + ' ' + body
8829
- if body.find('Withdraw address chain or destination tag are not equal'):
8829
+ if body.find('Withdraw address chain or destination tag are not equal') > -1:
8830
8830
  feedback = feedback + '; You might also need to ensure the address is whitelisted'
8831
8831
  self.throw_broadly_matched_exception(self.exceptions['broad'], body, feedback)
8832
8832
  self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
@@ -4089,6 +4089,7 @@ class coinbase(Exchange, ImplicitAPI):
4089
4089
  'amount': self.number_to_string(amount),
4090
4090
  'currency': code.upper(), # need to use code in case depositing USD etc.
4091
4091
  'payment_method': id,
4092
+ 'commit': True, # otheriwse the deposit does not go through
4092
4093
  }
4093
4094
  response = await self.v2PrivatePostAccountsAccountIdDeposits(self.extend(request, params))
4094
4095
  #
@@ -4127,7 +4128,8 @@ class coinbase(Exchange, ImplicitAPI):
4127
4128
  # }
4128
4129
  # }
4129
4130
  #
4130
- data = self.safe_dict(response, 'data', {})
4131
+ # https://github.com/ccxt/ccxt/issues/25484
4132
+ data = self.safe_dict_2(response, 'data', 'transfer', {})
4131
4133
  return self.parse_transaction(data)
4132
4134
 
4133
4135
  async def fetch_deposit(self, id: str, code: Str = None, params={}):
@@ -4192,7 +4194,8 @@ class coinbase(Exchange, ImplicitAPI):
4192
4194
  # }
4193
4195
  # }
4194
4196
  #
4195
- data = self.safe_dict(response, 'data', {})
4197
+ # https://github.com/ccxt/ccxt/issues/25484
4198
+ data = self.safe_dict_2(response, 'data', 'transfer', {})
4196
4199
  return self.parse_transaction(data)
4197
4200
 
4198
4201
  async def fetch_deposit_method_ids(self, params={}):
@@ -4670,6 +4673,70 @@ class coinbase(Exchange, ImplicitAPI):
4670
4673
  }
4671
4674
  return result
4672
4675
 
4676
+ async def fetch_portfolio_details(self, portfolioUuid: str, params={}) -> List[Any]:
4677
+ """
4678
+ Fetch details for a specific portfolio by UUID
4679
+
4680
+ https://docs.cloud.coinbase.com/advanced-trade/reference/retailbrokerageapi_getportfolios
4681
+
4682
+ :param str portfolioUuid: The unique identifier of the portfolio to fetch
4683
+ :param Dict [params]: Extra parameters specific to the exchange API endpoint
4684
+ :returns any[]: An account structure <https://docs.ccxt.com/#/?id=account-structure>
4685
+ """
4686
+ await self.load_markets()
4687
+ request = {
4688
+ 'portfolio_uuid': portfolioUuid,
4689
+ }
4690
+ response = await self.v3PrivateGetBrokeragePortfoliosPortfolioUuid(self.extend(request, params))
4691
+ result = self.parse_portfolio_details(response)
4692
+ return result
4693
+
4694
+ def parse_portfolio_details(self, portfolioData: dict):
4695
+ breakdown = portfolioData['breakdown']
4696
+ portfolioInfo = self.safe_dict(breakdown, 'portfolio', {})
4697
+ portfolioName = self.safe_string(portfolioInfo, 'name', 'Unknown')
4698
+ portfolioUuid = self.safe_string(portfolioInfo, 'uuid', '')
4699
+ spotPositions = self.safe_list(breakdown, 'spot_positions', [])
4700
+ parsedPositions = []
4701
+ for i in range(0, len(spotPositions)):
4702
+ position: dict = spotPositions[i]
4703
+ currencyCode = self.safe_string(position, 'asset', 'Unknown')
4704
+ availableBalanceStr = self.safe_string(position, 'available_to_trade_fiat', '0')
4705
+ availableBalance = self.parse_number(availableBalanceStr)
4706
+ totalBalanceFiatStr = self.safe_string(position, 'total_balance_fiat', '0')
4707
+ totalBalanceFiat = self.parse_number(totalBalanceFiatStr)
4708
+ holdAmount = totalBalanceFiat - availableBalance
4709
+ costBasisDict = self.safe_dict(position, 'cost_basis', {})
4710
+ costBasisStr = self.safe_string(costBasisDict, 'value', '0')
4711
+ averageEntryPriceDict = self.safe_dict(position, 'average_entry_price', {})
4712
+ averageEntryPriceStr = self.safe_string(averageEntryPriceDict, 'value', '0')
4713
+ positionData: dict = {
4714
+ 'currency': currencyCode,
4715
+ 'available_balance': availableBalance,
4716
+ 'hold_amount': holdAmount > holdAmount if 0 else 0,
4717
+ 'wallet_name': portfolioName,
4718
+ 'account_id': portfolioUuid,
4719
+ 'account_uuid': self.safe_string(position, 'account_uuid', ''),
4720
+ 'total_balance_fiat': totalBalanceFiat,
4721
+ 'total_balance_crypto': self.parse_number(self.safe_string(position, 'total_balance_crypto', '0')),
4722
+ 'available_to_trade_fiat': self.parse_number(self.safe_string(position, 'available_to_trade_fiat', '0')),
4723
+ 'available_to_trade_crypto': self.parse_number(self.safe_string(position, 'available_to_trade_crypto', '0')),
4724
+ 'available_to_transfer_fiat': self.parse_number(self.safe_string(position, 'available_to_transfer_fiat', '0')),
4725
+ 'available_to_transfer_crypto': self.parse_number(self.safe_string(position, 'available_to_trade_crypto', '0')),
4726
+ 'allocation': self.parse_number(self.safe_string(position, 'allocation', '0')),
4727
+ 'cost_basis': self.parse_number(costBasisStr),
4728
+ 'cost_basis_currency': self.safe_string(costBasisDict, 'currency', 'USD'),
4729
+ 'is_cash': self.safe_bool(position, 'is_cash', False),
4730
+ 'average_entry_price': self.parse_number(averageEntryPriceStr),
4731
+ 'average_entry_price_currency': self.safe_string(averageEntryPriceDict, 'currency', 'USD'),
4732
+ 'asset_uuid': self.safe_string(position, 'asset_uuid', ''),
4733
+ 'unrealized_pnl': self.parse_number(self.safe_string(position, 'unrealized_pnl', '0')),
4734
+ 'asset_color': self.safe_string(position, 'asset_color', ''),
4735
+ 'account_type': self.safe_string(position, 'account_type', ''),
4736
+ }
4737
+ parsedPositions.append(positionData)
4738
+ return parsedPositions
4739
+
4673
4740
  def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None):
4674
4741
  # it may not work for v2
4675
4742
  uri = None
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.cryptomus import ImplicitAPI
8
- from ccxt.base.types import Any, Balances, Currencies, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Currencies, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import ArgumentsRequired
@@ -23,7 +23,7 @@ class cryptomus(Exchange, ImplicitAPI):
23
23
  'name': 'Cryptomus',
24
24
  'countries': ['CA'],
25
25
  'rateLimit': 100, # todo check
26
- 'version': 'v1',
26
+ 'version': 'v2',
27
27
  'certified': False,
28
28
  'pro': False,
29
29
  'has': {
@@ -105,7 +105,7 @@ class cryptomus(Exchange, ImplicitAPI):
105
105
  'fetchTime': False,
106
106
  'fetchTrades': True,
107
107
  'fetchTradingFee': False,
108
- 'fetchTradingFees': False,
108
+ 'fetchTradingFees': True,
109
109
  'fetchTransactions': False,
110
110
  'fetchTransfers': False,
111
111
  'fetchWithdrawals': False,
@@ -143,9 +143,9 @@ class cryptomus(Exchange, ImplicitAPI):
143
143
  'private': {
144
144
  'get': {
145
145
  'v2/user-api/exchange/orders': 1, # done
146
- 'v2/user-api/exchange/orders/history': 1,
146
+ 'v2/user-api/exchange/orders/history': 1, # done
147
147
  'v2/user-api/exchange/account/balance': 1, # done
148
- 'v2/user-api/exchange/account/tariffs': 1,
148
+ 'v2/user-api/exchange/account/tariffs': 1, # done
149
149
  'v2/user-api/payment/services': 1,
150
150
  'v2/user-api/payout/services': 1,
151
151
  'v2/user-api/transaction/list': 1,
@@ -231,7 +231,9 @@ class cryptomus(Exchange, ImplicitAPI):
231
231
  async def fetch_markets(self, params={}) -> List[Market]:
232
232
  """
233
233
  retrieves data on all markets for the exchange
234
+
234
235
  https://doc.cryptomus.com/personal/market-cap/tickers
236
+
235
237
  :param dict [params]: extra parameters specific to the exchange API endpoint
236
238
  :returns dict[]: an array of objects representing market data
237
239
  """
@@ -339,7 +341,9 @@ class cryptomus(Exchange, ImplicitAPI):
339
341
  async def fetch_currencies(self, params={}) -> Currencies:
340
342
  """
341
343
  fetches all available currencies on an exchange
344
+
342
345
  https://doc.cryptomus.com/personal/market-cap/assets
346
+
343
347
  :param dict [params]: extra parameters specific to the exchange API endpoint
344
348
  :returns dict: an associative dictionary of currencies
345
349
  """
@@ -466,7 +470,9 @@ class cryptomus(Exchange, ImplicitAPI):
466
470
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
467
471
  """
468
472
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
473
+
469
474
  https://doc.cryptomus.com/personal/market-cap/tickers
475
+
470
476
  :param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
471
477
  :param dict [params]: extra parameters specific to the exchange API endpoint
472
478
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -528,7 +534,9 @@ class cryptomus(Exchange, ImplicitAPI):
528
534
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
529
535
  """
530
536
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
537
+
531
538
  https://doc.cryptomus.com/personal/market-cap/orderbook
539
+
532
540
  :param str symbol: unified symbol of the market to fetch the order book for
533
541
  :param int [limit]: the maximum amount of order book entries to return
534
542
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -570,7 +578,9 @@ class cryptomus(Exchange, ImplicitAPI):
570
578
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
571
579
  """
572
580
  get the list of most recent trades for a particular symbol
581
+
573
582
  https://doc.cryptomus.com/personal/market-cap/trades
583
+
574
584
  :param str symbol: unified symbol of the market to fetch trades for
575
585
  :param int [since]: timestamp in ms of the earliest trade to fetch
576
586
  :param int [limit]: the maximum amount of trades to fetch(maximum value is 100)
@@ -634,7 +644,9 @@ class cryptomus(Exchange, ImplicitAPI):
634
644
  async def fetch_balance(self, params={}) -> Balances:
635
645
  """
636
646
  query for balance and get the amount of funds available for trading or funds locked in orders
647
+
637
648
  https://doc.cryptomus.com/personal/converts/balance
649
+
638
650
  :param dict [params]: extra parameters specific to the exchange API endpoint
639
651
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
640
652
  """
@@ -679,8 +691,10 @@ class cryptomus(Exchange, ImplicitAPI):
679
691
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
680
692
  """
681
693
  create a trade order
694
+
682
695
  https://doc.cryptomus.com/personal/exchange/market-order-creation
683
696
  https://doc.cryptomus.com/personal/exchange/limit-order-creation
697
+
684
698
  :param str symbol: unified symbol of the market to create an order in
685
699
  :param str type: 'market' or 'limit' or for spot
686
700
  :param str side: 'buy' or 'sell'
@@ -688,7 +702,6 @@ class cryptomus(Exchange, ImplicitAPI):
688
702
  :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders(only for limit orders)
689
703
  :param dict [params]: extra parameters specific to the exchange API endpoint
690
704
  :param float [params.cost]: *market buy only* the quote quantity that can be used alternative for the amount
691
- :param dict [params]: extra parameters specific to the exchange API endpoint
692
705
  :param str [params.clientOrderId]: a unique identifier for the order(optional)
693
706
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
694
707
  """
@@ -742,7 +755,9 @@ class cryptomus(Exchange, ImplicitAPI):
742
755
  async def cancel_order(self, id: str, symbol: Str = None, params={}):
743
756
  """
744
757
  cancels an open limit order
758
+
745
759
  https://doc.cryptomus.com/personal/exchange/limit-order-cancellation
760
+
746
761
  :param str id: order id
747
762
  :param str symbol: unified symbol of the market the order was made in(not used in cryptomus)
748
763
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -762,7 +777,9 @@ class cryptomus(Exchange, ImplicitAPI):
762
777
  async def fetch_canceled_and_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
763
778
  """
764
779
  fetches information on multiple orders made by the user
780
+
765
781
  https://doc.cryptomus.com/personal/exchange/history-of-completed-orders
782
+
766
783
  :param str symbol: unified market symbol of the market orders were made in(not used in cryptomus)
767
784
  :param int [since]: the earliest time in ms to fetch orders for(not used in cryptomus)
768
785
  :param int [limit]: the maximum number of order structures to retrieve(not used in cryptomus)
@@ -832,7 +849,9 @@ class cryptomus(Exchange, ImplicitAPI):
832
849
  async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
833
850
  """
834
851
  fetch all unfilled currently open orders
852
+
835
853
  https://doc.cryptomus.com/personal/exchange/list-of-active-orders
854
+
836
855
  :param str symbol: unified market symbol
837
856
  :param int [since]: the earliest time in ms to fetch open orders for(not used in cryptomus)
838
857
  :param int [limit]: the maximum number of open orders structures to retrieve(not used in cryptomus)
@@ -993,6 +1012,103 @@ class cryptomus(Exchange, ImplicitAPI):
993
1012
  }
994
1013
  return self.safe_string(statuses, status, status)
995
1014
 
1015
+ async def fetch_trading_fees(self, params={}) -> TradingFees:
1016
+ """
1017
+ fetch the trading fees for multiple markets
1018
+
1019
+ https://trade-docs.coinlist.co/?javascript--nodejs#list-fees
1020
+
1021
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1022
+ :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
1023
+ """
1024
+ response = await self.privateGetV2UserApiExchangeAccountTariffs(params)
1025
+ #
1026
+ # {
1027
+ # result: {
1028
+ # equivalent_currency_code: 'USD',
1029
+ # current_tariff_step: {
1030
+ # step: '0',
1031
+ # from_turnover: '0.00000000',
1032
+ # maker_percent: '0.08',
1033
+ # taker_percent: '0.1'
1034
+ # },
1035
+ # tariff_steps: [
1036
+ # {
1037
+ # step: '0',
1038
+ # from_turnover: '0.00000000',
1039
+ # maker_percent: '0.08',
1040
+ # taker_percent: '0.1'
1041
+ # },
1042
+ # {
1043
+ # step: '1',
1044
+ # from_turnover: '100001.00000000',
1045
+ # maker_percent: '0.06',
1046
+ # taker_percent: '0.095'
1047
+ # },
1048
+ # {
1049
+ # step: '2',
1050
+ # from_turnover: '250001.00000000',
1051
+ # maker_percent: '0.055',
1052
+ # taker_percent: '0.085'
1053
+ # },
1054
+ # {
1055
+ # step: '3',
1056
+ # from_turnover: '500001.00000000',
1057
+ # maker_percent: '0.05',
1058
+ # taker_percent: '0.075'
1059
+ # },
1060
+ # {
1061
+ # step: '4',
1062
+ # from_turnover: '2500001.00000000',
1063
+ # maker_percent: '0.04',
1064
+ # taker_percent: '0.07'
1065
+ # }
1066
+ # ],
1067
+ # daily_turnover: '0.00000000',
1068
+ # monthly_turnover: '77.52062617',
1069
+ # circulation_funds: '25.48900443'
1070
+ # }
1071
+ # }
1072
+ #
1073
+ data = self.safe_dict(response, 'result', {})
1074
+ currentFeeTier = self.safe_dict(data, 'current_tariff_step', {})
1075
+ makerFee = self.safe_string(currentFeeTier, 'maker_percent')
1076
+ takerFee = self.safe_string(currentFeeTier, 'taker_percent')
1077
+ makerFee = Precise.string_div(makerFee, '100')
1078
+ takerFee = Precise.string_div(takerFee, '100')
1079
+ feeTiers = self.safe_list(data, 'tariff_steps', [])
1080
+ result: dict = {}
1081
+ tiers = self.parse_fee_tiers(feeTiers)
1082
+ for i in range(0, len(self.symbols)):
1083
+ symbol = self.symbols[i]
1084
+ result[symbol] = {
1085
+ 'info': response,
1086
+ 'symbol': symbol,
1087
+ 'maker': self.parse_number(makerFee),
1088
+ 'taker': self.parse_number(takerFee),
1089
+ 'percentage': True,
1090
+ 'tierBased': True,
1091
+ 'tiers': tiers,
1092
+ }
1093
+ return result
1094
+
1095
+ def parse_fee_tiers(self, feeTiers, market: Market = None):
1096
+ takerFees = []
1097
+ makerFees = []
1098
+ for i in range(0, len(feeTiers)):
1099
+ tier = feeTiers[i]
1100
+ turnover = self.safe_number(tier, 'from_turnover')
1101
+ taker = self.safe_string(tier, 'taker_percent')
1102
+ maker = self.safe_string(tier, 'maker_percent')
1103
+ maker = Precise.string_div(maker, '100')
1104
+ taker = Precise.string_div(taker, '100')
1105
+ makerFees.append([turnover, self.parse_number(maker)])
1106
+ takerFees.append([turnover, self.parse_number(taker)])
1107
+ return {
1108
+ 'maker': makerFees,
1109
+ 'taker': takerFees,
1110
+ }
1111
+
996
1112
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
997
1113
  endpoint = self.implode_params(path, params)
998
1114
  params = self.omit(params, self.extract_params(path))
@@ -838,7 +838,7 @@ class hyperliquid(Exchange, ImplicitAPI):
838
838
  'info': response,
839
839
  'USDC': {
840
840
  'total': self.safe_number(data, 'accountValue'),
841
- 'free': self.safe_number(response, 'withdrawable'),
841
+ 'used': self.safe_number(data, 'totalMarginUsed'),
842
842
  },
843
843
  }
844
844
  timestamp = self.safe_integer(response, 'time')