ccxt 4.3.41 → 4.3.42

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/js/src/coinex.js CHANGED
@@ -5789,7 +5789,7 @@ export default class coinex extends Exchange {
5789
5789
  preparedString += nonce + this.secret;
5790
5790
  const signature = this.hash(this.encode(preparedString), sha256);
5791
5791
  headers = {
5792
- 'Content-Type': 'application/json; charset=utf-8',
5792
+ 'Content-Type': 'application/json',
5793
5793
  'Accept': 'application/json',
5794
5794
  'X-COINEX-KEY': this.apiKey,
5795
5795
  'X-COINEX-SIGN': signature,
@@ -70,9 +70,9 @@ export default class kraken extends Exchange {
70
70
  fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
71
71
  fetchOrdersByIds(ids: any, symbol?: Str, params?: {}): Promise<any[]>;
72
72
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
73
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
74
- cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any>;
75
- cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
73
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
74
+ cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<Order[]>;
75
+ cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
76
76
  cancelAllOrdersAfter(timeout: Int, params?: {}): Promise<any>;
77
77
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
78
78
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
package/js/src/kraken.js CHANGED
@@ -2140,6 +2140,14 @@ export default class kraken extends Exchange {
2140
2140
  params = this.omit(params, ['userref', 'clientOrderId']);
2141
2141
  try {
2142
2142
  response = await this.privatePostCancelOrder(this.extend(request, params));
2143
+ //
2144
+ // {
2145
+ // error: [],
2146
+ // result: {
2147
+ // count: '1'
2148
+ // }
2149
+ // }
2150
+ //
2143
2151
  }
2144
2152
  catch (e) {
2145
2153
  if (this.last_http_response) {
@@ -2149,7 +2157,9 @@ export default class kraken extends Exchange {
2149
2157
  }
2150
2158
  throw e;
2151
2159
  }
2152
- return response;
2160
+ return this.safeOrder({
2161
+ 'info': response,
2162
+ });
2153
2163
  }
2154
2164
  async cancelOrders(ids, symbol = undefined, params = {}) {
2155
2165
  /**
@@ -2174,7 +2184,11 @@ export default class kraken extends Exchange {
2174
2184
  // }
2175
2185
  // }
2176
2186
  //
2177
- return response;
2187
+ return [
2188
+ this.safeOrder({
2189
+ 'info': response,
2190
+ }),
2191
+ ];
2178
2192
  }
2179
2193
  async cancelAllOrders(symbol = undefined, params = {}) {
2180
2194
  /**
@@ -2187,7 +2201,20 @@ export default class kraken extends Exchange {
2187
2201
  * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2188
2202
  */
2189
2203
  await this.loadMarkets();
2190
- return await this.privatePostCancelAll(params);
2204
+ const response = await this.privatePostCancelAll(params);
2205
+ //
2206
+ // {
2207
+ // error: [],
2208
+ // result: {
2209
+ // count: '1'
2210
+ // }
2211
+ // }
2212
+ //
2213
+ return [
2214
+ this.safeOrder({
2215
+ 'info': response,
2216
+ }),
2217
+ ];
2191
2218
  }
2192
2219
  async cancelAllOrdersAfter(timeout, params = {}) {
2193
2220
  /**
@@ -20,7 +20,7 @@ export default class krakenfutures extends Exchange {
20
20
  editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
21
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
22
22
  cancelOrders(ids: string[], symbol?: Str, params?: {}): Promise<Order[]>;
23
- cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
23
+ cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
24
24
  cancelAllOrdersAfter(timeout: Int, params?: {}): Promise<any>;
25
25
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
26
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -1272,7 +1272,46 @@ export default class krakenfutures extends Exchange {
1272
1272
  request['symbol'] = this.marketId(symbol);
1273
1273
  }
1274
1274
  const response = await this.privatePostCancelallorders(this.extend(request, params));
1275
- return response;
1275
+ //
1276
+ // {
1277
+ // result: 'success',
1278
+ // cancelStatus: {
1279
+ // receivedTime: '2024-06-06T01:12:44.814Z',
1280
+ // cancelOnly: 'PF_XRPUSD',
1281
+ // status: 'cancelled',
1282
+ // cancelledOrders: [ { order_id: '272fd0ac-45c0-4003-b84d-d39b9e86bd36' } ],
1283
+ // orderEvents: [
1284
+ // {
1285
+ // uid: '272fd0ac-45c0-4003-b84d-d39b9e86bd36',
1286
+ // order: {
1287
+ // orderId: '272fd0ac-45c0-4003-b84d-d39b9e86bd36',
1288
+ // cliOrdId: null,
1289
+ // type: 'lmt',
1290
+ // symbol: 'PF_XRPUSD',
1291
+ // side: 'buy',
1292
+ // quantity: '10',
1293
+ // filled: '0',
1294
+ // limitPrice: '0.4',
1295
+ // reduceOnly: false,
1296
+ // timestamp: '2024-06-06T01:11:16.045Z',
1297
+ // lastUpdateTimestamp: '2024-06-06T01:11:16.045Z'
1298
+ // },
1299
+ // type: 'CANCEL'
1300
+ // }
1301
+ // ]
1302
+ // },
1303
+ // serverTime: '2024-06-06T01:12:44.814Z'
1304
+ // }
1305
+ //
1306
+ const cancelStatus = this.safeDict(response, 'cancelStatus');
1307
+ const orderEvents = this.safeList(cancelStatus, 'orderEvents', []);
1308
+ const orders = [];
1309
+ for (let i = 0; i < orderEvents.length; i++) {
1310
+ const orderEvent = this.safeDict(orderEvents, 0);
1311
+ const order = this.safeDict(orderEvent, 'order', {});
1312
+ orders.push(order);
1313
+ }
1314
+ return this.parseOrders(orders);
1276
1315
  }
1277
1316
  async cancelAllOrdersAfter(timeout, params = {}) {
1278
1317
  /**
@@ -1640,6 +1679,22 @@ export default class krakenfutures extends Exchange {
1640
1679
  // ]
1641
1680
  // }
1642
1681
  //
1682
+ // cancelAllOrders
1683
+ //
1684
+ // {
1685
+ // "orderId": "85c40002-3f20-4e87-9302-262626c3531b",
1686
+ // "cliOrdId": null,
1687
+ // "type": "lmt",
1688
+ // "symbol": "pi_xbtusd",
1689
+ // "side": "buy",
1690
+ // "quantity": 1000,
1691
+ // "filled": 0,
1692
+ // "limitPrice": 10144,
1693
+ // "stopPrice": null,
1694
+ // "reduceOnly": false,
1695
+ // "timestamp": "2019-08-01T15:26:27.790Z"
1696
+ // }
1697
+ //
1643
1698
  // FETCH OPEN ORDERS
1644
1699
  //
1645
1700
  // {
@@ -63,7 +63,7 @@ export default class kucoin extends Exchange {
63
63
  marketOrderAmountToPrecision(symbol: string, amount: any): string;
64
64
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
65
65
  editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
66
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
66
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
67
67
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
68
68
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
69
69
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
package/js/src/kucoin.js CHANGED
@@ -2333,27 +2333,84 @@ export default class kucoin extends Exchange {
2333
2333
  request['clientOid'] = clientOrderId;
2334
2334
  if (stop) {
2335
2335
  response = await this.privateDeleteStopOrderCancelOrderByClientOid(this.extend(request, params));
2336
+ //
2337
+ // {
2338
+ // code: '200000',
2339
+ // data: {
2340
+ // cancelledOrderId: 'vs8lgpiuao41iaft003khbbk',
2341
+ // clientOid: '123456'
2342
+ // }
2343
+ // }
2344
+ //
2336
2345
  }
2337
2346
  else if (hf) {
2338
2347
  response = await this.privateDeleteHfOrdersClientOrderClientOid(this.extend(request, params));
2348
+ //
2349
+ // {
2350
+ // "code": "200000",
2351
+ // "data": {
2352
+ // "clientOid": "6d539dc614db3"
2353
+ // }
2354
+ // }
2355
+ //
2339
2356
  }
2340
2357
  else {
2341
2358
  response = await this.privateDeleteOrderClientOrderClientOid(this.extend(request, params));
2359
+ //
2360
+ // {
2361
+ // code: '200000',
2362
+ // data: {
2363
+ // cancelledOrderId: '665e580f6660500007aba341',
2364
+ // clientOid: '1234567',
2365
+ // cancelledOcoOrderIds: null
2366
+ // }
2367
+ // }
2368
+ //
2342
2369
  }
2370
+ response = this.safeDict(response, 'data');
2371
+ return this.parseOrder(response);
2343
2372
  }
2344
2373
  else {
2345
2374
  request['orderId'] = id;
2346
2375
  if (stop) {
2347
2376
  response = await this.privateDeleteStopOrderOrderId(this.extend(request, params));
2377
+ //
2378
+ // {
2379
+ // code: '200000',
2380
+ // data: { cancelledOrderIds: [ 'vs8lgpiuaco91qk8003vebu9' ] }
2381
+ // }
2382
+ //
2348
2383
  }
2349
2384
  else if (hf) {
2350
2385
  response = await this.privateDeleteHfOrdersOrderId(this.extend(request, params));
2386
+ //
2387
+ // {
2388
+ // "code": "200000",
2389
+ // "data": {
2390
+ // "orderId": "630625dbd9180300014c8d52"
2391
+ // }
2392
+ // }
2393
+ //
2394
+ response = this.safeDict(response, 'data');
2395
+ return this.parseOrder(response);
2351
2396
  }
2352
2397
  else {
2353
2398
  response = await this.privateDeleteOrdersOrderId(this.extend(request, params));
2399
+ //
2400
+ // {
2401
+ // code: '200000',
2402
+ // data: { cancelledOrderIds: [ '665e4fbe28051a0007245c41' ] }
2403
+ // }
2404
+ //
2354
2405
  }
2406
+ const data = this.safeDict(response, 'data');
2407
+ const orderIds = this.safeList(data, 'cancelledOrderIds', []);
2408
+ const orderId = this.safeString(orderIds, 0);
2409
+ return this.safeOrder({
2410
+ 'info': data,
2411
+ 'id': orderId,
2412
+ });
2355
2413
  }
2356
- return response;
2357
2414
  }
2358
2415
  async cancelAllOrders(symbol = undefined, params = {}) {
2359
2416
  /**
@@ -2821,7 +2878,7 @@ export default class kucoin extends Exchange {
2821
2878
  const stopPrice = this.safeNumber(order, 'stopPrice');
2822
2879
  return this.safeOrder({
2823
2880
  'info': order,
2824
- 'id': this.safeStringN(order, ['id', 'orderId', 'newOrderId']),
2881
+ 'id': this.safeStringN(order, ['id', 'orderId', 'newOrderId', 'cancelledOrderId']),
2825
2882
  'clientOrderId': this.safeString(order, 'clientOid'),
2826
2883
  'symbol': this.safeSymbol(marketId, market, '-'),
2827
2884
  'type': this.safeString(order, 'type'),
@@ -1021,6 +1021,7 @@ export default class bitget extends bitgetRest {
1021
1021
  [marginMode, params] = this.handleMarginModeAndParams('watchOrders', params);
1022
1022
  if (marginMode !== undefined) {
1023
1023
  instType = 'MARGIN';
1024
+ messageHash = messageHash + ':' + marginMode;
1024
1025
  if (marginMode === 'isolated') {
1025
1026
  channel = 'orders-isolated';
1026
1027
  }
@@ -1114,7 +1115,13 @@ export default class bitget extends bitgetRest {
1114
1115
  const keys = Object.keys(marketSymbols);
1115
1116
  for (let i = 0; i < keys.length; i++) {
1116
1117
  const symbol = keys[i];
1117
- const innerMessageHash = messageHash + ':' + symbol;
1118
+ let innerMessageHash = messageHash + ':' + symbol;
1119
+ if (channel === 'orders-crossed') {
1120
+ innerMessageHash = innerMessageHash + ':cross';
1121
+ }
1122
+ else if (channel === 'orders-isolated') {
1123
+ innerMessageHash = innerMessageHash + ':isolated';
1124
+ }
1118
1125
  client.resolve(stored, innerMessageHash);
1119
1126
  }
1120
1127
  client.resolve(stored, messageHash);
@@ -37,7 +37,7 @@ export default class mexc extends mexcRest {
37
37
  'api': {
38
38
  'ws': {
39
39
  'spot': 'wss://wbs.mexc.com/ws',
40
- 'swap': 'wss://contract.mexc.com/ws',
40
+ 'swap': 'wss://contract.mexc.com/edge',
41
41
  },
42
42
  },
43
43
  },
@@ -232,17 +232,21 @@ export default class upbit extends upbitRest {
232
232
  }
233
233
  async authenticate(params = {}) {
234
234
  this.checkRequiredCredentials();
235
- const authenticated = this.options['ws']['token'];
235
+ const wsOptions = this.safeDict(this.options, 'ws', {});
236
+ const authenticated = this.safeString(wsOptions, 'token');
236
237
  if (authenticated === undefined) {
237
238
  const auth = {
238
239
  'access_key': this.apiKey,
239
240
  'nonce': this.uuid(),
240
241
  };
241
242
  const token = jwt(auth, this.encode(this.secret), sha256, false);
242
- this.options['ws']['token'] = token;
243
- this.options['ws']['options']['headers'] = {
244
- 'authorization': 'Bearer ' + token,
243
+ wsOptions['token'] = token;
244
+ wsOptions['options'] = {
245
+ 'headers': {
246
+ 'authorization': 'Bearer ' + token,
247
+ },
245
248
  };
249
+ this.options['ws'] = wsOptions;
246
250
  }
247
251
  const url = this.urls['api']['ws'] + '/private';
248
252
  const client = this.client(url);
package/js/src/pro/woo.js CHANGED
@@ -598,7 +598,7 @@ export default class woo extends wooRest {
598
598
  async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
599
599
  /**
600
600
  * @method
601
- * @name woo#watchOrders
601
+ * @name woo#watchMyTrades
602
602
  * @see https://docs.woo.org/#executionreport
603
603
  * @see https://docs.woo.org/#algoexecutionreportv2
604
604
  * @description watches information on multiple trades made by the user
@@ -607,7 +607,7 @@ export default class woo extends wooRest {
607
607
  * @param {int} [limit] the maximum number of order structures to retrieve
608
608
  * @param {object} [params] extra parameters specific to the exchange API endpoint
609
609
  * @param {bool} [params.trigger] true if trigger order
610
- * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
610
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
611
611
  */
612
612
  await this.loadMarkets();
613
613
  const trigger = this.safeBool2(params, 'stop', 'trigger', false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.3.41",
3
+ "version": "4.3.42",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.min.js",
6
6
  "type": "module",