ccxt 4.2.56 → 4.2.58
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.js +818 -335
- package/dist/ccxt.browser.min.js +7 -7
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/alpaca.js +90 -88
- package/dist/cjs/src/base/Exchange.js +53 -3
- package/dist/cjs/src/binance.js +196 -28
- package/dist/cjs/src/bingx.js +12 -1
- package/dist/cjs/src/bitget.js +71 -56
- package/dist/cjs/src/bitmex.js +26 -1
- package/dist/cjs/src/bitrue.js +24 -15
- package/dist/cjs/src/blofin.js +24 -1
- package/dist/cjs/src/bybit.js +11 -3
- package/dist/cjs/src/currencycom.js +15 -5
- package/dist/cjs/src/delta.js +14 -1
- package/dist/cjs/src/gate.js +1 -1
- package/dist/cjs/src/hitbtc.js +63 -55
- package/dist/cjs/src/krakenfutures.js +22 -7
- package/dist/cjs/src/kuna.js +14 -11
- package/dist/cjs/src/mexc.js +75 -0
- package/dist/cjs/src/okx.js +31 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/bitmex.js +23 -32
- package/dist/cjs/src/pro/cex.js +6 -2
- package/dist/cjs/src/pro/coinex.js +6 -3
- package/dist/cjs/src/pro/mexc.js +2 -2
- package/dist/cjs/src/pro/whitebit.js +15 -13
- package/dist/cjs/src/probit.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/woo.js +20 -4
- package/js/ccxt.d.ts +3 -3
- package/js/ccxt.js +1 -1
- package/js/src/alpaca.js +90 -88
- package/js/src/base/Exchange.d.ts +14 -6
- package/js/src/base/Exchange.js +53 -3
- package/js/src/base/types.d.ts +12 -1
- package/js/src/binance.d.ts +5 -2
- package/js/src/binance.js +196 -28
- package/js/src/bingx.d.ts +3 -2
- package/js/src/bingx.js +12 -1
- package/js/src/bitget.d.ts +3 -2
- package/js/src/bitget.js +71 -56
- package/js/src/bitmex.d.ts +3 -1
- package/js/src/bitmex.js +26 -1
- package/js/src/bitrue.js +24 -15
- package/js/src/blofin.d.ts +3 -2
- package/js/src/blofin.js +24 -1
- package/js/src/bybit.d.ts +3 -6
- package/js/src/bybit.js +11 -3
- package/js/src/currencycom.d.ts +3 -2
- package/js/src/currencycom.js +15 -5
- package/js/src/delta.d.ts +3 -2
- package/js/src/delta.js +14 -1
- package/js/src/gate.js +1 -1
- package/js/src/hitbtc.d.ts +5 -3
- package/js/src/hitbtc.js +63 -55
- package/js/src/krakenfutures.d.ts +3 -2
- package/js/src/krakenfutures.js +22 -7
- package/js/src/kuna.js +14 -11
- package/js/src/mexc.d.ts +3 -1
- package/js/src/mexc.js +75 -0
- package/js/src/okx.d.ts +3 -2
- package/js/src/okx.js +31 -1
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/bitmex.js +24 -31
- package/js/src/pro/cex.js +6 -2
- package/js/src/pro/coinex.js +6 -3
- package/js/src/pro/mexc.js +2 -2
- package/js/src/pro/whitebit.js +15 -13
- package/js/src/probit.js +1 -1
- package/js/src/wavesexchange.js +1 -1
- package/js/src/woo.d.ts +3 -5
- package/js/src/woo.js +20 -4
- package/package.json +1 -1
- package/skip-tests.json +26 -8
package/js/src/pro/cex.js
CHANGED
|
@@ -1091,7 +1091,10 @@ export default class cex extends cexRest {
|
|
|
1091
1091
|
for (let i = 0; i < sorted.length; i++) {
|
|
1092
1092
|
stored.append(this.parseOHLCV(sorted[i], market));
|
|
1093
1093
|
}
|
|
1094
|
-
this.ohlcvs
|
|
1094
|
+
if (!(symbol in this.ohlcvs)) {
|
|
1095
|
+
this.ohlcvs[symbol] = {};
|
|
1096
|
+
}
|
|
1097
|
+
this.ohlcvs[symbol]['unknown'] = stored;
|
|
1095
1098
|
client.resolve(stored, messageHash);
|
|
1096
1099
|
}
|
|
1097
1100
|
handleOHLCV24(client, message) {
|
|
@@ -1150,7 +1153,8 @@ export default class cex extends cexRest {
|
|
|
1150
1153
|
const pair = this.safeString(message, 'pair');
|
|
1151
1154
|
const symbol = this.pairToSymbol(pair);
|
|
1152
1155
|
const messageHash = 'ohlcv:' + symbol;
|
|
1153
|
-
const stored = this.safeValue(this.ohlcvs, symbol);
|
|
1156
|
+
// const stored = this.safeValue (this.ohlcvs, symbol);
|
|
1157
|
+
const stored = this.ohlcvs[symbol]['unknown'];
|
|
1154
1158
|
for (let i = 0; i < data.length; i++) {
|
|
1155
1159
|
const ohlcv = [
|
|
1156
1160
|
this.safeTimestamp(data[i], 0),
|
package/js/src/pro/coinex.js
CHANGED
|
@@ -390,14 +390,17 @@ export default class coinex extends coinexRest {
|
|
|
390
390
|
const keys = Object.keys(this.ohlcvs);
|
|
391
391
|
const keysLength = keys.length;
|
|
392
392
|
if (keysLength === 0) {
|
|
393
|
+
this.ohlcvs['unknown'] = {};
|
|
393
394
|
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
394
|
-
|
|
395
|
+
const stored = new ArrayCacheByTimestamp(limit);
|
|
396
|
+
this.ohlcvs['unknown']['unknown'] = stored;
|
|
395
397
|
}
|
|
398
|
+
const ohlcv = this.ohlcvs['unknown']['unknown'];
|
|
396
399
|
for (let i = 0; i < ohlcvs.length; i++) {
|
|
397
400
|
const candle = ohlcvs[i];
|
|
398
|
-
|
|
401
|
+
ohlcv.append(candle);
|
|
399
402
|
}
|
|
400
|
-
client.resolve(
|
|
403
|
+
client.resolve(ohlcv, messageHash);
|
|
401
404
|
}
|
|
402
405
|
async watchTicker(symbol, params = {}) {
|
|
403
406
|
/**
|
package/js/src/pro/mexc.js
CHANGED
|
@@ -247,7 +247,7 @@ export default class mexc extends mexcRest {
|
|
|
247
247
|
// "d": {
|
|
248
248
|
// "e": "spot@public.kline.v3.api",
|
|
249
249
|
// "k": {
|
|
250
|
-
// "t":
|
|
250
|
+
// "t": 1678642261,
|
|
251
251
|
// "o": 20626.94,
|
|
252
252
|
// "c": 20599.69,
|
|
253
253
|
// "h": 20626.94,
|
|
@@ -460,7 +460,7 @@ export default class mexc extends mexcRest {
|
|
|
460
460
|
client.subscriptions[messageHash] = 1;
|
|
461
461
|
this.orderbooks[symbol] = this.countedOrderBook({});
|
|
462
462
|
}
|
|
463
|
-
const storedOrderBook = this.
|
|
463
|
+
const storedOrderBook = this.orderbooks[symbol];
|
|
464
464
|
const nonce = this.safeInteger(storedOrderBook, 'nonce');
|
|
465
465
|
if (nonce === undefined) {
|
|
466
466
|
const cacheLength = storedOrderBook.cache.length;
|
package/js/src/pro/whitebit.js
CHANGED
|
@@ -117,15 +117,19 @@ export default class whitebit extends whitebitRest {
|
|
|
117
117
|
const symbol = market['symbol'];
|
|
118
118
|
const messageHash = 'candles' + ':' + symbol;
|
|
119
119
|
const parsed = this.parseOHLCV(data, market);
|
|
120
|
-
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol);
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
// this.ohlcvs[symbol] = this.safeValue (this.ohlcvs, symbol);
|
|
121
|
+
if (!(symbol in this.ohlcvs)) {
|
|
122
|
+
this.ohlcvs[symbol] = {};
|
|
123
|
+
}
|
|
124
|
+
// let stored = this.ohlcvs[symbol]['unknown']; // we don't know the timeframe but we need to respect the type
|
|
125
|
+
if (!('unknown' in this.ohlcvs[symbol])) {
|
|
123
126
|
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
124
|
-
stored = new ArrayCacheByTimestamp(limit);
|
|
125
|
-
this.ohlcvs[symbol] = stored;
|
|
127
|
+
const stored = new ArrayCacheByTimestamp(limit);
|
|
128
|
+
this.ohlcvs[symbol]['unknown'] = stored;
|
|
126
129
|
}
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+
const ohlcv = this.ohlcvs[symbol]['unknown'];
|
|
131
|
+
ohlcv.append(parsed);
|
|
132
|
+
client.resolve(ohlcv, messageHash);
|
|
129
133
|
}
|
|
130
134
|
return message;
|
|
131
135
|
}
|
|
@@ -867,12 +871,10 @@ export default class whitebit extends whitebitRest {
|
|
|
867
871
|
if (!this.handleErrorMessage(client, message)) {
|
|
868
872
|
return;
|
|
869
873
|
}
|
|
870
|
-
const result = this.
|
|
871
|
-
if (result
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
return;
|
|
875
|
-
}
|
|
874
|
+
const result = this.safeString(message, 'result');
|
|
875
|
+
if (result === 'pong') {
|
|
876
|
+
this.handlePong(client, message);
|
|
877
|
+
return;
|
|
876
878
|
}
|
|
877
879
|
const id = this.safeInteger(message, 'id');
|
|
878
880
|
if (id !== undefined) {
|
package/js/src/probit.js
CHANGED
|
@@ -1556,7 +1556,7 @@ export default class probit extends Exchange {
|
|
|
1556
1556
|
// ]
|
|
1557
1557
|
// }
|
|
1558
1558
|
//
|
|
1559
|
-
const data = this.
|
|
1559
|
+
const data = this.safeList(response, 'data', []);
|
|
1560
1560
|
return this.parseTransactions(data, currency, since, limit);
|
|
1561
1561
|
}
|
|
1562
1562
|
parseTransaction(transaction, currency = undefined) {
|
package/js/src/wavesexchange.js
CHANGED
|
@@ -1381,7 +1381,7 @@ export default class wavesexchange extends Exchange {
|
|
|
1381
1381
|
'amountAsset': amountAsset,
|
|
1382
1382
|
'priceAsset': priceAsset,
|
|
1383
1383
|
};
|
|
1384
|
-
const sandboxMode = this.
|
|
1384
|
+
const sandboxMode = this.safeBool(this.options, 'sandboxMode', false);
|
|
1385
1385
|
const chainId = (sandboxMode) ? 84 : 87;
|
|
1386
1386
|
const body = {
|
|
1387
1387
|
'senderPublicKey': this.apiKey,
|
package/js/src/woo.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/woo.js';
|
|
2
|
-
import type { TransferEntry, Balances, Currency, FundingRateHistory, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Trade, Transaction } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Balances, Currency, FundingRateHistory, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Trade, Transaction, Leverage } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class woo
|
|
5
5
|
* @augments Exchange
|
|
@@ -158,10 +158,8 @@ export default class woo extends Exchange {
|
|
|
158
158
|
fetchFundingRates(symbols?: Strings, params?: {}): Promise<any>;
|
|
159
159
|
fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
|
|
160
160
|
setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
|
|
161
|
-
fetchLeverage(symbol: string, params?: {}): Promise<
|
|
162
|
-
|
|
163
|
-
leverage: number;
|
|
164
|
-
}>;
|
|
161
|
+
fetchLeverage(symbol: string, params?: {}): Promise<Leverage>;
|
|
162
|
+
parseLeverage(leverage: any, market?: any): Leverage;
|
|
165
163
|
setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
|
|
166
164
|
fetchPosition(symbol?: Str, params?: {}): Promise<import("./base/types.js").Position>;
|
|
167
165
|
fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
|
package/js/src/woo.js
CHANGED
|
@@ -2656,7 +2656,17 @@ export default class woo extends Exchange {
|
|
|
2656
2656
|
return response;
|
|
2657
2657
|
}
|
|
2658
2658
|
async fetchLeverage(symbol, params = {}) {
|
|
2659
|
+
/**
|
|
2660
|
+
* @method
|
|
2661
|
+
* @name woo#fetchLeverage
|
|
2662
|
+
* @description fetch the set leverage for a market
|
|
2663
|
+
* @see https://docs.woo.org/#get-account-information-new
|
|
2664
|
+
* @param {string} symbol unified market symbol
|
|
2665
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2666
|
+
* @returns {object} a [leverage structure]{@link https://docs.ccxt.com/#/?id=leverage-structure}
|
|
2667
|
+
*/
|
|
2659
2668
|
await this.loadMarkets();
|
|
2669
|
+
const market = this.market(symbol);
|
|
2660
2670
|
const response = await this.v3PrivateGetAccountinfo(params);
|
|
2661
2671
|
//
|
|
2662
2672
|
// {
|
|
@@ -2686,11 +2696,17 @@ export default class woo extends Exchange {
|
|
|
2686
2696
|
// "timestamp": 1673323685109
|
|
2687
2697
|
// }
|
|
2688
2698
|
//
|
|
2689
|
-
const
|
|
2690
|
-
|
|
2699
|
+
const data = this.safeDict(response, 'data', {});
|
|
2700
|
+
return this.parseLeverage(data, market);
|
|
2701
|
+
}
|
|
2702
|
+
parseLeverage(leverage, market = undefined) {
|
|
2703
|
+
const leverageValue = this.safeInteger(leverage, 'leverage');
|
|
2691
2704
|
return {
|
|
2692
|
-
'info':
|
|
2693
|
-
'
|
|
2705
|
+
'info': leverage,
|
|
2706
|
+
'symbol': market['symbol'],
|
|
2707
|
+
'marginMode': undefined,
|
|
2708
|
+
'longLeverage': leverageValue,
|
|
2709
|
+
'shortLeverage': leverageValue,
|
|
2694
2710
|
};
|
|
2695
2711
|
}
|
|
2696
2712
|
async setLeverage(leverage, symbol = undefined, params = {}) {
|
package/package.json
CHANGED
package/skip-tests.json
CHANGED
|
@@ -220,10 +220,18 @@
|
|
|
220
220
|
"deposit": "not provided"
|
|
221
221
|
},
|
|
222
222
|
"fetchTickers": {
|
|
223
|
-
"open": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269177570#L3624"
|
|
223
|
+
"open": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269177570#L3624",
|
|
224
|
+
"bid": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269219719#L3210",
|
|
225
|
+
"ask": "same",
|
|
226
|
+
"bidVolume": "same",
|
|
227
|
+
"askVolume": "same"
|
|
224
228
|
},
|
|
225
229
|
"watchTickers": {
|
|
226
|
-
"open": "same"
|
|
230
|
+
"open": "same",
|
|
231
|
+
"bid": "same",
|
|
232
|
+
"ask": "same",
|
|
233
|
+
"bidVolume": "same",
|
|
234
|
+
"askVolume": "same"
|
|
227
235
|
},
|
|
228
236
|
"fetchOrderBook": {
|
|
229
237
|
"bid": "multiple bids might have same value"
|
|
@@ -333,10 +341,14 @@
|
|
|
333
341
|
}
|
|
334
342
|
},
|
|
335
343
|
"bitmex": {
|
|
336
|
-
"skipWs": "timeouts",
|
|
337
344
|
"skipMethods": {
|
|
338
345
|
"loadMarkets": "some market types are out of expected market-types",
|
|
339
|
-
"fetchOHLCV":
|
|
346
|
+
"fetchOHLCV": {
|
|
347
|
+
"1": "open value is greater than high: https://github.com/ccxt/ccxt/pull/21356#issuecomment-1969565862"
|
|
348
|
+
},
|
|
349
|
+
"watchOHLCV": {
|
|
350
|
+
"1": "same as above"
|
|
351
|
+
},
|
|
340
352
|
"fetchTickers": "negative values",
|
|
341
353
|
"fetchPositions": {
|
|
342
354
|
"stopLossPrice": "undefined",
|
|
@@ -375,7 +387,8 @@
|
|
|
375
387
|
"currency": "undefined",
|
|
376
388
|
"currencyIdAndCode": "messes codes"
|
|
377
389
|
},
|
|
378
|
-
"fetchTransactions": "skip"
|
|
390
|
+
"fetchTransactions": "skip",
|
|
391
|
+
"watchTrades": "infrequent updates"
|
|
379
392
|
}
|
|
380
393
|
},
|
|
381
394
|
"bitopro": {
|
|
@@ -782,7 +795,8 @@
|
|
|
782
795
|
}
|
|
783
796
|
},
|
|
784
797
|
"delta": {
|
|
785
|
-
"
|
|
798
|
+
"skip": "frequent timeouts https://app.travis-ci.com/github/ccxt/ccxt/builds/269219719#L3723",
|
|
799
|
+
"until": "2024-03-05",
|
|
786
800
|
"skipMethods": {
|
|
787
801
|
"loadMarkets": "expiryDatetime must be equal to expiry in iso8601 format",
|
|
788
802
|
"fetchOrderBook": "ask crossing bids test failing",
|
|
@@ -1190,7 +1204,6 @@
|
|
|
1190
1204
|
}
|
|
1191
1205
|
},
|
|
1192
1206
|
"mexc": {
|
|
1193
|
-
"skipWs": "temp",
|
|
1194
1207
|
"skipMethods": {
|
|
1195
1208
|
"loadMarkets":{
|
|
1196
1209
|
"currencyIdAndCode": "messed"
|
|
@@ -1562,7 +1575,12 @@
|
|
|
1562
1575
|
}
|
|
1563
1576
|
},
|
|
1564
1577
|
"wazirx": {
|
|
1565
|
-
"skipWs": "timeouts"
|
|
1578
|
+
"skipWs": "timeouts",
|
|
1579
|
+
"skipMethods": {
|
|
1580
|
+
"fetchTickers": {
|
|
1581
|
+
"ask": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269200021#L4048"
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1566
1584
|
},
|
|
1567
1585
|
"coinlist": {
|
|
1568
1586
|
"skipMethods": {
|