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
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.54'
25
+ __version__ = '4.3.56'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
ccxt/abstract/bingx.py CHANGED
@@ -76,6 +76,22 @@ class ImplicitAPI:
76
76
  swap_v2_private_delete_trade_batchorders = swapV2PrivateDeleteTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
77
77
  swap_v2_private_delete_trade_allopenorders = swapV2PrivateDeleteTradeAllOpenOrders = Entry('trade/allOpenOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
78
78
  swap_v3_public_get_quote_klines = swapV3PublicGetQuoteKlines = Entry('quote/klines', ['swap', 'v3', 'public'], 'GET', {'cost': 1})
79
+ cswap_v1_public_get_market_contracts = cswapV1PublicGetMarketContracts = Entry('market/contracts', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
80
+ cswap_v1_public_get_market_premiumindex = cswapV1PublicGetMarketPremiumIndex = Entry('market/premiumIndex', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
81
+ cswap_v1_public_get_market_openinterest = cswapV1PublicGetMarketOpenInterest = Entry('market/openInterest', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
82
+ cswap_v1_public_get_market_klines = cswapV1PublicGetMarketKlines = Entry('market/klines', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
83
+ cswap_v1_public_get_market_depth = cswapV1PublicGetMarketDepth = Entry('market/depth', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
84
+ cswap_v1_public_get_market_ticker = cswapV1PublicGetMarketTicker = Entry('market/ticker', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
85
+ cswap_v1_private_get_trade_leverage = cswapV1PrivateGetTradeLeverage = Entry('trade/leverage', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
86
+ cswap_v1_private_get_trade_forceorders = cswapV1PrivateGetTradeForceOrders = Entry('trade/forceOrders', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
87
+ cswap_v1_private_get_trade_allfillorders = cswapV1PrivateGetTradeAllFillOrders = Entry('trade/allFillOrders', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
88
+ cswap_v1_private_get_user_commissionrate = cswapV1PrivateGetUserCommissionRate = Entry('user/commissionRate', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
89
+ cswap_v1_private_get_user_positions = cswapV1PrivateGetUserPositions = Entry('user/positions', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
90
+ cswap_v1_private_get_user_balance = cswapV1PrivateGetUserBalance = Entry('user/balance', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
91
+ cswap_v1_private_post_trade_order = cswapV1PrivatePostTradeOrder = Entry('trade/order', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
92
+ cswap_v1_private_post_trade_leverage = cswapV1PrivatePostTradeLeverage = Entry('trade/leverage', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
93
+ cswap_v1_private_post_trade_allopenorders = cswapV1PrivatePostTradeAllOpenOrders = Entry('trade/allOpenOrders', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
94
+ cswap_v1_private_post_trade_closeallpositions = cswapV1PrivatePostTradeCloseAllPositions = Entry('trade/closeAllPositions', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
79
95
  contract_v1_private_get_allposition = contractV1PrivateGetAllPosition = Entry('allPosition', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
80
96
  contract_v1_private_get_allorders = contractV1PrivateGetAllOrders = Entry('allOrders', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
81
97
  contract_v1_private_get_balance = contractV1PrivateGetBalance = Entry('balance', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
ccxt/abstract/kucoin.py CHANGED
@@ -49,6 +49,7 @@ class ImplicitAPI:
49
49
  private_get_market_orderbook_level3 = privateGetMarketOrderbookLevel3 = Entry('market/orderbook/level3', 'private', 'GET', {'cost': 3})
50
50
  private_get_hf_orders_active = privateGetHfOrdersActive = Entry('hf/orders/active', 'private', 'GET', {'cost': 2})
51
51
  private_get_hf_orders_active_symbols = privateGetHfOrdersActiveSymbols = Entry('hf/orders/active/symbols', 'private', 'GET', {'cost': 2})
52
+ private_get_hf_margin_order_active_symbols = privateGetHfMarginOrderActiveSymbols = Entry('hf/margin/order/active/symbols', 'private', 'GET', {'cost': 2})
52
53
  private_get_hf_orders_done = privateGetHfOrdersDone = Entry('hf/orders/done', 'private', 'GET', {'cost': 2})
53
54
  private_get_hf_orders_orderid = privateGetHfOrdersOrderId = Entry('hf/orders/{orderId}', 'private', 'GET', {'cost': 2})
54
55
  private_get_hf_orders_client_order_clientoid = privateGetHfOrdersClientOrderClientOid = Entry('hf/orders/client-order/{clientOid}', 'private', 'GET', {'cost': 2})
@@ -76,6 +77,7 @@ class ImplicitAPI:
76
77
  private_get_margin_currencies = privateGetMarginCurrencies = Entry('margin/currencies', 'private', 'GET', {'cost': 20})
77
78
  private_get_risk_limit_strategy = privateGetRiskLimitStrategy = Entry('risk/limit/strategy', 'private', 'GET', {'cost': 20})
78
79
  private_get_isolated_symbols = privateGetIsolatedSymbols = Entry('isolated/symbols', 'private', 'GET', {'cost': 20})
80
+ private_get_margin_symbols = privateGetMarginSymbols = Entry('margin/symbols', 'private', 'GET', {'cost': 5})
79
81
  private_get_isolated_account_symbol = privateGetIsolatedAccountSymbol = Entry('isolated/account/{symbol}', 'private', 'GET', {'cost': 50})
80
82
  private_get_margin_borrow = privateGetMarginBorrow = Entry('margin/borrow', 'private', 'GET', {'cost': 15})
81
83
  private_get_margin_repay = privateGetMarginRepay = Entry('margin/repay', 'private', 'GET', {'cost': 15})
@@ -117,6 +119,7 @@ class ImplicitAPI:
117
119
  private_post_redeem = privatePostRedeem = Entry('redeem', 'private', 'POST', {'cost': 15})
118
120
  private_post_lend_purchase_update = privatePostLendPurchaseUpdate = Entry('lend/purchase/update', 'private', 'POST', {'cost': 10})
119
121
  private_post_bullet_private = privatePostBulletPrivate = Entry('bullet-private', 'private', 'POST', {'cost': 10})
122
+ private_post_position_update_user_leverage = privatePostPositionUpdateUserLeverage = Entry('position/update-user-leverage', 'private', 'POST', {'cost': 5})
120
123
  private_delete_sub_api_key = privateDeleteSubApiKey = Entry('sub/api-key', 'private', 'DELETE', {'cost': 45})
121
124
  private_delete_withdrawals_withdrawalid = privateDeleteWithdrawalsWithdrawalId = Entry('withdrawals/{withdrawalId}', 'private', 'DELETE', {'cost': 30})
122
125
  private_delete_hf_orders_orderid = privateDeleteHfOrdersOrderId = Entry('hf/orders/{orderId}', 'private', 'DELETE', {'cost': 1})
@@ -49,6 +49,7 @@ class ImplicitAPI:
49
49
  private_get_market_orderbook_level3 = privateGetMarketOrderbookLevel3 = Entry('market/orderbook/level3', 'private', 'GET', {'cost': 3})
50
50
  private_get_hf_orders_active = privateGetHfOrdersActive = Entry('hf/orders/active', 'private', 'GET', {'cost': 2})
51
51
  private_get_hf_orders_active_symbols = privateGetHfOrdersActiveSymbols = Entry('hf/orders/active/symbols', 'private', 'GET', {'cost': 2})
52
+ private_get_hf_margin_order_active_symbols = privateGetHfMarginOrderActiveSymbols = Entry('hf/margin/order/active/symbols', 'private', 'GET', {'cost': 2})
52
53
  private_get_hf_orders_done = privateGetHfOrdersDone = Entry('hf/orders/done', 'private', 'GET', {'cost': 2})
53
54
  private_get_hf_orders_orderid = privateGetHfOrdersOrderId = Entry('hf/orders/{orderId}', 'private', 'GET', {'cost': 2})
54
55
  private_get_hf_orders_client_order_clientoid = privateGetHfOrdersClientOrderClientOid = Entry('hf/orders/client-order/{clientOid}', 'private', 'GET', {'cost': 2})
@@ -76,6 +77,7 @@ class ImplicitAPI:
76
77
  private_get_margin_currencies = privateGetMarginCurrencies = Entry('margin/currencies', 'private', 'GET', {'cost': 20})
77
78
  private_get_risk_limit_strategy = privateGetRiskLimitStrategy = Entry('risk/limit/strategy', 'private', 'GET', {'cost': 20})
78
79
  private_get_isolated_symbols = privateGetIsolatedSymbols = Entry('isolated/symbols', 'private', 'GET', {'cost': 20})
80
+ private_get_margin_symbols = privateGetMarginSymbols = Entry('margin/symbols', 'private', 'GET', {'cost': 5})
79
81
  private_get_isolated_account_symbol = privateGetIsolatedAccountSymbol = Entry('isolated/account/{symbol}', 'private', 'GET', {'cost': 50})
80
82
  private_get_margin_borrow = privateGetMarginBorrow = Entry('margin/borrow', 'private', 'GET', {'cost': 15})
81
83
  private_get_margin_repay = privateGetMarginRepay = Entry('margin/repay', 'private', 'GET', {'cost': 15})
@@ -117,6 +119,7 @@ class ImplicitAPI:
117
119
  private_post_redeem = privatePostRedeem = Entry('redeem', 'private', 'POST', {'cost': 15})
118
120
  private_post_lend_purchase_update = privatePostLendPurchaseUpdate = Entry('lend/purchase/update', 'private', 'POST', {'cost': 10})
119
121
  private_post_bullet_private = privatePostBulletPrivate = Entry('bullet-private', 'private', 'POST', {'cost': 10})
122
+ private_post_position_update_user_leverage = privatePostPositionUpdateUserLeverage = Entry('position/update-user-leverage', 'private', 'POST', {'cost': 5})
120
123
  private_delete_sub_api_key = privateDeleteSubApiKey = Entry('sub/api-key', 'private', 'DELETE', {'cost': 45})
121
124
  private_delete_withdrawals_withdrawalid = privateDeleteWithdrawalsWithdrawalId = Entry('withdrawals/{withdrawalId}', 'private', 'DELETE', {'cost': 30})
122
125
  private_delete_hf_orders_orderid = privateDeleteHfOrdersOrderId = Entry('hf/orders/{orderId}', 'private', 'DELETE', {'cost': 1})
ccxt/ace.py CHANGED
@@ -581,7 +581,7 @@ class ace(Exchange, ImplicitAPI):
581
581
  :param str type: 'market' or 'limit'
582
582
  :param str side: 'buy' or 'sell'
583
583
  :param float amount: how much of currency you want to trade in units of base currency
584
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
584
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
585
585
  :param dict [params]: extra parameters specific to the exchange API endpoint
586
586
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
587
587
  """
ccxt/alpaca.py CHANGED
@@ -678,7 +678,7 @@ class alpaca(Exchange, ImplicitAPI):
678
678
  :param str type: 'market', 'limit' or 'stop_limit'
679
679
  :param str side: 'buy' or 'sell'
680
680
  :param float amount: how much of currency you want to trade in units of base currency
681
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
681
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
682
682
  :param dict [params]: extra parameters specific to the exchange API endpoint
683
683
  :param float [params.triggerPrice]: The price at which a trigger order is triggered at
684
684
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
ccxt/ascendex.py CHANGED
@@ -1452,7 +1452,7 @@ class ascendex(Exchange, ImplicitAPI):
1452
1452
  :param str type: 'market' or 'limit'
1453
1453
  :param str side: 'buy' or 'sell'
1454
1454
  :param float amount: how much you want to trade in units of the base currency
1455
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1455
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1456
1456
  :param dict [params]: extra parameters specific to the exchange API endpoint
1457
1457
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1458
1458
  :param bool [params.postOnly]: True or False
@@ -1525,7 +1525,7 @@ class ascendex(Exchange, ImplicitAPI):
1525
1525
  :param str type: "limit" or "market"
1526
1526
  :param str side: "buy" or "sell"
1527
1527
  :param float amount: the amount of currency to trade
1528
- :param float [price]: *ignored in "market" orders* the price at which the order is to be fullfilled at in units of the quote currency
1528
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1529
1529
  :param dict [params]: extra parameters specific to the exchange API endpoint
1530
1530
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1531
1531
  :param bool [params.postOnly]: True or False
@@ -2189,7 +2189,7 @@ class ascendex(Exchange, ImplicitAPI):
2189
2189
  :see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-all-open-orders
2190
2190
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
2191
2191
  :param dict [params]: extra parameters specific to the exchange API endpoint
2192
- :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2192
+ :returns dict[]: a list with a single `order structure <https://docs.ccxt.com/#/?id=order-structure>` with the response assigned to the info property
2193
2193
  """
2194
2194
  self.load_markets()
2195
2195
  self.load_accounts()
@@ -2250,7 +2250,9 @@ class ascendex(Exchange, ImplicitAPI):
2250
2250
  # }
2251
2251
  # }
2252
2252
  #
2253
- return response
2253
+ return self.safe_order({
2254
+ 'info': response,
2255
+ })
2254
2256
 
2255
2257
  def parse_deposit_address(self, depositAddress, currency: Currency = None):
2256
2258
  #
@@ -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
 
ccxt/async_support/ace.py CHANGED
@@ -581,7 +581,7 @@ class ace(Exchange, ImplicitAPI):
581
581
  :param str type: 'market' or 'limit'
582
582
  :param str side: 'buy' or 'sell'
583
583
  :param float amount: how much of currency you want to trade in units of base currency
584
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
584
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
585
585
  :param dict [params]: extra parameters specific to the exchange API endpoint
586
586
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
587
587
  """
@@ -678,7 +678,7 @@ class alpaca(Exchange, ImplicitAPI):
678
678
  :param str type: 'market', 'limit' or 'stop_limit'
679
679
  :param str side: 'buy' or 'sell'
680
680
  :param float amount: how much of currency you want to trade in units of base currency
681
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
681
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
682
682
  :param dict [params]: extra parameters specific to the exchange API endpoint
683
683
  :param float [params.triggerPrice]: The price at which a trigger order is triggered at
684
684
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1452,7 +1452,7 @@ class ascendex(Exchange, ImplicitAPI):
1452
1452
  :param str type: 'market' or 'limit'
1453
1453
  :param str side: 'buy' or 'sell'
1454
1454
  :param float amount: how much you want to trade in units of the base currency
1455
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1455
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1456
1456
  :param dict [params]: extra parameters specific to the exchange API endpoint
1457
1457
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1458
1458
  :param bool [params.postOnly]: True or False
@@ -1525,7 +1525,7 @@ class ascendex(Exchange, ImplicitAPI):
1525
1525
  :param str type: "limit" or "market"
1526
1526
  :param str side: "buy" or "sell"
1527
1527
  :param float amount: the amount of currency to trade
1528
- :param float [price]: *ignored in "market" orders* the price at which the order is to be fullfilled at in units of the quote currency
1528
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1529
1529
  :param dict [params]: extra parameters specific to the exchange API endpoint
1530
1530
  :param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
1531
1531
  :param bool [params.postOnly]: True or False
@@ -2189,7 +2189,7 @@ class ascendex(Exchange, ImplicitAPI):
2189
2189
  :see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-all-open-orders
2190
2190
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
2191
2191
  :param dict [params]: extra parameters specific to the exchange API endpoint
2192
- :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2192
+ :returns dict[]: a list with a single `order structure <https://docs.ccxt.com/#/?id=order-structure>` with the response assigned to the info property
2193
2193
  """
2194
2194
  await self.load_markets()
2195
2195
  await self.load_accounts()
@@ -2250,7 +2250,9 @@ class ascendex(Exchange, ImplicitAPI):
2250
2250
  # }
2251
2251
  # }
2252
2252
  #
2253
- return response
2253
+ return self.safe_order({
2254
+ 'info': response,
2255
+ })
2254
2256
 
2255
2257
  def parse_deposit_address(self, depositAddress, currency: Currency = None):
2256
2258
  #
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.54'
5
+ __version__ = '4.3.56'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -24,7 +24,7 @@ from ccxt.async_support.base.throttler import Throttler
24
24
 
25
25
  # -----------------------------------------------------------------------------
26
26
 
27
- from ccxt.base.errors import BaseError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded
27
+ from ccxt.base.errors import BaseError, NetworkError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded
28
28
  from ccxt.base.types import OrderType, OrderSide, OrderRequest, CancellationRequest
29
29
 
30
30
  # -----------------------------------------------------------------------------
@@ -826,7 +826,23 @@ class Exchange(BaseExchange):
826
826
  self.last_request_headers = request['headers']
827
827
  self.last_request_body = request['body']
828
828
  self.last_request_url = request['url']
829
- return await self.fetch(request['url'], request['method'], request['headers'], request['body'])
829
+ retries = None
830
+ retries, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailure', 0)
831
+ retryDelay = None
832
+ retryDelay, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailureDelay', 0)
833
+ for i in range(0, retries + 1):
834
+ try:
835
+ return await self.fetch(request['url'], request['method'], request['headers'], request['body'])
836
+ except Exception as e:
837
+ if isinstance(e, NetworkError):
838
+ if i < retries:
839
+ if self.verbose:
840
+ self.log('Request failed with the error: ' + str(e) + ', retrying ' + (i + str(1)) + ' of ' + str(retries) + '...')
841
+ if (retryDelay is not None) and (retryDelay != 0):
842
+ await self.sleep(retryDelay)
843
+ continue
844
+ raise e
845
+ return None # self line is never reached, but exists for c# value return requirement
830
846
 
831
847
  async def request(self, path, api: Any = 'public', method='GET', params={}, headers: Any = None, body: Any = None, config={}):
832
848
  return await self.fetch2(path, api, method, params, headers, body, config)
@@ -1398,7 +1398,7 @@ class bigone(Exchange, ImplicitAPI):
1398
1398
  :param str type: 'market' or 'limit'
1399
1399
  :param str side: 'buy' or 'sell'
1400
1400
  :param float amount: how much of currency you want to trade in units of base currency
1401
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1401
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1402
1402
  :param dict [params]: extra parameters specific to the exchange API endpoint
1403
1403
  :param float [params.triggerPrice]: the price at which a trigger order is triggered at
1404
1404
  :param bool [params.postOnly]: if True, the order will only be posted to the order book and not executed immediately
@@ -1567,7 +1567,7 @@ class binance(Exchange, ImplicitAPI):
1567
1567
  '-3042': BadRequest, # {"code":-3042,"msg":"PriceIndex not available for self margin pair."}
1568
1568
  '-3043': PermissionDenied, # {"code":-3043,"msg":"Transferring in not allowed."}
1569
1569
  '-3044': OperationFailed, # {"code":-3044,"msg":"System busy."}
1570
- '-3045': OperationFailed, # {"code":-3045,"msg":"The system doesn't have enough asset now."}
1570
+ '-3045': OperationRejected, # {"code":-3045,"msg":"The system doesn't have enough asset now."}
1571
1571
  '-3999': PermissionDenied, # {"code":-3999,"msg":"This function is only available for invited users."}
1572
1572
  #
1573
1573
  # 4xxx(different from contract markets)
@@ -1586,7 +1586,7 @@ class binance(Exchange, ImplicitAPI):
1586
1586
  '-4011': BadRequest, # {"code":-4011 ,"msg":"White list mail is invalid."}
1587
1587
  '-4012': PermissionDenied, # {"code":-4012 ,"msg":"White list is not opened."}
1588
1588
  '-4013': AuthenticationError, # {"code":-4013 ,"msg":"2FA is not opened."}
1589
- '-4014': OperationFailed, # {"code":-4014 ,"msg":"Withdraw is not allowed within 2 min login."}
1589
+ '-4014': OperationRejected, # {"code":-4014 ,"msg":"Withdraw is not allowed within 2 min login."}
1590
1590
  '-4015': PermissionDenied, # {"code":-4015 ,"msg":"Withdraw is limited."}
1591
1591
  '-4016': PermissionDenied, # {"code":-4016 ,"msg":"Within 24 hours after password modification, withdrawal is prohibited."}
1592
1592
  '-4017': PermissionDenied, # {"code":-4017 ,"msg":"Within 24 hours after the release of 2FA, withdrawal is prohibited."}
@@ -1595,7 +1595,7 @@ class binance(Exchange, ImplicitAPI):
1595
1595
  '-4020': ExchangeError, # override commons
1596
1596
  '-4021': BadRequest, # {"code":-4021,"msg":"Asset withdrawal must be an %s multiple of %s."}
1597
1597
  '-4022': BadRequest, # {"code":-4022,"msg":"Not less than the minimum pick-up quantity %s."}
1598
- '-4023': OperationFailed, # {"code":-4023,"msg":"Within 24 hours, the withdrawal exceeds the maximum amount."}
1598
+ '-4023': OperationRejected, # {"code":-4023,"msg":"Within 24 hours, the withdrawal exceeds the maximum amount."}
1599
1599
  '-4024': InsufficientFunds, # {"code":-4024,"msg":"You don't have self asset."}
1600
1600
  '-4025': InsufficientFunds, # {"code":-4025,"msg":"The number of hold asset is less than zero."}
1601
1601
  '-4026': InsufficientFunds, # {"code":-4026,"msg":"You have insufficient balance."}
@@ -1604,7 +1604,7 @@ class binance(Exchange, ImplicitAPI):
1604
1604
  '-4029': BadRequest, # {"code":-4029,"msg":"The withdrawal record does not exist."}
1605
1605
  '-4030': BadResponse, # {"code":-4030,"msg":"Confirmation of successful asset withdrawal. [TODO] possible bug in docs"}
1606
1606
  '-4031': OperationFailed, # {"code":-4031,"msg":"Cancellation failed."}
1607
- '-4032': OperationFailed, # {"code":-4032,"msg":"Withdraw verification exception."}
1607
+ '-4032': OperationRejected, # {"code":-4032,"msg":"Withdraw verification exception."}
1608
1608
  '-4033': BadRequest, # {"code":-4033,"msg":"Illegal address."}
1609
1609
  '-4034': OperationRejected, # {"code":-4034,"msg":"The address is suspected of fake."}
1610
1610
  '-4035': PermissionDenied, # {"code":-4035,"msg":"This address is not on the whitelist. Please join and try again."}
@@ -1727,7 +1727,7 @@ class binance(Exchange, ImplicitAPI):
1727
1727
  '-5003': InsufficientFunds, # You don't have self asset.
1728
1728
  '-5004': OperationRejected, # The residual balances of %s have exceeded 0.001BTC, Please re-choose.
1729
1729
  '-5005': OperationRejected, # The residual balances of %s is too low, Please re-choose.
1730
- '-5006': OperationFailed, # Only transfer once in 24 hours.
1730
+ '-5006': OperationRejected, # Only transfer once in 24 hours.
1731
1731
  '-5007': BadRequest, # Quantity must be greater than zero.
1732
1732
  '-5008': OperationRejected, # Insufficient amount of returnable assets.
1733
1733
  '-5009': BadSymbol, # Product does not exist.
@@ -1745,8 +1745,8 @@ class binance(Exchange, ImplicitAPI):
1745
1745
  '-6004': BadRequest, # Product not in purchase status
1746
1746
  '-6005': BadRequest, # Smaller than min purchase limit
1747
1747
  '-6006': BadRequest, # Redeem amount error
1748
- '-6007': OperationFailed, # Not in redeem time
1749
- '-6008': OperationFailed, # Product not in redeem status
1748
+ '-6007': OperationRejected, # Not in redeem time
1749
+ '-6008': OperationRejected, # Product not in redeem status
1750
1750
  '-6009': RateLimitExceeded, # Request frequency too high
1751
1751
  '-6011': OperationRejected, # Exceeding the maximum num allowed to purchase per user
1752
1752
  '-6012': InsufficientFunds, # Balance not enough
@@ -4575,7 +4575,7 @@ class binance(Exchange, ImplicitAPI):
4575
4575
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
4576
4576
  :param str side: 'buy' or 'sell'
4577
4577
  :param float amount: how much of currency you want to trade in units of base currency
4578
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4578
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4579
4579
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
4580
4580
  :param dict [params]: extra parameters specific to the exchange API endpoint
4581
4581
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -4637,7 +4637,7 @@ class binance(Exchange, ImplicitAPI):
4637
4637
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
4638
4638
  :param str side: 'buy' or 'sell'
4639
4639
  :param float amount: how much of currency you want to trade in units of base currency
4640
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
4640
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4641
4641
  :param dict params: extra parameters specific to the exchange API endpoint
4642
4642
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
4643
4643
  :returns dict: request to be sent to the exchange
@@ -4761,7 +4761,7 @@ class binance(Exchange, ImplicitAPI):
4761
4761
  :param str type: 'market' or 'limit'
4762
4762
  :param str side: 'buy' or 'sell'
4763
4763
  :param float amount: how much of currency you want to trade in units of base currency
4764
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4764
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4765
4765
  :param dict [params]: extra parameters specific to the exchange API endpoint
4766
4766
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4767
4767
  """
@@ -4813,7 +4813,7 @@ class binance(Exchange, ImplicitAPI):
4813
4813
  :param str type: 'market' or 'limit'
4814
4814
  :param str side: 'buy' or 'sell'
4815
4815
  :param float amount: how much of currency you want to trade in units of base currency
4816
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4816
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4817
4817
  :param dict [params]: extra parameters specific to the exchange API endpoint
4818
4818
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4819
4819
  """
@@ -5491,7 +5491,7 @@ class binance(Exchange, ImplicitAPI):
5491
5491
  :param str type: 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
5492
5492
  :param str side: 'buy' or 'sell'
5493
5493
  :param float amount: how much of you want to trade in units of the base currency
5494
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
5494
+ :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders
5495
5495
  :param dict [params]: extra parameters specific to the exchange API endpoint
5496
5496
  :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.
5497
5497
  :param str [params.marginMode]: 'cross' or 'isolated', for spot margin trading
@@ -5571,7 +5571,7 @@ class binance(Exchange, ImplicitAPI):
5571
5571
  :param str type: 'market' or 'limit'
5572
5572
  :param str side: 'buy' or 'sell'
5573
5573
  :param float amount: how much you want to trade in units of the base currency
5574
- :param float [price]: the price that the order is to be fullfilled, in units of the quote currency, ignored in market orders
5574
+ :param float [price]: the price that the order is to be fulfilled, in units of the quote currency, ignored in market orders
5575
5575
  :param dict [params]: extra parameters specific to the exchange API endpoint
5576
5576
  :returns dict: request to be sent to the exchange
5577
5577
  """
@@ -116,6 +116,7 @@ class bingx(Exchange, ImplicitAPI):
116
116
  'subAccount': 'https://open-api.{hostname}/openApi',
117
117
  'account': 'https://open-api.{hostname}/openApi',
118
118
  'copyTrading': 'https://open-api.{hostname}/openApi',
119
+ 'cswap': 'https://open-api.{hostname}/openApi',
119
120
  },
120
121
  'test': {
121
122
  '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
@@ -278,6 +279,36 @@ class bingx(Exchange, ImplicitAPI):
278
279
  },
279
280
  },
280
281
  },
282
+ 'cswap': {
283
+ 'v1': {
284
+ 'public': {
285
+ 'get': {
286
+ 'market/contracts': 1,
287
+ 'market/premiumIndex': 1,
288
+ 'market/openInterest': 1,
289
+ 'market/klines': 1,
290
+ 'market/depth': 1,
291
+ 'market/ticker': 1,
292
+ },
293
+ },
294
+ 'private': {
295
+ 'get': {
296
+ 'trade/leverage': 2,
297
+ 'trade/forceOrders': 2,
298
+ 'trade/allFillOrders': 2,
299
+ 'user/commissionRate': 2,
300
+ 'user/positions': 2,
301
+ 'user/balance': 2,
302
+ },
303
+ 'post': {
304
+ 'trade/order': 2,
305
+ 'trade/leverage': 2,
306
+ 'trade/allOpenOrders': 2,
307
+ 'trade/closeAllPositions': 2,
308
+ },
309
+ },
310
+ },
311
+ },
281
312
  'contract': {
282
313
  'v1': {
283
314
  'private': {
@@ -1466,6 +1497,8 @@ class bingx(Exchange, ImplicitAPI):
1466
1497
  percentage = percentage.replace('%', '')
1467
1498
  change = self.safe_string(ticker, 'priceChange')
1468
1499
  ts = self.safe_integer(ticker, 'closeTime')
1500
+ if ts == 0:
1501
+ ts = None
1469
1502
  datetime = self.iso8601(ts)
1470
1503
  bid = self.safe_string(ticker, 'bidPrice')
1471
1504
  bidVolume = self.safe_string(ticker, 'bidQty')
@@ -1764,7 +1797,7 @@ class bingx(Exchange, ImplicitAPI):
1764
1797
  :param str type: 'market' or 'limit'
1765
1798
  :param str side: 'buy' or 'sell'
1766
1799
  :param float amount: how much you want to trade in units of the base currency
1767
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1800
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1768
1801
  :param dict [params]: extra parameters specific to the exchange API endpoint
1769
1802
  :returns dict: request to be sent to the exchange
1770
1803
  """
@@ -1922,7 +1955,7 @@ class bingx(Exchange, ImplicitAPI):
1922
1955
  :param str type: 'market' or 'limit'
1923
1956
  :param str side: 'buy' or 'sell'
1924
1957
  :param float amount: how much you want to trade in units of the base currency
1925
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1958
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1926
1959
  :param dict [params]: extra parameters specific to the exchange API endpoint
1927
1960
  :param str [params.clientOrderId]: a unique id for the order
1928
1961
  :param bool [params.postOnly]: True to place a post only order
@@ -4098,7 +4131,7 @@ class bingx(Exchange, ImplicitAPI):
4098
4131
  :param str type: 'market' or 'limit'
4099
4132
  :param str side: 'buy' or 'sell'
4100
4133
  :param float amount: how much of the currency you want to trade in units of the base currency
4101
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
4134
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4102
4135
  :param dict [params]: extra parameters specific to the exchange API endpoint
4103
4136
  :param str [params.stopPrice]: Trigger price used for TAKE_STOP_LIMIT, TAKE_STOP_MARKET, TRIGGER_LIMIT, TRIGGER_MARKET order types.
4104
4137
  :param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered
@@ -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
  """
@@ -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
  """
@@ -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
  *
@@ -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
  """
@@ -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
@@ -530,7 +530,7 @@ class bitflyer(Exchange, ImplicitAPI):
530
530
  :param str type: 'market' or 'limit'
531
531
  :param str side: 'buy' or 'sell'
532
532
  :param float amount: how much of currency you want to trade in units of base currency
533
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
533
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
534
534
  :param dict [params]: extra parameters specific to the exchange API endpoint
535
535
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
536
536
  """
@@ -566,7 +566,13 @@ class bitflyer(Exchange, ImplicitAPI):
566
566
  'product_code': self.market_id(symbol),
567
567
  'child_order_acceptance_id': id,
568
568
  }
569
- return await self.privatePostCancelchildorder(self.extend(request, params))
569
+ response = await self.privatePostCancelchildorder(self.extend(request, params))
570
+ #
571
+ # 200 OK.
572
+ #
573
+ return self.safe_order({
574
+ 'info': response,
575
+ })
570
576
 
571
577
  def parse_order_status(self, status: Str):
572
578
  statuses: dict = {
@@ -3959,7 +3959,7 @@ class bitget(Exchange, ImplicitAPI):
3959
3959
  :param str type: 'market' or 'limit'
3960
3960
  :param str side: 'buy' or 'sell'
3961
3961
  :param float amount: how much you want to trade in units of the base currency
3962
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
3962
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
3963
3963
  :param dict [params]: extra parameters specific to the exchange API endpoint
3964
3964
  :param float [params.cost]: *spot only* how much you want to trade in units of the quote currency, for market buy orders only
3965
3965
  :param float [params.triggerPrice]: *swap only* The price at which a trigger order is triggered at
@@ -4315,7 +4315,7 @@ class bitget(Exchange, ImplicitAPI):
4315
4315
  :param str type: 'market' or 'limit'
4316
4316
  :param str side: 'buy' or 'sell'
4317
4317
  :param float amount: how much you want to trade in units of the base currency
4318
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4318
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4319
4319
  :param dict [params]: extra parameters specific to the exchange API endpoint
4320
4320
  :param float [params.triggerPrice]: the price that a trigger order is triggered at
4321
4321
  :param float [params.stopLossPrice]: *swap only* The price at which a stop loss order is triggered at
@@ -677,7 +677,7 @@ class bithumb(Exchange, ImplicitAPI):
677
677
  :param str type: 'market' or 'limit'
678
678
  :param str side: 'buy' or 'sell'
679
679
  :param float amount: how much of currency you want to trade in units of base currency
680
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
680
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
681
681
  :param dict [params]: extra parameters specific to the exchange API endpoint
682
682
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
683
683
  """
@@ -2322,7 +2322,7 @@ class bitmart(Exchange, ImplicitAPI):
2322
2322
  :param str type: 'market', 'limit' or 'trailing' for swap markets only
2323
2323
  :param str side: 'buy' or 'sell'
2324
2324
  :param float amount: how much of currency you want to trade in units of base currency
2325
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2325
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2326
2326
  :param dict [params]: extra parameters specific to the exchange API endpoint
2327
2327
  :param str [params.marginMode]: 'cross' or 'isolated'
2328
2328
  :param str [params.leverage]: *swap only* leverage level
@@ -2451,7 +2451,7 @@ class bitmart(Exchange, ImplicitAPI):
2451
2451
  :param str type: 'market', 'limit' or 'trailing'
2452
2452
  :param str side: 'buy' or 'sell'
2453
2453
  :param float amount: how much of currency you want to trade in units of base currency
2454
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2454
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2455
2455
  :param dict [params]: extra parameters specific to the exchange API endpoint
2456
2456
  :param int [params.leverage]: leverage level
2457
2457
  :param boolean [params.reduceOnly]: *swap only* reduce only
@@ -2545,7 +2545,7 @@ class bitmart(Exchange, ImplicitAPI):
2545
2545
  :param str type: 'market' or 'limit'
2546
2546
  :param str side: 'buy' or 'sell'
2547
2547
  :param float amount: how much of currency you want to trade in units of base currency
2548
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2548
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2549
2549
  :param dict [params]: extra parameters specific to the exchange API endpoint
2550
2550
  :param str [params.marginMode]: 'cross' or 'isolated'
2551
2551
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`