ccxt 4.3.66 → 4.3.68
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.
- package/README.md +3 -3
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -4
- package/dist/cjs/src/base/functions/type.js +2 -2
- package/dist/cjs/src/bingx.js +478 -159
- package/dist/cjs/src/bitget.js +4 -2
- package/dist/cjs/src/bithumb.js +61 -17
- package/dist/cjs/src/pro/krakenfutures.js +7 -6
- package/dist/cjs/src/pro/okx.js +17 -4
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bingx.d.ts +7 -0
- package/js/src/base/Exchange.d.ts +14 -13
- package/js/src/base/Exchange.js +6 -4
- package/js/src/base/functions/type.js +2 -2
- package/js/src/bingx.d.ts +2 -0
- package/js/src/bingx.js +478 -159
- package/js/src/bitget.js +4 -2
- package/js/src/bithumb.js +61 -17
- package/js/src/pro/bitget.d.ts +1 -1
- package/js/src/pro/bybit.d.ts +1 -1
- package/js/src/pro/coinone.d.ts +1 -1
- package/js/src/pro/currencycom.d.ts +1 -1
- package/js/src/pro/hollaex.d.ts +1 -1
- package/js/src/pro/hyperliquid.d.ts +1 -1
- package/js/src/pro/krakenfutures.js +7 -6
- package/js/src/pro/kucoin.d.ts +1 -1
- package/js/src/pro/kucoinfutures.d.ts +1 -1
- package/js/src/pro/mexc.d.ts +1 -1
- package/js/src/pro/okcoin.d.ts +1 -1
- package/js/src/pro/okx.d.ts +2 -2
- package/js/src/pro/okx.js +18 -5
- package/js/src/pro/oxfun.d.ts +1 -1
- package/js/src/pro/p2b.d.ts +1 -1
- package/js/src/pro/poloniex.d.ts +1 -1
- package/js/src/pro/whitebit.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/src/abstract/bittrex.js +0 -9
- package/dist/cjs/src/bittrex.js +0 -2308
- package/dist/cjs/src/pro/bittrex.js +0 -959
- package/js/src/bittrex.d.ts +0 -97
- package/js/src/bittrex.js +0 -2309
- package/js/src/coinbaseprime.d.ts +0 -4
- package/js/src/coinbaseprime.js +0 -32
- package/js/src/pro/bittrex.d.ts +0 -69
- package/js/src/pro/bittrex.js +0 -960
- package/js/src/pro/coinbaseprime.d.ts +0 -4
- package/js/src/pro/coinbaseprime.js +0 -33
- package/js/src/pro/huobipro.d.ts +0 -4
- package/js/src/pro/huobipro.js +0 -17
- package/js/src/pro/mexc3.d.ts +0 -4
- package/js/src/pro/mexc3.js +0 -17
- package/js/src/pro/okex.d.ts +0 -4
- package/js/src/pro/okex.js +0 -17
package/dist/cjs/src/bitget.js
CHANGED
|
@@ -5205,8 +5205,10 @@ class bitget extends bitget$1 {
|
|
|
5205
5205
|
response = JSON.parse(response);
|
|
5206
5206
|
}
|
|
5207
5207
|
const data = this.safeDict(response, 'data');
|
|
5208
|
-
if ((data !== undefined)
|
|
5209
|
-
|
|
5208
|
+
if ((data !== undefined)) {
|
|
5209
|
+
if (!Array.isArray(data)) {
|
|
5210
|
+
return this.parseOrder(data, market);
|
|
5211
|
+
}
|
|
5210
5212
|
}
|
|
5211
5213
|
const dataList = this.safeList(response, 'data', []);
|
|
5212
5214
|
const first = this.safeDict(dataList, 0, {});
|
package/dist/cjs/src/bithumb.js
CHANGED
|
@@ -203,17 +203,57 @@ class bithumb extends bithumb$1 {
|
|
|
203
203
|
* @returns {object[]} an array of objects representing market data
|
|
204
204
|
*/
|
|
205
205
|
const result = [];
|
|
206
|
-
const quoteCurrencies = this.
|
|
206
|
+
const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
|
|
207
207
|
const quotes = Object.keys(quoteCurrencies);
|
|
208
|
+
const promises = [];
|
|
208
209
|
for (let i = 0; i < quotes.length; i++) {
|
|
209
|
-
const quote = quotes[i];
|
|
210
|
-
const quoteId = quote;
|
|
211
|
-
const extension = this.safeValue(quoteCurrencies, quote, {});
|
|
212
210
|
const request = {
|
|
213
|
-
'quoteId':
|
|
211
|
+
'quoteId': quotes[i],
|
|
214
212
|
};
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
|
|
214
|
+
//
|
|
215
|
+
// {
|
|
216
|
+
// "status": "0000",
|
|
217
|
+
// "data": {
|
|
218
|
+
// "ETH": {
|
|
219
|
+
// "opening_price": "0.05153399",
|
|
220
|
+
// "closing_price": "0.05145144",
|
|
221
|
+
// "min_price": "0.05145144",
|
|
222
|
+
// "max_price": "0.05160781",
|
|
223
|
+
// "units_traded": "6.541124172077830855",
|
|
224
|
+
// "acc_trade_value": "0.33705472498492329997697755",
|
|
225
|
+
// "prev_closing_price": "0.0515943",
|
|
226
|
+
// "units_traded_24H": "43.368879902677400513",
|
|
227
|
+
// "acc_trade_value_24H": "2.24165339555398079994373342",
|
|
228
|
+
// "fluctate_24H": "-0.00018203",
|
|
229
|
+
// "fluctate_rate_24H": "-0.35"
|
|
230
|
+
// },
|
|
231
|
+
// "XRP": {
|
|
232
|
+
// "opening_price": "0.00000918",
|
|
233
|
+
// "closing_price": "0.0000092",
|
|
234
|
+
// "min_price": "0.00000918",
|
|
235
|
+
// "max_price": "0.0000092",
|
|
236
|
+
// "units_traded": "6516.949363",
|
|
237
|
+
// "acc_trade_value": "0.0598792533602796",
|
|
238
|
+
// "prev_closing_price": "0.00000916",
|
|
239
|
+
// "units_traded_24H": "229161.50354738",
|
|
240
|
+
// "acc_trade_value_24H": "2.0446589371637117",
|
|
241
|
+
// "fluctate_24H": "0.00000049",
|
|
242
|
+
// "fluctate_rate_24H": "5.63"
|
|
243
|
+
// },
|
|
244
|
+
// ...
|
|
245
|
+
// "date": "1721675913145"
|
|
246
|
+
// }
|
|
247
|
+
// }
|
|
248
|
+
//
|
|
249
|
+
}
|
|
250
|
+
const results = await Promise.all(promises);
|
|
251
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
252
|
+
const quote = quotes[i];
|
|
253
|
+
const quoteId = quote;
|
|
254
|
+
const response = results[i];
|
|
255
|
+
const data = this.safeDict(response, 'data');
|
|
256
|
+
const extension = this.safeDict(quoteCurrencies, quote, {});
|
|
217
257
|
const currencyIds = Object.keys(data);
|
|
218
258
|
for (let j = 0; j < currencyIds.length; j++) {
|
|
219
259
|
const currencyId = currencyIds[j];
|
|
@@ -282,7 +322,7 @@ class bithumb extends bithumb$1 {
|
|
|
282
322
|
}
|
|
283
323
|
parseBalance(response) {
|
|
284
324
|
const result = { 'info': response };
|
|
285
|
-
const balances = this.
|
|
325
|
+
const balances = this.safeDict(response, 'data');
|
|
286
326
|
const codes = Object.keys(this.currencies);
|
|
287
327
|
for (let i = 0; i < codes.length; i++) {
|
|
288
328
|
const code = codes[i];
|
|
@@ -353,7 +393,7 @@ class bithumb extends bithumb$1 {
|
|
|
353
393
|
// }
|
|
354
394
|
// }
|
|
355
395
|
//
|
|
356
|
-
const data = this.
|
|
396
|
+
const data = this.safeDict(response, 'data', {});
|
|
357
397
|
const timestamp = this.safeInteger(data, 'timestamp');
|
|
358
398
|
return this.parseOrderBook(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity');
|
|
359
399
|
}
|
|
@@ -417,15 +457,19 @@ class bithumb extends bithumb$1 {
|
|
|
417
457
|
*/
|
|
418
458
|
await this.loadMarkets();
|
|
419
459
|
const result = {};
|
|
420
|
-
const quoteCurrencies = this.
|
|
460
|
+
const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
|
|
421
461
|
const quotes = Object.keys(quoteCurrencies);
|
|
462
|
+
const promises = [];
|
|
422
463
|
for (let i = 0; i < quotes.length; i++) {
|
|
423
|
-
const quote = quotes[i];
|
|
424
|
-
const quoteId = quote;
|
|
425
464
|
const request = {
|
|
426
|
-
'quoteId':
|
|
465
|
+
'quoteId': quotes[i],
|
|
427
466
|
};
|
|
428
|
-
|
|
467
|
+
promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
|
|
468
|
+
}
|
|
469
|
+
const responses = await Promise.all(promises);
|
|
470
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
471
|
+
const quote = quotes[i];
|
|
472
|
+
const response = responses[i];
|
|
429
473
|
//
|
|
430
474
|
// {
|
|
431
475
|
// "status":"0000",
|
|
@@ -447,7 +491,7 @@ class bithumb extends bithumb$1 {
|
|
|
447
491
|
// }
|
|
448
492
|
// }
|
|
449
493
|
//
|
|
450
|
-
const data = this.
|
|
494
|
+
const data = this.safeDict(response, 'data', {});
|
|
451
495
|
const timestamp = this.safeInteger(data, 'date');
|
|
452
496
|
const tickers = this.omit(data, 'date');
|
|
453
497
|
const currencyIds = Object.keys(tickers);
|
|
@@ -832,7 +876,7 @@ class bithumb extends bithumb$1 {
|
|
|
832
876
|
// }
|
|
833
877
|
//
|
|
834
878
|
const timestamp = this.safeIntegerProduct(order, 'order_date', 0.001);
|
|
835
|
-
const sideProperty = this.
|
|
879
|
+
const sideProperty = this.safeString2(order, 'type', 'side');
|
|
836
880
|
const side = (sideProperty === 'bid') ? 'buy' : 'sell';
|
|
837
881
|
const status = this.parseOrderStatus(this.safeString(order, 'order_status'));
|
|
838
882
|
const price = this.safeString2(order, 'order_price', 'price');
|
|
@@ -863,7 +907,7 @@ class bithumb extends bithumb$1 {
|
|
|
863
907
|
symbol = market['symbol'];
|
|
864
908
|
}
|
|
865
909
|
const id = this.safeString(order, 'order_id');
|
|
866
|
-
const rawTrades = this.
|
|
910
|
+
const rawTrades = this.safeList(order, 'contract', []);
|
|
867
911
|
return this.safeOrder({
|
|
868
912
|
'info': order,
|
|
869
913
|
'id': id,
|
|
@@ -76,17 +76,17 @@ class krakenfutures extends krakenfutures$1 {
|
|
|
76
76
|
const url = this.urls['api']['ws'];
|
|
77
77
|
const messageHash = 'challenge';
|
|
78
78
|
const client = this.client(url);
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const future = client.future(messageHash);
|
|
80
|
+
const authenticated = this.safeValue(client.subscriptions, messageHash);
|
|
81
|
+
if (authenticated === undefined) {
|
|
81
82
|
const request = {
|
|
82
83
|
'event': 'challenge',
|
|
83
84
|
'api_key': this.apiKey,
|
|
84
85
|
};
|
|
85
86
|
const message = this.extend(request, params);
|
|
86
|
-
|
|
87
|
-
client.subscriptions[messageHash] = future;
|
|
87
|
+
this.watch(url, messageHash, message, messageHash);
|
|
88
88
|
}
|
|
89
|
-
return future;
|
|
89
|
+
return await future;
|
|
90
90
|
}
|
|
91
91
|
async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
|
|
92
92
|
/**
|
|
@@ -1572,7 +1572,8 @@ class krakenfutures extends krakenfutures$1 {
|
|
|
1572
1572
|
const signature = this.hmac(hashedChallenge, base64Secret, sha512.sha512, 'base64');
|
|
1573
1573
|
this.options['challenge'] = challenge;
|
|
1574
1574
|
this.options['signedChallenge'] = signature;
|
|
1575
|
-
client.
|
|
1575
|
+
const future = this.safeValue(client.futures, messageHash);
|
|
1576
|
+
future.resolve(true);
|
|
1576
1577
|
}
|
|
1577
1578
|
else {
|
|
1578
1579
|
const error = new errors.AuthenticationError(this.id + ' ' + this.json(message));
|
package/dist/cjs/src/pro/okx.js
CHANGED
|
@@ -894,7 +894,7 @@ class okx extends okx$1 {
|
|
|
894
894
|
this.handleDelta(bookside, deltas[i]);
|
|
895
895
|
}
|
|
896
896
|
}
|
|
897
|
-
handleOrderBookMessage(client, message, orderbook, messageHash) {
|
|
897
|
+
handleOrderBookMessage(client, message, orderbook, messageHash, market = undefined) {
|
|
898
898
|
//
|
|
899
899
|
// {
|
|
900
900
|
// "asks": [
|
|
@@ -909,6 +909,9 @@ class okx extends okx$1 {
|
|
|
909
909
|
// ],
|
|
910
910
|
// "instId": "BTC-USDT",
|
|
911
911
|
// "ts": "1626537446491"
|
|
912
|
+
// "checksum": -855196043,
|
|
913
|
+
// "prevSeqId": 123456,
|
|
914
|
+
// "seqId": 123457
|
|
912
915
|
// }
|
|
913
916
|
//
|
|
914
917
|
const asks = this.safeValue(message, 'asks', []);
|
|
@@ -918,9 +921,12 @@ class okx extends okx$1 {
|
|
|
918
921
|
this.handleDeltas(storedAsks, asks);
|
|
919
922
|
this.handleDeltas(storedBids, bids);
|
|
920
923
|
const marketId = this.safeString(message, 'instId');
|
|
921
|
-
const symbol = this.safeSymbol(marketId);
|
|
924
|
+
const symbol = this.safeSymbol(marketId, market);
|
|
922
925
|
const checksum = this.handleOption('watchOrderBook', 'checksum', true);
|
|
926
|
+
const seqId = this.safeInteger(message, 'seqId');
|
|
923
927
|
if (checksum) {
|
|
928
|
+
const prevSeqId = this.safeInteger(message, 'prevSeqId');
|
|
929
|
+
const nonce = orderbook['nonce'];
|
|
924
930
|
const asksLength = storedAsks.length;
|
|
925
931
|
const bidsLength = storedBids.length;
|
|
926
932
|
const payloadArray = [];
|
|
@@ -937,14 +943,21 @@ class okx extends okx$1 {
|
|
|
937
943
|
const payload = payloadArray.join(':');
|
|
938
944
|
const responseChecksum = this.safeInteger(message, 'checksum');
|
|
939
945
|
const localChecksum = this.crc32(payload, true);
|
|
946
|
+
let error = undefined;
|
|
947
|
+
if (prevSeqId !== -1 && nonce !== prevSeqId) {
|
|
948
|
+
error = new errors.InvalidNonce(this.id + ' watchOrderBook received invalid nonce');
|
|
949
|
+
}
|
|
940
950
|
if (responseChecksum !== localChecksum) {
|
|
941
|
-
|
|
951
|
+
error = new errors.ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
|
|
952
|
+
}
|
|
953
|
+
if (error !== undefined) {
|
|
942
954
|
delete client.subscriptions[messageHash];
|
|
943
955
|
delete this.orderbooks[symbol];
|
|
944
956
|
client.reject(error, messageHash);
|
|
945
957
|
}
|
|
946
958
|
}
|
|
947
959
|
const timestamp = this.safeInteger(message, 'ts');
|
|
960
|
+
orderbook['nonce'] = seqId;
|
|
948
961
|
orderbook['timestamp'] = timestamp;
|
|
949
962
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
950
963
|
return orderbook;
|
|
@@ -1066,7 +1079,7 @@ class okx extends okx$1 {
|
|
|
1066
1079
|
const orderbook = this.orderbooks[symbol];
|
|
1067
1080
|
for (let i = 0; i < data.length; i++) {
|
|
1068
1081
|
const update = data[i];
|
|
1069
|
-
this.handleOrderBookMessage(client, update, orderbook, messageHash);
|
|
1082
|
+
this.handleOrderBookMessage(client, update, orderbook, messageHash, market);
|
|
1070
1083
|
client.resolve(orderbook, messageHash);
|
|
1071
1084
|
}
|
|
1072
1085
|
}
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
|
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, TransferEntries, LeverageTiers } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.3.
|
|
7
|
+
declare const version = "4.3.67";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
package/js/ccxt.js
CHANGED
|
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
|
|
|
38
38
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.3.
|
|
41
|
+
const version = '4.3.68';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
|
@@ -84,13 +84,20 @@ interface Exchange {
|
|
|
84
84
|
cswapV1PrivateGetTradeLeverage(params?: {}): Promise<implicitReturnType>;
|
|
85
85
|
cswapV1PrivateGetTradeForceOrders(params?: {}): Promise<implicitReturnType>;
|
|
86
86
|
cswapV1PrivateGetTradeAllFillOrders(params?: {}): Promise<implicitReturnType>;
|
|
87
|
+
cswapV1PrivateGetTradeOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
88
|
+
cswapV1PrivateGetTradeOrderDetail(params?: {}): Promise<implicitReturnType>;
|
|
89
|
+
cswapV1PrivateGetTradeOrderHistory(params?: {}): Promise<implicitReturnType>;
|
|
90
|
+
cswapV1PrivateGetTradeMarginType(params?: {}): Promise<implicitReturnType>;
|
|
87
91
|
cswapV1PrivateGetUserCommissionRate(params?: {}): Promise<implicitReturnType>;
|
|
88
92
|
cswapV1PrivateGetUserPositions(params?: {}): Promise<implicitReturnType>;
|
|
89
93
|
cswapV1PrivateGetUserBalance(params?: {}): Promise<implicitReturnType>;
|
|
90
94
|
cswapV1PrivatePostTradeOrder(params?: {}): Promise<implicitReturnType>;
|
|
91
95
|
cswapV1PrivatePostTradeLeverage(params?: {}): Promise<implicitReturnType>;
|
|
92
96
|
cswapV1PrivatePostTradeCloseAllPositions(params?: {}): Promise<implicitReturnType>;
|
|
97
|
+
cswapV1PrivatePostTradeMarginType(params?: {}): Promise<implicitReturnType>;
|
|
98
|
+
cswapV1PrivatePostTradePositionMargin(params?: {}): Promise<implicitReturnType>;
|
|
93
99
|
cswapV1PrivateDeleteTradeAllOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
100
|
+
cswapV1PrivateDeleteTradeCancelOrder(params?: {}): Promise<implicitReturnType>;
|
|
94
101
|
contractV1PrivateGetAllPosition(params?: {}): Promise<implicitReturnType>;
|
|
95
102
|
contractV1PrivateGetAllOrders(params?: {}): Promise<implicitReturnType>;
|
|
96
103
|
contractV1PrivateGetBalance(params?: {}): Promise<implicitReturnType>;
|
|
@@ -7,6 +7,7 @@ import type { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, B
|
|
|
7
7
|
export type { Market, Trade, Fee, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, Transaction, DepositAddressResponse, Currency, MinMax, IndexType, Int, Bool, OrderType, OrderSide, Position, LedgerEntry, BorrowInterest, OpenInterest, LeverageTier, TransferEntry, CrossBorrowRate, FundingRateHistory, Liquidation, FundingHistory, OrderRequest, MarginMode, Tickers, Greeks, Option, OptionChain, Str, Num, MarketInterface, CurrencyInterface, BalanceAccount, MarginModes, MarketType, Leverage, Leverages, LastPrice, LastPrices, Account, Strings, Conversion } from './types.js';
|
|
8
8
|
import { ArrayCache, ArrayCacheByTimestamp } from './ws/Cache.js';
|
|
9
9
|
import { OrderBook as Ob } from './ws/OrderBook.js';
|
|
10
|
+
import Client from './ws/Client.js';
|
|
10
11
|
/**
|
|
11
12
|
* @class Exchange
|
|
12
13
|
*/
|
|
@@ -648,7 +649,7 @@ export default class Exchange {
|
|
|
648
649
|
indexedOrderBook(snapshot?: {}, depth?: number): IndexedOrderBook;
|
|
649
650
|
countedOrderBook(snapshot?: {}, depth?: number): CountedOrderBook;
|
|
650
651
|
handleMessage(client: any, message: any): void;
|
|
651
|
-
ping(client:
|
|
652
|
+
ping(client: Client): any;
|
|
652
653
|
client(url: string): WsClient;
|
|
653
654
|
watchMultiple(url: string, messageHashes: string[], message?: any, subscribeHashes?: any, subscription?: any): import("./ws/Future.js").FutureInterface;
|
|
654
655
|
watch(url: string, messageHash: string, message?: any, subscribeHash?: any, subscription?: any): any;
|
|
@@ -658,7 +659,7 @@ export default class Exchange {
|
|
|
658
659
|
close(): Promise<void>;
|
|
659
660
|
loadOrderBook(client: any, messageHash: string, symbol: string, limit?: Int, params?: {}): Promise<void>;
|
|
660
661
|
convertToBigInt(value: string): bigint;
|
|
661
|
-
stringToCharsArray(value:
|
|
662
|
+
stringToCharsArray(value: string): string[];
|
|
662
663
|
valueIsDefined(value: any): boolean;
|
|
663
664
|
arraySlice(array: any, first: any, second?: any): any;
|
|
664
665
|
getProperty(obj: any, property: any, defaultValue?: any): any;
|
|
@@ -668,9 +669,9 @@ export default class Exchange {
|
|
|
668
669
|
ethAbiEncode(types: any, args: any): Uint8Array;
|
|
669
670
|
ethEncodeStructuredData(domain: any, messageTypes: any, messageData: any): Uint8Array;
|
|
670
671
|
intToBase16(elem: any): string;
|
|
671
|
-
extendExchangeOptions(newOptions:
|
|
672
|
+
extendExchangeOptions(newOptions: Dict): void;
|
|
672
673
|
createSafeDictionary(): {};
|
|
673
|
-
randomBytes(length:
|
|
674
|
+
randomBytes(length: number): string;
|
|
674
675
|
safeBoolN(dictionaryOrList: any, keys: IndexType[], defaultValue?: boolean): boolean | undefined;
|
|
675
676
|
safeBool2(dictionary: any, key1: IndexType, key2: IndexType, defaultValue?: boolean): boolean | undefined;
|
|
676
677
|
safeBool(dictionary: any, key: IndexType, defaultValue?: boolean): boolean | undefined;
|
|
@@ -722,7 +723,7 @@ export default class Exchange {
|
|
|
722
723
|
parseTrade(trade: Dict, market?: Market): Trade;
|
|
723
724
|
parseTransaction(transaction: Dict, currency?: Currency): Transaction;
|
|
724
725
|
parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
|
|
725
|
-
parseAccount(account:
|
|
726
|
+
parseAccount(account: Dict): Account;
|
|
726
727
|
parseLedgerEntry(item: Dict, currency?: Currency): object;
|
|
727
728
|
parseOrder(order: Dict, market?: Market): Order;
|
|
728
729
|
fetchCrossBorrowRates(params?: {}): Promise<CrossBorrowRates>;
|
|
@@ -796,11 +797,11 @@ export default class Exchange {
|
|
|
796
797
|
info: Dictionary<any>;
|
|
797
798
|
};
|
|
798
799
|
safeCurrencyStructure(currency: object): CurrencyInterface;
|
|
799
|
-
safeMarketStructure(market?:
|
|
800
|
+
safeMarketStructure(market?: Dict): MarketInterface;
|
|
800
801
|
setMarkets(markets: any, currencies?: any): Dictionary<any>;
|
|
801
802
|
getDescribeForExtendedWsExchange(currentRestInstance: any, parentRestInstance: any, wsBaseDescribe: Dictionary<any>): any;
|
|
802
|
-
safeBalance(balance:
|
|
803
|
-
safeOrder(order:
|
|
803
|
+
safeBalance(balance: Dict): Balances;
|
|
804
|
+
safeOrder(order: Dict, market?: Market): Order;
|
|
804
805
|
parseOrders(orders: object, market?: Market, since?: Int, limit?: Int, params?: {}): Order[];
|
|
805
806
|
calculateFee(symbol: string, type: string, side: string, amount: number, price: number, takerOrMaker?: string, params?: {}): {
|
|
806
807
|
type: string;
|
|
@@ -808,12 +809,12 @@ export default class Exchange {
|
|
|
808
809
|
rate: number;
|
|
809
810
|
cost: number;
|
|
810
811
|
};
|
|
811
|
-
safeLiquidation(liquidation:
|
|
812
|
-
safeTrade(trade:
|
|
812
|
+
safeLiquidation(liquidation: Dict, market?: Market): Liquidation;
|
|
813
|
+
safeTrade(trade: Dict, market?: Market): Trade;
|
|
813
814
|
findNearestCeiling(arr: number[], providedValue: number): number;
|
|
814
815
|
invertFlatStringDictionary(dict: any): {};
|
|
815
816
|
reduceFeesByCurrency(fees: any): any[];
|
|
816
|
-
safeTicker(ticker:
|
|
817
|
+
safeTicker(ticker: Dict, market?: Market): Ticker;
|
|
817
818
|
fetchBorrowRate(code: string, amount: any, params?: {}): Promise<{}>;
|
|
818
819
|
repayCrossMargin(code: string, amount: any, params?: {}): Promise<{}>;
|
|
819
820
|
repayIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<{}>;
|
|
@@ -847,7 +848,7 @@ export default class Exchange {
|
|
|
847
848
|
parseOHLCVs(ohlcvs: object[], market?: any, timeframe?: string, since?: Int, limit?: Int): OHLCV[];
|
|
848
849
|
parseLeverageTiers(response: any, symbols?: string[], marketIdKey?: any): LeverageTiers;
|
|
849
850
|
loadTradingLimits(symbols?: Strings, reload?: boolean, params?: {}): Promise<Dictionary<any>>;
|
|
850
|
-
safePosition(position:
|
|
851
|
+
safePosition(position: Dict): Position;
|
|
851
852
|
parsePositions(positions: any[], symbols?: string[], params?: {}): Position[];
|
|
852
853
|
parseAccounts(accounts: any[], params?: {}): Account[];
|
|
853
854
|
parseTrades(trades: any[], market?: Market, since?: Int, limit?: Int, params?: {}): Trade[];
|
|
@@ -1092,7 +1093,7 @@ export default class Exchange {
|
|
|
1092
1093
|
sortCursorPaginatedResult(result: any): any;
|
|
1093
1094
|
removeRepeatedElementsFromArray(input: any): any;
|
|
1094
1095
|
handleUntilOption(key: string, request: any, params: any, multiplier?: number): any[];
|
|
1095
|
-
safeOpenInterest(interest:
|
|
1096
|
+
safeOpenInterest(interest: Dict, market?: Market): OpenInterest;
|
|
1096
1097
|
parseLiquidation(liquidation: any, market?: Market): Liquidation;
|
|
1097
1098
|
parseLiquidations(liquidations: Dict[], market?: Market, since?: Int, limit?: Int): Liquidation[];
|
|
1098
1099
|
parseGreeks(greeks: Dict, market?: Market): Greeks;
|
package/js/src/base/Exchange.js
CHANGED
|
@@ -1165,7 +1165,7 @@ export default class Exchange {
|
|
|
1165
1165
|
return new CountedOrderBook(snapshot, depth);
|
|
1166
1166
|
}
|
|
1167
1167
|
handleMessage(client, message) { } // stub to override
|
|
1168
|
-
// ping (client) {} // stub to override
|
|
1168
|
+
// ping (client: Client) {} // stub to override
|
|
1169
1169
|
ping(client) {
|
|
1170
1170
|
return undefined;
|
|
1171
1171
|
}
|
|
@@ -1575,8 +1575,10 @@ export default class Exchange {
|
|
|
1575
1575
|
if (value === undefined) {
|
|
1576
1576
|
return defaultValue;
|
|
1577
1577
|
}
|
|
1578
|
-
if (typeof value === 'object') {
|
|
1579
|
-
|
|
1578
|
+
if ((typeof value === 'object')) {
|
|
1579
|
+
if (!Array.isArray(value)) {
|
|
1580
|
+
return value;
|
|
1581
|
+
}
|
|
1580
1582
|
}
|
|
1581
1583
|
return defaultValue;
|
|
1582
1584
|
}
|
|
@@ -3465,7 +3467,7 @@ export default class Exchange {
|
|
|
3465
3467
|
}
|
|
3466
3468
|
else {
|
|
3467
3469
|
// otherwise, try to use the global-scope 'defaultNetwork' value (even if that network is not supported by currency, it doesn't make any problem, this will be just used "at first" if currency supports this network at all)
|
|
3468
|
-
const defaultNetwork = this.
|
|
3470
|
+
const defaultNetwork = this.safeString(this.options, 'defaultNetwork');
|
|
3469
3471
|
if (defaultNetwork !== undefined) {
|
|
3470
3472
|
defaultNetworkCode = defaultNetwork;
|
|
3471
3473
|
}
|
|
@@ -82,7 +82,7 @@ const safeInteger2 = (o, k1, k2, $default) => {
|
|
|
82
82
|
return isNumber(n) ? n : $default;
|
|
83
83
|
};
|
|
84
84
|
const safeIntegerProduct2 = (o, k1, k2, $factor, $default) => {
|
|
85
|
-
const n =
|
|
85
|
+
const n = asFloat(prop2(o, k1, k2));
|
|
86
86
|
return isNumber(n) ? parseInt(n * $factor) : $default;
|
|
87
87
|
};
|
|
88
88
|
const safeTimestamp2 = (o, k1, k2, $default) => {
|
|
@@ -129,7 +129,7 @@ const safeIntegerN = (o, k, $default) => {
|
|
|
129
129
|
return isNumber(n) ? n : $default;
|
|
130
130
|
};
|
|
131
131
|
const safeIntegerProductN = (o, k, $factor, $default) => {
|
|
132
|
-
const n =
|
|
132
|
+
const n = asFloat(getValueFromKeysInArray(o, k));
|
|
133
133
|
return isNumber(n) ? parseInt(n * $factor) : $default;
|
|
134
134
|
};
|
|
135
135
|
const safeTimestampN = (o, k, $default) => {
|
package/js/src/bingx.d.ts
CHANGED
|
@@ -86,6 +86,8 @@ export default class bingx extends Exchange {
|
|
|
86
86
|
fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
87
87
|
fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
88
88
|
fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
89
|
+
fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
90
|
+
fetchCanceledAndClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
89
91
|
transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
|
|
90
92
|
fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<TransferEntries>;
|
|
91
93
|
parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
|