ccxt 4.3.14__tar.gz → 4.3.15__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 (541) hide show
  1. {ccxt-4.3.14 → ccxt-4.3.15}/LICENSE.txt +1 -1
  2. {ccxt-4.3.14/ccxt.egg-info → ccxt-4.3.15}/PKG-INFO +4 -4
  3. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/__init__.py +2 -1
  4. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/luno.py +2 -0
  5. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/__init__.py +2 -1
  6. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/exchange.py +1 -1
  7. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/binance.py +4 -3
  8. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bingx.py +1 -0
  9. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bybit.py +6 -6
  10. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinex.py +35 -33
  11. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/cryptocom.py +2 -1
  12. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/hitbtc.py +1 -0
  13. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/luno.py +2 -0
  14. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/phemex.py +1 -1
  15. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/errors.py +6 -0
  16. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/exchange.py +7 -7
  17. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/binance.py +4 -3
  18. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bingx.py +1 -0
  19. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bybit.py +6 -6
  20. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinex.py +35 -33
  21. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/cryptocom.py +2 -1
  22. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/hitbtc.py +1 -0
  23. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/luno.py +2 -0
  24. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/phemex.py +1 -1
  25. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/__init__.py +1 -1
  26. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/hitbtc.py +1 -1
  27. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/independentreserve.py +3 -3
  28. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/poloniex.py +3 -3
  29. {ccxt-4.3.14 → ccxt-4.3.15/ccxt.egg-info}/PKG-INFO +4 -4
  30. {ccxt-4.3.14 → ccxt-4.3.15}/package.json +1 -1
  31. {ccxt-4.3.14 → ccxt-4.3.15}/MANIFEST.in +0 -0
  32. {ccxt-4.3.14 → ccxt-4.3.15}/README.rst +0 -0
  33. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/__init__.py +0 -0
  34. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/ace.py +0 -0
  35. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/alpaca.py +0 -0
  36. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/ascendex.py +0 -0
  37. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bequant.py +0 -0
  38. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bigone.py +0 -0
  39. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/binance.py +0 -0
  40. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/binancecoinm.py +0 -0
  41. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/binanceus.py +0 -0
  42. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/binanceusdm.py +0 -0
  43. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bingx.py +0 -0
  44. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bit2c.py +0 -0
  45. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitbank.py +0 -0
  46. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitbay.py +0 -0
  47. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitbns.py +0 -0
  48. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitcoincom.py +0 -0
  49. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitfinex.py +0 -0
  50. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitfinex2.py +0 -0
  51. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitflyer.py +0 -0
  52. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitget.py +0 -0
  53. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bithumb.py +0 -0
  54. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitmart.py +0 -0
  55. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitmex.py +0 -0
  56. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitopro.py +0 -0
  57. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitpanda.py +0 -0
  58. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitrue.py +0 -0
  59. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitso.py +0 -0
  60. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitstamp.py +0 -0
  61. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitteam.py +0 -0
  62. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bitvavo.py +0 -0
  63. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bl3p.py +0 -0
  64. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/blockchaincom.py +0 -0
  65. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/blofin.py +0 -0
  66. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/btcalpha.py +0 -0
  67. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/btcbox.py +0 -0
  68. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/btcmarkets.py +0 -0
  69. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/btcturk.py +0 -0
  70. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/bybit.py +0 -0
  71. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/cex.py +0 -0
  72. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinbase.py +0 -0
  73. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinbaseinternational.py +0 -0
  74. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinbasepro.py +0 -0
  75. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coincheck.py +0 -0
  76. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinex.py +0 -0
  77. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinlist.py +0 -0
  78. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinmate.py +0 -0
  79. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinmetro.py +0 -0
  80. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinone.py +0 -0
  81. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinsph.py +0 -0
  82. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/coinspot.py +0 -0
  83. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/cryptocom.py +0 -0
  84. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/currencycom.py +0 -0
  85. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/delta.py +0 -0
  86. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/deribit.py +0 -0
  87. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/digifinex.py +0 -0
  88. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/exmo.py +0 -0
  89. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/fmfwio.py +0 -0
  90. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/gate.py +0 -0
  91. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/gateio.py +0 -0
  92. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/gemini.py +0 -0
  93. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/hitbtc.py +0 -0
  94. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/hitbtc3.py +0 -0
  95. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/hollaex.py +0 -0
  96. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/htx.py +0 -0
  97. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/huobi.py +0 -0
  98. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/huobijp.py +0 -0
  99. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/hyperliquid.py +0 -0
  100. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/idex.py +0 -0
  101. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/independentreserve.py +0 -0
  102. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/indodax.py +0 -0
  103. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/kraken.py +0 -0
  104. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/krakenfutures.py +0 -0
  105. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/kucoin.py +0 -0
  106. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/kucoinfutures.py +0 -0
  107. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/kuna.py +0 -0
  108. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/latoken.py +0 -0
  109. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/lbank.py +0 -0
  110. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/lykke.py +0 -0
  111. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/mercado.py +0 -0
  112. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/mexc.py +0 -0
  113. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/ndax.py +0 -0
  114. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/novadax.py +0 -0
  115. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/oceanex.py +0 -0
  116. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/okcoin.py +0 -0
  117. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/okx.py +0 -0
  118. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/onetrading.py +0 -0
  119. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/p2b.py +0 -0
  120. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/paymium.py +0 -0
  121. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/phemex.py +0 -0
  122. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/poloniex.py +0 -0
  123. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/poloniexfutures.py +0 -0
  124. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/probit.py +0 -0
  125. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/timex.py +0 -0
  126. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/tokocrypto.py +0 -0
  127. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/tradeogre.py +0 -0
  128. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/upbit.py +0 -0
  129. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/wavesexchange.py +0 -0
  130. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/wazirx.py +0 -0
  131. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/whitebit.py +0 -0
  132. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/woo.py +0 -0
  133. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/yobit.py +0 -0
  134. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/zaif.py +0 -0
  135. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/abstract/zonda.py +0 -0
  136. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/ace.py +0 -0
  137. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/alpaca.py +0 -0
  138. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/ascendex.py +0 -0
  139. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/ace.py +0 -0
  140. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/alpaca.py +0 -0
  141. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/ascendex.py +0 -0
  142. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/__init__.py +0 -0
  143. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/throttler.py +0 -0
  144. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/__init__.py +0 -0
  145. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  146. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/cache.py +0 -0
  147. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/client.py +0 -0
  148. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/fast_client.py +0 -0
  149. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/functions.py +0 -0
  150. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/future.py +0 -0
  151. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/order_book.py +0 -0
  152. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  153. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bequant.py +0 -0
  154. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bigone.py +0 -0
  155. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/binancecoinm.py +0 -0
  156. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/binanceus.py +0 -0
  157. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/binanceusdm.py +0 -0
  158. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bit2c.py +0 -0
  159. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitbank.py +0 -0
  160. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitbay.py +0 -0
  161. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitbns.py +0 -0
  162. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitcoincom.py +0 -0
  163. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitfinex.py +0 -0
  164. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitfinex2.py +0 -0
  165. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitflyer.py +0 -0
  166. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitget.py +0 -0
  167. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bithumb.py +0 -0
  168. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitmart.py +0 -0
  169. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitmex.py +0 -0
  170. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitopro.py +0 -0
  171. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitpanda.py +0 -0
  172. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitrue.py +0 -0
  173. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitso.py +0 -0
  174. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitstamp.py +0 -0
  175. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitteam.py +0 -0
  176. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bitvavo.py +0 -0
  177. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/bl3p.py +0 -0
  178. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/blockchaincom.py +0 -0
  179. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/blofin.py +0 -0
  180. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/btcalpha.py +0 -0
  181. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/btcbox.py +0 -0
  182. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/btcmarkets.py +0 -0
  183. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/btcturk.py +0 -0
  184. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/cex.py +0 -0
  185. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinbase.py +0 -0
  186. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinbaseinternational.py +0 -0
  187. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinbasepro.py +0 -0
  188. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coincheck.py +0 -0
  189. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinlist.py +0 -0
  190. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinmate.py +0 -0
  191. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinmetro.py +0 -0
  192. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinone.py +0 -0
  193. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinsph.py +0 -0
  194. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/coinspot.py +0 -0
  195. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/currencycom.py +0 -0
  196. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/delta.py +0 -0
  197. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/deribit.py +0 -0
  198. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/digifinex.py +0 -0
  199. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/exmo.py +0 -0
  200. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/fmfwio.py +0 -0
  201. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/gate.py +0 -0
  202. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/gateio.py +0 -0
  203. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/gemini.py +0 -0
  204. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/hitbtc3.py +0 -0
  205. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/hollaex.py +0 -0
  206. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/htx.py +0 -0
  207. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/huobi.py +0 -0
  208. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/huobijp.py +0 -0
  209. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/hyperliquid.py +0 -0
  210. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/idex.py +0 -0
  211. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/independentreserve.py +0 -0
  212. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/indodax.py +0 -0
  213. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/kraken.py +0 -0
  214. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/krakenfutures.py +0 -0
  215. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/kucoin.py +0 -0
  216. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/kucoinfutures.py +0 -0
  217. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/kuna.py +0 -0
  218. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/latoken.py +0 -0
  219. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/lbank.py +0 -0
  220. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/lykke.py +0 -0
  221. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/mercado.py +0 -0
  222. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/mexc.py +0 -0
  223. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/ndax.py +0 -0
  224. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/novadax.py +0 -0
  225. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/oceanex.py +0 -0
  226. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/okcoin.py +0 -0
  227. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/okx.py +0 -0
  228. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/onetrading.py +0 -0
  229. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/p2b.py +0 -0
  230. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/paymium.py +0 -0
  231. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/poloniex.py +0 -0
  232. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/poloniexfutures.py +0 -0
  233. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/probit.py +0 -0
  234. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/timex.py +0 -0
  235. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/tokocrypto.py +0 -0
  236. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/tradeogre.py +0 -0
  237. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/upbit.py +0 -0
  238. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/wavesexchange.py +0 -0
  239. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/wazirx.py +0 -0
  240. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/whitebit.py +0 -0
  241. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/woo.py +0 -0
  242. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/yobit.py +0 -0
  243. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/zaif.py +0 -0
  244. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/async_support/zonda.py +0 -0
  245. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/__init__.py +0 -0
  246. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/decimal_to_precision.py +0 -0
  247. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/precise.py +0 -0
  248. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/base/types.py +0 -0
  249. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bequant.py +0 -0
  250. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bigone.py +0 -0
  251. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/binancecoinm.py +0 -0
  252. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/binanceus.py +0 -0
  253. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/binanceusdm.py +0 -0
  254. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bit2c.py +0 -0
  255. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitbank.py +0 -0
  256. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitbay.py +0 -0
  257. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitbns.py +0 -0
  258. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitcoincom.py +0 -0
  259. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitfinex.py +0 -0
  260. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitfinex2.py +0 -0
  261. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitflyer.py +0 -0
  262. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitget.py +0 -0
  263. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bithumb.py +0 -0
  264. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitmart.py +0 -0
  265. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitmex.py +0 -0
  266. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitopro.py +0 -0
  267. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitpanda.py +0 -0
  268. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitrue.py +0 -0
  269. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitso.py +0 -0
  270. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitstamp.py +0 -0
  271. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitteam.py +0 -0
  272. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bitvavo.py +0 -0
  273. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/bl3p.py +0 -0
  274. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/blockchaincom.py +0 -0
  275. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/blofin.py +0 -0
  276. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/btcalpha.py +0 -0
  277. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/btcbox.py +0 -0
  278. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/btcmarkets.py +0 -0
  279. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/btcturk.py +0 -0
  280. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/cex.py +0 -0
  281. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinbase.py +0 -0
  282. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinbaseinternational.py +0 -0
  283. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinbasepro.py +0 -0
  284. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coincheck.py +0 -0
  285. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinlist.py +0 -0
  286. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinmate.py +0 -0
  287. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinmetro.py +0 -0
  288. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinone.py +0 -0
  289. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinsph.py +0 -0
  290. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/coinspot.py +0 -0
  291. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/currencycom.py +0 -0
  292. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/delta.py +0 -0
  293. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/deribit.py +0 -0
  294. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/digifinex.py +0 -0
  295. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/exmo.py +0 -0
  296. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/fmfwio.py +0 -0
  297. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/gate.py +0 -0
  298. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/gateio.py +0 -0
  299. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/gemini.py +0 -0
  300. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/hitbtc3.py +0 -0
  301. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/hollaex.py +0 -0
  302. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/htx.py +0 -0
  303. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/huobi.py +0 -0
  304. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/huobijp.py +0 -0
  305. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/hyperliquid.py +0 -0
  306. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/idex.py +0 -0
  307. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/independentreserve.py +0 -0
  308. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/indodax.py +0 -0
  309. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/kraken.py +0 -0
  310. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/krakenfutures.py +0 -0
  311. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/kucoin.py +0 -0
  312. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/kucoinfutures.py +0 -0
  313. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/kuna.py +0 -0
  314. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/latoken.py +0 -0
  315. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/lbank.py +0 -0
  316. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/lykke.py +0 -0
  317. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/mercado.py +0 -0
  318. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/mexc.py +0 -0
  319. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/ndax.py +0 -0
  320. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/novadax.py +0 -0
  321. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/oceanex.py +0 -0
  322. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/okcoin.py +0 -0
  323. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/okx.py +0 -0
  324. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/onetrading.py +0 -0
  325. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/p2b.py +0 -0
  326. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/paymium.py +0 -0
  327. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/poloniex.py +0 -0
  328. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/poloniexfutures.py +0 -0
  329. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/alpaca.py +0 -0
  330. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/ascendex.py +0 -0
  331. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bequant.py +0 -0
  332. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/binance.py +0 -0
  333. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/binancecoinm.py +0 -0
  334. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/binanceus.py +0 -0
  335. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/binanceusdm.py +0 -0
  336. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bingx.py +0 -0
  337. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitcoincom.py +0 -0
  338. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitfinex.py +0 -0
  339. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitfinex2.py +0 -0
  340. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitget.py +0 -0
  341. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bithumb.py +0 -0
  342. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitmart.py +0 -0
  343. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitmex.py +0 -0
  344. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitopro.py +0 -0
  345. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitpanda.py +0 -0
  346. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitrue.py +0 -0
  347. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitstamp.py +0 -0
  348. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bitvavo.py +0 -0
  349. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/blockchaincom.py +0 -0
  350. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/bybit.py +0 -0
  351. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/cex.py +0 -0
  352. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coinbase.py +0 -0
  353. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coinbaseinternational.py +0 -0
  354. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coinbasepro.py +0 -0
  355. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coincheck.py +0 -0
  356. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coinex.py +0 -0
  357. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/coinone.py +0 -0
  358. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/cryptocom.py +0 -0
  359. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/currencycom.py +0 -0
  360. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/deribit.py +0 -0
  361. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/exmo.py +0 -0
  362. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/gate.py +0 -0
  363. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/gateio.py +0 -0
  364. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/gemini.py +0 -0
  365. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/hollaex.py +0 -0
  366. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/htx.py +0 -0
  367. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/huobi.py +0 -0
  368. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/huobijp.py +0 -0
  369. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/hyperliquid.py +0 -0
  370. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/idex.py +0 -0
  371. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/kraken.py +0 -0
  372. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/krakenfutures.py +0 -0
  373. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/kucoin.py +0 -0
  374. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/kucoinfutures.py +0 -0
  375. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/lbank.py +0 -0
  376. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/luno.py +0 -0
  377. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/mexc.py +0 -0
  378. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/ndax.py +0 -0
  379. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/okcoin.py +0 -0
  380. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/okx.py +0 -0
  381. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/onetrading.py +0 -0
  382. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/p2b.py +0 -0
  383. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/phemex.py +0 -0
  384. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/poloniexfutures.py +0 -0
  385. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/probit.py +0 -0
  386. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/upbit.py +0 -0
  387. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/wazirx.py +0 -0
  388. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/whitebit.py +0 -0
  389. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/pro/woo.py +0 -0
  390. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/probit.py +0 -0
  391. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/__init__.py +0 -0
  392. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  393. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  394. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  395. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  396. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  397. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  398. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  399. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  400. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  401. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  402. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  403. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  404. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  405. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  406. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  407. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  408. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  409. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  410. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  411. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  412. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  413. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  414. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  415. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  416. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  417. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  418. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  419. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  420. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  421. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  422. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  423. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  424. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  425. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  426. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  427. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  428. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  429. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  430. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  431. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  432. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  433. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  434. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  435. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  436. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  437. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  438. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  439. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  440. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  441. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  442. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  443. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  444. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  445. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  446. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  447. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  448. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  449. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  450. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  451. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  452. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  453. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  454. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  455. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  456. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  457. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  458. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  459. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  460. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  461. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  462. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  463. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  464. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  465. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  466. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  467. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  468. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/msgpack/ext.py +0 -0
  469. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  470. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  471. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  472. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  473. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  474. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  475. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  476. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/__init__.py +0 -0
  477. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  478. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/_version.py +0 -0
  479. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  480. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  481. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  482. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  483. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  484. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  485. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  486. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/recipes.py +0 -0
  487. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/static_dependencies/toolz/utils.py +0 -0
  488. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/__init__.py +0 -0
  489. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/__init__.py +0 -0
  490. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_account.py +0 -0
  491. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_balance.py +0 -0
  492. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_borrow_interest.py +0 -0
  493. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_borrow_rate.py +0 -0
  494. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_calculate_fee.py +0 -0
  495. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_crypto.py +0 -0
  496. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_currency.py +0 -0
  497. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_datetime.py +0 -0
  498. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  499. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_deep_extend.py +0 -0
  500. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  501. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  502. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_funding_rate_history.py +0 -0
  503. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_last_price.py +0 -0
  504. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_ledger_entry.py +0 -0
  505. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_ledger_item.py +0 -0
  506. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_leverage_tier.py +0 -0
  507. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_margin_mode.py +0 -0
  508. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_margin_modification.py +0 -0
  509. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_market.py +0 -0
  510. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_number.py +0 -0
  511. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_ohlcv.py +0 -0
  512. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_open_interest.py +0 -0
  513. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_order.py +0 -0
  514. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_order_book.py +0 -0
  515. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_position.py +0 -0
  516. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_shared_methods.py +0 -0
  517. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_status.py +0 -0
  518. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_throttle.py +0 -0
  519. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_ticker.py +0 -0
  520. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_trade.py +0 -0
  521. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_trading_fee.py +0 -0
  522. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/base/test_transaction.py +0 -0
  523. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/test_async.py +0 -0
  524. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/test/test_sync.py +0 -0
  525. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/timex.py +0 -0
  526. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/tokocrypto.py +0 -0
  527. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/tradeogre.py +0 -0
  528. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/upbit.py +0 -0
  529. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/wavesexchange.py +0 -0
  530. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/wazirx.py +0 -0
  531. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/whitebit.py +0 -0
  532. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/woo.py +0 -0
  533. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/yobit.py +0 -0
  534. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/zaif.py +0 -0
  535. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt/zonda.py +0 -0
  536. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt.egg-info/SOURCES.txt +0 -0
  537. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt.egg-info/dependency_links.txt +0 -0
  538. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt.egg-info/requires.txt +0 -0
  539. {ccxt-4.3.14 → ccxt-4.3.15}/ccxt.egg-info/top_level.txt +0 -0
  540. {ccxt-4.3.14 → ccxt-4.3.15}/setup.cfg +0 -0
  541. {ccxt-4.3.14 → ccxt-4.3.15}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright © 2022 Igor Kroitor
3
+ Copyright © 2024 Igor Kroitor
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.14
3
+ Version: 4.3.15
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -226,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
226
226
 
227
227
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
228
228
 
229
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.14/dist/ccxt.browser.js
230
- * unpkg: https://unpkg.com/ccxt@4.3.14/dist/ccxt.browser.js
229
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.15/dist/ccxt.browser.js
230
+ * unpkg: https://unpkg.com/ccxt@4.3.15/dist/ccxt.browser.js
231
231
 
232
232
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
233
233
 
234
234
  ```HTML
235
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.14/dist/ccxt.browser.js"></script>
235
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.15/dist/ccxt.browser.js"></script>
236
236
  ```
237
237
 
238
238
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.14'
25
+ __version__ = '4.3.15'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -53,6 +53,7 @@ from ccxt.base.errors import BadSymbol # noqa: F4
53
53
  from ccxt.base.errors import OperationRejected # noqa: F401
54
54
  from ccxt.base.errors import NoChange # noqa: F401
55
55
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
56
+ from ccxt.base.errors import MarketClosed # noqa: F401
56
57
  from ccxt.base.errors import BadResponse # noqa: F401
57
58
  from ccxt.base.errors import NullResponse # noqa: F401
58
59
  from ccxt.base.errors import InsufficientFunds # noqa: F401
@@ -31,5 +31,7 @@ class ImplicitAPI:
31
31
  private_post_withdrawals = privatePostWithdrawals = Entry('withdrawals', 'private', 'POST', {'cost': 1})
32
32
  private_post_send = privatePostSend = Entry('send', 'private', 'POST', {'cost': 1})
33
33
  private_post_oauth2_grant = privatePostOauth2Grant = Entry('oauth2/grant', 'private', 'POST', {'cost': 1})
34
+ private_post_beneficiaries = privatePostBeneficiaries = Entry('beneficiaries', 'private', 'POST', {'cost': 1})
34
35
  private_put_accounts_id_name = privatePutAccountsIdName = Entry('accounts/{id}/name', 'private', 'PUT', {'cost': 1})
35
36
  private_delete_withdrawals_id = privateDeleteWithdrawalsId = Entry('withdrawals/{id}', 'private', 'DELETE', {'cost': 1})
37
+ private_delete_beneficiaries_id = privateDeleteBeneficiariesId = Entry('beneficiaries/{id}', 'private', 'DELETE', {'cost': 1})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.14'
7
+ __version__ = '4.3.15'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -32,6 +32,7 @@ from ccxt.base.errors import BadSymbol # noqa: F4
32
32
  from ccxt.base.errors import OperationRejected # noqa: F401
33
33
  from ccxt.base.errors import NoChange # noqa: F401
34
34
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
35
+ from ccxt.base.errors import MarketClosed # noqa: F401
35
36
  from ccxt.base.errors import BadResponse # noqa: F401
36
37
  from ccxt.base.errors import NullResponse # noqa: F401
37
38
  from ccxt.base.errors import InsufficientFunds # noqa: F401
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.14'
5
+ __version__ = '4.3.15'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -19,6 +19,7 @@ from ccxt.base.errors import BadRequest
19
19
  from ccxt.base.errors import BadSymbol
20
20
  from ccxt.base.errors import OperationRejected
21
21
  from ccxt.base.errors import MarginModeAlreadySet
22
+ from ccxt.base.errors import MarketClosed
22
23
  from ccxt.base.errors import BadResponse
23
24
  from ccxt.base.errors import InsufficientFunds
24
25
  from ccxt.base.errors import InvalidOrder
@@ -2419,7 +2420,7 @@ class binance(Exchange, ImplicitAPI):
2419
2420
  'Rest API trading is not enabled.': PermissionDenied,
2420
2421
  'This account may not place or cancel orders.': PermissionDenied,
2421
2422
  "You don't have permission.": PermissionDenied, # {"msg":"You don't have permission.","success":false}
2422
- 'Market is closed.': OperationRejected, # {"code":-1013,"msg":"Market is closed."}
2423
+ 'Market is closed.': MarketClosed, # {"code":-1013,"msg":"Market is closed."}
2423
2424
  'Too many requests. Please try again later.': RateLimitExceeded, # {"msg":"Too many requests. Please try again later.","success":false}
2424
2425
  'This action is disabled on self account.': AccountSuspended, # {"code":-2011,"msg":"This action is disabled on self account."}
2425
2426
  'Limit orders require GTC for self phase.': BadRequest,
@@ -3886,8 +3887,8 @@ class binance(Exchange, ImplicitAPI):
3886
3887
  """
3887
3888
  fetches the last price for multiple markets
3888
3889
  :see: https://binance-docs.github.io/apidocs/spot/en/#symbol-price-ticker # spot
3889
- :see: https://binance-docs.github.io/apidocs/future/en/#symbol-price-ticker # swap
3890
- :see: https://binance-docs.github.io/apidocs/delivery/en/#symbol-price-ticker # future
3890
+ :see: https://binance-docs.github.io/apidocs/futures/en/#symbol-price-ticker # swap
3891
+ :see: https://binance-docs.github.io/apidocs/delivery/en/#symbol-price-tickers # future
3891
3892
  :param str[]|None symbols: unified symbols of the markets to fetch the last prices
3892
3893
  :param dict [params]: extra parameters specific to the exchange API endpoint
3893
3894
  :param str [params.subType]: "linear" or "inverse"
@@ -401,6 +401,7 @@ class bingx(Exchange, ImplicitAPI):
401
401
  '100202': InsufficientFunds,
402
402
  '100204': BadRequest,
403
403
  '100400': BadRequest,
404
+ '100410': OperationFailed, # {"code":100410,"msg":"The current system is busy, please try again later"}
404
405
  '100421': BadSymbol, # {"code":100421,"msg":"This pair is currently restricted from API trading","debugMsg":""}
405
406
  '100440': ExchangeError,
406
407
  '100500': OperationFailed, # {"code":100500,"msg":"The current system is busy, please try again later","debugMsg":""}
@@ -6268,19 +6268,19 @@ class bybit(Exchange, ImplicitAPI):
6268
6268
  isUsdcSettled = market['settle'] == 'USDC'
6269
6269
  # engage in leverage setting
6270
6270
  # we reuse the code here instead of having two methods
6271
- leverage = self.number_to_string(leverage)
6271
+ leverageString = self.number_to_string(leverage)
6272
6272
  request = {
6273
6273
  'symbol': market['id'],
6274
- 'buyLeverage': leverage,
6275
- 'sellLeverage': leverage,
6274
+ 'buyLeverage': leverageString,
6275
+ 'sellLeverage': leverageString,
6276
6276
  }
6277
6277
  response = None
6278
6278
  if isUsdcSettled and not isUnifiedAccount:
6279
- request['leverage'] = leverage
6279
+ request['leverage'] = leverageString
6280
6280
  response = await self.privatePostPerpetualUsdcOpenapiPrivateV1PositionLeverageSave(self.extend(request, params))
6281
6281
  else:
6282
- request['buyLeverage'] = leverage
6283
- request['sellLeverage'] = leverage
6282
+ request['buyLeverage'] = leverageString
6283
+ request['sellLeverage'] = leverageString
6284
6284
  if market['linear']:
6285
6285
  request['category'] = 'linear'
6286
6286
  elif market['inverse']:
@@ -3488,48 +3488,49 @@ class coinex(Exchange, ImplicitAPI):
3488
3488
  async def create_deposit_address(self, code: str, params={}):
3489
3489
  """
3490
3490
  create a currency deposit address
3491
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account019_update_deposit_address
3491
+ :see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/update-deposit-address
3492
3492
  :param str code: unified currency code of the currency for the deposit address
3493
3493
  :param dict [params]: extra parameters specific to the exchange API endpoint
3494
+ :param str [params.network]: the blockchain network to create a deposit address on
3494
3495
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
3495
3496
  """
3496
3497
  await self.load_markets()
3497
3498
  currency = self.currency(code)
3499
+ network = self.safe_string_2(params, 'chain', 'network')
3500
+ if network is None:
3501
+ raise ArgumentsRequired(self.id + ' createDepositAddress() requires a network parameter')
3502
+ params = self.omit(params, 'network')
3498
3503
  request = {
3499
- 'coin_type': currency['id'],
3504
+ 'ccy': currency['id'],
3505
+ 'chain': self.network_code_to_id(network, currency['code']),
3500
3506
  }
3501
- if 'network' in params:
3502
- network = self.safe_string(params, 'network')
3503
- params = self.omit(params, 'network')
3504
- request['smart_contract_name'] = network
3505
- response = await self.v1PrivatePutBalanceDepositAddressCoinType(self.extend(request, params))
3507
+ response = await self.v2PrivatePostAssetsRenewalDepositAddress(self.extend(request, params))
3506
3508
  #
3507
3509
  # {
3508
3510
  # "code": 0,
3509
3511
  # "data": {
3510
- # "coin_address": "TV639dSpb9iGRtoFYkCp4AoaaDYKrK1pw5",
3511
- # "is_bitcoin_cash": False
3512
+ # "address": "0x321bd6479355142334f45653ad5d8b76105a1234",
3513
+ # "memo": ""
3512
3514
  # },
3513
- # "message": "Success"
3515
+ # "message": "OK"
3514
3516
  # }
3517
+ #
3515
3518
  data = self.safe_dict(response, 'data', {})
3516
3519
  return self.parse_deposit_address(data, currency)
3517
3520
 
3518
3521
  async def fetch_deposit_address(self, code: str, params={}):
3519
3522
  """
3520
3523
  fetch the deposit address for a currency associated with self account
3521
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account020_query_deposit_address
3524
+ :see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-address
3522
3525
  :param str code: unified currency code
3523
3526
  :param dict [params]: extra parameters specific to the exchange API endpoint
3527
+ :param str [params.network]: the blockchain network to create a deposit address on
3524
3528
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
3525
3529
  """
3526
3530
  await self.load_markets()
3527
3531
  currency = self.currency(code)
3528
- request = {
3529
- 'coin_type': currency['id'],
3530
- }
3531
- networks = self.safe_value(currency, 'networks', {})
3532
- network = self.safe_string(params, 'network')
3532
+ networks = self.safe_dict(currency, 'networks', {})
3533
+ network = self.safe_string_2(params, 'network', 'chain')
3533
3534
  params = self.omit(params, 'network')
3534
3535
  networksKeys = list(networks.keys())
3535
3536
  numOfNetworks = len(networksKeys)
@@ -3538,23 +3539,24 @@ class coinex(Exchange, ImplicitAPI):
3538
3539
  raise ArgumentsRequired(self.id + ' fetchDepositAddress() ' + code + ' requires a network parameter')
3539
3540
  if not (network in networks):
3540
3541
  raise ExchangeError(self.id + ' fetchDepositAddress() ' + network + ' network not supported for ' + code)
3541
- if network is not None:
3542
- request['smart_contract_name'] = network
3543
- response = await self.v1PrivateGetBalanceDepositAddressCoinType(self.extend(request, params))
3542
+ request = {
3543
+ 'ccy': currency['id'],
3544
+ 'chain': network,
3545
+ }
3546
+ response = await self.v2PrivateGetAssetsDepositAddress(self.extend(request, params))
3544
3547
  #
3545
- # {
3546
- # "code": 0,
3547
- # "data": {
3548
- # "coin_address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3549
- # # coin_address: "xxxxxxxxxxxxxx:yyyyyyyyy", # with embedded tag/memo
3550
- # "is_bitcoin_cash": False
3551
- # },
3552
- # "message": "Success"
3553
- # }
3548
+ # {
3549
+ # "code": 0,
3550
+ # "data": {
3551
+ # "address": "0x321bd6479355142334f45653ad5d8b76105a1234",
3552
+ # "memo": ""
3553
+ # },
3554
+ # "message": "OK"
3555
+ # }
3554
3556
  #
3555
- data = self.safe_value(response, 'data', {})
3557
+ data = self.safe_dict(response, 'data', {})
3556
3558
  depositAddress = self.parse_deposit_address(data, currency)
3557
- options = self.safe_value(self.options, 'fetchDepositAddress', {})
3559
+ options = self.safe_dict(self.options, 'fetchDepositAddress', {})
3558
3560
  fillResponseFromRequest = self.safe_bool(options, 'fillResponseFromRequest', True)
3559
3561
  if fillResponseFromRequest:
3560
3562
  depositAddress['network'] = self.safe_network_code(network, currency)
@@ -3578,11 +3580,11 @@ class coinex(Exchange, ImplicitAPI):
3578
3580
  def parse_deposit_address(self, depositAddress, currency: Currency = None):
3579
3581
  #
3580
3582
  # {
3581
- # "coin_address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3582
- # "is_bitcoin_cash": False
3583
+ # "address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3584
+ # "memo": ""
3583
3585
  # }
3584
3586
  #
3585
- coinAddress = self.safe_string(depositAddress, 'coin_address')
3587
+ coinAddress = self.safe_string(depositAddress, 'address')
3586
3588
  parts = coinAddress.split(':')
3587
3589
  address = None
3588
3590
  tag = None
@@ -509,7 +509,8 @@ class cryptocom(Exchange, ImplicitAPI):
509
509
  strike = self.safe_string(market, 'strike')
510
510
  marginBuyEnabled = self.safe_value(market, 'margin_buy_enabled')
511
511
  marginSellEnabled = self.safe_value(market, 'margin_sell_enabled')
512
- expiry = self.omit_zero(self.safe_integer(market, 'expiry_timestamp_ms'))
512
+ expiryString = self.omit_zero(self.safe_string(market, 'expiry_timestamp_ms'))
513
+ expiry = int(expiryString) if (expiryString is not None) else None
513
514
  symbol = base + '/' + quote
514
515
  type = None
515
516
  contract = None
@@ -632,6 +632,7 @@ class hitbtc(Exchange, ImplicitAPI):
632
632
  'accountsByType': {
633
633
  'spot': 'spot',
634
634
  'funding': 'wallet',
635
+ 'swap': 'derivatives',
635
636
  'future': 'derivatives',
636
637
  },
637
638
  'withdraw': {
@@ -150,6 +150,7 @@ class luno(Exchange, ImplicitAPI):
150
150
  'withdrawals': 1,
151
151
  'send': 1,
152
152
  'oauth2/grant': 1,
153
+ 'beneficiaries': 1,
153
154
  # POST /api/exchange/1/move
154
155
  },
155
156
  'put': {
@@ -157,6 +158,7 @@ class luno(Exchange, ImplicitAPI):
157
158
  },
158
159
  'delete': {
159
160
  'withdrawals/{id}': 1,
161
+ 'beneficiaries/{id}': 1,
160
162
  },
161
163
  },
162
164
  },
@@ -2299,7 +2299,7 @@ class phemex(Exchange, ImplicitAPI):
2299
2299
  if lastTradeTimestamp == 0:
2300
2300
  lastTradeTimestamp = None
2301
2301
  timeInForce = self.parse_time_in_force(self.safe_string(order, 'timeInForce'))
2302
- stopPrice = self.omit_zero(self.safe_number_2(order, 'stopPx', 'stopPxRp'))
2302
+ stopPrice = self.omit_zero(self.safe_string_2(order, 'stopPx', 'stopPxRp'))
2303
2303
  postOnly = (timeInForce == 'PO')
2304
2304
  reduceOnly = self.safe_value(order, 'reduceOnly')
2305
2305
  execInst = self.safe_string(order, 'execInst')
@@ -15,6 +15,7 @@ error_hierarchy = {
15
15
  'NoChange': {
16
16
  'MarginModeAlreadySet': {},
17
17
  },
18
+ 'MarketClosed': {},
18
19
  },
19
20
  'BadResponse': {
20
21
  'NullResponse': {},
@@ -99,6 +100,10 @@ class MarginModeAlreadySet(NoChange):
99
100
  pass
100
101
 
101
102
 
103
+ class MarketClosed(OperationRejected):
104
+ pass
105
+
106
+
102
107
  class BadResponse(ExchangeError):
103
108
  pass
104
109
 
@@ -209,6 +214,7 @@ __all__ = [
209
214
  'OperationRejected',
210
215
  'NoChange',
211
216
  'MarginModeAlreadySet',
217
+ 'MarketClosed',
212
218
  'BadResponse',
213
219
  'NullResponse',
214
220
  'InsufficientFunds',
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.14'
7
+ __version__ = '4.3.15'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -3092,15 +3092,15 @@ class Exchange(object):
3092
3092
  # timestamp and symbol operations don't belong in safeTicker
3093
3093
  # they should be done in the derived classes
3094
3094
  return self.extend(ticker, {
3095
- 'bid': self.parse_number(self.omit_zero(self.safe_number(ticker, 'bid'))),
3095
+ 'bid': self.parse_number(self.omit_zero(self.safe_string(ticker, 'bid'))),
3096
3096
  'bidVolume': self.safe_number(ticker, 'bidVolume'),
3097
- 'ask': self.parse_number(self.omit_zero(self.safe_number(ticker, 'ask'))),
3097
+ 'ask': self.parse_number(self.omit_zero(self.safe_string(ticker, 'ask'))),
3098
3098
  'askVolume': self.safe_number(ticker, 'askVolume'),
3099
3099
  'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high'))),
3100
- 'low': self.parse_number(self.omit_zero(self.safe_number(ticker, 'low'))),
3101
- 'open': self.parse_number(self.omit_zero(self.parse_number(open))),
3102
- 'close': self.parse_number(self.omit_zero(self.parse_number(close))),
3103
- 'last': self.parse_number(self.omit_zero(self.parse_number(last))),
3100
+ 'low': self.parse_number(self.omit_zero(self.safe_string(ticker, 'low'))),
3101
+ 'open': self.parse_number(self.omit_zero(open)),
3102
+ 'close': self.parse_number(self.omit_zero(close)),
3103
+ 'last': self.parse_number(self.omit_zero(last)),
3104
3104
  'change': self.parse_number(change),
3105
3105
  'percentage': self.parse_number(percentage),
3106
3106
  'average': self.parse_number(average),
@@ -18,6 +18,7 @@ from ccxt.base.errors import BadRequest
18
18
  from ccxt.base.errors import BadSymbol
19
19
  from ccxt.base.errors import OperationRejected
20
20
  from ccxt.base.errors import MarginModeAlreadySet
21
+ from ccxt.base.errors import MarketClosed
21
22
  from ccxt.base.errors import BadResponse
22
23
  from ccxt.base.errors import InsufficientFunds
23
24
  from ccxt.base.errors import InvalidOrder
@@ -2418,7 +2419,7 @@ class binance(Exchange, ImplicitAPI):
2418
2419
  'Rest API trading is not enabled.': PermissionDenied,
2419
2420
  'This account may not place or cancel orders.': PermissionDenied,
2420
2421
  "You don't have permission.": PermissionDenied, # {"msg":"You don't have permission.","success":false}
2421
- 'Market is closed.': OperationRejected, # {"code":-1013,"msg":"Market is closed."}
2422
+ 'Market is closed.': MarketClosed, # {"code":-1013,"msg":"Market is closed."}
2422
2423
  'Too many requests. Please try again later.': RateLimitExceeded, # {"msg":"Too many requests. Please try again later.","success":false}
2423
2424
  'This action is disabled on self account.': AccountSuspended, # {"code":-2011,"msg":"This action is disabled on self account."}
2424
2425
  'Limit orders require GTC for self phase.': BadRequest,
@@ -3885,8 +3886,8 @@ class binance(Exchange, ImplicitAPI):
3885
3886
  """
3886
3887
  fetches the last price for multiple markets
3887
3888
  :see: https://binance-docs.github.io/apidocs/spot/en/#symbol-price-ticker # spot
3888
- :see: https://binance-docs.github.io/apidocs/future/en/#symbol-price-ticker # swap
3889
- :see: https://binance-docs.github.io/apidocs/delivery/en/#symbol-price-ticker # future
3889
+ :see: https://binance-docs.github.io/apidocs/futures/en/#symbol-price-ticker # swap
3890
+ :see: https://binance-docs.github.io/apidocs/delivery/en/#symbol-price-tickers # future
3890
3891
  :param str[]|None symbols: unified symbols of the markets to fetch the last prices
3891
3892
  :param dict [params]: extra parameters specific to the exchange API endpoint
3892
3893
  :param str [params.subType]: "linear" or "inverse"
@@ -400,6 +400,7 @@ class bingx(Exchange, ImplicitAPI):
400
400
  '100202': InsufficientFunds,
401
401
  '100204': BadRequest,
402
402
  '100400': BadRequest,
403
+ '100410': OperationFailed, # {"code":100410,"msg":"The current system is busy, please try again later"}
403
404
  '100421': BadSymbol, # {"code":100421,"msg":"This pair is currently restricted from API trading","debugMsg":""}
404
405
  '100440': ExchangeError,
405
406
  '100500': OperationFailed, # {"code":100500,"msg":"The current system is busy, please try again later","debugMsg":""}
@@ -6267,19 +6267,19 @@ class bybit(Exchange, ImplicitAPI):
6267
6267
  isUsdcSettled = market['settle'] == 'USDC'
6268
6268
  # engage in leverage setting
6269
6269
  # we reuse the code here instead of having two methods
6270
- leverage = self.number_to_string(leverage)
6270
+ leverageString = self.number_to_string(leverage)
6271
6271
  request = {
6272
6272
  'symbol': market['id'],
6273
- 'buyLeverage': leverage,
6274
- 'sellLeverage': leverage,
6273
+ 'buyLeverage': leverageString,
6274
+ 'sellLeverage': leverageString,
6275
6275
  }
6276
6276
  response = None
6277
6277
  if isUsdcSettled and not isUnifiedAccount:
6278
- request['leverage'] = leverage
6278
+ request['leverage'] = leverageString
6279
6279
  response = self.privatePostPerpetualUsdcOpenapiPrivateV1PositionLeverageSave(self.extend(request, params))
6280
6280
  else:
6281
- request['buyLeverage'] = leverage
6282
- request['sellLeverage'] = leverage
6281
+ request['buyLeverage'] = leverageString
6282
+ request['sellLeverage'] = leverageString
6283
6283
  if market['linear']:
6284
6284
  request['category'] = 'linear'
6285
6285
  elif market['inverse']:
@@ -3487,48 +3487,49 @@ class coinex(Exchange, ImplicitAPI):
3487
3487
  def create_deposit_address(self, code: str, params={}):
3488
3488
  """
3489
3489
  create a currency deposit address
3490
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account019_update_deposit_address
3490
+ :see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/update-deposit-address
3491
3491
  :param str code: unified currency code of the currency for the deposit address
3492
3492
  :param dict [params]: extra parameters specific to the exchange API endpoint
3493
+ :param str [params.network]: the blockchain network to create a deposit address on
3493
3494
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
3494
3495
  """
3495
3496
  self.load_markets()
3496
3497
  currency = self.currency(code)
3498
+ network = self.safe_string_2(params, 'chain', 'network')
3499
+ if network is None:
3500
+ raise ArgumentsRequired(self.id + ' createDepositAddress() requires a network parameter')
3501
+ params = self.omit(params, 'network')
3497
3502
  request = {
3498
- 'coin_type': currency['id'],
3503
+ 'ccy': currency['id'],
3504
+ 'chain': self.network_code_to_id(network, currency['code']),
3499
3505
  }
3500
- if 'network' in params:
3501
- network = self.safe_string(params, 'network')
3502
- params = self.omit(params, 'network')
3503
- request['smart_contract_name'] = network
3504
- response = self.v1PrivatePutBalanceDepositAddressCoinType(self.extend(request, params))
3506
+ response = self.v2PrivatePostAssetsRenewalDepositAddress(self.extend(request, params))
3505
3507
  #
3506
3508
  # {
3507
3509
  # "code": 0,
3508
3510
  # "data": {
3509
- # "coin_address": "TV639dSpb9iGRtoFYkCp4AoaaDYKrK1pw5",
3510
- # "is_bitcoin_cash": False
3511
+ # "address": "0x321bd6479355142334f45653ad5d8b76105a1234",
3512
+ # "memo": ""
3511
3513
  # },
3512
- # "message": "Success"
3514
+ # "message": "OK"
3513
3515
  # }
3516
+ #
3514
3517
  data = self.safe_dict(response, 'data', {})
3515
3518
  return self.parse_deposit_address(data, currency)
3516
3519
 
3517
3520
  def fetch_deposit_address(self, code: str, params={}):
3518
3521
  """
3519
3522
  fetch the deposit address for a currency associated with self account
3520
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account020_query_deposit_address
3523
+ :see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-address
3521
3524
  :param str code: unified currency code
3522
3525
  :param dict [params]: extra parameters specific to the exchange API endpoint
3526
+ :param str [params.network]: the blockchain network to create a deposit address on
3523
3527
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
3524
3528
  """
3525
3529
  self.load_markets()
3526
3530
  currency = self.currency(code)
3527
- request = {
3528
- 'coin_type': currency['id'],
3529
- }
3530
- networks = self.safe_value(currency, 'networks', {})
3531
- network = self.safe_string(params, 'network')
3531
+ networks = self.safe_dict(currency, 'networks', {})
3532
+ network = self.safe_string_2(params, 'network', 'chain')
3532
3533
  params = self.omit(params, 'network')
3533
3534
  networksKeys = list(networks.keys())
3534
3535
  numOfNetworks = len(networksKeys)
@@ -3537,23 +3538,24 @@ class coinex(Exchange, ImplicitAPI):
3537
3538
  raise ArgumentsRequired(self.id + ' fetchDepositAddress() ' + code + ' requires a network parameter')
3538
3539
  if not (network in networks):
3539
3540
  raise ExchangeError(self.id + ' fetchDepositAddress() ' + network + ' network not supported for ' + code)
3540
- if network is not None:
3541
- request['smart_contract_name'] = network
3542
- response = self.v1PrivateGetBalanceDepositAddressCoinType(self.extend(request, params))
3541
+ request = {
3542
+ 'ccy': currency['id'],
3543
+ 'chain': network,
3544
+ }
3545
+ response = self.v2PrivateGetAssetsDepositAddress(self.extend(request, params))
3543
3546
  #
3544
- # {
3545
- # "code": 0,
3546
- # "data": {
3547
- # "coin_address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3548
- # # coin_address: "xxxxxxxxxxxxxx:yyyyyyyyy", # with embedded tag/memo
3549
- # "is_bitcoin_cash": False
3550
- # },
3551
- # "message": "Success"
3552
- # }
3547
+ # {
3548
+ # "code": 0,
3549
+ # "data": {
3550
+ # "address": "0x321bd6479355142334f45653ad5d8b76105a1234",
3551
+ # "memo": ""
3552
+ # },
3553
+ # "message": "OK"
3554
+ # }
3553
3555
  #
3554
- data = self.safe_value(response, 'data', {})
3556
+ data = self.safe_dict(response, 'data', {})
3555
3557
  depositAddress = self.parse_deposit_address(data, currency)
3556
- options = self.safe_value(self.options, 'fetchDepositAddress', {})
3558
+ options = self.safe_dict(self.options, 'fetchDepositAddress', {})
3557
3559
  fillResponseFromRequest = self.safe_bool(options, 'fillResponseFromRequest', True)
3558
3560
  if fillResponseFromRequest:
3559
3561
  depositAddress['network'] = self.safe_network_code(network, currency)
@@ -3577,11 +3579,11 @@ class coinex(Exchange, ImplicitAPI):
3577
3579
  def parse_deposit_address(self, depositAddress, currency: Currency = None):
3578
3580
  #
3579
3581
  # {
3580
- # "coin_address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3581
- # "is_bitcoin_cash": False
3582
+ # "address": "1P1JqozxioQwaqPwgMAQdNDYNyaVSqgARq",
3583
+ # "memo": ""
3582
3584
  # }
3583
3585
  #
3584
- coinAddress = self.safe_string(depositAddress, 'coin_address')
3586
+ coinAddress = self.safe_string(depositAddress, 'address')
3585
3587
  parts = coinAddress.split(':')
3586
3588
  address = None
3587
3589
  tag = None
@@ -509,7 +509,8 @@ class cryptocom(Exchange, ImplicitAPI):
509
509
  strike = self.safe_string(market, 'strike')
510
510
  marginBuyEnabled = self.safe_value(market, 'margin_buy_enabled')
511
511
  marginSellEnabled = self.safe_value(market, 'margin_sell_enabled')
512
- expiry = self.omit_zero(self.safe_integer(market, 'expiry_timestamp_ms'))
512
+ expiryString = self.omit_zero(self.safe_string(market, 'expiry_timestamp_ms'))
513
+ expiry = int(expiryString) if (expiryString is not None) else None
513
514
  symbol = base + '/' + quote
514
515
  type = None
515
516
  contract = None
@@ -632,6 +632,7 @@ class hitbtc(Exchange, ImplicitAPI):
632
632
  'accountsByType': {
633
633
  'spot': 'spot',
634
634
  'funding': 'wallet',
635
+ 'swap': 'derivatives',
635
636
  'future': 'derivatives',
636
637
  },
637
638
  'withdraw': {
@@ -150,6 +150,7 @@ class luno(Exchange, ImplicitAPI):
150
150
  'withdrawals': 1,
151
151
  'send': 1,
152
152
  'oauth2/grant': 1,
153
+ 'beneficiaries': 1,
153
154
  # POST /api/exchange/1/move
154
155
  },
155
156
  'put': {
@@ -157,6 +158,7 @@ class luno(Exchange, ImplicitAPI):
157
158
  },
158
159
  'delete': {
159
160
  'withdrawals/{id}': 1,
161
+ 'beneficiaries/{id}': 1,
160
162
  },
161
163
  },
162
164
  },
@@ -2299,7 +2299,7 @@ class phemex(Exchange, ImplicitAPI):
2299
2299
  if lastTradeTimestamp == 0:
2300
2300
  lastTradeTimestamp = None
2301
2301
  timeInForce = self.parse_time_in_force(self.safe_string(order, 'timeInForce'))
2302
- stopPrice = self.omit_zero(self.safe_number_2(order, 'stopPx', 'stopPxRp'))
2302
+ stopPrice = self.omit_zero(self.safe_string_2(order, 'stopPx', 'stopPxRp'))
2303
2303
  postOnly = (timeInForce == 'PO')
2304
2304
  reduceOnly = self.safe_value(order, 'reduceOnly')
2305
2305
  execInst = self.safe_string(order, 'execInst')
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.14'
7
+ __version__ = '4.3.15'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10