ccxt 4.3.22__py2.py3-none-any.whl → 4.3.24__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- ccxt/__init__.py +5 -3
- ccxt/abstract/coinbaseadvanced.py +94 -0
- ccxt/abstract/whitebit.py +9 -0
- ccxt/async_support/__init__.py +5 -3
- ccxt/async_support/base/exchange.py +4 -3
- ccxt/async_support/binance.py +1 -1
- ccxt/async_support/bitrue.py +5 -1
- ccxt/async_support/coinbase.py +4 -0
- ccxt/async_support/coinbaseadvanced.py +17 -0
- ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +13 -13
- ccxt/async_support/coinex.py +195 -249
- ccxt/async_support/kucoin.py +1 -0
- ccxt/async_support/phemex.py +24 -9
- ccxt/async_support/probit.py +1 -20
- ccxt/async_support/whitebit.py +9 -0
- ccxt/base/exchange.py +4 -3
- ccxt/binance.py +1 -1
- ccxt/bitrue.py +5 -1
- ccxt/coinbase.py +4 -0
- ccxt/coinbaseadvanced.py +17 -0
- ccxt/{coinbasepro.py → coinbaseexchange.py} +13 -13
- ccxt/coinex.py +195 -249
- ccxt/kucoin.py +1 -0
- ccxt/phemex.py +24 -9
- ccxt/pro/__init__.py +3 -3
- ccxt/pro/bitget.py +10 -3
- ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +5 -5
- ccxt/pro/poloniexfutures.py +20 -16
- ccxt/probit.py +1 -20
- ccxt/whitebit.py +9 -0
- {ccxt-4.3.22.dist-info → ccxt-4.3.24.dist-info}/METADATA +6 -6
- {ccxt-4.3.22.dist-info → ccxt-4.3.24.dist-info}/RECORD +35 -32
- /ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +0 -0
- {ccxt-4.3.22.dist-info → ccxt-4.3.24.dist-info}/WHEEL +0 -0
- {ccxt-4.3.22.dist-info → ccxt-4.3.24.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.24'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -119,8 +119,9 @@ from ccxt.btcturk import btcturk # noqa: F4
|
|
119
119
|
from ccxt.bybit import bybit # noqa: F401
|
120
120
|
from ccxt.cex import cex # noqa: F401
|
121
121
|
from ccxt.coinbase import coinbase # noqa: F401
|
122
|
+
from ccxt.coinbaseadvanced import coinbaseadvanced # noqa: F401
|
123
|
+
from ccxt.coinbaseexchange import coinbaseexchange # noqa: F401
|
122
124
|
from ccxt.coinbaseinternational import coinbaseinternational # noqa: F401
|
123
|
-
from ccxt.coinbasepro import coinbasepro # noqa: F401
|
124
125
|
from ccxt.coincheck import coincheck # noqa: F401
|
125
126
|
from ccxt.coinex import coinex # noqa: F401
|
126
127
|
from ccxt.coinlist import coinlist # noqa: F401
|
@@ -225,8 +226,9 @@ exchanges = [
|
|
225
226
|
'bybit',
|
226
227
|
'cex',
|
227
228
|
'coinbase',
|
229
|
+
'coinbaseadvanced',
|
230
|
+
'coinbaseexchange',
|
228
231
|
'coinbaseinternational',
|
229
|
-
'coinbasepro',
|
230
232
|
'coincheck',
|
231
233
|
'coinex',
|
232
234
|
'coinlist',
|
@@ -0,0 +1,94 @@
|
|
1
|
+
from ccxt.base.types import Entry
|
2
|
+
|
3
|
+
|
4
|
+
class ImplicitAPI:
|
5
|
+
v2_public_get_currencies = v2PublicGetCurrencies = Entry('currencies', ['v2', 'public'], 'GET', {'cost': 10.6})
|
6
|
+
v2_public_get_currencies_crypto = v2PublicGetCurrenciesCrypto = Entry('currencies/crypto', ['v2', 'public'], 'GET', {'cost': 10.6})
|
7
|
+
v2_public_get_time = v2PublicGetTime = Entry('time', ['v2', 'public'], 'GET', {'cost': 10.6})
|
8
|
+
v2_public_get_exchange_rates = v2PublicGetExchangeRates = Entry('exchange-rates', ['v2', 'public'], 'GET', {'cost': 10.6})
|
9
|
+
v2_public_get_users_user_id = v2PublicGetUsersUserId = Entry('users/{user_id}', ['v2', 'public'], 'GET', {'cost': 10.6})
|
10
|
+
v2_public_get_prices_symbol_buy = v2PublicGetPricesSymbolBuy = Entry('prices/{symbol}/buy', ['v2', 'public'], 'GET', {'cost': 10.6})
|
11
|
+
v2_public_get_prices_symbol_sell = v2PublicGetPricesSymbolSell = Entry('prices/{symbol}/sell', ['v2', 'public'], 'GET', {'cost': 10.6})
|
12
|
+
v2_public_get_prices_symbol_spot = v2PublicGetPricesSymbolSpot = Entry('prices/{symbol}/spot', ['v2', 'public'], 'GET', {'cost': 10.6})
|
13
|
+
v2_private_get_accounts = v2PrivateGetAccounts = Entry('accounts', ['v2', 'private'], 'GET', {'cost': 10.6})
|
14
|
+
v2_private_get_accounts_account_id = v2PrivateGetAccountsAccountId = Entry('accounts/{account_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
15
|
+
v2_private_get_accounts_account_id_addresses = v2PrivateGetAccountsAccountIdAddresses = Entry('accounts/{account_id}/addresses', ['v2', 'private'], 'GET', {'cost': 10.6})
|
16
|
+
v2_private_get_accounts_account_id_addresses_address_id = v2PrivateGetAccountsAccountIdAddressesAddressId = Entry('accounts/{account_id}/addresses/{address_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
17
|
+
v2_private_get_accounts_account_id_addresses_address_id_transactions = v2PrivateGetAccountsAccountIdAddressesAddressIdTransactions = Entry('accounts/{account_id}/addresses/{address_id}/transactions', ['v2', 'private'], 'GET', {'cost': 10.6})
|
18
|
+
v2_private_get_accounts_account_id_transactions = v2PrivateGetAccountsAccountIdTransactions = Entry('accounts/{account_id}/transactions', ['v2', 'private'], 'GET', {'cost': 10.6})
|
19
|
+
v2_private_get_accounts_account_id_transactions_transaction_id = v2PrivateGetAccountsAccountIdTransactionsTransactionId = Entry('accounts/{account_id}/transactions/{transaction_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
20
|
+
v2_private_get_accounts_account_id_buys = v2PrivateGetAccountsAccountIdBuys = Entry('accounts/{account_id}/buys', ['v2', 'private'], 'GET', {'cost': 10.6})
|
21
|
+
v2_private_get_accounts_account_id_buys_buy_id = v2PrivateGetAccountsAccountIdBuysBuyId = Entry('accounts/{account_id}/buys/{buy_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
22
|
+
v2_private_get_accounts_account_id_sells = v2PrivateGetAccountsAccountIdSells = Entry('accounts/{account_id}/sells', ['v2', 'private'], 'GET', {'cost': 10.6})
|
23
|
+
v2_private_get_accounts_account_id_sells_sell_id = v2PrivateGetAccountsAccountIdSellsSellId = Entry('accounts/{account_id}/sells/{sell_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
24
|
+
v2_private_get_accounts_account_id_deposits = v2PrivateGetAccountsAccountIdDeposits = Entry('accounts/{account_id}/deposits', ['v2', 'private'], 'GET', {'cost': 10.6})
|
25
|
+
v2_private_get_accounts_account_id_deposits_deposit_id = v2PrivateGetAccountsAccountIdDepositsDepositId = Entry('accounts/{account_id}/deposits/{deposit_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
26
|
+
v2_private_get_accounts_account_id_withdrawals = v2PrivateGetAccountsAccountIdWithdrawals = Entry('accounts/{account_id}/withdrawals', ['v2', 'private'], 'GET', {'cost': 10.6})
|
27
|
+
v2_private_get_accounts_account_id_withdrawals_withdrawal_id = v2PrivateGetAccountsAccountIdWithdrawalsWithdrawalId = Entry('accounts/{account_id}/withdrawals/{withdrawal_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
28
|
+
v2_private_get_payment_methods = v2PrivateGetPaymentMethods = Entry('payment-methods', ['v2', 'private'], 'GET', {'cost': 10.6})
|
29
|
+
v2_private_get_payment_methods_payment_method_id = v2PrivateGetPaymentMethodsPaymentMethodId = Entry('payment-methods/{payment_method_id}', ['v2', 'private'], 'GET', {'cost': 10.6})
|
30
|
+
v2_private_get_user = v2PrivateGetUser = Entry('user', ['v2', 'private'], 'GET', {'cost': 10.6})
|
31
|
+
v2_private_get_user_auth = v2PrivateGetUserAuth = Entry('user/auth', ['v2', 'private'], 'GET', {'cost': 10.6})
|
32
|
+
v2_private_post_accounts = v2PrivatePostAccounts = Entry('accounts', ['v2', 'private'], 'POST', {'cost': 10.6})
|
33
|
+
v2_private_post_accounts_account_id_primary = v2PrivatePostAccountsAccountIdPrimary = Entry('accounts/{account_id}/primary', ['v2', 'private'], 'POST', {'cost': 10.6})
|
34
|
+
v2_private_post_accounts_account_id_addresses = v2PrivatePostAccountsAccountIdAddresses = Entry('accounts/{account_id}/addresses', ['v2', 'private'], 'POST', {'cost': 10.6})
|
35
|
+
v2_private_post_accounts_account_id_transactions = v2PrivatePostAccountsAccountIdTransactions = Entry('accounts/{account_id}/transactions', ['v2', 'private'], 'POST', {'cost': 10.6})
|
36
|
+
v2_private_post_accounts_account_id_transactions_transaction_id_complete = v2PrivatePostAccountsAccountIdTransactionsTransactionIdComplete = Entry('accounts/{account_id}/transactions/{transaction_id}/complete', ['v2', 'private'], 'POST', {'cost': 10.6})
|
37
|
+
v2_private_post_accounts_account_id_transactions_transaction_id_resend = v2PrivatePostAccountsAccountIdTransactionsTransactionIdResend = Entry('accounts/{account_id}/transactions/{transaction_id}/resend', ['v2', 'private'], 'POST', {'cost': 10.6})
|
38
|
+
v2_private_post_accounts_account_id_buys = v2PrivatePostAccountsAccountIdBuys = Entry('accounts/{account_id}/buys', ['v2', 'private'], 'POST', {'cost': 10.6})
|
39
|
+
v2_private_post_accounts_account_id_buys_buy_id_commit = v2PrivatePostAccountsAccountIdBuysBuyIdCommit = Entry('accounts/{account_id}/buys/{buy_id}/commit', ['v2', 'private'], 'POST', {'cost': 10.6})
|
40
|
+
v2_private_post_accounts_account_id_sells = v2PrivatePostAccountsAccountIdSells = Entry('accounts/{account_id}/sells', ['v2', 'private'], 'POST', {'cost': 10.6})
|
41
|
+
v2_private_post_accounts_account_id_sells_sell_id_commit = v2PrivatePostAccountsAccountIdSellsSellIdCommit = Entry('accounts/{account_id}/sells/{sell_id}/commit', ['v2', 'private'], 'POST', {'cost': 10.6})
|
42
|
+
v2_private_post_accounts_account_id_deposits = v2PrivatePostAccountsAccountIdDeposits = Entry('accounts/{account_id}/deposits', ['v2', 'private'], 'POST', {'cost': 10.6})
|
43
|
+
v2_private_post_accounts_account_id_deposits_deposit_id_commit = v2PrivatePostAccountsAccountIdDepositsDepositIdCommit = Entry('accounts/{account_id}/deposits/{deposit_id}/commit', ['v2', 'private'], 'POST', {'cost': 10.6})
|
44
|
+
v2_private_post_accounts_account_id_withdrawals = v2PrivatePostAccountsAccountIdWithdrawals = Entry('accounts/{account_id}/withdrawals', ['v2', 'private'], 'POST', {'cost': 10.6})
|
45
|
+
v2_private_post_accounts_account_id_withdrawals_withdrawal_id_commit = v2PrivatePostAccountsAccountIdWithdrawalsWithdrawalIdCommit = Entry('accounts/{account_id}/withdrawals/{withdrawal_id}/commit', ['v2', 'private'], 'POST', {'cost': 10.6})
|
46
|
+
v2_private_put_accounts_account_id = v2PrivatePutAccountsAccountId = Entry('accounts/{account_id}', ['v2', 'private'], 'PUT', {'cost': 10.6})
|
47
|
+
v2_private_put_user = v2PrivatePutUser = Entry('user', ['v2', 'private'], 'PUT', {'cost': 10.6})
|
48
|
+
v2_private_delete_accounts_id = v2PrivateDeleteAccountsId = Entry('accounts/{id}', ['v2', 'private'], 'DELETE', {'cost': 10.6})
|
49
|
+
v2_private_delete_accounts_account_id_transactions_transaction_id = v2PrivateDeleteAccountsAccountIdTransactionsTransactionId = Entry('accounts/{account_id}/transactions/{transaction_id}', ['v2', 'private'], 'DELETE', {'cost': 10.6})
|
50
|
+
v3_public_get_brokerage_time = v3PublicGetBrokerageTime = Entry('brokerage/time', ['v3', 'public'], 'GET', {'cost': 3})
|
51
|
+
v3_public_get_brokerage_market_product_book = v3PublicGetBrokerageMarketProductBook = Entry('brokerage/market/product_book', ['v3', 'public'], 'GET', {'cost': 3})
|
52
|
+
v3_public_get_brokerage_market_products = v3PublicGetBrokerageMarketProducts = Entry('brokerage/market/products', ['v3', 'public'], 'GET', {'cost': 3})
|
53
|
+
v3_public_get_brokerage_market_products_product_id = v3PublicGetBrokerageMarketProductsProductId = Entry('brokerage/market/products/{product_id}', ['v3', 'public'], 'GET', {'cost': 3})
|
54
|
+
v3_public_get_brokerage_market_products_product_id_candles = v3PublicGetBrokerageMarketProductsProductIdCandles = Entry('brokerage/market/products/{product_id}/candles', ['v3', 'public'], 'GET', {'cost': 3})
|
55
|
+
v3_public_get_brokerage_market_products_product_id_ticker = v3PublicGetBrokerageMarketProductsProductIdTicker = Entry('brokerage/market/products/{product_id}/ticker', ['v3', 'public'], 'GET', {'cost': 3})
|
56
|
+
v3_private_get_brokerage_accounts = v3PrivateGetBrokerageAccounts = Entry('brokerage/accounts', ['v3', 'private'], 'GET', {'cost': 1})
|
57
|
+
v3_private_get_brokerage_accounts_account_uuid = v3PrivateGetBrokerageAccountsAccountUuid = Entry('brokerage/accounts/{account_uuid}', ['v3', 'private'], 'GET', {'cost': 1})
|
58
|
+
v3_private_get_brokerage_orders_historical_batch = v3PrivateGetBrokerageOrdersHistoricalBatch = Entry('brokerage/orders/historical/batch', ['v3', 'private'], 'GET', {'cost': 1})
|
59
|
+
v3_private_get_brokerage_orders_historical_fills = v3PrivateGetBrokerageOrdersHistoricalFills = Entry('brokerage/orders/historical/fills', ['v3', 'private'], 'GET', {'cost': 1})
|
60
|
+
v3_private_get_brokerage_orders_historical_order_id = v3PrivateGetBrokerageOrdersHistoricalOrderId = Entry('brokerage/orders/historical/{order_id}', ['v3', 'private'], 'GET', {'cost': 1})
|
61
|
+
v3_private_get_brokerage_products = v3PrivateGetBrokerageProducts = Entry('brokerage/products', ['v3', 'private'], 'GET', {'cost': 3})
|
62
|
+
v3_private_get_brokerage_products_product_id = v3PrivateGetBrokerageProductsProductId = Entry('brokerage/products/{product_id}', ['v3', 'private'], 'GET', {'cost': 3})
|
63
|
+
v3_private_get_brokerage_products_product_id_candles = v3PrivateGetBrokerageProductsProductIdCandles = Entry('brokerage/products/{product_id}/candles', ['v3', 'private'], 'GET', {'cost': 3})
|
64
|
+
v3_private_get_brokerage_products_product_id_ticker = v3PrivateGetBrokerageProductsProductIdTicker = Entry('brokerage/products/{product_id}/ticker', ['v3', 'private'], 'GET', {'cost': 3})
|
65
|
+
v3_private_get_brokerage_best_bid_ask = v3PrivateGetBrokerageBestBidAsk = Entry('brokerage/best_bid_ask', ['v3', 'private'], 'GET', {'cost': 3})
|
66
|
+
v3_private_get_brokerage_product_book = v3PrivateGetBrokerageProductBook = Entry('brokerage/product_book', ['v3', 'private'], 'GET', {'cost': 3})
|
67
|
+
v3_private_get_brokerage_transaction_summary = v3PrivateGetBrokerageTransactionSummary = Entry('brokerage/transaction_summary', ['v3', 'private'], 'GET', {'cost': 3})
|
68
|
+
v3_private_get_brokerage_portfolios = v3PrivateGetBrokeragePortfolios = Entry('brokerage/portfolios', ['v3', 'private'], 'GET', {'cost': 1})
|
69
|
+
v3_private_get_brokerage_portfolios_portfolio_uuid = v3PrivateGetBrokeragePortfoliosPortfolioUuid = Entry('brokerage/portfolios/{portfolio_uuid}', ['v3', 'private'], 'GET', {'cost': 1})
|
70
|
+
v3_private_get_brokerage_convert_trade_trade_id = v3PrivateGetBrokerageConvertTradeTradeId = Entry('brokerage/convert/trade/{trade_id}', ['v3', 'private'], 'GET', {'cost': 1})
|
71
|
+
v3_private_get_brokerage_cfm_balance_summary = v3PrivateGetBrokerageCfmBalanceSummary = Entry('brokerage/cfm/balance_summary', ['v3', 'private'], 'GET', {'cost': 1})
|
72
|
+
v3_private_get_brokerage_cfm_positions = v3PrivateGetBrokerageCfmPositions = Entry('brokerage/cfm/positions', ['v3', 'private'], 'GET', {'cost': 1})
|
73
|
+
v3_private_get_brokerage_cfm_positions_product_id = v3PrivateGetBrokerageCfmPositionsProductId = Entry('brokerage/cfm/positions/{product_id}', ['v3', 'private'], 'GET', {'cost': 1})
|
74
|
+
v3_private_get_brokerage_cfm_sweeps = v3PrivateGetBrokerageCfmSweeps = Entry('brokerage/cfm/sweeps', ['v3', 'private'], 'GET', {'cost': 1})
|
75
|
+
v3_private_get_brokerage_intx_portfolio_portfolio_uuid = v3PrivateGetBrokerageIntxPortfolioPortfolioUuid = Entry('brokerage/intx/portfolio/{portfolio_uuid}', ['v3', 'private'], 'GET', {'cost': 1})
|
76
|
+
v3_private_get_brokerage_intx_positions_portfolio_uuid = v3PrivateGetBrokerageIntxPositionsPortfolioUuid = Entry('brokerage/intx/positions/{portfolio_uuid}', ['v3', 'private'], 'GET', {'cost': 1})
|
77
|
+
v3_private_get_brokerage_intx_positions_portfolio_uuid_symbol = v3PrivateGetBrokerageIntxPositionsPortfolioUuidSymbol = Entry('brokerage/intx/positions/{portfolio_uuid}/{symbol}', ['v3', 'private'], 'GET', {'cost': 1})
|
78
|
+
v3_private_get_brokerage_payment_methods = v3PrivateGetBrokeragePaymentMethods = Entry('brokerage/payment_methods', ['v3', 'private'], 'GET', {'cost': 1})
|
79
|
+
v3_private_get_brokerage_payment_methods_payment_method_id = v3PrivateGetBrokeragePaymentMethodsPaymentMethodId = Entry('brokerage/payment_methods/{payment_method_id}', ['v3', 'private'], 'GET', {'cost': 1})
|
80
|
+
v3_private_post_brokerage_orders = v3PrivatePostBrokerageOrders = Entry('brokerage/orders', ['v3', 'private'], 'POST', {'cost': 1})
|
81
|
+
v3_private_post_brokerage_orders_batch_cancel = v3PrivatePostBrokerageOrdersBatchCancel = Entry('brokerage/orders/batch_cancel', ['v3', 'private'], 'POST', {'cost': 1})
|
82
|
+
v3_private_post_brokerage_orders_edit = v3PrivatePostBrokerageOrdersEdit = Entry('brokerage/orders/edit', ['v3', 'private'], 'POST', {'cost': 1})
|
83
|
+
v3_private_post_brokerage_orders_edit_preview = v3PrivatePostBrokerageOrdersEditPreview = Entry('brokerage/orders/edit_preview', ['v3', 'private'], 'POST', {'cost': 1})
|
84
|
+
v3_private_post_brokerage_orders_preview = v3PrivatePostBrokerageOrdersPreview = Entry('brokerage/orders/preview', ['v3', 'private'], 'POST', {'cost': 1})
|
85
|
+
v3_private_post_brokerage_portfolios = v3PrivatePostBrokeragePortfolios = Entry('brokerage/portfolios', ['v3', 'private'], 'POST', {'cost': 1})
|
86
|
+
v3_private_post_brokerage_portfolios_move_funds = v3PrivatePostBrokeragePortfoliosMoveFunds = Entry('brokerage/portfolios/move_funds', ['v3', 'private'], 'POST', {'cost': 1})
|
87
|
+
v3_private_post_brokerage_convert_quote = v3PrivatePostBrokerageConvertQuote = Entry('brokerage/convert/quote', ['v3', 'private'], 'POST', {'cost': 1})
|
88
|
+
v3_private_post_brokerage_convert_trade_trade_id = v3PrivatePostBrokerageConvertTradeTradeId = Entry('brokerage/convert/trade/{trade_id}', ['v3', 'private'], 'POST', {'cost': 1})
|
89
|
+
v3_private_post_brokerage_cfm_sweeps_schedule = v3PrivatePostBrokerageCfmSweepsSchedule = Entry('brokerage/cfm/sweeps/schedule', ['v3', 'private'], 'POST', {'cost': 1})
|
90
|
+
v3_private_post_brokerage_intx_allocate = v3PrivatePostBrokerageIntxAllocate = Entry('brokerage/intx/allocate', ['v3', 'private'], 'POST', {'cost': 1})
|
91
|
+
v3_private_post_brokerage_orders_close_position = v3PrivatePostBrokerageOrdersClosePosition = Entry('brokerage/orders/close_position', ['v3', 'private'], 'POST', {'cost': 1})
|
92
|
+
v3_private_put_brokerage_portfolios_portfolio_uuid = v3PrivatePutBrokeragePortfoliosPortfolioUuid = Entry('brokerage/portfolios/{portfolio_uuid}', ['v3', 'private'], 'PUT', {'cost': 1})
|
93
|
+
v3_private_delete_brokerage_portfolios_portfolio_uuid = v3PrivateDeleteBrokeragePortfoliosPortfolioUuid = Entry('brokerage/portfolios/{portfolio_uuid}', ['v3', 'private'], 'DELETE', {'cost': 1})
|
94
|
+
v3_private_delete_brokerage_cfm_sweeps = v3PrivateDeleteBrokerageCfmSweeps = Entry('brokerage/cfm/sweeps', ['v3', 'private'], 'DELETE', {'cost': 1})
|
ccxt/abstract/whitebit.py
CHANGED
@@ -87,3 +87,12 @@ class ImplicitAPI:
|
|
87
87
|
v4_private_post_convert_estimate = v4PrivatePostConvertEstimate = Entry('convert/estimate', ['v4', 'private'], 'POST', {})
|
88
88
|
v4_private_post_convert_confirm = v4PrivatePostConvertConfirm = Entry('convert/confirm', ['v4', 'private'], 'POST', {})
|
89
89
|
v4_private_post_convert_history = v4PrivatePostConvertHistory = Entry('convert/history', ['v4', 'private'], 'POST', {})
|
90
|
+
v4_private_post_sub_account_create = v4PrivatePostSubAccountCreate = Entry('sub-account/create', ['v4', 'private'], 'POST', {})
|
91
|
+
v4_private_post_sub_account_delete = v4PrivatePostSubAccountDelete = Entry('sub-account/delete', ['v4', 'private'], 'POST', {})
|
92
|
+
v4_private_post_sub_account_edit = v4PrivatePostSubAccountEdit = Entry('sub-account/edit', ['v4', 'private'], 'POST', {})
|
93
|
+
v4_private_post_sub_account_list = v4PrivatePostSubAccountList = Entry('sub-account/list', ['v4', 'private'], 'POST', {})
|
94
|
+
v4_private_post_sub_account_transfer = v4PrivatePostSubAccountTransfer = Entry('sub-account/transfer', ['v4', 'private'], 'POST', {})
|
95
|
+
v4_private_post_sub_account_block = v4PrivatePostSubAccountBlock = Entry('sub-account/block', ['v4', 'private'], 'POST', {})
|
96
|
+
v4_private_post_sub_account_unblock = v4PrivatePostSubAccountUnblock = Entry('sub-account/unblock', ['v4', 'private'], 'POST', {})
|
97
|
+
v4_private_post_sub_account_balances = v4PrivatePostSubAccountBalances = Entry('sub-account/balances', ['v4', 'private'], 'POST', {})
|
98
|
+
v4_private_post_sub_account_transfer_history = v4PrivatePostSubAccountTransferHistory = Entry('sub-account/transfer/history', ['v4', 'private'], 'POST', {})
|
ccxt/async_support/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.24'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -99,8 +99,9 @@ from ccxt.async_support.btcturk import btcturk
|
|
99
99
|
from ccxt.async_support.bybit import bybit # noqa: F401
|
100
100
|
from ccxt.async_support.cex import cex # noqa: F401
|
101
101
|
from ccxt.async_support.coinbase import coinbase # noqa: F401
|
102
|
+
from ccxt.async_support.coinbaseadvanced import coinbaseadvanced # noqa: F401
|
103
|
+
from ccxt.async_support.coinbaseexchange import coinbaseexchange # noqa: F401
|
102
104
|
from ccxt.async_support.coinbaseinternational import coinbaseinternational # noqa: F401
|
103
|
-
from ccxt.async_support.coinbasepro import coinbasepro # noqa: F401
|
104
105
|
from ccxt.async_support.coincheck import coincheck # noqa: F401
|
105
106
|
from ccxt.async_support.coinex import coinex # noqa: F401
|
106
107
|
from ccxt.async_support.coinlist import coinlist # noqa: F401
|
@@ -205,8 +206,9 @@ exchanges = [
|
|
205
206
|
'bybit',
|
206
207
|
'cex',
|
207
208
|
'coinbase',
|
209
|
+
'coinbaseadvanced',
|
210
|
+
'coinbaseexchange',
|
208
211
|
'coinbaseinternational',
|
209
|
-
'coinbasepro',
|
210
212
|
'coincheck',
|
211
213
|
'coinex',
|
212
214
|
'coinlist',
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.3.
|
5
|
+
__version__ = '4.3.24'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1848,8 +1848,9 @@ class Exchange(BaseExchange):
|
|
1848
1848
|
errors = 0
|
1849
1849
|
responseLength = len(response)
|
1850
1850
|
if self.verbose:
|
1851
|
-
|
1852
|
-
|
1851
|
+
cursorString = '' if (cursorValue is None) else cursorValue
|
1852
|
+
iteration = (i + 1)
|
1853
|
+
cursorMessage = 'Cursor pagination call ' + str(iteration) + ' method ' + method + ' response length ' + str(responseLength) + ' cursor ' + cursorString
|
1853
1854
|
self.log(cursorMessage)
|
1854
1855
|
if responseLength == 0:
|
1855
1856
|
break
|
ccxt/async_support/binance.py
CHANGED
@@ -9004,7 +9004,7 @@ class binance(Exchange, ImplicitAPI):
|
|
9004
9004
|
await self.load_markets()
|
9005
9005
|
# by default cache the leverage bracket
|
9006
9006
|
# it contains useful stuff like the maintenance margin and initial margin for positions
|
9007
|
-
leverageBrackets = self.safe_dict(self.options, 'leverageBrackets'
|
9007
|
+
leverageBrackets = self.safe_dict(self.options, 'leverageBrackets')
|
9008
9008
|
if (leverageBrackets is None) or (reload):
|
9009
9009
|
defaultType = self.safe_string(self.options, 'defaultType', 'future')
|
9010
9010
|
type = self.safe_string(params, 'type', defaultType)
|
ccxt/async_support/bitrue.py
CHANGED
@@ -2933,6 +2933,10 @@ class bitrue(Exchange, ImplicitAPI):
|
|
2933
2933
|
signPath = signPath + '/' + version + '/' + path
|
2934
2934
|
signMessage = timestamp + method + signPath
|
2935
2935
|
if method == 'GET':
|
2936
|
+
keys = list(params.keys())
|
2937
|
+
keysLength = len(keys)
|
2938
|
+
if keysLength > 0:
|
2939
|
+
signMessage += '?' + self.urlencode(params)
|
2936
2940
|
signature = self.hmac(self.encode(signMessage), self.encode(self.secret), hashlib.sha256)
|
2937
2941
|
headers = {
|
2938
2942
|
'X-CH-APIKEY': self.apiKey,
|
@@ -2945,7 +2949,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
2945
2949
|
'recvWindow': recvWindow,
|
2946
2950
|
}, params)
|
2947
2951
|
body = self.json(query)
|
2948
|
-
signMessage
|
2952
|
+
signMessage += body
|
2949
2953
|
signature = self.hmac(self.encode(signMessage), self.encode(self.secret), hashlib.sha256)
|
2950
2954
|
headers = {
|
2951
2955
|
'Content-Type': 'application/json',
|
ccxt/async_support/coinbase.py
CHANGED
@@ -1754,6 +1754,10 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1754
1754
|
request = {}
|
1755
1755
|
if symbols is not None:
|
1756
1756
|
request['product_ids'] = self.market_ids(symbols)
|
1757
|
+
marketType = None
|
1758
|
+
marketType, params = self.handle_market_type_and_params('fetchTickers', self.get_market_from_symbols(symbols), params, 'default')
|
1759
|
+
if marketType is not None and marketType != 'default':
|
1760
|
+
request['product_type'] = 'FUTURE' if (marketType == 'swap') else 'SPOT'
|
1757
1761
|
response = await self.v3PublicGetBrokerageMarketProducts(self.extend(request, params))
|
1758
1762
|
#
|
1759
1763
|
# {
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
# PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
4
|
+
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
5
|
+
|
6
|
+
from ccxt.async_support.coinbase import coinbase
|
7
|
+
from ccxt.abstract.coinbaseadvanced import ImplicitAPI
|
8
|
+
|
9
|
+
|
10
|
+
class coinbaseadvanced(coinbase, ImplicitAPI):
|
11
|
+
|
12
|
+
def describe(self):
|
13
|
+
return self.deep_extend(super(coinbaseadvanced, self).describe(), {
|
14
|
+
'id': 'coinbaseadvanced',
|
15
|
+
'name': 'Coinbase Advanced',
|
16
|
+
'alias': True,
|
17
|
+
})
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
5
5
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
|
-
from ccxt.abstract.
|
7
|
+
from ccxt.abstract.coinbaseexchange import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
10
10
|
from typing import List
|
@@ -22,12 +22,12 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
22
22
|
from ccxt.base.precise import Precise
|
23
23
|
|
24
24
|
|
25
|
-
class
|
25
|
+
class coinbaseexchange(Exchange, ImplicitAPI):
|
26
26
|
|
27
27
|
def describe(self):
|
28
|
-
return self.deep_extend(super(
|
29
|
-
'id': '
|
30
|
-
'name': 'Coinbase
|
28
|
+
return self.deep_extend(super(coinbaseexchange, self).describe(), {
|
29
|
+
'id': 'coinbaseexchange',
|
30
|
+
'name': 'Coinbase Exchange',
|
31
31
|
'countries': ['US'],
|
32
32
|
'rateLimit': 100,
|
33
33
|
'userAgent': self.userAgents['chrome'],
|
@@ -89,19 +89,19 @@ class coinbasepro(Exchange, ImplicitAPI):
|
|
89
89
|
'6h': 21600,
|
90
90
|
'1d': 86400,
|
91
91
|
},
|
92
|
-
'hostname': '
|
92
|
+
'hostname': 'exchange.coinbase.com',
|
93
93
|
'urls': {
|
94
94
|
'test': {
|
95
|
-
'public': 'https://api-public.sandbox.
|
96
|
-
'private': 'https://api-public.sandbox.
|
95
|
+
'public': 'https://api-public.sandbox.exchange.coinbase.com',
|
96
|
+
'private': 'https://api-public.sandbox.exchange.coinbase.com',
|
97
97
|
},
|
98
|
-
'logo': 'https://
|
98
|
+
'logo': 'https://github.com/ccxt/ccxt/assets/43336371/34a65553-88aa-4a38-a714-064bd228b97e',
|
99
99
|
'api': {
|
100
100
|
'public': 'https://api.{hostname}',
|
101
101
|
'private': 'https://api.{hostname}',
|
102
102
|
},
|
103
|
-
'www': 'https://
|
104
|
-
'doc': 'https://docs.
|
103
|
+
'www': 'https://coinbase.com/',
|
104
|
+
'doc': 'https://docs.cloud.coinbase.com/exchange/docs/',
|
105
105
|
'fees': [
|
106
106
|
'https://docs.pro.coinbase.com/#fees',
|
107
107
|
'https://support.pro.coinbase.com/customer/en/portal/articles/2945310-fees',
|
@@ -315,7 +315,7 @@ class coinbasepro(Exchange, ImplicitAPI):
|
|
315
315
|
|
316
316
|
async def fetch_markets(self, params={}) -> List[Market]:
|
317
317
|
"""
|
318
|
-
retrieves data on all markets for
|
318
|
+
retrieves data on all markets for coinbaseexchange
|
319
319
|
:see: https://docs.cloud.coinbase.com/exchange/reference/exchangerestapi_getproducts
|
320
320
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
321
321
|
:returns dict[]: an array of objects representing market data
|
@@ -1047,7 +1047,7 @@ class coinbasepro(Exchange, ImplicitAPI):
|
|
1047
1047
|
"""
|
1048
1048
|
:see: https://docs.cloud.coinbase.com/exchange/reference/exchangerestapi_getorder
|
1049
1049
|
fetches information on an order made by the user
|
1050
|
-
:param str symbol: not used by
|
1050
|
+
:param str symbol: not used by coinbaseexchange fetchOrder
|
1051
1051
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1052
1052
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1053
1053
|
"""
|