ccxt 4.0.71__tar.gz → 4.0.73__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

Files changed (465) hide show
  1. {ccxt-4.0.71/ccxt.egg-info → ccxt-4.0.73}/PKG-INFO +4 -4
  2. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/__init__.py +1 -1
  3. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/binance.py +19 -4
  4. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/binancecoinm.py +19 -4
  5. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/binanceus.py +19 -4
  6. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/binanceusdm.py +19 -4
  7. ccxt-4.0.73/ccxt/abstract/lbank2.py +61 -0
  8. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/__init__.py +1 -1
  9. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/exchange.py +8 -2
  10. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/binance.py +114 -6
  11. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bybit.py +92 -0
  12. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/cryptocom.py +1 -0
  13. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/delta.py +1 -0
  14. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/deribit.py +1 -0
  15. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/gate.py +175 -0
  16. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/lbank2.py +507 -185
  17. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/okx.py +1 -0
  18. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/exchange.py +8 -2
  19. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/binance.py +114 -6
  20. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bybit.py +92 -0
  21. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/cryptocom.py +1 -0
  22. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/delta.py +1 -0
  23. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/deribit.py +1 -0
  24. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/gate.py +175 -0
  25. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/lbank2.py +506 -185
  26. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/okx.py +1 -0
  27. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/__init__.py +1 -1
  28. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitmex.py +7 -6
  29. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/cryptocom.py +12 -7
  30. {ccxt-4.0.71 → ccxt-4.0.73/ccxt.egg-info}/PKG-INFO +4 -4
  31. {ccxt-4.0.71 → ccxt-4.0.73}/package.json +1 -1
  32. ccxt-4.0.71/ccxt/abstract/lbank2.py +0 -57
  33. {ccxt-4.0.71 → ccxt-4.0.73}/LICENSE.txt +0 -0
  34. {ccxt-4.0.71 → ccxt-4.0.73}/MANIFEST.in +0 -0
  35. {ccxt-4.0.71 → ccxt-4.0.73}/README.rst +0 -0
  36. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/__init__.py +0 -0
  37. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/ace.py +0 -0
  38. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/alpaca.py +0 -0
  39. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/ascendex.py +0 -0
  40. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bequant.py +0 -0
  41. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bigone.py +0 -0
  42. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bingx.py +0 -0
  43. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bit2c.py +0 -0
  44. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitbank.py +0 -0
  45. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitbay.py +0 -0
  46. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitbns.py +0 -0
  47. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitcoincom.py +0 -0
  48. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitfinex.py +0 -0
  49. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitfinex2.py +0 -0
  50. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitflyer.py +0 -0
  51. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitforex.py +0 -0
  52. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitget.py +0 -0
  53. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bithumb.py +0 -0
  54. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitmart.py +0 -0
  55. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitmex.py +0 -0
  56. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitopro.py +0 -0
  57. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitpanda.py +0 -0
  58. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitrue.py +0 -0
  59. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitso.py +0 -0
  60. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitstamp.py +0 -0
  61. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitstamp1.py +0 -0
  62. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bittrex.py +0 -0
  63. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bitvavo.py +0 -0
  64. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bkex.py +0 -0
  65. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bl3p.py +0 -0
  66. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/blockchaincom.py +0 -0
  67. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/btcalpha.py +0 -0
  68. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/btcbox.py +0 -0
  69. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/btcmarkets.py +0 -0
  70. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/btctradeua.py +0 -0
  71. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/btcturk.py +0 -0
  72. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/bybit.py +0 -0
  73. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/cex.py +0 -0
  74. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinbase.py +0 -0
  75. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinbaseprime.py +0 -0
  76. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinbasepro.py +0 -0
  77. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coincheck.py +0 -0
  78. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinex.py +0 -0
  79. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinfalcon.py +0 -0
  80. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinmate.py +0 -0
  81. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinone.py +0 -0
  82. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinsph.py +0 -0
  83. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/coinspot.py +0 -0
  84. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/cryptocom.py +0 -0
  85. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/currencycom.py +0 -0
  86. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/delta.py +0 -0
  87. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/deribit.py +0 -0
  88. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/digifinex.py +0 -0
  89. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/exmo.py +0 -0
  90. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/fmfwio.py +0 -0
  91. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/gate.py +0 -0
  92. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/gateio.py +0 -0
  93. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/gemini.py +0 -0
  94. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/hitbtc.py +0 -0
  95. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/hitbtc3.py +0 -0
  96. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/hollaex.py +0 -0
  97. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/huobi.py +0 -0
  98. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/huobijp.py +0 -0
  99. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/huobipro.py +0 -0
  100. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/idex.py +0 -0
  101. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/independentreserve.py +0 -0
  102. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/indodax.py +0 -0
  103. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/kraken.py +0 -0
  104. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/krakenfutures.py +0 -0
  105. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/kucoin.py +0 -0
  106. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/kucoinfutures.py +0 -0
  107. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/kuna.py +0 -0
  108. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/latoken.py +0 -0
  109. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/lbank.py +0 -0
  110. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/luno.py +0 -0
  111. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/lykke.py +0 -0
  112. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/mercado.py +0 -0
  113. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/mexc.py +0 -0
  114. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/mexc3.py +0 -0
  115. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/ndax.py +0 -0
  116. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/novadax.py +0 -0
  117. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/oceanex.py +0 -0
  118. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/okcoin.py +0 -0
  119. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/okex.py +0 -0
  120. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/okex5.py +0 -0
  121. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/okx.py +0 -0
  122. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/paymium.py +0 -0
  123. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/phemex.py +0 -0
  124. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/poloniex.py +0 -0
  125. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/poloniexfutures.py +0 -0
  126. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/probit.py +0 -0
  127. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/tidex.py +0 -0
  128. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/timex.py +0 -0
  129. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/tokocrypto.py +0 -0
  130. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/upbit.py +0 -0
  131. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/wavesexchange.py +0 -0
  132. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/wazirx.py +0 -0
  133. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/whitebit.py +0 -0
  134. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/woo.py +0 -0
  135. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/yobit.py +0 -0
  136. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/zaif.py +0 -0
  137. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/abstract/zonda.py +0 -0
  138. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/ace.py +0 -0
  139. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/alpaca.py +0 -0
  140. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/ascendex.py +0 -0
  141. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/ace.py +0 -0
  142. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/alpaca.py +0 -0
  143. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/ascendex.py +0 -0
  144. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/__init__.py +0 -0
  145. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/throttler.py +0 -0
  146. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/__init__.py +0 -0
  147. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  148. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/cache.py +0 -0
  149. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/client.py +0 -0
  150. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/fast_client.py +0 -0
  151. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/functions.py +0 -0
  152. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/future.py +0 -0
  153. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/order_book.py +0 -0
  154. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/base/ws/order_book_side.py +0 -0
  155. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bequant.py +0 -0
  156. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bigone.py +0 -0
  157. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/binancecoinm.py +0 -0
  158. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/binanceus.py +0 -0
  159. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/binanceusdm.py +0 -0
  160. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bingx.py +0 -0
  161. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bit2c.py +0 -0
  162. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitbank.py +0 -0
  163. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitbay.py +0 -0
  164. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitbns.py +0 -0
  165. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitcoincom.py +0 -0
  166. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitfinex.py +0 -0
  167. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitfinex2.py +0 -0
  168. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitflyer.py +0 -0
  169. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitforex.py +0 -0
  170. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitget.py +0 -0
  171. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bithumb.py +0 -0
  172. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitmart.py +0 -0
  173. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitmex.py +0 -0
  174. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitopro.py +0 -0
  175. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitpanda.py +0 -0
  176. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitrue.py +0 -0
  177. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitso.py +0 -0
  178. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitstamp.py +0 -0
  179. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitstamp1.py +0 -0
  180. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bittrex.py +0 -0
  181. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bitvavo.py +0 -0
  182. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bkex.py +0 -0
  183. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/bl3p.py +0 -0
  184. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/blockchaincom.py +0 -0
  185. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/btcalpha.py +0 -0
  186. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/btcbox.py +0 -0
  187. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/btcmarkets.py +0 -0
  188. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/btctradeua.py +0 -0
  189. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/btcturk.py +0 -0
  190. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/cex.py +0 -0
  191. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinbase.py +0 -0
  192. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinbaseprime.py +0 -0
  193. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinbasepro.py +0 -0
  194. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coincheck.py +0 -0
  195. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinex.py +0 -0
  196. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinfalcon.py +0 -0
  197. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinmate.py +0 -0
  198. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinone.py +0 -0
  199. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinsph.py +0 -0
  200. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/coinspot.py +0 -0
  201. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/currencycom.py +0 -0
  202. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/digifinex.py +0 -0
  203. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/exmo.py +0 -0
  204. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/flowbtc.py +0 -0
  205. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/fmfwio.py +0 -0
  206. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/gateio.py +0 -0
  207. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/gemini.py +0 -0
  208. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/hitbtc.py +0 -0
  209. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/hitbtc3.py +0 -0
  210. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/hollaex.py +0 -0
  211. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/huobi.py +0 -0
  212. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/huobijp.py +0 -0
  213. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/huobipro.py +0 -0
  214. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/idex.py +0 -0
  215. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/independentreserve.py +0 -0
  216. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/indodax.py +0 -0
  217. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/kraken.py +0 -0
  218. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/krakenfutures.py +0 -0
  219. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/kucoin.py +0 -0
  220. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/kucoinfutures.py +0 -0
  221. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/kuna.py +0 -0
  222. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/latoken.py +0 -0
  223. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/lbank.py +0 -0
  224. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/luno.py +0 -0
  225. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/lykke.py +0 -0
  226. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/mercado.py +0 -0
  227. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/mexc.py +0 -0
  228. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/mexc3.py +0 -0
  229. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/ndax.py +0 -0
  230. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/novadax.py +0 -0
  231. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/oceanex.py +0 -0
  232. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/okcoin.py +0 -0
  233. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/okex.py +0 -0
  234. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/okex5.py +0 -0
  235. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/paymium.py +0 -0
  236. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/phemex.py +0 -0
  237. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/poloniex.py +0 -0
  238. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/poloniexfutures.py +0 -0
  239. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/probit.py +0 -0
  240. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/tidex.py +0 -0
  241. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/timex.py +0 -0
  242. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/tokocrypto.py +0 -0
  243. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/upbit.py +0 -0
  244. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/wavesexchange.py +0 -0
  245. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/wazirx.py +0 -0
  246. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/whitebit.py +0 -0
  247. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/woo.py +0 -0
  248. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/yobit.py +0 -0
  249. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/zaif.py +0 -0
  250. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/async_support/zonda.py +0 -0
  251. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/__init__.py +0 -0
  252. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/decimal_to_precision.py +0 -0
  253. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/errors.py +0 -0
  254. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/precise.py +0 -0
  255. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/base/types.py +0 -0
  256. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bequant.py +0 -0
  257. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bigone.py +0 -0
  258. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/binancecoinm.py +0 -0
  259. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/binanceus.py +0 -0
  260. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/binanceusdm.py +0 -0
  261. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bingx.py +0 -0
  262. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bit2c.py +0 -0
  263. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitbank.py +0 -0
  264. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitbay.py +0 -0
  265. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitbns.py +0 -0
  266. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitcoincom.py +0 -0
  267. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitfinex.py +0 -0
  268. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitfinex2.py +0 -0
  269. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitflyer.py +0 -0
  270. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitforex.py +0 -0
  271. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitget.py +0 -0
  272. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bithumb.py +0 -0
  273. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitmart.py +0 -0
  274. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitmex.py +0 -0
  275. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitopro.py +0 -0
  276. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitpanda.py +0 -0
  277. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitrue.py +0 -0
  278. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitso.py +0 -0
  279. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitstamp.py +0 -0
  280. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitstamp1.py +0 -0
  281. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bittrex.py +0 -0
  282. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bitvavo.py +0 -0
  283. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bkex.py +0 -0
  284. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/bl3p.py +0 -0
  285. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/blockchaincom.py +0 -0
  286. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/btcalpha.py +0 -0
  287. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/btcbox.py +0 -0
  288. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/btcmarkets.py +0 -0
  289. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/btctradeua.py +0 -0
  290. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/btcturk.py +0 -0
  291. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/cex.py +0 -0
  292. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinbase.py +0 -0
  293. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinbaseprime.py +0 -0
  294. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinbasepro.py +0 -0
  295. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coincheck.py +0 -0
  296. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinex.py +0 -0
  297. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinfalcon.py +0 -0
  298. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinmate.py +0 -0
  299. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinone.py +0 -0
  300. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinsph.py +0 -0
  301. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/coinspot.py +0 -0
  302. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/currencycom.py +0 -0
  303. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/digifinex.py +0 -0
  304. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/exmo.py +0 -0
  305. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/flowbtc.py +0 -0
  306. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/fmfwio.py +0 -0
  307. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/gateio.py +0 -0
  308. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/gemini.py +0 -0
  309. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/hitbtc.py +0 -0
  310. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/hitbtc3.py +0 -0
  311. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/hollaex.py +0 -0
  312. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/huobi.py +0 -0
  313. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/huobijp.py +0 -0
  314. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/huobipro.py +0 -0
  315. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/idex.py +0 -0
  316. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/independentreserve.py +0 -0
  317. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/indodax.py +0 -0
  318. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/kraken.py +0 -0
  319. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/krakenfutures.py +0 -0
  320. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/kucoin.py +0 -0
  321. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/kucoinfutures.py +0 -0
  322. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/kuna.py +0 -0
  323. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/latoken.py +0 -0
  324. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/lbank.py +0 -0
  325. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/luno.py +0 -0
  326. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/lykke.py +0 -0
  327. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/mercado.py +0 -0
  328. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/mexc.py +0 -0
  329. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/mexc3.py +0 -0
  330. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/ndax.py +0 -0
  331. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/novadax.py +0 -0
  332. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/oceanex.py +0 -0
  333. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/okcoin.py +0 -0
  334. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/okex.py +0 -0
  335. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/okex5.py +0 -0
  336. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/paymium.py +0 -0
  337. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/phemex.py +0 -0
  338. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/poloniex.py +0 -0
  339. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/poloniexfutures.py +0 -0
  340. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/alpaca.py +0 -0
  341. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/ascendex.py +0 -0
  342. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bequant.py +0 -0
  343. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/binance.py +0 -0
  344. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/binancecoinm.py +0 -0
  345. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/binanceus.py +0 -0
  346. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/binanceusdm.py +0 -0
  347. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitcoincom.py +0 -0
  348. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitfinex.py +0 -0
  349. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitfinex2.py +0 -0
  350. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitget.py +0 -0
  351. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitmart.py +0 -0
  352. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitopro.py +0 -0
  353. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitpanda.py +0 -0
  354. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitrue.py +0 -0
  355. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitstamp.py +0 -0
  356. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bittrex.py +0 -0
  357. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bitvavo.py +0 -0
  358. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/blockchaincom.py +0 -0
  359. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/btcex.py +0 -0
  360. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/bybit.py +0 -0
  361. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/cex.py +0 -0
  362. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/coinbase.py +0 -0
  363. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/coinbaseprime.py +0 -0
  364. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/coinbasepro.py +0 -0
  365. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/coinex.py +0 -0
  366. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/currencycom.py +0 -0
  367. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/deribit.py +0 -0
  368. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/exmo.py +0 -0
  369. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/gate.py +0 -0
  370. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/gateio.py +0 -0
  371. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/gemini.py +0 -0
  372. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/hitbtc.py +0 -0
  373. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/hollaex.py +0 -0
  374. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/huobi.py +0 -0
  375. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/huobijp.py +0 -0
  376. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/huobipro.py +0 -0
  377. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/idex.py +0 -0
  378. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/independentreserve.py +0 -0
  379. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/kraken.py +0 -0
  380. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/krakenfutures.py +0 -0
  381. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/kucoin.py +0 -0
  382. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/kucoinfutures.py +0 -0
  383. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/luno.py +0 -0
  384. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/mexc.py +0 -0
  385. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/mexc3.py +0 -0
  386. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/ndax.py +0 -0
  387. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/okcoin.py +0 -0
  388. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/okex.py +0 -0
  389. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/okx.py +0 -0
  390. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/phemex.py +0 -0
  391. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/poloniex.py +0 -0
  392. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/poloniexfutures.py +0 -0
  393. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/probit.py +0 -0
  394. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/ripio.py +0 -0
  395. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/upbit.py +0 -0
  396. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/wazirx.py +0 -0
  397. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/whitebit.py +0 -0
  398. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/woo.py +0 -0
  399. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/pro/zb.py +0 -0
  400. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/probit.py +0 -0
  401. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/__init__.py +0 -0
  402. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  403. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  404. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  405. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/der.py +0 -0
  406. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  407. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  408. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  409. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  410. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  411. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/ecdsa/util.py +0 -0
  412. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/keccak/__init__.py +0 -0
  413. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/static_dependencies/keccak/keccak.py +0 -0
  414. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/__init__.py +0 -0
  415. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/__init__.py +0 -0
  416. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_account.py +0 -0
  417. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_balance.py +0 -0
  418. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_borrow_interest.py +0 -0
  419. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_borrow_rate.py +0 -0
  420. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_calculate_fee.py +0 -0
  421. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_crypto.py +0 -0
  422. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_currency.py +0 -0
  423. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_datetime.py +0 -0
  424. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_decimal_to_precision.py +0 -0
  425. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_deep_extend.py +0 -0
  426. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
  427. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
  428. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_funding_rate_history.py +0 -0
  429. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_ledger_entry.py +0 -0
  430. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_ledger_item.py +0 -0
  431. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_leverage_tier.py +0 -0
  432. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_margin_modification.py +0 -0
  433. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_market.py +0 -0
  434. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_number.py +0 -0
  435. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_ohlcv.py +0 -0
  436. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_open_interest.py +0 -0
  437. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_order.py +0 -0
  438. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_order_book.py +0 -0
  439. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_position.py +0 -0
  440. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_shared_methods.py +0 -0
  441. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_status.py +0 -0
  442. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_throttle.py +0 -0
  443. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_ticker.py +0 -0
  444. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_trade.py +0 -0
  445. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_trading_fee.py +0 -0
  446. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/base/test_transaction.py +0 -0
  447. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/test_async.py +0 -0
  448. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/test/test_sync.py +0 -0
  449. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/tidex.py +0 -0
  450. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/timex.py +0 -0
  451. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/tokocrypto.py +0 -0
  452. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/upbit.py +0 -0
  453. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/wavesexchange.py +0 -0
  454. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/wazirx.py +0 -0
  455. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/whitebit.py +0 -0
  456. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/woo.py +0 -0
  457. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/yobit.py +0 -0
  458. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/zaif.py +0 -0
  459. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt/zonda.py +0 -0
  460. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt.egg-info/SOURCES.txt +0 -0
  461. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt.egg-info/dependency_links.txt +0 -0
  462. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt.egg-info/requires.txt +0 -0
  463. {ccxt-4.0.71 → ccxt-4.0.73}/ccxt.egg-info/top_level.txt +0 -0
  464. {ccxt-4.0.71 → ccxt-4.0.73}/setup.cfg +0 -0
  465. {ccxt-4.0.71 → ccxt-4.0.73}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.0.71
3
+ Version: 4.0.73
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -228,13 +228,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
228
228
 
229
229
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
230
230
 
231
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.71/dist/ccxt.browser.js
232
- * unpkg: https://unpkg.com/ccxt@4.0.71/dist/ccxt.browser.js
231
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.73/dist/ccxt.browser.js
232
+ * unpkg: https://unpkg.com/ccxt@4.0.73/dist/ccxt.browser.js
233
233
 
234
234
  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.
235
235
 
236
236
  ```HTML
237
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.71/dist/ccxt.browser.js"></script>
237
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.73/dist/ccxt.browser.js"></script>
238
238
  ```
239
239
 
240
240
  Creates a global `ccxt` object:
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.0.71'
25
+ __version__ = '4.0.73'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -554,6 +554,21 @@ class ImplicitAPI:
554
554
  papi_get_cm_openorder = papiGetCmOpenOrder = Entry('cm/openOrder', 'papi', 'GET', {'cost': 1})
555
555
  papi_get_cm_openorders = papiGetCmOpenOrders = Entry('cm/openOrders', 'papi', 'GET', {'cost': 1})
556
556
  papi_get_cm_allorders = papiGetCmAllOrders = Entry('cm/allOrders', 'papi', 'GET', {'cost': 20})
557
+ papi_get_um_conditional_openorder = papiGetUmConditionalOpenOrder = Entry('um/conditional/openOrder', 'papi', 'GET', {'cost': 1})
558
+ papi_get_um_conditional_openorders = papiGetUmConditionalOpenOrders = Entry('um/conditional/openOrders', 'papi', 'GET', {'cost': 40})
559
+ papi_get_um_conditional_orderhistory = papiGetUmConditionalOrderHistory = Entry('um/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
560
+ papi_get_um_conditional_allorders = papiGetUmConditionalAllOrders = Entry('um/conditional/allOrders', 'papi', 'GET', {'cost': 40})
561
+ papi_get_cm_conditional_openorder = papiGetCmConditionalOpenOrder = Entry('cm/conditional/openOrder', 'papi', 'GET', {'cost': 1})
562
+ papi_get_cm_conditional_openorders = papiGetCmConditionalOpenOrders = Entry('cm/conditional/openOrders', 'papi', 'GET', {'cost': 40})
563
+ papi_get_cm_conditional_orderhistory = papiGetCmConditionalOrderHistory = Entry('cm/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
564
+ papi_get_cm_conditional_allorders = papiGetCmConditionalAllOrders = Entry('cm/conditional/allOrders', 'papi', 'GET', {'cost': 40})
565
+ papi_get_margin_order = papiGetMarginOrder = Entry('margin/order', 'papi', 'GET', {'cost': 5})
566
+ papi_get_margin_openorders = papiGetMarginOpenOrders = Entry('margin/openOrders', 'papi', 'GET', {'cost': 5})
567
+ papi_get_margin_allorders = papiGetMarginAllOrders = Entry('margin/allOrders', 'papi', 'GET', {'cost': 100})
568
+ papi_get_margin_orderlist = papiGetMarginOrderList = Entry('margin/orderList', 'papi', 'GET', {'cost': 5})
569
+ papi_get_margin_allorderlist = papiGetMarginAllOrderList = Entry('margin/allOrderList', 'papi', 'GET', {'cost': 100})
570
+ papi_get_margin_openorderlist = papiGetMarginOpenOrderList = Entry('margin/openOrderList', 'papi', 'GET', {'cost': 5})
571
+ papi_get_margin_mytrades = papiGetMarginMyTrades = Entry('margin/myTrades', 'papi', 'GET', {'cost': 5})
557
572
  papi_get_balance = papiGetBalance = Entry('balance', 'papi', 'GET', {'cost': 20})
558
573
  papi_get_account = papiGetAccount = Entry('account', 'papi', 'GET', {'cost': 20})
559
574
  papi_get_margin_maxborrowable = papiGetMarginMaxBorrowable = Entry('margin/maxBorrowable', 'papi', 'GET', {'cost': 5})
@@ -572,6 +587,10 @@ class ImplicitAPI:
572
587
  papi_get_um_apitradingstatus = papiGetUmApiTradingStatus = Entry('um/apiTradingStatus', 'papi', 'GET', {'cost': 1})
573
588
  papi_get_um_commissionrate = papiGetUmCommissionRate = Entry('um/commissionRate', 'papi', 'GET', {'cost': 20})
574
589
  papi_get_cm_commissionrate = papiGetCmCommissionRate = Entry('cm/commissionRate', 'papi', 'GET', {'cost': 20})
590
+ papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 10})
591
+ papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 10})
592
+ papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 1})
593
+ papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
575
594
  papi_get_um_income = papiGetUmIncome = Entry('um/income', 'papi', 'GET', {'cost': 30})
576
595
  papi_get_cm_income = papiGetCmIncome = Entry('cm/income ', 'papi', 'GET', {'cost': 30})
577
596
  papi_get_um_account = papiGetUmAccount = Entry('um/account', 'papi', 'GET', {'cost': 5})
@@ -579,10 +598,6 @@ class ImplicitAPI:
579
598
  papi_get_portfolio_repay_futures_switch = papiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'GET', {'cost': 3})
580
599
  papi_get_um_adlquantile = papiGetUmAdlQuantile = Entry('um/adlQuantile', 'papi', 'GET', {'cost': 5})
581
600
  papi_get_cm_adlquantile = papiGetCmAdlQuantile = Entry('cm/adlQuantile', 'papi', 'GET', {'cost': 5})
582
- papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 0.0667})
583
- papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 0.0667})
584
- papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 0.1})
585
- papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
586
601
  papi_post_um_order = papiPostUmOrder = Entry('um/order', 'papi', 'POST', {'cost': 1})
587
602
  papi_post_cm_order = papiPostCmOrder = Entry('cm/order', 'papi', 'POST', {'cost': 1})
588
603
  papi_post_margin_order = papiPostMarginOrder = Entry('margin/order', 'papi', 'POST', {'cost': 0.0133})
@@ -554,6 +554,21 @@ class ImplicitAPI:
554
554
  papi_get_cm_openorder = papiGetCmOpenOrder = Entry('cm/openOrder', 'papi', 'GET', {'cost': 1})
555
555
  papi_get_cm_openorders = papiGetCmOpenOrders = Entry('cm/openOrders', 'papi', 'GET', {'cost': 1})
556
556
  papi_get_cm_allorders = papiGetCmAllOrders = Entry('cm/allOrders', 'papi', 'GET', {'cost': 20})
557
+ papi_get_um_conditional_openorder = papiGetUmConditionalOpenOrder = Entry('um/conditional/openOrder', 'papi', 'GET', {'cost': 1})
558
+ papi_get_um_conditional_openorders = papiGetUmConditionalOpenOrders = Entry('um/conditional/openOrders', 'papi', 'GET', {'cost': 40})
559
+ papi_get_um_conditional_orderhistory = papiGetUmConditionalOrderHistory = Entry('um/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
560
+ papi_get_um_conditional_allorders = papiGetUmConditionalAllOrders = Entry('um/conditional/allOrders', 'papi', 'GET', {'cost': 40})
561
+ papi_get_cm_conditional_openorder = papiGetCmConditionalOpenOrder = Entry('cm/conditional/openOrder', 'papi', 'GET', {'cost': 1})
562
+ papi_get_cm_conditional_openorders = papiGetCmConditionalOpenOrders = Entry('cm/conditional/openOrders', 'papi', 'GET', {'cost': 40})
563
+ papi_get_cm_conditional_orderhistory = papiGetCmConditionalOrderHistory = Entry('cm/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
564
+ papi_get_cm_conditional_allorders = papiGetCmConditionalAllOrders = Entry('cm/conditional/allOrders', 'papi', 'GET', {'cost': 40})
565
+ papi_get_margin_order = papiGetMarginOrder = Entry('margin/order', 'papi', 'GET', {'cost': 5})
566
+ papi_get_margin_openorders = papiGetMarginOpenOrders = Entry('margin/openOrders', 'papi', 'GET', {'cost': 5})
567
+ papi_get_margin_allorders = papiGetMarginAllOrders = Entry('margin/allOrders', 'papi', 'GET', {'cost': 100})
568
+ papi_get_margin_orderlist = papiGetMarginOrderList = Entry('margin/orderList', 'papi', 'GET', {'cost': 5})
569
+ papi_get_margin_allorderlist = papiGetMarginAllOrderList = Entry('margin/allOrderList', 'papi', 'GET', {'cost': 100})
570
+ papi_get_margin_openorderlist = papiGetMarginOpenOrderList = Entry('margin/openOrderList', 'papi', 'GET', {'cost': 5})
571
+ papi_get_margin_mytrades = papiGetMarginMyTrades = Entry('margin/myTrades', 'papi', 'GET', {'cost': 5})
557
572
  papi_get_balance = papiGetBalance = Entry('balance', 'papi', 'GET', {'cost': 20})
558
573
  papi_get_account = papiGetAccount = Entry('account', 'papi', 'GET', {'cost': 20})
559
574
  papi_get_margin_maxborrowable = papiGetMarginMaxBorrowable = Entry('margin/maxBorrowable', 'papi', 'GET', {'cost': 5})
@@ -572,6 +587,10 @@ class ImplicitAPI:
572
587
  papi_get_um_apitradingstatus = papiGetUmApiTradingStatus = Entry('um/apiTradingStatus', 'papi', 'GET', {'cost': 1})
573
588
  papi_get_um_commissionrate = papiGetUmCommissionRate = Entry('um/commissionRate', 'papi', 'GET', {'cost': 20})
574
589
  papi_get_cm_commissionrate = papiGetCmCommissionRate = Entry('cm/commissionRate', 'papi', 'GET', {'cost': 20})
590
+ papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 10})
591
+ papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 10})
592
+ papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 1})
593
+ papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
575
594
  papi_get_um_income = papiGetUmIncome = Entry('um/income', 'papi', 'GET', {'cost': 30})
576
595
  papi_get_cm_income = papiGetCmIncome = Entry('cm/income ', 'papi', 'GET', {'cost': 30})
577
596
  papi_get_um_account = papiGetUmAccount = Entry('um/account', 'papi', 'GET', {'cost': 5})
@@ -579,10 +598,6 @@ class ImplicitAPI:
579
598
  papi_get_portfolio_repay_futures_switch = papiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'GET', {'cost': 3})
580
599
  papi_get_um_adlquantile = papiGetUmAdlQuantile = Entry('um/adlQuantile', 'papi', 'GET', {'cost': 5})
581
600
  papi_get_cm_adlquantile = papiGetCmAdlQuantile = Entry('cm/adlQuantile', 'papi', 'GET', {'cost': 5})
582
- papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 0.0667})
583
- papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 0.0667})
584
- papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 0.1})
585
- papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
586
601
  papi_post_um_order = papiPostUmOrder = Entry('um/order', 'papi', 'POST', {'cost': 1})
587
602
  papi_post_cm_order = papiPostCmOrder = Entry('cm/order', 'papi', 'POST', {'cost': 1})
588
603
  papi_post_margin_order = papiPostMarginOrder = Entry('margin/order', 'papi', 'POST', {'cost': 0.0133})
@@ -554,6 +554,21 @@ class ImplicitAPI:
554
554
  papi_get_cm_openorder = papiGetCmOpenOrder = Entry('cm/openOrder', 'papi', 'GET', {'cost': 1})
555
555
  papi_get_cm_openorders = papiGetCmOpenOrders = Entry('cm/openOrders', 'papi', 'GET', {'cost': 1})
556
556
  papi_get_cm_allorders = papiGetCmAllOrders = Entry('cm/allOrders', 'papi', 'GET', {'cost': 20})
557
+ papi_get_um_conditional_openorder = papiGetUmConditionalOpenOrder = Entry('um/conditional/openOrder', 'papi', 'GET', {'cost': 1})
558
+ papi_get_um_conditional_openorders = papiGetUmConditionalOpenOrders = Entry('um/conditional/openOrders', 'papi', 'GET', {'cost': 40})
559
+ papi_get_um_conditional_orderhistory = papiGetUmConditionalOrderHistory = Entry('um/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
560
+ papi_get_um_conditional_allorders = papiGetUmConditionalAllOrders = Entry('um/conditional/allOrders', 'papi', 'GET', {'cost': 40})
561
+ papi_get_cm_conditional_openorder = papiGetCmConditionalOpenOrder = Entry('cm/conditional/openOrder', 'papi', 'GET', {'cost': 1})
562
+ papi_get_cm_conditional_openorders = papiGetCmConditionalOpenOrders = Entry('cm/conditional/openOrders', 'papi', 'GET', {'cost': 40})
563
+ papi_get_cm_conditional_orderhistory = papiGetCmConditionalOrderHistory = Entry('cm/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
564
+ papi_get_cm_conditional_allorders = papiGetCmConditionalAllOrders = Entry('cm/conditional/allOrders', 'papi', 'GET', {'cost': 40})
565
+ papi_get_margin_order = papiGetMarginOrder = Entry('margin/order', 'papi', 'GET', {'cost': 5})
566
+ papi_get_margin_openorders = papiGetMarginOpenOrders = Entry('margin/openOrders', 'papi', 'GET', {'cost': 5})
567
+ papi_get_margin_allorders = papiGetMarginAllOrders = Entry('margin/allOrders', 'papi', 'GET', {'cost': 100})
568
+ papi_get_margin_orderlist = papiGetMarginOrderList = Entry('margin/orderList', 'papi', 'GET', {'cost': 5})
569
+ papi_get_margin_allorderlist = papiGetMarginAllOrderList = Entry('margin/allOrderList', 'papi', 'GET', {'cost': 100})
570
+ papi_get_margin_openorderlist = papiGetMarginOpenOrderList = Entry('margin/openOrderList', 'papi', 'GET', {'cost': 5})
571
+ papi_get_margin_mytrades = papiGetMarginMyTrades = Entry('margin/myTrades', 'papi', 'GET', {'cost': 5})
557
572
  papi_get_balance = papiGetBalance = Entry('balance', 'papi', 'GET', {'cost': 20})
558
573
  papi_get_account = papiGetAccount = Entry('account', 'papi', 'GET', {'cost': 20})
559
574
  papi_get_margin_maxborrowable = papiGetMarginMaxBorrowable = Entry('margin/maxBorrowable', 'papi', 'GET', {'cost': 5})
@@ -572,6 +587,10 @@ class ImplicitAPI:
572
587
  papi_get_um_apitradingstatus = papiGetUmApiTradingStatus = Entry('um/apiTradingStatus', 'papi', 'GET', {'cost': 1})
573
588
  papi_get_um_commissionrate = papiGetUmCommissionRate = Entry('um/commissionRate', 'papi', 'GET', {'cost': 20})
574
589
  papi_get_cm_commissionrate = papiGetCmCommissionRate = Entry('cm/commissionRate', 'papi', 'GET', {'cost': 20})
590
+ papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 10})
591
+ papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 10})
592
+ papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 1})
593
+ papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
575
594
  papi_get_um_income = papiGetUmIncome = Entry('um/income', 'papi', 'GET', {'cost': 30})
576
595
  papi_get_cm_income = papiGetCmIncome = Entry('cm/income ', 'papi', 'GET', {'cost': 30})
577
596
  papi_get_um_account = papiGetUmAccount = Entry('um/account', 'papi', 'GET', {'cost': 5})
@@ -579,10 +598,6 @@ class ImplicitAPI:
579
598
  papi_get_portfolio_repay_futures_switch = papiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'GET', {'cost': 3})
580
599
  papi_get_um_adlquantile = papiGetUmAdlQuantile = Entry('um/adlQuantile', 'papi', 'GET', {'cost': 5})
581
600
  papi_get_cm_adlquantile = papiGetCmAdlQuantile = Entry('cm/adlQuantile', 'papi', 'GET', {'cost': 5})
582
- papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 0.0667})
583
- papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 0.0667})
584
- papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 0.1})
585
- papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
586
601
  papi_post_um_order = papiPostUmOrder = Entry('um/order', 'papi', 'POST', {'cost': 1})
587
602
  papi_post_cm_order = papiPostCmOrder = Entry('cm/order', 'papi', 'POST', {'cost': 1})
588
603
  papi_post_margin_order = papiPostMarginOrder = Entry('margin/order', 'papi', 'POST', {'cost': 0.0133})
@@ -554,6 +554,21 @@ class ImplicitAPI:
554
554
  papi_get_cm_openorder = papiGetCmOpenOrder = Entry('cm/openOrder', 'papi', 'GET', {'cost': 1})
555
555
  papi_get_cm_openorders = papiGetCmOpenOrders = Entry('cm/openOrders', 'papi', 'GET', {'cost': 1})
556
556
  papi_get_cm_allorders = papiGetCmAllOrders = Entry('cm/allOrders', 'papi', 'GET', {'cost': 20})
557
+ papi_get_um_conditional_openorder = papiGetUmConditionalOpenOrder = Entry('um/conditional/openOrder', 'papi', 'GET', {'cost': 1})
558
+ papi_get_um_conditional_openorders = papiGetUmConditionalOpenOrders = Entry('um/conditional/openOrders', 'papi', 'GET', {'cost': 40})
559
+ papi_get_um_conditional_orderhistory = papiGetUmConditionalOrderHistory = Entry('um/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
560
+ papi_get_um_conditional_allorders = papiGetUmConditionalAllOrders = Entry('um/conditional/allOrders', 'papi', 'GET', {'cost': 40})
561
+ papi_get_cm_conditional_openorder = papiGetCmConditionalOpenOrder = Entry('cm/conditional/openOrder', 'papi', 'GET', {'cost': 1})
562
+ papi_get_cm_conditional_openorders = papiGetCmConditionalOpenOrders = Entry('cm/conditional/openOrders', 'papi', 'GET', {'cost': 40})
563
+ papi_get_cm_conditional_orderhistory = papiGetCmConditionalOrderHistory = Entry('cm/conditional/orderHistory', 'papi', 'GET', {'cost': 1})
564
+ papi_get_cm_conditional_allorders = papiGetCmConditionalAllOrders = Entry('cm/conditional/allOrders', 'papi', 'GET', {'cost': 40})
565
+ papi_get_margin_order = papiGetMarginOrder = Entry('margin/order', 'papi', 'GET', {'cost': 5})
566
+ papi_get_margin_openorders = papiGetMarginOpenOrders = Entry('margin/openOrders', 'papi', 'GET', {'cost': 5})
567
+ papi_get_margin_allorders = papiGetMarginAllOrders = Entry('margin/allOrders', 'papi', 'GET', {'cost': 100})
568
+ papi_get_margin_orderlist = papiGetMarginOrderList = Entry('margin/orderList', 'papi', 'GET', {'cost': 5})
569
+ papi_get_margin_allorderlist = papiGetMarginAllOrderList = Entry('margin/allOrderList', 'papi', 'GET', {'cost': 100})
570
+ papi_get_margin_openorderlist = papiGetMarginOpenOrderList = Entry('margin/openOrderList', 'papi', 'GET', {'cost': 5})
571
+ papi_get_margin_mytrades = papiGetMarginMyTrades = Entry('margin/myTrades', 'papi', 'GET', {'cost': 5})
557
572
  papi_get_balance = papiGetBalance = Entry('balance', 'papi', 'GET', {'cost': 20})
558
573
  papi_get_account = papiGetAccount = Entry('account', 'papi', 'GET', {'cost': 20})
559
574
  papi_get_margin_maxborrowable = papiGetMarginMaxBorrowable = Entry('margin/maxBorrowable', 'papi', 'GET', {'cost': 5})
@@ -572,6 +587,10 @@ class ImplicitAPI:
572
587
  papi_get_um_apitradingstatus = papiGetUmApiTradingStatus = Entry('um/apiTradingStatus', 'papi', 'GET', {'cost': 1})
573
588
  papi_get_um_commissionrate = papiGetUmCommissionRate = Entry('um/commissionRate', 'papi', 'GET', {'cost': 20})
574
589
  papi_get_cm_commissionrate = papiGetCmCommissionRate = Entry('cm/commissionRate', 'papi', 'GET', {'cost': 20})
590
+ papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 10})
591
+ papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 10})
592
+ papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 1})
593
+ papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
575
594
  papi_get_um_income = papiGetUmIncome = Entry('um/income', 'papi', 'GET', {'cost': 30})
576
595
  papi_get_cm_income = papiGetCmIncome = Entry('cm/income ', 'papi', 'GET', {'cost': 30})
577
596
  papi_get_um_account = papiGetUmAccount = Entry('um/account', 'papi', 'GET', {'cost': 5})
@@ -579,10 +598,6 @@ class ImplicitAPI:
579
598
  papi_get_portfolio_repay_futures_switch = papiGetPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'GET', {'cost': 3})
580
599
  papi_get_um_adlquantile = papiGetUmAdlQuantile = Entry('um/adlQuantile', 'papi', 'GET', {'cost': 5})
581
600
  papi_get_cm_adlquantile = papiGetCmAdlQuantile = Entry('cm/adlQuantile', 'papi', 'GET', {'cost': 5})
582
- papi_get_margin_marginloan = papiGetMarginMarginLoan = Entry('margin/marginLoan', 'papi', 'GET', {'cost': 0.0667})
583
- papi_get_margin_repayloan = papiGetMarginRepayLoan = Entry('margin/repayLoan', 'papi', 'GET', {'cost': 0.0667})
584
- papi_get_margin_margininteresthistory = papiGetMarginMarginInterestHistory = Entry('margin/marginInterestHistory', 'papi', 'GET', {'cost': 0.1})
585
- papi_get_portfolio_interest_history = papiGetPortfolioInterestHistory = Entry('portfolio/interest-history', 'papi', 'GET', {'cost': 50})
586
601
  papi_post_um_order = papiPostUmOrder = Entry('um/order', 'papi', 'POST', {'cost': 1})
587
602
  papi_post_cm_order = papiPostCmOrder = Entry('cm/order', 'papi', 'POST', {'cost': 1})
588
603
  papi_post_margin_order = papiPostMarginOrder = Entry('margin/order', 'papi', 'POST', {'cost': 0.0133})
@@ -0,0 +1,61 @@
1
+ from ccxt.base.types import Entry
2
+
3
+
4
+ class ImplicitAPI:
5
+ spot_public_get_currencypairs = spotPublicGetCurrencyPairs = Entry('currencyPairs', ['spot', 'public'], 'GET', {'cost': 2.5})
6
+ spot_public_get_accuracy = spotPublicGetAccuracy = Entry('accuracy', ['spot', 'public'], 'GET', {'cost': 2.5})
7
+ spot_public_get_usdtocny = spotPublicGetUsdToCny = Entry('usdToCny', ['spot', 'public'], 'GET', {'cost': 2.5})
8
+ spot_public_get_withdrawconfigs = spotPublicGetWithdrawConfigs = Entry('withdrawConfigs', ['spot', 'public'], 'GET', {'cost': 2.5})
9
+ spot_public_get_timestamp = spotPublicGetTimestamp = Entry('timestamp', ['spot', 'public'], 'GET', {'cost': 2.5})
10
+ spot_public_get_ticker_24hr = spotPublicGetTicker24hr = Entry('ticker/24hr', ['spot', 'public'], 'GET', {'cost': 2.5})
11
+ spot_public_get_ticker = spotPublicGetTicker = Entry('ticker', ['spot', 'public'], 'GET', {'cost': 2.5})
12
+ spot_public_get_depth = spotPublicGetDepth = Entry('depth', ['spot', 'public'], 'GET', {'cost': 2.5})
13
+ spot_public_get_incrdepth = spotPublicGetIncrDepth = Entry('incrDepth', ['spot', 'public'], 'GET', {'cost': 2.5})
14
+ spot_public_get_trades = spotPublicGetTrades = Entry('trades', ['spot', 'public'], 'GET', {'cost': 2.5})
15
+ spot_public_get_kline = spotPublicGetKline = Entry('kline', ['spot', 'public'], 'GET', {'cost': 2.5})
16
+ spot_public_get_supplement_system_ping = spotPublicGetSupplementSystemPing = Entry('supplement/system_ping', ['spot', 'public'], 'GET', {'cost': 2.5})
17
+ spot_public_get_supplement_incrdepth = spotPublicGetSupplementIncrDepth = Entry('supplement/incrDepth', ['spot', 'public'], 'GET', {'cost': 2.5})
18
+ spot_public_get_supplement_trades = spotPublicGetSupplementTrades = Entry('supplement/trades', ['spot', 'public'], 'GET', {'cost': 2.5})
19
+ spot_public_get_supplement_ticker_price = spotPublicGetSupplementTickerPrice = Entry('supplement/ticker/price', ['spot', 'public'], 'GET', {'cost': 2.5})
20
+ spot_public_get_supplement_ticker_bookticker = spotPublicGetSupplementTickerBookTicker = Entry('supplement/ticker/bookTicker', ['spot', 'public'], 'GET', {'cost': 2.5})
21
+ spot_public_post_supplement_system_status = spotPublicPostSupplementSystemStatus = Entry('supplement/system_status', ['spot', 'public'], 'POST', {'cost': 2.5})
22
+ spot_private_post_user_info = spotPrivatePostUserInfo = Entry('user_info', ['spot', 'private'], 'POST', {'cost': 2.5})
23
+ spot_private_post_subscribe_get_key = spotPrivatePostSubscribeGetKey = Entry('subscribe/get_key', ['spot', 'private'], 'POST', {'cost': 2.5})
24
+ spot_private_post_subscribe_refresh_key = spotPrivatePostSubscribeRefreshKey = Entry('subscribe/refresh_key', ['spot', 'private'], 'POST', {'cost': 2.5})
25
+ spot_private_post_subscribe_destroy_key = spotPrivatePostSubscribeDestroyKey = Entry('subscribe/destroy_key', ['spot', 'private'], 'POST', {'cost': 2.5})
26
+ spot_private_post_get_deposit_address = spotPrivatePostGetDepositAddress = Entry('get_deposit_address', ['spot', 'private'], 'POST', {'cost': 2.5})
27
+ spot_private_post_deposit_history = spotPrivatePostDepositHistory = Entry('deposit_history', ['spot', 'private'], 'POST', {'cost': 2.5})
28
+ spot_private_post_create_order = spotPrivatePostCreateOrder = Entry('create_order', ['spot', 'private'], 'POST', {'cost': 1})
29
+ spot_private_post_batch_create_order = spotPrivatePostBatchCreateOrder = Entry('batch_create_order', ['spot', 'private'], 'POST', {'cost': 1})
30
+ spot_private_post_cancel_order = spotPrivatePostCancelOrder = Entry('cancel_order', ['spot', 'private'], 'POST', {'cost': 1})
31
+ spot_private_post_cancel_clientorders = spotPrivatePostCancelClientOrders = Entry('cancel_clientOrders', ['spot', 'private'], 'POST', {'cost': 1})
32
+ spot_private_post_orders_info = spotPrivatePostOrdersInfo = Entry('orders_info', ['spot', 'private'], 'POST', {'cost': 2.5})
33
+ spot_private_post_orders_info_history = spotPrivatePostOrdersInfoHistory = Entry('orders_info_history', ['spot', 'private'], 'POST', {'cost': 2.5})
34
+ spot_private_post_order_transaction_detail = spotPrivatePostOrderTransactionDetail = Entry('order_transaction_detail', ['spot', 'private'], 'POST', {'cost': 2.5})
35
+ spot_private_post_transaction_history = spotPrivatePostTransactionHistory = Entry('transaction_history', ['spot', 'private'], 'POST', {'cost': 2.5})
36
+ spot_private_post_orders_info_no_deal = spotPrivatePostOrdersInfoNoDeal = Entry('orders_info_no_deal', ['spot', 'private'], 'POST', {'cost': 2.5})
37
+ spot_private_post_withdraw = spotPrivatePostWithdraw = Entry('withdraw', ['spot', 'private'], 'POST', {'cost': 2.5})
38
+ spot_private_post_withdrawcancel = spotPrivatePostWithdrawCancel = Entry('withdrawCancel', ['spot', 'private'], 'POST', {'cost': 2.5})
39
+ spot_private_post_withdraws = spotPrivatePostWithdraws = Entry('withdraws', ['spot', 'private'], 'POST', {'cost': 2.5})
40
+ spot_private_post_supplement_user_info = spotPrivatePostSupplementUserInfo = Entry('supplement/user_info', ['spot', 'private'], 'POST', {'cost': 2.5})
41
+ spot_private_post_supplement_withdraw = spotPrivatePostSupplementWithdraw = Entry('supplement/withdraw', ['spot', 'private'], 'POST', {'cost': 2.5})
42
+ spot_private_post_supplement_deposit_history = spotPrivatePostSupplementDepositHistory = Entry('supplement/deposit_history', ['spot', 'private'], 'POST', {'cost': 2.5})
43
+ spot_private_post_supplement_withdraws = spotPrivatePostSupplementWithdraws = Entry('supplement/withdraws', ['spot', 'private'], 'POST', {'cost': 2.5})
44
+ spot_private_post_supplement_get_deposit_address = spotPrivatePostSupplementGetDepositAddress = Entry('supplement/get_deposit_address', ['spot', 'private'], 'POST', {'cost': 2.5})
45
+ spot_private_post_supplement_asset_detail = spotPrivatePostSupplementAssetDetail = Entry('supplement/asset_detail', ['spot', 'private'], 'POST', {'cost': 2.5})
46
+ spot_private_post_supplement_customer_trade_fee = spotPrivatePostSupplementCustomerTradeFee = Entry('supplement/customer_trade_fee', ['spot', 'private'], 'POST', {'cost': 2.5})
47
+ spot_private_post_supplement_api_restrictions = spotPrivatePostSupplementApiRestrictions = Entry('supplement/api_Restrictions', ['spot', 'private'], 'POST', {'cost': 2.5})
48
+ spot_private_post_supplement_system_ping = spotPrivatePostSupplementSystemPing = Entry('supplement/system_ping', ['spot', 'private'], 'POST', {'cost': 2.5})
49
+ spot_private_post_supplement_create_order_test = spotPrivatePostSupplementCreateOrderTest = Entry('supplement/create_order_test', ['spot', 'private'], 'POST', {'cost': 1})
50
+ spot_private_post_supplement_create_order = spotPrivatePostSupplementCreateOrder = Entry('supplement/create_order', ['spot', 'private'], 'POST', {'cost': 1})
51
+ spot_private_post_supplement_cancel_order = spotPrivatePostSupplementCancelOrder = Entry('supplement/cancel_order', ['spot', 'private'], 'POST', {'cost': 1})
52
+ spot_private_post_supplement_cancel_order_by_symbol = spotPrivatePostSupplementCancelOrderBySymbol = Entry('supplement/cancel_order_by_symbol', ['spot', 'private'], 'POST', {'cost': 1})
53
+ spot_private_post_supplement_orders_info = spotPrivatePostSupplementOrdersInfo = Entry('supplement/orders_info', ['spot', 'private'], 'POST', {'cost': 2.5})
54
+ spot_private_post_supplement_orders_info_no_deal = spotPrivatePostSupplementOrdersInfoNoDeal = Entry('supplement/orders_info_no_deal', ['spot', 'private'], 'POST', {'cost': 2.5})
55
+ spot_private_post_supplement_orders_info_history = spotPrivatePostSupplementOrdersInfoHistory = Entry('supplement/orders_info_history', ['spot', 'private'], 'POST', {'cost': 2.5})
56
+ spot_private_post_supplement_user_info_account = spotPrivatePostSupplementUserInfoAccount = Entry('supplement/user_info_account', ['spot', 'private'], 'POST', {'cost': 2.5})
57
+ spot_private_post_supplement_transaction_history = spotPrivatePostSupplementTransactionHistory = Entry('supplement/transaction_history', ['spot', 'private'], 'POST', {'cost': 2.5})
58
+ contract_public_get_cfd_openapi_v1_pub_gettime = contractPublicGetCfdOpenApiV1PubGetTime = Entry('cfd/openApi/v1/pub/getTime', ['contract', 'public'], 'GET', {'cost': 2.5})
59
+ contract_public_get_cfd_openapi_v1_pub_instrument = contractPublicGetCfdOpenApiV1PubInstrument = Entry('cfd/openApi/v1/pub/instrument', ['contract', 'public'], 'GET', {'cost': 2.5})
60
+ contract_public_get_cfd_openapi_v1_pub_marketdata = contractPublicGetCfdOpenApiV1PubMarketData = Entry('cfd/openApi/v1/pub/marketData', ['contract', 'public'], 'GET', {'cost': 2.5})
61
+ contract_public_get_cfd_openapi_v1_pub_marketorder = contractPublicGetCfdOpenApiV1PubMarketOrder = Entry('cfd/openApi/v1/pub/marketOrder', ['contract', 'public'], 'GET', {'cost': 2.5})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.71'
7
+ __version__ = '4.0.73'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.0.71'
5
+ __version__ = '4.0.73'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -743,7 +743,7 @@ class Exchange(BaseExchange):
743
743
  raise NotSupported(self.id + ' parseWsOrderTrade() is not supported yet')
744
744
 
745
745
  def parse_ws_ohlcv(self, ohlcv, market=None):
746
- raise NotSupported(self.id + ' parseWsOHLCV() is not supported yet')
746
+ return self.parse_ohlcv(ohlcv, market)
747
747
 
748
748
  async def fetch_funding_rates(self, symbols: Optional[List[str]] = None, params={}):
749
749
  raise NotSupported(self.id + ' fetchFundingRates() is not supported yet')
@@ -2967,6 +2967,12 @@ class Exchange(BaseExchange):
2967
2967
  market = self.market(firstMarket)
2968
2968
  return market
2969
2969
 
2970
+ def parse_ws_ohlcvs(self, ohlcvs: List[object], market: Optional[Any] = None, timeframe: str = '1m', since: Optional[int] = None, limit: Optional[int] = None):
2971
+ results = []
2972
+ for i in range(0, len(ohlcvs)):
2973
+ results.append(self.parse_ws_ohlcv(ohlcvs[i], market))
2974
+ return results
2975
+
2970
2976
  async def fetch_transactions(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
2971
2977
  """
2972
2978
  * @deprecated
@@ -103,6 +103,7 @@ class binance(Exchange, ImplicitAPI):
103
103
  'fetchMarketLeverageTiers': 'emulated',
104
104
  'fetchMarkets': True,
105
105
  'fetchMarkOHLCV': True,
106
+ 'fetchMySettlementHistory': True,
106
107
  'fetchMyTrades': True,
107
108
  'fetchOHLCV': True,
108
109
  'fetchOpenInterest': True,
@@ -909,6 +910,21 @@ class binance(Exchange, ImplicitAPI):
909
910
  'cm/openOrder': 1, # 1
910
911
  'cm/openOrders': 1, # 1
911
912
  'cm/allOrders': 20, # 20
913
+ 'um/conditional/openOrder': 1,
914
+ 'um/conditional/openOrders': 40,
915
+ 'um/conditional/orderHistory': 1,
916
+ 'um/conditional/allOrders': 40,
917
+ 'cm/conditional/openOrder': 1,
918
+ 'cm/conditional/openOrders': 40,
919
+ 'cm/conditional/orderHistory': 1,
920
+ 'cm/conditional/allOrders': 40,
921
+ 'margin/order': 5,
922
+ 'margin/openOrders': 5,
923
+ 'margin/allOrders': 100,
924
+ 'margin/orderList': 5,
925
+ 'margin/allOrderList': 100,
926
+ 'margin/openOrderList': 5,
927
+ 'margin/myTrades': 5,
912
928
  'balance': 20, # 20
913
929
  'account': 20, # 20
914
930
  'margin/maxBorrowable': 5, # 5
@@ -927,6 +943,10 @@ class binance(Exchange, ImplicitAPI):
927
943
  'um/apiTradingStatus': 1, # 1
928
944
  'um/commissionRate': 20, # 20
929
945
  'cm/commissionRate': 20, # 20
946
+ 'margin/marginLoan': 10,
947
+ 'margin/repayLoan': 10,
948
+ 'margin/marginInterestHistory': 1,
949
+ 'portfolio/interest-history': 50, # 50
930
950
  'um/income': 30,
931
951
  'cm/income ': 30,
932
952
  'um/account': 5,
@@ -934,10 +954,6 @@ class binance(Exchange, ImplicitAPI):
934
954
  'portfolio/repay-futures-switch': 3, # Weight(IP): 30 => cost = 0.1 * 30 = 3
935
955
  'um/adlQuantile': 5,
936
956
  'cm/adlQuantile': 5,
937
- 'margin/marginLoan': 0.0667, # Weight(UID): 10 => cost = 0.006667 * 10 = 0.06667
938
- 'margin/repayLoan': 0.0667, # Weight(UID): 10 => cost = 0.006667 * 10 = 0.06667
939
- 'margin/marginInterestHistory': 0.1, # Weight(IP): 1 => cost = 0.1 * 1 = 0.1
940
- 'portfolio/interest-history': 50, # 50
941
957
  },
942
958
  'post': {
943
959
  'um/order': 1, # 0
@@ -7161,7 +7177,57 @@ class binance(Exchange, ImplicitAPI):
7161
7177
  sorted = self.sort_by(settlements, 'timestamp')
7162
7178
  return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
7163
7179
 
7180
+ async def fetch_my_settlement_history(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
7181
+ """
7182
+ fetches historical settlement records of the user
7183
+ see https://binance-docs.github.io/apidocs/voptions/en/#user-exercise-record-user_data
7184
+ :param str symbol: unified market symbol of the settlement history
7185
+ :param int [since]: timestamp in ms
7186
+ :param int [limit]: number of records
7187
+ :param dict [params]: exchange specific params
7188
+ :returns dict[]: a list of [settlement history objects]
7189
+ """
7190
+ await self.load_markets()
7191
+ market = None if (symbol is None) else self.market(symbol)
7192
+ type = None
7193
+ type, params = self.handle_market_type_and_params('fetchMySettlementHistory', market, params)
7194
+ if type != 'option':
7195
+ raise NotSupported(self.id + ' fetchMySettlementHistory() supports option markets only')
7196
+ request = {}
7197
+ if symbol is not None:
7198
+ request['symbol'] = market['id']
7199
+ if since is not None:
7200
+ request['startTime'] = since
7201
+ if limit is not None:
7202
+ request['limit'] = limit
7203
+ response = await self.eapiPrivateGetExerciseRecord(self.extend(request, params))
7204
+ #
7205
+ # [
7206
+ # {
7207
+ # "id": "1125899906842897036",
7208
+ # "currency": "USDT",
7209
+ # "symbol": "BTC-230728-30000-C",
7210
+ # "exercisePrice": "30000.00000000",
7211
+ # "markPrice": "29160.71284993",
7212
+ # "quantity": "1.00000000",
7213
+ # "amount": "0.00000000",
7214
+ # "fee": "0.00000000",
7215
+ # "createDate": 1690531200000,
7216
+ # "priceScale": 0,
7217
+ # "quantityScale": 2,
7218
+ # "optionSide": "CALL",
7219
+ # "positionSide": "LONG",
7220
+ # "quoteAsset": "USDT"
7221
+ # }
7222
+ # ]
7223
+ #
7224
+ settlements = self.parse_settlements(response, market)
7225
+ sorted = self.sort_by(settlements, 'timestamp')
7226
+ return self.filter_by_symbol_since_limit(sorted, market['symbol'], since, limit)
7227
+
7164
7228
  def parse_settlement(self, settlement, market):
7229
+ #
7230
+ # fetchSettlementHistory
7165
7231
  #
7166
7232
  # {
7167
7233
  # "symbol": "ETH-230223-1900-P",
@@ -7171,17 +7237,38 @@ class binance(Exchange, ImplicitAPI):
7171
7237
  # "strikeResult": "REALISTIC_VALUE_STRICKEN"
7172
7238
  # }
7173
7239
  #
7174
- timestamp = self.safe_integer(settlement, 'expiryDate')
7240
+ # fetchMySettlementHistory
7241
+ #
7242
+ # {
7243
+ # "id": "1125899906842897036",
7244
+ # "currency": "USDT",
7245
+ # "symbol": "BTC-230728-30000-C",
7246
+ # "exercisePrice": "30000.00000000",
7247
+ # "markPrice": "29160.71284993",
7248
+ # "quantity": "1.00000000",
7249
+ # "amount": "0.00000000",
7250
+ # "fee": "0.00000000",
7251
+ # "createDate": 1690531200000,
7252
+ # "priceScale": 0,
7253
+ # "quantityScale": 2,
7254
+ # "optionSide": "CALL",
7255
+ # "positionSide": "LONG",
7256
+ # "quoteAsset": "USDT"
7257
+ # }
7258
+ #
7259
+ timestamp = self.safe_integer_2(settlement, 'expiryDate', 'createDate')
7175
7260
  marketId = self.safe_string(settlement, 'symbol')
7176
7261
  return {
7177
7262
  'info': settlement,
7178
7263
  'symbol': self.safe_symbol(marketId, market),
7179
- 'price': self.safe_number(settlement, 'realStrikePrice'),
7264
+ 'price': self.safe_number_2(settlement, 'realStrikePrice', 'exercisePrice'),
7180
7265
  'timestamp': timestamp,
7181
7266
  'datetime': self.iso8601(timestamp),
7182
7267
  }
7183
7268
 
7184
7269
  def parse_settlements(self, settlements, market):
7270
+ #
7271
+ # fetchSettlementHistory
7185
7272
  #
7186
7273
  # [
7187
7274
  # {
@@ -7193,6 +7280,27 @@ class binance(Exchange, ImplicitAPI):
7193
7280
  # }
7194
7281
  # ]
7195
7282
  #
7283
+ # fetchMySettlementHistory
7284
+ #
7285
+ # [
7286
+ # {
7287
+ # "id": "1125899906842897036",
7288
+ # "currency": "USDT",
7289
+ # "symbol": "BTC-230728-30000-C",
7290
+ # "exercisePrice": "30000.00000000",
7291
+ # "markPrice": "29160.71284993",
7292
+ # "quantity": "1.00000000",
7293
+ # "amount": "0.00000000",
7294
+ # "fee": "0.00000000",
7295
+ # "createDate": 1690531200000,
7296
+ # "priceScale": 0,
7297
+ # "quantityScale": 2,
7298
+ # "optionSide": "CALL",
7299
+ # "positionSide": "LONG",
7300
+ # "quoteAsset": "USDT"
7301
+ # }
7302
+ # ]
7303
+ #
7196
7304
  result = []
7197
7305
  for i in range(0, len(settlements)):
7198
7306
  result.append(self.parse_settlement(settlements[i], market))