ccxt 4.4.5 → 4.4.7
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 +21 -2
- package/dist/cjs/src/bingx.js +3 -0
- package/dist/cjs/src/bitflyer.js +2 -2
- package/dist/cjs/src/bitget.js +19 -7
- package/dist/cjs/src/bitmart.js +310 -128
- package/dist/cjs/src/bybit.js +25 -11
- package/dist/cjs/src/coinbase.js +6 -8
- package/dist/cjs/src/gate.js +3 -0
- package/dist/cjs/src/kraken.js +6 -1
- package/dist/cjs/src/kucoin.js +2 -2
- package/dist/cjs/src/mexc.js +127 -19
- package/dist/cjs/src/pro/bitget.js +66 -0
- package/dist/cjs/src/pro/htx.js +14 -0
- package/dist/cjs/src/pro/kraken.js +60 -0
- package/dist/cjs/src/pro/okx.js +11 -5
- package/examples/js/cli.js +2 -0
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bitmart.d.ts +4 -0
- package/js/src/base/Exchange.d.ts +4 -0
- package/js/src/base/Exchange.js +21 -2
- package/js/src/bingx.js +3 -0
- package/js/src/bitflyer.js +2 -2
- package/js/src/bitget.d.ts +1 -0
- package/js/src/bitget.js +19 -7
- package/js/src/bitmart.d.ts +1 -0
- package/js/src/bitmart.js +310 -128
- package/js/src/bybit.js +25 -11
- package/js/src/coinbase.js +6 -8
- package/js/src/gate.js +3 -0
- package/js/src/kraken.js +6 -1
- package/js/src/kucoin.js +2 -2
- package/js/src/mexc.d.ts +3 -0
- package/js/src/mexc.js +127 -19
- package/js/src/pro/bitget.d.ts +3 -0
- package/js/src/pro/bitget.js +66 -0
- package/js/src/pro/htx.js +14 -0
- package/js/src/pro/kraken.d.ts +3 -0
- package/js/src/pro/kraken.js +60 -0
- package/js/src/pro/okx.d.ts +1 -0
- package/js/src/pro/okx.js +11 -5
- package/package.json +1 -1
package/js/src/pro/htx.js
CHANGED
|
@@ -135,6 +135,8 @@ export default class htx extends htxRest {
|
|
|
135
135
|
* @method
|
|
136
136
|
* @name huobi#watchTicker
|
|
137
137
|
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
138
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec53561-7773-11ed-9966-0242ac110003
|
|
139
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c33ab2-77ae-11ed-9966-0242ac110003
|
|
138
140
|
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
139
141
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
140
142
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
@@ -203,6 +205,9 @@ export default class htx extends htxRest {
|
|
|
203
205
|
* @method
|
|
204
206
|
* @name huobi#watchTrades
|
|
205
207
|
* @description get the list of most recent trades for a particular symbol
|
|
208
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec53b69-7773-11ed-9966-0242ac110003
|
|
209
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c33c21-77ae-11ed-9966-0242ac110003
|
|
210
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c33cfe-77ae-11ed-9966-0242ac110003
|
|
206
211
|
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
207
212
|
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
208
213
|
* @param {int} [limit] the maximum amount of trades to fetch
|
|
@@ -266,6 +271,9 @@ export default class htx extends htxRest {
|
|
|
266
271
|
* @method
|
|
267
272
|
* @name huobi#watchOHLCV
|
|
268
273
|
* @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
274
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec53241-7773-11ed-9966-0242ac110003
|
|
275
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c3346a-77ae-11ed-9966-0242ac110003
|
|
276
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c33563-77ae-11ed-9966-0242ac110003
|
|
269
277
|
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
270
278
|
* @param {string} timeframe the length of time each candle represents
|
|
271
279
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
@@ -672,6 +680,7 @@ export default class htx extends htxRest {
|
|
|
672
680
|
* @method
|
|
673
681
|
* @name huobi#watchMyTrades
|
|
674
682
|
* @description watches information on multiple trades made by the user
|
|
683
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec53dd5-7773-11ed-9966-0242ac110003
|
|
675
684
|
* @param {string} symbol unified market symbol of the market trades were made in
|
|
676
685
|
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
677
686
|
* @param {int} [limit] the maximum number of trade structures to retrieve
|
|
@@ -775,6 +784,7 @@ export default class htx extends htxRest {
|
|
|
775
784
|
* @method
|
|
776
785
|
* @name huobi#watchOrders
|
|
777
786
|
* @description watches information on multiple orders made by the user
|
|
787
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec53c8f-7773-11ed-9966-0242ac110003
|
|
778
788
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
779
789
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
780
790
|
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
@@ -1349,6 +1359,10 @@ export default class htx extends htxRest {
|
|
|
1349
1359
|
* @method
|
|
1350
1360
|
* @name huobi#watchBalance
|
|
1351
1361
|
* @description watch balance and get the amount of funds available for trading or funds locked in orders
|
|
1362
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec52e28-7773-11ed-9966-0242ac110003
|
|
1363
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=10000084-77b7-11ed-9966-0242ac110003
|
|
1364
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=8cb7dcca-77b5-11ed-9966-0242ac110003
|
|
1365
|
+
* @see https://www.htx.com/en-us/opend/newApiPages/?id=28c34995-77ae-11ed-9966-0242ac110003
|
|
1352
1366
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1353
1367
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
1354
1368
|
*/
|
package/js/src/pro/kraken.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export default class kraken extends krakenRest {
|
|
|
18
18
|
watchPublic(name: any, symbol: any, params?: {}): Promise<any>;
|
|
19
19
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
20
20
|
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
21
|
+
watchBidsAsks(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
22
|
+
handleBidAsk(client: Client, message: any, subscription: any): void;
|
|
23
|
+
parseWsBidAsk(ticker: any, market?: any): Ticker;
|
|
21
24
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
22
25
|
watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
23
26
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
package/js/src/pro/kraken.js
CHANGED
|
@@ -23,6 +23,7 @@ export default class kraken extends krakenRest {
|
|
|
23
23
|
'watchOrders': true,
|
|
24
24
|
'watchTicker': true,
|
|
25
25
|
'watchTickers': true,
|
|
26
|
+
'watchBidsAsks': true,
|
|
26
27
|
'watchTrades': true,
|
|
27
28
|
'watchTradesForSymbols': true,
|
|
28
29
|
'createOrderWs': true,
|
|
@@ -499,6 +500,64 @@ export default class kraken extends krakenRest {
|
|
|
499
500
|
}
|
|
500
501
|
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
501
502
|
}
|
|
503
|
+
async watchBidsAsks(symbols = undefined, params = {}) {
|
|
504
|
+
/**
|
|
505
|
+
* @method
|
|
506
|
+
* @name kraken#watchBidsAsks
|
|
507
|
+
* @see https://docs.kraken.com/api/docs/websocket-v1/spread
|
|
508
|
+
* @description watches best bid & ask for symbols
|
|
509
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
510
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
511
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
512
|
+
*/
|
|
513
|
+
await this.loadMarkets();
|
|
514
|
+
symbols = this.marketSymbols(symbols, undefined, false);
|
|
515
|
+
const ticker = await this.watchMultiHelper('bidask', 'spread', symbols, undefined, params);
|
|
516
|
+
if (this.newUpdates) {
|
|
517
|
+
const result = {};
|
|
518
|
+
result[ticker['symbol']] = ticker;
|
|
519
|
+
return result;
|
|
520
|
+
}
|
|
521
|
+
return this.filterByArray(this.bidsasks, 'symbol', symbols);
|
|
522
|
+
}
|
|
523
|
+
handleBidAsk(client, message, subscription) {
|
|
524
|
+
//
|
|
525
|
+
// [
|
|
526
|
+
// 7208974, // channelID
|
|
527
|
+
// [
|
|
528
|
+
// "63758.60000", // bid
|
|
529
|
+
// "63759.10000", // ask
|
|
530
|
+
// "1726814731.089778", // timestamp
|
|
531
|
+
// "0.00057917", // bid_volume
|
|
532
|
+
// "0.15681688" // ask_volume
|
|
533
|
+
// ],
|
|
534
|
+
// "spread",
|
|
535
|
+
// "XBT/USDT"
|
|
536
|
+
// ]
|
|
537
|
+
//
|
|
538
|
+
const parsedTicker = this.parseWsBidAsk(message);
|
|
539
|
+
const symbol = parsedTicker['symbol'];
|
|
540
|
+
this.bidsasks[symbol] = parsedTicker;
|
|
541
|
+
const messageHash = this.getMessageHash('bidask', undefined, symbol);
|
|
542
|
+
client.resolve(parsedTicker, messageHash);
|
|
543
|
+
}
|
|
544
|
+
parseWsBidAsk(ticker, market = undefined) {
|
|
545
|
+
const data = this.safeList(ticker, 1, []);
|
|
546
|
+
const marketId = this.safeString(ticker, 3);
|
|
547
|
+
market = this.safeValue(this.options['marketsByWsName'], marketId);
|
|
548
|
+
const symbol = this.safeString(market, 'symbol');
|
|
549
|
+
const timestamp = this.parseToInt(this.safeInteger(data, 2)) * 1000;
|
|
550
|
+
return this.safeTicker({
|
|
551
|
+
'symbol': symbol,
|
|
552
|
+
'timestamp': timestamp,
|
|
553
|
+
'datetime': this.iso8601(timestamp),
|
|
554
|
+
'ask': this.safeString(data, 1),
|
|
555
|
+
'askVolume': this.safeString(data, 4),
|
|
556
|
+
'bid': this.safeString(data, 0),
|
|
557
|
+
'bidVolume': this.safeString(data, 3),
|
|
558
|
+
'info': ticker,
|
|
559
|
+
}, market);
|
|
560
|
+
}
|
|
502
561
|
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
503
562
|
/**
|
|
504
563
|
* @method
|
|
@@ -1493,6 +1552,7 @@ export default class kraken extends krakenRest {
|
|
|
1493
1552
|
'book': this.handleOrderBook,
|
|
1494
1553
|
'ohlc': this.handleOHLCV,
|
|
1495
1554
|
'ticker': this.handleTicker,
|
|
1555
|
+
'spread': this.handleBidAsk,
|
|
1496
1556
|
'trade': this.handleTrades,
|
|
1497
1557
|
// private
|
|
1498
1558
|
'openOrders': this.handleOrders,
|
package/js/src/pro/okx.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export default class okx extends okxRest {
|
|
|
52
52
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
53
53
|
handleOrders(client: Client, message: any, subscription?: any): void;
|
|
54
54
|
handleMyTrades(client: Client, message: any): void;
|
|
55
|
+
requestId(): string;
|
|
55
56
|
createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
|
|
56
57
|
handlePlaceOrders(client: Client, message: any): void;
|
|
57
58
|
editOrderWs(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
|
package/js/src/pro/okx.js
CHANGED
|
@@ -1957,6 +1957,12 @@ export default class okx extends okxRest {
|
|
|
1957
1957
|
client.resolve(this.orders, symbolMessageHash);
|
|
1958
1958
|
}
|
|
1959
1959
|
}
|
|
1960
|
+
requestId() {
|
|
1961
|
+
const ts = this.milliseconds().toString();
|
|
1962
|
+
const randomNumber = this.randNumber(4);
|
|
1963
|
+
const randomPart = randomNumber.toString();
|
|
1964
|
+
return ts + randomPart;
|
|
1965
|
+
}
|
|
1960
1966
|
async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
|
|
1961
1967
|
/**
|
|
1962
1968
|
* @method
|
|
@@ -1975,7 +1981,7 @@ export default class okx extends okxRest {
|
|
|
1975
1981
|
await this.loadMarkets();
|
|
1976
1982
|
await this.authenticate();
|
|
1977
1983
|
const url = this.getUrl('private', 'private');
|
|
1978
|
-
const messageHash = this.
|
|
1984
|
+
const messageHash = this.requestId();
|
|
1979
1985
|
let op = undefined;
|
|
1980
1986
|
[op, params] = this.handleOptionAndParams(params, 'createOrderWs', 'op', 'batch-orders');
|
|
1981
1987
|
const args = this.createOrderRequest(symbol, type, side, amount, price, params);
|
|
@@ -2045,7 +2051,7 @@ export default class okx extends okxRest {
|
|
|
2045
2051
|
await this.loadMarkets();
|
|
2046
2052
|
await this.authenticate();
|
|
2047
2053
|
const url = this.getUrl('private', 'private');
|
|
2048
|
-
const messageHash = this.
|
|
2054
|
+
const messageHash = this.requestId();
|
|
2049
2055
|
let op = undefined;
|
|
2050
2056
|
[op, params] = this.handleOptionAndParams(params, 'editOrderWs', 'op', 'amend-order');
|
|
2051
2057
|
const args = this.editOrderRequest(id, symbol, type, side, amount, price, params);
|
|
@@ -2074,7 +2080,7 @@ export default class okx extends okxRest {
|
|
|
2074
2080
|
await this.loadMarkets();
|
|
2075
2081
|
await this.authenticate();
|
|
2076
2082
|
const url = this.getUrl('private', 'private');
|
|
2077
|
-
const messageHash = this.
|
|
2083
|
+
const messageHash = this.requestId();
|
|
2078
2084
|
const clientOrderId = this.safeString2(params, 'clOrdId', 'clientOrderId');
|
|
2079
2085
|
params = this.omit(params, ['clientOrderId', 'clOrdId']);
|
|
2080
2086
|
const arg = {
|
|
@@ -2114,7 +2120,7 @@ export default class okx extends okxRest {
|
|
|
2114
2120
|
await this.loadMarkets();
|
|
2115
2121
|
await this.authenticate();
|
|
2116
2122
|
const url = this.getUrl('private', 'private');
|
|
2117
|
-
const messageHash = this.
|
|
2123
|
+
const messageHash = this.requestId();
|
|
2118
2124
|
const args = [];
|
|
2119
2125
|
for (let i = 0; i < idsLength; i++) {
|
|
2120
2126
|
const arg = {
|
|
@@ -2150,7 +2156,7 @@ export default class okx extends okxRest {
|
|
|
2150
2156
|
throw new BadRequest(this.id + 'cancelAllOrdersWs is only applicable to Option in Portfolio Margin mode, and MMP privilege is required.');
|
|
2151
2157
|
}
|
|
2152
2158
|
const url = this.getUrl('private', 'private');
|
|
2153
|
-
const messageHash = this.
|
|
2159
|
+
const messageHash = this.requestId();
|
|
2154
2160
|
const request = {
|
|
2155
2161
|
'id': messageHash,
|
|
2156
2162
|
'op': 'mass-cancel',
|
package/package.json
CHANGED