ccxt 4.4.35__py2.py3-none-any.whl → 4.4.36__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.
- ccxt/__init__.py +3 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bybit.py +15 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/gate.py +14 -0
- ccxt/abstract/gateio.py +14 -0
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitfinex2.py +18 -13
- ccxt/async_support/bitmex.py +103 -1
- ccxt/async_support/bitopro.py +21 -4
- ccxt/async_support/bitso.py +2 -1
- ccxt/async_support/bybit.py +21 -1
- ccxt/async_support/defx.py +1981 -0
- ccxt/async_support/deribit.py +27 -12
- ccxt/async_support/gate.py +14 -0
- ccxt/async_support/htx.py +11 -2
- ccxt/async_support/kraken.py +39 -41
- ccxt/base/exchange.py +1 -1
- ccxt/bitfinex2.py +18 -13
- ccxt/bitmex.py +103 -1
- ccxt/bitopro.py +21 -4
- ccxt/bitso.py +2 -1
- ccxt/bybit.py +21 -1
- ccxt/defx.py +1980 -0
- ccxt/deribit.py +27 -12
- ccxt/gate.py +14 -0
- ccxt/htx.py +11 -2
- ccxt/kraken.py +39 -41
- ccxt/pro/__init__.py +3 -1
- ccxt/pro/defx.py +832 -0
- ccxt/test/tests_async.py +15 -1
- ccxt/test/tests_sync.py +15 -1
- {ccxt-4.4.35.dist-info → ccxt-4.4.36.dist-info}/METADATA +7 -6
- {ccxt-4.4.35.dist-info → ccxt-4.4.36.dist-info}/RECORD +39 -35
- {ccxt-4.4.35.dist-info → ccxt-4.4.36.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.35.dist-info → ccxt-4.4.36.dist-info}/WHEEL +0 -0
- {ccxt-4.4.35.dist-info → ccxt-4.4.36.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
# ----------------------------------------------------------------------------
|
24
24
|
|
25
|
-
__version__ = '4.4.
|
25
|
+
__version__ = '4.4.36'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -135,6 +135,7 @@ from ccxt.coinsph import coinsph # noqa: F4
|
|
135
135
|
from ccxt.coinspot import coinspot # noqa: F401
|
136
136
|
from ccxt.cryptocom import cryptocom # noqa: F401
|
137
137
|
from ccxt.currencycom import currencycom # noqa: F401
|
138
|
+
from ccxt.defx import defx # noqa: F401
|
138
139
|
from ccxt.delta import delta # noqa: F401
|
139
140
|
from ccxt.deribit import deribit # noqa: F401
|
140
141
|
from ccxt.digifinex import digifinex # noqa: F401
|
@@ -247,6 +248,7 @@ exchanges = [
|
|
247
248
|
'coinspot',
|
248
249
|
'cryptocom',
|
249
250
|
'currencycom',
|
251
|
+
'defx',
|
250
252
|
'delta',
|
251
253
|
'deribit',
|
252
254
|
'digifinex',
|
ccxt/abstract/bitopro.py
CHANGED
@@ -20,6 +20,7 @@ class ImplicitAPI:
|
|
20
20
|
private_get_wallet_withdraw_currency_id_id = privateGetWalletWithdrawCurrencyIdId = Entry('wallet/withdraw/{currency}/id/{id}', 'private', 'GET', {'cost': 1})
|
21
21
|
private_get_wallet_deposithistory_currency = privateGetWalletDepositHistoryCurrency = Entry('wallet/depositHistory/{currency}', 'private', 'GET', {'cost': 1})
|
22
22
|
private_get_wallet_withdrawhistory_currency = privateGetWalletWithdrawHistoryCurrency = Entry('wallet/withdrawHistory/{currency}', 'private', 'GET', {'cost': 1})
|
23
|
+
private_get_orders_open = privateGetOrdersOpen = Entry('orders/open', 'private', 'GET', {'cost': 1})
|
23
24
|
private_post_orders_pair = privatePostOrdersPair = Entry('orders/{pair}', 'private', 'POST', {'cost': 0.5})
|
24
25
|
private_post_orders_batch = privatePostOrdersBatch = Entry('orders/batch', 'private', 'POST', {'cost': 6.666666666666667})
|
25
26
|
private_post_wallet_withdraw_currency = privatePostWalletWithdrawCurrency = Entry('wallet/withdraw/{currency}', 'private', 'POST', {'cost': 10})
|
ccxt/abstract/bybit.py
CHANGED
@@ -51,6 +51,8 @@ class ImplicitAPI:
|
|
51
51
|
public_get_v5_spot_cross_margin_trade_data = publicGetV5SpotCrossMarginTradeData = Entry('v5/spot-cross-margin-trade/data', 'public', 'GET', {'cost': 5})
|
52
52
|
public_get_v5_spot_cross_margin_trade_pledge_token = publicGetV5SpotCrossMarginTradePledgeToken = Entry('v5/spot-cross-margin-trade/pledge-token', 'public', 'GET', {'cost': 5})
|
53
53
|
public_get_v5_spot_cross_margin_trade_borrow_token = publicGetV5SpotCrossMarginTradeBorrowToken = Entry('v5/spot-cross-margin-trade/borrow-token', 'public', 'GET', {'cost': 5})
|
54
|
+
public_get_v5_crypto_loan_collateral_data = publicGetV5CryptoLoanCollateralData = Entry('v5/crypto-loan/collateral-data', 'public', 'GET', {'cost': 5})
|
55
|
+
public_get_v5_crypto_loan_loanable_data = publicGetV5CryptoLoanLoanableData = Entry('v5/crypto-loan/loanable-data', 'public', 'GET', {'cost': 5})
|
54
56
|
public_get_v5_ins_loan_product_infos = publicGetV5InsLoanProductInfos = Entry('v5/ins-loan/product-infos', 'public', 'GET', {'cost': 5})
|
55
57
|
public_get_v5_ins_loan_ensure_tokens_convert = publicGetV5InsLoanEnsureTokensConvert = Entry('v5/ins-loan/ensure-tokens-convert', 'public', 'GET', {'cost': 5})
|
56
58
|
private_get_v5_market_instruments_info = privateGetV5MarketInstrumentsInfo = Entry('v5/market/instruments-info', 'private', 'GET', {'cost': 5})
|
@@ -162,6 +164,7 @@ class ImplicitAPI:
|
|
162
164
|
private_get_v5_user_aff_customer_info = privateGetV5UserAffCustomerInfo = Entry('v5/user/aff-customer-info', 'private', 'GET', {'cost': 5})
|
163
165
|
private_get_v5_user_del_submember = privateGetV5UserDelSubmember = Entry('v5/user/del-submember', 'private', 'GET', {'cost': 5})
|
164
166
|
private_get_v5_user_submembers = privateGetV5UserSubmembers = Entry('v5/user/submembers', 'private', 'GET', {'cost': 5})
|
167
|
+
private_get_v5_affiliate_aff_user_list = privateGetV5AffiliateAffUserList = Entry('v5/affiliate/aff-user-list', 'private', 'GET', {'cost': 5})
|
165
168
|
private_get_v5_spot_lever_token_order_record = privateGetV5SpotLeverTokenOrderRecord = Entry('v5/spot-lever-token/order-record', 'private', 'GET', {'cost': 1})
|
166
169
|
private_get_v5_spot_margin_trade_interest_rate_history = privateGetV5SpotMarginTradeInterestRateHistory = Entry('v5/spot-margin-trade/interest-rate-history', 'private', 'GET', {'cost': 5})
|
167
170
|
private_get_v5_spot_margin_trade_state = privateGetV5SpotMarginTradeState = Entry('v5/spot-margin-trade/state', 'private', 'GET', {'cost': 5})
|
@@ -169,6 +172,12 @@ class ImplicitAPI:
|
|
169
172
|
private_get_v5_spot_cross_margin_trade_account = privateGetV5SpotCrossMarginTradeAccount = Entry('v5/spot-cross-margin-trade/account', 'private', 'GET', {'cost': 1})
|
170
173
|
private_get_v5_spot_cross_margin_trade_orders = privateGetV5SpotCrossMarginTradeOrders = Entry('v5/spot-cross-margin-trade/orders', 'private', 'GET', {'cost': 1})
|
171
174
|
private_get_v5_spot_cross_margin_trade_repay_history = privateGetV5SpotCrossMarginTradeRepayHistory = Entry('v5/spot-cross-margin-trade/repay-history', 'private', 'GET', {'cost': 1})
|
175
|
+
private_get_v5_crypto_loan_borrowable_collateralisable_number = privateGetV5CryptoLoanBorrowableCollateralisableNumber = Entry('v5/crypto-loan/borrowable-collateralisable-number', 'private', 'GET', {'cost': 5})
|
176
|
+
private_get_v5_crypto_loan_ongoing_orders = privateGetV5CryptoLoanOngoingOrders = Entry('v5/crypto-loan/ongoing-orders', 'private', 'GET', {'cost': 5})
|
177
|
+
private_get_v5_crypto_loan_repayment_history = privateGetV5CryptoLoanRepaymentHistory = Entry('v5/crypto-loan/repayment-history', 'private', 'GET', {'cost': 5})
|
178
|
+
private_get_v5_crypto_loan_borrow_history = privateGetV5CryptoLoanBorrowHistory = Entry('v5/crypto-loan/borrow-history', 'private', 'GET', {'cost': 5})
|
179
|
+
private_get_v5_crypto_loan_max_collateral_amount = privateGetV5CryptoLoanMaxCollateralAmount = Entry('v5/crypto-loan/max-collateral-amount', 'private', 'GET', {'cost': 5})
|
180
|
+
private_get_v5_crypto_loan_adjustment_history = privateGetV5CryptoLoanAdjustmentHistory = Entry('v5/crypto-loan/adjustment-history', 'private', 'GET', {'cost': 5})
|
172
181
|
private_get_v5_ins_loan_product_infos = privateGetV5InsLoanProductInfos = Entry('v5/ins-loan/product-infos', 'private', 'GET', {'cost': 5})
|
173
182
|
private_get_v5_ins_loan_ensure_tokens_convert = privateGetV5InsLoanEnsureTokensConvert = Entry('v5/ins-loan/ensure-tokens-convert', 'private', 'GET', {'cost': 5})
|
174
183
|
private_get_v5_ins_loan_loan_order = privateGetV5InsLoanLoanOrder = Entry('v5/ins-loan/loan-order', 'private', 'GET', {'cost': 5})
|
@@ -283,6 +292,9 @@ class ImplicitAPI:
|
|
283
292
|
private_post_v5_spot_cross_margin_trade_loan = privatePostV5SpotCrossMarginTradeLoan = Entry('v5/spot-cross-margin-trade/loan', 'private', 'POST', {'cost': 2.5})
|
284
293
|
private_post_v5_spot_cross_margin_trade_repay = privatePostV5SpotCrossMarginTradeRepay = Entry('v5/spot-cross-margin-trade/repay', 'private', 'POST', {'cost': 2.5})
|
285
294
|
private_post_v5_spot_cross_margin_trade_switch = privatePostV5SpotCrossMarginTradeSwitch = Entry('v5/spot-cross-margin-trade/switch', 'private', 'POST', {'cost': 2.5})
|
295
|
+
private_post_v5_crypto_loan_borrow = privatePostV5CryptoLoanBorrow = Entry('v5/crypto-loan/borrow', 'private', 'POST', {'cost': 5})
|
296
|
+
private_post_v5_crypto_loan_repay = privatePostV5CryptoLoanRepay = Entry('v5/crypto-loan/repay', 'private', 'POST', {'cost': 5})
|
297
|
+
private_post_v5_crypto_loan_adjust_ltv = privatePostV5CryptoLoanAdjustLtv = Entry('v5/crypto-loan/adjust-ltv', 'private', 'POST', {'cost': 5})
|
286
298
|
private_post_v5_ins_loan_association_uid = privatePostV5InsLoanAssociationUid = Entry('v5/ins-loan/association-uid', 'private', 'POST', {'cost': 5})
|
287
299
|
private_post_v5_lending_purchase = privatePostV5LendingPurchase = Entry('v5/lending/purchase', 'private', 'POST', {'cost': 5})
|
288
300
|
private_post_v5_lending_redeem = privatePostV5LendingRedeem = Entry('v5/lending/redeem', 'private', 'POST', {'cost': 5})
|
@@ -290,3 +302,6 @@ class ImplicitAPI:
|
|
290
302
|
private_post_v5_account_set_collateral_switch = privatePostV5AccountSetCollateralSwitch = Entry('v5/account/set-collateral-switch', 'private', 'POST', {'cost': 5})
|
291
303
|
private_post_v5_account_set_collateral_switch_batch = privatePostV5AccountSetCollateralSwitchBatch = Entry('v5/account/set-collateral-switch-batch', 'private', 'POST', {'cost': 5})
|
292
304
|
private_post_v5_account_demo_apply_money = privatePostV5AccountDemoApplyMoney = Entry('v5/account/demo-apply-money', 'private', 'POST', {'cost': 5})
|
305
|
+
private_post_v5_broker_award_info = privatePostV5BrokerAwardInfo = Entry('v5/broker/award/info', 'private', 'POST', {'cost': 5})
|
306
|
+
private_post_v5_broker_award_distribute_award = privatePostV5BrokerAwardDistributeAward = Entry('v5/broker/award/distribute-award', 'private', 'POST', {'cost': 5})
|
307
|
+
private_post_v5_broker_award_distribution_record = privatePostV5BrokerAwardDistributionRecord = Entry('v5/broker/award/distribution-record', 'private', 'POST', {'cost': 5})
|
ccxt/abstract/defx.py
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
from ccxt.base.types import Entry
|
2
|
+
|
3
|
+
|
4
|
+
class ImplicitAPI:
|
5
|
+
v1_public_get_healthcheck_ping = v1PublicGetHealthcheckPing = Entry('healthcheck/ping', ['v1', 'public'], 'GET', {'cost': 1})
|
6
|
+
v1_public_get_symbols_symbol_ohlc = v1PublicGetSymbolsSymbolOhlc = Entry('symbols/{symbol}/ohlc', ['v1', 'public'], 'GET', {'cost': 1})
|
7
|
+
v1_public_get_symbols_symbol_trades = v1PublicGetSymbolsSymbolTrades = Entry('symbols/{symbol}/trades', ['v1', 'public'], 'GET', {'cost': 1})
|
8
|
+
v1_public_get_symbols_symbol_prices = v1PublicGetSymbolsSymbolPrices = Entry('symbols/{symbol}/prices', ['v1', 'public'], 'GET', {'cost': 1})
|
9
|
+
v1_public_get_symbols_symbol_ticker_24hr = v1PublicGetSymbolsSymbolTicker24hr = Entry('symbols/{symbol}/ticker/24hr', ['v1', 'public'], 'GET', {'cost': 1})
|
10
|
+
v1_public_get_symbols_symbol_depth_level_slab = v1PublicGetSymbolsSymbolDepthLevelSlab = Entry('symbols/{symbol}/depth/{level}/{slab}', ['v1', 'public'], 'GET', {'cost': 1})
|
11
|
+
v1_public_get_ticker_24hragg = v1PublicGetTicker24HrAgg = Entry('ticker/24HrAgg', ['v1', 'public'], 'GET', {'cost': 1})
|
12
|
+
v1_public_get_c_markets = v1PublicGetCMarkets = Entry('c/markets', ['v1', 'public'], 'GET', {'cost': 1})
|
13
|
+
v1_public_get_c_markets_metadata = v1PublicGetCMarketsMetadata = Entry('c/markets/metadata', ['v1', 'public'], 'GET', {'cost': 1})
|
14
|
+
v1_public_get_analytics_market_stats_newusers = v1PublicGetAnalyticsMarketStatsNewUsers = Entry('analytics/market/stats/newUsers', ['v1', 'public'], 'GET', {'cost': 1})
|
15
|
+
v1_public_get_analytics_market_stats_tvl = v1PublicGetAnalyticsMarketStatsTvl = Entry('analytics/market/stats/tvl', ['v1', 'public'], 'GET', {'cost': 1})
|
16
|
+
v1_public_get_analytics_market_stats_volumebyinstrument = v1PublicGetAnalyticsMarketStatsVolumeByInstrument = Entry('analytics/market/stats/volumeByInstrument', ['v1', 'public'], 'GET', {'cost': 1})
|
17
|
+
v1_public_get_analytics_market_stats_liquidation = v1PublicGetAnalyticsMarketStatsLiquidation = Entry('analytics/market/stats/liquidation', ['v1', 'public'], 'GET', {'cost': 1})
|
18
|
+
v1_public_get_analytics_market_stats_totalvolume = v1PublicGetAnalyticsMarketStatsTotalVolume = Entry('analytics/market/stats/totalVolume', ['v1', 'public'], 'GET', {'cost': 1})
|
19
|
+
v1_public_get_analytics_market_stats_openinterest = v1PublicGetAnalyticsMarketStatsOpenInterest = Entry('analytics/market/stats/openInterest', ['v1', 'public'], 'GET', {'cost': 1})
|
20
|
+
v1_public_get_analytics_market_stats_totaltrades = v1PublicGetAnalyticsMarketStatsTotalTrades = Entry('analytics/market/stats/totalTrades', ['v1', 'public'], 'GET', {'cost': 1})
|
21
|
+
v1_public_get_analytics_market_stats_basis = v1PublicGetAnalyticsMarketStatsBasis = Entry('analytics/market/stats/basis', ['v1', 'public'], 'GET', {'cost': 1})
|
22
|
+
v1_public_get_analytics_market_stats_insurancefund = v1PublicGetAnalyticsMarketStatsInsuranceFund = Entry('analytics/market/stats/insuranceFund', ['v1', 'public'], 'GET', {'cost': 1})
|
23
|
+
v1_public_get_analytics_market_stats_longandshortratio = v1PublicGetAnalyticsMarketStatsLongAndShortRatio = Entry('analytics/market/stats/longAndShortRatio', ['v1', 'public'], 'GET', {'cost': 1})
|
24
|
+
v1_public_get_analytics_market_stats_fundingrate = v1PublicGetAnalyticsMarketStatsFundingRate = Entry('analytics/market/stats/fundingRate', ['v1', 'public'], 'GET', {'cost': 1})
|
25
|
+
v1_public_get_analytics_market_overview = v1PublicGetAnalyticsMarketOverview = Entry('analytics/market/overview', ['v1', 'public'], 'GET', {'cost': 1})
|
26
|
+
v1_public_get_explorer_search = v1PublicGetExplorerSearch = Entry('explorer/search', ['v1', 'public'], 'GET', {'cost': 1})
|
27
|
+
v1_public_get_explorer_transactions = v1PublicGetExplorerTransactions = Entry('explorer/transactions', ['v1', 'public'], 'GET', {'cost': 1})
|
28
|
+
v1_public_get_explorer_blocks = v1PublicGetExplorerBlocks = Entry('explorer/blocks', ['v1', 'public'], 'GET', {'cost': 1})
|
29
|
+
v1_private_get_api_order_orderid = v1PrivateGetApiOrderOrderId = Entry('api/order/{orderId}', ['v1', 'private'], 'GET', {'cost': 1})
|
30
|
+
v1_private_get_api_orders = v1PrivateGetApiOrders = Entry('api/orders', ['v1', 'private'], 'GET', {'cost': 1})
|
31
|
+
v1_private_get_api_orders_oco_parentorderid = v1PrivateGetApiOrdersOcoParentOrderId = Entry('api/orders/oco/{parentOrderId}', ['v1', 'private'], 'GET', {'cost': 1})
|
32
|
+
v1_private_get_api_trades = v1PrivateGetApiTrades = Entry('api/trades', ['v1', 'private'], 'GET', {'cost': 1})
|
33
|
+
v1_private_get_api_position_active = v1PrivateGetApiPositionActive = Entry('api/position/active', ['v1', 'private'], 'GET', {'cost': 1})
|
34
|
+
v1_private_get_api_users_metadata_leverage = v1PrivateGetApiUsersMetadataLeverage = Entry('api/users/metadata/leverage', ['v1', 'private'], 'GET', {'cost': 1})
|
35
|
+
v1_private_get_api_users_metadata_feemultiplier = v1PrivateGetApiUsersMetadataFeeMultiplier = Entry('api/users/metadata/feeMultiplier', ['v1', 'private'], 'GET', {'cost': 1})
|
36
|
+
v1_private_get_api_users_metadata_slippage = v1PrivateGetApiUsersMetadataSlippage = Entry('api/users/metadata/slippage', ['v1', 'private'], 'GET', {'cost': 1})
|
37
|
+
v1_private_get_api_users_referral = v1PrivateGetApiUsersReferral = Entry('api/users/referral', ['v1', 'private'], 'GET', {'cost': 1})
|
38
|
+
v1_private_get_api_users_apikeys = v1PrivateGetApiUsersApikeys = Entry('api/users/apikeys', ['v1', 'private'], 'GET', {'cost': 1})
|
39
|
+
v1_private_get_connection_signature_message_evm = v1PrivateGetConnectionSignatureMessageEvm = Entry('connection-signature-message/evm', ['v1', 'private'], 'GET', {'cost': 1})
|
40
|
+
v1_private_get_api_users_profile_wallets = v1PrivateGetApiUsersProfileWallets = Entry('api/users/profile/wallets', ['v1', 'private'], 'GET', {'cost': 1})
|
41
|
+
v1_private_get_api_notifications = v1PrivateGetApiNotifications = Entry('api/notifications', ['v1', 'private'], 'GET', {'cost': 1})
|
42
|
+
v1_private_get_api_wallet_balance = v1PrivateGetApiWalletBalance = Entry('api/wallet/balance', ['v1', 'private'], 'GET', {'cost': 1})
|
43
|
+
v1_private_get_api_wallet_transactions = v1PrivateGetApiWalletTransactions = Entry('api/wallet/transactions', ['v1', 'private'], 'GET', {'cost': 1})
|
44
|
+
v1_private_get_api_analytics_user_overview = v1PrivateGetApiAnalyticsUserOverview = Entry('api/analytics/user/overview', ['v1', 'private'], 'GET', {'cost': 1})
|
45
|
+
v1_private_get_api_analytics_user_pnl = v1PrivateGetApiAnalyticsUserPnl = Entry('api/analytics/user/pnl', ['v1', 'private'], 'GET', {'cost': 1})
|
46
|
+
v1_private_get_api_analytics_points_overview = v1PrivateGetApiAnalyticsPointsOverview = Entry('api/analytics/points/overview', ['v1', 'private'], 'GET', {'cost': 1})
|
47
|
+
v1_private_get_api_analytics_points_history = v1PrivateGetApiAnalyticsPointsHistory = Entry('api/analytics/points/history', ['v1', 'private'], 'GET', {'cost': 1})
|
48
|
+
v1_private_post_api_order = v1PrivatePostApiOrder = Entry('api/order', ['v1', 'private'], 'POST', {'cost': 1})
|
49
|
+
v1_private_post_api_position_oco = v1PrivatePostApiPositionOco = Entry('api/position/oco', ['v1', 'private'], 'POST', {'cost': 1})
|
50
|
+
v1_private_post_api_users_socket_listenkeys = v1PrivatePostApiUsersSocketListenKeys = Entry('api/users/socket/listenKeys', ['v1', 'private'], 'POST', {'cost': 1})
|
51
|
+
v1_private_post_api_users_metadata_leverage = v1PrivatePostApiUsersMetadataLeverage = Entry('api/users/metadata/leverage', ['v1', 'private'], 'POST', {'cost': 1})
|
52
|
+
v1_private_post_api_users_metadata_feemultiplier = v1PrivatePostApiUsersMetadataFeeMultiplier = Entry('api/users/metadata/feeMultiplier', ['v1', 'private'], 'POST', {'cost': 1})
|
53
|
+
v1_private_post_api_users_metadata_slippage = v1PrivatePostApiUsersMetadataSlippage = Entry('api/users/metadata/slippage', ['v1', 'private'], 'POST', {'cost': 1})
|
54
|
+
v1_private_post_api_users_referral_recordreferralsignup = v1PrivatePostApiUsersReferralRecordReferralSignup = Entry('api/users/referral/recordReferralSignup', ['v1', 'private'], 'POST', {'cost': 1})
|
55
|
+
v1_private_post_api_users_apikeys = v1PrivatePostApiUsersApikeys = Entry('api/users/apikeys', ['v1', 'private'], 'POST', {'cost': 1})
|
56
|
+
v1_private_post_api_users_profile_wallets = v1PrivatePostApiUsersProfileWallets = Entry('api/users/profile/wallets', ['v1', 'private'], 'POST', {'cost': 1})
|
57
|
+
v1_private_post_api_transfers_withdrawal = v1PrivatePostApiTransfersWithdrawal = Entry('api/transfers/withdrawal', ['v1', 'private'], 'POST', {'cost': 1})
|
58
|
+
v1_private_post_api_transfers_bridge_withdrawal = v1PrivatePostApiTransfersBridgeWithdrawal = Entry('api/transfers/bridge/withdrawal', ['v1', 'private'], 'POST', {'cost': 1})
|
59
|
+
v1_private_put_api_position_updatepositionmargin = v1PrivatePutApiPositionUpdatePositionMargin = Entry('api/position/updatePositionMargin', ['v1', 'private'], 'PUT', {'cost': 1})
|
60
|
+
v1_private_put_api_users_socket_listenkeys_listenkey = v1PrivatePutApiUsersSocketListenKeysListenKey = Entry('api/users/socket/listenKeys/{listenKey}', ['v1', 'private'], 'PUT', {'cost': 1})
|
61
|
+
v1_private_put_api_users_apikeys_accesskey_status = v1PrivatePutApiUsersApikeysAccessKeyStatus = Entry('api/users/apikeys/{accessKey}/status', ['v1', 'private'], 'PUT', {'cost': 1})
|
62
|
+
v1_private_put_api_users_referral = v1PrivatePutApiUsersReferral = Entry('api/users/referral', ['v1', 'private'], 'PUT', {'cost': 1})
|
63
|
+
v1_private_patch_api_users_apikeys_accesskey = v1PrivatePatchApiUsersApikeysAccessKey = Entry('api/users/apikeys/{accessKey}', ['v1', 'private'], 'PATCH', {'cost': 1})
|
64
|
+
v1_private_delete_api_orders_allopen = v1PrivateDeleteApiOrdersAllOpen = Entry('api/orders/allOpen', ['v1', 'private'], 'DELETE', {'cost': 1})
|
65
|
+
v1_private_delete_api_order_orderid = v1PrivateDeleteApiOrderOrderId = Entry('api/order/{orderId}', ['v1', 'private'], 'DELETE', {'cost': 1})
|
66
|
+
v1_private_delete_api_position_positionid = v1PrivateDeleteApiPositionPositionId = Entry('api/position/{positionId}', ['v1', 'private'], 'DELETE', {'cost': 1})
|
67
|
+
v1_private_delete_api_position_all = v1PrivateDeleteApiPositionAll = Entry('api/position/all', ['v1', 'private'], 'DELETE', {'cost': 1})
|
68
|
+
v1_private_delete_api_users_socket_listenkeys_listenkey = v1PrivateDeleteApiUsersSocketListenKeysListenKey = Entry('api/users/socket/listenKeys/{listenKey}', ['v1', 'private'], 'DELETE', {'cost': 1})
|
69
|
+
v1_private_delete_api_users_apikeys_accesskey = v1PrivateDeleteApiUsersApikeysAccessKey = Entry('api/users/apikeys/{accessKey}', ['v1', 'private'], 'DELETE', {'cost': 1})
|
ccxt/abstract/deribit.py
CHANGED
@@ -59,6 +59,7 @@ class ImplicitAPI:
|
|
59
59
|
private_get_enable_api_key = privateGetEnableApiKey = Entry('enable_api_key', 'private', 'GET', {'cost': 1})
|
60
60
|
private_get_get_access_log = privateGetGetAccessLog = Entry('get_access_log', 'private', 'GET', {'cost': 1})
|
61
61
|
private_get_get_account_summary = privateGetGetAccountSummary = Entry('get_account_summary', 'private', 'GET', {'cost': 1})
|
62
|
+
private_get_get_account_summaries = privateGetGetAccountSummaries = Entry('get_account_summaries', 'private', 'GET', {'cost': 1})
|
62
63
|
private_get_get_affiliate_program_info = privateGetGetAffiliateProgramInfo = Entry('get_affiliate_program_info', 'private', 'GET', {'cost': 1})
|
63
64
|
private_get_get_email_language = privateGetGetEmailLanguage = Entry('get_email_language', 'private', 'GET', {'cost': 1})
|
64
65
|
private_get_get_new_announcements = privateGetGetNewAnnouncements = Entry('get_new_announcements', 'private', 'GET', {'cost': 1})
|
ccxt/abstract/gate.py
CHANGED
@@ -32,6 +32,7 @@ class ImplicitAPI:
|
|
32
32
|
public_futures_get_settle_contract_stats = publicFuturesGetSettleContractStats = Entry('{settle}/contract_stats', ['public', 'futures'], 'GET', {'cost': 1})
|
33
33
|
public_futures_get_settle_index_constituents_index = publicFuturesGetSettleIndexConstituentsIndex = Entry('{settle}/index_constituents/{index}', ['public', 'futures'], 'GET', {'cost': 1})
|
34
34
|
public_futures_get_settle_liq_orders = publicFuturesGetSettleLiqOrders = Entry('{settle}/liq_orders', ['public', 'futures'], 'GET', {'cost': 1})
|
35
|
+
public_futures_get_settle_risk_limit_tiers = publicFuturesGetSettleRiskLimitTiers = Entry('{settle}/risk_limit_tiers', ['public', 'futures'], 'GET', {'cost': 1})
|
35
36
|
public_delivery_get_settle_contracts = publicDeliveryGetSettleContracts = Entry('{settle}/contracts', ['public', 'delivery'], 'GET', {'cost': 1})
|
36
37
|
public_delivery_get_settle_contracts_contract = publicDeliveryGetSettleContractsContract = Entry('{settle}/contracts/{contract}', ['public', 'delivery'], 'GET', {'cost': 1})
|
37
38
|
public_delivery_get_settle_order_book = publicDeliveryGetSettleOrderBook = Entry('{settle}/order_book', ['public', 'delivery'], 'GET', {'cost': 1})
|
@@ -54,11 +55,13 @@ class ImplicitAPI:
|
|
54
55
|
public_earn_get_uni_currencies = publicEarnGetUniCurrencies = Entry('uni/currencies', ['public', 'earn'], 'GET', {'cost': 1})
|
55
56
|
public_earn_get_uni_currencies_currency = publicEarnGetUniCurrenciesCurrency = Entry('uni/currencies/{currency}', ['public', 'earn'], 'GET', {'cost': 1})
|
56
57
|
private_withdrawals_post_withdrawals = privateWithdrawalsPostWithdrawals = Entry('withdrawals', ['private', 'withdrawals'], 'POST', {'cost': 20})
|
58
|
+
private_withdrawals_post_push = privateWithdrawalsPostPush = Entry('push', ['private', 'withdrawals'], 'POST', {'cost': 1})
|
57
59
|
private_withdrawals_delete_withdrawals_withdrawal_id = privateWithdrawalsDeleteWithdrawalsWithdrawalId = Entry('withdrawals/{withdrawal_id}', ['private', 'withdrawals'], 'DELETE', {'cost': 1})
|
58
60
|
private_wallet_get_deposit_address = privateWalletGetDepositAddress = Entry('deposit_address', ['private', 'wallet'], 'GET', {'cost': 1})
|
59
61
|
private_wallet_get_withdrawals = privateWalletGetWithdrawals = Entry('withdrawals', ['private', 'wallet'], 'GET', {'cost': 1})
|
60
62
|
private_wallet_get_deposits = privateWalletGetDeposits = Entry('deposits', ['private', 'wallet'], 'GET', {'cost': 1})
|
61
63
|
private_wallet_get_sub_account_transfers = privateWalletGetSubAccountTransfers = Entry('sub_account_transfers', ['private', 'wallet'], 'GET', {'cost': 1})
|
64
|
+
private_wallet_get_order_status = privateWalletGetOrderStatus = Entry('order_status', ['private', 'wallet'], 'GET', {'cost': 1})
|
62
65
|
private_wallet_get_withdraw_status = privateWalletGetWithdrawStatus = Entry('withdraw_status', ['private', 'wallet'], 'GET', {'cost': 1})
|
63
66
|
private_wallet_get_sub_account_balances = privateWalletGetSubAccountBalances = Entry('sub_account_balances', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
64
67
|
private_wallet_get_sub_account_margin_balances = privateWalletGetSubAccountMarginBalances = Entry('sub_account_margin_balances', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
@@ -69,6 +72,7 @@ class ImplicitAPI:
|
|
69
72
|
private_wallet_get_total_balance = privateWalletGetTotalBalance = Entry('total_balance', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
70
73
|
private_wallet_get_small_balance = privateWalletGetSmallBalance = Entry('small_balance', ['private', 'wallet'], 'GET', {'cost': 1})
|
71
74
|
private_wallet_get_small_balance_history = privateWalletGetSmallBalanceHistory = Entry('small_balance_history', ['private', 'wallet'], 'GET', {'cost': 1})
|
75
|
+
private_wallet_get_push = privateWalletGetPush = Entry('push', ['private', 'wallet'], 'GET', {'cost': 1})
|
72
76
|
private_wallet_post_transfers = privateWalletPostTransfers = Entry('transfers', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
73
77
|
private_wallet_post_sub_account_transfers = privateWalletPostSubAccountTransfers = Entry('sub_account_transfers', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
74
78
|
private_wallet_post_sub_account_to_sub_account = privateWalletPostSubAccountToSubAccount = Entry('sub_account_to_sub_account', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
@@ -95,9 +99,12 @@ class ImplicitAPI:
|
|
95
99
|
private_unified_get_risk_units = privateUnifiedGetRiskUnits = Entry('risk_units', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
96
100
|
private_unified_get_unified_mode = privateUnifiedGetUnifiedMode = Entry('unified_mode', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
97
101
|
private_unified_get_loan_margin_tiers = privateUnifiedGetLoanMarginTiers = Entry('loan_margin_tiers', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
102
|
+
private_unified_get_leverage_user_currency_config = privateUnifiedGetLeverageUserCurrencyConfig = Entry('leverage/user_currency_config', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
103
|
+
private_unified_get_leverage_user_currency_setting = privateUnifiedGetLeverageUserCurrencySetting = Entry('leverage/user_currency_setting', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
98
104
|
private_unified_post_account_mode = privateUnifiedPostAccountMode = Entry('account_mode', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
99
105
|
private_unified_post_loans = privateUnifiedPostLoans = Entry('loans', ['private', 'unified'], 'POST', {'cost': 13.333333333333334})
|
100
106
|
private_unified_post_portfolio_calculator = privateUnifiedPostPortfolioCalculator = Entry('portfolio_calculator', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
107
|
+
private_unified_post_leverage_user_currency_setting = privateUnifiedPostLeverageUserCurrencySetting = Entry('leverage/user_currency_setting', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
101
108
|
private_unified_put_unified_mode = privateUnifiedPutUnifiedMode = Entry('unified_mode', ['private', 'unified'], 'PUT', {'cost': 1.3333333333333333})
|
102
109
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
103
110
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -226,7 +233,11 @@ class ImplicitAPI:
|
|
226
233
|
private_options_get_orders = privateOptionsGetOrders = Entry('orders', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
227
234
|
private_options_get_orders_order_id = privateOptionsGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
228
235
|
private_options_get_my_trades = privateOptionsGetMyTrades = Entry('my_trades', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
236
|
+
private_options_get_mmp = privateOptionsGetMmp = Entry('mmp', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
229
237
|
private_options_post_orders = privateOptionsPostOrders = Entry('orders', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
238
|
+
private_options_post_countdown_cancel_all = privateOptionsPostCountdownCancelAll = Entry('countdown_cancel_all', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
239
|
+
private_options_post_mmp = privateOptionsPostMmp = Entry('mmp', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
240
|
+
private_options_post_mmp_reset = privateOptionsPostMmpReset = Entry('mmp/reset', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
230
241
|
private_options_delete_orders = privateOptionsDeleteOrders = Entry('orders', ['private', 'options'], 'DELETE', {'cost': 1.3333333333333333})
|
231
242
|
private_options_delete_orders_order_id = privateOptionsDeleteOrdersOrderId = Entry('orders/{order_id}', ['private', 'options'], 'DELETE', {'cost': 1.3333333333333333})
|
232
243
|
private_earn_get_uni_currencies = privateEarnGetUniCurrencies = Entry('uni/currencies', ['private', 'earn'], 'GET', {'cost': 1.3333333333333333})
|
@@ -254,6 +265,7 @@ class ImplicitAPI:
|
|
254
265
|
private_loan_get_multi_collateral_currencies = privateLoanGetMultiCollateralCurrencies = Entry('multi_collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
255
266
|
private_loan_get_multi_collateral_ltv = privateLoanGetMultiCollateralLtv = Entry('multi_collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
256
267
|
private_loan_get_multi_collateral_fixed_rate = privateLoanGetMultiCollateralFixedRate = Entry('multi_collateral/fixed_rate', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
268
|
+
private_loan_get_multi_collateral_current_rate = privateLoanGetMultiCollateralCurrentRate = Entry('multi_collateral/current_rate', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
257
269
|
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
258
270
|
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
259
271
|
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
@@ -261,8 +273,10 @@ class ImplicitAPI:
|
|
261
273
|
private_loan_post_multi_collateral_repay = privateLoanPostMultiCollateralRepay = Entry('multi_collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
262
274
|
private_loan_post_multi_collateral_mortgage = privateLoanPostMultiCollateralMortgage = Entry('multi_collateral/mortgage', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
263
275
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
276
|
+
private_account_get_rate_limit = privateAccountGetRateLimit = Entry('rate_limit', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
264
277
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
265
278
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
279
|
+
private_account_get_stp_groups_debit_fee = privateAccountGetStpGroupsDebitFee = Entry('stp_groups/debit_fee', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
266
280
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.3333333333333333})
|
267
281
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.3333333333333333})
|
268
282
|
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.3333333333333333})
|
ccxt/abstract/gateio.py
CHANGED
@@ -32,6 +32,7 @@ class ImplicitAPI:
|
|
32
32
|
public_futures_get_settle_contract_stats = publicFuturesGetSettleContractStats = Entry('{settle}/contract_stats', ['public', 'futures'], 'GET', {'cost': 1})
|
33
33
|
public_futures_get_settle_index_constituents_index = publicFuturesGetSettleIndexConstituentsIndex = Entry('{settle}/index_constituents/{index}', ['public', 'futures'], 'GET', {'cost': 1})
|
34
34
|
public_futures_get_settle_liq_orders = publicFuturesGetSettleLiqOrders = Entry('{settle}/liq_orders', ['public', 'futures'], 'GET', {'cost': 1})
|
35
|
+
public_futures_get_settle_risk_limit_tiers = publicFuturesGetSettleRiskLimitTiers = Entry('{settle}/risk_limit_tiers', ['public', 'futures'], 'GET', {'cost': 1})
|
35
36
|
public_delivery_get_settle_contracts = publicDeliveryGetSettleContracts = Entry('{settle}/contracts', ['public', 'delivery'], 'GET', {'cost': 1})
|
36
37
|
public_delivery_get_settle_contracts_contract = publicDeliveryGetSettleContractsContract = Entry('{settle}/contracts/{contract}', ['public', 'delivery'], 'GET', {'cost': 1})
|
37
38
|
public_delivery_get_settle_order_book = publicDeliveryGetSettleOrderBook = Entry('{settle}/order_book', ['public', 'delivery'], 'GET', {'cost': 1})
|
@@ -54,11 +55,13 @@ class ImplicitAPI:
|
|
54
55
|
public_earn_get_uni_currencies = publicEarnGetUniCurrencies = Entry('uni/currencies', ['public', 'earn'], 'GET', {'cost': 1})
|
55
56
|
public_earn_get_uni_currencies_currency = publicEarnGetUniCurrenciesCurrency = Entry('uni/currencies/{currency}', ['public', 'earn'], 'GET', {'cost': 1})
|
56
57
|
private_withdrawals_post_withdrawals = privateWithdrawalsPostWithdrawals = Entry('withdrawals', ['private', 'withdrawals'], 'POST', {'cost': 20})
|
58
|
+
private_withdrawals_post_push = privateWithdrawalsPostPush = Entry('push', ['private', 'withdrawals'], 'POST', {'cost': 1})
|
57
59
|
private_withdrawals_delete_withdrawals_withdrawal_id = privateWithdrawalsDeleteWithdrawalsWithdrawalId = Entry('withdrawals/{withdrawal_id}', ['private', 'withdrawals'], 'DELETE', {'cost': 1})
|
58
60
|
private_wallet_get_deposit_address = privateWalletGetDepositAddress = Entry('deposit_address', ['private', 'wallet'], 'GET', {'cost': 1})
|
59
61
|
private_wallet_get_withdrawals = privateWalletGetWithdrawals = Entry('withdrawals', ['private', 'wallet'], 'GET', {'cost': 1})
|
60
62
|
private_wallet_get_deposits = privateWalletGetDeposits = Entry('deposits', ['private', 'wallet'], 'GET', {'cost': 1})
|
61
63
|
private_wallet_get_sub_account_transfers = privateWalletGetSubAccountTransfers = Entry('sub_account_transfers', ['private', 'wallet'], 'GET', {'cost': 1})
|
64
|
+
private_wallet_get_order_status = privateWalletGetOrderStatus = Entry('order_status', ['private', 'wallet'], 'GET', {'cost': 1})
|
62
65
|
private_wallet_get_withdraw_status = privateWalletGetWithdrawStatus = Entry('withdraw_status', ['private', 'wallet'], 'GET', {'cost': 1})
|
63
66
|
private_wallet_get_sub_account_balances = privateWalletGetSubAccountBalances = Entry('sub_account_balances', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
64
67
|
private_wallet_get_sub_account_margin_balances = privateWalletGetSubAccountMarginBalances = Entry('sub_account_margin_balances', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
@@ -69,6 +72,7 @@ class ImplicitAPI:
|
|
69
72
|
private_wallet_get_total_balance = privateWalletGetTotalBalance = Entry('total_balance', ['private', 'wallet'], 'GET', {'cost': 2.5})
|
70
73
|
private_wallet_get_small_balance = privateWalletGetSmallBalance = Entry('small_balance', ['private', 'wallet'], 'GET', {'cost': 1})
|
71
74
|
private_wallet_get_small_balance_history = privateWalletGetSmallBalanceHistory = Entry('small_balance_history', ['private', 'wallet'], 'GET', {'cost': 1})
|
75
|
+
private_wallet_get_push = privateWalletGetPush = Entry('push', ['private', 'wallet'], 'GET', {'cost': 1})
|
72
76
|
private_wallet_post_transfers = privateWalletPostTransfers = Entry('transfers', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
73
77
|
private_wallet_post_sub_account_transfers = privateWalletPostSubAccountTransfers = Entry('sub_account_transfers', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
74
78
|
private_wallet_post_sub_account_to_sub_account = privateWalletPostSubAccountToSubAccount = Entry('sub_account_to_sub_account', ['private', 'wallet'], 'POST', {'cost': 2.5})
|
@@ -95,9 +99,12 @@ class ImplicitAPI:
|
|
95
99
|
private_unified_get_risk_units = privateUnifiedGetRiskUnits = Entry('risk_units', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
96
100
|
private_unified_get_unified_mode = privateUnifiedGetUnifiedMode = Entry('unified_mode', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
97
101
|
private_unified_get_loan_margin_tiers = privateUnifiedGetLoanMarginTiers = Entry('loan_margin_tiers', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
102
|
+
private_unified_get_leverage_user_currency_config = privateUnifiedGetLeverageUserCurrencyConfig = Entry('leverage/user_currency_config', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
103
|
+
private_unified_get_leverage_user_currency_setting = privateUnifiedGetLeverageUserCurrencySetting = Entry('leverage/user_currency_setting', ['private', 'unified'], 'GET', {'cost': 1.3333333333333333})
|
98
104
|
private_unified_post_account_mode = privateUnifiedPostAccountMode = Entry('account_mode', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
99
105
|
private_unified_post_loans = privateUnifiedPostLoans = Entry('loans', ['private', 'unified'], 'POST', {'cost': 13.333333333333334})
|
100
106
|
private_unified_post_portfolio_calculator = privateUnifiedPostPortfolioCalculator = Entry('portfolio_calculator', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
107
|
+
private_unified_post_leverage_user_currency_setting = privateUnifiedPostLeverageUserCurrencySetting = Entry('leverage/user_currency_setting', ['private', 'unified'], 'POST', {'cost': 1.3333333333333333})
|
101
108
|
private_unified_put_unified_mode = privateUnifiedPutUnifiedMode = Entry('unified_mode', ['private', 'unified'], 'PUT', {'cost': 1.3333333333333333})
|
102
109
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
103
110
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -226,7 +233,11 @@ class ImplicitAPI:
|
|
226
233
|
private_options_get_orders = privateOptionsGetOrders = Entry('orders', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
227
234
|
private_options_get_orders_order_id = privateOptionsGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
228
235
|
private_options_get_my_trades = privateOptionsGetMyTrades = Entry('my_trades', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
236
|
+
private_options_get_mmp = privateOptionsGetMmp = Entry('mmp', ['private', 'options'], 'GET', {'cost': 1.3333333333333333})
|
229
237
|
private_options_post_orders = privateOptionsPostOrders = Entry('orders', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
238
|
+
private_options_post_countdown_cancel_all = privateOptionsPostCountdownCancelAll = Entry('countdown_cancel_all', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
239
|
+
private_options_post_mmp = privateOptionsPostMmp = Entry('mmp', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
240
|
+
private_options_post_mmp_reset = privateOptionsPostMmpReset = Entry('mmp/reset', ['private', 'options'], 'POST', {'cost': 1.3333333333333333})
|
230
241
|
private_options_delete_orders = privateOptionsDeleteOrders = Entry('orders', ['private', 'options'], 'DELETE', {'cost': 1.3333333333333333})
|
231
242
|
private_options_delete_orders_order_id = privateOptionsDeleteOrdersOrderId = Entry('orders/{order_id}', ['private', 'options'], 'DELETE', {'cost': 1.3333333333333333})
|
232
243
|
private_earn_get_uni_currencies = privateEarnGetUniCurrencies = Entry('uni/currencies', ['private', 'earn'], 'GET', {'cost': 1.3333333333333333})
|
@@ -254,6 +265,7 @@ class ImplicitAPI:
|
|
254
265
|
private_loan_get_multi_collateral_currencies = privateLoanGetMultiCollateralCurrencies = Entry('multi_collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
255
266
|
private_loan_get_multi_collateral_ltv = privateLoanGetMultiCollateralLtv = Entry('multi_collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
256
267
|
private_loan_get_multi_collateral_fixed_rate = privateLoanGetMultiCollateralFixedRate = Entry('multi_collateral/fixed_rate', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
268
|
+
private_loan_get_multi_collateral_current_rate = privateLoanGetMultiCollateralCurrentRate = Entry('multi_collateral/current_rate', ['private', 'loan'], 'GET', {'cost': 1.3333333333333333})
|
257
269
|
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
258
270
|
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
259
271
|
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
@@ -261,8 +273,10 @@ class ImplicitAPI:
|
|
261
273
|
private_loan_post_multi_collateral_repay = privateLoanPostMultiCollateralRepay = Entry('multi_collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
262
274
|
private_loan_post_multi_collateral_mortgage = privateLoanPostMultiCollateralMortgage = Entry('multi_collateral/mortgage', ['private', 'loan'], 'POST', {'cost': 1.3333333333333333})
|
263
275
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
276
|
+
private_account_get_rate_limit = privateAccountGetRateLimit = Entry('rate_limit', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
264
277
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
265
278
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
279
|
+
private_account_get_stp_groups_debit_fee = privateAccountGetStpGroupsDebitFee = Entry('stp_groups/debit_fee', ['private', 'account'], 'GET', {'cost': 1.3333333333333333})
|
266
280
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.3333333333333333})
|
267
281
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.3333333333333333})
|
268
282
|
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.3333333333333333})
|
ccxt/async_support/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.36'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -115,6 +115,7 @@ from ccxt.async_support.coinsph import coinsph
|
|
115
115
|
from ccxt.async_support.coinspot import coinspot # noqa: F401
|
116
116
|
from ccxt.async_support.cryptocom import cryptocom # noqa: F401
|
117
117
|
from ccxt.async_support.currencycom import currencycom # noqa: F401
|
118
|
+
from ccxt.async_support.defx import defx # noqa: F401
|
118
119
|
from ccxt.async_support.delta import delta # noqa: F401
|
119
120
|
from ccxt.async_support.deribit import deribit # noqa: F401
|
120
121
|
from ccxt.async_support.digifinex import digifinex # noqa: F401
|
@@ -227,6 +228,7 @@ exchanges = [
|
|
227
228
|
'coinspot',
|
228
229
|
'cryptocom',
|
229
230
|
'currencycom',
|
231
|
+
'defx',
|
230
232
|
'delta',
|
231
233
|
'deribit',
|
232
234
|
'digifinex',
|
ccxt/async_support/bitfinex2.py
CHANGED
@@ -16,7 +16,6 @@ from ccxt.base.errors import ArgumentsRequired
|
|
16
16
|
from ccxt.base.errors import BadRequest
|
17
17
|
from ccxt.base.errors import BadSymbol
|
18
18
|
from ccxt.base.errors import InsufficientFunds
|
19
|
-
from ccxt.base.errors import InvalidAddress
|
20
19
|
from ccxt.base.errors import InvalidOrder
|
21
20
|
from ccxt.base.errors import OrderNotFound
|
22
21
|
from ccxt.base.errors import NotSupported
|
@@ -433,12 +432,10 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
433
432
|
'temporarily_unavailable': ExchangeNotAvailable,
|
434
433
|
},
|
435
434
|
'broad': {
|
436
|
-
'address': InvalidAddress,
|
437
435
|
'available balance is only': InsufficientFunds,
|
438
436
|
'not enough exchange balance': InsufficientFunds,
|
439
437
|
'Order not found': OrderNotFound,
|
440
438
|
'symbol: invalid': BadSymbol,
|
441
|
-
'Invalid order': InvalidOrder,
|
442
439
|
},
|
443
440
|
},
|
444
441
|
'commonCurrencies': {
|
@@ -782,7 +779,10 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
782
779
|
name = self.safe_string(label, 1)
|
783
780
|
pool = self.safe_value(indexed['pool'], id, [])
|
784
781
|
rawType = self.safe_string(pool, 1)
|
785
|
-
|
782
|
+
isCryptoCoin = (rawType is not None) or (id in indexed['explorer']) # "hacky" solution
|
783
|
+
type = None
|
784
|
+
if isCryptoCoin:
|
785
|
+
type = 'crypto'
|
786
786
|
feeValues = self.safe_value(indexed['fees'], id, [])
|
787
787
|
fees = self.safe_value(feeValues, 1, [])
|
788
788
|
fee = self.safe_number(fees, 1)
|
@@ -1681,7 +1681,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1681
1681
|
raise ExchangeError(self.id + ' ' + response[6] + ': ' + errorText + '(#' + errorCode + ')')
|
1682
1682
|
orders = self.safe_list(response, 4, [])
|
1683
1683
|
order = self.safe_list(orders, 0)
|
1684
|
-
|
1684
|
+
newOrder = {'result': order}
|
1685
|
+
return self.parse_order(newOrder, market)
|
1685
1686
|
|
1686
1687
|
async def create_orders(self, orders: List[OrderRequest], params={}):
|
1687
1688
|
"""
|
@@ -1777,6 +1778,9 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1777
1778
|
await self.load_markets()
|
1778
1779
|
cid = self.safe_value_2(params, 'cid', 'clientOrderId') # client order id
|
1779
1780
|
request = None
|
1781
|
+
market = None
|
1782
|
+
if symbol is not None:
|
1783
|
+
market = self.market(symbol)
|
1780
1784
|
if cid is not None:
|
1781
1785
|
cidDate = self.safe_value(params, 'cidDate') # client order id date
|
1782
1786
|
if cidDate is None:
|
@@ -1792,8 +1796,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1792
1796
|
}
|
1793
1797
|
response = await self.privatePostAuthWOrderCancel(self.extend(request, params))
|
1794
1798
|
order = self.safe_value(response, 4)
|
1795
|
-
|
1796
|
-
return self.parse_order(
|
1799
|
+
newOrder = {'result': order}
|
1800
|
+
return self.parse_order(newOrder, market)
|
1797
1801
|
|
1798
1802
|
async def cancel_orders(self, ids, symbol: Str = None, params={}):
|
1799
1803
|
"""
|
@@ -2294,6 +2298,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
2294
2298
|
status = 'failed'
|
2295
2299
|
tag = self.safe_string(data, 3)
|
2296
2300
|
type = 'withdrawal'
|
2301
|
+
networkId = self.safe_string(data, 2)
|
2302
|
+
network = self.network_id_to_code(networkId.upper()) # withdraw returns in lowercase
|
2297
2303
|
elif transactionLength == 22:
|
2298
2304
|
id = self.safe_string(transaction, 0)
|
2299
2305
|
currencyId = self.safe_string(transaction, 1)
|
@@ -2590,10 +2596,7 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
2590
2596
|
text = self.safe_string(response, 7)
|
2591
2597
|
if text != 'success':
|
2592
2598
|
self.throw_broadly_matched_exception(self.exceptions['broad'], text, text)
|
2593
|
-
|
2594
|
-
return self.extend(transaction, {
|
2595
|
-
'address': address,
|
2596
|
-
})
|
2599
|
+
return self.parse_transaction(response, currency)
|
2597
2600
|
|
2598
2601
|
async def fetch_positions(self, symbols: Strings = None, params={}):
|
2599
2602
|
"""
|
@@ -3502,7 +3505,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
3502
3505
|
# ]
|
3503
3506
|
#
|
3504
3507
|
order = self.safe_list(response, 0)
|
3505
|
-
|
3508
|
+
newOrder = {'result': order}
|
3509
|
+
return self.parse_order(newOrder, market)
|
3506
3510
|
|
3507
3511
|
async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
3508
3512
|
"""
|
@@ -3617,4 +3621,5 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
3617
3621
|
errorText = response[7]
|
3618
3622
|
raise ExchangeError(self.id + ' ' + response[6] + ': ' + errorText + '(#' + errorCode + ')')
|
3619
3623
|
order = self.safe_list(response, 4, [])
|
3620
|
-
|
3624
|
+
newOrder = {'result': order}
|
3625
|
+
return self.parse_order(newOrder, market)
|
ccxt/async_support/bitmex.py
CHANGED
@@ -286,6 +286,108 @@ class bitmex(Exchange, ImplicitAPI):
|
|
286
286
|
'SOL': 'sol',
|
287
287
|
'ADA': 'ada',
|
288
288
|
},
|
289
|
+
'features': {
|
290
|
+
'default': {
|
291
|
+
'sandbox': True,
|
292
|
+
'createOrder': {
|
293
|
+
'marginMode': True,
|
294
|
+
'triggerPrice': True,
|
295
|
+
'triggerPriceType': {
|
296
|
+
'last': True,
|
297
|
+
'mark': True,
|
298
|
+
},
|
299
|
+
'triggerDirection': True,
|
300
|
+
'stopLossPrice': False,
|
301
|
+
'takeProfitPrice': False,
|
302
|
+
'attachedStopLossTakeProfit': None,
|
303
|
+
'timeInForce': {
|
304
|
+
'IOC': True,
|
305
|
+
'FOK': True,
|
306
|
+
'PO': True,
|
307
|
+
'GTD': False,
|
308
|
+
},
|
309
|
+
'hedged': False,
|
310
|
+
'trailing': True,
|
311
|
+
'marketBuyRequiresPrice': False,
|
312
|
+
'marketBuyByCost': False,
|
313
|
+
# exchange-supported features
|
314
|
+
# 'selfTradePrevention': True,
|
315
|
+
# 'twap': False,
|
316
|
+
# 'iceberg': False,
|
317
|
+
# 'oco': False,
|
318
|
+
},
|
319
|
+
'createOrders': None,
|
320
|
+
'fetchMyTrades': {
|
321
|
+
'marginMode': False,
|
322
|
+
'limit': 500,
|
323
|
+
'daysBack': None,
|
324
|
+
'untilDays': 1000000,
|
325
|
+
},
|
326
|
+
'fetchOrder': {
|
327
|
+
'marginMode': False,
|
328
|
+
'trigger': False,
|
329
|
+
'trailing': False,
|
330
|
+
},
|
331
|
+
'fetchOpenOrders': {
|
332
|
+
'marginMode': False,
|
333
|
+
'limit': 500,
|
334
|
+
'trigger': False,
|
335
|
+
'trailing': False,
|
336
|
+
},
|
337
|
+
'fetchOrders': {
|
338
|
+
'marginMode': False,
|
339
|
+
'limit': 500,
|
340
|
+
'daysBack': None,
|
341
|
+
'untilDays': 1000000,
|
342
|
+
'trigger': False,
|
343
|
+
'trailing': False,
|
344
|
+
},
|
345
|
+
'fetchClosedOrders': {
|
346
|
+
'marginMode': False,
|
347
|
+
'limit': 500,
|
348
|
+
'daysBackClosed': None,
|
349
|
+
'daysBackCanceled': None,
|
350
|
+
'untilDays': 1000000,
|
351
|
+
'trigger': False,
|
352
|
+
'trailing': False,
|
353
|
+
},
|
354
|
+
'fetchOHLCV': {
|
355
|
+
'limit': 10000,
|
356
|
+
},
|
357
|
+
},
|
358
|
+
'spot': {
|
359
|
+
'extends': 'default',
|
360
|
+
'createOrder': {
|
361
|
+
'triggerPriceType': {
|
362
|
+
'index': False,
|
363
|
+
},
|
364
|
+
},
|
365
|
+
},
|
366
|
+
'forDeriv': {
|
367
|
+
'extends': 'default',
|
368
|
+
'createOrder': {
|
369
|
+
'triggerPriceType': {
|
370
|
+
'index': True,
|
371
|
+
},
|
372
|
+
},
|
373
|
+
},
|
374
|
+
'swap': {
|
375
|
+
'linear': {
|
376
|
+
'extends': 'forDeriv',
|
377
|
+
},
|
378
|
+
'inverse': {
|
379
|
+
'extends': 'forDeriv',
|
380
|
+
},
|
381
|
+
},
|
382
|
+
'future': {
|
383
|
+
'linear': {
|
384
|
+
'extends': 'forDeriv',
|
385
|
+
},
|
386
|
+
'inverse': {
|
387
|
+
'extends': 'forDeriv',
|
388
|
+
},
|
389
|
+
},
|
390
|
+
},
|
289
391
|
},
|
290
392
|
'commonCurrencies': {
|
291
393
|
'USDt': 'USDT',
|
@@ -991,7 +1093,7 @@ class bitmex(Exchange, ImplicitAPI):
|
|
991
1093
|
if since is not None:
|
992
1094
|
request['startTime'] = self.iso8601(since)
|
993
1095
|
if limit is not None:
|
994
|
-
request['count'] = limit
|
1096
|
+
request['count'] = min(500, limit)
|
995
1097
|
until = self.safe_integer_2(params, 'until', 'endTime')
|
996
1098
|
if until is not None:
|
997
1099
|
params = self.omit(params, ['until'])
|