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/README.md +3 -3
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/bitmart.js +196 -100
- package/dist/cjs/src/blockchaincom.js +11 -7
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/kraken.js +30 -3
- package/dist/cjs/src/krakenfutures.js +56 -1
- package/dist/cjs/src/kucoin.js +59 -2
- package/dist/cjs/src/pro/bitget.js +8 -1
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/pro/upbit.js +8 -4
- package/dist/cjs/src/pro/woo.js +2 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/bitmart.js +196 -100
- package/js/src/blockchaincom.d.ts +2 -8
- package/js/src/blockchaincom.js +11 -7
- package/js/src/coinex.js +1 -1
- package/js/src/kraken.d.ts +3 -3
- package/js/src/kraken.js +30 -3
- package/js/src/krakenfutures.d.ts +1 -1
- package/js/src/krakenfutures.js +56 -1
- package/js/src/kucoin.d.ts +1 -1
- package/js/src/kucoin.js +59 -2
- package/js/src/pro/bitget.js +8 -1
- package/js/src/pro/mexc.js +1 -1
- package/js/src/pro/upbit.js +8 -4
- package/js/src/pro/woo.js +2 -2
- package/package.json +1 -1
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
|
|
5792
|
+
'Content-Type': 'application/json',
|
|
5793
5793
|
'Accept': 'application/json',
|
|
5794
5794
|
'X-COINEX-KEY': this.apiKey,
|
|
5795
5795
|
'X-COINEX-SIGN': signature,
|
package/js/src/kraken.d.ts
CHANGED
|
@@ -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<
|
|
74
|
-
cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<
|
|
75
|
-
cancelAllOrders(symbol?: Str, params?: {}): Promise<
|
|
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
|
|
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
|
|
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
|
-
|
|
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<
|
|
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[]>;
|
package/js/src/krakenfutures.js
CHANGED
|
@@ -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
|
-
|
|
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
|
// {
|
package/js/src/kucoin.d.ts
CHANGED
|
@@ -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<
|
|
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'),
|
package/js/src/pro/bitget.js
CHANGED
|
@@ -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
|
-
|
|
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);
|
package/js/src/pro/mexc.js
CHANGED
package/js/src/pro/upbit.js
CHANGED
|
@@ -232,17 +232,21 @@ export default class upbit extends upbitRest {
|
|
|
232
232
|
}
|
|
233
233
|
async authenticate(params = {}) {
|
|
234
234
|
this.checkRequiredCredentials();
|
|
235
|
-
const
|
|
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
|
-
|
|
243
|
-
|
|
244
|
-
'
|
|
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#
|
|
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 [
|
|
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