ccxt 4.3.57 → 4.3.59
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 +4 -4
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +4 -2
- package/dist/cjs/src/alpaca.js +5 -1
- package/dist/cjs/src/base/Exchange.js +4 -4
- package/dist/cjs/src/base/errors.js +22 -22
- package/dist/cjs/src/bigone.js +21 -1
- package/dist/cjs/src/bingx.js +131 -26
- package/dist/cjs/src/bitmart.js +1 -0
- package/dist/cjs/src/btcbox.js +149 -7
- package/dist/cjs/src/bybit.js +2 -2
- package/dist/cjs/src/coinmate.js +28 -35
- package/dist/cjs/src/coinone.js +1 -1
- package/dist/cjs/src/deribit.js +15 -1
- package/dist/cjs/src/digifinex.js +32 -7
- package/dist/cjs/src/gate.js +24 -18
- package/dist/cjs/src/htx.js +10 -8
- package/dist/cjs/src/hyperliquid.js +107 -1
- package/dist/cjs/src/kucoin.js +3 -0
- package/dist/cjs/src/latoken.js +5 -1
- package/dist/cjs/src/mexc.js +11 -11
- package/dist/cjs/src/okx.js +3 -0
- package/dist/cjs/src/pro/binance.js +11 -13
- package/dist/cjs/src/pro/bingx.js +11 -8
- package/dist/cjs/src/pro/okx.js +3 -3
- package/dist/cjs/src/pro/xt.js +1108 -0
- package/dist/cjs/src/upbit.js +148 -49
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/xt.js +72 -7
- package/js/ccxt.d.ts +6 -3
- package/js/ccxt.js +5 -3
- package/js/src/abstract/bitmart.d.ts +1 -0
- package/js/src/abstract/btcbox.d.ts +1 -0
- package/js/src/abstract/kucoin.d.ts +1 -0
- package/js/src/abstract/kucoinfutures.d.ts +1 -0
- package/js/src/abstract/upbit.d.ts +3 -0
- package/js/src/abstract/xt.d.ts +1 -0
- package/js/src/alpaca.d.ts +1 -1
- package/js/src/alpaca.js +5 -1
- package/js/src/base/Exchange.d.ts +3 -3
- package/js/src/base/Exchange.js +5 -5
- package/js/src/base/errorHierarchy.d.ts +5 -5
- package/js/src/base/errorHierarchy.js +5 -5
- package/js/src/base/errors.d.ts +15 -15
- package/js/src/base/errors.js +22 -22
- package/js/src/bigone.d.ts +1 -1
- package/js/src/bigone.js +21 -1
- package/js/src/bingx.js +131 -26
- package/js/src/bitmart.js +1 -0
- package/js/src/btcbox.d.ts +4 -1
- package/js/src/btcbox.js +149 -7
- package/js/src/bybit.js +2 -2
- package/js/src/coinmate.js +28 -35
- package/js/src/coinone.js +1 -1
- package/js/src/deribit.d.ts +1 -1
- package/js/src/deribit.js +15 -1
- package/js/src/digifinex.d.ts +3 -2
- package/js/src/digifinex.js +32 -7
- package/js/src/gate.js +24 -18
- package/js/src/htx.js +10 -8
- package/js/src/hyperliquid.d.ts +3 -1
- package/js/src/hyperliquid.js +107 -1
- package/js/src/kucoin.js +3 -0
- package/js/src/latoken.d.ts +1 -1
- package/js/src/latoken.js +5 -1
- package/js/src/mexc.js +11 -11
- package/js/src/okx.js +3 -0
- package/js/src/pro/binance.js +11 -13
- package/js/src/pro/bingx.js +11 -8
- package/js/src/pro/bitmart.d.ts +3 -3
- package/js/src/pro/bitopro.d.ts +2 -2
- package/js/src/pro/coincheck.d.ts +2 -2
- package/js/src/pro/coinone.d.ts +2 -2
- package/js/src/pro/hyperliquid.d.ts +2 -2
- package/js/src/pro/okx.js +3 -3
- package/js/src/pro/xt.d.ts +31 -0
- package/js/src/pro/xt.js +1109 -0
- package/js/src/upbit.d.ts +0 -1
- package/js/src/upbit.js +148 -49
- package/js/src/woo.js +2 -2
- package/js/src/xt.js +72 -7
- package/package.json +1 -1
package/dist/cjs/src/latoken.js
CHANGED
|
@@ -1416,7 +1416,11 @@ class latoken extends latoken$1 {
|
|
|
1416
1416
|
// "status":"SUCCESS"
|
|
1417
1417
|
// }
|
|
1418
1418
|
//
|
|
1419
|
-
return
|
|
1419
|
+
return [
|
|
1420
|
+
this.safeOrder({
|
|
1421
|
+
'info': response,
|
|
1422
|
+
}),
|
|
1423
|
+
];
|
|
1420
1424
|
}
|
|
1421
1425
|
async fetchTransactions(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1422
1426
|
/**
|
package/dist/cjs/src/mexc.js
CHANGED
|
@@ -796,24 +796,24 @@ class mexc extends mexc$1 {
|
|
|
796
796
|
'commonCurrencies': {
|
|
797
797
|
'BEYONDPROTOCOL': 'BEYOND',
|
|
798
798
|
'BIFI': 'BIFIF',
|
|
799
|
-
'BYN': '
|
|
799
|
+
'BYN': 'BEYONDFI',
|
|
800
800
|
'COFI': 'COFIX',
|
|
801
|
-
'DFI': '
|
|
802
|
-
'DFT': '
|
|
801
|
+
'DFI': 'DFISTARTER',
|
|
802
|
+
'DFT': 'DFUTURE',
|
|
803
803
|
'DRK': 'DRK',
|
|
804
|
-
'EGC': '
|
|
804
|
+
'EGC': 'EGORASCREDIT',
|
|
805
805
|
'FLUX1': 'FLUX',
|
|
806
806
|
'FLUX': 'FLUX1',
|
|
807
|
-
'FREE': '
|
|
807
|
+
'FREE': 'FREEROSSDAO',
|
|
808
808
|
'GAS': 'GASDAO',
|
|
809
809
|
'GASNEO': 'GAS',
|
|
810
|
-
'GMT': '
|
|
810
|
+
'GMT': 'GMTTOKEN',
|
|
811
811
|
'STEPN': 'GMT',
|
|
812
|
-
'HERO': '
|
|
813
|
-
'MIMO': '
|
|
814
|
-
'PROS': '
|
|
815
|
-
'SIN': '
|
|
816
|
-
'SOUL': '
|
|
812
|
+
'HERO': 'STEPHERO',
|
|
813
|
+
'MIMO': 'MIMOSA',
|
|
814
|
+
'PROS': 'PROSFINANCE',
|
|
815
|
+
'SIN': 'SINCITYTOKEN',
|
|
816
|
+
'SOUL': 'SOULSWAP',
|
|
817
817
|
},
|
|
818
818
|
'exceptions': {
|
|
819
819
|
'exact': {
|
package/dist/cjs/src/okx.js
CHANGED
|
@@ -7353,6 +7353,9 @@ class okx extends okx$1 {
|
|
|
7353
7353
|
}
|
|
7354
7354
|
depositWithdrawFees[code]['info'][currencyId] = feeInfo;
|
|
7355
7355
|
const chain = this.safeString(feeInfo, 'chain');
|
|
7356
|
+
if (chain === undefined) {
|
|
7357
|
+
continue;
|
|
7358
|
+
}
|
|
7356
7359
|
const chainSplit = chain.split('-');
|
|
7357
7360
|
const networkId = this.safeValue(chainSplit, 1);
|
|
7358
7361
|
const withdrawFee = this.safeNumber(feeInfo, 'minFee');
|
|
@@ -611,9 +611,9 @@ class binance extends binance$1 {
|
|
|
611
611
|
for (let i = 0; i < symbols.length; i++) {
|
|
612
612
|
const symbol = symbols[i];
|
|
613
613
|
const market = this.market(symbol);
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
const symbolHash =
|
|
614
|
+
messageHashes.push('orderbook::' + symbol);
|
|
615
|
+
const subscriptionHash = market['lowercaseId'] + '@' + name;
|
|
616
|
+
const symbolHash = subscriptionHash + '@' + watchOrderBookRate + 'ms';
|
|
617
617
|
subParams.push(symbolHash);
|
|
618
618
|
}
|
|
619
619
|
const messageHashesLength = messageHashes.length;
|
|
@@ -633,8 +633,7 @@ class binance extends binance$1 {
|
|
|
633
633
|
'type': type,
|
|
634
634
|
'params': params,
|
|
635
635
|
};
|
|
636
|
-
const
|
|
637
|
-
const orderbook = await this.watchMultiple(url, messageHashes, message, messageHashes, subscription);
|
|
636
|
+
const orderbook = await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes, subscription);
|
|
638
637
|
return orderbook.limit();
|
|
639
638
|
}
|
|
640
639
|
async fetchOrderBookWs(symbol, limit = undefined, params = {}) {
|
|
@@ -813,8 +812,7 @@ class binance extends binance$1 {
|
|
|
813
812
|
const marketId = this.safeString(message, 's');
|
|
814
813
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
815
814
|
const symbol = market['symbol'];
|
|
816
|
-
const
|
|
817
|
-
const messageHash = market['lowercaseId'] + '@' + name;
|
|
815
|
+
const messageHash = 'orderbook::' + symbol;
|
|
818
816
|
if (!(symbol in this.orderbooks)) {
|
|
819
817
|
//
|
|
820
818
|
// https://github.com/ccxt/ccxt/issues/6672
|
|
@@ -957,12 +955,14 @@ class binance extends binance$1 {
|
|
|
957
955
|
if (firstMarket['contract']) {
|
|
958
956
|
type = firstMarket['linear'] ? 'future' : 'delivery';
|
|
959
957
|
}
|
|
958
|
+
const messageHashes = [];
|
|
960
959
|
const subParams = [];
|
|
961
960
|
for (let i = 0; i < symbols.length; i++) {
|
|
962
961
|
const symbol = symbols[i];
|
|
963
962
|
const market = this.market(symbol);
|
|
964
|
-
|
|
965
|
-
|
|
963
|
+
messageHashes.push('trade::' + symbol);
|
|
964
|
+
const rawHash = market['lowercaseId'] + '@' + name;
|
|
965
|
+
subParams.push(rawHash);
|
|
966
966
|
}
|
|
967
967
|
const query = this.omit(params, 'type');
|
|
968
968
|
const subParamsLength = subParams.length;
|
|
@@ -976,7 +976,7 @@ class binance extends binance$1 {
|
|
|
976
976
|
const subscribe = {
|
|
977
977
|
'id': requestId,
|
|
978
978
|
};
|
|
979
|
-
const trades = await this.watchMultiple(url,
|
|
979
|
+
const trades = await this.watchMultiple(url, messageHashes, this.extend(request, query), messageHashes, subscribe);
|
|
980
980
|
if (this.newUpdates) {
|
|
981
981
|
const first = this.safeValue(trades, 0);
|
|
982
982
|
const tradeSymbol = this.safeString(first, 'symbol');
|
|
@@ -1167,9 +1167,7 @@ class binance extends binance$1 {
|
|
|
1167
1167
|
const marketId = this.safeString(message, 's');
|
|
1168
1168
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
1169
1169
|
const symbol = market['symbol'];
|
|
1170
|
-
const
|
|
1171
|
-
const event = this.safeString(message, 'e');
|
|
1172
|
-
const messageHash = lowerCaseId + '@' + event;
|
|
1170
|
+
const messageHash = 'trade::' + symbol;
|
|
1173
1171
|
const trade = this.parseWsTrade(message, market);
|
|
1174
1172
|
let tradesArray = this.safeValue(this.trades, symbol);
|
|
1175
1173
|
if (tradesArray === undefined) {
|
|
@@ -94,10 +94,10 @@ class bingx extends bingx$1 {
|
|
|
94
94
|
*/
|
|
95
95
|
await this.loadMarkets();
|
|
96
96
|
const market = this.market(symbol);
|
|
97
|
-
const [marketType, query] = this.handleMarketTypeAndParams('
|
|
97
|
+
const [marketType, query] = this.handleMarketTypeAndParams('watchTicker', market, params);
|
|
98
98
|
const url = this.safeValue(this.urls['api']['ws'], marketType);
|
|
99
99
|
if (url === undefined) {
|
|
100
|
-
throw new errors.BadRequest(this.id + '
|
|
100
|
+
throw new errors.BadRequest(this.id + ' watchTicker is not supported for ' + marketType + ' markets.');
|
|
101
101
|
}
|
|
102
102
|
const subscriptionHash = market['id'] + '@ticker';
|
|
103
103
|
const messageHash = this.getMessageHash('ticker', market['symbol']);
|
|
@@ -445,21 +445,23 @@ class bingx extends bingx$1 {
|
|
|
445
445
|
*/
|
|
446
446
|
await this.loadMarkets();
|
|
447
447
|
const market = this.market(symbol);
|
|
448
|
-
|
|
448
|
+
let marketType = undefined;
|
|
449
|
+
[marketType, params] = this.handleMarketTypeAndParams('watchTrades', market, params);
|
|
449
450
|
const url = this.safeValue(this.urls['api']['ws'], marketType);
|
|
450
451
|
if (url === undefined) {
|
|
451
452
|
throw new errors.BadRequest(this.id + ' watchTrades is not supported for ' + marketType + ' markets.');
|
|
452
453
|
}
|
|
453
|
-
const
|
|
454
|
+
const rawHash = market['id'] + '@trade';
|
|
455
|
+
const messageHash = 'trade::' + symbol;
|
|
454
456
|
const uuid = this.uuid();
|
|
455
457
|
const request = {
|
|
456
458
|
'id': uuid,
|
|
457
|
-
'dataType':
|
|
459
|
+
'dataType': rawHash,
|
|
458
460
|
};
|
|
459
461
|
if (marketType === 'swap') {
|
|
460
462
|
request['reqType'] = 'sub';
|
|
461
463
|
}
|
|
462
|
-
const trades = await this.watch(url, messageHash, this.extend(request,
|
|
464
|
+
const trades = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
463
465
|
if (this.newUpdates) {
|
|
464
466
|
limit = trades.getLimit(symbol, limit);
|
|
465
467
|
}
|
|
@@ -526,12 +528,13 @@ class bingx extends bingx$1 {
|
|
|
526
528
|
// }
|
|
527
529
|
//
|
|
528
530
|
const data = this.safeValue(message, 'data', []);
|
|
529
|
-
const
|
|
530
|
-
const marketId =
|
|
531
|
+
const rawHash = this.safeString(message, 'dataType');
|
|
532
|
+
const marketId = rawHash.split('@')[0];
|
|
531
533
|
const isSwap = client.url.indexOf('swap') >= 0;
|
|
532
534
|
const marketType = isSwap ? 'swap' : 'spot';
|
|
533
535
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
534
536
|
const symbol = market['symbol'];
|
|
537
|
+
const messageHash = 'trade::' + symbol;
|
|
535
538
|
let trades = undefined;
|
|
536
539
|
if (Array.isArray(data)) {
|
|
537
540
|
trades = this.parseTrades(data, market);
|
package/dist/cjs/src/pro/okx.js
CHANGED
|
@@ -1682,7 +1682,7 @@ class okx extends okx$1 {
|
|
|
1682
1682
|
if (this.isEmpty(args)) {
|
|
1683
1683
|
const method = this.safeString(message, 'op');
|
|
1684
1684
|
const stringMsg = this.json(message);
|
|
1685
|
-
this.handleErrors(undefined, undefined, client.url, method, undefined, stringMsg,
|
|
1685
|
+
this.handleErrors(undefined, undefined, client.url, method, undefined, stringMsg, message, undefined, undefined);
|
|
1686
1686
|
}
|
|
1687
1687
|
const orders = this.parseOrders(args, undefined, undefined, undefined);
|
|
1688
1688
|
const first = this.safeDict(orders, 0, {});
|
|
@@ -1857,8 +1857,8 @@ class okx extends okx$1 {
|
|
|
1857
1857
|
future.resolve(true);
|
|
1858
1858
|
}
|
|
1859
1859
|
ping(client) {
|
|
1860
|
-
//
|
|
1861
|
-
//
|
|
1860
|
+
// OKX does not support the built-in WebSocket protocol-level ping-pong.
|
|
1861
|
+
// Instead, it requires a custom text-based ping-pong mechanism.
|
|
1862
1862
|
return 'ping';
|
|
1863
1863
|
}
|
|
1864
1864
|
handlePong(client, message) {
|