ccxt 4.3.66 → 4.3.67

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/dist/cjs/ccxt.js CHANGED
@@ -191,7 +191,7 @@ var xt$1 = require('./src/pro/xt.js');
191
191
 
192
192
  //-----------------------------------------------------------------------------
193
193
  // this is updated by vss.js when building
194
- const version = '4.3.66';
194
+ const version = '4.3.67';
195
195
  Exchange["default"].ccxtVersion = version;
196
196
  const exchanges = {
197
197
  'ace': ace,
@@ -1180,7 +1180,7 @@ class Exchange {
1180
1180
  return new OrderBook.CountedOrderBook(snapshot, depth);
1181
1181
  }
1182
1182
  handleMessage(client, message) { } // stub to override
1183
- // ping (client) {} // stub to override
1183
+ // ping (client: Client) {} // stub to override
1184
1184
  ping(client) {
1185
1185
  return undefined;
1186
1186
  }
@@ -283,6 +283,10 @@ class bingx extends bingx$1 {
283
283
  'trade/leverage': 2,
284
284
  'trade/forceOrders': 2,
285
285
  'trade/allFillOrders': 2,
286
+ 'trade/openOrders': 2,
287
+ 'trade/orderDetail': 2,
288
+ 'trade/orderHistory': 2,
289
+ 'trade/marginType': 2,
286
290
  'user/commissionRate': 2,
287
291
  'user/positions': 2,
288
292
  'user/balance': 2,
@@ -291,9 +295,12 @@ class bingx extends bingx$1 {
291
295
  'trade/order': 2,
292
296
  'trade/leverage': 2,
293
297
  'trade/closeAllPositions': 2,
298
+ 'trade/marginType': 2,
299
+ 'trade/positionMargin': 2,
294
300
  },
295
301
  'delete': {
296
302
  'trade/allOpenOrders': 2,
303
+ 'trade/cancelOrder': 2,
297
304
  },
298
305
  },
299
306
  },
@@ -3004,7 +3011,8 @@ class bingx extends bingx$1 {
3004
3011
  // "clientOrderID": ""
3005
3012
  // }
3006
3013
  //
3007
- // inverse swap cancelAllOrders
3014
+ // inverse swap cancelAllOrders, cancelOrder
3015
+ // inverse swap cancelAllOrders, cancelOrder, fetchOpenOrders
3008
3016
  //
3009
3017
  // {
3010
3018
  // "symbol": "SOL-USD",
@@ -3166,13 +3174,14 @@ class bingx extends bingx$1 {
3166
3174
  * @method
3167
3175
  * @name bingx#cancelOrder
3168
3176
  * @description cancels an open order
3169
- * @see https://bingx-api.github.io/docs/#/spot/trade-api.html#Cancel%20an%20Order
3170
- * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Cancel%20an%20Order
3177
+ * @see https://bingx-api.github.io/docs/#/en-us/spot/trade-api.html#Cancel%20Order
3178
+ * @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Cancel%20Order
3179
+ * @see https://bingx-api.github.io/docs/#/en-us/cswap/trade-api.html#Cancel%20an%20Order
3171
3180
  * @param {string} id order id
3172
3181
  * @param {string} symbol unified symbol of the market the order was made in
3173
3182
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3174
3183
  * @param {string} [params.clientOrderId] a unique id for the order
3175
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
3184
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
3176
3185
  */
3177
3186
  if (symbol === undefined) {
3178
3187
  throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
@@ -3191,12 +3200,20 @@ class bingx extends bingx$1 {
3191
3200
  request['orderId'] = id;
3192
3201
  }
3193
3202
  let response = undefined;
3194
- const [marketType, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
3195
- if (marketType === 'spot') {
3196
- response = await this.spotV1PrivatePostTradeCancel(this.extend(request, query));
3203
+ let type = undefined;
3204
+ let subType = undefined;
3205
+ [type, params] = this.handleMarketTypeAndParams('cancelOrder', market, params);
3206
+ [subType, params] = this.handleSubTypeAndParams('cancelOrder', market, params);
3207
+ if (type === 'spot') {
3208
+ response = await this.spotV1PrivatePostTradeCancel(this.extend(request, params));
3197
3209
  }
3198
3210
  else {
3199
- response = await this.swapV2PrivateDeleteTradeOrder(this.extend(request, query));
3211
+ if (subType === 'inverse') {
3212
+ response = await this.cswapV1PrivateDeleteTradeCancelOrder(this.extend(request, params));
3213
+ }
3214
+ else {
3215
+ response = await this.swapV2PrivateDeleteTradeOrder(this.extend(request, params));
3216
+ }
3200
3217
  }
3201
3218
  //
3202
3219
  // spot
@@ -3217,7 +3234,59 @@ class bingx extends bingx$1 {
3217
3234
  // }
3218
3235
  // }
3219
3236
  //
3220
- // swap
3237
+ // inverse swap
3238
+ //
3239
+ // {
3240
+ // "code": 0,
3241
+ // "msg": "",
3242
+ // "data": {
3243
+ // "order": {
3244
+ // "symbol": "SOL-USD",
3245
+ // "orderId": "1816002957423951872",
3246
+ // "side": "BUY",
3247
+ // "positionSide": "Long",
3248
+ // "type": "Pending",
3249
+ // "quantity": 0,
3250
+ // "origQty": "0",
3251
+ // "price": "150",
3252
+ // "executedQty": "0",
3253
+ // "avgPrice": "0",
3254
+ // "cumQuote": "0",
3255
+ // "stopPrice": "",
3256
+ // "profit": "0.0000",
3257
+ // "commission": "0.000000",
3258
+ // "status": "CANCELLED",
3259
+ // "time": 1721803819410,
3260
+ // "updateTime": 1721803819427,
3261
+ // "clientOrderId": "",
3262
+ // "leverage": "",
3263
+ // "takeProfit": {
3264
+ // "type": "",
3265
+ // "quantity": 0,
3266
+ // "stopPrice": 0,
3267
+ // "price": 0,
3268
+ // "workingType": "",
3269
+ // "stopGuaranteed": ""
3270
+ // },
3271
+ // "stopLoss": {
3272
+ // "type": "",
3273
+ // "quantity": 0,
3274
+ // "stopPrice": 0,
3275
+ // "price": 0,
3276
+ // "workingType": "",
3277
+ // "stopGuaranteed": ""
3278
+ // },
3279
+ // "advanceAttr": 0,
3280
+ // "positionID": 0,
3281
+ // "takeProfitEntrustPrice": 0,
3282
+ // "stopLossEntrustPrice": 0,
3283
+ // "orderType": "",
3284
+ // "workingType": ""
3285
+ // }
3286
+ // }
3287
+ // }
3288
+ //
3289
+ // linear swap
3221
3290
  //
3222
3291
  // {
3223
3292
  // "code": 0,
@@ -3244,9 +3313,9 @@ class bingx extends bingx$1 {
3244
3313
  // }
3245
3314
  // }
3246
3315
  //
3247
- const data = this.safeValue(response, 'data');
3248
- const first = this.safeDict(data, 'order', data);
3249
- return this.parseOrder(first, market);
3316
+ const data = this.safeDict(response, 'data', {});
3317
+ const order = this.safeDict(data, 'order', data);
3318
+ return this.parseOrder(order, market);
3250
3319
  }
3251
3320
  async cancelAllOrders(symbol = undefined, params = {}) {
3252
3321
  /**
@@ -3726,9 +3795,10 @@ class bingx extends bingx$1 {
3726
3795
  /**
3727
3796
  * @method
3728
3797
  * @name bingx#fetchOpenOrders
3729
- * @see https://bingx-api.github.io/docs/#/spot/trade-api.html#Query%20Open%20Orders
3730
- * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Query%20all%20current%20pending%20orders
3731
3798
  * @description fetch all unfilled currently open orders
3799
+ * @see https://bingx-api.github.io/docs/#/en-us/spot/trade-api.html#Current%20Open%20Orders
3800
+ * @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Current%20All%20Open%20Orders
3801
+ * @see https://bingx-api.github.io/docs/#/en-us/cswap/trade-api.html#Query%20all%20current%20pending%20orders
3732
3802
  * @param {string} symbol unified market symbol
3733
3803
  * @param {int} [since] the earliest time in ms to fetch open orders for
3734
3804
  * @param {int} [limit] the maximum number of open order structures to retrieve
@@ -3742,13 +3812,21 @@ class bingx extends bingx$1 {
3742
3812
  market = this.market(symbol);
3743
3813
  request['symbol'] = market['id'];
3744
3814
  }
3815
+ let type = undefined;
3816
+ let subType = undefined;
3745
3817
  let response = undefined;
3746
- const [marketType, query] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
3747
- if (marketType === 'spot') {
3748
- response = await this.spotV1PrivateGetTradeOpenOrders(this.extend(request, query));
3818
+ [type, params] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
3819
+ [subType, params] = this.handleSubTypeAndParams('fetchOpenOrders', market, params);
3820
+ if (type === 'spot') {
3821
+ response = await this.spotV1PrivateGetTradeOpenOrders(this.extend(request, params));
3749
3822
  }
3750
3823
  else {
3751
- response = await this.swapV2PrivateGetTradeOpenOrders(this.extend(request, query));
3824
+ if (subType === 'inverse') {
3825
+ response = await this.cswapV1PrivateGetTradeOpenOrders(this.extend(request, params));
3826
+ }
3827
+ else {
3828
+ response = await this.swapV2PrivateGetTradeOpenOrders(this.extend(request, params));
3829
+ }
3752
3830
  }
3753
3831
  //
3754
3832
  // spot
@@ -3776,7 +3854,61 @@ class bingx extends bingx$1 {
3776
3854
  // }
3777
3855
  // }
3778
3856
  //
3779
- // swap
3857
+ // inverse swap
3858
+ //
3859
+ // {
3860
+ // "code": 0,
3861
+ // "msg": "",
3862
+ // "data": {
3863
+ // "orders": [
3864
+ // {
3865
+ // "symbol": "SOL-USD",
3866
+ // "orderId": "1816013900044320768",
3867
+ // "side": "BUY",
3868
+ // "positionSide": "Long",
3869
+ // "type": "LIMIT",
3870
+ // "quantity": 1,
3871
+ // "origQty": "",
3872
+ // "price": "150",
3873
+ // "executedQty": "0",
3874
+ // "avgPrice": "0.000",
3875
+ // "cumQuote": "",
3876
+ // "stopPrice": "",
3877
+ // "profit": "0.0000",
3878
+ // "commission": "0.0000",
3879
+ // "status": "Pending",
3880
+ // "time": 1721806428334,
3881
+ // "updateTime": 1721806428352,
3882
+ // "clientOrderId": "",
3883
+ // "leverage": "",
3884
+ // "takeProfit": {
3885
+ // "type": "TAKE_PROFIT",
3886
+ // "quantity": 0,
3887
+ // "stopPrice": 0,
3888
+ // "price": 0,
3889
+ // "workingType": "MARK_PRICE",
3890
+ // "stopGuaranteed": ""
3891
+ // },
3892
+ // "stopLoss": {
3893
+ // "type": "STOP",
3894
+ // "quantity": 0,
3895
+ // "stopPrice": 0,
3896
+ // "price": 0,
3897
+ // "workingType": "MARK_PRICE",
3898
+ // "stopGuaranteed": ""
3899
+ // },
3900
+ // "advanceAttr": 0,
3901
+ // "positionID": 0,
3902
+ // "takeProfitEntrustPrice": 0,
3903
+ // "stopLossEntrustPrice": 0,
3904
+ // "orderType": "",
3905
+ // "workingType": "MARK_PRICE"
3906
+ // }
3907
+ // ]
3908
+ // }
3909
+ // }
3910
+ //
3911
+ // linear swap
3780
3912
  //
3781
3913
  // {
3782
3914
  // "code": 0,
@@ -203,17 +203,57 @@ class bithumb extends bithumb$1 {
203
203
  * @returns {object[]} an array of objects representing market data
204
204
  */
205
205
  const result = [];
206
- const quoteCurrencies = this.safeValue(this.options, 'quoteCurrencies', {});
206
+ const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
207
207
  const quotes = Object.keys(quoteCurrencies);
208
+ const promises = [];
208
209
  for (let i = 0; i < quotes.length; i++) {
209
- const quote = quotes[i];
210
- const quoteId = quote;
211
- const extension = this.safeValue(quoteCurrencies, quote, {});
212
210
  const request = {
213
- 'quoteId': quoteId,
211
+ 'quoteId': quotes[i],
214
212
  };
215
- const response = await this.publicGetTickerALLQuoteId(this.extend(request, params));
216
- const data = this.safeValue(response, 'data');
213
+ promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
214
+ //
215
+ // {
216
+ // "status": "0000",
217
+ // "data": {
218
+ // "ETH": {
219
+ // "opening_price": "0.05153399",
220
+ // "closing_price": "0.05145144",
221
+ // "min_price": "0.05145144",
222
+ // "max_price": "0.05160781",
223
+ // "units_traded": "6.541124172077830855",
224
+ // "acc_trade_value": "0.33705472498492329997697755",
225
+ // "prev_closing_price": "0.0515943",
226
+ // "units_traded_24H": "43.368879902677400513",
227
+ // "acc_trade_value_24H": "2.24165339555398079994373342",
228
+ // "fluctate_24H": "-0.00018203",
229
+ // "fluctate_rate_24H": "-0.35"
230
+ // },
231
+ // "XRP": {
232
+ // "opening_price": "0.00000918",
233
+ // "closing_price": "0.0000092",
234
+ // "min_price": "0.00000918",
235
+ // "max_price": "0.0000092",
236
+ // "units_traded": "6516.949363",
237
+ // "acc_trade_value": "0.0598792533602796",
238
+ // "prev_closing_price": "0.00000916",
239
+ // "units_traded_24H": "229161.50354738",
240
+ // "acc_trade_value_24H": "2.0446589371637117",
241
+ // "fluctate_24H": "0.00000049",
242
+ // "fluctate_rate_24H": "5.63"
243
+ // },
244
+ // ...
245
+ // "date": "1721675913145"
246
+ // }
247
+ // }
248
+ //
249
+ }
250
+ const results = await Promise.all(promises);
251
+ for (let i = 0; i < quotes.length; i++) {
252
+ const quote = quotes[i];
253
+ const quoteId = quote;
254
+ const response = results[i];
255
+ const data = this.safeDict(response, 'data');
256
+ const extension = this.safeDict(quoteCurrencies, quote, {});
217
257
  const currencyIds = Object.keys(data);
218
258
  for (let j = 0; j < currencyIds.length; j++) {
219
259
  const currencyId = currencyIds[j];
@@ -282,7 +322,7 @@ class bithumb extends bithumb$1 {
282
322
  }
283
323
  parseBalance(response) {
284
324
  const result = { 'info': response };
285
- const balances = this.safeValue(response, 'data');
325
+ const balances = this.safeDict(response, 'data');
286
326
  const codes = Object.keys(this.currencies);
287
327
  for (let i = 0; i < codes.length; i++) {
288
328
  const code = codes[i];
@@ -353,7 +393,7 @@ class bithumb extends bithumb$1 {
353
393
  // }
354
394
  // }
355
395
  //
356
- const data = this.safeValue(response, 'data', {});
396
+ const data = this.safeDict(response, 'data', {});
357
397
  const timestamp = this.safeInteger(data, 'timestamp');
358
398
  return this.parseOrderBook(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity');
359
399
  }
@@ -417,15 +457,19 @@ class bithumb extends bithumb$1 {
417
457
  */
418
458
  await this.loadMarkets();
419
459
  const result = {};
420
- const quoteCurrencies = this.safeValue(this.options, 'quoteCurrencies', {});
460
+ const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
421
461
  const quotes = Object.keys(quoteCurrencies);
462
+ const promises = [];
422
463
  for (let i = 0; i < quotes.length; i++) {
423
- const quote = quotes[i];
424
- const quoteId = quote;
425
464
  const request = {
426
- 'quoteId': quoteId,
465
+ 'quoteId': quotes[i],
427
466
  };
428
- const response = await this.publicGetTickerALLQuoteId(this.extend(request, params));
467
+ promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
468
+ }
469
+ const responses = await Promise.all(promises);
470
+ for (let i = 0; i < quotes.length; i++) {
471
+ const quote = quotes[i];
472
+ const response = responses[i];
429
473
  //
430
474
  // {
431
475
  // "status":"0000",
@@ -447,7 +491,7 @@ class bithumb extends bithumb$1 {
447
491
  // }
448
492
  // }
449
493
  //
450
- const data = this.safeValue(response, 'data', {});
494
+ const data = this.safeDict(response, 'data', {});
451
495
  const timestamp = this.safeInteger(data, 'date');
452
496
  const tickers = this.omit(data, 'date');
453
497
  const currencyIds = Object.keys(tickers);
@@ -832,7 +876,7 @@ class bithumb extends bithumb$1 {
832
876
  // }
833
877
  //
834
878
  const timestamp = this.safeIntegerProduct(order, 'order_date', 0.001);
835
- const sideProperty = this.safeValue2(order, 'type', 'side');
879
+ const sideProperty = this.safeString2(order, 'type', 'side');
836
880
  const side = (sideProperty === 'bid') ? 'buy' : 'sell';
837
881
  const status = this.parseOrderStatus(this.safeString(order, 'order_status'));
838
882
  const price = this.safeString2(order, 'order_price', 'price');
@@ -863,7 +907,7 @@ class bithumb extends bithumb$1 {
863
907
  symbol = market['symbol'];
864
908
  }
865
909
  const id = this.safeString(order, 'order_id');
866
- const rawTrades = this.safeValue(order, 'contract', []);
910
+ const rawTrades = this.safeList(order, 'contract', []);
867
911
  return this.safeOrder({
868
912
  'info': order,
869
913
  'id': id,
@@ -894,7 +894,7 @@ class okx extends okx$1 {
894
894
  this.handleDelta(bookside, deltas[i]);
895
895
  }
896
896
  }
897
- handleOrderBookMessage(client, message, orderbook, messageHash) {
897
+ handleOrderBookMessage(client, message, orderbook, messageHash, market = undefined) {
898
898
  //
899
899
  // {
900
900
  // "asks": [
@@ -909,6 +909,9 @@ class okx extends okx$1 {
909
909
  // ],
910
910
  // "instId": "BTC-USDT",
911
911
  // "ts": "1626537446491"
912
+ // "checksum": -855196043,
913
+ // "prevSeqId": 123456,
914
+ // "seqId": 123457
912
915
  // }
913
916
  //
914
917
  const asks = this.safeValue(message, 'asks', []);
@@ -918,9 +921,12 @@ class okx extends okx$1 {
918
921
  this.handleDeltas(storedAsks, asks);
919
922
  this.handleDeltas(storedBids, bids);
920
923
  const marketId = this.safeString(message, 'instId');
921
- const symbol = this.safeSymbol(marketId);
924
+ const symbol = this.safeSymbol(marketId, market);
922
925
  const checksum = this.handleOption('watchOrderBook', 'checksum', true);
926
+ const seqId = this.safeInteger(message, 'seqId');
923
927
  if (checksum) {
928
+ const prevSeqId = this.safeInteger(message, 'prevSeqId');
929
+ const nonce = orderbook['nonce'];
924
930
  const asksLength = storedAsks.length;
925
931
  const bidsLength = storedBids.length;
926
932
  const payloadArray = [];
@@ -937,14 +943,21 @@ class okx extends okx$1 {
937
943
  const payload = payloadArray.join(':');
938
944
  const responseChecksum = this.safeInteger(message, 'checksum');
939
945
  const localChecksum = this.crc32(payload, true);
946
+ let error = undefined;
947
+ if (prevSeqId !== -1 && nonce !== prevSeqId) {
948
+ error = new errors.InvalidNonce(this.id + ' watchOrderBook received invalid nonce');
949
+ }
940
950
  if (responseChecksum !== localChecksum) {
941
- const error = new errors.ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
951
+ error = new errors.ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
952
+ }
953
+ if (error !== undefined) {
942
954
  delete client.subscriptions[messageHash];
943
955
  delete this.orderbooks[symbol];
944
956
  client.reject(error, messageHash);
945
957
  }
946
958
  }
947
959
  const timestamp = this.safeInteger(message, 'ts');
960
+ orderbook['nonce'] = seqId;
948
961
  orderbook['timestamp'] = timestamp;
949
962
  orderbook['datetime'] = this.iso8601(timestamp);
950
963
  return orderbook;
@@ -1066,7 +1079,7 @@ class okx extends okx$1 {
1066
1079
  const orderbook = this.orderbooks[symbol];
1067
1080
  for (let i = 0; i < data.length; i++) {
1068
1081
  const update = data[i];
1069
- this.handleOrderBookMessage(client, update, orderbook, messageHash);
1082
+ this.handleOrderBookMessage(client, update, orderbook, messageHash, market);
1070
1083
  client.resolve(orderbook, messageHash);
1071
1084
  }
1072
1085
  }
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 { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, TransferEntries, LeverageTiers } from './src/base/types.js';
6
6
  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';
7
- declare const version = "4.3.65";
7
+ declare const version = "4.3.66";
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, 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.66';
41
+ const version = '4.3.67';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import ace from './src/ace.js';
@@ -84,13 +84,20 @@ interface Exchange {
84
84
  cswapV1PrivateGetTradeLeverage(params?: {}): Promise<implicitReturnType>;
85
85
  cswapV1PrivateGetTradeForceOrders(params?: {}): Promise<implicitReturnType>;
86
86
  cswapV1PrivateGetTradeAllFillOrders(params?: {}): Promise<implicitReturnType>;
87
+ cswapV1PrivateGetTradeOpenOrders(params?: {}): Promise<implicitReturnType>;
88
+ cswapV1PrivateGetTradeOrderDetail(params?: {}): Promise<implicitReturnType>;
89
+ cswapV1PrivateGetTradeOrderHistory(params?: {}): Promise<implicitReturnType>;
90
+ cswapV1PrivateGetTradeMarginType(params?: {}): Promise<implicitReturnType>;
87
91
  cswapV1PrivateGetUserCommissionRate(params?: {}): Promise<implicitReturnType>;
88
92
  cswapV1PrivateGetUserPositions(params?: {}): Promise<implicitReturnType>;
89
93
  cswapV1PrivateGetUserBalance(params?: {}): Promise<implicitReturnType>;
90
94
  cswapV1PrivatePostTradeOrder(params?: {}): Promise<implicitReturnType>;
91
95
  cswapV1PrivatePostTradeLeverage(params?: {}): Promise<implicitReturnType>;
92
96
  cswapV1PrivatePostTradeCloseAllPositions(params?: {}): Promise<implicitReturnType>;
97
+ cswapV1PrivatePostTradeMarginType(params?: {}): Promise<implicitReturnType>;
98
+ cswapV1PrivatePostTradePositionMargin(params?: {}): Promise<implicitReturnType>;
93
99
  cswapV1PrivateDeleteTradeAllOpenOrders(params?: {}): Promise<implicitReturnType>;
100
+ cswapV1PrivateDeleteTradeCancelOrder(params?: {}): Promise<implicitReturnType>;
94
101
  contractV1PrivateGetAllPosition(params?: {}): Promise<implicitReturnType>;
95
102
  contractV1PrivateGetAllOrders(params?: {}): Promise<implicitReturnType>;
96
103
  contractV1PrivateGetBalance(params?: {}): Promise<implicitReturnType>;
@@ -7,6 +7,7 @@ import type { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, B
7
7
  export type { Market, Trade, Fee, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, Transaction, DepositAddressResponse, Currency, MinMax, IndexType, Int, Bool, OrderType, OrderSide, Position, LedgerEntry, BorrowInterest, OpenInterest, LeverageTier, TransferEntry, CrossBorrowRate, FundingRateHistory, Liquidation, FundingHistory, OrderRequest, MarginMode, Tickers, Greeks, Option, OptionChain, Str, Num, MarketInterface, CurrencyInterface, BalanceAccount, MarginModes, MarketType, Leverage, Leverages, LastPrice, LastPrices, Account, Strings, Conversion } from './types.js';
8
8
  import { ArrayCache, ArrayCacheByTimestamp } from './ws/Cache.js';
9
9
  import { OrderBook as Ob } from './ws/OrderBook.js';
10
+ import Client from './ws/Client.js';
10
11
  /**
11
12
  * @class Exchange
12
13
  */
@@ -648,7 +649,7 @@ export default class Exchange {
648
649
  indexedOrderBook(snapshot?: {}, depth?: number): IndexedOrderBook;
649
650
  countedOrderBook(snapshot?: {}, depth?: number): CountedOrderBook;
650
651
  handleMessage(client: any, message: any): void;
651
- ping(client: any): any;
652
+ ping(client: Client): any;
652
653
  client(url: string): WsClient;
653
654
  watchMultiple(url: string, messageHashes: string[], message?: any, subscribeHashes?: any, subscription?: any): import("./ws/Future.js").FutureInterface;
654
655
  watch(url: string, messageHash: string, message?: any, subscribeHash?: any, subscription?: any): any;
@@ -658,7 +659,7 @@ export default class Exchange {
658
659
  close(): Promise<void>;
659
660
  loadOrderBook(client: any, messageHash: string, symbol: string, limit?: Int, params?: {}): Promise<void>;
660
661
  convertToBigInt(value: string): bigint;
661
- stringToCharsArray(value: any): any;
662
+ stringToCharsArray(value: string): string[];
662
663
  valueIsDefined(value: any): boolean;
663
664
  arraySlice(array: any, first: any, second?: any): any;
664
665
  getProperty(obj: any, property: any, defaultValue?: any): any;
@@ -668,9 +669,9 @@ export default class Exchange {
668
669
  ethAbiEncode(types: any, args: any): Uint8Array;
669
670
  ethEncodeStructuredData(domain: any, messageTypes: any, messageData: any): Uint8Array;
670
671
  intToBase16(elem: any): string;
671
- extendExchangeOptions(newOptions: any): void;
672
+ extendExchangeOptions(newOptions: Dict): void;
672
673
  createSafeDictionary(): {};
673
- randomBytes(length: any): string;
674
+ randomBytes(length: number): string;
674
675
  safeBoolN(dictionaryOrList: any, keys: IndexType[], defaultValue?: boolean): boolean | undefined;
675
676
  safeBool2(dictionary: any, key1: IndexType, key2: IndexType, defaultValue?: boolean): boolean | undefined;
676
677
  safeBool(dictionary: any, key: IndexType, defaultValue?: boolean): boolean | undefined;
@@ -722,7 +723,7 @@ export default class Exchange {
722
723
  parseTrade(trade: Dict, market?: Market): Trade;
723
724
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
724
725
  parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
725
- parseAccount(account: any): Account;
726
+ parseAccount(account: Dict): Account;
726
727
  parseLedgerEntry(item: Dict, currency?: Currency): object;
727
728
  parseOrder(order: Dict, market?: Market): Order;
728
729
  fetchCrossBorrowRates(params?: {}): Promise<CrossBorrowRates>;
@@ -796,11 +797,11 @@ export default class Exchange {
796
797
  info: Dictionary<any>;
797
798
  };
798
799
  safeCurrencyStructure(currency: object): CurrencyInterface;
799
- safeMarketStructure(market?: any): MarketInterface;
800
+ safeMarketStructure(market?: Dict): MarketInterface;
800
801
  setMarkets(markets: any, currencies?: any): Dictionary<any>;
801
802
  getDescribeForExtendedWsExchange(currentRestInstance: any, parentRestInstance: any, wsBaseDescribe: Dictionary<any>): any;
802
- safeBalance(balance: object): Balances;
803
- safeOrder(order: object, market?: Market): Order;
803
+ safeBalance(balance: Dict): Balances;
804
+ safeOrder(order: Dict, market?: Market): Order;
804
805
  parseOrders(orders: object, market?: Market, since?: Int, limit?: Int, params?: {}): Order[];
805
806
  calculateFee(symbol: string, type: string, side: string, amount: number, price: number, takerOrMaker?: string, params?: {}): {
806
807
  type: string;
@@ -808,12 +809,12 @@ export default class Exchange {
808
809
  rate: number;
809
810
  cost: number;
810
811
  };
811
- safeLiquidation(liquidation: object, market?: Market): Liquidation;
812
- safeTrade(trade: object, market?: Market): Trade;
812
+ safeLiquidation(liquidation: Dict, market?: Market): Liquidation;
813
+ safeTrade(trade: Dict, market?: Market): Trade;
813
814
  findNearestCeiling(arr: number[], providedValue: number): number;
814
815
  invertFlatStringDictionary(dict: any): {};
815
816
  reduceFeesByCurrency(fees: any): any[];
816
- safeTicker(ticker: object, market?: Market): Ticker;
817
+ safeTicker(ticker: Dict, market?: Market): Ticker;
817
818
  fetchBorrowRate(code: string, amount: any, params?: {}): Promise<{}>;
818
819
  repayCrossMargin(code: string, amount: any, params?: {}): Promise<{}>;
819
820
  repayIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<{}>;
@@ -847,7 +848,7 @@ export default class Exchange {
847
848
  parseOHLCVs(ohlcvs: object[], market?: any, timeframe?: string, since?: Int, limit?: Int): OHLCV[];
848
849
  parseLeverageTiers(response: any, symbols?: string[], marketIdKey?: any): LeverageTiers;
849
850
  loadTradingLimits(symbols?: Strings, reload?: boolean, params?: {}): Promise<Dictionary<any>>;
850
- safePosition(position: any): Position;
851
+ safePosition(position: Dict): Position;
851
852
  parsePositions(positions: any[], symbols?: string[], params?: {}): Position[];
852
853
  parseAccounts(accounts: any[], params?: {}): Account[];
853
854
  parseTrades(trades: any[], market?: Market, since?: Int, limit?: Int, params?: {}): Trade[];
@@ -1092,7 +1093,7 @@ export default class Exchange {
1092
1093
  sortCursorPaginatedResult(result: any): any;
1093
1094
  removeRepeatedElementsFromArray(input: any): any;
1094
1095
  handleUntilOption(key: string, request: any, params: any, multiplier?: number): any[];
1095
- safeOpenInterest(interest: any, market?: Market): OpenInterest;
1096
+ safeOpenInterest(interest: Dict, market?: Market): OpenInterest;
1096
1097
  parseLiquidation(liquidation: any, market?: Market): Liquidation;
1097
1098
  parseLiquidations(liquidations: Dict[], market?: Market, since?: Int, limit?: Int): Liquidation[];
1098
1099
  parseGreeks(greeks: Dict, market?: Market): Greeks;
@@ -1165,7 +1165,7 @@ export default class Exchange {
1165
1165
  return new CountedOrderBook(snapshot, depth);
1166
1166
  }
1167
1167
  handleMessage(client, message) { } // stub to override
1168
- // ping (client) {} // stub to override
1168
+ // ping (client: Client) {} // stub to override
1169
1169
  ping(client) {
1170
1170
  return undefined;
1171
1171
  }