ccxt 4.2.8 → 4.2.9
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/build.sh +18 -2
- package/dist/ccxt.browser.js +136 -22
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/bitmart.js +94 -15
- package/dist/cjs/src/pro/binance.js +17 -1
- package/dist/cjs/src/pro/bitget.js +3 -1
- package/dist/cjs/src/pro/bitmart.js +18 -3
- package/dist/cjs/src/pro/bybit.js +3 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/bitmart.js +95 -16
- package/js/src/pro/binance.js +17 -1
- package/js/src/pro/bitget.js +3 -1
- package/js/src/pro/bitmart.js +18 -3
- package/js/src/pro/bybit.js +3 -1
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
- package/package.json +1 -1
package/dist/cjs/ccxt.js
CHANGED
|
@@ -169,7 +169,7 @@ var woo$1 = require('./src/pro/woo.js');
|
|
|
169
169
|
|
|
170
170
|
//-----------------------------------------------------------------------------
|
|
171
171
|
// this is updated by vss.js when building
|
|
172
|
-
const version = '4.2.
|
|
172
|
+
const version = '4.2.9';
|
|
173
173
|
Exchange["default"].ccxtVersion = version;
|
|
174
174
|
const exchanges = {
|
|
175
175
|
'ace': ace,
|
package/dist/cjs/src/bitmart.js
CHANGED
|
@@ -306,7 +306,11 @@ class bitmart extends bitmart$1 {
|
|
|
306
306
|
'30012': errors.AuthenticationError,
|
|
307
307
|
'30013': errors.RateLimitExceeded,
|
|
308
308
|
'30014': errors.ExchangeNotAvailable,
|
|
309
|
-
|
|
309
|
+
'30016': errors.OnMaintenance,
|
|
310
|
+
'30017': errors.RateLimitExceeded,
|
|
311
|
+
'30018': errors.BadRequest,
|
|
312
|
+
'30019': errors.PermissionDenied,
|
|
313
|
+
// funding account & sub account errors
|
|
310
314
|
'60000': errors.BadRequest,
|
|
311
315
|
'60001': errors.BadRequest,
|
|
312
316
|
'60002': errors.BadRequest,
|
|
@@ -323,13 +327,31 @@ class bitmart extends bitmart$1 {
|
|
|
323
327
|
'60020': errors.PermissionDenied,
|
|
324
328
|
'60021': errors.PermissionDenied,
|
|
325
329
|
'60022': errors.PermissionDenied,
|
|
330
|
+
'60026': errors.PermissionDenied,
|
|
331
|
+
'60027': errors.PermissionDenied,
|
|
332
|
+
'60028': errors.AccountSuspended,
|
|
333
|
+
'60029': errors.AccountSuspended,
|
|
326
334
|
'60030': errors.BadRequest,
|
|
327
335
|
'60031': errors.BadRequest,
|
|
328
336
|
'60050': errors.ExchangeError,
|
|
329
337
|
'60051': errors.ExchangeError,
|
|
330
338
|
'61001': errors.InsufficientFunds,
|
|
331
339
|
'61003': errors.BadRequest,
|
|
332
|
-
|
|
340
|
+
'61004': errors.BadRequest,
|
|
341
|
+
'61005': errors.BadRequest,
|
|
342
|
+
'61006': errors.NotSupported,
|
|
343
|
+
'61007': errors.ExchangeError,
|
|
344
|
+
'61008': errors.ExchangeError,
|
|
345
|
+
// spot public errors
|
|
346
|
+
'70000': errors.ExchangeError,
|
|
347
|
+
'70001': errors.BadRequest,
|
|
348
|
+
'70002': errors.BadSymbol,
|
|
349
|
+
'71001': errors.BadRequest,
|
|
350
|
+
'71002': errors.BadRequest,
|
|
351
|
+
'71003': errors.BadRequest,
|
|
352
|
+
'71004': errors.BadRequest,
|
|
353
|
+
'71005': errors.BadRequest,
|
|
354
|
+
// spot & margin errors
|
|
333
355
|
'50000': errors.BadRequest,
|
|
334
356
|
'50001': errors.BadSymbol,
|
|
335
357
|
'50002': errors.BadRequest,
|
|
@@ -349,26 +371,75 @@ class bitmart extends bitmart$1 {
|
|
|
349
371
|
'50016': errors.BadRequest,
|
|
350
372
|
'50017': errors.BadRequest,
|
|
351
373
|
'50018': errors.BadRequest,
|
|
352
|
-
'50019': errors.
|
|
353
|
-
'51004': errors.InsufficientFunds,
|
|
354
|
-
// '50019': ExchangeError, // 400, Invalid status. validate status is [1=Failed, 2=Success, 3=Frozen Failed, 4=Frozen Success, 5=Partially Filled, 6=Fully Fulled, 7=Canceling, 8=Canceled
|
|
374
|
+
'50019': errors.ExchangeError,
|
|
355
375
|
'50020': errors.InsufficientFunds,
|
|
356
376
|
'50021': errors.BadRequest,
|
|
357
377
|
'50022': errors.ExchangeNotAvailable,
|
|
358
378
|
'50023': errors.BadSymbol,
|
|
379
|
+
'50024': errors.BadRequest,
|
|
380
|
+
'50025': errors.BadRequest,
|
|
381
|
+
'50026': errors.BadRequest,
|
|
382
|
+
'50027': errors.BadRequest,
|
|
383
|
+
'50028': errors.BadRequest,
|
|
359
384
|
'50029': errors.InvalidOrder,
|
|
360
|
-
'50030': errors.
|
|
385
|
+
'50030': errors.OrderNotFound,
|
|
386
|
+
'50031': errors.OrderNotFound,
|
|
361
387
|
'50032': errors.OrderNotFound,
|
|
388
|
+
'50033': errors.InvalidOrder,
|
|
362
389
|
// below Error codes used interchangeably for both failed postOnly and IOC orders depending on market price and order side
|
|
363
|
-
'50035': errors.InvalidOrder,
|
|
364
390
|
'50034': errors.InvalidOrder,
|
|
391
|
+
'50035': errors.InvalidOrder,
|
|
392
|
+
'50036': errors.ExchangeError,
|
|
393
|
+
'50037': errors.BadRequest,
|
|
394
|
+
'50038': errors.BadRequest,
|
|
395
|
+
'50039': errors.BadRequest,
|
|
396
|
+
'50040': errors.BadSymbol,
|
|
397
|
+
'50041': errors.ExchangeError,
|
|
398
|
+
'50042': errors.BadRequest,
|
|
399
|
+
'51000': errors.BadSymbol,
|
|
400
|
+
'51001': errors.ExchangeError,
|
|
401
|
+
'51002': errors.ExchangeError,
|
|
402
|
+
'51003': errors.ExchangeError,
|
|
403
|
+
'51004': errors.InsufficientFunds,
|
|
404
|
+
'51005': errors.InvalidOrder,
|
|
405
|
+
'51006': errors.InvalidOrder,
|
|
406
|
+
'51007': errors.BadRequest,
|
|
407
|
+
'51008': errors.ExchangeError,
|
|
408
|
+
'51009': errors.InvalidOrder,
|
|
409
|
+
'51010': errors.InvalidOrder,
|
|
365
410
|
'51011': errors.InvalidOrder,
|
|
411
|
+
'51012': errors.InvalidOrder,
|
|
412
|
+
'51013': errors.InvalidOrder,
|
|
413
|
+
'51014': errors.InvalidOrder,
|
|
414
|
+
'51015': errors.InvalidOrder,
|
|
415
|
+
'52000': errors.BadRequest,
|
|
416
|
+
'52001': errors.BadRequest,
|
|
417
|
+
'52002': errors.BadRequest,
|
|
418
|
+
'52003': errors.BadRequest,
|
|
419
|
+
'52004': errors.BadRequest,
|
|
366
420
|
'53000': errors.AccountSuspended,
|
|
367
421
|
'53001': errors.AccountSuspended,
|
|
422
|
+
'53002': errors.PermissionDenied,
|
|
423
|
+
'53003': errors.PermissionDenied,
|
|
424
|
+
'53005': errors.PermissionDenied,
|
|
425
|
+
'53006': errors.PermissionDenied,
|
|
426
|
+
'53007': errors.PermissionDenied,
|
|
427
|
+
'53008': errors.PermissionDenied,
|
|
428
|
+
'53009': errors.PermissionDenied,
|
|
429
|
+
'53010': errors.PermissionDenied,
|
|
368
430
|
'57001': errors.BadRequest,
|
|
369
431
|
'58001': errors.BadRequest,
|
|
370
432
|
'59001': errors.ExchangeError,
|
|
371
433
|
'59002': errors.ExchangeError,
|
|
434
|
+
'59003': errors.ExchangeError,
|
|
435
|
+
'59004': errors.ExchangeError,
|
|
436
|
+
'59005': errors.PermissionDenied,
|
|
437
|
+
'59006': errors.ExchangeError,
|
|
438
|
+
'59007': errors.ExchangeError,
|
|
439
|
+
'59008': errors.ExchangeError,
|
|
440
|
+
'59009': errors.ExchangeError,
|
|
441
|
+
'59010': errors.InsufficientFunds,
|
|
442
|
+
'59011': errors.ExchangeError,
|
|
372
443
|
// contract errors
|
|
373
444
|
'40001': errors.ExchangeError,
|
|
374
445
|
'40002': errors.ExchangeError,
|
|
@@ -404,14 +475,22 @@ class bitmart extends bitmart$1 {
|
|
|
404
475
|
'40032': errors.InvalidOrder,
|
|
405
476
|
'40033': errors.InvalidOrder,
|
|
406
477
|
'40034': errors.BadSymbol,
|
|
407
|
-
'
|
|
408
|
-
'
|
|
409
|
-
'
|
|
410
|
-
'
|
|
411
|
-
'
|
|
412
|
-
'
|
|
413
|
-
'
|
|
414
|
-
'
|
|
478
|
+
'40035': errors.OrderNotFound,
|
|
479
|
+
'40036': errors.InvalidOrder,
|
|
480
|
+
'40037': errors.OrderNotFound,
|
|
481
|
+
'40038': errors.BadRequest,
|
|
482
|
+
'40039': errors.BadRequest,
|
|
483
|
+
'40040': errors.InvalidOrder,
|
|
484
|
+
'40041': errors.InvalidOrder,
|
|
485
|
+
'40042': errors.InvalidOrder,
|
|
486
|
+
'40043': errors.InvalidOrder,
|
|
487
|
+
'40044': errors.InvalidOrder,
|
|
488
|
+
'40045': errors.InvalidOrder,
|
|
489
|
+
'40046': errors.PermissionDenied,
|
|
490
|
+
'40047': errors.PermissionDenied,
|
|
491
|
+
'40048': errors.BadRequest,
|
|
492
|
+
'40049': errors.BadRequest,
|
|
493
|
+
'40050': errors.InvalidOrder, // 403, Client OrderId duplicated with existing orders
|
|
415
494
|
},
|
|
416
495
|
'broad': {},
|
|
417
496
|
},
|
|
@@ -864,7 +864,10 @@ class binance extends binance$1 {
|
|
|
864
864
|
name = this.safeString(params, 'name', name);
|
|
865
865
|
params = this.omit(params, 'name');
|
|
866
866
|
let wsParams = [];
|
|
867
|
-
|
|
867
|
+
let messageHash = 'tickers';
|
|
868
|
+
if (symbols !== undefined) {
|
|
869
|
+
messageHash = 'tickers::' + symbols.join(',');
|
|
870
|
+
}
|
|
868
871
|
if (name === 'bookTicker') {
|
|
869
872
|
if (marketIds === undefined) {
|
|
870
873
|
throw new errors.ArgumentsRequired(this.id + ' watchTickers() requires symbols for bookTicker');
|
|
@@ -1057,6 +1060,19 @@ class binance extends binance$1 {
|
|
|
1057
1060
|
this.tickers[symbol] = result;
|
|
1058
1061
|
newTickers.push(result);
|
|
1059
1062
|
}
|
|
1063
|
+
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
1064
|
+
for (let i = 0; i < messageHashes.length; i++) {
|
|
1065
|
+
const messageHash = messageHashes[i];
|
|
1066
|
+
const parts = messageHash.split('::');
|
|
1067
|
+
const symbolsString = parts[1];
|
|
1068
|
+
const symbols = symbolsString.split(',');
|
|
1069
|
+
const tickers = this.filterByArray(newTickers, 'symbol', symbols);
|
|
1070
|
+
const tickersSymbols = Object.keys(tickers);
|
|
1071
|
+
const numTickers = tickersSymbols.length;
|
|
1072
|
+
if (numTickers > 0) {
|
|
1073
|
+
client.resolve(tickers, messageHash);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1060
1076
|
client.resolve(newTickers, 'tickers');
|
|
1061
1077
|
}
|
|
1062
1078
|
signParams(params = {}) {
|
|
@@ -153,7 +153,9 @@ class bitget extends bitget$1 {
|
|
|
153
153
|
}
|
|
154
154
|
const tickers = await this.watchPublicMultiple(messageHashes, topics, params);
|
|
155
155
|
if (this.newUpdates) {
|
|
156
|
-
|
|
156
|
+
const result = {};
|
|
157
|
+
result[tickers['symbol']] = tickers;
|
|
158
|
+
return result;
|
|
157
159
|
}
|
|
158
160
|
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
159
161
|
}
|
|
@@ -298,7 +298,10 @@ class bitmart extends bitmart$1 {
|
|
|
298
298
|
if (type === 'swap') {
|
|
299
299
|
type = 'futures';
|
|
300
300
|
}
|
|
301
|
-
|
|
301
|
+
let messageHash = 'tickers';
|
|
302
|
+
if (symbols !== undefined) {
|
|
303
|
+
messageHash += '::' + symbols.join(',');
|
|
304
|
+
}
|
|
302
305
|
const request = {
|
|
303
306
|
'action': 'subscribe',
|
|
304
307
|
'args': ['futures/ticker'],
|
|
@@ -704,7 +707,7 @@ class bitmart extends bitmart$1 {
|
|
|
704
707
|
// }
|
|
705
708
|
//
|
|
706
709
|
const marketId = this.safeString(position, 'symbol');
|
|
707
|
-
market = this.safeMarket(marketId, market,
|
|
710
|
+
market = this.safeMarket(marketId, market, undefined, 'swap');
|
|
708
711
|
const symbol = market['symbol'];
|
|
709
712
|
const openTimestamp = this.safeInteger(position, 'create_time');
|
|
710
713
|
const timestamp = this.safeInteger(position, 'update_time');
|
|
@@ -897,6 +900,18 @@ class bitmart extends bitmart$1 {
|
|
|
897
900
|
const symbol = this.safeString(ticker, 'symbol');
|
|
898
901
|
this.tickers[symbol] = ticker;
|
|
899
902
|
client.resolve(ticker, 'tickers');
|
|
903
|
+
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
904
|
+
for (let i = 0; i < messageHashes.length; i++) {
|
|
905
|
+
const messageHash = messageHashes[i];
|
|
906
|
+
const parts = messageHash.split('::');
|
|
907
|
+
const symbolsString = parts[1];
|
|
908
|
+
const symbols = symbolsString.split(',');
|
|
909
|
+
if (this.inArray(symbol, symbols)) {
|
|
910
|
+
const response = {};
|
|
911
|
+
response[symbol] = ticker;
|
|
912
|
+
client.resolve(response, messageHash);
|
|
913
|
+
}
|
|
914
|
+
}
|
|
900
915
|
}
|
|
901
916
|
return message;
|
|
902
917
|
}
|
|
@@ -1046,7 +1061,7 @@ class bitmart extends bitmart$1 {
|
|
|
1046
1061
|
}
|
|
1047
1062
|
else {
|
|
1048
1063
|
const marketId = this.safeString(data, 'symbol');
|
|
1049
|
-
const market = this.safeMarket(marketId, undefined,
|
|
1064
|
+
const market = this.safeMarket(marketId, undefined, undefined, 'swap');
|
|
1050
1065
|
const symbol = market['symbol'];
|
|
1051
1066
|
const items = this.safeValue(data, 'items', []);
|
|
1052
1067
|
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
|
@@ -222,7 +222,9 @@ class bybit extends bybit$1 {
|
|
|
222
222
|
}
|
|
223
223
|
const ticker = await this.watchTopics(url, messageHashes, topics, params);
|
|
224
224
|
if (this.newUpdates) {
|
|
225
|
-
|
|
225
|
+
const result = {};
|
|
226
|
+
result[ticker['symbol']] = ticker;
|
|
227
|
+
return result;
|
|
226
228
|
}
|
|
227
229
|
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
228
230
|
}
|
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 { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.2.
|
|
7
|
+
declare const version = "4.2.8";
|
|
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, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.2.
|
|
41
|
+
const version = '4.2.9';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
package/js/src/bitmart.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
import Exchange from './abstract/bitmart.js';
|
|
9
|
-
import { AuthenticationError, ExchangeNotAvailable, AccountSuspended, PermissionDenied, RateLimitExceeded, InvalidNonce, InvalidAddress, ArgumentsRequired, ExchangeError, InvalidOrder, InsufficientFunds, BadRequest, OrderNotFound, BadSymbol, NotSupported } from './base/errors.js';
|
|
9
|
+
import { AuthenticationError, ExchangeNotAvailable, OnMaintenance, AccountSuspended, PermissionDenied, RateLimitExceeded, InvalidNonce, InvalidAddress, ArgumentsRequired, ExchangeError, InvalidOrder, InsufficientFunds, BadRequest, OrderNotFound, BadSymbol, NotSupported } from './base/errors.js';
|
|
10
10
|
import { Precise } from './base/Precise.js';
|
|
11
11
|
import { TICK_SIZE, TRUNCATE } from './base/functions/number.js';
|
|
12
12
|
import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
|
|
@@ -309,7 +309,11 @@ export default class bitmart extends Exchange {
|
|
|
309
309
|
'30012': AuthenticationError,
|
|
310
310
|
'30013': RateLimitExceeded,
|
|
311
311
|
'30014': ExchangeNotAvailable,
|
|
312
|
-
|
|
312
|
+
'30016': OnMaintenance,
|
|
313
|
+
'30017': RateLimitExceeded,
|
|
314
|
+
'30018': BadRequest,
|
|
315
|
+
'30019': PermissionDenied,
|
|
316
|
+
// funding account & sub account errors
|
|
313
317
|
'60000': BadRequest,
|
|
314
318
|
'60001': BadRequest,
|
|
315
319
|
'60002': BadRequest,
|
|
@@ -326,13 +330,31 @@ export default class bitmart extends Exchange {
|
|
|
326
330
|
'60020': PermissionDenied,
|
|
327
331
|
'60021': PermissionDenied,
|
|
328
332
|
'60022': PermissionDenied,
|
|
333
|
+
'60026': PermissionDenied,
|
|
334
|
+
'60027': PermissionDenied,
|
|
335
|
+
'60028': AccountSuspended,
|
|
336
|
+
'60029': AccountSuspended,
|
|
329
337
|
'60030': BadRequest,
|
|
330
338
|
'60031': BadRequest,
|
|
331
339
|
'60050': ExchangeError,
|
|
332
340
|
'60051': ExchangeError,
|
|
333
341
|
'61001': InsufficientFunds,
|
|
334
342
|
'61003': BadRequest,
|
|
335
|
-
|
|
343
|
+
'61004': BadRequest,
|
|
344
|
+
'61005': BadRequest,
|
|
345
|
+
'61006': NotSupported,
|
|
346
|
+
'61007': ExchangeError,
|
|
347
|
+
'61008': ExchangeError,
|
|
348
|
+
// spot public errors
|
|
349
|
+
'70000': ExchangeError,
|
|
350
|
+
'70001': BadRequest,
|
|
351
|
+
'70002': BadSymbol,
|
|
352
|
+
'71001': BadRequest,
|
|
353
|
+
'71002': BadRequest,
|
|
354
|
+
'71003': BadRequest,
|
|
355
|
+
'71004': BadRequest,
|
|
356
|
+
'71005': BadRequest,
|
|
357
|
+
// spot & margin errors
|
|
336
358
|
'50000': BadRequest,
|
|
337
359
|
'50001': BadSymbol,
|
|
338
360
|
'50002': BadRequest,
|
|
@@ -352,26 +374,75 @@ export default class bitmart extends Exchange {
|
|
|
352
374
|
'50016': BadRequest,
|
|
353
375
|
'50017': BadRequest,
|
|
354
376
|
'50018': BadRequest,
|
|
355
|
-
'50019':
|
|
356
|
-
'51004': InsufficientFunds,
|
|
357
|
-
// '50019': ExchangeError, // 400, Invalid status. validate status is [1=Failed, 2=Success, 3=Frozen Failed, 4=Frozen Success, 5=Partially Filled, 6=Fully Fulled, 7=Canceling, 8=Canceled
|
|
377
|
+
'50019': ExchangeError,
|
|
358
378
|
'50020': InsufficientFunds,
|
|
359
379
|
'50021': BadRequest,
|
|
360
380
|
'50022': ExchangeNotAvailable,
|
|
361
381
|
'50023': BadSymbol,
|
|
382
|
+
'50024': BadRequest,
|
|
383
|
+
'50025': BadRequest,
|
|
384
|
+
'50026': BadRequest,
|
|
385
|
+
'50027': BadRequest,
|
|
386
|
+
'50028': BadRequest,
|
|
362
387
|
'50029': InvalidOrder,
|
|
363
|
-
'50030':
|
|
388
|
+
'50030': OrderNotFound,
|
|
389
|
+
'50031': OrderNotFound,
|
|
364
390
|
'50032': OrderNotFound,
|
|
391
|
+
'50033': InvalidOrder,
|
|
365
392
|
// below Error codes used interchangeably for both failed postOnly and IOC orders depending on market price and order side
|
|
366
|
-
'50035': InvalidOrder,
|
|
367
393
|
'50034': InvalidOrder,
|
|
394
|
+
'50035': InvalidOrder,
|
|
395
|
+
'50036': ExchangeError,
|
|
396
|
+
'50037': BadRequest,
|
|
397
|
+
'50038': BadRequest,
|
|
398
|
+
'50039': BadRequest,
|
|
399
|
+
'50040': BadSymbol,
|
|
400
|
+
'50041': ExchangeError,
|
|
401
|
+
'50042': BadRequest,
|
|
402
|
+
'51000': BadSymbol,
|
|
403
|
+
'51001': ExchangeError,
|
|
404
|
+
'51002': ExchangeError,
|
|
405
|
+
'51003': ExchangeError,
|
|
406
|
+
'51004': InsufficientFunds,
|
|
407
|
+
'51005': InvalidOrder,
|
|
408
|
+
'51006': InvalidOrder,
|
|
409
|
+
'51007': BadRequest,
|
|
410
|
+
'51008': ExchangeError,
|
|
411
|
+
'51009': InvalidOrder,
|
|
412
|
+
'51010': InvalidOrder,
|
|
368
413
|
'51011': InvalidOrder,
|
|
414
|
+
'51012': InvalidOrder,
|
|
415
|
+
'51013': InvalidOrder,
|
|
416
|
+
'51014': InvalidOrder,
|
|
417
|
+
'51015': InvalidOrder,
|
|
418
|
+
'52000': BadRequest,
|
|
419
|
+
'52001': BadRequest,
|
|
420
|
+
'52002': BadRequest,
|
|
421
|
+
'52003': BadRequest,
|
|
422
|
+
'52004': BadRequest,
|
|
369
423
|
'53000': AccountSuspended,
|
|
370
424
|
'53001': AccountSuspended,
|
|
425
|
+
'53002': PermissionDenied,
|
|
426
|
+
'53003': PermissionDenied,
|
|
427
|
+
'53005': PermissionDenied,
|
|
428
|
+
'53006': PermissionDenied,
|
|
429
|
+
'53007': PermissionDenied,
|
|
430
|
+
'53008': PermissionDenied,
|
|
431
|
+
'53009': PermissionDenied,
|
|
432
|
+
'53010': PermissionDenied,
|
|
371
433
|
'57001': BadRequest,
|
|
372
434
|
'58001': BadRequest,
|
|
373
435
|
'59001': ExchangeError,
|
|
374
436
|
'59002': ExchangeError,
|
|
437
|
+
'59003': ExchangeError,
|
|
438
|
+
'59004': ExchangeError,
|
|
439
|
+
'59005': PermissionDenied,
|
|
440
|
+
'59006': ExchangeError,
|
|
441
|
+
'59007': ExchangeError,
|
|
442
|
+
'59008': ExchangeError,
|
|
443
|
+
'59009': ExchangeError,
|
|
444
|
+
'59010': InsufficientFunds,
|
|
445
|
+
'59011': ExchangeError,
|
|
375
446
|
// contract errors
|
|
376
447
|
'40001': ExchangeError,
|
|
377
448
|
'40002': ExchangeError,
|
|
@@ -407,14 +478,22 @@ export default class bitmart extends Exchange {
|
|
|
407
478
|
'40032': InvalidOrder,
|
|
408
479
|
'40033': InvalidOrder,
|
|
409
480
|
'40034': BadSymbol,
|
|
410
|
-
'
|
|
411
|
-
'
|
|
412
|
-
'
|
|
413
|
-
'
|
|
414
|
-
'
|
|
415
|
-
'
|
|
416
|
-
'
|
|
417
|
-
'
|
|
481
|
+
'40035': OrderNotFound,
|
|
482
|
+
'40036': InvalidOrder,
|
|
483
|
+
'40037': OrderNotFound,
|
|
484
|
+
'40038': BadRequest,
|
|
485
|
+
'40039': BadRequest,
|
|
486
|
+
'40040': InvalidOrder,
|
|
487
|
+
'40041': InvalidOrder,
|
|
488
|
+
'40042': InvalidOrder,
|
|
489
|
+
'40043': InvalidOrder,
|
|
490
|
+
'40044': InvalidOrder,
|
|
491
|
+
'40045': InvalidOrder,
|
|
492
|
+
'40046': PermissionDenied,
|
|
493
|
+
'40047': PermissionDenied,
|
|
494
|
+
'40048': BadRequest,
|
|
495
|
+
'40049': BadRequest,
|
|
496
|
+
'40050': InvalidOrder, // 403, Client OrderId duplicated with existing orders
|
|
418
497
|
},
|
|
419
498
|
'broad': {},
|
|
420
499
|
},
|
package/js/src/pro/binance.js
CHANGED
|
@@ -867,7 +867,10 @@ export default class binance extends binanceRest {
|
|
|
867
867
|
name = this.safeString(params, 'name', name);
|
|
868
868
|
params = this.omit(params, 'name');
|
|
869
869
|
let wsParams = [];
|
|
870
|
-
|
|
870
|
+
let messageHash = 'tickers';
|
|
871
|
+
if (symbols !== undefined) {
|
|
872
|
+
messageHash = 'tickers::' + symbols.join(',');
|
|
873
|
+
}
|
|
871
874
|
if (name === 'bookTicker') {
|
|
872
875
|
if (marketIds === undefined) {
|
|
873
876
|
throw new ArgumentsRequired(this.id + ' watchTickers() requires symbols for bookTicker');
|
|
@@ -1060,6 +1063,19 @@ export default class binance extends binanceRest {
|
|
|
1060
1063
|
this.tickers[symbol] = result;
|
|
1061
1064
|
newTickers.push(result);
|
|
1062
1065
|
}
|
|
1066
|
+
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
1067
|
+
for (let i = 0; i < messageHashes.length; i++) {
|
|
1068
|
+
const messageHash = messageHashes[i];
|
|
1069
|
+
const parts = messageHash.split('::');
|
|
1070
|
+
const symbolsString = parts[1];
|
|
1071
|
+
const symbols = symbolsString.split(',');
|
|
1072
|
+
const tickers = this.filterByArray(newTickers, 'symbol', symbols);
|
|
1073
|
+
const tickersSymbols = Object.keys(tickers);
|
|
1074
|
+
const numTickers = tickersSymbols.length;
|
|
1075
|
+
if (numTickers > 0) {
|
|
1076
|
+
client.resolve(tickers, messageHash);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1063
1079
|
client.resolve(newTickers, 'tickers');
|
|
1064
1080
|
}
|
|
1065
1081
|
signParams(params = {}) {
|
package/js/src/pro/bitget.js
CHANGED
|
@@ -156,7 +156,9 @@ export default class bitget extends bitgetRest {
|
|
|
156
156
|
}
|
|
157
157
|
const tickers = await this.watchPublicMultiple(messageHashes, topics, params);
|
|
158
158
|
if (this.newUpdates) {
|
|
159
|
-
|
|
159
|
+
const result = {};
|
|
160
|
+
result[tickers['symbol']] = tickers;
|
|
161
|
+
return result;
|
|
160
162
|
}
|
|
161
163
|
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
162
164
|
}
|
package/js/src/pro/bitmart.js
CHANGED
|
@@ -301,7 +301,10 @@ export default class bitmart extends bitmartRest {
|
|
|
301
301
|
if (type === 'swap') {
|
|
302
302
|
type = 'futures';
|
|
303
303
|
}
|
|
304
|
-
|
|
304
|
+
let messageHash = 'tickers';
|
|
305
|
+
if (symbols !== undefined) {
|
|
306
|
+
messageHash += '::' + symbols.join(',');
|
|
307
|
+
}
|
|
305
308
|
const request = {
|
|
306
309
|
'action': 'subscribe',
|
|
307
310
|
'args': ['futures/ticker'],
|
|
@@ -707,7 +710,7 @@ export default class bitmart extends bitmartRest {
|
|
|
707
710
|
// }
|
|
708
711
|
//
|
|
709
712
|
const marketId = this.safeString(position, 'symbol');
|
|
710
|
-
market = this.safeMarket(marketId, market,
|
|
713
|
+
market = this.safeMarket(marketId, market, undefined, 'swap');
|
|
711
714
|
const symbol = market['symbol'];
|
|
712
715
|
const openTimestamp = this.safeInteger(position, 'create_time');
|
|
713
716
|
const timestamp = this.safeInteger(position, 'update_time');
|
|
@@ -900,6 +903,18 @@ export default class bitmart extends bitmartRest {
|
|
|
900
903
|
const symbol = this.safeString(ticker, 'symbol');
|
|
901
904
|
this.tickers[symbol] = ticker;
|
|
902
905
|
client.resolve(ticker, 'tickers');
|
|
906
|
+
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
907
|
+
for (let i = 0; i < messageHashes.length; i++) {
|
|
908
|
+
const messageHash = messageHashes[i];
|
|
909
|
+
const parts = messageHash.split('::');
|
|
910
|
+
const symbolsString = parts[1];
|
|
911
|
+
const symbols = symbolsString.split(',');
|
|
912
|
+
if (this.inArray(symbol, symbols)) {
|
|
913
|
+
const response = {};
|
|
914
|
+
response[symbol] = ticker;
|
|
915
|
+
client.resolve(response, messageHash);
|
|
916
|
+
}
|
|
917
|
+
}
|
|
903
918
|
}
|
|
904
919
|
return message;
|
|
905
920
|
}
|
|
@@ -1049,7 +1064,7 @@ export default class bitmart extends bitmartRest {
|
|
|
1049
1064
|
}
|
|
1050
1065
|
else {
|
|
1051
1066
|
const marketId = this.safeString(data, 'symbol');
|
|
1052
|
-
const market = this.safeMarket(marketId, undefined,
|
|
1067
|
+
const market = this.safeMarket(marketId, undefined, undefined, 'swap');
|
|
1053
1068
|
const symbol = market['symbol'];
|
|
1054
1069
|
const items = this.safeValue(data, 'items', []);
|
|
1055
1070
|
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
package/js/src/pro/bybit.js
CHANGED
|
@@ -225,7 +225,9 @@ export default class bybit extends bybitRest {
|
|
|
225
225
|
}
|
|
226
226
|
const ticker = await this.watchTopics(url, messageHashes, topics, params);
|
|
227
227
|
if (this.newUpdates) {
|
|
228
|
-
|
|
228
|
+
const result = {};
|
|
229
|
+
result[ticker['symbol']] = ticker;
|
|
230
|
+
return result;
|
|
229
231
|
}
|
|
230
232
|
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
231
233
|
}
|
|
@@ -15,7 +15,7 @@ export declare class BigInteger {
|
|
|
15
15
|
protected intValue(): number;
|
|
16
16
|
protected byteValue(): number;
|
|
17
17
|
protected shortValue(): number;
|
|
18
|
-
protected signum():
|
|
18
|
+
protected signum(): 1 | 0 | -1;
|
|
19
19
|
toByteArray(): number[];
|
|
20
20
|
protected equals(a: BigInteger): boolean;
|
|
21
21
|
protected min(a: BigInteger): BigInteger;
|
package/package.json
CHANGED