ccxt 4.0.76__py2.py3-none-any.whl → 4.0.77__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- ccxt/__init__.py +1 -1
- ccxt/abstract/gate.py +24 -0
- ccxt/abstract/gateio.py +24 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bingx.py +21 -6
- ccxt/async_support/gate.py +42 -0
- ccxt/async_support/whitebit.py +1 -0
- ccxt/base/exchange.py +1 -1
- ccxt/bingx.py +21 -6
- ccxt/gate.py +42 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/okx.py +3 -0
- ccxt/whitebit.py +1 -0
- {ccxt-4.0.76.dist-info → ccxt-4.0.77.dist-info}/METADATA +4 -4
- {ccxt-4.0.76.dist-info → ccxt-4.0.77.dist-info}/RECORD +18 -18
- {ccxt-4.0.76.dist-info → ccxt-4.0.77.dist-info}/WHEEL +0 -0
- {ccxt-4.0.76.dist-info → ccxt-4.0.77.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/gate.py
CHANGED
@@ -80,6 +80,19 @@ class ImplicitAPI:
|
|
80
80
|
private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
|
81
81
|
private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
|
82
82
|
private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
|
83
|
+
private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
84
|
+
private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
85
|
+
private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
86
|
+
private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
87
|
+
private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
88
|
+
private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
89
|
+
private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
90
|
+
private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
91
|
+
private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
92
|
+
private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
93
|
+
private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
94
|
+
private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
|
95
|
+
private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
|
83
96
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
84
97
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
85
98
|
private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -213,10 +226,21 @@ class ImplicitAPI:
|
|
213
226
|
private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
|
214
227
|
private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
|
215
228
|
private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
|
229
|
+
private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
|
230
|
+
private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
|
231
|
+
private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
|
232
|
+
private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
|
233
|
+
private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
|
234
|
+
private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
|
235
|
+
private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
|
236
|
+
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
|
237
|
+
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
|
238
|
+
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
|
216
239
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
|
217
240
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
|
218
241
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
|
219
242
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
|
220
243
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
|
244
|
+
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
|
221
245
|
private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
222
246
|
private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
ccxt/abstract/gateio.py
CHANGED
@@ -80,6 +80,19 @@ class ImplicitAPI:
|
|
80
80
|
private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
|
81
81
|
private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
|
82
82
|
private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
|
83
|
+
private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
84
|
+
private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
85
|
+
private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
86
|
+
private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
87
|
+
private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
88
|
+
private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
89
|
+
private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
90
|
+
private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
91
|
+
private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
92
|
+
private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
93
|
+
private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
94
|
+
private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
|
95
|
+
private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
|
83
96
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
84
97
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
85
98
|
private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -213,10 +226,21 @@ class ImplicitAPI:
|
|
213
226
|
private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
|
214
227
|
private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
|
215
228
|
private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
|
229
|
+
private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
|
230
|
+
private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
|
231
|
+
private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
|
232
|
+
private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
|
233
|
+
private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
|
234
|
+
private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
|
235
|
+
private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
|
236
|
+
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
|
237
|
+
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
|
238
|
+
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
|
216
239
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
|
217
240
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
|
218
241
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
|
219
242
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
|
220
243
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
|
244
|
+
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
|
221
245
|
private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
222
246
|
private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bingx.py
CHANGED
@@ -1070,9 +1070,9 @@ class bingx(Exchange, ImplicitAPI):
|
|
1070
1070
|
}
|
1071
1071
|
response = None
|
1072
1072
|
if market['spot']:
|
1073
|
-
response = await self.
|
1073
|
+
response = await self.spotV1PrivateGetTicker24hr(self.extend(request, params))
|
1074
1074
|
else:
|
1075
|
-
response = await self.
|
1075
|
+
response = await self.swapV2PublicGetQuoteTicker(self.extend(request, params))
|
1076
1076
|
#
|
1077
1077
|
# {
|
1078
1078
|
# "code": 0,
|
@@ -1094,7 +1094,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
1094
1094
|
# }
|
1095
1095
|
#
|
1096
1096
|
data = self.safe_value(response, 'data')
|
1097
|
-
|
1097
|
+
ticker = self.safe_value(data, 0, data)
|
1098
|
+
return self.parse_ticker(ticker, market)
|
1098
1099
|
|
1099
1100
|
async def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
|
1100
1101
|
"""
|
@@ -1138,6 +1139,20 @@ class bingx(Exchange, ImplicitAPI):
|
|
1138
1139
|
return self.parse_tickers(tickers, symbols)
|
1139
1140
|
|
1140
1141
|
def parse_ticker(self, ticker, market=None):
|
1142
|
+
#
|
1143
|
+
# spot
|
1144
|
+
# {
|
1145
|
+
# symbol: 'BTC-USDT',
|
1146
|
+
# openPrice: '26032.08',
|
1147
|
+
# highPrice: '26178.86',
|
1148
|
+
# lowPrice: '25968.18',
|
1149
|
+
# lastPrice: '26113.60',
|
1150
|
+
# volume: '1161.79',
|
1151
|
+
# quoteVolume: '30288466.44',
|
1152
|
+
# openTime: '1693081020762',
|
1153
|
+
# closeTime: '1693167420762'
|
1154
|
+
# }
|
1155
|
+
# swap
|
1141
1156
|
#
|
1142
1157
|
# {
|
1143
1158
|
# "symbol": "BTC-USDT",
|
@@ -1155,15 +1170,15 @@ class bingx(Exchange, ImplicitAPI):
|
|
1155
1170
|
# }
|
1156
1171
|
#
|
1157
1172
|
marketId = self.safe_string(ticker, 'symbol')
|
1158
|
-
|
1159
|
-
|
1173
|
+
change = self.safe_string(ticker, 'priceChange')
|
1174
|
+
type = 'spot' if (change is None) else 'swap'
|
1175
|
+
symbol = self.safe_symbol(marketId, market, None, type)
|
1160
1176
|
open = self.safe_string(ticker, 'openPrice')
|
1161
1177
|
high = self.safe_string(ticker, 'highPrice')
|
1162
1178
|
low = self.safe_string(ticker, 'lowPrice')
|
1163
1179
|
close = self.safe_string(ticker, 'lastPrice')
|
1164
1180
|
quoteVolume = self.safe_string(ticker, 'quoteVolume')
|
1165
1181
|
baseVolume = self.safe_string(ticker, 'volume')
|
1166
|
-
change = self.safe_string(ticker, 'chapriceChangenge')
|
1167
1182
|
percentage = self.safe_string(ticker, 'priceChangePercent')
|
1168
1183
|
ts = self.safe_integer(ticker, 'closeTime')
|
1169
1184
|
datetime = self.iso8601(ts)
|
ccxt/async_support/gate.py
CHANGED
@@ -298,6 +298,29 @@ class gate(Exchange, ImplicitAPI):
|
|
298
298
|
'sub_accounts/{user_id}/keys/{key}': 1,
|
299
299
|
},
|
300
300
|
},
|
301
|
+
'portfolio': {
|
302
|
+
'get': {
|
303
|
+
'accounts': 1.5,
|
304
|
+
'account_mode': 1.5,
|
305
|
+
'borrowable': 1.5,
|
306
|
+
'transferable': 1.5,
|
307
|
+
'loans': 1.5,
|
308
|
+
'loan_records': 1.5,
|
309
|
+
'interest_records': 1.5,
|
310
|
+
'spot/orders': 1.5,
|
311
|
+
'spot/orders/{order_id}': 1.5,
|
312
|
+
},
|
313
|
+
'post': {
|
314
|
+
'loans': 1.5,
|
315
|
+
'spot/orders': 1.5,
|
316
|
+
},
|
317
|
+
'delete': {
|
318
|
+
'spot/orders/{order_id}': 1.5,
|
319
|
+
},
|
320
|
+
'patch': {
|
321
|
+
'spot/orders/{order_id}': 1.5,
|
322
|
+
},
|
323
|
+
},
|
301
324
|
'spot': {
|
302
325
|
'get': {
|
303
326
|
'fee': 1,
|
@@ -491,6 +514,22 @@ class gate(Exchange, ImplicitAPI):
|
|
491
514
|
'uni/lends': 1.5,
|
492
515
|
},
|
493
516
|
},
|
517
|
+
'loan': {
|
518
|
+
'get': {
|
519
|
+
'collateral/orders': 1.5,
|
520
|
+
'collateral/orders/{order_id}': 1.5,
|
521
|
+
'collateral/repay_records': 1.5,
|
522
|
+
'collateral/collaterals': 1.5,
|
523
|
+
'collateral/total_amount': 1.5,
|
524
|
+
'collateral/ltv': 1.5,
|
525
|
+
'collateral/currencies': 1.5,
|
526
|
+
},
|
527
|
+
'post': {
|
528
|
+
'collateral/orders': 1.5,
|
529
|
+
'collateral/repay': 1.5,
|
530
|
+
'collateral/collaterals': 1.5,
|
531
|
+
},
|
532
|
+
},
|
494
533
|
'account': {
|
495
534
|
'get': {
|
496
535
|
'detail': 1.5,
|
@@ -501,6 +540,9 @@ class gate(Exchange, ImplicitAPI):
|
|
501
540
|
'stp_groups': 1.5,
|
502
541
|
'stp_groups/{stp_id}/users': 1.5,
|
503
542
|
},
|
543
|
+
'delete': {
|
544
|
+
'stp_groups/{stp_id}/users': 1.5,
|
545
|
+
},
|
504
546
|
},
|
505
547
|
'rebate': {
|
506
548
|
'get': {
|
ccxt/async_support/whitebit.py
CHANGED
@@ -268,6 +268,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
268
268
|
'422': OrderNotFound, # {"response":null,"status":422,"errors":{"orderId":["Finished order id 1295772653 not found on your account"]},"notification":null,"warning":"Finished order id 1295772653 not found on your account","_token":null}
|
269
269
|
},
|
270
270
|
'broad': {
|
271
|
+
'This action is unauthorized': PermissionDenied, # {"code":2,"message":"This action is unauthorized. Enable your key in API settings"}
|
271
272
|
'Given amount is less than min amount': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
272
273
|
'Total is less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
273
274
|
'fee must be no less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Total amount + fee must be no less than 5.05505"]}}
|
ccxt/base/exchange.py
CHANGED
ccxt/bingx.py
CHANGED
@@ -1069,9 +1069,9 @@ class bingx(Exchange, ImplicitAPI):
|
|
1069
1069
|
}
|
1070
1070
|
response = None
|
1071
1071
|
if market['spot']:
|
1072
|
-
response = self.
|
1072
|
+
response = self.spotV1PrivateGetTicker24hr(self.extend(request, params))
|
1073
1073
|
else:
|
1074
|
-
response = self.
|
1074
|
+
response = self.swapV2PublicGetQuoteTicker(self.extend(request, params))
|
1075
1075
|
#
|
1076
1076
|
# {
|
1077
1077
|
# "code": 0,
|
@@ -1093,7 +1093,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
1093
1093
|
# }
|
1094
1094
|
#
|
1095
1095
|
data = self.safe_value(response, 'data')
|
1096
|
-
|
1096
|
+
ticker = self.safe_value(data, 0, data)
|
1097
|
+
return self.parse_ticker(ticker, market)
|
1097
1098
|
|
1098
1099
|
def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
|
1099
1100
|
"""
|
@@ -1137,6 +1138,20 @@ class bingx(Exchange, ImplicitAPI):
|
|
1137
1138
|
return self.parse_tickers(tickers, symbols)
|
1138
1139
|
|
1139
1140
|
def parse_ticker(self, ticker, market=None):
|
1141
|
+
#
|
1142
|
+
# spot
|
1143
|
+
# {
|
1144
|
+
# symbol: 'BTC-USDT',
|
1145
|
+
# openPrice: '26032.08',
|
1146
|
+
# highPrice: '26178.86',
|
1147
|
+
# lowPrice: '25968.18',
|
1148
|
+
# lastPrice: '26113.60',
|
1149
|
+
# volume: '1161.79',
|
1150
|
+
# quoteVolume: '30288466.44',
|
1151
|
+
# openTime: '1693081020762',
|
1152
|
+
# closeTime: '1693167420762'
|
1153
|
+
# }
|
1154
|
+
# swap
|
1140
1155
|
#
|
1141
1156
|
# {
|
1142
1157
|
# "symbol": "BTC-USDT",
|
@@ -1154,15 +1169,15 @@ class bingx(Exchange, ImplicitAPI):
|
|
1154
1169
|
# }
|
1155
1170
|
#
|
1156
1171
|
marketId = self.safe_string(ticker, 'symbol')
|
1157
|
-
|
1158
|
-
|
1172
|
+
change = self.safe_string(ticker, 'priceChange')
|
1173
|
+
type = 'spot' if (change is None) else 'swap'
|
1174
|
+
symbol = self.safe_symbol(marketId, market, None, type)
|
1159
1175
|
open = self.safe_string(ticker, 'openPrice')
|
1160
1176
|
high = self.safe_string(ticker, 'highPrice')
|
1161
1177
|
low = self.safe_string(ticker, 'lowPrice')
|
1162
1178
|
close = self.safe_string(ticker, 'lastPrice')
|
1163
1179
|
quoteVolume = self.safe_string(ticker, 'quoteVolume')
|
1164
1180
|
baseVolume = self.safe_string(ticker, 'volume')
|
1165
|
-
change = self.safe_string(ticker, 'chapriceChangenge')
|
1166
1181
|
percentage = self.safe_string(ticker, 'priceChangePercent')
|
1167
1182
|
ts = self.safe_integer(ticker, 'closeTime')
|
1168
1183
|
datetime = self.iso8601(ts)
|
ccxt/gate.py
CHANGED
@@ -297,6 +297,29 @@ class gate(Exchange, ImplicitAPI):
|
|
297
297
|
'sub_accounts/{user_id}/keys/{key}': 1,
|
298
298
|
},
|
299
299
|
},
|
300
|
+
'portfolio': {
|
301
|
+
'get': {
|
302
|
+
'accounts': 1.5,
|
303
|
+
'account_mode': 1.5,
|
304
|
+
'borrowable': 1.5,
|
305
|
+
'transferable': 1.5,
|
306
|
+
'loans': 1.5,
|
307
|
+
'loan_records': 1.5,
|
308
|
+
'interest_records': 1.5,
|
309
|
+
'spot/orders': 1.5,
|
310
|
+
'spot/orders/{order_id}': 1.5,
|
311
|
+
},
|
312
|
+
'post': {
|
313
|
+
'loans': 1.5,
|
314
|
+
'spot/orders': 1.5,
|
315
|
+
},
|
316
|
+
'delete': {
|
317
|
+
'spot/orders/{order_id}': 1.5,
|
318
|
+
},
|
319
|
+
'patch': {
|
320
|
+
'spot/orders/{order_id}': 1.5,
|
321
|
+
},
|
322
|
+
},
|
300
323
|
'spot': {
|
301
324
|
'get': {
|
302
325
|
'fee': 1,
|
@@ -490,6 +513,22 @@ class gate(Exchange, ImplicitAPI):
|
|
490
513
|
'uni/lends': 1.5,
|
491
514
|
},
|
492
515
|
},
|
516
|
+
'loan': {
|
517
|
+
'get': {
|
518
|
+
'collateral/orders': 1.5,
|
519
|
+
'collateral/orders/{order_id}': 1.5,
|
520
|
+
'collateral/repay_records': 1.5,
|
521
|
+
'collateral/collaterals': 1.5,
|
522
|
+
'collateral/total_amount': 1.5,
|
523
|
+
'collateral/ltv': 1.5,
|
524
|
+
'collateral/currencies': 1.5,
|
525
|
+
},
|
526
|
+
'post': {
|
527
|
+
'collateral/orders': 1.5,
|
528
|
+
'collateral/repay': 1.5,
|
529
|
+
'collateral/collaterals': 1.5,
|
530
|
+
},
|
531
|
+
},
|
493
532
|
'account': {
|
494
533
|
'get': {
|
495
534
|
'detail': 1.5,
|
@@ -500,6 +539,9 @@ class gate(Exchange, ImplicitAPI):
|
|
500
539
|
'stp_groups': 1.5,
|
501
540
|
'stp_groups/{stp_id}/users': 1.5,
|
502
541
|
},
|
542
|
+
'delete': {
|
543
|
+
'stp_groups/{stp_id}/users': 1.5,
|
544
|
+
},
|
503
545
|
},
|
504
546
|
'rebate': {
|
505
547
|
'get': {
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/okx.py
CHANGED
@@ -11,6 +11,7 @@ from ccxt.base.types import OrderType
|
|
11
11
|
from ccxt.async_support.base.ws.client import Client
|
12
12
|
from typing import Optional
|
13
13
|
from typing import List
|
14
|
+
from ccxt.base.errors import ArgumentsRequired
|
14
15
|
from ccxt.base.errors import BadRequest
|
15
16
|
from ccxt.base.errors import InvalidNonce
|
16
17
|
from ccxt.base.errors import AuthenticationError
|
@@ -226,6 +227,8 @@ class okx(ccxt.async_support.okx):
|
|
226
227
|
:param str [params.channel]: the channel to subscribe to, tickers by default. Can be tickers, sprd-tickers, index-tickers, block-tickers
|
227
228
|
:returns dict: a `ticker structure <https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure>`
|
228
229
|
"""
|
230
|
+
if self.is_empty(symbols):
|
231
|
+
raise ArgumentsRequired(self.id + ' watchTickers requires a list of symbols')
|
229
232
|
channel = None
|
230
233
|
channel, params = self.handle_option_and_params(params, 'watchTickers', 'channel', 'tickers')
|
231
234
|
newTickers = await self.subscribe_multiple('public', channel, symbols, params)
|
ccxt/whitebit.py
CHANGED
@@ -268,6 +268,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
268
268
|
'422': OrderNotFound, # {"response":null,"status":422,"errors":{"orderId":["Finished order id 1295772653 not found on your account"]},"notification":null,"warning":"Finished order id 1295772653 not found on your account","_token":null}
|
269
269
|
},
|
270
270
|
'broad': {
|
271
|
+
'This action is unauthorized': PermissionDenied, # {"code":2,"message":"This action is unauthorized. Enable your key in API settings"}
|
271
272
|
'Given amount is less than min amount': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
272
273
|
'Total is less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
273
274
|
'fee must be no less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Total amount + fee must be no less than 5.05505"]}}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.77
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -259,13 +259,13 @@ console.log(version, Object.keys(exchanges));
|
|
259
259
|
|
260
260
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
261
261
|
|
262
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
263
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
262
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.77/dist/ccxt.browser.js
|
263
|
+
* unpkg: https://unpkg.com/ccxt@4.0.77/dist/ccxt.browser.js
|
264
264
|
|
265
265
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
266
266
|
|
267
267
|
```HTML
|
268
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
268
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.77/dist/ccxt.browser.js"></script>
|
269
269
|
```
|
270
270
|
|
271
271
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=sne7AqnQxLmKq1X0Wf_OMRRHXwKstdS91uONapDmeWs,15521
|
2
2
|
ccxt/ace.py,sha256=Xisv0lJgU05Ir1H00uwBDsBC7H6-1Qdv7x2qKgVv64Y,41499
|
3
3
|
ccxt/alpaca.py,sha256=H7GYF2I-ci7WgtFHG3G74vGL8qbfIYkFI5EJrnrGWdA,33648
|
4
4
|
ccxt/ascendex.py,sha256=01s6du4Jb3KA_iJi-_RDzYnUzApyB60Z7FnstNQLbV0,132963
|
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=-d6ePbJCvRCoTEz0_4DaAunBGumu7V7GFEF4yubfa-8,398374
|
|
8
8
|
ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
|
9
9
|
ccxt/binanceus.py,sha256=RoC8nReBHXUJzRNyqMe4vhta6gLGuh1fyFkI8FOMKBE,2151
|
10
10
|
ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=ADq-5rxbDi3bPtFDQrGYGWJWv5hiHO5ObiCtXi3S0wo,112856
|
12
12
|
ccxt/bit2c.py,sha256=i3KTftaZo0wA7hFDA6ByR-XSMg0DWnulDeE6HdGXxsI,35848
|
13
13
|
ccxt/bitbank.py,sha256=USh3XJcwuXSm9F7eDHMSMw9xkWevDc--J6Lgn4m3KYU,39405
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -58,7 +58,7 @@ ccxt/digifinex.py,sha256=8T4BmCRqFSY_kNnf__kcskaBTzNDzvPf_zNmR2rwm3o,151393
|
|
58
58
|
ccxt/exmo.py,sha256=nPepx_UuidmUorcMTE_mhPuOZMst4MNZAGOT8-0NmeE,88644
|
59
59
|
ccxt/flowbtc.py,sha256=YPvm6tbsHJJUQBspFcHuVPQfVmiWzwnVvfzRqBdQX6U,1169
|
60
60
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
61
|
-
ccxt/gate.py,sha256=
|
61
|
+
ccxt/gate.py,sha256=7mEhQZZUCVsgcVC8oxY7YDXHOXAnZXipuMXAlmijA9Q,262151
|
62
62
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
63
63
|
ccxt/gemini.py,sha256=-huywMkpuitLZOUIJLjrKxNTooTn8nM-qLV1sLjUyp4,74061
|
64
64
|
ccxt/hitbtc.py,sha256=5jR_sWSALrlFEs0X_SOT0ojrxeDjhW-9FFqmiSAukvU,126498
|
@@ -101,7 +101,7 @@ ccxt/tokocrypto.py,sha256=-g0eyDasanqa2Ni3whEnez1IQiuVeKmOQhEV7hMNE4E,121652
|
|
101
101
|
ccxt/upbit.py,sha256=YpzO98GaVnSnJ4Rp2NO4FXRDtWMILr-sAxu-I3QVHhQ,75839
|
102
102
|
ccxt/wavesexchange.py,sha256=efzFFrjlzhwoMkJEgalewR3j3iuqoJjQjAh8oCjJcwg,112924
|
103
103
|
ccxt/wazirx.py,sha256=7wGV00xbSVnbbeYsw3lH9IyBa1E15dMwPa1qBLYgx9c,35743
|
104
|
-
ccxt/whitebit.py,sha256=
|
104
|
+
ccxt/whitebit.py,sha256=pSCtmXwO2Js8QXKvgzQzEVYhJpTxSIA5pH79emV4uSA,98318
|
105
105
|
ccxt/woo.py,sha256=z1KmyemlOZXinwx7iMVJI0Rr3niRq15HwZ532joyxFE,105268
|
106
106
|
ccxt/yobit.py,sha256=fR2NGmJnY9zhma02vJMh1Z1q9wfPz3-ssGLbfhKC5bo,51830
|
107
107
|
ccxt/zaif.py,sha256=OWdPjhPAbCuYqjfqutqRZ-dxwUNaTqI3AZirJpQgmvs,28888
|
@@ -165,8 +165,8 @@ ccxt/abstract/deribit.py,sha256=rS_982u8dOVsh2vGSB5TO7K8Tye0Alq-Rg9fYZwz8hg,1549
|
|
165
165
|
ccxt/abstract/digifinex.py,sha256=2tlP2G6Niu6TSbNUcgxvXdHfln6VhAZliXV7upFwpas,9386
|
166
166
|
ccxt/abstract/exmo.py,sha256=yq9zis5G9Qjsecs-YSHAghDjad6y52jFteWSBJZFg8o,6177
|
167
167
|
ccxt/abstract/fmfwio.py,sha256=-bjb83y_4FGdHtHMo-naHYoI5JyltlF2M-TzjAZJ3Hg,10949
|
168
|
-
ccxt/abstract/gate.py,sha256
|
169
|
-
ccxt/abstract/gateio.py,sha256
|
168
|
+
ccxt/abstract/gate.py,sha256=-c44Lxt05-rvQaGhD57U1LyMyoC0m6bU6_IsiujbKpo,37155
|
169
|
+
ccxt/abstract/gateio.py,sha256=-c44Lxt05-rvQaGhD57U1LyMyoC0m6bU6_IsiujbKpo,37155
|
170
170
|
ccxt/abstract/gemini.py,sha256=6TyBUDw-e4b02J5ToCX0eaXQfF0Knvkf7ToLcseqcIY,6915
|
171
171
|
ccxt/abstract/hitbtc.py,sha256=-bjb83y_4FGdHtHMo-naHYoI5JyltlF2M-TzjAZJ3Hg,10949
|
172
172
|
ccxt/abstract/hitbtc3.py,sha256=-bjb83y_4FGdHtHMo-naHYoI5JyltlF2M-TzjAZJ3Hg,10949
|
@@ -213,7 +213,7 @@ ccxt/abstract/woo.py,sha256=Z3ua45hKE0Tf9rtfSEYYgGEztaTO1Ri3mKl_hIo3OHs,8768
|
|
213
213
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
214
214
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
215
215
|
ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
|
216
|
-
ccxt/async_support/__init__.py,sha256=
|
216
|
+
ccxt/async_support/__init__.py,sha256=RSS8-rDCstnbePenockEwUPMhoxGJHxNLYDbbuoddlQ,15304
|
217
217
|
ccxt/async_support/ace.py,sha256=GfB1wI9oK_nmj2IH-J1KYXkg8qjzWlWK7SaMuZCWRdk,41723
|
218
218
|
ccxt/async_support/alpaca.py,sha256=frGPbeZHd2nEN9Q45phgnNOmU4Brh9e_FgDEEFnRyVM,33794
|
219
219
|
ccxt/async_support/ascendex.py,sha256=Cv4Okc5hRD23CVReRIT9vrI_4hWtvTyOWts5XXohW_c,133595
|
@@ -223,7 +223,7 @@ ccxt/async_support/binance.py,sha256=KSc-Z39r6VK6HPoi2_JGJcC59YSs49bTbm90gmZyBJM
|
|
223
223
|
ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
|
224
224
|
ccxt/async_support/binanceus.py,sha256=Jtyl0jtSOpdjAAAYcSUzH6YRVxe88RJ6f4_IUge5gWg,2165
|
225
225
|
ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
|
226
|
-
ccxt/async_support/bingx.py,sha256=
|
226
|
+
ccxt/async_support/bingx.py,sha256=fINB2Xws8RVPjmLnzrzo2JvquC_mglIp_DYZBw5zBIs,113550
|
227
227
|
ccxt/async_support/bit2c.py,sha256=BjoSNY-lVr3Fh45F-QEyKvCBy94t14dV6uzG89te9xI,36054
|
228
228
|
ccxt/async_support/bitbank.py,sha256=FN-4xLWqfUARmKFfrWV1s_0Luv4warSDLJmc1YYfxT8,39665
|
229
229
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -273,7 +273,7 @@ ccxt/async_support/digifinex.py,sha256=G3BoD3bB1a7gRN1KlHJyVMw5uUKQ2eSLsIcLBnrqX
|
|
273
273
|
ccxt/async_support/exmo.py,sha256=ezih4gdfKN8nnP11N6-NpKk0ic9g9u0hpdLPR879Exs,89186
|
274
274
|
ccxt/async_support/flowbtc.py,sha256=bCnvtcNnPxxaxqVjI1GGXKhIpz_1r4GIFWqqPokvCR0,1183
|
275
275
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
276
|
-
ccxt/async_support/gate.py,sha256=
|
276
|
+
ccxt/async_support/gate.py,sha256=BW2XFFGwnb3jCHAxA3KF0qozB7KG0_986sLX02AsulU,263109
|
277
277
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
278
278
|
ccxt/async_support/gemini.py,sha256=Lg8YQf-3NSL8qcub6EG1Y9vhqS3x1bXFiVRwpdz3bXk,74551
|
279
279
|
ccxt/async_support/hitbtc.py,sha256=BexA5IY_Bl82NMhIDpCmL10y9oBrJEqK5z5v5K0_Xqs,127184
|
@@ -316,13 +316,13 @@ ccxt/async_support/tokocrypto.py,sha256=3dllnzzV6Nyby4eysWOLOSFrtBXee30DuT1eiqST
|
|
316
316
|
ccxt/async_support/upbit.py,sha256=r2cQ2WDQPvOsVPCxx2Uqfh9gtQLo1tGi7Ave1voFGpQ,76273
|
317
317
|
ccxt/async_support/wavesexchange.py,sha256=5DZkkYA0NlmWkrD-6LiqFyZQNMK1m91sCw3xvsB4sf4,113474
|
318
318
|
ccxt/async_support/wazirx.py,sha256=PFjb3U-hAbdE7YDTwA3LGqNcVmFoE2rYQjfr2PLfZJw,35991
|
319
|
-
ccxt/async_support/whitebit.py,sha256=
|
319
|
+
ccxt/async_support/whitebit.py,sha256=Rl7FznEGXOglxoFzXejns01Qhcn-ycYVJkBLd_rcukU,98812
|
320
320
|
ccxt/async_support/woo.py,sha256=_UahOgG8CHaFXFKnuelUERs4_U-8sXvWvqGxayyAijc,105870
|
321
321
|
ccxt/async_support/yobit.py,sha256=d9hY9Sam1tIdDyUavBz_LeO74vfKPFk5_-4gS5iwurU,52114
|
322
322
|
ccxt/async_support/zaif.py,sha256=3iz6oNEYONAjhCLVKK13T1d2eQ0pklzgxCkkdqn5zyM,29070
|
323
323
|
ccxt/async_support/zonda.py,sha256=BGNx6UYa19tDo_UBLPC6sJKirzTQsuQpdpzsXiVR0JE,79973
|
324
324
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
325
|
-
ccxt/async_support/base/exchange.py,sha256=
|
325
|
+
ccxt/async_support/base/exchange.py,sha256=utfY_WqnM2Am3B2kGK9EYcIRReSeeN5cW2nochAeiNI,145348
|
326
326
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
327
327
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
328
328
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=3YtsI6nV2ViYIZB7sGaowpoiF9Xaf93gHXH98253mJQ,5011
|
@@ -336,10 +336,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
|
|
336
336
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
337
337
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
338
338
|
ccxt/base/errors.py,sha256=2KC_p5UunRhrgPfEEHtE-II2buIPqKJUjQZHiIdAhog,3523
|
339
|
-
ccxt/base/exchange.py,sha256=
|
339
|
+
ccxt/base/exchange.py,sha256=siAbA7AcF-7B-gQ1rm7x29W-C-asOx0B2MY2kyzozJ8,185174
|
340
340
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
341
341
|
ccxt/base/types.py,sha256=NQMNi7eE7XvF3LzOLkYflWL_4etzbGQgSCdp1hm0sD4,2109
|
342
|
-
ccxt/pro/__init__.py,sha256=
|
342
|
+
ccxt/pro/__init__.py,sha256=7vCA2ZAlepWYUbhpv0RWJt8XojzycGh2ERS5qtYIlmA,6480
|
343
343
|
ccxt/pro/alpaca.py,sha256=OO5fBSjG89OmlSY_6gy20BCs3hJMF8kWkeHtxM-JaTY,26762
|
344
344
|
ccxt/pro/ascendex.py,sha256=KrTNXPurOm4EySkSV8pIg8CcQ2BBFyPZ15Hbce6HSSQ,34569
|
345
345
|
ccxt/pro/bequant.py,sha256=3IeQ0vPg-eVqPiGMfX7yqH9qtXKm1ZqocQDeLwpA8EE,1093
|
@@ -391,7 +391,7 @@ ccxt/pro/mexc3.py,sha256=SFCoEPWnmrD-DKTYEhEicld2aTX6s8SZHxTWeCdozwI,388
|
|
391
391
|
ccxt/pro/ndax.py,sha256=Iq9alo8njEmYSI8WMmicut2eLPsHBPG82YYLi-iNbZw,22682
|
392
392
|
ccxt/pro/okcoin.py,sha256=G-JrfC50gcLYHj99oYnJPY7RZl5_JtFY7yWiB2zpIUA,30265
|
393
393
|
ccxt/pro/okex.py,sha256=mKJJEfmOzmt31KyDIPVRuAqV_mL280pc2mbRz5h2oOg,382
|
394
|
-
ccxt/pro/okx.py,sha256=
|
394
|
+
ccxt/pro/okx.py,sha256=J2iZgA93ZFeRzk-iyDirzTew9hYq7WN3__Wd4GXkrgI,56228
|
395
395
|
ccxt/pro/phemex.py,sha256=bfKMh4hzMeT2Q6DbpzqWaLv-Oc2F6eK52HBNTM5bzzs,59923
|
396
396
|
ccxt/pro/poloniex.py,sha256=K3zW2c8jGIK_SkC4lxaSwvVqL3iqiMyoQS-057SzlhE,41682
|
397
397
|
ccxt/pro/poloniexfutures.py,sha256=abjDkiqaKvBChcDSZ_wKbW4fJyERmtHqhnfbdZLhcOs,40313
|
@@ -450,7 +450,7 @@ ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98
|
|
450
450
|
ccxt/test/base/test_trade.py,sha256=rOEbyHLvsB-rh7X7WOcfeOV_3MOGq_0s4ovg2SRk-2I,2284
|
451
451
|
ccxt/test/base/test_trading_fee.py,sha256=2_WCp3qJ2UpraQQoGFlGJYwHD-T0Bm5W7KIw4zpFvSM,1068
|
452
452
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
453
|
-
ccxt-4.0.
|
454
|
-
ccxt-4.0.
|
455
|
-
ccxt-4.0.
|
456
|
-
ccxt-4.0.
|
453
|
+
ccxt-4.0.77.dist-info/METADATA,sha256=h8E1-bsyn9La_g8_UEJYhZu1ZVU3miL7vbkyNyV-9XM,110642
|
454
|
+
ccxt-4.0.77.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
455
|
+
ccxt-4.0.77.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
456
|
+
ccxt-4.0.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|