ccxt 4.3.47__tar.gz → 4.3.48__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 (556) hide show
  1. {ccxt-4.3.47/ccxt.egg-info → ccxt-4.3.48}/PKG-INFO +4 -4
  2. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/__init__.py +1 -1
  3. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/krakenfutures.py +4 -0
  4. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/__init__.py +1 -1
  5. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/exchange.py +1 -1
  6. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/binance.py +5 -3
  7. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/gate.py +92 -48
  8. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/krakenfutures.py +4 -0
  9. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/woo.py +4 -0
  10. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/exchange.py +1 -1
  11. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/binance.py +5 -3
  12. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/gate.py +92 -48
  13. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/krakenfutures.py +4 -0
  14. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/__init__.py +1 -1
  15. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bingx.py +5 -5
  16. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/gate.py +342 -34
  17. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_order_book.py +1 -1
  18. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/woo.py +4 -0
  19. {ccxt-4.3.47 → ccxt-4.3.48/ccxt.egg-info}/PKG-INFO +4 -4
  20. {ccxt-4.3.47 → ccxt-4.3.48}/package.json +1 -1
  21. {ccxt-4.3.47 → ccxt-4.3.48}/LICENSE.txt +0 -0
  22. {ccxt-4.3.47 → ccxt-4.3.48}/MANIFEST.in +0 -0
  23. {ccxt-4.3.47 → ccxt-4.3.48}/README.rst +0 -0
  24. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/__init__.py +0 -0
  25. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/ace.py +0 -0
  26. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/alpaca.py +0 -0
  27. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/ascendex.py +0 -0
  28. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bequant.py +0 -0
  29. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bigone.py +0 -0
  30. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/binance.py +0 -0
  31. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/binancecoinm.py +0 -0
  32. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/binanceus.py +0 -0
  33. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/binanceusdm.py +0 -0
  34. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bingx.py +0 -0
  35. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bit2c.py +0 -0
  36. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitbank.py +0 -0
  37. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitbay.py +0 -0
  38. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitbns.py +0 -0
  39. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitcoincom.py +0 -0
  40. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitfinex.py +0 -0
  41. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitfinex2.py +0 -0
  42. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitflyer.py +0 -0
  43. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitget.py +0 -0
  44. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bithumb.py +0 -0
  45. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitmart.py +0 -0
  46. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitmex.py +0 -0
  47. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitopro.py +0 -0
  48. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitpanda.py +0 -0
  49. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitrue.py +0 -0
  50. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitso.py +0 -0
  51. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitstamp.py +0 -0
  52. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitteam.py +0 -0
  53. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bitvavo.py +0 -0
  54. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bl3p.py +0 -0
  55. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/blockchaincom.py +0 -0
  56. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/blofin.py +0 -0
  57. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/btcalpha.py +0 -0
  58. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/btcbox.py +0 -0
  59. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/btcmarkets.py +0 -0
  60. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/btcturk.py +0 -0
  61. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/bybit.py +0 -0
  62. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/cex.py +0 -0
  63. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinbase.py +0 -0
  64. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinbaseadvanced.py +0 -0
  65. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinbaseexchange.py +0 -0
  66. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinbaseinternational.py +0 -0
  67. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coincheck.py +0 -0
  68. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinex.py +0 -0
  69. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinlist.py +0 -0
  70. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinmate.py +0 -0
  71. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinmetro.py +0 -0
  72. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinone.py +0 -0
  73. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinsph.py +0 -0
  74. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/coinspot.py +0 -0
  75. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/cryptocom.py +0 -0
  76. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/currencycom.py +0 -0
  77. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/delta.py +0 -0
  78. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/deribit.py +0 -0
  79. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/digifinex.py +0 -0
  80. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/exmo.py +0 -0
  81. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/fmfwio.py +0 -0
  82. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/gate.py +0 -0
  83. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/gateio.py +0 -0
  84. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/gemini.py +0 -0
  85. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/hitbtc.py +0 -0
  86. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/hitbtc3.py +0 -0
  87. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/hollaex.py +0 -0
  88. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/htx.py +0 -0
  89. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/huobi.py +0 -0
  90. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/huobijp.py +0 -0
  91. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/hyperliquid.py +0 -0
  92. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/idex.py +0 -0
  93. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/independentreserve.py +0 -0
  94. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/indodax.py +0 -0
  95. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/kraken.py +0 -0
  96. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/kucoin.py +0 -0
  97. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/kucoinfutures.py +0 -0
  98. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/kuna.py +0 -0
  99. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/latoken.py +0 -0
  100. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/lbank.py +0 -0
  101. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/luno.py +0 -0
  102. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/lykke.py +0 -0
  103. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/mercado.py +0 -0
  104. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/mexc.py +0 -0
  105. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/ndax.py +0 -0
  106. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/novadax.py +0 -0
  107. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/oceanex.py +0 -0
  108. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/okcoin.py +0 -0
  109. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/okx.py +0 -0
  110. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/onetrading.py +0 -0
  111. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/oxfun.py +0 -0
  112. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/p2b.py +0 -0
  113. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/paymium.py +0 -0
  114. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/phemex.py +0 -0
  115. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/poloniex.py +0 -0
  116. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/poloniexfutures.py +0 -0
  117. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/probit.py +0 -0
  118. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/timex.py +0 -0
  119. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/tokocrypto.py +0 -0
  120. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/tradeogre.py +0 -0
  121. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/upbit.py +0 -0
  122. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/wavesexchange.py +0 -0
  123. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/wazirx.py +0 -0
  124. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/whitebit.py +0 -0
  125. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/woo.py +0 -0
  126. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/woofipro.py +0 -0
  127. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/xt.py +0 -0
  128. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/yobit.py +0 -0
  129. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/zaif.py +0 -0
  130. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/abstract/zonda.py +0 -0
  131. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/ace.py +0 -0
  132. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/alpaca.py +0 -0
  133. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/ascendex.py +0 -0
  134. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/ace.py +0 -0
  135. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/alpaca.py +0 -0
  136. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/ascendex.py +0 -0
  137. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/__init__.py +0 -0
  138. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/throttler.py +0 -0
  139. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/__init__.py +0 -0
  140. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  141. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/cache.py +0 -0
  142. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/client.py +0 -0
  143. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/fast_client.py +0 -0
  144. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/functions.py +0 -0
  145. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/future.py +0 -0
  146. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/order_book.py +0 -0
  147. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  148. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bequant.py +0 -0
  149. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bigone.py +0 -0
  150. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/binancecoinm.py +0 -0
  151. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/binanceus.py +0 -0
  152. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/binanceusdm.py +0 -0
  153. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bingx.py +0 -0
  154. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bit2c.py +0 -0
  155. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitbank.py +0 -0
  156. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitbay.py +0 -0
  157. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitbns.py +0 -0
  158. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitcoincom.py +0 -0
  159. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitfinex.py +0 -0
  160. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitfinex2.py +0 -0
  161. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitflyer.py +0 -0
  162. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitget.py +0 -0
  163. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bithumb.py +0 -0
  164. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitmart.py +0 -0
  165. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitmex.py +0 -0
  166. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitopro.py +0 -0
  167. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitpanda.py +0 -0
  168. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitrue.py +0 -0
  169. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitso.py +0 -0
  170. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitstamp.py +0 -0
  171. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitteam.py +0 -0
  172. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bitvavo.py +0 -0
  173. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bl3p.py +0 -0
  174. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/blockchaincom.py +0 -0
  175. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/blofin.py +0 -0
  176. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/btcalpha.py +0 -0
  177. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/btcbox.py +0 -0
  178. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/btcmarkets.py +0 -0
  179. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/btcturk.py +0 -0
  180. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/bybit.py +0 -0
  181. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/cex.py +0 -0
  182. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinbase.py +0 -0
  183. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinbaseadvanced.py +0 -0
  184. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinbaseexchange.py +0 -0
  185. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinbaseinternational.py +0 -0
  186. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coincheck.py +0 -0
  187. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinex.py +0 -0
  188. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinlist.py +0 -0
  189. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinmate.py +0 -0
  190. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinmetro.py +0 -0
  191. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinone.py +0 -0
  192. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinsph.py +0 -0
  193. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/coinspot.py +0 -0
  194. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/cryptocom.py +0 -0
  195. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/currencycom.py +0 -0
  196. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/delta.py +0 -0
  197. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/deribit.py +0 -0
  198. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/digifinex.py +0 -0
  199. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/exmo.py +0 -0
  200. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/fmfwio.py +0 -0
  201. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/gateio.py +0 -0
  202. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/gemini.py +0 -0
  203. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/hitbtc.py +0 -0
  204. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/hitbtc3.py +0 -0
  205. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/hollaex.py +0 -0
  206. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/htx.py +0 -0
  207. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/huobi.py +0 -0
  208. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/huobijp.py +0 -0
  209. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/hyperliquid.py +0 -0
  210. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/idex.py +0 -0
  211. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/independentreserve.py +0 -0
  212. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/indodax.py +0 -0
  213. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/kraken.py +0 -0
  214. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/kucoin.py +0 -0
  215. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/kucoinfutures.py +0 -0
  216. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/kuna.py +0 -0
  217. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/latoken.py +0 -0
  218. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/lbank.py +0 -0
  219. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/luno.py +0 -0
  220. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/lykke.py +0 -0
  221. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/mercado.py +0 -0
  222. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/mexc.py +0 -0
  223. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/ndax.py +0 -0
  224. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/novadax.py +0 -0
  225. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/oceanex.py +0 -0
  226. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/okcoin.py +0 -0
  227. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/okx.py +0 -0
  228. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/onetrading.py +0 -0
  229. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/oxfun.py +0 -0
  230. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/p2b.py +0 -0
  231. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/paymium.py +0 -0
  232. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/phemex.py +0 -0
  233. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/poloniex.py +0 -0
  234. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/poloniexfutures.py +0 -0
  235. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/probit.py +0 -0
  236. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/timex.py +0 -0
  237. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/tokocrypto.py +0 -0
  238. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/tradeogre.py +0 -0
  239. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/upbit.py +0 -0
  240. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/wavesexchange.py +0 -0
  241. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/wazirx.py +0 -0
  242. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/whitebit.py +0 -0
  243. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/woofipro.py +0 -0
  244. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/xt.py +0 -0
  245. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/yobit.py +0 -0
  246. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/zaif.py +0 -0
  247. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/async_support/zonda.py +0 -0
  248. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/__init__.py +0 -0
  249. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/decimal_to_precision.py +0 -0
  250. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/errors.py +0 -0
  251. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/precise.py +0 -0
  252. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/base/types.py +0 -0
  253. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bequant.py +0 -0
  254. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bigone.py +0 -0
  255. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/binancecoinm.py +0 -0
  256. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/binanceus.py +0 -0
  257. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/binanceusdm.py +0 -0
  258. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bingx.py +0 -0
  259. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bit2c.py +0 -0
  260. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitbank.py +0 -0
  261. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitbay.py +0 -0
  262. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitbns.py +0 -0
  263. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitcoincom.py +0 -0
  264. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitfinex.py +0 -0
  265. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitfinex2.py +0 -0
  266. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitflyer.py +0 -0
  267. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitget.py +0 -0
  268. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bithumb.py +0 -0
  269. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitmart.py +0 -0
  270. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitmex.py +0 -0
  271. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitopro.py +0 -0
  272. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitpanda.py +0 -0
  273. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitrue.py +0 -0
  274. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitso.py +0 -0
  275. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitstamp.py +0 -0
  276. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitteam.py +0 -0
  277. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bitvavo.py +0 -0
  278. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bl3p.py +0 -0
  279. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/blockchaincom.py +0 -0
  280. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/blofin.py +0 -0
  281. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/btcalpha.py +0 -0
  282. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/btcbox.py +0 -0
  283. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/btcmarkets.py +0 -0
  284. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/btcturk.py +0 -0
  285. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/bybit.py +0 -0
  286. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/cex.py +0 -0
  287. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinbase.py +0 -0
  288. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinbaseadvanced.py +0 -0
  289. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinbaseexchange.py +0 -0
  290. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinbaseinternational.py +0 -0
  291. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coincheck.py +0 -0
  292. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinex.py +0 -0
  293. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinlist.py +0 -0
  294. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinmate.py +0 -0
  295. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinmetro.py +0 -0
  296. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinone.py +0 -0
  297. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinsph.py +0 -0
  298. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/coinspot.py +0 -0
  299. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/cryptocom.py +0 -0
  300. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/currencycom.py +0 -0
  301. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/delta.py +0 -0
  302. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/deribit.py +0 -0
  303. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/digifinex.py +0 -0
  304. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/exmo.py +0 -0
  305. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/fmfwio.py +0 -0
  306. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/gateio.py +0 -0
  307. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/gemini.py +0 -0
  308. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/hitbtc.py +0 -0
  309. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/hitbtc3.py +0 -0
  310. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/hollaex.py +0 -0
  311. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/htx.py +0 -0
  312. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/huobi.py +0 -0
  313. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/huobijp.py +0 -0
  314. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/hyperliquid.py +0 -0
  315. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/idex.py +0 -0
  316. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/independentreserve.py +0 -0
  317. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/indodax.py +0 -0
  318. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/kraken.py +0 -0
  319. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/kucoin.py +0 -0
  320. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/kucoinfutures.py +0 -0
  321. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/kuna.py +0 -0
  322. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/latoken.py +0 -0
  323. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/lbank.py +0 -0
  324. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/luno.py +0 -0
  325. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/lykke.py +0 -0
  326. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/mercado.py +0 -0
  327. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/mexc.py +0 -0
  328. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/ndax.py +0 -0
  329. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/novadax.py +0 -0
  330. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/oceanex.py +0 -0
  331. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/okcoin.py +0 -0
  332. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/okx.py +0 -0
  333. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/onetrading.py +0 -0
  334. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/oxfun.py +0 -0
  335. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/p2b.py +0 -0
  336. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/paymium.py +0 -0
  337. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/phemex.py +0 -0
  338. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/poloniex.py +0 -0
  339. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/poloniexfutures.py +0 -0
  340. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/alpaca.py +0 -0
  341. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/ascendex.py +0 -0
  342. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bequant.py +0 -0
  343. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/binance.py +0 -0
  344. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/binancecoinm.py +0 -0
  345. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/binanceus.py +0 -0
  346. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/binanceusdm.py +0 -0
  347. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitcoincom.py +0 -0
  348. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitfinex.py +0 -0
  349. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitfinex2.py +0 -0
  350. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitget.py +0 -0
  351. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bithumb.py +0 -0
  352. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitmart.py +0 -0
  353. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitmex.py +0 -0
  354. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitopro.py +0 -0
  355. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitpanda.py +0 -0
  356. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitrue.py +0 -0
  357. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitstamp.py +0 -0
  358. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bitvavo.py +0 -0
  359. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/blockchaincom.py +0 -0
  360. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/bybit.py +0 -0
  361. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/cex.py +0 -0
  362. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coinbase.py +0 -0
  363. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coinbaseexchange.py +0 -0
  364. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coinbaseinternational.py +0 -0
  365. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coincheck.py +0 -0
  366. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coinex.py +0 -0
  367. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/coinone.py +0 -0
  368. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/cryptocom.py +0 -0
  369. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/currencycom.py +0 -0
  370. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/deribit.py +0 -0
  371. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/exmo.py +0 -0
  372. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/gateio.py +0 -0
  373. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/gemini.py +0 -0
  374. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/hitbtc.py +0 -0
  375. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/hollaex.py +0 -0
  376. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/htx.py +0 -0
  377. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/huobi.py +0 -0
  378. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/huobijp.py +0 -0
  379. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/hyperliquid.py +0 -0
  380. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/idex.py +0 -0
  381. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/independentreserve.py +0 -0
  382. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/kraken.py +0 -0
  383. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/krakenfutures.py +0 -0
  384. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/kucoin.py +0 -0
  385. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/kucoinfutures.py +0 -0
  386. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/lbank.py +0 -0
  387. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/luno.py +0 -0
  388. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/mexc.py +0 -0
  389. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/ndax.py +0 -0
  390. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/okcoin.py +0 -0
  391. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/okx.py +0 -0
  392. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/onetrading.py +0 -0
  393. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/oxfun.py +0 -0
  394. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/p2b.py +0 -0
  395. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/phemex.py +0 -0
  396. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/poloniex.py +0 -0
  397. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/poloniexfutures.py +0 -0
  398. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/probit.py +0 -0
  399. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/upbit.py +0 -0
  400. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/wazirx.py +0 -0
  401. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/whitebit.py +0 -0
  402. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/woo.py +0 -0
  403. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/pro/woofipro.py +0 -0
  404. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/probit.py +0 -0
  405. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/__init__.py +0 -0
  406. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  407. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  408. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  409. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  410. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  411. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  412. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  413. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  414. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  415. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  416. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  417. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  418. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  419. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  420. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  421. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  422. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  423. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  424. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  425. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  426. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  427. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  428. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  429. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  430. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  431. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  432. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  433. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  434. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  435. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  436. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  437. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  438. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  439. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  440. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  441. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  442. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  443. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  444. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  445. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  446. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  447. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  448. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  449. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  450. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  451. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  452. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  453. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  454. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  455. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  456. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  457. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  458. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  459. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  460. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  461. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  462. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  463. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  464. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  465. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  466. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  467. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  468. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  469. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  470. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  471. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  472. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  473. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  474. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  475. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  476. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  477. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  478. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  479. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  480. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  481. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  482. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  483. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  484. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  485. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  486. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  487. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  488. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  489. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  490. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  491. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  492. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/_version.py +0 -0
  493. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  494. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  495. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  496. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  497. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  498. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  499. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  500. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  501. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/static_dependencies/toolz/utils.py +0 -0
  502. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/__init__.py +0 -0
  503. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/__init__.py +0 -0
  504. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_account.py +0 -0
  505. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_balance.py +0 -0
  506. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_borrow_interest.py +0 -0
  507. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_borrow_rate.py +0 -0
  508. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_calculate_fee.py +0 -0
  509. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_crypto.py +0 -0
  510. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_currency.py +0 -0
  511. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_datetime.py +0 -0
  512. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  513. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_deep_extend.py +0 -0
  514. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  515. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  516. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_funding_rate_history.py +0 -0
  517. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_last_price.py +0 -0
  518. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_ledger_entry.py +0 -0
  519. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_ledger_item.py +0 -0
  520. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_leverage_tier.py +0 -0
  521. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_liquidation.py +0 -0
  522. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_margin_mode.py +0 -0
  523. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_margin_modification.py +0 -0
  524. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_market.py +0 -0
  525. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_number.py +0 -0
  526. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_ohlcv.py +0 -0
  527. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_open_interest.py +0 -0
  528. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_order.py +0 -0
  529. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_position.py +0 -0
  530. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_shared_methods.py +0 -0
  531. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_status.py +0 -0
  532. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_throttle.py +0 -0
  533. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_ticker.py +0 -0
  534. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_trade.py +0 -0
  535. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_trading_fee.py +0 -0
  536. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/base/test_transaction.py +0 -0
  537. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/test_async.py +0 -0
  538. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/test/test_sync.py +0 -0
  539. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/timex.py +0 -0
  540. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/tokocrypto.py +0 -0
  541. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/tradeogre.py +0 -0
  542. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/upbit.py +0 -0
  543. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/wavesexchange.py +0 -0
  544. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/wazirx.py +0 -0
  545. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/whitebit.py +0 -0
  546. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/woofipro.py +0 -0
  547. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/xt.py +0 -0
  548. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/yobit.py +0 -0
  549. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/zaif.py +0 -0
  550. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt/zonda.py +0 -0
  551. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt.egg-info/SOURCES.txt +0 -0
  552. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt.egg-info/dependency_links.txt +0 -0
  553. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt.egg-info/requires.txt +0 -0
  554. {ccxt-4.3.47 → ccxt-4.3.48}/ccxt.egg-info/top_level.txt +0 -0
  555. {ccxt-4.3.47 → ccxt-4.3.48}/setup.cfg +0 -0
  556. {ccxt-4.3.47 → ccxt-4.3.48}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.47
3
+ Version: 4.3.48
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
@@ -232,13 +232,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
232
232
 
233
233
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
234
234
 
235
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.47/dist/ccxt.browser.min.js
236
- * unpkg: https://unpkg.com/ccxt@4.3.47/dist/ccxt.browser.min.js
235
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.48/dist/ccxt.browser.min.js
236
+ * unpkg: https://unpkg.com/ccxt@4.3.48/dist/ccxt.browser.min.js
237
237
 
238
238
  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.
239
239
 
240
240
  ```HTML
241
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.47/dist/ccxt.browser.min.js"></script>
241
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.48/dist/ccxt.browser.min.js"></script>
242
242
  ```
243
243
 
244
244
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.47'
25
+ __version__ = '4.3.48'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -18,6 +18,8 @@ class ImplicitAPI:
18
18
  private_get_transfers = privateGetTransfers = Entry('transfers', 'private', 'GET', {})
19
19
  private_get_leveragepreferences = privateGetLeveragepreferences = Entry('leveragepreferences', 'private', 'GET', {})
20
20
  private_get_pnlpreferences = privateGetPnlpreferences = Entry('pnlpreferences', 'private', 'GET', {})
21
+ private_get_assignmentprogram_current = privateGetAssignmentprogramCurrent = Entry('assignmentprogram/current', 'private', 'GET', {})
22
+ private_get_assignmentprogram_history = privateGetAssignmentprogramHistory = Entry('assignmentprogram/history', 'private', 'GET', {})
21
23
  private_post_sendorder = privatePostSendorder = Entry('sendorder', 'private', 'POST', {})
22
24
  private_post_editorder = privatePostEditorder = Entry('editorder', 'private', 'POST', {})
23
25
  private_post_cancelorder = privatePostCancelorder = Entry('cancelorder', 'private', 'POST', {})
@@ -26,6 +28,8 @@ class ImplicitAPI:
26
28
  private_post_cancelallorders = privatePostCancelallorders = Entry('cancelallorders', 'private', 'POST', {})
27
29
  private_post_cancelallordersafter = privatePostCancelallordersafter = Entry('cancelallordersafter', 'private', 'POST', {})
28
30
  private_post_withdrawal = privatePostWithdrawal = Entry('withdrawal', 'private', 'POST', {})
31
+ private_post_assignmentprogram_add = privatePostAssignmentprogramAdd = Entry('assignmentprogram/add', 'private', 'POST', {})
32
+ private_post_assignmentprogram_delete = privatePostAssignmentprogramDelete = Entry('assignmentprogram/delete', 'private', 'POST', {})
29
33
  private_put_leveragepreferences = privatePutLeveragepreferences = Entry('leveragepreferences', 'private', 'PUT', {})
30
34
  private_put_pnlpreferences = privatePutPnlpreferences = Entry('pnlpreferences', 'private', 'PUT', {})
31
35
  charts_get_price_type_symbol_interval = chartsGetPriceTypeSymbolInterval = Entry('{price_type}/{symbol}/{interval}', 'charts', 'GET', {})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.47'
7
+ __version__ = '4.3.48'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.47'
5
+ __version__ = '4.3.48'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -5837,7 +5837,7 @@ class binance(Exchange, ImplicitAPI):
5837
5837
  market = self.market(symbol)
5838
5838
  if not market['spot']:
5839
5839
  raise NotSupported(self.id + ' createMarketOrderWithCost() supports spot orders only')
5840
- params['quoteOrderQty'] = cost
5840
+ params['cost'] = cost
5841
5841
  return await self.create_order(symbol, 'market', side, cost, None, params)
5842
5842
 
5843
5843
  async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
@@ -5853,7 +5853,7 @@ class binance(Exchange, ImplicitAPI):
5853
5853
  market = self.market(symbol)
5854
5854
  if not market['spot']:
5855
5855
  raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
5856
- params['quoteOrderQty'] = cost
5856
+ params['cost'] = cost
5857
5857
  return await self.create_order(symbol, 'market', 'buy', cost, None, params)
5858
5858
 
5859
5859
  async def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
@@ -7377,6 +7377,8 @@ class binance(Exchange, ImplicitAPI):
7377
7377
  return self.parse_transactions(response, currency, since, limit)
7378
7378
 
7379
7379
  def parse_transaction_status_by_type(self, status, type=None):
7380
+ if type is None:
7381
+ return status
7380
7382
  statusesByType: dict = {
7381
7383
  'deposit': {
7382
7384
  '0': 'pending',
@@ -8201,7 +8203,7 @@ class binance(Exchange, ImplicitAPI):
8201
8203
  request: dict = {
8202
8204
  'coin': currency['id'],
8203
8205
  'address': address,
8204
- 'amount': amount,
8206
+ 'amount': self.currency_to_precision(code, amount),
8205
8207
  # https://binance-docs.github.io/apidocs/spot/en/#withdraw-sapi
8206
8208
  # issue sapiGetCapitalConfigGetall() to get networks for withdrawing USDT ERC20 vs USDT Omni
8207
8209
  # 'network': 'ETH', # 'BTC', 'TRX', etc, optional
@@ -798,6 +798,7 @@ class gate(Exchange, ImplicitAPI):
798
798
  'NOT_ACCEPTABLE': BadRequest,
799
799
  'METHOD_NOT_ALLOWED': BadRequest,
800
800
  'NOT_FOUND': ExchangeError,
801
+ 'AUTHENTICATION_FAILED': AuthenticationError,
801
802
  'INVALID_CREDENTIALS': AuthenticationError,
802
803
  'INVALID_KEY': AuthenticationError,
803
804
  'IP_FORBIDDEN': AuthenticationError,
@@ -3669,17 +3670,14 @@ class gate(Exchange, ImplicitAPI):
3669
3670
  #
3670
3671
  return self.parse_order(response, market)
3671
3672
 
3672
- async def create_orders(self, orders: List[OrderRequest], params={}):
3673
- """
3674
- create a list of trade orders
3675
- :see: https://www.gate.io/docs/developers/apiv4/en/#get-a-single-order-2
3676
- :see: https://www.gate.io/docs/developers/apiv4/en/#create-a-batch-of-orders
3677
- :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3678
- :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3679
- """
3680
- await self.load_markets()
3673
+ def create_orders_request(self, orders: List[OrderRequest], params={}):
3681
3674
  ordersRequests = []
3682
3675
  orderSymbols = []
3676
+ ordersLength = len(orders)
3677
+ if ordersLength == 0:
3678
+ raise BadRequest(self.id + ' createOrders() requires at least one order')
3679
+ if ordersLength > 10:
3680
+ raise BadRequest(self.id + ' createOrders() accepts a maximum of 10 orders at a time')
3683
3681
  for i in range(0, len(orders)):
3684
3682
  rawOrder = orders[i]
3685
3683
  marketId = self.safe_string(rawOrder, 'symbol')
@@ -3700,6 +3698,21 @@ class gate(Exchange, ImplicitAPI):
3700
3698
  market = self.market(symbols[0])
3701
3699
  if market['future'] or market['option']:
3702
3700
  raise NotSupported(self.id + ' createOrders() does not support futures or options markets')
3701
+ return ordersRequests
3702
+
3703
+ async def create_orders(self, orders: List[OrderRequest], params={}):
3704
+ """
3705
+ create a list of trade orders
3706
+ :see: https://www.gate.io/docs/developers/apiv4/en/#get-a-single-order-2
3707
+ :see: https://www.gate.io/docs/developers/apiv4/en/#create-a-batch-of-orders
3708
+ :see: https://www.gate.io/docs/developers/apiv4/en/#create-a-batch-of-futures-orders
3709
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3710
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3711
+ """
3712
+ await self.load_markets()
3713
+ ordersRequests = self.create_orders_request(orders, params)
3714
+ firstOrder = orders[0]
3715
+ market = self.market(firstOrder['symbol'])
3703
3716
  response = None
3704
3717
  if market['spot']:
3705
3718
  response = await self.privateSpotPostBatchOrders(ordersRequests)
@@ -3930,21 +3943,7 @@ class gate(Exchange, ImplicitAPI):
3930
3943
  params['createMarketBuyOrderRequiresPrice'] = False
3931
3944
  return await self.create_order(symbol, 'market', 'buy', cost, None, params)
3932
3945
 
3933
- async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
3934
- """
3935
- edit a trade order, gate currently only supports the modification of the price or amount fields
3936
- :see: https://www.gate.io/docs/developers/apiv4/en/#amend-an-order
3937
- :see: https://www.gate.io/docs/developers/apiv4/en/#amend-an-order-2
3938
- :param str id: order id
3939
- :param str symbol: unified symbol of the market to create an order in
3940
- :param str type: 'market' or 'limit'
3941
- :param str side: 'buy' or 'sell'
3942
- :param float amount: how much of the currency you want to trade in units of the base currency
3943
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
3944
- :param dict [params]: extra parameters specific to the exchange API endpoint
3945
- :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3946
- """
3947
- await self.load_markets()
3946
+ def edit_order_request(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
3948
3947
  market = self.market(symbol)
3949
3948
  marketType, query = self.handle_market_type_and_params('editOrder', market, params)
3950
3949
  account = self.convert_type_to_account(marketType)
@@ -3954,7 +3953,7 @@ class gate(Exchange, ImplicitAPI):
3954
3953
  # exchange doesn't have market orders for spot
3955
3954
  raise InvalidOrder(self.id + ' editOrder() does not support ' + type + ' orders for ' + marketType + ' markets')
3956
3955
  request: dict = {
3957
- 'order_id': id,
3956
+ 'order_id': str(id),
3958
3957
  'currency_pair': market['id'],
3959
3958
  'account': account,
3960
3959
  }
@@ -3968,12 +3967,32 @@ class gate(Exchange, ImplicitAPI):
3968
3967
  request['size'] = self.amount_to_precision(symbol, amount)
3969
3968
  if price is not None:
3970
3969
  request['price'] = self.price_to_precision(symbol, price)
3970
+ if not market['spot']:
3971
+ request['settle'] = market['settleId']
3972
+ return self.extend(request, query)
3973
+
3974
+ async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
3975
+ """
3976
+ edit a trade order, gate currently only supports the modification of the price or amount fields
3977
+ :see: https://www.gate.io/docs/developers/apiv4/en/#amend-an-order
3978
+ :see: https://www.gate.io/docs/developers/apiv4/en/#amend-an-order-2
3979
+ :param str id: order id
3980
+ :param str symbol: unified symbol of the market to create an order in
3981
+ :param str type: 'market' or 'limit'
3982
+ :param str side: 'buy' or 'sell'
3983
+ :param float amount: how much of the currency you want to trade in units of the base currency
3984
+ :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
3985
+ :param dict [params]: extra parameters specific to the exchange API endpoint
3986
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
3987
+ """
3988
+ await self.load_markets()
3989
+ market = self.market(symbol)
3990
+ extendedRequest = self.edit_order_request(id, symbol, type, side, amount, price, params)
3971
3991
  response = None
3972
3992
  if market['spot']:
3973
- response = await self.privateSpotPatchOrdersOrderId(self.extend(request, query))
3993
+ response = await self.privateSpotPatchOrdersOrderId(extendedRequest)
3974
3994
  else:
3975
- request['settle'] = market['settleId']
3976
- response = await self.privateFuturesPutSettleOrdersOrderId(self.extend(request, query))
3995
+ response = await self.privateFuturesPutSettleOrdersOrderId(extendedRequest)
3977
3996
  #
3978
3997
  # {
3979
3998
  # "id": "243233276443",
@@ -4274,6 +4293,23 @@ class gate(Exchange, ImplicitAPI):
4274
4293
  'info': order,
4275
4294
  }, market)
4276
4295
 
4296
+ def fetch_order_request(self, id: str, symbol: Str = None, params={}):
4297
+ market = None if (symbol is None) else self.market(symbol)
4298
+ stop = self.safe_bool_n(params, ['trigger', 'is_stop_order', 'stop'], False)
4299
+ params = self.omit(params, ['is_stop_order', 'stop', 'trigger'])
4300
+ clientOrderId = self.safe_string_2(params, 'text', 'clientOrderId')
4301
+ orderId = id
4302
+ if clientOrderId is not None:
4303
+ params = self.omit(params, ['text', 'clientOrderId'])
4304
+ if clientOrderId[0] != 't':
4305
+ clientOrderId = 't-' + clientOrderId
4306
+ orderId = clientOrderId
4307
+ type, query = self.handle_market_type_and_params('fetchOrder', market, params)
4308
+ contract = (type == 'swap') or (type == 'future') or (type == 'option')
4309
+ request, requestParams = self.prepare_request(market, type, query) if contract else self.spot_order_prepare_request(market, stop, query)
4310
+ request['order_id'] = str(orderId)
4311
+ return [request, requestParams]
4312
+
4277
4313
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
4278
4314
  """
4279
4315
  Retrieves information on an order
@@ -4284,27 +4320,18 @@ class gate(Exchange, ImplicitAPI):
4284
4320
  :param str id: Order id
4285
4321
  :param str symbol: Unified market symbol, *required for spot and margin*
4286
4322
  :param dict [params]: Parameters specified by the exchange api
4287
- :param bool [params.stop]: True if the order being fetched is a trigger order
4323
+ :param bool [params.trigger]: True if the order being fetched is a trigger order
4288
4324
  :param str [params.marginMode]: 'cross' or 'isolated' - marginMode for margin trading if not provided self.options['defaultMarginMode'] is used
4289
4325
  :param str [params.type]: 'spot', 'swap', or 'future', if not provided self.options['defaultMarginMode'] is used
4290
4326
  :param str [params.settle]: 'btc' or 'usdt' - settle currency for perpetual swap and future - market settle currency is used if symbol is not None, default="usdt" for swap and "btc" for future
4291
4327
  :returns: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4292
4328
  """
4293
4329
  await self.load_markets()
4294
- stop = self.safe_value_2(params, 'is_stop_order', 'stop', False)
4295
- params = self.omit(params, ['is_stop_order', 'stop'])
4296
- clientOrderId = self.safe_string_2(params, 'text', 'clientOrderId')
4297
- orderId = id
4298
- if clientOrderId is not None:
4299
- params = self.omit(params, ['text', 'clientOrderId'])
4300
- if clientOrderId[0] != 't':
4301
- clientOrderId = 't-' + clientOrderId
4302
- orderId = clientOrderId
4303
4330
  market = None if (symbol is None) else self.market(symbol)
4304
- type, query = self.handle_market_type_and_params('fetchOrder', market, params)
4305
- contract = (type == 'swap') or (type == 'future') or (type == 'option')
4306
- request, requestParams = self.prepare_request(market, type, query) if contract else self.spot_order_prepare_request(market, stop, query)
4307
- request['order_id'] = orderId
4331
+ result = self.handle_market_type_and_params('fetchOrder', market, params)
4332
+ type = self.safe_string(result, 0)
4333
+ stop = self.safe_bool_n(params, ['trigger', 'is_stop_order', 'stop'], False)
4334
+ request, requestParams = self.fetch_order_request(id, symbol, params)
4308
4335
  response = None
4309
4336
  if type == 'spot' or type == 'margin':
4310
4337
  if stop:
@@ -4363,14 +4390,13 @@ class gate(Exchange, ImplicitAPI):
4363
4390
  """
4364
4391
  return await self.fetch_orders_by_status('finished', symbol, since, limit, params)
4365
4392
 
4366
- async def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
4367
- await self.load_markets()
4393
+ def fetch_orders_by_status_request(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
4368
4394
  market = None
4369
4395
  if symbol is not None:
4370
4396
  market = self.market(symbol)
4371
4397
  symbol = market['symbol']
4372
- stop = self.safe_value(params, 'stop')
4373
- params = self.omit(params, 'stop')
4398
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
4399
+ params = self.omit(params, ['stop', 'trigger'])
4374
4400
  type, query = self.handle_market_type_and_params('fetchOrdersByStatus', market, params)
4375
4401
  spot = (type == 'spot') or (type == 'margin')
4376
4402
  request, requestParams = self.multi_order_spot_prepare_request(market, stop, query) if spot else self.prepare_request(market, type, query)
@@ -4381,6 +4407,24 @@ class gate(Exchange, ImplicitAPI):
4381
4407
  request['limit'] = limit
4382
4408
  if since is not None and spot:
4383
4409
  request['from'] = self.parse_to_int(since / 1000)
4410
+ lastId, finalParams = self.handle_param_string_2(requestParams, 'lastId', 'last_id')
4411
+ if lastId is not None:
4412
+ request['last_id'] = lastId
4413
+ return [request, finalParams]
4414
+
4415
+ async def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
4416
+ await self.load_markets()
4417
+ market = None
4418
+ if symbol is not None:
4419
+ market = self.market(symbol)
4420
+ symbol = market['symbol']
4421
+ stop = self.safe_bool_2(params, 'stop', 'trigger')
4422
+ params = self.omit(params, ['trigger', 'stop'])
4423
+ res = self.handle_market_type_and_params('fetchOrdersByStatus', market, params)
4424
+ type = self.safe_string(res, 0)
4425
+ params['type'] = type
4426
+ request, requestParams = self.fetch_orders_by_status_request(status, symbol, since, limit, params)
4427
+ spot = (type == 'spot') or (type == 'margin')
4384
4428
  openSpotOrders = spot and (status == 'open') and not stop
4385
4429
  response = None
4386
4430
  if type == 'spot' or type == 'margin':
@@ -4574,8 +4618,8 @@ class gate(Exchange, ImplicitAPI):
4574
4618
  """
4575
4619
  await self.load_markets()
4576
4620
  market = None if (symbol is None) else self.market(symbol)
4577
- stop = self.safe_value_2(params, 'is_stop_order', 'stop', False)
4578
- params = self.omit(params, ['is_stop_order', 'stop'])
4621
+ stop = self.safe_bool_n(params, ['is_stop_order', 'stop', 'trigger'], False)
4622
+ params = self.omit(params, ['is_stop_order', 'stop', 'trigger'])
4579
4623
  type, query = self.handle_market_type_and_params('cancelOrder', market, params)
4580
4624
  request, requestParams = self.spot_order_prepare_request(market, stop, query) if (type == 'spot' or type == 'margin') else self.prepare_request(market, type, query)
4581
4625
  request['order_id'] = id
@@ -136,6 +136,8 @@ class krakenfutures(Exchange, ImplicitAPI):
136
136
  'transfers',
137
137
  'leveragepreferences',
138
138
  'pnlpreferences',
139
+ 'assignmentprogram/current',
140
+ 'assignmentprogram/history',
139
141
  ],
140
142
  'post': [
141
143
  'sendorder',
@@ -146,6 +148,8 @@ class krakenfutures(Exchange, ImplicitAPI):
146
148
  'cancelallorders',
147
149
  'cancelallordersafter',
148
150
  'withdrawal', # for futures wallet -> kraken spot wallet
151
+ 'assignmentprogram/add',
152
+ 'assignmentprogram/delete',
149
153
  ],
150
154
  'put': [
151
155
  'leveragepreferences',
@@ -2361,6 +2361,10 @@ class woo(Exchange, ImplicitAPI):
2361
2361
  url += access + '/' + pathWithParams
2362
2362
  if params:
2363
2363
  url += '?' + self.urlencode(params)
2364
+ elif access == 'pub':
2365
+ url += pathWithParams
2366
+ if params:
2367
+ url += '?' + self.urlencode(params)
2364
2368
  else:
2365
2369
  self.check_required_credentials()
2366
2370
  if method == 'POST' and (path == 'algo/order' or path == 'order'):
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.47'
7
+ __version__ = '4.3.48'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -5836,7 +5836,7 @@ class binance(Exchange, ImplicitAPI):
5836
5836
  market = self.market(symbol)
5837
5837
  if not market['spot']:
5838
5838
  raise NotSupported(self.id + ' createMarketOrderWithCost() supports spot orders only')
5839
- params['quoteOrderQty'] = cost
5839
+ params['cost'] = cost
5840
5840
  return self.create_order(symbol, 'market', side, cost, None, params)
5841
5841
 
5842
5842
  def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
@@ -5852,7 +5852,7 @@ class binance(Exchange, ImplicitAPI):
5852
5852
  market = self.market(symbol)
5853
5853
  if not market['spot']:
5854
5854
  raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
5855
- params['quoteOrderQty'] = cost
5855
+ params['cost'] = cost
5856
5856
  return self.create_order(symbol, 'market', 'buy', cost, None, params)
5857
5857
 
5858
5858
  def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
@@ -7376,6 +7376,8 @@ class binance(Exchange, ImplicitAPI):
7376
7376
  return self.parse_transactions(response, currency, since, limit)
7377
7377
 
7378
7378
  def parse_transaction_status_by_type(self, status, type=None):
7379
+ if type is None:
7380
+ return status
7379
7381
  statusesByType: dict = {
7380
7382
  'deposit': {
7381
7383
  '0': 'pending',
@@ -8200,7 +8202,7 @@ class binance(Exchange, ImplicitAPI):
8200
8202
  request: dict = {
8201
8203
  'coin': currency['id'],
8202
8204
  'address': address,
8203
- 'amount': amount,
8205
+ 'amount': self.currency_to_precision(code, amount),
8204
8206
  # https://binance-docs.github.io/apidocs/spot/en/#withdraw-sapi
8205
8207
  # issue sapiGetCapitalConfigGetall() to get networks for withdrawing USDT ERC20 vs USDT Omni
8206
8208
  # 'network': 'ETH', # 'BTC', 'TRX', etc, optional