ccxt 4.3.62 → 4.3.63

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.
Files changed (61) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +2 -1
  4. package/dist/cjs/src/ace.js +34 -15
  5. package/dist/cjs/src/base/Exchange.js +8 -1
  6. package/dist/cjs/src/base/errors.js +8 -1
  7. package/dist/cjs/src/binance.js +6 -9
  8. package/dist/cjs/src/bingx.js +466 -151
  9. package/dist/cjs/src/cryptocom.js +18 -2
  10. package/dist/cjs/src/mercado.js +5 -1
  11. package/dist/cjs/src/pro/binance.js +58 -34
  12. package/dist/cjs/src/pro/bitfinex2.js +6 -3
  13. package/dist/cjs/src/pro/bitget.js +4 -1
  14. package/dist/cjs/src/pro/bitvavo.js +1 -1
  15. package/dist/cjs/src/pro/bybit.js +44 -18
  16. package/dist/cjs/src/pro/cryptocom.js +7 -1
  17. package/dist/cjs/src/pro/gate.js +6 -2
  18. package/dist/cjs/src/pro/htx.js +5 -1
  19. package/dist/cjs/src/pro/independentreserve.js +5 -3
  20. package/dist/cjs/src/pro/kraken.js +82 -4
  21. package/dist/cjs/src/pro/okx.js +3 -3
  22. package/dist/cjs/src/pro/poloniexfutures.js +5 -1
  23. package/dist/cjs/src/pro/woofipro.js +1 -1
  24. package/dist/cjs/src/woo.js +313 -81
  25. package/js/ccxt.d.ts +3 -3
  26. package/js/ccxt.js +3 -3
  27. package/js/src/abstract/cryptocom.d.ts +11 -0
  28. package/js/src/abstract/woo.d.ts +3 -0
  29. package/js/src/ace.js +34 -15
  30. package/js/src/base/Exchange.d.ts +1 -0
  31. package/js/src/base/Exchange.js +8 -1
  32. package/js/src/base/errorHierarchy.d.ts +3 -1
  33. package/js/src/base/errorHierarchy.js +3 -1
  34. package/js/src/base/errors.d.ts +5 -1
  35. package/js/src/base/errors.js +8 -2
  36. package/js/src/binance.js +6 -9
  37. package/js/src/bingx.d.ts +1 -0
  38. package/js/src/bingx.js +466 -151
  39. package/js/src/coinbaseinternational.d.ts +1 -1
  40. package/js/src/cryptocom.js +18 -2
  41. package/js/src/mercado.js +5 -1
  42. package/js/src/pro/binance.d.ts +1 -0
  43. package/js/src/pro/binance.js +59 -35
  44. package/js/src/pro/bitfinex2.js +7 -4
  45. package/js/src/pro/bitget.js +5 -2
  46. package/js/src/pro/bitvavo.js +1 -1
  47. package/js/src/pro/bybit.d.ts +1 -0
  48. package/js/src/pro/bybit.js +44 -18
  49. package/js/src/pro/cryptocom.js +8 -2
  50. package/js/src/pro/gate.js +7 -3
  51. package/js/src/pro/htx.js +6 -2
  52. package/js/src/pro/independentreserve.js +6 -4
  53. package/js/src/pro/kraken.d.ts +3 -1
  54. package/js/src/pro/kraken.js +83 -5
  55. package/js/src/pro/okx.js +4 -4
  56. package/js/src/pro/poloniexfutures.js +6 -2
  57. package/js/src/pro/woofipro.js +1 -1
  58. package/js/src/woo.d.ts +5 -1
  59. package/js/src/woo.js +313 -81
  60. package/js/src/xt.d.ts +3 -3
  61. package/package.json +1 -1
package/js/ccxt.js CHANGED
@@ -35,10 +35,10 @@ import { Exchange } from './src/base/Exchange.js';
35
35
  import { Precise } from './src/base/Precise.js';
36
36
  import * as functions from './src/base/functions.js';
37
37
  import * as errors from './src/base/errors.js';
38
- import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
38
+ import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.3.62';
41
+ const version = '4.3.63';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import ace from './src/ace.js';
@@ -410,6 +410,6 @@ pro.exchanges = Object.keys(pro);
410
410
  pro['Exchange'] = Exchange; // now the same for rest and ts
411
411
  //-----------------------------------------------------------------------------
412
412
  const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
413
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
413
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
414
414
  export default ccxt;
415
415
  //-----------------------------------------------------------------------------
@@ -10,6 +10,7 @@ interface Exchange {
10
10
  v1PublicGetPublicGetValuations(params?: {}): Promise<implicitReturnType>;
11
11
  v1PublicGetPublicGetExpiredSettlementPrice(params?: {}): Promise<implicitReturnType>;
12
12
  v1PublicGetPublicGetInsurance(params?: {}): Promise<implicitReturnType>;
13
+ v1PublicPostPublicStakingGetConversionRate(params?: {}): Promise<implicitReturnType>;
13
14
  v1PrivatePostPrivateSetCancelOnDisconnect(params?: {}): Promise<implicitReturnType>;
14
15
  v1PrivatePostPrivateGetCancelOnDisconnect(params?: {}): Promise<implicitReturnType>;
15
16
  v1PrivatePostPrivateUserBalance(params?: {}): Promise<implicitReturnType>;
@@ -36,6 +37,16 @@ interface Exchange {
36
37
  v1PrivatePostPrivateGetAccounts(params?: {}): Promise<implicitReturnType>;
37
38
  v1PrivatePostPrivateGetWithdrawalHistory(params?: {}): Promise<implicitReturnType>;
38
39
  v1PrivatePostPrivateGetDepositHistory(params?: {}): Promise<implicitReturnType>;
40
+ v1PrivatePostPrivateStakingStake(params?: {}): Promise<implicitReturnType>;
41
+ v1PrivatePostPrivateStakingUnstake(params?: {}): Promise<implicitReturnType>;
42
+ v1PrivatePostPrivateStakingGetStakingPosition(params?: {}): Promise<implicitReturnType>;
43
+ v1PrivatePostPrivateStakingGetStakingInstruments(params?: {}): Promise<implicitReturnType>;
44
+ v1PrivatePostPrivateStakingGetOpenStake(params?: {}): Promise<implicitReturnType>;
45
+ v1PrivatePostPrivateStakingGetStakeHistory(params?: {}): Promise<implicitReturnType>;
46
+ v1PrivatePostPrivateStakingGetRewardHistory(params?: {}): Promise<implicitReturnType>;
47
+ v1PrivatePostPrivateStakingConvert(params?: {}): Promise<implicitReturnType>;
48
+ v1PrivatePostPrivateStakingGetOpenConvert(params?: {}): Promise<implicitReturnType>;
49
+ v1PrivatePostPrivateStakingGetConvertHistory(params?: {}): Promise<implicitReturnType>;
39
50
  v2PublicGetPublicAuth(params?: {}): Promise<implicitReturnType>;
40
51
  v2PublicGetPublicGetInstruments(params?: {}): Promise<implicitReturnType>;
41
52
  v2PublicGetPublicGetBook(params?: {}): Promise<implicitReturnType>;
@@ -41,6 +41,7 @@ interface Exchange {
41
41
  v1PrivateGetPositions(params?: {}): Promise<implicitReturnType>;
42
42
  v1PrivateGetPositionSymbol(params?: {}): Promise<implicitReturnType>;
43
43
  v1PrivateGetClientTransactionHistory(params?: {}): Promise<implicitReturnType>;
44
+ v1PrivateGetClientFuturesLeverage(params?: {}): Promise<implicitReturnType>;
44
45
  v1PrivatePostOrder(params?: {}): Promise<implicitReturnType>;
45
46
  v1PrivatePostOrderCancelAllAfter(params?: {}): Promise<implicitReturnType>;
46
47
  v1PrivatePostAssetMainSubTransfer(params?: {}): Promise<implicitReturnType>;
@@ -51,6 +52,8 @@ interface Exchange {
51
52
  v1PrivatePostClientAccountMode(params?: {}): Promise<implicitReturnType>;
52
53
  v1PrivatePostClientPositionMode(params?: {}): Promise<implicitReturnType>;
53
54
  v1PrivatePostClientLeverage(params?: {}): Promise<implicitReturnType>;
55
+ v1PrivatePostClientFuturesLeverage(params?: {}): Promise<implicitReturnType>;
56
+ v1PrivatePostClientIsolatedMargin(params?: {}): Promise<implicitReturnType>;
54
57
  v1PrivateDeleteOrder(params?: {}): Promise<implicitReturnType>;
55
58
  v1PrivateDeleteClientOrder(params?: {}): Promise<implicitReturnType>;
56
59
  v1PrivateDeleteOrders(params?: {}): Promise<implicitReturnType>;
package/js/src/ace.js CHANGED
@@ -201,10 +201,23 @@ export default class ace extends Exchange {
201
201
  return this.parseMarkets(response);
202
202
  }
203
203
  parseMarket(market) {
204
- const baseId = this.safeString(market, 'base');
205
- const base = this.safeCurrencyCode(baseId);
206
- const quoteId = this.safeString(market, 'quote');
207
- const quote = this.safeCurrencyCode(quoteId);
204
+ //
205
+ // {
206
+ // "symbol": "ADA/TWD",
207
+ // "base": "ADA",
208
+ // "baseCurrencyId": "122",
209
+ // "quote": "TWD",
210
+ // "quoteCurrencyId": "1",
211
+ // "basePrecision": "2",
212
+ // "quotePrecision": "3",
213
+ // "minLimitBaseAmount": "1.0",
214
+ // "maxLimitBaseAmount": "150000.0"
215
+ // }
216
+ //
217
+ const baseId = this.safeString(market, 'baseCurrencyId');
218
+ const base = this.safeCurrencyCode(this.safeString(market, 'base'));
219
+ const quoteId = this.safeString(market, 'quoteCurrencyId');
220
+ const quote = this.safeCurrencyCode(this.safeString(market, 'quote'));
208
221
  const symbol = base + '/' + quote;
209
222
  return {
210
223
  'id': this.safeString(market, 'symbol'),
@@ -304,7 +317,7 @@ export default class ace extends Exchange {
304
317
  const market = this.market(symbol);
305
318
  const response = await this.publicGetOapiV2ListTradePrice(params);
306
319
  const marketId = market['id'];
307
- const ticker = this.safeValue(response, marketId, {});
320
+ const ticker = this.safeDict(response, marketId, {});
308
321
  //
309
322
  // {
310
323
  // "BTC/USDT":{
@@ -342,7 +355,7 @@ export default class ace extends Exchange {
342
355
  for (let i = 0; i < pairs.length; i++) {
343
356
  const marketId = pairs[i];
344
357
  const market = this.safeMarket(marketId);
345
- const rawTicker = this.safeValue(response, marketId);
358
+ const rawTicker = this.safeDict(response, marketId);
346
359
  const ticker = this.parseTicker(rawTicker, market);
347
360
  tickers.push(ticker);
348
361
  }
@@ -465,7 +478,7 @@ export default class ace extends Exchange {
465
478
  request['startTime'] = since;
466
479
  }
467
480
  const response = await this.privatePostV2KlineGetKline(this.extend(request, params));
468
- const data = this.safeValue(response, 'attachment', []);
481
+ const data = this.safeList(response, 'attachment', []);
469
482
  //
470
483
  // {
471
484
  // "attachment":[
@@ -547,9 +560,9 @@ export default class ace extends Exchange {
547
560
  timestamp = timestamp - 28800000; // 8 hours
548
561
  }
549
562
  }
550
- const orderSide = this.safeNumber(order, 'buyOrSell');
563
+ const orderSide = this.safeString(order, 'buyOrSell');
551
564
  if (orderSide !== undefined) {
552
- side = (orderSide === 1) ? 'buy' : 'sell';
565
+ side = (orderSide === '1') ? 'buy' : 'sell';
553
566
  }
554
567
  amount = this.safeString(order, 'num');
555
568
  price = this.safeString(order, 'price');
@@ -558,9 +571,9 @@ export default class ace extends Exchange {
558
571
  if (quoteId !== undefined && baseId !== undefined) {
559
572
  symbol = baseId + '/' + quoteId;
560
573
  }
561
- const orderType = this.safeNumber(order, 'type');
574
+ const orderType = this.safeString(order, 'type');
562
575
  if (orderType !== undefined) {
563
- type = (orderType === 1) ? 'limit' : 'market';
576
+ type = (orderType === '1') ? 'limit' : 'market';
564
577
  }
565
578
  filled = this.safeString(order, 'tradeNum');
566
579
  remaining = this.safeString(order, 'remainNum');
@@ -723,7 +736,7 @@ export default class ace extends Exchange {
723
736
  request['size'] = limit;
724
737
  }
725
738
  const response = await this.privatePostV2OrderGetOrderList(this.extend(request, params));
726
- const orders = this.safeValue(response, 'attachment');
739
+ const orders = this.safeList(response, 'attachment');
727
740
  //
728
741
  // {
729
742
  // "attachment": [
@@ -886,7 +899,7 @@ export default class ace extends Exchange {
886
899
  // "status": 200
887
900
  // }
888
901
  //
889
- const data = this.safeValue(response, 'attachment');
902
+ const data = this.safeDict(response, 'attachment');
890
903
  const trades = this.safeList(data, 'trades', []);
891
904
  return this.parseTrades(trades, market, since, limit);
892
905
  }
@@ -989,7 +1002,7 @@ export default class ace extends Exchange {
989
1002
  */
990
1003
  await this.loadMarkets();
991
1004
  const response = await this.privatePostV2CoinCustomerAccount(params);
992
- const balances = this.safeValue(response, 'attachment', []);
1005
+ const balances = this.safeList(response, 'attachment', []);
993
1006
  //
994
1007
  // {
995
1008
  // "attachment":[
@@ -1024,7 +1037,13 @@ export default class ace extends Exchange {
1024
1037
  }, params);
1025
1038
  const sortedData = this.keysort(data);
1026
1039
  const values = Object.values(sortedData);
1027
- auth += values.join('');
1040
+ const stringifiedValues = [];
1041
+ for (let i = 0; i < values.length; i++) {
1042
+ const value = values[i];
1043
+ const strValue = value.toString();
1044
+ stringifiedValues.push(strValue);
1045
+ }
1046
+ auth += stringifiedValues.join('');
1028
1047
  const signature = this.hash(this.encode(auth), sha256, 'hex');
1029
1048
  data['signKey'] = signature;
1030
1049
  headers = {
@@ -763,6 +763,7 @@ export default class Exchange {
763
763
  isRoundNumber(value: number): boolean;
764
764
  safeIntegerOmitZero(obj: object, key: IndexType, defaultValue?: Int): Int;
765
765
  afterConstruct(): void;
766
+ orderbookChecksumMessage(symbol: Str): string;
766
767
  createNetworksByIdObject(): void;
767
768
  getDefaultOptions(): {
768
769
  defaultNetworkCodeReplacements: {
@@ -2186,6 +2186,9 @@ export default class Exchange {
2186
2186
  afterConstruct() {
2187
2187
  this.createNetworksByIdObject();
2188
2188
  }
2189
+ orderbookChecksumMessage(symbol) {
2190
+ return symbol + ' : ' + 'orderbook data checksum validation failed. You can reconnect by calling watchOrderBook again or you can mute the error by setting exchange.options["watchOrderBook"]["checksum"] = false';
2191
+ }
2189
2192
  createNetworksByIdObject() {
2190
2193
  // automatically generate network-id-to-code mappings
2191
2194
  const networkIdsToCodesGenerated = this.invertFlatStringDictionary(this.safeValue(this.options, 'networks', {})); // invert defined networks dictionary
@@ -6134,8 +6137,12 @@ export default class Exchange {
6134
6137
  return [request, params];
6135
6138
  }
6136
6139
  safeOpenInterest(interest, market = undefined) {
6140
+ let symbol = this.safeString(interest, 'symbol');
6141
+ if (symbol === undefined) {
6142
+ symbol = this.safeString(market, 'symbol');
6143
+ }
6137
6144
  return this.extend(interest, {
6138
- 'symbol': this.safeString(market, 'symbol'),
6145
+ 'symbol': symbol,
6139
6146
  'baseVolume': this.safeNumber(interest, 'baseVolume'),
6140
6147
  'quoteVolume': this.safeNumber(interest, 'quoteVolume'),
6141
6148
  'openInterestAmount': this.safeNumber(interest, 'openInterestAmount'),
@@ -40,7 +40,9 @@ declare const errorHierarchy: {
40
40
  ExchangeNotAvailable: {
41
41
  OnMaintenance: {};
42
42
  };
43
- InvalidNonce: {};
43
+ InvalidNonce: {
44
+ ChecksumError: {};
45
+ };
44
46
  RequestTimeout: {};
45
47
  };
46
48
  BadResponse: {
@@ -46,7 +46,9 @@ const errorHierarchy = {
46
46
  'ExchangeNotAvailable': {
47
47
  'OnMaintenance': {},
48
48
  },
49
- 'InvalidNonce': {},
49
+ 'InvalidNonce': {
50
+ 'ChecksumError': {},
51
+ },
50
52
  'RequestTimeout': {},
51
53
  },
52
54
  'BadResponse': {
@@ -97,6 +97,9 @@ declare class OnMaintenance extends ExchangeNotAvailable {
97
97
  declare class InvalidNonce extends NetworkError {
98
98
  constructor(message: string);
99
99
  }
100
+ declare class ChecksumError extends InvalidNonce {
101
+ constructor(message: string);
102
+ }
100
103
  declare class RequestTimeout extends NetworkError {
101
104
  constructor(message: string);
102
105
  }
@@ -109,7 +112,7 @@ declare class NullResponse extends BadResponse {
109
112
  declare class CancelPending extends OperationFailed {
110
113
  constructor(message: string);
111
114
  }
112
- export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending };
115
+ export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
113
116
  declare const _default: {
114
117
  BaseError: typeof BaseError;
115
118
  ExchangeError: typeof ExchangeError;
@@ -144,6 +147,7 @@ declare const _default: {
144
147
  ExchangeNotAvailable: typeof ExchangeNotAvailable;
145
148
  OnMaintenance: typeof OnMaintenance;
146
149
  InvalidNonce: typeof InvalidNonce;
150
+ ChecksumError: typeof ChecksumError;
147
151
  RequestTimeout: typeof RequestTimeout;
148
152
  BadResponse: typeof BadResponse;
149
153
  NullResponse: typeof NullResponse;
@@ -203,6 +203,12 @@ class InvalidNonce extends NetworkError {
203
203
  this.name = 'InvalidNonce';
204
204
  }
205
205
  }
206
+ class ChecksumError extends InvalidNonce {
207
+ constructor(message) {
208
+ super(message);
209
+ this.name = 'ChecksumError';
210
+ }
211
+ }
206
212
  class RequestTimeout extends NetworkError {
207
213
  constructor(message) {
208
214
  super(message);
@@ -227,5 +233,5 @@ class CancelPending extends OperationFailed {
227
233
  this.name = 'CancelPending';
228
234
  }
229
235
  }
230
- export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending };
231
- export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending };
236
+ export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
237
+ export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
package/js/src/binance.js CHANGED
@@ -816,7 +816,7 @@ export default class binance extends Exchange {
816
816
  'forceOrders': { 'cost': 20, 'noSymbol': 50 },
817
817
  'allOrders': 5,
818
818
  'openOrder': 1,
819
- 'openOrders': 1,
819
+ 'openOrders': { 'cost': 1, 'noSymbol': 40 },
820
820
  'order': 1,
821
821
  'account': 5,
822
822
  'balance': 5,
@@ -1008,18 +1008,18 @@ export default class binance extends Exchange {
1008
1008
  'ping': 1,
1009
1009
  'um/order': 1,
1010
1010
  'um/openOrder': 1,
1011
- 'um/openOrders': 1,
1011
+ 'um/openOrders': { 'cost': 1, 'noSymbol': 40 },
1012
1012
  'um/allOrders': 5,
1013
1013
  'cm/order': 1,
1014
1014
  'cm/openOrder': 1,
1015
- 'cm/openOrders': 1,
1015
+ 'cm/openOrders': { 'cost': 1, 'noSymbol': 40 },
1016
1016
  'cm/allOrders': 20,
1017
1017
  'um/conditional/openOrder': 1,
1018
- 'um/conditional/openOrders': 40,
1018
+ 'um/conditional/openOrders': { 'cost': 1, 'noSymbol': 40 },
1019
1019
  'um/conditional/orderHistory': 1,
1020
1020
  'um/conditional/allOrders': 40,
1021
1021
  'cm/conditional/openOrder': 1,
1022
- 'cm/conditional/openOrders': 40,
1022
+ 'cm/conditional/openOrders': { 'cost': 1, 'noSymbol': 40 },
1023
1023
  'cm/conditional/orderHistory': 1,
1024
1024
  'cm/conditional/allOrders': 40,
1025
1025
  'margin/order': 5,
@@ -6583,10 +6583,7 @@ export default class binance extends Exchange {
6583
6583
  type = this.safeString(params, 'type', marketType);
6584
6584
  }
6585
6585
  else if (this.options['warnOnFetchOpenOrdersWithoutSymbol']) {
6586
- const symbols = this.symbols;
6587
- const numSymbols = symbols.length;
6588
- const fetchOpenOrdersRateLimit = this.parseToInt(numSymbols / 2);
6589
- throw new ExchangeError(this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString() + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.');
6586
+ throw new ExchangeError(this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol has stricter rate limits (10 times more for spot, 40 times more for other markets) compared to requesting with symbol argument. To acknowledge this warning, set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.');
6590
6587
  }
6591
6588
  else {
6592
6589
  const defaultType = this.safeString2(this.options, 'fetchOpenOrders', 'defaultType', 'spot');
package/js/src/bingx.d.ts CHANGED
@@ -66,6 +66,7 @@ export default class bingx extends Exchange {
66
66
  fetchBalance(params?: {}): Promise<Balances>;
67
67
  parseBalance(response: any): Balances;
68
68
  fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
69
+ fetchPosition(symbol: string, params?: {}): Promise<Position>;
69
70
  parsePosition(position: Dict, market?: Market): Position;
70
71
  createMarketOrderWithCost(symbol: string, side: OrderSide, cost: number, params?: {}): Promise<Order>;
71
72
  createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;