ccxt 4.3.28__py2.py3-none-any.whl → 4.3.30__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.
- ccxt/__init__.py +1 -1
- ccxt/abstract/bingx.py +88 -81
- ccxt/abstract/bitmart.py +1 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/base/ws/aiohttp_client.py +1 -0
- ccxt/async_support/base/ws/future.py +27 -29
- ccxt/async_support/base/ws/order_book_side.py +3 -0
- ccxt/async_support/bingx.py +98 -84
- ccxt/async_support/bitmart.py +65 -1
- ccxt/async_support/coinex.py +254 -307
- ccxt/async_support/kucoin.py +1 -0
- ccxt/async_support/whitebit.py +44 -4
- ccxt/base/exchange.py +5 -1
- ccxt/bingx.py +98 -84
- ccxt/bitmart.py +65 -1
- ccxt/coinex.py +254 -307
- ccxt/kucoin.py +1 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitfinex.py +4 -4
- ccxt/pro/bitfinex2.py +2 -2
- ccxt/pro/bitmex.py +3 -3
- ccxt/pro/blockchaincom.py +2 -2
- ccxt/pro/cryptocom.py +4 -4
- ccxt/pro/deribit.py +9 -9
- ccxt/pro/idex.py +1 -1
- ccxt/pro/luno.py +4 -5
- ccxt/pro/mexc.py +2 -2
- ccxt/whitebit.py +44 -4
- {ccxt-4.3.28.dist-info → ccxt-4.3.30.dist-info}/METADATA +4 -4
- {ccxt-4.3.28.dist-info → ccxt-4.3.30.dist-info}/RECORD +33 -33
- {ccxt-4.3.28.dist-info → ccxt-4.3.30.dist-info}/WHEEL +0 -0
- {ccxt-4.3.28.dist-info → ccxt-4.3.30.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/bingx.py
CHANGED
@@ -2,39 +2,44 @@ from ccxt.base.types import Entry
|
|
2
2
|
|
3
3
|
|
4
4
|
class ImplicitAPI:
|
5
|
-
spot_v1_public_get_server_time = spotV1PublicGetServerTime = Entry('server/time', ['spot', 'v1', 'public'], 'GET', {'cost':
|
6
|
-
spot_v1_public_get_common_symbols = spotV1PublicGetCommonSymbols = Entry('common/symbols', ['spot', 'v1', 'public'], 'GET', {'cost':
|
7
|
-
spot_v1_public_get_market_trades = spotV1PublicGetMarketTrades = Entry('market/trades', ['spot', 'v1', 'public'], 'GET', {'cost':
|
8
|
-
spot_v1_public_get_market_depth = spotV1PublicGetMarketDepth = Entry('market/depth', ['spot', 'v1', 'public'], 'GET', {'cost':
|
9
|
-
spot_v1_public_get_market_kline = spotV1PublicGetMarketKline = Entry('market/kline', ['spot', 'v1', 'public'], 'GET', {'cost':
|
5
|
+
spot_v1_public_get_server_time = spotV1PublicGetServerTime = Entry('server/time', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
6
|
+
spot_v1_public_get_common_symbols = spotV1PublicGetCommonSymbols = Entry('common/symbols', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
7
|
+
spot_v1_public_get_market_trades = spotV1PublicGetMarketTrades = Entry('market/trades', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
8
|
+
spot_v1_public_get_market_depth = spotV1PublicGetMarketDepth = Entry('market/depth', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
9
|
+
spot_v1_public_get_market_kline = spotV1PublicGetMarketKline = Entry('market/kline', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
10
10
|
spot_v1_public_get_ticker_24hr = spotV1PublicGetTicker24hr = Entry('ticker/24hr', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
11
|
+
spot_v1_public_get_ticker_price = spotV1PublicGetTickerPrice = Entry('ticker/price', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
12
|
+
spot_v1_public_get_ticker_bookticker = spotV1PublicGetTickerBookTicker = Entry('ticker/bookTicker', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
13
|
+
spot_v1_private_get_trade_query = spotV1PrivateGetTradeQuery = Entry('trade/query', ['spot', 'v1', 'private'], 'GET', {'cost': 1})
|
14
|
+
spot_v1_private_get_trade_openorders = spotV1PrivateGetTradeOpenOrders = Entry('trade/openOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 1})
|
15
|
+
spot_v1_private_get_trade_historyorders = spotV1PrivateGetTradeHistoryOrders = Entry('trade/historyOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 1})
|
16
|
+
spot_v1_private_get_trade_mytrades = spotV1PrivateGetTradeMyTrades = Entry('trade/myTrades', ['spot', 'v1', 'private'], 'GET', {'cost': 2})
|
17
|
+
spot_v1_private_get_user_commissionrate = spotV1PrivateGetUserCommissionRate = Entry('user/commissionRate', ['spot', 'v1', 'private'], 'GET', {'cost': 5})
|
18
|
+
spot_v1_private_get_account_balance = spotV1PrivateGetAccountBalance = Entry('account/balance', ['spot', 'v1', 'private'], 'GET', {'cost': 2})
|
19
|
+
spot_v1_private_post_trade_order = spotV1PrivatePostTradeOrder = Entry('trade/order', ['spot', 'v1', 'private'], 'POST', {'cost': 2})
|
20
|
+
spot_v1_private_post_trade_cancel = spotV1PrivatePostTradeCancel = Entry('trade/cancel', ['spot', 'v1', 'private'], 'POST', {'cost': 2})
|
21
|
+
spot_v1_private_post_trade_batchorders = spotV1PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 5})
|
22
|
+
spot_v1_private_post_trade_order_cancelreplace = spotV1PrivatePostTradeOrderCancelReplace = Entry('trade/order/cancelReplace', ['spot', 'v1', 'private'], 'POST', {'cost': 5})
|
23
|
+
spot_v1_private_post_trade_cancelorders = spotV1PrivatePostTradeCancelOrders = Entry('trade/cancelOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 5})
|
24
|
+
spot_v1_private_post_trade_cancelopenorders = spotV1PrivatePostTradeCancelOpenOrders = Entry('trade/cancelOpenOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 5})
|
25
|
+
spot_v1_private_post_trade_cancelallafter = spotV1PrivatePostTradeCancelAllAfter = Entry('trade/cancelAllAfter', ['spot', 'v1', 'private'], 'POST', {'cost': 5})
|
26
|
+
spot_v2_public_get_market_depth = spotV2PublicGetMarketDepth = Entry('market/depth', ['spot', 'v2', 'public'], 'GET', {'cost': 1})
|
27
|
+
spot_v2_public_get_market_kline = spotV2PublicGetMarketKline = Entry('market/kline', ['spot', 'v2', 'public'], 'GET', {'cost': 1})
|
28
|
+
spot_v3_private_get_get_asset_transfer = spotV3PrivateGetGetAssetTransfer = Entry('get/asset/transfer', ['spot', 'v3', 'private'], 'GET', {'cost': 1})
|
29
|
+
spot_v3_private_get_asset_transfer = spotV3PrivateGetAssetTransfer = Entry('asset/transfer', ['spot', 'v3', 'private'], 'GET', {'cost': 1})
|
30
|
+
spot_v3_private_get_capital_deposit_hisrec = spotV3PrivateGetCapitalDepositHisrec = Entry('capital/deposit/hisrec', ['spot', 'v3', 'private'], 'GET', {'cost': 1})
|
31
|
+
spot_v3_private_get_capital_withdraw_history = spotV3PrivateGetCapitalWithdrawHistory = Entry('capital/withdraw/history', ['spot', 'v3', 'private'], 'GET', {'cost': 1})
|
32
|
+
spot_v3_private_post_post_asset_transfer = spotV3PrivatePostPostAssetTransfer = Entry('post/asset/transfer', ['spot', 'v3', 'private'], 'POST', {'cost': 5})
|
29
33
|
swap_v1_public_get_ticker_price = swapV1PublicGetTickerPrice = Entry('ticker/price', ['swap', 'v1', 'public'], 'GET', {'cost': 1})
|
30
|
-
|
34
|
+
swap_v1_public_get_market_historicaltrades = swapV1PublicGetMarketHistoricalTrades = Entry('market/historicalTrades', ['swap', 'v1', 'public'], 'GET', {'cost': 1})
|
35
|
+
swap_v1_private_get_positionside_dual = swapV1PrivateGetPositionSideDual = Entry('positionSide/dual', ['swap', 'v1', 'private'], 'GET', {'cost': 5})
|
31
36
|
swap_v1_private_get_market_markpriceklines = swapV1PrivateGetMarketMarkPriceKlines = Entry('market/markPriceKlines', ['swap', 'v1', 'private'], 'GET', {'cost': 1})
|
32
|
-
swap_v1_private_get_trade_batchcancelreplace = swapV1PrivateGetTradeBatchCancelReplace = Entry('trade/batchCancelReplace', ['swap', 'v1', 'private'], 'GET', {'cost':
|
33
|
-
swap_v1_private_get_trade_fullorder = swapV1PrivateGetTradeFullOrder = Entry('trade/fullOrder', ['swap', 'v1', 'private'], 'GET', {'cost':
|
34
|
-
swap_v1_private_post_trade_cancelreplace = swapV1PrivatePostTradeCancelReplace = Entry('trade/cancelReplace', ['swap', 'v1', 'private'], 'POST', {'cost':
|
35
|
-
swap_v1_private_post_positionside_dual = swapV1PrivatePostPositionSideDual = Entry('positionSide/dual', ['swap', 'v1', 'private'], 'POST', {'cost':
|
36
|
-
swap_v1_private_post_trade_closeposition = swapV1PrivatePostTradeClosePosition = Entry('trade/closePosition', ['swap', 'v1', 'private'], 'POST', {'cost':
|
37
|
-
swap_v2_public_get_server_time = swapV2PublicGetServerTime = Entry('server/time', ['swap', 'v2', 'public'], 'GET', {'cost':
|
37
|
+
swap_v1_private_get_trade_batchcancelreplace = swapV1PrivateGetTradeBatchCancelReplace = Entry('trade/batchCancelReplace', ['swap', 'v1', 'private'], 'GET', {'cost': 5})
|
38
|
+
swap_v1_private_get_trade_fullorder = swapV1PrivateGetTradeFullOrder = Entry('trade/fullOrder', ['swap', 'v1', 'private'], 'GET', {'cost': 2})
|
39
|
+
swap_v1_private_post_trade_cancelreplace = swapV1PrivatePostTradeCancelReplace = Entry('trade/cancelReplace', ['swap', 'v1', 'private'], 'POST', {'cost': 2})
|
40
|
+
swap_v1_private_post_positionside_dual = swapV1PrivatePostPositionSideDual = Entry('positionSide/dual', ['swap', 'v1', 'private'], 'POST', {'cost': 5})
|
41
|
+
swap_v1_private_post_trade_closeposition = swapV1PrivatePostTradeClosePosition = Entry('trade/closePosition', ['swap', 'v1', 'private'], 'POST', {'cost': 2})
|
42
|
+
swap_v2_public_get_server_time = swapV2PublicGetServerTime = Entry('server/time', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
38
43
|
swap_v2_public_get_quote_contracts = swapV2PublicGetQuoteContracts = Entry('quote/contracts', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
39
44
|
swap_v2_public_get_quote_price = swapV2PublicGetQuotePrice = Entry('quote/price', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
40
45
|
swap_v2_public_get_quote_depth = swapV2PublicGetQuoteDepth = Entry('quote/depth', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
@@ -45,61 +50,63 @@ class ImplicitAPI:
|
|
45
50
|
swap_v2_public_get_quote_openinterest = swapV2PublicGetQuoteOpenInterest = Entry('quote/openInterest', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
46
51
|
swap_v2_public_get_quote_ticker = swapV2PublicGetQuoteTicker = Entry('quote/ticker', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
47
52
|
swap_v2_public_get_quote_bookticker = swapV2PublicGetQuoteBookTicker = Entry('quote/bookTicker', ['swap', 'v2', 'public'], 'GET', {'cost': 1})
|
48
|
-
swap_v2_private_get_user_balance = swapV2PrivateGetUserBalance = Entry('user/balance', ['swap', 'v2', 'private'], 'GET', {'cost':
|
49
|
-
swap_v2_private_get_user_positions = swapV2PrivateGetUserPositions = Entry('user/positions', ['swap', 'v2', 'private'], 'GET', {'cost':
|
50
|
-
swap_v2_private_get_user_income = swapV2PrivateGetUserIncome = Entry('user/income', ['swap', 'v2', 'private'], 'GET', {'cost':
|
51
|
-
swap_v2_private_get_trade_openorders = swapV2PrivateGetTradeOpenOrders = Entry('trade/openOrders', ['swap', 'v2', 'private'], 'GET', {'cost':
|
52
|
-
swap_v2_private_get_trade_openorder = swapV2PrivateGetTradeOpenOrder = Entry('trade/openOrder', ['swap', 'v2', 'private'], 'GET', {'cost':
|
53
|
-
swap_v2_private_get_trade_order = swapV2PrivateGetTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'GET', {'cost':
|
54
|
-
swap_v2_private_get_trade_margintype = swapV2PrivateGetTradeMarginType = Entry('trade/marginType', ['swap', 'v2', 'private'], 'GET', {'cost':
|
55
|
-
swap_v2_private_get_trade_leverage = swapV2PrivateGetTradeLeverage = Entry('trade/leverage', ['swap', 'v2', 'private'], 'GET', {'cost':
|
56
|
-
swap_v2_private_get_trade_forceorders = swapV2PrivateGetTradeForceOrders = Entry('trade/forceOrders', ['swap', 'v2', 'private'], 'GET', {'cost':
|
57
|
-
swap_v2_private_get_trade_allorders = swapV2PrivateGetTradeAllOrders = Entry('trade/allOrders', ['swap', 'v2', 'private'], 'GET', {'cost':
|
58
|
-
swap_v2_private_get_trade_allfillorders = swapV2PrivateGetTradeAllFillOrders = Entry('trade/allFillOrders', ['swap', 'v2', 'private'], 'GET', {'cost':
|
59
|
-
swap_v2_private_get_user_income_export = swapV2PrivateGetUserIncomeExport = Entry('user/income/export', ['swap', 'v2', 'private'], 'GET', {'cost':
|
60
|
-
swap_v2_private_get_user_commissionrate = swapV2PrivateGetUserCommissionRate = Entry('user/commissionRate', ['swap', 'v2', 'private'], 'GET', {'cost':
|
61
|
-
swap_v2_private_get_quote_bookticker = swapV2PrivateGetQuoteBookTicker = Entry('quote/bookTicker', ['swap', 'v2', 'private'], 'GET', {'cost':
|
62
|
-
swap_v2_private_post_trade_order = swapV2PrivatePostTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'POST', {'cost':
|
63
|
-
swap_v2_private_post_trade_batchorders = swapV2PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'POST', {'cost':
|
64
|
-
swap_v2_private_post_trade_closeallpositions = swapV2PrivatePostTradeCloseAllPositions = Entry('trade/closeAllPositions', ['swap', 'v2', 'private'], 'POST', {'cost':
|
65
|
-
swap_v2_private_post_trade_cancelallafter = swapV2PrivatePostTradeCancelAllAfter = Entry('trade/cancelAllAfter', ['swap', 'v2', 'private'], 'POST', {'cost':
|
66
|
-
swap_v2_private_post_trade_margintype = swapV2PrivatePostTradeMarginType = Entry('trade/marginType', ['swap', 'v2', 'private'], 'POST', {'cost':
|
67
|
-
swap_v2_private_post_trade_leverage = swapV2PrivatePostTradeLeverage = Entry('trade/leverage', ['swap', 'v2', 'private'], 'POST', {'cost':
|
68
|
-
swap_v2_private_post_trade_positionmargin = swapV2PrivatePostTradePositionMargin = Entry('trade/positionMargin', ['swap', 'v2', 'private'], 'POST', {'cost':
|
69
|
-
swap_v2_private_post_trade_order_test = swapV2PrivatePostTradeOrderTest = Entry('trade/order/test', ['swap', 'v2', 'private'], 'POST', {'cost':
|
70
|
-
swap_v2_private_delete_trade_order = swapV2PrivateDeleteTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'DELETE', {'cost':
|
71
|
-
swap_v2_private_delete_trade_batchorders = swapV2PrivateDeleteTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost':
|
72
|
-
swap_v2_private_delete_trade_allopenorders = swapV2PrivateDeleteTradeAllOpenOrders = Entry('trade/allOpenOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost':
|
53
|
+
swap_v2_private_get_user_balance = swapV2PrivateGetUserBalance = Entry('user/balance', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
54
|
+
swap_v2_private_get_user_positions = swapV2PrivateGetUserPositions = Entry('user/positions', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
55
|
+
swap_v2_private_get_user_income = swapV2PrivateGetUserIncome = Entry('user/income', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
56
|
+
swap_v2_private_get_trade_openorders = swapV2PrivateGetTradeOpenOrders = Entry('trade/openOrders', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
57
|
+
swap_v2_private_get_trade_openorder = swapV2PrivateGetTradeOpenOrder = Entry('trade/openOrder', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
58
|
+
swap_v2_private_get_trade_order = swapV2PrivateGetTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
59
|
+
swap_v2_private_get_trade_margintype = swapV2PrivateGetTradeMarginType = Entry('trade/marginType', ['swap', 'v2', 'private'], 'GET', {'cost': 5})
|
60
|
+
swap_v2_private_get_trade_leverage = swapV2PrivateGetTradeLeverage = Entry('trade/leverage', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
61
|
+
swap_v2_private_get_trade_forceorders = swapV2PrivateGetTradeForceOrders = Entry('trade/forceOrders', ['swap', 'v2', 'private'], 'GET', {'cost': 1})
|
62
|
+
swap_v2_private_get_trade_allorders = swapV2PrivateGetTradeAllOrders = Entry('trade/allOrders', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
63
|
+
swap_v2_private_get_trade_allfillorders = swapV2PrivateGetTradeAllFillOrders = Entry('trade/allFillOrders', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
64
|
+
swap_v2_private_get_user_income_export = swapV2PrivateGetUserIncomeExport = Entry('user/income/export', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
65
|
+
swap_v2_private_get_user_commissionrate = swapV2PrivateGetUserCommissionRate = Entry('user/commissionRate', ['swap', 'v2', 'private'], 'GET', {'cost': 2})
|
66
|
+
swap_v2_private_get_quote_bookticker = swapV2PrivateGetQuoteBookTicker = Entry('quote/bookTicker', ['swap', 'v2', 'private'], 'GET', {'cost': 1})
|
67
|
+
swap_v2_private_post_trade_order = swapV2PrivatePostTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'POST', {'cost': 2})
|
68
|
+
swap_v2_private_post_trade_batchorders = swapV2PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'POST', {'cost': 2})
|
69
|
+
swap_v2_private_post_trade_closeallpositions = swapV2PrivatePostTradeCloseAllPositions = Entry('trade/closeAllPositions', ['swap', 'v2', 'private'], 'POST', {'cost': 2})
|
70
|
+
swap_v2_private_post_trade_cancelallafter = swapV2PrivatePostTradeCancelAllAfter = Entry('trade/cancelAllAfter', ['swap', 'v2', 'private'], 'POST', {'cost': 5})
|
71
|
+
swap_v2_private_post_trade_margintype = swapV2PrivatePostTradeMarginType = Entry('trade/marginType', ['swap', 'v2', 'private'], 'POST', {'cost': 5})
|
72
|
+
swap_v2_private_post_trade_leverage = swapV2PrivatePostTradeLeverage = Entry('trade/leverage', ['swap', 'v2', 'private'], 'POST', {'cost': 5})
|
73
|
+
swap_v2_private_post_trade_positionmargin = swapV2PrivatePostTradePositionMargin = Entry('trade/positionMargin', ['swap', 'v2', 'private'], 'POST', {'cost': 5})
|
74
|
+
swap_v2_private_post_trade_order_test = swapV2PrivatePostTradeOrderTest = Entry('trade/order/test', ['swap', 'v2', 'private'], 'POST', {'cost': 2})
|
75
|
+
swap_v2_private_delete_trade_order = swapV2PrivateDeleteTradeOrder = Entry('trade/order', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
|
76
|
+
swap_v2_private_delete_trade_batchorders = swapV2PrivateDeleteTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
|
77
|
+
swap_v2_private_delete_trade_allopenorders = swapV2PrivateDeleteTradeAllOpenOrders = Entry('trade/allOpenOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
|
73
78
|
swap_v3_public_get_quote_klines = swapV3PublicGetQuoteKlines = Entry('quote/klines', ['swap', 'v3', 'public'], 'GET', {'cost': 1})
|
74
|
-
contract_v1_private_get_allposition = contractV1PrivateGetAllPosition = Entry('allPosition', ['contract', 'v1', 'private'], 'GET', {'cost':
|
75
|
-
contract_v1_private_get_allorders = contractV1PrivateGetAllOrders = Entry('allOrders', ['contract', 'v1', 'private'], 'GET', {'cost':
|
76
|
-
contract_v1_private_get_balance = contractV1PrivateGetBalance = Entry('balance', ['contract', 'v1', 'private'], 'GET', {'cost':
|
77
|
-
wallets_v1_private_get_capital_config_getall = walletsV1PrivateGetCapitalConfigGetall = Entry('capital/config/getall', ['wallets', 'v1', 'private'], 'GET', {'cost':
|
78
|
-
wallets_v1_private_get_capital_deposit_address = walletsV1PrivateGetCapitalDepositAddress = Entry('capital/deposit/address', ['wallets', 'v1', 'private'], 'GET', {'cost':
|
79
|
+
contract_v1_private_get_allposition = contractV1PrivateGetAllPosition = Entry('allPosition', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
80
|
+
contract_v1_private_get_allorders = contractV1PrivateGetAllOrders = Entry('allOrders', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
81
|
+
contract_v1_private_get_balance = contractV1PrivateGetBalance = Entry('balance', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
82
|
+
wallets_v1_private_get_capital_config_getall = walletsV1PrivateGetCapitalConfigGetall = Entry('capital/config/getall', ['wallets', 'v1', 'private'], 'GET', {'cost': 5})
|
83
|
+
wallets_v1_private_get_capital_deposit_address = walletsV1PrivateGetCapitalDepositAddress = Entry('capital/deposit/address', ['wallets', 'v1', 'private'], 'GET', {'cost': 5})
|
79
84
|
wallets_v1_private_get_capital_innertransfer_records = walletsV1PrivateGetCapitalInnerTransferRecords = Entry('capital/innerTransfer/records', ['wallets', 'v1', 'private'], 'GET', {'cost': 1})
|
80
|
-
wallets_v1_private_get_capital_subaccount_deposit_address = walletsV1PrivateGetCapitalSubAccountDepositAddress = Entry('capital/subAccount/deposit/address', ['wallets', 'v1', 'private'], 'GET', {'cost':
|
81
|
-
wallets_v1_private_get_capital_deposit_subhisrec = walletsV1PrivateGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', ['wallets', 'v1', 'private'], 'GET', {'cost':
|
85
|
+
wallets_v1_private_get_capital_subaccount_deposit_address = walletsV1PrivateGetCapitalSubAccountDepositAddress = Entry('capital/subAccount/deposit/address', ['wallets', 'v1', 'private'], 'GET', {'cost': 5})
|
86
|
+
wallets_v1_private_get_capital_deposit_subhisrec = walletsV1PrivateGetCapitalDepositSubHisrec = Entry('capital/deposit/subHisrec', ['wallets', 'v1', 'private'], 'GET', {'cost': 2})
|
82
87
|
wallets_v1_private_get_capital_subaccount_innertransfer_records = walletsV1PrivateGetCapitalSubAccountInnerTransferRecords = Entry('capital/subAccount/innerTransfer/records', ['wallets', 'v1', 'private'], 'GET', {'cost': 1})
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
88
|
+
wallets_v1_private_get_capital_deposit_riskrecords = walletsV1PrivateGetCapitalDepositRiskRecords = Entry('capital/deposit/riskRecords', ['wallets', 'v1', 'private'], 'GET', {'cost': 5})
|
89
|
+
wallets_v1_private_post_capital_withdraw_apply = walletsV1PrivatePostCapitalWithdrawApply = Entry('capital/withdraw/apply', ['wallets', 'v1', 'private'], 'POST', {'cost': 5})
|
90
|
+
wallets_v1_private_post_capital_innertransfer_apply = walletsV1PrivatePostCapitalInnerTransferApply = Entry('capital/innerTransfer/apply', ['wallets', 'v1', 'private'], 'POST', {'cost': 5})
|
91
|
+
wallets_v1_private_post_capital_subaccountinnertransfer_apply = walletsV1PrivatePostCapitalSubAccountInnerTransferApply = Entry('capital/subAccountInnerTransfer/apply', ['wallets', 'v1', 'private'], 'POST', {'cost': 2})
|
92
|
+
wallets_v1_private_post_capital_deposit_createsubaddress = walletsV1PrivatePostCapitalDepositCreateSubAddress = Entry('capital/deposit/createSubAddress', ['wallets', 'v1', 'private'], 'POST', {'cost': 2})
|
93
|
+
subaccount_v1_private_get_list = subAccountV1PrivateGetList = Entry('list', ['subAccount', 'v1', 'private'], 'GET', {'cost': 10})
|
94
|
+
subaccount_v1_private_get_assets = subAccountV1PrivateGetAssets = Entry('assets', ['subAccount', 'v1', 'private'], 'GET', {'cost': 2})
|
95
|
+
subaccount_v1_private_post_create = subAccountV1PrivatePostCreate = Entry('create', ['subAccount', 'v1', 'private'], 'POST', {'cost': 10})
|
96
|
+
subaccount_v1_private_post_apikey_create = subAccountV1PrivatePostApiKeyCreate = Entry('apiKey/create', ['subAccount', 'v1', 'private'], 'POST', {'cost': 2})
|
97
|
+
subaccount_v1_private_post_apikey_edit = subAccountV1PrivatePostApiKeyEdit = Entry('apiKey/edit', ['subAccount', 'v1', 'private'], 'POST', {'cost': 2})
|
98
|
+
subaccount_v1_private_post_apikey_del = subAccountV1PrivatePostApiKeyDel = Entry('apiKey/del', ['subAccount', 'v1', 'private'], 'POST', {'cost': 2})
|
99
|
+
subaccount_v1_private_post_updatestatus = subAccountV1PrivatePostUpdateStatus = Entry('updateStatus', ['subAccount', 'v1', 'private'], 'POST', {'cost': 10})
|
94
100
|
account_v1_private_get_uid = accountV1PrivateGetUid = Entry('uid', ['account', 'v1', 'private'], 'GET', {'cost': 1})
|
95
|
-
account_v1_private_get_apikey_query = accountV1PrivateGetApiKeyQuery = Entry('apiKey/query', ['account', 'v1', 'private'], 'GET', {'cost':
|
96
|
-
account_v1_private_post_innertransfer_authorizesubaccount = accountV1PrivatePostInnerTransferAuthorizeSubAccount = Entry('innerTransfer/authorizeSubAccount', ['account', 'v1', 'private'], 'POST', {'cost':
|
97
|
-
user_auth_private_post_userdatastream = userAuthPrivatePostUserDataStream = Entry('userDataStream', ['user', 'auth', 'private'], 'POST', {'cost':
|
98
|
-
user_auth_private_put_userdatastream = userAuthPrivatePutUserDataStream = Entry('userDataStream', ['user', 'auth', 'private'], 'PUT', {'cost':
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
101
|
+
account_v1_private_get_apikey_query = accountV1PrivateGetApiKeyQuery = Entry('apiKey/query', ['account', 'v1', 'private'], 'GET', {'cost': 2})
|
102
|
+
account_v1_private_post_innertransfer_authorizesubaccount = accountV1PrivatePostInnerTransferAuthorizeSubAccount = Entry('innerTransfer/authorizeSubAccount', ['account', 'v1', 'private'], 'POST', {'cost': 1})
|
103
|
+
user_auth_private_post_userdatastream = userAuthPrivatePostUserDataStream = Entry('userDataStream', ['user', 'auth', 'private'], 'POST', {'cost': 2})
|
104
|
+
user_auth_private_put_userdatastream = userAuthPrivatePutUserDataStream = Entry('userDataStream', ['user', 'auth', 'private'], 'PUT', {'cost': 2})
|
105
|
+
user_auth_private_delete_userdatastream = userAuthPrivateDeleteUserDataStream = Entry('userDataStream', ['user', 'auth', 'private'], 'DELETE', {'cost': 2})
|
106
|
+
copytrading_v1_private_get_swap_trace_currenttrack = copyTradingV1PrivateGetSwapTraceCurrentTrack = Entry('swap/trace/currentTrack', ['copyTrading', 'v1', 'private'], 'GET', {'cost': 2})
|
107
|
+
copytrading_v1_private_post_swap_trace_closetrackorder = copyTradingV1PrivatePostSwapTraceCloseTrackOrder = Entry('swap/trace/closeTrackOrder', ['copyTrading', 'v1', 'private'], 'POST', {'cost': 2})
|
108
|
+
copytrading_v1_private_post_swap_trace_settpsl = copyTradingV1PrivatePostSwapTraceSetTPSL = Entry('swap/trace/setTPSL', ['copyTrading', 'v1', 'private'], 'POST', {'cost': 2})
|
109
|
+
copytrading_v1_private_post_spot_trader_sellorder = copyTradingV1PrivatePostSpotTraderSellOrder = Entry('spot/trader/sellOrder', ['copyTrading', 'v1', 'private'], 'POST', {'cost': 10})
|
103
110
|
api_v3_private_get_asset_transfer = apiV3PrivateGetAssetTransfer = Entry('asset/transfer', ['api', 'v3', 'private'], 'GET', {'cost': 1})
|
104
111
|
api_v3_private_get_capital_deposit_hisrec = apiV3PrivateGetCapitalDepositHisrec = Entry('capital/deposit/hisrec', ['api', 'v3', 'private'], 'GET', {'cost': 1})
|
105
112
|
api_v3_private_get_capital_withdraw_history = apiV3PrivateGetCapitalWithdrawHistory = Entry('capital/withdraw/history', ['api', 'v3', 'private'], 'GET', {'cost': 1})
|
ccxt/abstract/bitmart.py
CHANGED
@@ -81,6 +81,7 @@ class ImplicitAPI:
|
|
81
81
|
private_post_spot_v4_query_trades = privatePostSpotV4QueryTrades = Entry('spot/v4/query/trades', 'private', 'POST', {'cost': 5})
|
82
82
|
private_post_spot_v4_query_order_trades = privatePostSpotV4QueryOrderTrades = Entry('spot/v4/query/order-trades', 'private', 'POST', {'cost': 5})
|
83
83
|
private_post_spot_v4_cancel_orders = privatePostSpotV4CancelOrders = Entry('spot/v4/cancel_orders', 'private', 'POST', {'cost': 3})
|
84
|
+
private_post_spot_v4_batch_orders = privatePostSpotV4BatchOrders = Entry('spot/v4/batch_orders', 'private', 'POST', {'cost': 3})
|
84
85
|
private_post_spot_v3_cancel_order = privatePostSpotV3CancelOrder = Entry('spot/v3/cancel_order', 'private', 'POST', {'cost': 1})
|
85
86
|
private_post_spot_v2_batch_orders = privatePostSpotV2BatchOrders = Entry('spot/v2/batch_orders', 'private', 'POST', {'cost': 1})
|
86
87
|
private_post_spot_v2_submit_order = privatePostSpotV2SubmitOrder = Entry('spot/v2/submit_order', 'private', 'POST', {'cost': 1})
|
ccxt/async_support/__init__.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
from ccxt import ExchangeClosedByUser
|
3
3
|
|
4
|
-
|
5
4
|
class Future(asyncio.Future):
|
6
5
|
|
7
6
|
is_race_future = False
|
@@ -23,38 +22,37 @@ class Future(asyncio.Future):
|
|
23
22
|
task = asyncio.create_task(coro)
|
24
23
|
|
25
24
|
def callback(done):
|
26
|
-
|
27
|
-
|
28
|
-
complete, _ = done.result()
|
25
|
+
try:
|
26
|
+
complete, pending = done.result()
|
29
27
|
# check for exceptions
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
else:
|
43
|
-
futures_list = list(complete)
|
44
|
-
are_all_canceled = all(f._state == 'CANCELLED' for f in futures_list)
|
45
|
-
if are_all_canceled and future._state == 'PENDING':
|
46
|
-
future.set_exception(ExchangeClosedByUser('Connection closed by the user'))
|
28
|
+
for i, f in enumerate(complete):
|
29
|
+
try:
|
30
|
+
f.result()
|
31
|
+
except ExchangeClosedByUser as e:
|
32
|
+
if len(pending) == 0 and i == len(complete) - 1:
|
33
|
+
future.reject(e)
|
34
|
+
# wait for all the sub promises to be reject before rejecting future
|
35
|
+
continue
|
36
|
+
except asyncio.CancelledError as e:
|
37
|
+
continue
|
38
|
+
except Exception as e:
|
39
|
+
future.reject(e)
|
47
40
|
return
|
41
|
+
# no exceptions return first result
|
42
|
+
futures_list = list(complete)
|
48
43
|
|
49
|
-
|
50
|
-
|
51
|
-
|
44
|
+
are_all_canceled = all([f.cancelled() for f in futures_list])
|
45
|
+
if are_all_canceled:
|
46
|
+
future.reject(ExchangeClosedByUser('Connection closed by the user'))
|
47
|
+
return
|
52
48
|
|
53
|
-
|
49
|
+
first = futures_list[0]
|
54
50
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
future.
|
51
|
+
first_result = first.result()
|
52
|
+
future.resolve(first_result)
|
53
|
+
except asyncio.CancelledError as e:
|
54
|
+
future.reject(e)
|
55
|
+
except Exception as e:
|
56
|
+
future.reject(e)
|
59
57
|
task.add_done_callback(callback)
|
60
58
|
return future
|