ccxt 4.2.86 → 4.2.88
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/CHANGELOG.md +87 -0
- package/README.md +4 -5
- package/dist/ccxt.browser.js +748 -169
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +6 -1
- package/dist/cjs/src/ascendex.js +11 -1
- package/dist/cjs/src/base/Exchange.js +26 -2
- package/dist/cjs/src/binance.js +24 -7
- package/dist/cjs/src/bingx.js +37 -1
- package/dist/cjs/src/bitfinex.js +3 -0
- package/dist/cjs/src/bitfinex2.js +16 -1
- package/dist/cjs/src/bitflyer.js +19 -0
- package/dist/cjs/src/bitget.js +32 -17
- package/dist/cjs/src/bitopro.js +3 -0
- package/dist/cjs/src/bitrue.js +13 -7
- package/dist/cjs/src/bitvavo.js +3 -0
- package/dist/cjs/src/btcmarkets.js +1 -1
- package/dist/cjs/src/btcturk.js +2 -1
- package/dist/cjs/src/coinex.js +182 -54
- package/dist/cjs/src/cryptocom.js +1 -1
- package/dist/cjs/src/currencycom.js +1 -1
- package/dist/cjs/src/delta.js +3 -1
- package/dist/cjs/src/digifinex.js +4 -2
- package/dist/cjs/src/exmo.js +11 -12
- package/dist/cjs/src/gate.js +13 -10
- package/dist/cjs/src/hitbtc.js +26 -2
- package/dist/cjs/src/htx.js +2 -2
- package/dist/cjs/src/huobijp.js +1 -1
- package/dist/cjs/src/hyperliquid.js +249 -12
- package/dist/cjs/src/idex.js +1 -1
- package/dist/cjs/src/krakenfutures.js +4 -7
- package/dist/cjs/src/kucoin.js +7 -4
- package/dist/cjs/src/lbank.js +3 -0
- package/dist/cjs/src/mexc.js +1 -1
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okx.js +24 -10
- package/dist/cjs/src/phemex.js +3 -1
- package/dist/cjs/src/pro/kucoin.js +11 -6
- package/dist/cjs/src/wazirx.js +1 -1
- package/dist/cjs/src/zonda.js +3 -0
- package/examples/js/benchmark.js +104 -0
- package/examples/js/cli.js +0 -2
- package/examples/ts/benchmark.ts +134 -0
- package/examples/ts/cli.ts +0 -2
- package/js/ccxt.d.ts +3 -3
- package/js/ccxt.js +3 -3
- package/js/src/ascendex.d.ts +5 -12
- package/js/src/ascendex.js +11 -1
- package/js/src/base/Exchange.d.ts +5 -4
- package/js/src/base/Exchange.js +26 -2
- package/js/src/base/types.d.ts +12 -1
- package/js/src/binance.d.ts +5 -12
- package/js/src/binance.js +24 -7
- package/js/src/bingx.d.ts +5 -2
- package/js/src/bingx.js +37 -1
- package/js/src/bitfinex.js +3 -0
- package/js/src/bitfinex2.d.ts +3 -17
- package/js/src/bitfinex2.js +16 -1
- package/js/src/bitflyer.d.ts +1 -0
- package/js/src/bitflyer.js +20 -1
- package/js/src/bitget.d.ts +5 -12
- package/js/src/bitget.js +32 -17
- package/js/src/bitopro.js +3 -0
- package/js/src/bitrue.d.ts +3 -17
- package/js/src/bitrue.js +13 -7
- package/js/src/bitvavo.js +3 -0
- package/js/src/btcmarkets.js +1 -1
- package/js/src/btcturk.js +2 -1
- package/js/src/coinex.d.ts +4 -11
- package/js/src/coinex.js +182 -54
- package/js/src/cryptocom.js +1 -1
- package/js/src/currencycom.js +1 -1
- package/js/src/delta.d.ts +5 -37
- package/js/src/delta.js +3 -1
- package/js/src/digifinex.d.ts +5 -13
- package/js/src/digifinex.js +4 -2
- package/js/src/exmo.d.ts +5 -37
- package/js/src/exmo.js +11 -12
- package/js/src/gate.d.ts +5 -33
- package/js/src/gate.js +13 -10
- package/js/src/hitbtc.d.ts +5 -12
- package/js/src/hitbtc.js +26 -2
- package/js/src/htx.js +2 -2
- package/js/src/huobijp.js +1 -1
- package/js/src/hyperliquid.d.ts +7 -4
- package/js/src/hyperliquid.js +249 -12
- package/js/src/idex.js +1 -1
- package/js/src/krakenfutures.js +4 -7
- package/js/src/kucoin.js +7 -4
- package/js/src/kucoinfutures.d.ts +2 -2
- package/js/src/lbank.js +3 -0
- package/js/src/mexc.d.ts +3 -3
- package/js/src/mexc.js +1 -1
- package/js/src/oceanex.js +1 -1
- package/js/src/okx.d.ts +5 -33
- package/js/src/okx.js +24 -10
- package/js/src/phemex.d.ts +3 -11
- package/js/src/phemex.js +3 -1
- package/js/src/pro/kucoin.js +11 -6
- package/js/src/wazirx.js +1 -1
- package/js/src/zonda.js +3 -0
- package/package.json +3 -2
- package/skip-tests.json +3 -3
package/js/src/kucoin.js
CHANGED
|
@@ -3540,9 +3540,9 @@ export default class kucoin extends Exchange {
|
|
|
3540
3540
|
* @method
|
|
3541
3541
|
* @name kucoin#fetchBalance
|
|
3542
3542
|
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
3543
|
-
* @see https://docs.kucoin.com/#list-accounts
|
|
3544
3543
|
* @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-list-spot-margin-trade_hf
|
|
3545
|
-
* @see https://
|
|
3544
|
+
* @see https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-margin
|
|
3545
|
+
* @see https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-isolated-margin
|
|
3546
3546
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3547
3547
|
* @param {object} [params.marginMode] 'cross' or 'isolated', margin type for fetching margin balance
|
|
3548
3548
|
* @param {object} [params.type] extra parameters specific to the exchange API endpoint
|
|
@@ -3569,7 +3569,7 @@ export default class kucoin extends Exchange {
|
|
|
3569
3569
|
let response = undefined;
|
|
3570
3570
|
const request = {};
|
|
3571
3571
|
const isolated = (marginMode === 'isolated') || (type === 'isolated');
|
|
3572
|
-
const cross = (marginMode === 'cross') || (type === '
|
|
3572
|
+
const cross = (marginMode === 'cross') || (type === 'margin');
|
|
3573
3573
|
if (isolated) {
|
|
3574
3574
|
if (currency !== undefined) {
|
|
3575
3575
|
request['balanceCurrency'] = currency['id'];
|
|
@@ -3639,13 +3639,14 @@ export default class kucoin extends Exchange {
|
|
|
3639
3639
|
// }
|
|
3640
3640
|
// }
|
|
3641
3641
|
//
|
|
3642
|
-
|
|
3642
|
+
let data = undefined;
|
|
3643
3643
|
const result = {
|
|
3644
3644
|
'info': response,
|
|
3645
3645
|
'timestamp': undefined,
|
|
3646
3646
|
'datetime': undefined,
|
|
3647
3647
|
};
|
|
3648
3648
|
if (isolated) {
|
|
3649
|
+
data = this.safeDict(response, 'data', {});
|
|
3649
3650
|
const assets = this.safeValue(data, 'assets', data);
|
|
3650
3651
|
for (let i = 0; i < assets.length; i++) {
|
|
3651
3652
|
const entry = assets[i];
|
|
@@ -3662,6 +3663,7 @@ export default class kucoin extends Exchange {
|
|
|
3662
3663
|
}
|
|
3663
3664
|
}
|
|
3664
3665
|
else if (cross) {
|
|
3666
|
+
data = this.safeDict(response, 'data', {});
|
|
3665
3667
|
const accounts = this.safeList(data, 'accounts', []);
|
|
3666
3668
|
for (let i = 0; i < accounts.length; i++) {
|
|
3667
3669
|
const balance = accounts[i];
|
|
@@ -3671,6 +3673,7 @@ export default class kucoin extends Exchange {
|
|
|
3671
3673
|
}
|
|
3672
3674
|
}
|
|
3673
3675
|
else {
|
|
3676
|
+
data = this.safeList(response, 'data', []);
|
|
3674
3677
|
for (let i = 0; i < data.length; i++) {
|
|
3675
3678
|
const balance = data[i];
|
|
3676
3679
|
const balanceType = this.safeString(balance, 'type');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import kucoin from './abstract/kucoinfutures.js';
|
|
2
|
-
import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, Tickers, OrderBook, Transaction, Strings, Market, Currency, Num } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, Tickers, OrderBook, Transaction, Strings, Market, Currency, Num, MarginModification } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class kucoinfutures
|
|
5
5
|
* @augments Exchange
|
|
@@ -37,7 +37,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
37
37
|
createContractOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
|
|
38
38
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
|
39
39
|
cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
|
|
40
|
-
addMargin(symbol: string, amount: any, params?: {}): Promise<
|
|
40
|
+
addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
|
|
41
41
|
parseMarginModification(info: any, market?: Market): {
|
|
42
42
|
info: any;
|
|
43
43
|
direction: any;
|
package/js/src/lbank.js
CHANGED
|
@@ -1003,6 +1003,9 @@ export default class lbank extends Exchange {
|
|
|
1003
1003
|
if (limit === undefined) {
|
|
1004
1004
|
limit = 100;
|
|
1005
1005
|
}
|
|
1006
|
+
else {
|
|
1007
|
+
limit = Math.min(limit, 2000);
|
|
1008
|
+
}
|
|
1006
1009
|
if (since === undefined) {
|
|
1007
1010
|
const duration = this.parseTimeframe(timeframe);
|
|
1008
1011
|
since = this.milliseconds() - duration * 1000 * limit;
|
package/js/src/mexc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/mexc.js';
|
|
2
|
-
import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account, MarginModification } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class mexc
|
|
5
5
|
* @augments Exchange
|
|
@@ -59,8 +59,8 @@ export default class mexc extends Exchange {
|
|
|
59
59
|
fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
60
60
|
fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
61
61
|
modifyMarginHelper(symbol: string, amount: any, addOrReduce: any, params?: {}): Promise<any>;
|
|
62
|
-
reduceMargin(symbol: string, amount: any, params?: {}): Promise<
|
|
63
|
-
addMargin(symbol: string, amount: any, params?: {}): Promise<
|
|
62
|
+
reduceMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
|
|
63
|
+
addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
|
|
64
64
|
setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
|
|
65
65
|
fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
|
|
66
66
|
parseFundingRate(contract: any, market?: Market): {
|
package/js/src/mexc.js
CHANGED
|
@@ -4515,7 +4515,7 @@ export default class mexc extends Exchange {
|
|
|
4515
4515
|
}
|
|
4516
4516
|
}
|
|
4517
4517
|
if (result === undefined) {
|
|
4518
|
-
throw new InvalidAddress(this.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using
|
|
4518
|
+
throw new InvalidAddress(this.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using .createDepositAddress() method or in MEXC website');
|
|
4519
4519
|
}
|
|
4520
4520
|
return result;
|
|
4521
4521
|
}
|
package/js/src/oceanex.js
CHANGED
|
@@ -797,7 +797,7 @@ export default class oceanex extends Exchange {
|
|
|
797
797
|
request['timestamp'] = since;
|
|
798
798
|
}
|
|
799
799
|
if (limit !== undefined) {
|
|
800
|
-
request['limit'] = limit;
|
|
800
|
+
request['limit'] = Math.min(limit, 10000);
|
|
801
801
|
}
|
|
802
802
|
const response = await this.publicPostK(this.extend(request, params));
|
|
803
803
|
const ohlcvs = this.safeList(response, 'data', []);
|
package/js/src/okx.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/okx.js';
|
|
2
|
-
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class okx
|
|
5
5
|
* @augments Exchange
|
|
@@ -202,38 +202,10 @@ export default class okx extends Exchange {
|
|
|
202
202
|
parseBorrowRateHistory(response: any, code: any, since: any, limit: any): any;
|
|
203
203
|
fetchBorrowRateHistories(codes?: any, since?: Int, limit?: Int, params?: {}): Promise<{}>;
|
|
204
204
|
fetchBorrowRateHistory(code: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
|
205
|
-
modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
code: string;
|
|
210
|
-
symbol: string;
|
|
211
|
-
status: string;
|
|
212
|
-
}>;
|
|
213
|
-
parseMarginModification(data: any, market?: Market): {
|
|
214
|
-
info: any;
|
|
215
|
-
type: string;
|
|
216
|
-
amount: number;
|
|
217
|
-
code: string;
|
|
218
|
-
symbol: string;
|
|
219
|
-
status: string;
|
|
220
|
-
};
|
|
221
|
-
reduceMargin(symbol: string, amount: any, params?: {}): Promise<{
|
|
222
|
-
info: any;
|
|
223
|
-
type: string;
|
|
224
|
-
amount: number;
|
|
225
|
-
code: string;
|
|
226
|
-
symbol: string;
|
|
227
|
-
status: string;
|
|
228
|
-
}>;
|
|
229
|
-
addMargin(symbol: string, amount: any, params?: {}): Promise<{
|
|
230
|
-
info: any;
|
|
231
|
-
type: string;
|
|
232
|
-
amount: number;
|
|
233
|
-
code: string;
|
|
234
|
-
symbol: string;
|
|
235
|
-
status: string;
|
|
236
|
-
}>;
|
|
205
|
+
modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<MarginModification>;
|
|
206
|
+
parseMarginModification(data: any, market?: Market): MarginModification;
|
|
207
|
+
reduceMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
|
|
208
|
+
addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
|
|
237
209
|
fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<any[]>;
|
|
238
210
|
parseMarketLeverageTiers(info: any, market?: Market): any[];
|
|
239
211
|
fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
package/js/src/okx.js
CHANGED
|
@@ -6463,26 +6463,40 @@ export default class okx extends Exchange {
|
|
|
6463
6463
|
// "msg": ""
|
|
6464
6464
|
// }
|
|
6465
6465
|
//
|
|
6466
|
-
|
|
6466
|
+
const data = this.safeList(response, 'data', []);
|
|
6467
|
+
const errorCode = this.safeString(response, 'code');
|
|
6468
|
+
const item = this.safeDict(data, 0, {});
|
|
6469
|
+
return this.extend(this.parseMarginModification(item, market), {
|
|
6470
|
+
'status': (errorCode === '0') ? 'ok' : 'failed',
|
|
6471
|
+
});
|
|
6467
6472
|
}
|
|
6468
6473
|
parseMarginModification(data, market = undefined) {
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
|
|
6474
|
+
//
|
|
6475
|
+
// addMargin/reduceMargin
|
|
6476
|
+
//
|
|
6477
|
+
// {
|
|
6478
|
+
// "amt": "0.01",
|
|
6479
|
+
// "instId": "ETH-USD-SWAP",
|
|
6480
|
+
// "posSide": "net",
|
|
6481
|
+
// "type": "reduce"
|
|
6482
|
+
// }
|
|
6483
|
+
//
|
|
6484
|
+
const amountRaw = this.safeNumber(data, 'amt');
|
|
6485
|
+
const typeRaw = this.safeString(data, 'type');
|
|
6475
6486
|
const type = (typeRaw === 'reduce') ? 'reduce' : 'add';
|
|
6476
|
-
const marketId = this.safeString(
|
|
6487
|
+
const marketId = this.safeString(data, 'instId');
|
|
6477
6488
|
const responseMarket = this.safeMarket(marketId, market);
|
|
6478
6489
|
const code = responseMarket['inverse'] ? responseMarket['base'] : responseMarket['quote'];
|
|
6479
6490
|
return {
|
|
6480
6491
|
'info': data,
|
|
6492
|
+
'symbol': responseMarket['symbol'],
|
|
6481
6493
|
'type': type,
|
|
6482
6494
|
'amount': amountRaw,
|
|
6495
|
+
'total': undefined,
|
|
6483
6496
|
'code': code,
|
|
6484
|
-
'
|
|
6485
|
-
'
|
|
6497
|
+
'status': undefined,
|
|
6498
|
+
'timestamp': undefined,
|
|
6499
|
+
'datetime': undefined,
|
|
6486
6500
|
};
|
|
6487
6501
|
}
|
|
6488
6502
|
async reduceMargin(symbol, amount, params = {}) {
|
package/js/src/phemex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/phemex.js';
|
|
2
|
-
import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarginModification } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class phemex
|
|
5
5
|
* @augments Exchange
|
|
@@ -99,17 +99,9 @@ export default class phemex extends Exchange {
|
|
|
99
99
|
previousFundingTimestamp: any;
|
|
100
100
|
previousFundingDatetime: any;
|
|
101
101
|
};
|
|
102
|
-
setMargin(symbol: string, amount: number, params?: {}): Promise<
|
|
102
|
+
setMargin(symbol: string, amount: number, params?: {}): Promise<MarginModification>;
|
|
103
103
|
parseMarginStatus(status: any): string;
|
|
104
|
-
parseMarginModification(data: any, market?: Market):
|
|
105
|
-
info: any;
|
|
106
|
-
type: string;
|
|
107
|
-
amount: any;
|
|
108
|
-
total: any;
|
|
109
|
-
code: string;
|
|
110
|
-
symbol: string;
|
|
111
|
-
status: string;
|
|
112
|
-
};
|
|
104
|
+
parseMarginModification(data: any, market?: Market): MarginModification;
|
|
113
105
|
setMarginMode(marginMode: string, symbol?: Str, params?: {}): Promise<any>;
|
|
114
106
|
setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
|
|
115
107
|
fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
|
package/js/src/phemex.js
CHANGED
|
@@ -4063,12 +4063,14 @@ export default class phemex extends Exchange {
|
|
|
4063
4063
|
const codeCurrency = inverse ? 'base' : 'quote';
|
|
4064
4064
|
return {
|
|
4065
4065
|
'info': data,
|
|
4066
|
+
'symbol': this.safeSymbol(undefined, market),
|
|
4066
4067
|
'type': 'set',
|
|
4067
4068
|
'amount': undefined,
|
|
4068
4069
|
'total': undefined,
|
|
4069
4070
|
'code': market[codeCurrency],
|
|
4070
|
-
'symbol': this.safeSymbol(undefined, market),
|
|
4071
4071
|
'status': this.parseMarginStatus(this.safeString(data, 'code')),
|
|
4072
|
+
'timestamp': undefined,
|
|
4073
|
+
'datetime': undefined,
|
|
4072
4074
|
};
|
|
4073
4075
|
}
|
|
4074
4076
|
async setMarginMode(marginMode, symbol = undefined, params = {}) {
|
package/js/src/pro/kucoin.js
CHANGED
|
@@ -573,17 +573,22 @@ export default class kucoin extends kucoinRest {
|
|
|
573
573
|
const marketId = this.safeString(data, 'symbol', topicSymbol);
|
|
574
574
|
const symbol = this.safeSymbol(marketId, undefined, '-');
|
|
575
575
|
const messageHash = 'orderbook:' + symbol;
|
|
576
|
-
let orderbook = this.safeDict(this.orderbooks, symbol);
|
|
576
|
+
// let orderbook = this.safeDict (this.orderbooks, symbol);
|
|
577
577
|
if (subject === 'level2') {
|
|
578
|
-
if (
|
|
579
|
-
|
|
578
|
+
if (!(symbol in this.orderbooks)) {
|
|
579
|
+
this.orderbooks[symbol] = this.orderBook();
|
|
580
580
|
}
|
|
581
581
|
else {
|
|
582
|
+
const orderbook = this.orderbooks[symbol];
|
|
582
583
|
orderbook.reset();
|
|
583
584
|
}
|
|
584
|
-
|
|
585
|
+
this.orderbooks[symbol]['symbol'] = symbol;
|
|
585
586
|
}
|
|
586
587
|
else {
|
|
588
|
+
if (!(symbol in this.orderbooks)) {
|
|
589
|
+
this.orderbooks[symbol] = this.orderBook();
|
|
590
|
+
}
|
|
591
|
+
const orderbook = this.orderbooks[symbol];
|
|
587
592
|
const nonce = this.safeInteger(orderbook, 'nonce');
|
|
588
593
|
const deltaEnd = this.safeInteger2(data, 'sequenceEnd', 'timestamp');
|
|
589
594
|
if (nonce === undefined) {
|
|
@@ -609,8 +614,8 @@ export default class kucoin extends kucoinRest {
|
|
|
609
614
|
return;
|
|
610
615
|
}
|
|
611
616
|
}
|
|
612
|
-
this.handleDelta(
|
|
613
|
-
client.resolve(
|
|
617
|
+
this.handleDelta(this.orderbooks[symbol], data);
|
|
618
|
+
client.resolve(this.orderbooks[symbol], messageHash);
|
|
614
619
|
}
|
|
615
620
|
getCacheIndex(orderbook, cache) {
|
|
616
621
|
const firstDelta = this.safeValue(cache, 0);
|
package/js/src/wazirx.js
CHANGED
|
@@ -322,7 +322,7 @@ export default class wazirx extends Exchange {
|
|
|
322
322
|
'interval': this.safeString(this.timeframes, timeframe, timeframe),
|
|
323
323
|
};
|
|
324
324
|
if (limit !== undefined) {
|
|
325
|
-
request['limit'] = limit;
|
|
325
|
+
request['limit'] = Math.min(limit, 2000);
|
|
326
326
|
}
|
|
327
327
|
const until = this.safeInteger(params, 'until');
|
|
328
328
|
params = this.omit(params, ['until']);
|
package/js/src/zonda.js
CHANGED
|
@@ -1204,6 +1204,9 @@ export default class zonda extends Exchange {
|
|
|
1204
1204
|
if (limit === undefined) {
|
|
1205
1205
|
limit = 100;
|
|
1206
1206
|
}
|
|
1207
|
+
else {
|
|
1208
|
+
limit = Math.min(limit, 11000); // supports up to 11k candles diapason
|
|
1209
|
+
}
|
|
1207
1210
|
const duration = this.parseTimeframe(timeframe);
|
|
1208
1211
|
const timerange = limit * duration * 1000;
|
|
1209
1212
|
if (since === undefined) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccxt",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.88",
|
|
4
4
|
"description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
|
|
5
5
|
"unpkg": "dist/ccxt.browser.js",
|
|
6
6
|
"type": "module",
|
|
@@ -136,7 +136,8 @@
|
|
|
136
136
|
"id-tests-py": "python python/ccxt/test/test_async.py --idTests",
|
|
137
137
|
"id-tests-php": "php php/test/test_async.php --idTests",
|
|
138
138
|
"id-tests-cs": "dotnet run --project cs/tests/tests.csproj --idTests",
|
|
139
|
-
"id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php && npm run id-tests-cs"
|
|
139
|
+
"id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php && npm run id-tests-cs",
|
|
140
|
+
"benchmark": "node --loader ts-node/esm examples/ts/benchmark.ts"
|
|
140
141
|
},
|
|
141
142
|
"types": "./js/ccxt.d.ts",
|
|
142
143
|
"devDependencies": {
|
package/skip-tests.json
CHANGED
|
@@ -290,7 +290,8 @@
|
|
|
290
290
|
"high": "same",
|
|
291
291
|
"previousClose": "same",
|
|
292
292
|
"vwap": "same",
|
|
293
|
-
"baseVolume":"temp"
|
|
293
|
+
"baseVolume":"temp",
|
|
294
|
+
"spread": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269724413#L3725"
|
|
294
295
|
},
|
|
295
296
|
"fetchPositions": {
|
|
296
297
|
"stopLossPrice": "undefined",
|
|
@@ -349,8 +350,7 @@
|
|
|
349
350
|
}
|
|
350
351
|
},
|
|
351
352
|
"onetrading": {
|
|
352
|
-
"skip":
|
|
353
|
-
"until": "2024-03-28",
|
|
353
|
+
"skip": "Api changed, as mentioned https://github.com/ccxt/ccxt/pull/21991",
|
|
354
354
|
"skipWs": true,
|
|
355
355
|
"skipMethods": {
|
|
356
356
|
"fetchCurrencies": {
|