ccxt 4.3.18__py2.py3-none-any.whl → 4.3.20__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/bitget.py +3 -0
- ccxt/abstract/bybit.py +1 -0
- ccxt/abstract/okx.py +1 -0
- ccxt/abstract/woofipro.py +119 -0
- ccxt/ace.py +1 -1
- ccxt/ascendex.py +7 -8
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/ace.py +1 -1
- ccxt/async_support/ascendex.py +7 -8
- ccxt/async_support/base/exchange.py +25 -2
- ccxt/async_support/bigone.py +4 -4
- ccxt/async_support/binance.py +9 -9
- ccxt/async_support/bingx.py +4 -4
- ccxt/async_support/bit2c.py +1 -1
- ccxt/async_support/bitbank.py +1 -1
- ccxt/async_support/bitbns.py +1 -1
- ccxt/async_support/bitfinex.py +28 -4
- ccxt/async_support/bitfinex2.py +62 -54
- ccxt/async_support/bitflyer.py +1 -1
- ccxt/async_support/bitget.py +11 -11
- ccxt/async_support/bithumb.py +1 -1
- ccxt/async_support/bitmart.py +8 -8
- ccxt/async_support/bitmex.py +2 -2
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +3 -3
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +3 -5
- ccxt/async_support/bitteam.py +1 -1
- ccxt/async_support/bitvavo.py +1 -1
- ccxt/async_support/bl3p.py +1 -1
- ccxt/async_support/blockchaincom.py +1 -1
- ccxt/async_support/blofin.py +3 -3
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/btcbox.py +1 -1
- ccxt/async_support/btcmarkets.py +1 -1
- ccxt/async_support/btcturk.py +1 -1
- ccxt/async_support/bybit.py +44 -17
- ccxt/async_support/cex.py +1 -1
- ccxt/async_support/coinbase.py +2 -2
- ccxt/async_support/coinbasepro.py +1 -1
- ccxt/async_support/coincheck.py +1 -1
- ccxt/async_support/coinex.py +358 -543
- ccxt/async_support/coinlist.py +6 -7
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinmetro.py +1 -1
- ccxt/async_support/coinone.py +1 -1
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/coinspot.py +1 -1
- ccxt/async_support/cryptocom.py +1 -1
- ccxt/async_support/currencycom.py +2 -2
- ccxt/async_support/delta.py +4 -4
- ccxt/async_support/deribit.py +8 -8
- ccxt/async_support/digifinex.py +5 -5
- ccxt/async_support/exmo.py +1 -1
- ccxt/async_support/gate.py +5 -5
- ccxt/async_support/gemini.py +1 -1
- ccxt/async_support/hitbtc.py +3 -3
- ccxt/async_support/hollaex.py +4 -4
- ccxt/async_support/htx.py +2 -2
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/idex.py +1 -1
- ccxt/async_support/independentreserve.py +1 -1
- ccxt/async_support/indodax.py +2 -2
- ccxt/async_support/kraken.py +2 -2
- ccxt/async_support/krakenfutures.py +3 -3
- ccxt/async_support/kucoin.py +3 -3
- ccxt/async_support/kucoinfutures.py +3 -3
- ccxt/async_support/kuna.py +1 -1
- ccxt/async_support/latoken.py +6 -6
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/luno.py +1 -1
- ccxt/async_support/lykke.py +1 -1
- ccxt/async_support/mercado.py +1 -1
- ccxt/async_support/mexc.py +7 -7
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +3 -4
- ccxt/async_support/okcoin.py +3 -3
- ccxt/async_support/okx.py +27 -10
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/paymium.py +3 -3
- ccxt/async_support/phemex.py +19 -11
- ccxt/async_support/poloniex.py +3 -4
- ccxt/async_support/poloniexfutures.py +1 -1
- ccxt/async_support/probit.py +1 -1
- ccxt/async_support/timex.py +1 -1
- ccxt/async_support/tokocrypto.py +1 -1
- ccxt/async_support/upbit.py +1 -1
- ccxt/async_support/wavesexchange.py +3 -3
- ccxt/async_support/wazirx.py +1 -1
- ccxt/async_support/whitebit.py +2 -2
- ccxt/async_support/woo.py +25 -10
- ccxt/async_support/woofipro.py +2524 -0
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +3 -3
- ccxt/base/exchange.py +64 -16
- ccxt/base/types.py +20 -0
- ccxt/bigone.py +4 -4
- ccxt/binance.py +9 -9
- ccxt/bingx.py +4 -4
- ccxt/bit2c.py +1 -1
- ccxt/bitbank.py +1 -1
- ccxt/bitbns.py +1 -1
- ccxt/bitfinex.py +28 -4
- ccxt/bitfinex2.py +62 -54
- ccxt/bitflyer.py +1 -1
- ccxt/bitget.py +11 -11
- ccxt/bithumb.py +1 -1
- ccxt/bitmart.py +8 -8
- ccxt/bitmex.py +2 -2
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +3 -3
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +3 -5
- ccxt/bitteam.py +1 -1
- ccxt/bitvavo.py +1 -1
- ccxt/bl3p.py +1 -1
- ccxt/blockchaincom.py +1 -1
- ccxt/blofin.py +3 -3
- ccxt/btcalpha.py +1 -1
- ccxt/btcbox.py +1 -1
- ccxt/btcmarkets.py +1 -1
- ccxt/btcturk.py +1 -1
- ccxt/bybit.py +44 -17
- ccxt/cex.py +1 -1
- ccxt/coinbase.py +2 -2
- ccxt/coinbasepro.py +1 -1
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +358 -543
- ccxt/coinlist.py +6 -7
- ccxt/coinmate.py +1 -1
- ccxt/coinmetro.py +1 -1
- ccxt/coinone.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/coinspot.py +1 -1
- ccxt/cryptocom.py +1 -1
- ccxt/currencycom.py +2 -2
- ccxt/delta.py +4 -4
- ccxt/deribit.py +8 -8
- ccxt/digifinex.py +5 -5
- ccxt/exmo.py +1 -1
- ccxt/gate.py +5 -5
- ccxt/gemini.py +1 -1
- ccxt/hitbtc.py +3 -3
- ccxt/hollaex.py +4 -4
- ccxt/htx.py +2 -2
- ccxt/huobijp.py +1 -1
- ccxt/idex.py +1 -1
- ccxt/independentreserve.py +1 -1
- ccxt/indodax.py +2 -2
- ccxt/kraken.py +2 -2
- ccxt/krakenfutures.py +3 -3
- ccxt/kucoin.py +3 -3
- ccxt/kucoinfutures.py +3 -3
- ccxt/kuna.py +1 -1
- ccxt/latoken.py +6 -6
- ccxt/lbank.py +1 -1
- ccxt/luno.py +1 -1
- ccxt/lykke.py +1 -1
- ccxt/mercado.py +1 -1
- ccxt/mexc.py +7 -7
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +3 -4
- ccxt/okcoin.py +3 -3
- ccxt/okx.py +27 -10
- ccxt/onetrading.py +1 -1
- ccxt/paymium.py +3 -3
- ccxt/phemex.py +19 -11
- ccxt/poloniex.py +3 -4
- ccxt/poloniexfutures.py +1 -1
- ccxt/pro/__init__.py +3 -1
- ccxt/pro/bitget.py +127 -190
- ccxt/pro/coinbaseinternational.py +11 -4
- ccxt/pro/htx.py +12 -6
- ccxt/pro/okx.py +79 -1
- ccxt/pro/woofipro.py +1183 -0
- ccxt/probit.py +1 -1
- ccxt/test/test_async.py +31 -1
- ccxt/test/test_sync.py +31 -1
- ccxt/timex.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/upbit.py +1 -1
- ccxt/wavesexchange.py +3 -3
- ccxt/wazirx.py +1 -1
- ccxt/whitebit.py +2 -2
- ccxt/woo.py +25 -10
- ccxt/woofipro.py +2524 -0
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +3 -3
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/METADATA +8 -6
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/RECORD +195 -191
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.dist-info}/WHEEL +0 -0
- {ccxt-4.3.18.dist-info → ccxt-4.3.20.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.
|
25
|
+
__version__ = '4.3.20'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -180,6 +180,7 @@ from ccxt.wavesexchange import wavesexchange # noqa: F4
|
|
180
180
|
from ccxt.wazirx import wazirx # noqa: F401
|
181
181
|
from ccxt.whitebit import whitebit # noqa: F401
|
182
182
|
from ccxt.woo import woo # noqa: F401
|
183
|
+
from ccxt.woofipro import woofipro # noqa: F401
|
183
184
|
from ccxt.yobit import yobit # noqa: F401
|
184
185
|
from ccxt.zaif import zaif # noqa: F401
|
185
186
|
from ccxt.zonda import zonda # noqa: F401
|
@@ -285,6 +286,7 @@ exchanges = [
|
|
285
286
|
'wazirx',
|
286
287
|
'whitebit',
|
287
288
|
'woo',
|
289
|
+
'woofipro',
|
288
290
|
'yobit',
|
289
291
|
'zaif',
|
290
292
|
'zonda',
|
ccxt/abstract/bitget.py
CHANGED
@@ -101,6 +101,9 @@ class ImplicitAPI:
|
|
101
101
|
private_spot_get_v2_spot_account_subaccount_assets = privateSpotGetV2SpotAccountSubaccountAssets = Entry('v2/spot/account/subaccount-assets', ['private', 'spot'], 'GET', {'cost': 2})
|
102
102
|
private_spot_get_v2_spot_account_bills = privateSpotGetV2SpotAccountBills = Entry('v2/spot/account/bills', ['private', 'spot'], 'GET', {'cost': 2})
|
103
103
|
private_spot_get_v2_spot_account_transferrecords = privateSpotGetV2SpotAccountTransferRecords = Entry('v2/spot/account/transferRecords', ['private', 'spot'], 'GET', {'cost': 1})
|
104
|
+
private_spot_get_v2_account_funding_assets = privateSpotGetV2AccountFundingAssets = Entry('v2/account/funding-assets', ['private', 'spot'], 'GET', {'cost': 2})
|
105
|
+
private_spot_get_v2_account_bot_assets = privateSpotGetV2AccountBotAssets = Entry('v2/account/bot-assets', ['private', 'spot'], 'GET', {'cost': 2})
|
106
|
+
private_spot_get_v2_account_all_account_balance = privateSpotGetV2AccountAllAccountBalance = Entry('v2/account/all-account-balance', ['private', 'spot'], 'GET', {'cost': 20})
|
104
107
|
private_spot_get_v2_spot_wallet_deposit_address = privateSpotGetV2SpotWalletDepositAddress = Entry('v2/spot/wallet/deposit-address', ['private', 'spot'], 'GET', {'cost': 2})
|
105
108
|
private_spot_get_v2_spot_wallet_deposit_records = privateSpotGetV2SpotWalletDepositRecords = Entry('v2/spot/wallet/deposit-records', ['private', 'spot'], 'GET', {'cost': 2})
|
106
109
|
private_spot_get_v2_spot_wallet_withdrawal_records = privateSpotGetV2SpotWalletWithdrawalRecords = Entry('v2/spot/wallet/withdrawal-records', ['private', 'spot'], 'GET', {'cost': 2})
|
ccxt/abstract/bybit.py
CHANGED
@@ -150,6 +150,7 @@ class ImplicitAPI:
|
|
150
150
|
private_get_v5_asset_coin_query_info = privateGetV5AssetCoinQueryInfo = Entry('v5/asset/coin/query-info', 'private', 'GET', {'cost': 28})
|
151
151
|
private_get_v5_asset_withdraw_query_record = privateGetV5AssetWithdrawQueryRecord = Entry('v5/asset/withdraw/query-record', 'private', 'GET', {'cost': 10})
|
152
152
|
private_get_v5_asset_withdraw_withdrawable_amount = privateGetV5AssetWithdrawWithdrawableAmount = Entry('v5/asset/withdraw/withdrawable-amount', 'private', 'GET', {'cost': 5})
|
153
|
+
private_get_v5_asset_withdraw_vasp_list = privateGetV5AssetWithdrawVaspList = Entry('v5/asset/withdraw/vasp/list', 'private', 'GET', {'cost': 5})
|
153
154
|
private_get_v5_user_query_sub_members = privateGetV5UserQuerySubMembers = Entry('v5/user/query-sub-members', 'private', 'GET', {'cost': 5})
|
154
155
|
private_get_v5_user_query_api = privateGetV5UserQueryApi = Entry('v5/user/query-api', 'private', 'GET', {'cost': 5})
|
155
156
|
private_get_v5_user_sub_apikeys = privateGetV5UserSubApikeys = Entry('v5/user/sub-apikeys', 'private', 'GET', {'cost': 5})
|
ccxt/abstract/okx.py
CHANGED
@@ -267,6 +267,7 @@ class ImplicitAPI:
|
|
267
267
|
private_post_tradingbot_grid_compute_margin_balance = privatePostTradingBotGridComputeMarginBalance = Entry('tradingBot/grid/compute-margin-balance', 'private', 'POST', {'cost': 1})
|
268
268
|
private_post_tradingbot_grid_margin_balance = privatePostTradingBotGridMarginBalance = Entry('tradingBot/grid/margin-balance', 'private', 'POST', {'cost': 1})
|
269
269
|
private_post_tradingbot_grid_min_investment = privatePostTradingBotGridMinInvestment = Entry('tradingBot/grid/min-investment', 'private', 'POST', {'cost': 1})
|
270
|
+
private_post_tradingbot_grid_adjust_investment = privatePostTradingBotGridAdjustInvestment = Entry('tradingBot/grid/adjust-investment', 'private', 'POST', {'cost': 1})
|
270
271
|
private_post_tradingbot_signal_create_signal = privatePostTradingBotSignalCreateSignal = Entry('tradingBot/signal/create-signal', 'private', 'POST', {'cost': 1})
|
271
272
|
private_post_tradingbot_signal_order_algo = privatePostTradingBotSignalOrderAlgo = Entry('tradingBot/signal/order-algo', 'private', 'POST', {'cost': 1})
|
272
273
|
private_post_tradingbot_signal_stop_order_algo = privatePostTradingBotSignalStopOrderAlgo = Entry('tradingBot/signal/stop-order-algo', 'private', 'POST', {'cost': 1})
|
@@ -0,0 +1,119 @@
|
|
1
|
+
from ccxt.base.types import Entry
|
2
|
+
|
3
|
+
|
4
|
+
class ImplicitAPI:
|
5
|
+
v1_public_get_public_volume_stats = v1PublicGetPublicVolumeStats = Entry('public/volume/stats', ['v1', 'public'], 'GET', {'cost': 1})
|
6
|
+
v1_public_get_public_broker_name = v1PublicGetPublicBrokerName = Entry('public/broker/name', ['v1', 'public'], 'GET', {'cost': 1})
|
7
|
+
v1_public_get_public_chain_info_broker_id = v1PublicGetPublicChainInfoBrokerId = Entry('public/chain_info/{broker_id}', ['v1', 'public'], 'GET', {'cost': 1})
|
8
|
+
v1_public_get_public_system_info = v1PublicGetPublicSystemInfo = Entry('public/system_info', ['v1', 'public'], 'GET', {'cost': 1})
|
9
|
+
v1_public_get_public_vault_balance = v1PublicGetPublicVaultBalance = Entry('public/vault_balance', ['v1', 'public'], 'GET', {'cost': 1})
|
10
|
+
v1_public_get_public_insurancefund = v1PublicGetPublicInsurancefund = Entry('public/insurancefund', ['v1', 'public'], 'GET', {'cost': 1})
|
11
|
+
v1_public_get_public_chain_info = v1PublicGetPublicChainInfo = Entry('public/chain_info', ['v1', 'public'], 'GET', {'cost': 1})
|
12
|
+
v1_public_get_faucet_usdc = v1PublicGetFaucetUsdc = Entry('faucet/usdc', ['v1', 'public'], 'GET', {'cost': 1})
|
13
|
+
v1_public_get_public_account = v1PublicGetPublicAccount = Entry('public/account', ['v1', 'public'], 'GET', {'cost': 1})
|
14
|
+
v1_public_get_get_account = v1PublicGetGetAccount = Entry('get_account', ['v1', 'public'], 'GET', {'cost': 1})
|
15
|
+
v1_public_get_registration_nonce = v1PublicGetRegistrationNonce = Entry('registration_nonce', ['v1', 'public'], 'GET', {'cost': 1})
|
16
|
+
v1_public_get_get_orderly_key = v1PublicGetGetOrderlyKey = Entry('get_orderly_key', ['v1', 'public'], 'GET', {'cost': 1})
|
17
|
+
v1_public_get_public_liquidation = v1PublicGetPublicLiquidation = Entry('public/liquidation', ['v1', 'public'], 'GET', {'cost': 1})
|
18
|
+
v1_public_get_public_liquidated_positions = v1PublicGetPublicLiquidatedPositions = Entry('public/liquidated_positions', ['v1', 'public'], 'GET', {'cost': 1})
|
19
|
+
v1_public_get_public_config = v1PublicGetPublicConfig = Entry('public/config', ['v1', 'public'], 'GET', {'cost': 1})
|
20
|
+
v1_public_get_public_campaign_ranking = v1PublicGetPublicCampaignRanking = Entry('public/campaign/ranking', ['v1', 'public'], 'GET', {'cost': 10})
|
21
|
+
v1_public_get_public_campaign_stats = v1PublicGetPublicCampaignStats = Entry('public/campaign/stats', ['v1', 'public'], 'GET', {'cost': 10})
|
22
|
+
v1_public_get_public_campaign_user = v1PublicGetPublicCampaignUser = Entry('public/campaign/user', ['v1', 'public'], 'GET', {'cost': 10})
|
23
|
+
v1_public_get_public_campaign_stats_details = v1PublicGetPublicCampaignStatsDetails = Entry('public/campaign/stats/details', ['v1', 'public'], 'GET', {'cost': 10})
|
24
|
+
v1_public_get_public_campaigns = v1PublicGetPublicCampaigns = Entry('public/campaigns', ['v1', 'public'], 'GET', {'cost': 10})
|
25
|
+
v1_public_get_public_points_leaderboard = v1PublicGetPublicPointsLeaderboard = Entry('public/points/leaderboard', ['v1', 'public'], 'GET', {'cost': 1})
|
26
|
+
v1_public_get_client_points = v1PublicGetClientPoints = Entry('client/points', ['v1', 'public'], 'GET', {'cost': 1})
|
27
|
+
v1_public_get_public_points_epoch = v1PublicGetPublicPointsEpoch = Entry('public/points/epoch', ['v1', 'public'], 'GET', {'cost': 1})
|
28
|
+
v1_public_get_public_points_epoch_dates = v1PublicGetPublicPointsEpochDates = Entry('public/points/epoch_dates', ['v1', 'public'], 'GET', {'cost': 1})
|
29
|
+
v1_public_get_public_referral_check_ref_code = v1PublicGetPublicReferralCheckRefCode = Entry('public/referral/check_ref_code', ['v1', 'public'], 'GET', {'cost': 1})
|
30
|
+
v1_public_get_public_referral_verify_ref_code = v1PublicGetPublicReferralVerifyRefCode = Entry('public/referral/verify_ref_code', ['v1', 'public'], 'GET', {'cost': 1})
|
31
|
+
v1_public_get_referral_admin_info = v1PublicGetReferralAdminInfo = Entry('referral/admin_info', ['v1', 'public'], 'GET', {'cost': 1})
|
32
|
+
v1_public_get_referral_info = v1PublicGetReferralInfo = Entry('referral/info', ['v1', 'public'], 'GET', {'cost': 1})
|
33
|
+
v1_public_get_referral_referee_info = v1PublicGetReferralRefereeInfo = Entry('referral/referee_info', ['v1', 'public'], 'GET', {'cost': 1})
|
34
|
+
v1_public_get_referral_referee_rebate_summary = v1PublicGetReferralRefereeRebateSummary = Entry('referral/referee_rebate_summary', ['v1', 'public'], 'GET', {'cost': 1})
|
35
|
+
v1_public_get_referral_referee_history = v1PublicGetReferralRefereeHistory = Entry('referral/referee_history', ['v1', 'public'], 'GET', {'cost': 1})
|
36
|
+
v1_public_get_referral_referral_history = v1PublicGetReferralReferralHistory = Entry('referral/referral_history', ['v1', 'public'], 'GET', {'cost': 1})
|
37
|
+
v1_public_get_referral_rebate_summary = v1PublicGetReferralRebateSummary = Entry('referral/rebate_summary', ['v1', 'public'], 'GET', {'cost': 1})
|
38
|
+
v1_public_get_client_distribution_history = v1PublicGetClientDistributionHistory = Entry('client/distribution_history', ['v1', 'public'], 'GET', {'cost': 1})
|
39
|
+
v1_public_get_tv_config = v1PublicGetTvConfig = Entry('tv/config', ['v1', 'public'], 'GET', {'cost': 1})
|
40
|
+
v1_public_get_tv_history = v1PublicGetTvHistory = Entry('tv/history', ['v1', 'public'], 'GET', {'cost': 1})
|
41
|
+
v1_public_get_tv_symbol_info = v1PublicGetTvSymbolInfo = Entry('tv/symbol_info', ['v1', 'public'], 'GET', {'cost': 1})
|
42
|
+
v1_public_get_public_funding_rate_history = v1PublicGetPublicFundingRateHistory = Entry('public/funding_rate_history', ['v1', 'public'], 'GET', {'cost': 1})
|
43
|
+
v1_public_get_public_funding_rate_symbol = v1PublicGetPublicFundingRateSymbol = Entry('public/funding_rate/{symbol}', ['v1', 'public'], 'GET', {'cost': 0.33})
|
44
|
+
v1_public_get_public_funding_rates = v1PublicGetPublicFundingRates = Entry('public/funding_rates', ['v1', 'public'], 'GET', {'cost': 1})
|
45
|
+
v1_public_get_public_info = v1PublicGetPublicInfo = Entry('public/info', ['v1', 'public'], 'GET', {'cost': 1})
|
46
|
+
v1_public_get_public_info_symbol = v1PublicGetPublicInfoSymbol = Entry('public/info/{symbol}', ['v1', 'public'], 'GET', {'cost': 1})
|
47
|
+
v1_public_get_public_market_trades = v1PublicGetPublicMarketTrades = Entry('public/market_trades', ['v1', 'public'], 'GET', {'cost': 1})
|
48
|
+
v1_public_get_public_token = v1PublicGetPublicToken = Entry('public/token', ['v1', 'public'], 'GET', {'cost': 1})
|
49
|
+
v1_public_get_public_futures = v1PublicGetPublicFutures = Entry('public/futures', ['v1', 'public'], 'GET', {'cost': 1})
|
50
|
+
v1_public_get_public_futures_symbol = v1PublicGetPublicFuturesSymbol = Entry('public/futures/{symbol}', ['v1', 'public'], 'GET', {'cost': 1})
|
51
|
+
v1_public_post_register_account = v1PublicPostRegisterAccount = Entry('register_account', ['v1', 'public'], 'POST', {'cost': 1})
|
52
|
+
v1_private_get_client_key_info = v1PrivateGetClientKeyInfo = Entry('client/key_info', ['v1', 'private'], 'GET', {'cost': 6})
|
53
|
+
v1_private_get_client_orderly_key_ip_restriction = v1PrivateGetClientOrderlyKeyIpRestriction = Entry('client/orderly_key_ip_restriction', ['v1', 'private'], 'GET', {'cost': 6})
|
54
|
+
v1_private_get_order_oid = v1PrivateGetOrderOid = Entry('order/{oid}', ['v1', 'private'], 'GET', {'cost': 1})
|
55
|
+
v1_private_get_client_order_client_order_id = v1PrivateGetClientOrderClientOrderId = Entry('client/order/{client_order_id}', ['v1', 'private'], 'GET', {'cost': 1})
|
56
|
+
v1_private_get_algo_order_oid = v1PrivateGetAlgoOrderOid = Entry('algo/order/{oid}', ['v1', 'private'], 'GET', {'cost': 1})
|
57
|
+
v1_private_get_algo_client_order_client_order_id = v1PrivateGetAlgoClientOrderClientOrderId = Entry('algo/client/order/{client_order_id}', ['v1', 'private'], 'GET', {'cost': 1})
|
58
|
+
v1_private_get_orders = v1PrivateGetOrders = Entry('orders', ['v1', 'private'], 'GET', {'cost': 1})
|
59
|
+
v1_private_get_algo_orders = v1PrivateGetAlgoOrders = Entry('algo/orders', ['v1', 'private'], 'GET', {'cost': 1})
|
60
|
+
v1_private_get_trade_tid = v1PrivateGetTradeTid = Entry('trade/{tid}', ['v1', 'private'], 'GET', {'cost': 1})
|
61
|
+
v1_private_get_trades = v1PrivateGetTrades = Entry('trades', ['v1', 'private'], 'GET', {'cost': 1})
|
62
|
+
v1_private_get_order_oid_trades = v1PrivateGetOrderOidTrades = Entry('order/{oid}/trades', ['v1', 'private'], 'GET', {'cost': 1})
|
63
|
+
v1_private_get_client_liquidator_liquidations = v1PrivateGetClientLiquidatorLiquidations = Entry('client/liquidator_liquidations', ['v1', 'private'], 'GET', {'cost': 1})
|
64
|
+
v1_private_get_liquidations = v1PrivateGetLiquidations = Entry('liquidations', ['v1', 'private'], 'GET', {'cost': 1})
|
65
|
+
v1_private_get_asset_history = v1PrivateGetAssetHistory = Entry('asset/history', ['v1', 'private'], 'GET', {'cost': 60})
|
66
|
+
v1_private_get_client_holding = v1PrivateGetClientHolding = Entry('client/holding', ['v1', 'private'], 'GET', {'cost': 1})
|
67
|
+
v1_private_get_withdraw_nonce = v1PrivateGetWithdrawNonce = Entry('withdraw_nonce', ['v1', 'private'], 'GET', {'cost': 1})
|
68
|
+
v1_private_get_settle_nonce = v1PrivateGetSettleNonce = Entry('settle_nonce', ['v1', 'private'], 'GET', {'cost': 1})
|
69
|
+
v1_private_get_pnl_settlement_history = v1PrivateGetPnlSettlementHistory = Entry('pnl_settlement/history', ['v1', 'private'], 'GET', {'cost': 1})
|
70
|
+
v1_private_get_volume_user_daily = v1PrivateGetVolumeUserDaily = Entry('volume/user/daily', ['v1', 'private'], 'GET', {'cost': 60})
|
71
|
+
v1_private_get_volume_user_stats = v1PrivateGetVolumeUserStats = Entry('volume/user/stats', ['v1', 'private'], 'GET', {'cost': 60})
|
72
|
+
v1_private_get_client_statistics = v1PrivateGetClientStatistics = Entry('client/statistics', ['v1', 'private'], 'GET', {'cost': 60})
|
73
|
+
v1_private_get_client_info = v1PrivateGetClientInfo = Entry('client/info', ['v1', 'private'], 'GET', {'cost': 60})
|
74
|
+
v1_private_get_client_statistics_daily = v1PrivateGetClientStatisticsDaily = Entry('client/statistics/daily', ['v1', 'private'], 'GET', {'cost': 60})
|
75
|
+
v1_private_get_positions = v1PrivateGetPositions = Entry('positions', ['v1', 'private'], 'GET', {'cost': 3.33})
|
76
|
+
v1_private_get_position_symbol = v1PrivateGetPositionSymbol = Entry('position/{symbol}', ['v1', 'private'], 'GET', {'cost': 3.33})
|
77
|
+
v1_private_get_funding_fee_history = v1PrivateGetFundingFeeHistory = Entry('funding_fee/history', ['v1', 'private'], 'GET', {'cost': 30})
|
78
|
+
v1_private_get_notification_inbox_notifications = v1PrivateGetNotificationInboxNotifications = Entry('notification/inbox/notifications', ['v1', 'private'], 'GET', {'cost': 60})
|
79
|
+
v1_private_get_notification_inbox_unread = v1PrivateGetNotificationInboxUnread = Entry('notification/inbox/unread', ['v1', 'private'], 'GET', {'cost': 60})
|
80
|
+
v1_private_get_volume_broker_daily = v1PrivateGetVolumeBrokerDaily = Entry('volume/broker/daily', ['v1', 'private'], 'GET', {'cost': 60})
|
81
|
+
v1_private_get_broker_fee_rate_default = v1PrivateGetBrokerFeeRateDefault = Entry('broker/fee_rate/default', ['v1', 'private'], 'GET', {'cost': 10})
|
82
|
+
v1_private_get_broker_user_info = v1PrivateGetBrokerUserInfo = Entry('broker/user_info', ['v1', 'private'], 'GET', {'cost': 10})
|
83
|
+
v1_private_get_orderbook_symbol = v1PrivateGetOrderbookSymbol = Entry('orderbook/{symbol}', ['v1', 'private'], 'GET', {'cost': 1})
|
84
|
+
v1_private_get_kline = v1PrivateGetKline = Entry('kline', ['v1', 'private'], 'GET', {'cost': 1})
|
85
|
+
v1_private_post_orderly_key = v1PrivatePostOrderlyKey = Entry('orderly_key', ['v1', 'private'], 'POST', {'cost': 1})
|
86
|
+
v1_private_post_client_set_orderly_key_ip_restriction = v1PrivatePostClientSetOrderlyKeyIpRestriction = Entry('client/set_orderly_key_ip_restriction', ['v1', 'private'], 'POST', {'cost': 6})
|
87
|
+
v1_private_post_client_reset_orderly_key_ip_restriction = v1PrivatePostClientResetOrderlyKeyIpRestriction = Entry('client/reset_orderly_key_ip_restriction', ['v1', 'private'], 'POST', {'cost': 6})
|
88
|
+
v1_private_post_order = v1PrivatePostOrder = Entry('order', ['v1', 'private'], 'POST', {'cost': 1})
|
89
|
+
v1_private_post_batch_order = v1PrivatePostBatchOrder = Entry('batch-order', ['v1', 'private'], 'POST', {'cost': 10})
|
90
|
+
v1_private_post_algo_order = v1PrivatePostAlgoOrder = Entry('algo/order', ['v1', 'private'], 'POST', {'cost': 1})
|
91
|
+
v1_private_post_liquidation = v1PrivatePostLiquidation = Entry('liquidation', ['v1', 'private'], 'POST', {'cost': 1})
|
92
|
+
v1_private_post_claim_insurance_fund = v1PrivatePostClaimInsuranceFund = Entry('claim_insurance_fund', ['v1', 'private'], 'POST', {'cost': 1})
|
93
|
+
v1_private_post_withdraw_request = v1PrivatePostWithdrawRequest = Entry('withdraw_request', ['v1', 'private'], 'POST', {'cost': 1})
|
94
|
+
v1_private_post_settle_pnl = v1PrivatePostSettlePnl = Entry('settle_pnl', ['v1', 'private'], 'POST', {'cost': 1})
|
95
|
+
v1_private_post_notification_inbox_mark_read = v1PrivatePostNotificationInboxMarkRead = Entry('notification/inbox/mark_read', ['v1', 'private'], 'POST', {'cost': 60})
|
96
|
+
v1_private_post_notification_inbox_mark_read_all = v1PrivatePostNotificationInboxMarkReadAll = Entry('notification/inbox/mark_read_all', ['v1', 'private'], 'POST', {'cost': 60})
|
97
|
+
v1_private_post_client_leverage = v1PrivatePostClientLeverage = Entry('client/leverage', ['v1', 'private'], 'POST', {'cost': 120})
|
98
|
+
v1_private_post_client_maintenance_config = v1PrivatePostClientMaintenanceConfig = Entry('client/maintenance_config', ['v1', 'private'], 'POST', {'cost': 60})
|
99
|
+
v1_private_post_delegate_signer = v1PrivatePostDelegateSigner = Entry('delegate_signer', ['v1', 'private'], 'POST', {'cost': 10})
|
100
|
+
v1_private_post_delegate_orderly_key = v1PrivatePostDelegateOrderlyKey = Entry('delegate_orderly_key', ['v1', 'private'], 'POST', {'cost': 10})
|
101
|
+
v1_private_post_delegate_settle_pnl = v1PrivatePostDelegateSettlePnl = Entry('delegate_settle_pnl', ['v1', 'private'], 'POST', {'cost': 10})
|
102
|
+
v1_private_post_delegate_withdraw_request = v1PrivatePostDelegateWithdrawRequest = Entry('delegate_withdraw_request', ['v1', 'private'], 'POST', {'cost': 10})
|
103
|
+
v1_private_post_broker_fee_rate_set = v1PrivatePostBrokerFeeRateSet = Entry('broker/fee_rate/set', ['v1', 'private'], 'POST', {'cost': 10})
|
104
|
+
v1_private_post_broker_fee_rate_set_default = v1PrivatePostBrokerFeeRateSetDefault = Entry('broker/fee_rate/set_default', ['v1', 'private'], 'POST', {'cost': 10})
|
105
|
+
v1_private_post_broker_fee_rate_default = v1PrivatePostBrokerFeeRateDefault = Entry('broker/fee_rate/default', ['v1', 'private'], 'POST', {'cost': 10})
|
106
|
+
v1_private_post_referral_create = v1PrivatePostReferralCreate = Entry('referral/create', ['v1', 'private'], 'POST', {'cost': 10})
|
107
|
+
v1_private_post_referral_update = v1PrivatePostReferralUpdate = Entry('referral/update', ['v1', 'private'], 'POST', {'cost': 10})
|
108
|
+
v1_private_post_referral_bind = v1PrivatePostReferralBind = Entry('referral/bind', ['v1', 'private'], 'POST', {'cost': 10})
|
109
|
+
v1_private_post_referral_edit_split = v1PrivatePostReferralEditSplit = Entry('referral/edit_split', ['v1', 'private'], 'POST', {'cost': 10})
|
110
|
+
v1_private_put_order = v1PrivatePutOrder = Entry('order', ['v1', 'private'], 'PUT', {'cost': 1})
|
111
|
+
v1_private_put_algo_order = v1PrivatePutAlgoOrder = Entry('algo/order', ['v1', 'private'], 'PUT', {'cost': 1})
|
112
|
+
v1_private_delete_order = v1PrivateDeleteOrder = Entry('order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
113
|
+
v1_private_delete_algo_order = v1PrivateDeleteAlgoOrder = Entry('algo/order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
114
|
+
v1_private_delete_client_order = v1PrivateDeleteClientOrder = Entry('client/order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
115
|
+
v1_private_delete_algo_client_order = v1PrivateDeleteAlgoClientOrder = Entry('algo/client/order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
116
|
+
v1_private_delete_algo_orders = v1PrivateDeleteAlgoOrders = Entry('algo/orders', ['v1', 'private'], 'DELETE', {'cost': 1})
|
117
|
+
v1_private_delete_orders = v1PrivateDeleteOrders = Entry('orders', ['v1', 'private'], 'DELETE', {'cost': 1})
|
118
|
+
v1_private_delete_batch_order = v1PrivateDeleteBatchOrder = Entry('batch-order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
119
|
+
v1_private_delete_client_batch_order = v1PrivateDeleteClientBatchOrder = Entry('client/batch-order', ['v1', 'private'], 'DELETE', {'cost': 1})
|
ccxt/ace.py
CHANGED
@@ -259,7 +259,7 @@ class ace(Exchange, ImplicitAPI):
|
|
259
259
|
'info': market,
|
260
260
|
}
|
261
261
|
|
262
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
262
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
263
263
|
#
|
264
264
|
# {
|
265
265
|
# "base_volume":229196.34035399999,
|
ccxt/ascendex.py
CHANGED
@@ -938,7 +938,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
938
938
|
result['nonce'] = self.safe_integer(orderbook, 'seqnum')
|
939
939
|
return result
|
940
940
|
|
941
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
941
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
942
942
|
#
|
943
943
|
# {
|
944
944
|
# "symbol":"QTUM/BTC",
|
@@ -2995,7 +2995,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2995
2995
|
account = self.safe_value(self.accounts, 0, {})
|
2996
2996
|
accountGroup = self.safe_string(account, 'id')
|
2997
2997
|
currency = self.currency(code)
|
2998
|
-
amount = self.currency_to_precision(code, amount)
|
2999
2998
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
3000
2999
|
fromId = self.safe_string(accountsByType, fromAccount, fromAccount)
|
3001
3000
|
toId = self.safe_string(accountsByType, toAccount, toAccount)
|
@@ -3003,7 +3002,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3003
3002
|
raise ExchangeError(self.id + ' transfer() only supports direct balance transfer between spot and swap, spot and margin')
|
3004
3003
|
request = {
|
3005
3004
|
'account-group': accountGroup,
|
3006
|
-
'amount': amount,
|
3005
|
+
'amount': self.currency_to_precision(code, amount),
|
3007
3006
|
'asset': currency['id'],
|
3008
3007
|
'fromAccount': fromId,
|
3009
3008
|
'toAccount': toId,
|
@@ -3022,11 +3021,11 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3022
3021
|
transfer['currency'] = code
|
3023
3022
|
return transfer
|
3024
3023
|
|
3025
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
3024
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
3026
3025
|
#
|
3027
3026
|
# {"code": "0"}
|
3028
3027
|
#
|
3029
|
-
status = self.
|
3028
|
+
status = self.safe_string(transfer, 'code')
|
3030
3029
|
currencyCode = self.safe_currency_code(None, currency)
|
3031
3030
|
return {
|
3032
3031
|
'info': transfer,
|
@@ -3040,8 +3039,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3040
3039
|
'status': self.parse_transfer_status(status),
|
3041
3040
|
}
|
3042
3041
|
|
3043
|
-
def parse_transfer_status(self, status):
|
3044
|
-
if status == 0:
|
3042
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
3043
|
+
if status == '0':
|
3045
3044
|
return 'ok'
|
3046
3045
|
return 'failed'
|
3047
3046
|
|
@@ -3245,7 +3244,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3245
3244
|
leverages = self.safe_list(data, 'contracts', [])
|
3246
3245
|
return self.parse_leverages(leverages, symbols, 'symbol')
|
3247
3246
|
|
3248
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
3247
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
3249
3248
|
marketId = self.safe_string(leverage, 'symbol')
|
3250
3249
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
3251
3250
|
marginType = self.safe_string(leverage, 'marginType')
|
ccxt/async_support/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.20'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -160,6 +160,7 @@ from ccxt.async_support.wavesexchange import wavesexchange
|
|
160
160
|
from ccxt.async_support.wazirx import wazirx # noqa: F401
|
161
161
|
from ccxt.async_support.whitebit import whitebit # noqa: F401
|
162
162
|
from ccxt.async_support.woo import woo # noqa: F401
|
163
|
+
from ccxt.async_support.woofipro import woofipro # noqa: F401
|
163
164
|
from ccxt.async_support.yobit import yobit # noqa: F401
|
164
165
|
from ccxt.async_support.zaif import zaif # noqa: F401
|
165
166
|
from ccxt.async_support.zonda import zonda # noqa: F401
|
@@ -265,6 +266,7 @@ exchanges = [
|
|
265
266
|
'wazirx',
|
266
267
|
'whitebit',
|
267
268
|
'woo',
|
269
|
+
'woofipro',
|
268
270
|
'yobit',
|
269
271
|
'zaif',
|
270
272
|
'zonda',
|
ccxt/async_support/ace.py
CHANGED
@@ -259,7 +259,7 @@ class ace(Exchange, ImplicitAPI):
|
|
259
259
|
'info': market,
|
260
260
|
}
|
261
261
|
|
262
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
262
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
263
263
|
#
|
264
264
|
# {
|
265
265
|
# "base_volume":229196.34035399999,
|
ccxt/async_support/ascendex.py
CHANGED
@@ -938,7 +938,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
938
938
|
result['nonce'] = self.safe_integer(orderbook, 'seqnum')
|
939
939
|
return result
|
940
940
|
|
941
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
941
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
942
942
|
#
|
943
943
|
# {
|
944
944
|
# "symbol":"QTUM/BTC",
|
@@ -2995,7 +2995,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2995
2995
|
account = self.safe_value(self.accounts, 0, {})
|
2996
2996
|
accountGroup = self.safe_string(account, 'id')
|
2997
2997
|
currency = self.currency(code)
|
2998
|
-
amount = self.currency_to_precision(code, amount)
|
2999
2998
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
3000
2999
|
fromId = self.safe_string(accountsByType, fromAccount, fromAccount)
|
3001
3000
|
toId = self.safe_string(accountsByType, toAccount, toAccount)
|
@@ -3003,7 +3002,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3003
3002
|
raise ExchangeError(self.id + ' transfer() only supports direct balance transfer between spot and swap, spot and margin')
|
3004
3003
|
request = {
|
3005
3004
|
'account-group': accountGroup,
|
3006
|
-
'amount': amount,
|
3005
|
+
'amount': self.currency_to_precision(code, amount),
|
3007
3006
|
'asset': currency['id'],
|
3008
3007
|
'fromAccount': fromId,
|
3009
3008
|
'toAccount': toId,
|
@@ -3022,11 +3021,11 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3022
3021
|
transfer['currency'] = code
|
3023
3022
|
return transfer
|
3024
3023
|
|
3025
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
3024
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
3026
3025
|
#
|
3027
3026
|
# {"code": "0"}
|
3028
3027
|
#
|
3029
|
-
status = self.
|
3028
|
+
status = self.safe_string(transfer, 'code')
|
3030
3029
|
currencyCode = self.safe_currency_code(None, currency)
|
3031
3030
|
return {
|
3032
3031
|
'info': transfer,
|
@@ -3040,8 +3039,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3040
3039
|
'status': self.parse_transfer_status(status),
|
3041
3040
|
}
|
3042
3041
|
|
3043
|
-
def parse_transfer_status(self, status):
|
3044
|
-
if status == 0:
|
3042
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
3043
|
+
if status == '0':
|
3045
3044
|
return 'ok'
|
3046
3045
|
return 'failed'
|
3047
3046
|
|
@@ -3245,7 +3244,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3245
3244
|
leverages = self.safe_list(data, 'contracts', [])
|
3246
3245
|
return self.parse_leverages(leverages, symbols, 'symbol')
|
3247
3246
|
|
3248
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
3247
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
3249
3248
|
marketId = self.safe_string(leverage, 'symbol')
|
3250
3249
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
3251
3250
|
marginType = self.safe_string(leverage, 'marginType')
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.3.
|
5
|
+
__version__ = '4.3.20'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -888,7 +888,7 @@ class Exchange(BaseExchange):
|
|
888
888
|
async def fetch_positions_risk(self, symbols: List[str] = None, params={}):
|
889
889
|
raise NotSupported(self.id + ' fetchPositionsRisk() is not supported yet')
|
890
890
|
|
891
|
-
async def fetch_bids_asks(self, symbols:
|
891
|
+
async def fetch_bids_asks(self, symbols: Strings = None, params={}):
|
892
892
|
raise NotSupported(self.id + ' fetchBidsAsks() is not supported yet')
|
893
893
|
|
894
894
|
async def fetch_borrow_interest(self, code: Str = None, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -1841,6 +1841,8 @@ class Exchange(BaseExchange):
|
|
1841
1841
|
response = None
|
1842
1842
|
if method == 'fetchAccounts':
|
1843
1843
|
response = await getattr(self, method)(params)
|
1844
|
+
elif method == 'getLeverageTiersPaginated':
|
1845
|
+
response = await getattr(self, method)(symbol, params)
|
1844
1846
|
else:
|
1845
1847
|
response = await getattr(self, method)(symbol, since, maxEntriesPerRequest, params)
|
1846
1848
|
errors = 0
|
@@ -1924,3 +1926,24 @@ class Exchange(BaseExchange):
|
|
1924
1926
|
:returns dict[]: a list of `position structures <https://docs.ccxt.com/#/?id=position-structure>`
|
1925
1927
|
"""
|
1926
1928
|
raise NotSupported(self.id + ' fetchPositionsHistory() is not supported yet')
|
1929
|
+
|
1930
|
+
async def fetch_transfer(self, id: str, code: Str = None, params={}):
|
1931
|
+
"""
|
1932
|
+
fetches a transfer
|
1933
|
+
:param str id: transfer id
|
1934
|
+
:param [str] code: unified currency code
|
1935
|
+
:param dict params: extra parameters specific to the exchange api endpoint
|
1936
|
+
:returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
|
1937
|
+
"""
|
1938
|
+
raise NotSupported(self.id + ' fetchTransfer() is not supported yet')
|
1939
|
+
|
1940
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
1941
|
+
"""
|
1942
|
+
fetches a transfer
|
1943
|
+
:param str id: transfer id
|
1944
|
+
:param int [since]: timestamp in ms of the earliest transfer to fetch
|
1945
|
+
:param int [limit]: the maximum amount of transfers to fetch
|
1946
|
+
:param dict params: extra parameters specific to the exchange api endpoint
|
1947
|
+
:returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
|
1948
|
+
"""
|
1949
|
+
raise NotSupported(self.id + ' fetchTransfers() is not supported yet')
|
ccxt/async_support/bigone.py
CHANGED
@@ -702,7 +702,7 @@ class bigone(Exchange, ImplicitAPI):
|
|
702
702
|
}))
|
703
703
|
return result
|
704
704
|
|
705
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
705
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
706
706
|
#
|
707
707
|
# spot
|
708
708
|
#
|
@@ -2018,14 +2018,14 @@ class bigone(Exchange, ImplicitAPI):
|
|
2018
2018
|
transfer['id'] = guid
|
2019
2019
|
return transfer
|
2020
2020
|
|
2021
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
2021
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
2022
2022
|
#
|
2023
2023
|
# {
|
2024
2024
|
# "code": 0,
|
2025
2025
|
# "data": null
|
2026
2026
|
# }
|
2027
2027
|
#
|
2028
|
-
code = self.
|
2028
|
+
code = self.safe_string(transfer, 'code')
|
2029
2029
|
return {
|
2030
2030
|
'info': transfer,
|
2031
2031
|
'id': None,
|
@@ -2038,7 +2038,7 @@ class bigone(Exchange, ImplicitAPI):
|
|
2038
2038
|
'status': self.parse_transfer_status(code),
|
2039
2039
|
}
|
2040
2040
|
|
2041
|
-
def parse_transfer_status(self, status):
|
2041
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
2042
2042
|
statuses = {
|
2043
2043
|
'0': 'ok',
|
2044
2044
|
}
|
ccxt/async_support/binance.py
CHANGED
@@ -8,7 +8,7 @@ from ccxt.abstract.binance import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import json
|
11
|
-
from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, Greeks, Int, IsolatedBorrowRate, IsolatedBorrowRates, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
11
|
+
from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, Greeks, Int, IsolatedBorrowRate, IsolatedBorrowRates, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import AuthenticationError
|
@@ -3647,7 +3647,7 @@ class binance(Exchange, ImplicitAPI):
|
|
3647
3647
|
orderbook['nonce'] = self.safe_integer_2(response, 'lastUpdateId', 'u')
|
3648
3648
|
return orderbook
|
3649
3649
|
|
3650
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
3650
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
3651
3651
|
#
|
3652
3652
|
# {
|
3653
3653
|
# "symbol": "ETHBTC",
|
@@ -7512,13 +7512,13 @@ class binance(Exchange, ImplicitAPI):
|
|
7512
7512
|
'fee': fee,
|
7513
7513
|
}
|
7514
7514
|
|
7515
|
-
def parse_transfer_status(self, status):
|
7515
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
7516
7516
|
statuses = {
|
7517
7517
|
'CONFIRMED': 'ok',
|
7518
7518
|
}
|
7519
7519
|
return self.safe_string(statuses, status, status)
|
7520
7520
|
|
7521
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
7521
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
7522
7522
|
#
|
7523
7523
|
# transfer
|
7524
7524
|
#
|
@@ -7676,7 +7676,7 @@ class binance(Exchange, ImplicitAPI):
|
|
7676
7676
|
#
|
7677
7677
|
return self.parse_transfer(response, currency)
|
7678
7678
|
|
7679
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
7679
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
7680
7680
|
"""
|
7681
7681
|
fetch a history of internal transfers made on an account
|
7682
7682
|
:see: https://binance-docs.github.io/apidocs/spot/en/#query-user-universal-transfer-history-user_data
|
@@ -9747,7 +9747,7 @@ class binance(Exchange, ImplicitAPI):
|
|
9747
9747
|
leverages = self.safe_list(response, 'positions', [])
|
9748
9748
|
return self.parse_leverages(leverages, symbols, 'symbol')
|
9749
9749
|
|
9750
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
9750
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
9751
9751
|
marketId = self.safe_string(leverage, 'symbol')
|
9752
9752
|
marginModeRaw = self.safe_bool(leverage, 'isolated')
|
9753
9753
|
marginMode = None
|
@@ -11341,7 +11341,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11341
11341
|
#
|
11342
11342
|
return self.parse_greeks(response[0], market)
|
11343
11343
|
|
11344
|
-
def parse_greeks(self, greeks, market: Market = None):
|
11344
|
+
def parse_greeks(self, greeks: dict, market: Market = None) -> Greeks:
|
11345
11345
|
#
|
11346
11346
|
# {
|
11347
11347
|
# "symbol": "BTC-231229-40000-C",
|
@@ -11612,7 +11612,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11612
11612
|
chain = self.safe_dict(response, 0, {})
|
11613
11613
|
return self.parse_option(chain, None, market)
|
11614
11614
|
|
11615
|
-
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
11615
|
+
def parse_option(self, chain: dict, currency: Currency = None, market: Market = None) -> Option:
|
11616
11616
|
#
|
11617
11617
|
# {
|
11618
11618
|
# "symbol": "BTC-241227-80000-C",
|
@@ -12001,7 +12001,7 @@ class binance(Exchange, ImplicitAPI):
|
|
12001
12001
|
rows = self.safe_list(response, responseQuery, [])
|
12002
12002
|
return self.parse_conversions(rows, code, fromCurrencyKey, toCurrencyKey, since, limit)
|
12003
12003
|
|
12004
|
-
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
12004
|
+
def parse_conversion(self, conversion: dict, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
12005
12005
|
#
|
12006
12006
|
# fetchConvertQuote
|
12007
12007
|
#
|
ccxt/async_support/bingx.py
CHANGED
@@ -8,7 +8,7 @@ from ccxt.abstract.bingx import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import numbers
|
11
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
11
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry, TransferEntries
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import AuthenticationError
|
@@ -3010,7 +3010,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
3010
3010
|
'status': None,
|
3011
3011
|
}
|
3012
3012
|
|
3013
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
3013
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
|
3014
3014
|
"""
|
3015
3015
|
fetch a history of internal transfers made on an account
|
3016
3016
|
:see: https://bingx-api.github.io/docs/#/spot/account-api.html#Query%20User%20Universal%20Transfer%20History%20(USER_DATA)
|
@@ -3057,7 +3057,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
3057
3057
|
rows = self.safe_list(response, 'rows', [])
|
3058
3058
|
return self.parse_transfers(rows, currency, since, limit)
|
3059
3059
|
|
3060
|
-
def parse_transfer(self, transfer, currency: Currency = None):
|
3060
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
3061
3061
|
tranId = self.safe_string(transfer, 'tranId')
|
3062
3062
|
timestamp = self.safe_integer(transfer, 'timestamp')
|
3063
3063
|
currencyCode = self.safe_currency_code(None, currency)
|
@@ -3487,7 +3487,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
3487
3487
|
data = self.safe_dict(response, 'data', {})
|
3488
3488
|
return self.parse_leverage(data, market)
|
3489
3489
|
|
3490
|
-
def parse_leverage(self, leverage, market=None) -> Leverage:
|
3490
|
+
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
3491
3491
|
marketId = self.safe_string(leverage, 'symbol')
|
3492
3492
|
return {
|
3493
3493
|
'info': leverage,
|
ccxt/async_support/bit2c.py
CHANGED
@@ -279,7 +279,7 @@ class bit2c(Exchange, ImplicitAPI):
|
|
279
279
|
orderbook = await self.publicGetExchangesPairOrderbook(self.extend(request, params))
|
280
280
|
return self.parse_order_book(orderbook, symbol)
|
281
281
|
|
282
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
282
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
283
283
|
symbol = self.safe_symbol(None, market)
|
284
284
|
averagePrice = self.safe_string(ticker, 'av')
|
285
285
|
baseVolume = self.safe_string(ticker, 'a')
|
ccxt/async_support/bitbank.py
CHANGED
@@ -266,7 +266,7 @@ class bitbank(Exchange, ImplicitAPI):
|
|
266
266
|
'info': entry,
|
267
267
|
}
|
268
268
|
|
269
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
269
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
270
270
|
symbol = self.safe_symbol(None, market)
|
271
271
|
timestamp = self.safe_integer(ticker, 'timestamp')
|
272
272
|
last = self.safe_string(ticker, 'last')
|
ccxt/async_support/bitbns.py
CHANGED
@@ -320,7 +320,7 @@ class bitbns(Exchange, ImplicitAPI):
|
|
320
320
|
timestamp = self.safe_integer(response, 'timestamp')
|
321
321
|
return self.parse_order_book(response, market['symbol'], timestamp)
|
322
322
|
|
323
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
323
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
324
324
|
#
|
325
325
|
# {
|
326
326
|
# "symbol":"BTC/INR",
|