ccxt 4.0.106 → 4.0.107
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.js +775 -218
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/binance.js +99 -3
- package/dist/cjs/src/bitmart.js +298 -171
- package/dist/cjs/src/exmo.js +334 -43
- package/dist/cjs/src/pro/bitget.js +44 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/binance.d.ts +1 -0
- package/js/src/binance.js +99 -3
- package/js/src/bitmart.d.ts +1 -0
- package/js/src/bitmart.js +298 -171
- package/js/src/exmo.d.ts +5 -2
- package/js/src/exmo.js +334 -43
- package/js/src/pro/bitget.d.ts +1 -0
- package/js/src/pro/bitget.js +44 -1
- package/package.json +1 -1
package/js/src/binance.js
CHANGED
|
@@ -37,7 +37,7 @@ export default class binance extends Exchange {
|
|
|
37
37
|
'borrowMargin': true,
|
|
38
38
|
'cancelAllOrders': true,
|
|
39
39
|
'cancelOrder': true,
|
|
40
|
-
'cancelOrders':
|
|
40
|
+
'cancelOrders': true,
|
|
41
41
|
'createDepositAddress': false,
|
|
42
42
|
'createOrder': true,
|
|
43
43
|
'createPostOnlyOrder': true,
|
|
@@ -4999,6 +4999,75 @@ export default class binance extends Exchange {
|
|
|
4999
4999
|
return response;
|
|
5000
5000
|
}
|
|
5001
5001
|
}
|
|
5002
|
+
async cancelOrders(ids, symbol = undefined, params = {}) {
|
|
5003
|
+
/**
|
|
5004
|
+
* @method
|
|
5005
|
+
* @name binance#cancelOrders
|
|
5006
|
+
* @description cancel multiple orders
|
|
5007
|
+
* @see https://binance-docs.github.io/apidocs/futures/en/#cancel-multiple-orders-trade
|
|
5008
|
+
* @param {[string]} ids order ids
|
|
5009
|
+
* @param {string} [symbol] unified market symbol
|
|
5010
|
+
* @param {object} [params] extra parameters specific to the bingx api endpoint
|
|
5011
|
+
*
|
|
5012
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
|
5013
|
+
* @param {[string]} [params.origClientOrderIdList] max length 10 e.g. ["my_id_1","my_id_2"], encode the double quotes. No space after comma
|
|
5014
|
+
* @param {[int]} [params.recvWindow]
|
|
5015
|
+
* @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
5016
|
+
*/
|
|
5017
|
+
this.checkRequiredSymbol('cancelOrders', symbol);
|
|
5018
|
+
await this.loadMarkets();
|
|
5019
|
+
const market = this.market(symbol);
|
|
5020
|
+
if (!market['contract']) {
|
|
5021
|
+
throw new BadRequest(this.id + ' cancelOrders is only supported for swap markets.');
|
|
5022
|
+
}
|
|
5023
|
+
const request = {
|
|
5024
|
+
'symbol': market['id'],
|
|
5025
|
+
'orderidlist': ids,
|
|
5026
|
+
};
|
|
5027
|
+
let response = undefined;
|
|
5028
|
+
if (market['linear']) {
|
|
5029
|
+
response = await this.fapiPrivateDeleteBatchOrders(this.extend(request, params));
|
|
5030
|
+
}
|
|
5031
|
+
else if (market['inverse']) {
|
|
5032
|
+
response = await this.dapiPrivateDeleteBatchOrders(this.extend(request, params));
|
|
5033
|
+
}
|
|
5034
|
+
//
|
|
5035
|
+
// [
|
|
5036
|
+
// {
|
|
5037
|
+
// "clientOrderId": "myOrder1",
|
|
5038
|
+
// "cumQty": "0",
|
|
5039
|
+
// "cumQuote": "0",
|
|
5040
|
+
// "executedQty": "0",
|
|
5041
|
+
// "orderId": 283194212,
|
|
5042
|
+
// "origQty": "11",
|
|
5043
|
+
// "origType": "TRAILING_STOP_MARKET",
|
|
5044
|
+
// "price": "0",
|
|
5045
|
+
// "reduceOnly": false,
|
|
5046
|
+
// "side": "BUY",
|
|
5047
|
+
// "positionSide": "SHORT",
|
|
5048
|
+
// "status": "CANCELED",
|
|
5049
|
+
// "stopPrice": "9300", // please ignore when order type is TRAILING_STOP_MARKET
|
|
5050
|
+
// "closePosition": false, // if Close-All
|
|
5051
|
+
// "symbol": "BTCUSDT",
|
|
5052
|
+
// "timeInForce": "GTC",
|
|
5053
|
+
// "type": "TRAILING_STOP_MARKET",
|
|
5054
|
+
// "activatePrice": "9020", // activation price, only return with TRAILING_STOP_MARKET order
|
|
5055
|
+
// "priceRate": "0.3", // callback rate, only return with TRAILING_STOP_MARKET order
|
|
5056
|
+
// "updateTime": 1571110484038,
|
|
5057
|
+
// "workingType": "CONTRACT_PRICE",
|
|
5058
|
+
// "priceProtect": false, // if conditional order trigger is protected
|
|
5059
|
+
// "priceMatch": "NONE", // price match mode
|
|
5060
|
+
// "selfTradePreventionMode": "NONE", // self trading preventation mode
|
|
5061
|
+
// "goodTillDate": 0 // order pre-set auot cancel time for TIF GTD order
|
|
5062
|
+
// },
|
|
5063
|
+
// {
|
|
5064
|
+
// "code": -2011,
|
|
5065
|
+
// "msg": "Unknown order sent."
|
|
5066
|
+
// }
|
|
5067
|
+
// ]
|
|
5068
|
+
//
|
|
5069
|
+
return this.parseOrders(response, market);
|
|
5070
|
+
}
|
|
5002
5071
|
async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5003
5072
|
/**
|
|
5004
5073
|
* @method
|
|
@@ -8172,7 +8241,7 @@ export default class binance extends Exchange {
|
|
|
8172
8241
|
}
|
|
8173
8242
|
let query = undefined;
|
|
8174
8243
|
const defaultRecvWindow = this.safeInteger(this.options, 'recvWindow');
|
|
8175
|
-
|
|
8244
|
+
let extendedParams = this.extend({
|
|
8176
8245
|
'timestamp': this.nonce(),
|
|
8177
8246
|
}, params);
|
|
8178
8247
|
if (defaultRecvWindow !== undefined) {
|
|
@@ -8186,7 +8255,23 @@ export default class binance extends Exchange {
|
|
|
8186
8255
|
query = this.urlencodeWithArrayRepeat(extendedParams);
|
|
8187
8256
|
}
|
|
8188
8257
|
else if ((path === 'batchOrders') || (path.indexOf('sub-account') >= 0) || (path === 'capital/withdraw/apply') || (path.indexOf('staking') >= 0)) {
|
|
8189
|
-
|
|
8258
|
+
if ((method === 'DELETE') && (path === 'batchOrders')) {
|
|
8259
|
+
const orderidlist = this.safeValue(extendedParams, 'orderidlist', []);
|
|
8260
|
+
const origclientorderidlist = this.safeValue(extendedParams, 'origclientorderidlist', []);
|
|
8261
|
+
extendedParams = this.omit(extendedParams, ['orderidlist', 'origclientorderidlist']);
|
|
8262
|
+
query = this.rawencode(extendedParams);
|
|
8263
|
+
const orderidlistLength = orderidlist.length;
|
|
8264
|
+
const origclientorderidlistLength = orderidlist.length;
|
|
8265
|
+
if (orderidlistLength > 0) {
|
|
8266
|
+
query = query + '&orderidlist=[' + orderidlist.join(',') + ']';
|
|
8267
|
+
}
|
|
8268
|
+
if (origclientorderidlistLength > 0) {
|
|
8269
|
+
query = query + '&origclientorderidlist=[' + origclientorderidlist.join(',') + ']';
|
|
8270
|
+
}
|
|
8271
|
+
}
|
|
8272
|
+
else {
|
|
8273
|
+
query = this.rawencode(extendedParams);
|
|
8274
|
+
}
|
|
8190
8275
|
}
|
|
8191
8276
|
else {
|
|
8192
8277
|
query = this.urlencode(extendedParams);
|
|
@@ -8291,6 +8376,17 @@ export default class binance extends Exchange {
|
|
|
8291
8376
|
if (!success) {
|
|
8292
8377
|
throw new ExchangeError(this.id + ' ' + body);
|
|
8293
8378
|
}
|
|
8379
|
+
if (Array.isArray(response)) {
|
|
8380
|
+
// cancelOrders returns an array like this: [{"code":-2011,"msg":"Unknown order sent."}]
|
|
8381
|
+
const numElements = response.length;
|
|
8382
|
+
if (numElements > 0) {
|
|
8383
|
+
const firstElement = response[0];
|
|
8384
|
+
const error = this.safeString(firstElement, 'code');
|
|
8385
|
+
if (error !== undefined) {
|
|
8386
|
+
this.throwExactlyMatchedException(this.exceptions['exact'], error, this.id + ' ' + body);
|
|
8387
|
+
}
|
|
8388
|
+
}
|
|
8389
|
+
}
|
|
8294
8390
|
return undefined;
|
|
8295
8391
|
}
|
|
8296
8392
|
calculateRateLimiterCost(api, method, path, params, config = {}) {
|
package/js/src/bitmart.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ export default class bitmart extends Exchange {
|
|
|
73
73
|
taker: number;
|
|
74
74
|
}>;
|
|
75
75
|
parseOrder(order: any, market?: any): import("./base/types.js").Order;
|
|
76
|
+
parseOrderSide(side: any): string;
|
|
76
77
|
parseOrderStatusByType(type: any, status: any): string;
|
|
77
78
|
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<any>;
|
|
78
79
|
cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
|