ccxt 4.1.100 → 4.2.2
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 +1384 -1215
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/binance.js +1 -0
- package/dist/cjs/src/bingx.js +76 -37
- package/dist/cjs/src/bitget.js +11 -6
- package/dist/cjs/src/bitstamp.js +37 -13
- package/dist/cjs/src/cex.js +6 -5
- package/dist/cjs/src/deribit.js +38 -26
- package/dist/cjs/src/kucoinfutures.js +9 -4
- package/dist/cjs/src/lykke.js +14 -3
- package/dist/cjs/src/poloniexfutures.js +22 -11
- package/dist/cjs/src/pro/binance.js +24 -21
- package/dist/cjs/src/pro/bitmart.js +85 -50
- package/dist/cjs/src/pro/bybit.js +7 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bingx.d.ts +2 -0
- package/js/src/binance.js +1 -0
- package/js/src/bingx.js +76 -37
- package/js/src/bitget.js +11 -6
- package/js/src/bitstamp.js +37 -13
- package/js/src/cex.js +6 -5
- package/js/src/deribit.js +38 -26
- package/js/src/kucoinfutures.js +9 -4
- package/js/src/lykke.js +14 -3
- package/js/src/poloniexfutures.js +22 -11
- package/js/src/pro/binance.js +24 -21
- package/js/src/pro/bitmart.js +85 -50
- package/js/src/pro/bybit.js +7 -2
- package/package.json +1 -1
- package/skip-tests.json +2 -1
package/js/src/bitstamp.js
CHANGED
|
@@ -1335,6 +1335,12 @@ export default class bitstamp extends Exchange {
|
|
|
1335
1335
|
* @method
|
|
1336
1336
|
* @name bitstamp#createOrder
|
|
1337
1337
|
* @description create a trade order
|
|
1338
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantBuyOrder
|
|
1339
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketBuyOrder
|
|
1340
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitBuyOrder
|
|
1341
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantSellOrder
|
|
1342
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketSellOrder
|
|
1343
|
+
* @see https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitSellOrder
|
|
1338
1344
|
* @param {string} symbol unified symbol of the market to create an order in
|
|
1339
1345
|
* @param {string} type 'market' or 'limit'
|
|
1340
1346
|
* @param {string} side 'buy' or 'sell'
|
|
@@ -1345,27 +1351,42 @@ export default class bitstamp extends Exchange {
|
|
|
1345
1351
|
*/
|
|
1346
1352
|
await this.loadMarkets();
|
|
1347
1353
|
const market = this.market(symbol);
|
|
1348
|
-
let method = 'privatePost' + this.capitalize(side);
|
|
1349
1354
|
const request = {
|
|
1350
1355
|
'pair': market['id'],
|
|
1351
1356
|
'amount': this.amountToPrecision(symbol, amount),
|
|
1352
1357
|
};
|
|
1358
|
+
const clientOrderId = this.safeString2(params, 'client_order_id', 'clientOrderId');
|
|
1359
|
+
if (clientOrderId !== undefined) {
|
|
1360
|
+
request['client_order_id'] = clientOrderId;
|
|
1361
|
+
params = this.omit(params, ['clientOrderId']);
|
|
1362
|
+
}
|
|
1363
|
+
let response = undefined;
|
|
1364
|
+
const capitalizedSide = this.capitalize(side);
|
|
1353
1365
|
if (type === 'market') {
|
|
1354
|
-
|
|
1366
|
+
if (capitalizedSide === 'Buy') {
|
|
1367
|
+
response = await this.privatePostBuyMarketPair(this.extend(request, params));
|
|
1368
|
+
}
|
|
1369
|
+
else {
|
|
1370
|
+
response = await this.privatePostSellMarketPair(this.extend(request, params));
|
|
1371
|
+
}
|
|
1355
1372
|
}
|
|
1356
1373
|
else if (type === 'instant') {
|
|
1357
|
-
|
|
1374
|
+
if (capitalizedSide === 'Buy') {
|
|
1375
|
+
response = await this.privatePostBuyInstantPair(this.extend(request, params));
|
|
1376
|
+
}
|
|
1377
|
+
else {
|
|
1378
|
+
response = await this.privatePostSellInstantPair(this.extend(request, params));
|
|
1379
|
+
}
|
|
1358
1380
|
}
|
|
1359
1381
|
else {
|
|
1360
1382
|
request['price'] = this.priceToPrecision(symbol, price);
|
|
1383
|
+
if (capitalizedSide === 'Buy') {
|
|
1384
|
+
response = await this.privatePostBuyPair(this.extend(request, params));
|
|
1385
|
+
}
|
|
1386
|
+
else {
|
|
1387
|
+
response = await this.privatePostSellPair(this.extend(request, params));
|
|
1388
|
+
}
|
|
1361
1389
|
}
|
|
1362
|
-
method += 'Pair';
|
|
1363
|
-
const clientOrderId = this.safeString2(params, 'client_order_id', 'clientOrderId');
|
|
1364
|
-
if (clientOrderId !== undefined) {
|
|
1365
|
-
request['client_order_id'] = clientOrderId;
|
|
1366
|
-
params = this.omit(params, ['client_order_id', 'clientOrderId']);
|
|
1367
|
-
}
|
|
1368
|
-
const response = await this[method](this.extend(request, params));
|
|
1369
1390
|
const order = this.parseOrder(response, market);
|
|
1370
1391
|
order['type'] = type;
|
|
1371
1392
|
return order;
|
|
@@ -1398,13 +1419,16 @@ export default class bitstamp extends Exchange {
|
|
|
1398
1419
|
await this.loadMarkets();
|
|
1399
1420
|
let market = undefined;
|
|
1400
1421
|
const request = {};
|
|
1401
|
-
let
|
|
1422
|
+
let response = undefined;
|
|
1402
1423
|
if (symbol !== undefined) {
|
|
1403
1424
|
market = this.market(symbol);
|
|
1404
1425
|
request['pair'] = market['id'];
|
|
1405
|
-
|
|
1426
|
+
response = await this.privatePostCancelAllOrdersPair(this.extend(request, params));
|
|
1427
|
+
}
|
|
1428
|
+
else {
|
|
1429
|
+
response = await this.privatePostCancelAllOrders(this.extend(request, params));
|
|
1406
1430
|
}
|
|
1407
|
-
return
|
|
1431
|
+
return response;
|
|
1408
1432
|
}
|
|
1409
1433
|
parseOrderStatus(status) {
|
|
1410
1434
|
const statuses = {
|
package/js/src/cex.js
CHANGED
|
@@ -1171,14 +1171,16 @@ export default class cex extends Exchange {
|
|
|
1171
1171
|
*/
|
|
1172
1172
|
await this.loadMarkets();
|
|
1173
1173
|
const request = {};
|
|
1174
|
-
let method = 'privatePostOpenOrders';
|
|
1175
1174
|
let market = undefined;
|
|
1175
|
+
let orders = undefined;
|
|
1176
1176
|
if (symbol !== undefined) {
|
|
1177
1177
|
market = this.market(symbol);
|
|
1178
1178
|
request['pair'] = market['id'];
|
|
1179
|
-
|
|
1179
|
+
orders = await this.privatePostOpenOrdersPair(this.extend(request, params));
|
|
1180
|
+
}
|
|
1181
|
+
else {
|
|
1182
|
+
orders = await this.privatePostOpenOrders(this.extend(request, params));
|
|
1180
1183
|
}
|
|
1181
|
-
const orders = await this[method](this.extend(request, params));
|
|
1182
1184
|
for (let i = 0; i < orders.length; i++) {
|
|
1183
1185
|
orders[i] = this.extend(orders[i], { 'status': 'open' });
|
|
1184
1186
|
}
|
|
@@ -1200,10 +1202,9 @@ export default class cex extends Exchange {
|
|
|
1200
1202
|
throw new ArgumentsRequired(this.id + ' fetchClosedOrders() requires a symbol argument');
|
|
1201
1203
|
}
|
|
1202
1204
|
await this.loadMarkets();
|
|
1203
|
-
const method = 'privatePostArchivedOrdersPair';
|
|
1204
1205
|
const market = this.market(symbol);
|
|
1205
1206
|
const request = { 'pair': market['id'] };
|
|
1206
|
-
const response = await this
|
|
1207
|
+
const response = await this.privatePostArchivedOrdersPair(this.extend(request, params));
|
|
1207
1208
|
return this.parseOrders(response, market, since, limit);
|
|
1208
1209
|
}
|
|
1209
1210
|
async fetchOrder(id, symbol = undefined, params = {}) {
|
package/js/src/deribit.js
CHANGED
|
@@ -1320,14 +1320,19 @@ export default class deribit extends Exchange {
|
|
|
1320
1320
|
'instrument_name': market['id'],
|
|
1321
1321
|
'include_old': true,
|
|
1322
1322
|
};
|
|
1323
|
-
const method = (since === undefined) ? 'publicGetGetLastTradesByInstrument' : 'publicGetGetLastTradesByInstrumentAndTime';
|
|
1324
1323
|
if (since !== undefined) {
|
|
1325
1324
|
request['start_timestamp'] = since;
|
|
1326
1325
|
}
|
|
1327
1326
|
if (limit !== undefined) {
|
|
1328
1327
|
request['count'] = Math.min(limit, 1000); // default 10
|
|
1329
1328
|
}
|
|
1330
|
-
|
|
1329
|
+
let response = undefined;
|
|
1330
|
+
if (since === undefined) {
|
|
1331
|
+
response = await this.publicGetGetLastTradesByInstrument(this.extend(request, params));
|
|
1332
|
+
}
|
|
1333
|
+
else {
|
|
1334
|
+
response = await this.publicGetGetLastTradesByInstrumentAndTime(this.extend(request, params));
|
|
1335
|
+
}
|
|
1331
1336
|
//
|
|
1332
1337
|
// {
|
|
1333
1338
|
// "jsonrpc":"2.0",
|
|
@@ -1824,9 +1829,14 @@ export default class deribit extends Exchange {
|
|
|
1824
1829
|
request['time_in_force'] = 'fill_or_kill';
|
|
1825
1830
|
}
|
|
1826
1831
|
}
|
|
1827
|
-
const method = 'privateGet' + this.capitalize(side);
|
|
1828
1832
|
params = this.omit(params, ['timeInForce', 'stopLossPrice', 'takeProfitPrice', 'postOnly', 'reduceOnly']);
|
|
1829
|
-
|
|
1833
|
+
let response = undefined;
|
|
1834
|
+
if (this.capitalize(side) === 'Buy') {
|
|
1835
|
+
response = await this.privateGetBuy(this.extend(request, params));
|
|
1836
|
+
}
|
|
1837
|
+
else {
|
|
1838
|
+
response = await this.privateGetSell(this.extend(request, params));
|
|
1839
|
+
}
|
|
1830
1840
|
//
|
|
1831
1841
|
// {
|
|
1832
1842
|
// "jsonrpc": "2.0",
|
|
@@ -1941,16 +1951,15 @@ export default class deribit extends Exchange {
|
|
|
1941
1951
|
*/
|
|
1942
1952
|
await this.loadMarkets();
|
|
1943
1953
|
const request = {};
|
|
1944
|
-
let
|
|
1954
|
+
let response = undefined;
|
|
1945
1955
|
if (symbol === undefined) {
|
|
1946
|
-
|
|
1956
|
+
response = await this.privateGetCancelAll(this.extend(request, params));
|
|
1947
1957
|
}
|
|
1948
1958
|
else {
|
|
1949
|
-
method = 'privateGetCancelAllByInstrument';
|
|
1950
1959
|
const market = this.market(symbol);
|
|
1951
1960
|
request['instrument_name'] = market['id'];
|
|
1961
|
+
response = await this.privateGetCancelAllByInstrument(this.extend(request, params));
|
|
1952
1962
|
}
|
|
1953
|
-
const response = await this[method](this.extend(request, params));
|
|
1954
1963
|
return response;
|
|
1955
1964
|
}
|
|
1956
1965
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1967,19 +1976,18 @@ export default class deribit extends Exchange {
|
|
|
1967
1976
|
await this.loadMarkets();
|
|
1968
1977
|
const request = {};
|
|
1969
1978
|
let market = undefined;
|
|
1970
|
-
let
|
|
1979
|
+
let response = undefined;
|
|
1971
1980
|
if (symbol === undefined) {
|
|
1972
1981
|
const code = this.codeFromOptions('fetchOpenOrders', params);
|
|
1973
1982
|
const currency = this.currency(code);
|
|
1974
1983
|
request['currency'] = currency['id'];
|
|
1975
|
-
|
|
1984
|
+
response = await this.privateGetGetOpenOrdersByCurrency(this.extend(request, params));
|
|
1976
1985
|
}
|
|
1977
1986
|
else {
|
|
1978
1987
|
market = this.market(symbol);
|
|
1979
1988
|
request['instrument_name'] = market['id'];
|
|
1980
|
-
|
|
1989
|
+
response = await this.privateGetGetOpenOrdersByInstrument(this.extend(request, params));
|
|
1981
1990
|
}
|
|
1982
|
-
const response = await this[method](this.extend(request, params));
|
|
1983
1991
|
const result = this.safeValue(response, 'result', []);
|
|
1984
1992
|
return this.parseOrders(result, market, since, limit);
|
|
1985
1993
|
}
|
|
@@ -1997,19 +2005,18 @@ export default class deribit extends Exchange {
|
|
|
1997
2005
|
await this.loadMarkets();
|
|
1998
2006
|
const request = {};
|
|
1999
2007
|
let market = undefined;
|
|
2000
|
-
let
|
|
2008
|
+
let response = undefined;
|
|
2001
2009
|
if (symbol === undefined) {
|
|
2002
2010
|
const code = this.codeFromOptions('fetchClosedOrders', params);
|
|
2003
2011
|
const currency = this.currency(code);
|
|
2004
2012
|
request['currency'] = currency['id'];
|
|
2005
|
-
|
|
2013
|
+
response = await this.privateGetGetOrderHistoryByCurrency(this.extend(request, params));
|
|
2006
2014
|
}
|
|
2007
2015
|
else {
|
|
2008
2016
|
market = this.market(symbol);
|
|
2009
2017
|
request['instrument_name'] = market['id'];
|
|
2010
|
-
|
|
2018
|
+
response = await this.privateGetGetOrderHistoryByInstrument(this.extend(request, params));
|
|
2011
2019
|
}
|
|
2012
|
-
const response = await this[method](this.extend(request, params));
|
|
2013
2020
|
const result = this.safeValue(response, 'result', []);
|
|
2014
2021
|
return this.parseOrders(result, market, since, limit);
|
|
2015
2022
|
}
|
|
@@ -2082,34 +2089,33 @@ export default class deribit extends Exchange {
|
|
|
2082
2089
|
'include_old': true,
|
|
2083
2090
|
};
|
|
2084
2091
|
let market = undefined;
|
|
2085
|
-
|
|
2092
|
+
if (limit !== undefined) {
|
|
2093
|
+
request['count'] = limit; // default 10
|
|
2094
|
+
}
|
|
2095
|
+
let response = undefined;
|
|
2086
2096
|
if (symbol === undefined) {
|
|
2087
2097
|
const code = this.codeFromOptions('fetchMyTrades', params);
|
|
2088
2098
|
const currency = this.currency(code);
|
|
2089
2099
|
request['currency'] = currency['id'];
|
|
2090
2100
|
if (since === undefined) {
|
|
2091
|
-
|
|
2101
|
+
response = await this.privateGetGetUserTradesByCurrency(this.extend(request, params));
|
|
2092
2102
|
}
|
|
2093
2103
|
else {
|
|
2094
|
-
method = 'privateGetGetUserTradesByCurrencyAndTime';
|
|
2095
2104
|
request['start_timestamp'] = since;
|
|
2105
|
+
response = await this.privateGetGetUserTradesByCurrencyAndTime(this.extend(request, params));
|
|
2096
2106
|
}
|
|
2097
2107
|
}
|
|
2098
2108
|
else {
|
|
2099
2109
|
market = this.market(symbol);
|
|
2100
2110
|
request['instrument_name'] = market['id'];
|
|
2101
2111
|
if (since === undefined) {
|
|
2102
|
-
|
|
2112
|
+
response = await this.privateGetGetUserTradesByInstrument(this.extend(request, params));
|
|
2103
2113
|
}
|
|
2104
2114
|
else {
|
|
2105
|
-
method = 'privateGetGetUserTradesByInstrumentAndTime';
|
|
2106
2115
|
request['start_timestamp'] = since;
|
|
2116
|
+
response = await this.privateGetGetUserTradesByInstrumentAndTime(this.extend(request, params));
|
|
2107
2117
|
}
|
|
2108
2118
|
}
|
|
2109
|
-
if (limit !== undefined) {
|
|
2110
|
-
request['count'] = limit; // default 10
|
|
2111
|
-
}
|
|
2112
|
-
const response = await this[method](this.extend(request, params));
|
|
2113
2119
|
//
|
|
2114
2120
|
// {
|
|
2115
2121
|
// "jsonrpc": "2.0",
|
|
@@ -2643,7 +2649,13 @@ export default class deribit extends Exchange {
|
|
|
2643
2649
|
const transferOptions = this.safeValue(this.options, 'transfer', {});
|
|
2644
2650
|
method = this.safeString(transferOptions, 'method', 'privateGetSubmitTransferToSubaccount');
|
|
2645
2651
|
}
|
|
2646
|
-
|
|
2652
|
+
let response = undefined;
|
|
2653
|
+
if (method === 'privateGetSubmitTransferToUser') {
|
|
2654
|
+
response = await this.privateGetSubmitTransferToUser(this.extend(request, params));
|
|
2655
|
+
}
|
|
2656
|
+
else {
|
|
2657
|
+
response = await this.privateGetSubmitTransferToSubaccount(this.extend(request, params));
|
|
2658
|
+
}
|
|
2647
2659
|
//
|
|
2648
2660
|
// {
|
|
2649
2661
|
// "jsonrpc": "2.0",
|
package/js/src/kucoinfutures.js
CHANGED
|
@@ -1735,14 +1735,18 @@ export default class kucoinfutures extends kucoin {
|
|
|
1735
1735
|
const cancelExist = this.safeValue(order, 'cancelExist', false);
|
|
1736
1736
|
let status = isActive ? 'open' : 'closed';
|
|
1737
1737
|
status = cancelExist ? 'canceled' : status;
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1738
|
+
let fee = undefined;
|
|
1739
|
+
if (feeCost !== undefined) {
|
|
1740
|
+
fee = {
|
|
1741
|
+
'currency': feeCurrency,
|
|
1742
|
+
'cost': feeCost,
|
|
1743
|
+
};
|
|
1744
|
+
}
|
|
1742
1745
|
const clientOrderId = this.safeString(order, 'clientOid');
|
|
1743
1746
|
const timeInForce = this.safeString(order, 'timeInForce');
|
|
1744
1747
|
const stopPrice = this.safeNumber(order, 'stopPrice');
|
|
1745
1748
|
const postOnly = this.safeValue(order, 'postOnly');
|
|
1749
|
+
const reduceOnly = this.safeValue(order, 'reduceOnly');
|
|
1746
1750
|
const lastUpdateTimestamp = this.safeInteger(order, 'updatedAt');
|
|
1747
1751
|
return this.safeOrder({
|
|
1748
1752
|
'id': orderId,
|
|
@@ -1751,6 +1755,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1751
1755
|
'type': type,
|
|
1752
1756
|
'timeInForce': timeInForce,
|
|
1753
1757
|
'postOnly': postOnly,
|
|
1758
|
+
'reduceOnly': reduceOnly,
|
|
1754
1759
|
'side': side,
|
|
1755
1760
|
'amount': amount,
|
|
1756
1761
|
'price': price,
|
package/js/src/lykke.js
CHANGED
|
@@ -435,7 +435,13 @@ export default class lykke extends Exchange {
|
|
|
435
435
|
};
|
|
436
436
|
// publicGetTickers or publicGetPrices
|
|
437
437
|
const method = this.safeString(this.options, 'fetchTickerMethod', 'publicGetTickers');
|
|
438
|
-
|
|
438
|
+
let response = undefined;
|
|
439
|
+
if (method === 'publicGetPrices') {
|
|
440
|
+
response = await this.publicGetPrices(this.extend(request, params));
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
response = await this.publicGetTickers(this.extend(request, params));
|
|
444
|
+
}
|
|
439
445
|
const ticker = this.safeValue(response, 'payload', []);
|
|
440
446
|
//
|
|
441
447
|
// publicGetTickers
|
|
@@ -789,8 +795,13 @@ export default class lykke extends Exchange {
|
|
|
789
795
|
if (type === 'limit') {
|
|
790
796
|
query['price'] = parseFloat(this.priceToPrecision(market['symbol'], price));
|
|
791
797
|
}
|
|
792
|
-
|
|
793
|
-
|
|
798
|
+
let result = undefined;
|
|
799
|
+
if (this.capitalize(type) === 'Market') {
|
|
800
|
+
result = await this.privatePostOrdersMarket(this.extend(query, params));
|
|
801
|
+
}
|
|
802
|
+
else {
|
|
803
|
+
result = await this.privatePostOrdersLimit(this.extend(query, params));
|
|
804
|
+
}
|
|
794
805
|
//
|
|
795
806
|
// market
|
|
796
807
|
//
|
|
@@ -1192,9 +1192,15 @@ export default class poloniexfutures extends Exchange {
|
|
|
1192
1192
|
if (symbol !== undefined) {
|
|
1193
1193
|
request['symbol'] = this.marketId(symbol);
|
|
1194
1194
|
}
|
|
1195
|
-
const stop = this.
|
|
1196
|
-
|
|
1197
|
-
|
|
1195
|
+
const stop = this.safeValue2(params, 'stop', 'trigger');
|
|
1196
|
+
params = this.omit(params, ['stop', 'trigger']);
|
|
1197
|
+
let response = undefined;
|
|
1198
|
+
if (stop) {
|
|
1199
|
+
response = await this.privateDeleteStopOrders(this.extend(request, params));
|
|
1200
|
+
}
|
|
1201
|
+
else {
|
|
1202
|
+
response = await this.privateDeleteOrders(this.extend(request, params));
|
|
1203
|
+
}
|
|
1198
1204
|
//
|
|
1199
1205
|
// {
|
|
1200
1206
|
// "code": "200000",
|
|
@@ -1256,9 +1262,9 @@ export default class poloniexfutures extends Exchange {
|
|
|
1256
1262
|
* @returns An [array of order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1257
1263
|
*/
|
|
1258
1264
|
await this.loadMarkets();
|
|
1259
|
-
const stop = this.
|
|
1265
|
+
const stop = this.safeValue2(params, 'stop', 'trigger');
|
|
1260
1266
|
const until = this.safeInteger2(params, 'until', 'till');
|
|
1261
|
-
params = this.omit(params, ['stop', 'until', 'till']);
|
|
1267
|
+
params = this.omit(params, ['triger', 'stop', 'until', 'till']);
|
|
1262
1268
|
if (status === 'closed') {
|
|
1263
1269
|
status = 'done';
|
|
1264
1270
|
}
|
|
@@ -1280,8 +1286,13 @@ export default class poloniexfutures extends Exchange {
|
|
|
1280
1286
|
if (until !== undefined) {
|
|
1281
1287
|
request['endAt'] = until;
|
|
1282
1288
|
}
|
|
1283
|
-
|
|
1284
|
-
|
|
1289
|
+
let response = undefined;
|
|
1290
|
+
if (stop) {
|
|
1291
|
+
response = await this.privateGetStopOrders(this.extend(request, params));
|
|
1292
|
+
}
|
|
1293
|
+
else {
|
|
1294
|
+
response = await this.privateGetOrders(this.extend(request, params));
|
|
1295
|
+
}
|
|
1285
1296
|
//
|
|
1286
1297
|
// {
|
|
1287
1298
|
// "code": "200000",
|
|
@@ -1391,20 +1402,20 @@ export default class poloniexfutures extends Exchange {
|
|
|
1391
1402
|
*/
|
|
1392
1403
|
await this.loadMarkets();
|
|
1393
1404
|
const request = {};
|
|
1394
|
-
let
|
|
1405
|
+
let response = undefined;
|
|
1395
1406
|
if (id === undefined) {
|
|
1396
1407
|
const clientOrderId = this.safeString2(params, 'clientOid', 'clientOrderId');
|
|
1397
1408
|
if (clientOrderId === undefined) {
|
|
1398
1409
|
throw new InvalidOrder(this.id + ' fetchOrder() requires parameter id or params.clientOid');
|
|
1399
1410
|
}
|
|
1400
1411
|
request['clientOid'] = clientOrderId;
|
|
1401
|
-
method = 'privateGetOrdersByClientOid';
|
|
1402
1412
|
params = this.omit(params, ['clientOid', 'clientOrderId']);
|
|
1413
|
+
response = await this.privateGetClientOrderIdClientOid(this.extend(request, params));
|
|
1403
1414
|
}
|
|
1404
1415
|
else {
|
|
1405
1416
|
request['order-id'] = id;
|
|
1417
|
+
response = await this.privateGetOrdersOrderId(this.extend(request, params));
|
|
1406
1418
|
}
|
|
1407
|
-
const response = await this[method](this.extend(request, params));
|
|
1408
1419
|
//
|
|
1409
1420
|
// {
|
|
1410
1421
|
// "code": "200000",
|
|
@@ -1724,7 +1735,7 @@ export default class poloniexfutures extends Exchange {
|
|
|
1724
1735
|
const version = this.safeString(params, 'version', defaultVersion);
|
|
1725
1736
|
const tail = '/api/' + version + '/' + this.implodeParams(path, params);
|
|
1726
1737
|
url += tail;
|
|
1727
|
-
const query = this.omit(params, path);
|
|
1738
|
+
const query = this.omit(params, this.extractParams(path));
|
|
1728
1739
|
const queryLength = Object.keys(query).length;
|
|
1729
1740
|
if (api === 'public') {
|
|
1730
1741
|
if (queryLength) {
|
package/js/src/pro/binance.js
CHANGED
|
@@ -1117,25 +1117,27 @@ export default class binance extends binanceRest {
|
|
|
1117
1117
|
const listenKeyRefreshRate = this.safeInteger(this.options, 'listenKeyRefreshRate', 1200000);
|
|
1118
1118
|
const delay = this.sum(listenKeyRefreshRate, 10000);
|
|
1119
1119
|
if (time - lastAuthenticatedTime > delay) {
|
|
1120
|
-
let
|
|
1120
|
+
let response = undefined;
|
|
1121
1121
|
if (type === 'future') {
|
|
1122
|
-
|
|
1122
|
+
response = await this.fapiPrivatePostListenKey(query);
|
|
1123
1123
|
}
|
|
1124
1124
|
else if (type === 'delivery') {
|
|
1125
|
-
|
|
1125
|
+
response = await this.dapiPrivatePostListenKey(query);
|
|
1126
1126
|
}
|
|
1127
1127
|
else if (type === 'margin' && isCrossMargin) {
|
|
1128
|
-
|
|
1128
|
+
response = await this.sapiPostUserDataStream(query);
|
|
1129
1129
|
}
|
|
1130
1130
|
else if (isIsolatedMargin) {
|
|
1131
|
-
method = 'sapiPostUserDataStreamIsolated';
|
|
1132
1131
|
if (symbol === undefined) {
|
|
1133
1132
|
throw new ArgumentsRequired(this.id + ' authenticate() requires a symbol argument for isolated margin mode');
|
|
1134
1133
|
}
|
|
1135
1134
|
const marketId = this.marketId(symbol);
|
|
1136
1135
|
query = this.extend(query, { 'symbol': marketId });
|
|
1136
|
+
response = await this.sapiPostUserDataStreamIsolated(query);
|
|
1137
|
+
}
|
|
1138
|
+
else {
|
|
1139
|
+
response = await this.publicPostUserDataStream(query);
|
|
1137
1140
|
}
|
|
1138
|
-
const response = await this[method](query);
|
|
1139
1141
|
this.options[type] = this.extend(options, {
|
|
1140
1142
|
'listenKey': this.safeString(response, 'listenKey'),
|
|
1141
1143
|
'lastAuthenticatedTime': time,
|
|
@@ -1161,26 +1163,27 @@ export default class binance extends binanceRest {
|
|
|
1161
1163
|
// A network error happened: we can't renew a listen key that does not exist.
|
|
1162
1164
|
return;
|
|
1163
1165
|
}
|
|
1164
|
-
let method = 'publicPutUserDataStream';
|
|
1165
1166
|
const request = {};
|
|
1166
1167
|
const symbol = this.safeString(params, 'symbol');
|
|
1167
1168
|
const sendParams = this.omit(params, ['type', 'symbol']);
|
|
1168
|
-
if (type === 'future') {
|
|
1169
|
-
method = 'fapiPrivatePutListenKey';
|
|
1170
|
-
}
|
|
1171
|
-
else if (type === 'delivery') {
|
|
1172
|
-
method = 'dapiPrivatePutListenKey';
|
|
1173
|
-
}
|
|
1174
|
-
else {
|
|
1175
|
-
request['listenKey'] = listenKey;
|
|
1176
|
-
if (type === 'margin') {
|
|
1177
|
-
request['symbol'] = symbol;
|
|
1178
|
-
method = 'sapiPutUserDataStream';
|
|
1179
|
-
}
|
|
1180
|
-
}
|
|
1181
1169
|
const time = this.milliseconds();
|
|
1182
1170
|
try {
|
|
1183
|
-
|
|
1171
|
+
if (type === 'future') {
|
|
1172
|
+
await this.fapiPrivatePutListenKey(this.extend(request, sendParams));
|
|
1173
|
+
}
|
|
1174
|
+
else if (type === 'delivery') {
|
|
1175
|
+
await this.dapiPrivatePutListenKey(this.extend(request, sendParams));
|
|
1176
|
+
}
|
|
1177
|
+
else {
|
|
1178
|
+
request['listenKey'] = listenKey;
|
|
1179
|
+
if (type === 'margin') {
|
|
1180
|
+
request['symbol'] = symbol;
|
|
1181
|
+
await this.sapiPutUserDataStream(this.extend(request, sendParams));
|
|
1182
|
+
}
|
|
1183
|
+
else {
|
|
1184
|
+
await this.publicPutUserDataStream(this.extend(request, sendParams));
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1184
1187
|
}
|
|
1185
1188
|
catch (error) {
|
|
1186
1189
|
const url = this.urls['api']['ws'][type] + '/' + this.options[type]['listenKey'];
|