ccxt 4.3.54__py2.py3-none-any.whl → 4.3.56__py2.py3-none-any.whl

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 (255) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bingx.py +16 -0
  3. ccxt/abstract/kucoin.py +3 -0
  4. ccxt/abstract/kucoinfutures.py +3 -0
  5. ccxt/ace.py +1 -1
  6. ccxt/alpaca.py +1 -1
  7. ccxt/ascendex.py +6 -4
  8. ccxt/async_support/__init__.py +1 -1
  9. ccxt/async_support/ace.py +1 -1
  10. ccxt/async_support/alpaca.py +1 -1
  11. ccxt/async_support/ascendex.py +6 -4
  12. ccxt/async_support/base/exchange.py +19 -3
  13. ccxt/async_support/bigone.py +1 -1
  14. ccxt/async_support/binance.py +13 -13
  15. ccxt/async_support/bingx.py +36 -3
  16. ccxt/async_support/bit2c.py +1 -1
  17. ccxt/async_support/bitbank.py +1 -1
  18. ccxt/async_support/bitbns.py +1 -1
  19. ccxt/async_support/bitfinex.py +1 -1
  20. ccxt/async_support/bitfinex2.py +1 -1
  21. ccxt/async_support/bitflyer.py +8 -2
  22. ccxt/async_support/bitget.py +2 -2
  23. ccxt/async_support/bithumb.py +1 -1
  24. ccxt/async_support/bitmart.py +3 -3
  25. ccxt/async_support/bitmex.py +1 -1
  26. ccxt/async_support/bitopro.py +19 -4
  27. ccxt/async_support/bitrue.py +1 -1
  28. ccxt/async_support/bitso.py +1 -1
  29. ccxt/async_support/bitstamp.py +1 -1
  30. ccxt/async_support/bitteam.py +1 -1
  31. ccxt/async_support/bitvavo.py +2 -2
  32. ccxt/async_support/bl3p.py +1 -1
  33. ccxt/async_support/blockchaincom.py +28 -28
  34. ccxt/async_support/blofin.py +1 -1
  35. ccxt/async_support/btcalpha.py +4 -11
  36. ccxt/async_support/btcbox.py +1 -1
  37. ccxt/async_support/btcmarkets.py +28 -27
  38. ccxt/async_support/btcturk.py +1 -1
  39. ccxt/async_support/bybit.py +10 -7
  40. ccxt/async_support/cex.py +2 -2
  41. ccxt/async_support/coinbase.py +33 -33
  42. ccxt/async_support/coinbaseexchange.py +1 -1
  43. ccxt/async_support/coinbaseinternational.py +1 -1
  44. ccxt/async_support/coincheck.py +1 -1
  45. ccxt/async_support/coinex.py +2 -2
  46. ccxt/async_support/coinlist.py +2 -2
  47. ccxt/async_support/coinmate.py +1 -1
  48. ccxt/async_support/coinmetro.py +1 -1
  49. ccxt/async_support/coinone.py +1 -1
  50. ccxt/async_support/coinsph.py +1 -1
  51. ccxt/async_support/coinspot.py +1 -1
  52. ccxt/async_support/cryptocom.py +1 -1
  53. ccxt/async_support/currencycom.py +1 -1
  54. ccxt/async_support/delta.py +7 -3
  55. ccxt/async_support/deribit.py +4 -4
  56. ccxt/async_support/digifinex.py +2 -2
  57. ccxt/async_support/exmo.py +2 -2
  58. ccxt/async_support/gate.py +3 -2
  59. ccxt/async_support/gemini.py +1 -1
  60. ccxt/async_support/hitbtc.py +1 -1
  61. ccxt/async_support/hollaex.py +1 -1
  62. ccxt/async_support/htx.py +3 -3
  63. ccxt/async_support/huobijp.py +1 -1
  64. ccxt/async_support/hyperliquid.py +3 -3
  65. ccxt/async_support/idex.py +1 -1
  66. ccxt/async_support/independentreserve.py +1 -1
  67. ccxt/async_support/indodax.py +1 -1
  68. ccxt/async_support/kraken.py +2 -2
  69. ccxt/async_support/kucoin.py +127 -46
  70. ccxt/async_support/kucoinfutures.py +1 -1
  71. ccxt/async_support/kuna.py +1 -1
  72. ccxt/async_support/latoken.py +1 -1
  73. ccxt/async_support/lbank.py +28 -7
  74. ccxt/async_support/luno.py +1 -1
  75. ccxt/async_support/lykke.py +1 -1
  76. ccxt/async_support/mercado.py +1 -1
  77. ccxt/async_support/mexc.py +1 -1
  78. ccxt/async_support/ndax.py +1 -1
  79. ccxt/async_support/novadax.py +1 -1
  80. ccxt/async_support/oceanex.py +1 -1
  81. ccxt/async_support/okcoin.py +1 -1
  82. ccxt/async_support/okx.py +3 -3
  83. ccxt/async_support/onetrading.py +1 -1
  84. ccxt/async_support/oxfun.py +2 -2
  85. ccxt/async_support/p2b.py +1 -1
  86. ccxt/async_support/paymium.py +1 -1
  87. ccxt/async_support/phemex.py +2 -2
  88. ccxt/async_support/poloniex.py +4 -3
  89. ccxt/async_support/poloniexfutures.py +1 -1
  90. ccxt/async_support/probit.py +1 -1
  91. ccxt/async_support/timex.py +1 -1
  92. ccxt/async_support/tokocrypto.py +1 -1
  93. ccxt/async_support/tradeogre.py +1 -1
  94. ccxt/async_support/upbit.py +1 -1
  95. ccxt/async_support/vertex.py +2 -2
  96. ccxt/async_support/wavesexchange.py +1 -1
  97. ccxt/async_support/wazirx.py +1 -1
  98. ccxt/async_support/whitebit.py +2 -2
  99. ccxt/async_support/woo.py +5 -5
  100. ccxt/async_support/woofipro.py +3 -3
  101. ccxt/async_support/yobit.py +1 -1
  102. ccxt/async_support/zaif.py +1 -1
  103. ccxt/async_support/zonda.py +1 -1
  104. ccxt/base/exchange.py +19 -3
  105. ccxt/base/types.py +4 -1
  106. ccxt/bigone.py +1 -1
  107. ccxt/binance.py +13 -13
  108. ccxt/bingx.py +36 -3
  109. ccxt/bit2c.py +1 -1
  110. ccxt/bitbank.py +1 -1
  111. ccxt/bitbns.py +1 -1
  112. ccxt/bitfinex.py +1 -1
  113. ccxt/bitfinex2.py +1 -1
  114. ccxt/bitflyer.py +8 -2
  115. ccxt/bitget.py +2 -2
  116. ccxt/bithumb.py +1 -1
  117. ccxt/bitmart.py +3 -3
  118. ccxt/bitmex.py +1 -1
  119. ccxt/bitopro.py +19 -4
  120. ccxt/bitrue.py +1 -1
  121. ccxt/bitso.py +1 -1
  122. ccxt/bitstamp.py +1 -1
  123. ccxt/bitteam.py +1 -1
  124. ccxt/bitvavo.py +2 -2
  125. ccxt/bl3p.py +1 -1
  126. ccxt/blockchaincom.py +28 -28
  127. ccxt/blofin.py +1 -1
  128. ccxt/btcalpha.py +4 -11
  129. ccxt/btcbox.py +1 -1
  130. ccxt/btcmarkets.py +28 -27
  131. ccxt/btcturk.py +1 -1
  132. ccxt/bybit.py +10 -7
  133. ccxt/cex.py +2 -2
  134. ccxt/coinbase.py +33 -33
  135. ccxt/coinbaseexchange.py +1 -1
  136. ccxt/coinbaseinternational.py +1 -1
  137. ccxt/coincheck.py +1 -1
  138. ccxt/coinex.py +2 -2
  139. ccxt/coinlist.py +2 -2
  140. ccxt/coinmate.py +1 -1
  141. ccxt/coinmetro.py +1 -1
  142. ccxt/coinone.py +1 -1
  143. ccxt/coinsph.py +1 -1
  144. ccxt/coinspot.py +1 -1
  145. ccxt/cryptocom.py +1 -1
  146. ccxt/currencycom.py +1 -1
  147. ccxt/delta.py +7 -3
  148. ccxt/deribit.py +4 -4
  149. ccxt/digifinex.py +2 -2
  150. ccxt/exmo.py +2 -2
  151. ccxt/gate.py +3 -2
  152. ccxt/gemini.py +1 -1
  153. ccxt/hitbtc.py +1 -1
  154. ccxt/hollaex.py +1 -1
  155. ccxt/htx.py +3 -3
  156. ccxt/huobijp.py +1 -1
  157. ccxt/hyperliquid.py +3 -3
  158. ccxt/idex.py +1 -1
  159. ccxt/independentreserve.py +1 -1
  160. ccxt/indodax.py +1 -1
  161. ccxt/kraken.py +2 -2
  162. ccxt/kucoin.py +127 -46
  163. ccxt/kucoinfutures.py +1 -1
  164. ccxt/kuna.py +1 -1
  165. ccxt/latoken.py +1 -1
  166. ccxt/lbank.py +28 -7
  167. ccxt/luno.py +1 -1
  168. ccxt/lykke.py +1 -1
  169. ccxt/mercado.py +1 -1
  170. ccxt/mexc.py +1 -1
  171. ccxt/ndax.py +1 -1
  172. ccxt/novadax.py +1 -1
  173. ccxt/oceanex.py +1 -1
  174. ccxt/okcoin.py +1 -1
  175. ccxt/okx.py +3 -3
  176. ccxt/onetrading.py +1 -1
  177. ccxt/oxfun.py +2 -2
  178. ccxt/p2b.py +1 -1
  179. ccxt/paymium.py +1 -1
  180. ccxt/phemex.py +2 -2
  181. ccxt/poloniex.py +4 -3
  182. ccxt/poloniexfutures.py +1 -1
  183. ccxt/pro/__init__.py +1 -1
  184. ccxt/pro/binance.py +2 -2
  185. ccxt/pro/bitvavo.py +2 -2
  186. ccxt/pro/bybit.py +2 -2
  187. ccxt/pro/cex.py +3 -3
  188. ccxt/pro/coinbase.py +22 -1
  189. ccxt/pro/cryptocom.py +1 -1
  190. ccxt/pro/gate.py +2 -2
  191. ccxt/pro/hitbtc.py +1 -1
  192. ccxt/pro/kraken.py +2 -2
  193. ccxt/pro/kucoin.py +2 -2
  194. ccxt/pro/okx.py +2 -2
  195. ccxt/pro/oxfun.py +2 -2
  196. ccxt/pro/poloniex.py +1 -1
  197. ccxt/pro/vertex.py +1 -1
  198. ccxt/probit.py +1 -1
  199. ccxt/test/{test_async.py → tests_async.py} +27 -280
  200. ccxt/test/tests_helpers.py +284 -0
  201. ccxt/test/tests_init.py +35 -0
  202. ccxt/test/{test_sync.py → tests_sync.py} +27 -282
  203. ccxt/timex.py +1 -1
  204. ccxt/tokocrypto.py +1 -1
  205. ccxt/tradeogre.py +1 -1
  206. ccxt/upbit.py +1 -1
  207. ccxt/vertex.py +2 -2
  208. ccxt/wavesexchange.py +1 -1
  209. ccxt/wazirx.py +1 -1
  210. ccxt/whitebit.py +2 -2
  211. ccxt/woo.py +5 -5
  212. ccxt/woofipro.py +3 -3
  213. ccxt/yobit.py +1 -1
  214. ccxt/zaif.py +1 -1
  215. ccxt/zonda.py +1 -1
  216. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/METADATA +5 -7
  217. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/RECORD +220 -253
  218. ccxt/test/base/__init__.py +0 -29
  219. ccxt/test/base/test_account.py +0 -26
  220. ccxt/test/base/test_balance.py +0 -56
  221. ccxt/test/base/test_borrow_interest.py +0 -35
  222. ccxt/test/base/test_borrow_rate.py +0 -32
  223. ccxt/test/base/test_calculate_fee.py +0 -51
  224. ccxt/test/base/test_crypto.py +0 -127
  225. ccxt/test/base/test_currency.py +0 -76
  226. ccxt/test/base/test_datetime.py +0 -109
  227. ccxt/test/base/test_decimal_to_precision.py +0 -392
  228. ccxt/test/base/test_deep_extend.py +0 -68
  229. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  230. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  231. ccxt/test/base/test_funding_rate_history.py +0 -29
  232. ccxt/test/base/test_last_price.py +0 -31
  233. ccxt/test/base/test_ledger_entry.py +0 -45
  234. ccxt/test/base/test_ledger_item.py +0 -48
  235. ccxt/test/base/test_leverage_tier.py +0 -33
  236. ccxt/test/base/test_liquidation.py +0 -50
  237. ccxt/test/base/test_margin_mode.py +0 -24
  238. ccxt/test/base/test_margin_modification.py +0 -35
  239. ccxt/test/base/test_market.py +0 -193
  240. ccxt/test/base/test_number.py +0 -411
  241. ccxt/test/base/test_ohlcv.py +0 -33
  242. ccxt/test/base/test_open_interest.py +0 -32
  243. ccxt/test/base/test_order.py +0 -64
  244. ccxt/test/base/test_order_book.py +0 -69
  245. ccxt/test/base/test_position.py +0 -60
  246. ccxt/test/base/test_shared_methods.py +0 -353
  247. ccxt/test/base/test_status.py +0 -24
  248. ccxt/test/base/test_throttle.py +0 -126
  249. ccxt/test/base/test_ticker.py +0 -92
  250. ccxt/test/base/test_trade.py +0 -47
  251. ccxt/test/base/test_trading_fee.py +0 -26
  252. ccxt/test/base/test_transaction.py +0 -39
  253. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/LICENSE.txt +0 -0
  254. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/WHEEL +0 -0
  255. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/top_level.txt +0 -0
@@ -2395,7 +2395,7 @@ class phemex(Exchange, ImplicitAPI):
2395
2395
  :param str type: 'market' or 'limit'
2396
2396
  :param str side: 'buy' or 'sell'
2397
2397
  :param float amount: how much of currency you want to trade in units of base currency
2398
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2398
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2399
2399
  :param dict [params]: extra parameters specific to the exchange API endpoint
2400
2400
  :param float [params.trigger]: trigger price for conditional orders
2401
2401
  :param dict [params.takeProfit]: *swap only* *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered(perpetual swap markets only)
@@ -2651,7 +2651,7 @@ class phemex(Exchange, ImplicitAPI):
2651
2651
  :param str type: 'market' or 'limit'
2652
2652
  :param str side: 'buy' or 'sell'
2653
2653
  :param float amount: how much of currency you want to trade in units of base currency
2654
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
2654
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2655
2655
  :param dict [params]: extra parameters specific to the exchange API endpoint
2656
2656
  :param str [params.posSide]: either 'Merged' or 'Long' or 'Short'
2657
2657
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1224,7 +1224,7 @@ class poloniex(Exchange, ImplicitAPI):
1224
1224
  :param str type: 'market' or 'limit'
1225
1225
  :param str side: 'buy' or 'sell'
1226
1226
  :param float amount: how much of currency you want to trade in units of base currency
1227
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1227
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1228
1228
  :param dict [params]: extra parameters specific to the exchange API endpoint
1229
1229
  :param float [params.triggerPrice]: *spot only* The price at which a trigger order is triggered at
1230
1230
  :param float [params.cost]: *spot market buy only* the quote quantity that can be used alternative for the amount
@@ -1314,7 +1314,7 @@ class poloniex(Exchange, ImplicitAPI):
1314
1314
  :param str type: 'market' or 'limit'
1315
1315
  :param str side: 'buy' or 'sell'
1316
1316
  :param float [amount]: how much of the currency you want to trade in units of the base currency
1317
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1317
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1318
1318
  :param dict [params]: extra parameters specific to the exchange API endpoint
1319
1319
  :param float [params.triggerPrice]: The price at which a trigger order is triggered at
1320
1320
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1341,7 +1341,8 @@ class poloniex(Exchange, ImplicitAPI):
1341
1341
  # }
1342
1342
  #
1343
1343
  response = self.extend(response, {
1344
- 'type': side,
1344
+ 'side': side,
1345
+ 'type': type,
1345
1346
  })
1346
1347
  return self.parse_order(response, market)
1347
1348
 
@@ -802,7 +802,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
802
802
  :param str type: 'limit' or 'market'
803
803
  :param str side: 'buy' or 'sell'
804
804
  :param float amount: the amount of currency to trade
805
- :param float [price]: *ignored in "market" orders* the price at which the order is to be fullfilled at in units of the quote currency
805
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
806
806
  :param dict [params]: extra parameters specific to the exchange API endpoint
807
807
  :param float [params.leverage]: Leverage size of the order
808
808
  :param float [params.stopPrice]: The price at which a trigger order is triggered at
@@ -1132,7 +1132,7 @@ class probit(Exchange, ImplicitAPI):
1132
1132
  :param str type: 'market' or 'limit'
1133
1133
  :param str side: 'buy' or 'sell'
1134
1134
  :param float amount: how much you want to trade in units of the base currency
1135
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1135
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1136
1136
  :param dict [params]: extra parameters specific to the exchange API endpoint
1137
1137
  :param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
1138
1138
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -723,7 +723,7 @@ class timex(Exchange, ImplicitAPI):
723
723
  :param str type: 'market' or 'limit'
724
724
  :param str side: 'buy' or 'sell'
725
725
  :param float amount: how much of currency you want to trade in units of base currency
726
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
726
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
727
727
  :param dict [params]: extra parameters specific to the exchange API endpoint
728
728
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
729
729
  """
@@ -1564,7 +1564,7 @@ class tokocrypto(Exchange, ImplicitAPI):
1564
1564
  :param str type: 'market' or 'limit'
1565
1565
  :param str side: 'buy' or 'sell'
1566
1566
  :param float amount: how much of currency you want to trade in units of base currency
1567
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1567
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1568
1568
  :param dict [params]: extra parameters specific to the exchange API endpoint
1569
1569
  :param float [params.triggerPrice]: the price at which a trigger order would be triggered
1570
1570
  :param float [params.cost]: for spot market buy orders, the quote quantity that can be used alternative for the amount
@@ -445,7 +445,7 @@ class tradeogre(Exchange, ImplicitAPI):
445
445
  :param str type: must be 'limit'
446
446
  :param str side: 'buy' or 'sell'
447
447
  :param float amount: how much of currency you want to trade in units of base currency
448
- :param float price: the price at which the order is to be fullfilled, in units of the quote currency
448
+ :param float price: the price at which the order is to be fulfilled, in units of the quote currency
449
449
  :param dict [params]: extra parameters specific to the exchange API endpoint
450
450
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
451
451
  """
@@ -997,7 +997,7 @@ class upbit(Exchange, ImplicitAPI):
997
997
  :param str type: 'market' or 'limit'
998
998
  :param str side: 'buy' or 'sell'
999
999
  :param float amount: how much you want to trade in units of the base currency
1000
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1000
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1001
1001
  :param dict [params]: extra parameters specific to the exchange API endpoint
1002
1002
  :param float [params.cost]: for market buy orders, the quote quantity that can be used alternative for the amount
1003
1003
  :param str [params.timeInForce]: 'IOC' or 'FOK'
@@ -1565,7 +1565,7 @@ class vertex(Exchange, ImplicitAPI):
1565
1565
  :param str type: 'market' or 'limit'
1566
1566
  :param str side: 'buy' or 'sell'
1567
1567
  :param float amount: how much of currency you want to trade in units of base currency
1568
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1568
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1569
1569
  :param dict [params]: extra parameters specific to the exchange API endpoint
1570
1570
  :param str [params.timeInForce]: ioc, fok
1571
1571
  :param bool [params.postOnly]: True or False whether the order is post-only
@@ -1660,7 +1660,7 @@ class vertex(Exchange, ImplicitAPI):
1660
1660
  :param str type: 'market' or 'limit'
1661
1661
  :param str side: 'buy' or 'sell'
1662
1662
  :param float amount: how much of currency you want to trade in units of base currency
1663
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
1663
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1664
1664
  :param dict [params]: extra parameters specific to the exchange API endpoint
1665
1665
  :param str [params.timeInForce]: ioc, fok
1666
1666
  :param bool [params.postOnly]: True or False whether the order is post-only
@@ -1221,7 +1221,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1221
1221
  :param str type: 'market' or 'limit'
1222
1222
  :param str side: 'buy' or 'sell'
1223
1223
  :param float amount: how much of currency you want to trade in units of base currency
1224
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1224
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1225
1225
  :param dict [params]: extra parameters specific to the exchange API endpoint
1226
1226
  :param float [params.stopPrice]: The price at which a stop order is triggered at
1227
1227
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -812,7 +812,7 @@ class wazirx(Exchange, ImplicitAPI):
812
812
  :param str type: 'market' or 'limit'
813
813
  :param str side: 'buy' or 'sell'
814
814
  :param float amount: how much of currency you want to trade in units of base currency
815
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
815
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
816
816
  :param dict [params]: extra parameters specific to the exchange API endpoint
817
817
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
818
818
  """
@@ -1200,7 +1200,7 @@ class whitebit(Exchange, ImplicitAPI):
1200
1200
  :param str type: 'market' or 'limit'
1201
1201
  :param str side: 'buy' or 'sell'
1202
1202
  :param float amount: how much of currency you want to trade in units of base currency
1203
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1203
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1204
1204
  :param dict [params]: extra parameters specific to the exchange API endpoint
1205
1205
  :param float [params.cost]: *market orders only* the cost of the order in units of the base currency
1206
1206
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1281,7 +1281,7 @@ class whitebit(Exchange, ImplicitAPI):
1281
1281
  :param str type: 'market' or 'limit'
1282
1282
  :param str side: 'buy' or 'sell'
1283
1283
  :param float amount: how much of currency you want to trade in units of base currency
1284
- :param float price: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
1284
+ :param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1285
1285
  :param dict [params]: extra parameters specific to the exchange API endpoint
1286
1286
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1287
1287
  """
ccxt/async_support/woo.py CHANGED
@@ -902,7 +902,7 @@ class woo(Exchange, ImplicitAPI):
902
902
  :param str type: 'market' or 'limit'
903
903
  :param str side: 'buy' or 'sell'
904
904
  :param float amount: how much of currency you want to trade in units of base currency
905
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
905
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
906
906
  :param dict [params]: extra parameters specific to the exchange API endpoint
907
907
  :param float [params.triggerPrice]: The price a trigger order is triggered at
908
908
  :param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered(perpetual swap markets only)
@@ -1074,7 +1074,7 @@ class woo(Exchange, ImplicitAPI):
1074
1074
  :param str type: 'market' or 'limit'
1075
1075
  :param str side: 'buy' or 'sell'
1076
1076
  :param float amount: how much of currency you want to trade in units of base currency
1077
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1077
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1078
1078
  :param dict [params]: extra parameters specific to the exchange API endpoint
1079
1079
  :param float [params.triggerPrice]: The price a trigger order is triggered at
1080
1080
  :param float [params.stopLossPrice]: price to trigger stop-loss orders
@@ -1504,8 +1504,8 @@ class woo(Exchange, ImplicitAPI):
1504
1504
  side = self.safe_string_lower(order, 'side')
1505
1505
  filled = self.omit_zero(self.safe_value_2(order, 'executed', 'totalExecutedQuantity'))
1506
1506
  average = self.omit_zero(self.safe_string_2(order, 'average_executed_price', 'averageExecutedPrice'))
1507
- remaining = Precise.string_sub(cost, filled)
1508
- fee = self.safe_value_2(order, 'total_fee', 'totalFee')
1507
+ # remaining = Precise.string_sub(cost, filled)
1508
+ fee = self.safe_number_2(order, 'total_fee', 'totalFee')
1509
1509
  feeCurrency = self.safe_string_2(order, 'fee_asset', 'feeAsset')
1510
1510
  transactions = self.safe_value(order, 'Transactions')
1511
1511
  stopPrice = self.safe_number(order, 'triggerPrice')
@@ -1544,7 +1544,7 @@ class woo(Exchange, ImplicitAPI):
1544
1544
  'average': average,
1545
1545
  'amount': amount,
1546
1546
  'filled': filled,
1547
- 'remaining': remaining, # TO_DO
1547
+ 'remaining': None, # TO_DO
1548
1548
  'cost': cost,
1549
1549
  'trades': transactions,
1550
1550
  'fee': {
@@ -1196,7 +1196,7 @@ class woofipro(Exchange, ImplicitAPI):
1196
1196
  :param str type: 'market' or 'limit'
1197
1197
  :param str side: 'buy' or 'sell'
1198
1198
  :param float amount: how much you want to trade in units of the base currency
1199
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
1199
+ :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders
1200
1200
  :param dict [params]: extra parameters specific to the exchange API endpoint
1201
1201
  :returns dict: request to be sent to the exchange
1202
1202
  """
@@ -1283,7 +1283,7 @@ class woofipro(Exchange, ImplicitAPI):
1283
1283
  :param str type: 'market' or 'limit'
1284
1284
  :param str side: 'buy' or 'sell'
1285
1285
  :param float amount: how much of currency you want to trade in units of base currency
1286
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1286
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1287
1287
  :param dict [params]: extra parameters specific to the exchange API endpoint
1288
1288
  :param float [params.triggerPrice]: The price a trigger order is triggered at
1289
1289
  :param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered(perpetual swap markets only)
@@ -1400,7 +1400,7 @@ class woofipro(Exchange, ImplicitAPI):
1400
1400
  :param str type: 'market' or 'limit'
1401
1401
  :param str side: 'buy' or 'sell'
1402
1402
  :param float amount: how much of currency you want to trade in units of base currency
1403
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1403
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1404
1404
  :param dict [params]: extra parameters specific to the exchange API endpoint
1405
1405
  :param float [params.triggerPrice]: The price a trigger order is triggered at
1406
1406
  :param float [params.stopLossPrice]: price to trigger stop-loss orders
@@ -760,7 +760,7 @@ class yobit(Exchange, ImplicitAPI):
760
760
  :param str type: must be 'limit'
761
761
  :param str side: 'buy' or 'sell'
762
762
  :param float amount: how much of currency you want to trade in units of base currency
763
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
763
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
764
764
  :param dict [params]: extra parameters specific to the exchange API endpoint
765
765
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
766
766
  """
@@ -429,7 +429,7 @@ class zaif(Exchange, ImplicitAPI):
429
429
  :param str type: must be 'limit'
430
430
  :param str side: 'buy' or 'sell'
431
431
  :param float amount: how much of currency you want to trade in units of base currency
432
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
432
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
433
433
  :param dict [params]: extra parameters specific to the exchange API endpoint
434
434
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
435
435
  """
@@ -1323,7 +1323,7 @@ class zonda(Exchange, ImplicitAPI):
1323
1323
  :param str type: 'market' or 'limit'
1324
1324
  :param str side: 'buy' or 'sell'
1325
1325
  :param float amount: how much of currency you want to trade in units of base currency
1326
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1326
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1327
1327
  :param dict [params]: extra parameters specific to the exchange API endpoint
1328
1328
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1329
1329
  """
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.54'
7
+ __version__ = '4.3.56'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1449,7 +1449,7 @@ class Exchange(object):
1449
1449
  @staticmethod
1450
1450
  def eddsa(request, secret, curve='ed25519'):
1451
1451
  if isinstance(secret, str):
1452
- Exchange.encode(secret)
1452
+ secret = Exchange.encode(secret)
1453
1453
  private_key = ed25519.Ed25519PrivateKey.from_private_bytes(secret) if len(secret) == 32 else load_pem_private_key(secret, None)
1454
1454
  return Exchange.binary_to_base64(private_key.sign(request))
1455
1455
 
@@ -3734,7 +3734,23 @@ class Exchange(object):
3734
3734
  self.last_request_headers = request['headers']
3735
3735
  self.last_request_body = request['body']
3736
3736
  self.last_request_url = request['url']
3737
- return self.fetch(request['url'], request['method'], request['headers'], request['body'])
3737
+ retries = None
3738
+ retries, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailure', 0)
3739
+ retryDelay = None
3740
+ retryDelay, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailureDelay', 0)
3741
+ for i in range(0, retries + 1):
3742
+ try:
3743
+ return self.fetch(request['url'], request['method'], request['headers'], request['body'])
3744
+ except Exception as e:
3745
+ if isinstance(e, NetworkError):
3746
+ if i < retries:
3747
+ if self.verbose:
3748
+ self.log('Request failed with the error: ' + str(e) + ', retrying ' + (i + str(1)) + ' of ' + str(retries) + '...')
3749
+ if (retryDelay is not None) and (retryDelay != 0):
3750
+ self.sleep(retryDelay)
3751
+ continue
3752
+ raise e
3753
+ return None # self line is never reached, but exists for c# value return requirement
3738
3754
 
3739
3755
  def request(self, path, api: Any = 'public', method='GET', params={}, headers: Any = None, body: Any = None, config={}):
3740
3756
  return self.fetch2(path, api, method, params, headers, body, config)
ccxt/base/types.py CHANGED
@@ -353,6 +353,9 @@ class Option(TypedDict):
353
353
 
354
354
  OptionChain = Dict[str, Option]
355
355
 
356
+ class MarketMarginMode(TypedDict):
357
+ cross: bool
358
+ isolated: bool
356
359
 
357
360
  class MarketInterface(TypedDict):
358
361
  info: Dict[str, Any]
@@ -367,6 +370,7 @@ class MarketInterface(TypedDict):
367
370
  subType: Str
368
371
  spot: bool
369
372
  margin: bool
373
+ marginMode: MarketMarginMode
370
374
  swap: bool
371
375
  future: bool
372
376
  option: bool
@@ -389,7 +393,6 @@ class MarketInterface(TypedDict):
389
393
  limits: Any
390
394
  created: Int
391
395
 
392
-
393
396
  class Limit(TypedDict):
394
397
  min: Num
395
398
  max: Num
ccxt/bigone.py CHANGED
@@ -1397,7 +1397,7 @@ class bigone(Exchange, ImplicitAPI):
1397
1397
  :param str type: 'market' or 'limit'
1398
1398
  :param str side: 'buy' or 'sell'
1399
1399
  :param float amount: how much of currency you want to trade in units of base currency
1400
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1400
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1401
1401
  :param dict [params]: extra parameters specific to the exchange API endpoint
1402
1402
  :param float [params.triggerPrice]: the price at which a trigger order is triggered at
1403
1403
  :param bool [params.postOnly]: if True, the order will only be posted to the order book and not executed immediately
ccxt/binance.py CHANGED
@@ -1566,7 +1566,7 @@ class binance(Exchange, ImplicitAPI):
1566
1566
  '-3042': BadRequest, # {"code":-3042,"msg":"PriceIndex not available for self margin pair."}
1567
1567
  '-3043': PermissionDenied, # {"code":-3043,"msg":"Transferring in not allowed."}
1568
1568
  '-3044': OperationFailed, # {"code":-3044,"msg":"System busy."}
1569
- '-3045': OperationFailed, # {"code":-3045,"msg":"The system doesn't have enough asset now."}
1569
+ '-3045': OperationRejected, # {"code":-3045,"msg":"The system doesn't have enough asset now."}
1570
1570
  '-3999': PermissionDenied, # {"code":-3999,"msg":"This function is only available for invited users."}
1571
1571
  #
1572
1572
  # 4xxx(different from contract markets)
@@ -1585,7 +1585,7 @@ class binance(Exchange, ImplicitAPI):
1585
1585
  '-4011': BadRequest, # {"code":-4011 ,"msg":"White list mail is invalid."}
1586
1586
  '-4012': PermissionDenied, # {"code":-4012 ,"msg":"White list is not opened."}
1587
1587
  '-4013': AuthenticationError, # {"code":-4013 ,"msg":"2FA is not opened."}
1588
- '-4014': OperationFailed, # {"code":-4014 ,"msg":"Withdraw is not allowed within 2 min login."}
1588
+ '-4014': OperationRejected, # {"code":-4014 ,"msg":"Withdraw is not allowed within 2 min login."}
1589
1589
  '-4015': PermissionDenied, # {"code":-4015 ,"msg":"Withdraw is limited."}
1590
1590
  '-4016': PermissionDenied, # {"code":-4016 ,"msg":"Within 24 hours after password modification, withdrawal is prohibited."}
1591
1591
  '-4017': PermissionDenied, # {"code":-4017 ,"msg":"Within 24 hours after the release of 2FA, withdrawal is prohibited."}
@@ -1594,7 +1594,7 @@ class binance(Exchange, ImplicitAPI):
1594
1594
  '-4020': ExchangeError, # override commons
1595
1595
  '-4021': BadRequest, # {"code":-4021,"msg":"Asset withdrawal must be an %s multiple of %s."}
1596
1596
  '-4022': BadRequest, # {"code":-4022,"msg":"Not less than the minimum pick-up quantity %s."}
1597
- '-4023': OperationFailed, # {"code":-4023,"msg":"Within 24 hours, the withdrawal exceeds the maximum amount."}
1597
+ '-4023': OperationRejected, # {"code":-4023,"msg":"Within 24 hours, the withdrawal exceeds the maximum amount."}
1598
1598
  '-4024': InsufficientFunds, # {"code":-4024,"msg":"You don't have self asset."}
1599
1599
  '-4025': InsufficientFunds, # {"code":-4025,"msg":"The number of hold asset is less than zero."}
1600
1600
  '-4026': InsufficientFunds, # {"code":-4026,"msg":"You have insufficient balance."}
@@ -1603,7 +1603,7 @@ class binance(Exchange, ImplicitAPI):
1603
1603
  '-4029': BadRequest, # {"code":-4029,"msg":"The withdrawal record does not exist."}
1604
1604
  '-4030': BadResponse, # {"code":-4030,"msg":"Confirmation of successful asset withdrawal. [TODO] possible bug in docs"}
1605
1605
  '-4031': OperationFailed, # {"code":-4031,"msg":"Cancellation failed."}
1606
- '-4032': OperationFailed, # {"code":-4032,"msg":"Withdraw verification exception."}
1606
+ '-4032': OperationRejected, # {"code":-4032,"msg":"Withdraw verification exception."}
1607
1607
  '-4033': BadRequest, # {"code":-4033,"msg":"Illegal address."}
1608
1608
  '-4034': OperationRejected, # {"code":-4034,"msg":"The address is suspected of fake."}
1609
1609
  '-4035': PermissionDenied, # {"code":-4035,"msg":"This address is not on the whitelist. Please join and try again."}
@@ -1726,7 +1726,7 @@ class binance(Exchange, ImplicitAPI):
1726
1726
  '-5003': InsufficientFunds, # You don't have self asset.
1727
1727
  '-5004': OperationRejected, # The residual balances of %s have exceeded 0.001BTC, Please re-choose.
1728
1728
  '-5005': OperationRejected, # The residual balances of %s is too low, Please re-choose.
1729
- '-5006': OperationFailed, # Only transfer once in 24 hours.
1729
+ '-5006': OperationRejected, # Only transfer once in 24 hours.
1730
1730
  '-5007': BadRequest, # Quantity must be greater than zero.
1731
1731
  '-5008': OperationRejected, # Insufficient amount of returnable assets.
1732
1732
  '-5009': BadSymbol, # Product does not exist.
@@ -1744,8 +1744,8 @@ class binance(Exchange, ImplicitAPI):
1744
1744
  '-6004': BadRequest, # Product not in purchase status
1745
1745
  '-6005': BadRequest, # Smaller than min purchase limit
1746
1746
  '-6006': BadRequest, # Redeem amount error
1747
- '-6007': OperationFailed, # Not in redeem time
1748
- '-6008': OperationFailed, # Product not in redeem status
1747
+ '-6007': OperationRejected, # Not in redeem time
1748
+ '-6008': OperationRejected, # Product not in redeem status
1749
1749
  '-6009': RateLimitExceeded, # Request frequency too high
1750
1750
  '-6011': OperationRejected, # Exceeding the maximum num allowed to purchase per user
1751
1751
  '-6012': InsufficientFunds, # Balance not enough
@@ -4574,7 +4574,7 @@ class binance(Exchange, ImplicitAPI):
4574
4574
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
4575
4575
  :param str side: 'buy' or 'sell'
4576
4576
  :param float amount: how much of currency you want to trade in units of base currency
4577
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4577
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4578
4578
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
4579
4579
  :param dict [params]: extra parameters specific to the exchange API endpoint
4580
4580
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -4636,7 +4636,7 @@ class binance(Exchange, ImplicitAPI):
4636
4636
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
4637
4637
  :param str side: 'buy' or 'sell'
4638
4638
  :param float amount: how much of currency you want to trade in units of base currency
4639
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
4639
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4640
4640
  :param dict params: extra parameters specific to the exchange API endpoint
4641
4641
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
4642
4642
  :returns dict: request to be sent to the exchange
@@ -4760,7 +4760,7 @@ class binance(Exchange, ImplicitAPI):
4760
4760
  :param str type: 'market' or 'limit'
4761
4761
  :param str side: 'buy' or 'sell'
4762
4762
  :param float amount: how much of currency you want to trade in units of base currency
4763
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4763
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4764
4764
  :param dict [params]: extra parameters specific to the exchange API endpoint
4765
4765
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4766
4766
  """
@@ -4812,7 +4812,7 @@ class binance(Exchange, ImplicitAPI):
4812
4812
  :param str type: 'market' or 'limit'
4813
4813
  :param str side: 'buy' or 'sell'
4814
4814
  :param float amount: how much of currency you want to trade in units of base currency
4815
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4815
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4816
4816
  :param dict [params]: extra parameters specific to the exchange API endpoint
4817
4817
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4818
4818
  """
@@ -5490,7 +5490,7 @@ class binance(Exchange, ImplicitAPI):
5490
5490
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
5491
5491
  :param str side: 'buy' or 'sell'
5492
5492
  :param float amount: how much of you want to trade in units of the base currency
5493
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
5493
+ :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders
5494
5494
  :param dict [params]: extra parameters specific to the exchange API endpoint
5495
5495
  :param str [params.reduceOnly]: for swap and future reduceOnly is a string 'true' or 'false' that cant be sent with close position set to True or in hedge mode. For spot margin and option reduceOnly is a boolean.
5496
5496
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
@@ -5570,7 +5570,7 @@ class binance(Exchange, ImplicitAPI):
5570
5570
  :param str type: 'market' or 'limit'
5571
5571
  :param str side: 'buy' or 'sell'
5572
5572
  :param float amount: how much you want to trade in units of the base currency
5573
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
5573
+ :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders
5574
5574
  :param dict [params]: extra parameters specific to the exchange API endpoint
5575
5575
  :returns dict: request to be sent to the exchange
5576
5576
  """
ccxt/bingx.py CHANGED
@@ -115,6 +115,7 @@ class bingx(Exchange, ImplicitAPI):
115
115
  'subAccount': 'https://open-api.{hostname}/openApi',
116
116
  'account': 'https://open-api.{hostname}/openApi',
117
117
  'copyTrading': 'https://open-api.{hostname}/openApi',
118
+ 'cswap': 'https://open-api.{hostname}/openApi',
118
119
  },
119
120
  'test': {
120
121
  'swap': 'https://open-api-vst.{hostname}/openApi', # only swap is really "test" but since the API keys are the same, we want to keep all the functionalities when the user enables the sandboxmode
@@ -277,6 +278,36 @@ class bingx(Exchange, ImplicitAPI):
277
278
  },
278
279
  },
279
280
  },
281
+ 'cswap': {
282
+ 'v1': {
283
+ 'public': {
284
+ 'get': {
285
+ 'market/contracts': 1,
286
+ 'market/premiumIndex': 1,
287
+ 'market/openInterest': 1,
288
+ 'market/klines': 1,
289
+ 'market/depth': 1,
290
+ 'market/ticker': 1,
291
+ },
292
+ },
293
+ 'private': {
294
+ 'get': {
295
+ 'trade/leverage': 2,
296
+ 'trade/forceOrders': 2,
297
+ 'trade/allFillOrders': 2,
298
+ 'user/commissionRate': 2,
299
+ 'user/positions': 2,
300
+ 'user/balance': 2,
301
+ },
302
+ 'post': {
303
+ 'trade/order': 2,
304
+ 'trade/leverage': 2,
305
+ 'trade/allOpenOrders': 2,
306
+ 'trade/closeAllPositions': 2,
307
+ },
308
+ },
309
+ },
310
+ },
280
311
  'contract': {
281
312
  'v1': {
282
313
  'private': {
@@ -1465,6 +1496,8 @@ class bingx(Exchange, ImplicitAPI):
1465
1496
  percentage = percentage.replace('%', '')
1466
1497
  change = self.safe_string(ticker, 'priceChange')
1467
1498
  ts = self.safe_integer(ticker, 'closeTime')
1499
+ if ts == 0:
1500
+ ts = None
1468
1501
  datetime = self.iso8601(ts)
1469
1502
  bid = self.safe_string(ticker, 'bidPrice')
1470
1503
  bidVolume = self.safe_string(ticker, 'bidQty')
@@ -1763,7 +1796,7 @@ class bingx(Exchange, ImplicitAPI):
1763
1796
  :param str type: 'market' or 'limit'
1764
1797
  :param str side: 'buy' or 'sell'
1765
1798
  :param float amount: how much you want to trade in units of the base currency
1766
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1799
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1767
1800
  :param dict [params]: extra parameters specific to the exchange API endpoint
1768
1801
  :returns dict: request to be sent to the exchange
1769
1802
  """
@@ -1921,7 +1954,7 @@ class bingx(Exchange, ImplicitAPI):
1921
1954
  :param str type: 'market' or 'limit'
1922
1955
  :param str side: 'buy' or 'sell'
1923
1956
  :param float amount: how much you want to trade in units of the base currency
1924
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1957
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1925
1958
  :param dict [params]: extra parameters specific to the exchange API endpoint
1926
1959
  :param str [params.clientOrderId]: a unique id for the order
1927
1960
  :param bool [params.postOnly]: True to place a post only order
@@ -4097,7 +4130,7 @@ class bingx(Exchange, ImplicitAPI):
4097
4130
  :param str type: 'market' or 'limit'
4098
4131
  :param str side: 'buy' or 'sell'
4099
4132
  :param float amount: how much of the currency you want to trade in units of the base currency
4100
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
4133
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4101
4134
  :param dict [params]: extra parameters specific to the exchange API endpoint
4102
4135
  :param str [params.stopPrice]: Trigger price used for TAKE_STOP_LIMIT, TAKE_STOP_MARKET, TRIGGER_LIMIT, TRIGGER_MARKET order types.
4103
4136
  :param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered
ccxt/bit2c.py CHANGED
@@ -414,7 +414,7 @@ class bit2c(Exchange, ImplicitAPI):
414
414
  :param str type: 'market' or 'limit'
415
415
  :param str side: 'buy' or 'sell'
416
416
  :param float amount: how much of currency you want to trade in units of base currency
417
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
417
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
418
418
  :param dict [params]: extra parameters specific to the exchange API endpoint
419
419
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
420
420
  """
ccxt/bitbank.py CHANGED
@@ -635,7 +635,7 @@ class bitbank(Exchange, ImplicitAPI):
635
635
  :param str type: 'market' or 'limit'
636
636
  :param str side: 'buy' or 'sell'
637
637
  :param float amount: how much of currency you want to trade in units of base currency
638
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
638
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
639
639
  :param dict [params]: extra parameters specific to the exchange API endpoint
640
640
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
641
641
  """
ccxt/bitbns.py CHANGED
@@ -573,7 +573,7 @@ class bitbns(Exchange, ImplicitAPI):
573
573
  :param str type: 'market' or 'limit'
574
574
  :param str side: 'buy' or 'sell'
575
575
  :param float amount: how much of currency you want to trade in units of base currency
576
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
576
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
577
577
  :param dict [params]: extra parameters specific to the exchange API endpoint
578
578
  :param float [params.triggerPrice]: the price at which a trigger order is triggered at
579
579
  *
ccxt/bitfinex.py CHANGED
@@ -1049,7 +1049,7 @@ class bitfinex(Exchange, ImplicitAPI):
1049
1049
  :param str type: 'market' or 'limit'
1050
1050
  :param str side: 'buy' or 'sell'
1051
1051
  :param float amount: how much of currency you want to trade in units of base currency
1052
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1052
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1053
1053
  :param dict [params]: extra parameters specific to the exchange API endpoint
1054
1054
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1055
1055
  """
ccxt/bitfinex2.py CHANGED
@@ -3447,7 +3447,7 @@ class bitfinex2(Exchange, ImplicitAPI):
3447
3447
  :param str type: 'market' or 'limit'
3448
3448
  :param str side: 'buy' or 'sell'
3449
3449
  :param float amount: how much you want to trade in units of the base currency
3450
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
3450
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
3451
3451
  :param dict [params]: extra parameters specific to the exchange API endpoint
3452
3452
  :param float [params.stopPrice]: the price that triggers a trigger order
3453
3453
  :param boolean [params.postOnly]: set to True if you want to make a post only order