ccxt 4.1.95 → 4.1.97
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/build.sh +16 -16
- package/dist/ccxt.browser.js +1570 -1401
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -5
- package/dist/cjs/src/base/errors.js +8 -1
- package/dist/cjs/src/bigone.js +2 -2
- package/dist/cjs/src/binance.js +145 -135
- package/dist/cjs/src/bingx.js +50 -8
- package/dist/cjs/src/bit2c.js +2 -3
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex2.js +3 -4
- package/dist/cjs/src/bitflyer.js +2 -2
- package/dist/cjs/src/bitmart.js +2 -2
- package/dist/cjs/src/bitmex.js +2 -2
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitpanda.js +1 -1
- package/dist/cjs/src/bitvavo.js +1 -1
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/btcalpha.js +2 -2
- package/dist/cjs/src/btcbox.js +3 -4
- package/dist/cjs/src/btcmarkets.js +2 -2
- package/dist/cjs/src/btcturk.js +1 -1
- package/dist/cjs/src/bybit.js +2 -2
- package/dist/cjs/src/cex.js +1 -1
- package/dist/cjs/src/coinbase.js +11 -5
- package/dist/cjs/src/coinbasepro.js +2 -2
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinlist.js +1 -1
- package/dist/cjs/src/cryptocom.js +2 -1
- package/dist/cjs/src/delta.js +25 -0
- package/dist/cjs/src/deribit.js +1 -1
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/gate.js +3 -3
- package/dist/cjs/src/hitbtc.js +1 -1
- package/dist/cjs/src/hollaex.js +2 -2
- package/dist/cjs/src/htx.js +1 -1
- package/dist/cjs/src/huobijp.js +2 -2
- package/dist/cjs/src/idex.js +1 -1
- package/dist/cjs/src/independentreserve.js +1 -1
- package/dist/cjs/src/kraken.js +47 -46
- package/dist/cjs/src/krakenfutures.js +53 -26
- package/dist/cjs/src/kucoin.js +74 -4
- package/dist/cjs/src/kucoinfutures.js +2 -2
- package/dist/cjs/src/kuna.js +1 -1
- package/dist/cjs/src/latoken.js +1 -1
- package/dist/cjs/src/luno.js +2 -2
- package/dist/cjs/src/lykke.js +1 -1
- package/dist/cjs/src/mexc.js +2 -2
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/novadax.js +2 -2
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okcoin.js +1 -1
- package/dist/cjs/src/okx.js +1 -1
- package/dist/cjs/src/poloniexfutures.js +1 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/ascendex.js +1 -1
- package/dist/cjs/src/pro/binance.js +4 -5
- package/dist/cjs/src/pro/bingx.js +6 -3
- package/dist/cjs/src/pro/bitfinex.js +3 -4
- package/dist/cjs/src/pro/bitfinex2.js +1 -1
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/bitpanda.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/bybit.js +2 -2
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coinbase.js +1 -1
- package/dist/cjs/src/pro/coinbasepro.js +1 -1
- package/dist/cjs/src/pro/deribit.js +1 -1
- package/dist/cjs/src/pro/gate.js +3 -3
- package/dist/cjs/src/pro/gemini.js +1 -1
- package/dist/cjs/src/pro/hollaex.js +1 -1
- package/dist/cjs/src/pro/htx.js +1 -1
- package/dist/cjs/src/pro/idex.js +1 -1
- package/dist/cjs/src/pro/kraken.js +3 -4
- package/dist/cjs/src/pro/krakenfutures.js +1 -1
- package/dist/cjs/src/pro/kucoinfutures.js +1 -1
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/pro/okcoin.js +1 -1
- package/dist/cjs/src/pro/okx.js +2 -2
- package/dist/cjs/src/pro/phemex.js +1 -1
- package/dist/cjs/src/pro/poloniexfutures.js +1 -1
- package/dist/cjs/src/pro/woo.js +2 -3
- package/dist/cjs/src/probit.js +1 -1
- package/dist/cjs/src/timex.js +1 -1
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/whitebit.js +1 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/zaif.js +1 -1
- 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/abstract/kucoin.d.ts +12 -0
- package/js/src/abstract/kucoinfutures.d.ts +12 -1
- package/js/src/ace.js +1 -1
- package/js/src/ascendex.js +1 -1
- package/js/src/base/Exchange.d.ts +1 -1
- package/js/src/base/Exchange.js +7 -6
- package/js/src/base/errorHierarchy.d.ts +1 -0
- package/js/src/base/errorHierarchy.js +1 -0
- package/js/src/base/errors.d.ts +5 -1
- package/js/src/base/errors.js +8 -2
- package/js/src/bigone.js +2 -2
- package/js/src/binance.js +145 -135
- package/js/src/bingx.d.ts +1 -0
- package/js/src/bingx.js +50 -8
- package/js/src/bit2c.js +2 -3
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.js +3 -4
- package/js/src/bitflyer.js +2 -2
- package/js/src/bitmart.js +2 -2
- package/js/src/bitmex.js +2 -2
- package/js/src/bitopro.js +1 -1
- package/js/src/bitpanda.js +1 -1
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitvavo.js +1 -1
- package/js/src/blockchaincom.js +1 -1
- package/js/src/btcalpha.js +2 -2
- package/js/src/btcbox.js +3 -4
- package/js/src/btcmarkets.js +2 -2
- package/js/src/btcturk.js +1 -1
- package/js/src/bybit.js +2 -2
- package/js/src/cex.js +1 -1
- package/js/src/coinbase.js +11 -5
- package/js/src/coinbasepro.js +2 -2
- package/js/src/coinex.js +1 -1
- package/js/src/coinlist.js +1 -1
- package/js/src/cryptocom.js +2 -1
- package/js/src/delta.d.ts +5 -4
- package/js/src/delta.js +25 -0
- package/js/src/deribit.js +1 -1
- package/js/src/digifinex.js +1 -1
- package/js/src/gate.js +3 -3
- package/js/src/hitbtc.js +1 -1
- package/js/src/hollaex.js +2 -2
- package/js/src/htx.js +1 -1
- package/js/src/huobijp.js +2 -2
- package/js/src/idex.js +1 -1
- package/js/src/independentreserve.js +1 -1
- package/js/src/kraken.js +47 -46
- package/js/src/krakenfutures.js +53 -26
- package/js/src/kucoin.d.ts +3 -0
- package/js/src/kucoin.js +74 -4
- package/js/src/kucoinfutures.js +2 -2
- package/js/src/kuna.js +1 -1
- package/js/src/latoken.js +1 -1
- package/js/src/luno.js +2 -2
- package/js/src/lykke.js +1 -1
- package/js/src/mexc.js +2 -2
- package/js/src/ndax.js +1 -1
- package/js/src/novadax.js +2 -2
- package/js/src/oceanex.js +1 -1
- package/js/src/okcoin.js +1 -1
- package/js/src/okx.js +1 -1
- package/js/src/poloniexfutures.js +1 -1
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/ascendex.js +1 -1
- package/js/src/pro/binance.js +4 -5
- package/js/src/pro/bingx.js +6 -3
- package/js/src/pro/bitfinex.js +3 -4
- package/js/src/pro/bitfinex2.js +1 -1
- package/js/src/pro/bitmex.js +1 -1
- package/js/src/pro/bitpanda.js +1 -1
- package/js/src/pro/blockchaincom.js +1 -1
- package/js/src/pro/bybit.js +2 -2
- package/js/src/pro/cex.js +1 -1
- package/js/src/pro/coinbase.js +1 -1
- package/js/src/pro/coinbasepro.js +1 -1
- package/js/src/pro/deribit.js +1 -1
- package/js/src/pro/gate.js +3 -3
- package/js/src/pro/gemini.js +1 -1
- package/js/src/pro/hollaex.js +1 -1
- package/js/src/pro/htx.js +1 -1
- package/js/src/pro/idex.js +1 -1
- package/js/src/pro/kraken.js +3 -4
- package/js/src/pro/krakenfutures.js +1 -1
- package/js/src/pro/kucoinfutures.js +1 -1
- package/js/src/pro/mexc.js +1 -1
- package/js/src/pro/okcoin.js +1 -1
- package/js/src/pro/okx.js +2 -2
- package/js/src/pro/phemex.js +1 -1
- package/js/src/pro/poloniexfutures.js +1 -1
- package/js/src/pro/woo.js +2 -3
- package/js/src/probit.js +1 -1
- package/js/src/timex.js +1 -1
- package/js/src/tokocrypto.js +1 -1
- package/js/src/upbit.js +1 -1
- package/js/src/wavesexchange.js +1 -1
- package/js/src/whitebit.js +1 -1
- package/js/src/woo.js +1 -1
- package/js/src/zaif.js +1 -1
- package/package.json +2 -2
- package/skip-tests.json +1 -0
package/dist/cjs/ccxt.js
CHANGED
|
@@ -168,7 +168,7 @@ var woo$1 = require('./src/pro/woo.js');
|
|
|
168
168
|
|
|
169
169
|
//-----------------------------------------------------------------------------
|
|
170
170
|
// this is updated by vss.js when building
|
|
171
|
-
const version = '4.1.
|
|
171
|
+
const version = '4.1.97';
|
|
172
172
|
Exchange["default"].ccxtVersion = version;
|
|
173
173
|
const exchanges = {
|
|
174
174
|
'ace': ace,
|
package/dist/cjs/src/ace.js
CHANGED
|
@@ -697,7 +697,7 @@ class ace extends ace$1 {
|
|
|
697
697
|
* @see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---order-list
|
|
698
698
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
699
699
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
700
|
-
* @param {int} [limit] the maximum number of
|
|
700
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
701
701
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
702
702
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
703
703
|
*/
|
package/dist/cjs/src/ascendex.js
CHANGED
|
@@ -1989,7 +1989,7 @@ class ascendex extends ascendex$1 {
|
|
|
1989
1989
|
* @see https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-current-history-orders
|
|
1990
1990
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
1991
1991
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
1992
|
-
* @param {int} [limit] the maximum number of
|
|
1992
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
1993
1993
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1994
1994
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
1995
1995
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -1382,7 +1382,7 @@ class Exchange {
|
|
|
1382
1382
|
const length = usedProxies.length;
|
|
1383
1383
|
if (length > 1) {
|
|
1384
1384
|
const joinedProxyNames = usedProxies.join(',');
|
|
1385
|
-
throw new errors.
|
|
1385
|
+
throw new errors.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from : proxyUrl, proxy_url, proxyUrlCallback, proxy_url_callback');
|
|
1386
1386
|
}
|
|
1387
1387
|
return proxyUrl;
|
|
1388
1388
|
}
|
|
@@ -1446,7 +1446,7 @@ class Exchange {
|
|
|
1446
1446
|
const length = usedProxies.length;
|
|
1447
1447
|
if (length > 1) {
|
|
1448
1448
|
const joinedProxyNames = usedProxies.join(',');
|
|
1449
|
-
throw new errors.
|
|
1449
|
+
throw new errors.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from: httpProxy, httpsProxy, httpProxyCallback, httpsProxyCallback, socksProxy, socksProxyCallback');
|
|
1450
1450
|
}
|
|
1451
1451
|
return [httpProxy, httpsProxy, socksProxy];
|
|
1452
1452
|
}
|
|
@@ -1486,13 +1486,13 @@ class Exchange {
|
|
|
1486
1486
|
const length = usedProxies.length;
|
|
1487
1487
|
if (length > 1) {
|
|
1488
1488
|
const joinedProxyNames = usedProxies.join(',');
|
|
1489
|
-
throw new errors.
|
|
1489
|
+
throw new errors.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from: wsProxy, wssProxy, wsSocksProxy');
|
|
1490
1490
|
}
|
|
1491
1491
|
return [wsProxy, wssProxy, wsSocksProxy];
|
|
1492
1492
|
}
|
|
1493
1493
|
checkConflictingProxies(proxyAgentSet, proxyUrlSet) {
|
|
1494
1494
|
if (proxyAgentSet && proxyUrlSet) {
|
|
1495
|
-
throw new errors.
|
|
1495
|
+
throw new errors.ProxyError(this.id + ' you have multiple conflicting proxy settings, please use only one from : proxyUrl, httpProxy, httpsProxy, socksProxy');
|
|
1496
1496
|
}
|
|
1497
1497
|
}
|
|
1498
1498
|
findMessageHashes(client, element) {
|
|
@@ -1809,6 +1809,7 @@ class Exchange {
|
|
|
1809
1809
|
fee['cost'] = this.safeNumber(fee, 'cost');
|
|
1810
1810
|
}
|
|
1811
1811
|
const timestamp = this.safeInteger(entry, 'timestamp');
|
|
1812
|
+
const info = this.safeValue(entry, 'info', {});
|
|
1812
1813
|
return {
|
|
1813
1814
|
'id': this.safeString(entry, 'id'),
|
|
1814
1815
|
'timestamp': timestamp,
|
|
@@ -1824,7 +1825,7 @@ class Exchange {
|
|
|
1824
1825
|
'after': this.parseNumber(after),
|
|
1825
1826
|
'status': this.safeString(entry, 'status'),
|
|
1826
1827
|
'fee': fee,
|
|
1827
|
-
'info':
|
|
1828
|
+
'info': info,
|
|
1828
1829
|
};
|
|
1829
1830
|
}
|
|
1830
1831
|
safeCurrencyStructure(currency) {
|
|
@@ -196,6 +196,12 @@ class OperationFailed extends BaseError {
|
|
|
196
196
|
this.name = 'OperationFailed';
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
+
class ProxyError extends ExchangeError {
|
|
200
|
+
constructor(message) {
|
|
201
|
+
super(message);
|
|
202
|
+
this.name = 'OperationFailed';
|
|
203
|
+
}
|
|
204
|
+
}
|
|
199
205
|
// Network error
|
|
200
206
|
class NetworkError extends OperationFailed {
|
|
201
207
|
constructor(message) {
|
|
@@ -246,7 +252,7 @@ class RequestTimeout extends NetworkError {
|
|
|
246
252
|
// // Derived class hierarchy
|
|
247
253
|
// errorHierarchy
|
|
248
254
|
// )
|
|
249
|
-
const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange, OperationRejected, OperationFailed };
|
|
255
|
+
const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange, OperationRejected, OperationFailed, ProxyError };
|
|
250
256
|
|
|
251
257
|
exports.AccountNotEnabled = AccountNotEnabled;
|
|
252
258
|
exports.AccountSuspended = AccountSuspended;
|
|
@@ -280,6 +286,7 @@ exports.OrderNotCached = OrderNotCached;
|
|
|
280
286
|
exports.OrderNotFillable = OrderNotFillable;
|
|
281
287
|
exports.OrderNotFound = OrderNotFound;
|
|
282
288
|
exports.PermissionDenied = PermissionDenied;
|
|
289
|
+
exports.ProxyError = ProxyError;
|
|
283
290
|
exports.RateLimitExceeded = RateLimitExceeded;
|
|
284
291
|
exports.RequestTimeout = RequestTimeout;
|
|
285
292
|
exports["default"] = errors;
|
package/dist/cjs/src/bigone.js
CHANGED
|
@@ -1363,7 +1363,7 @@ class bigone extends bigone$1 {
|
|
|
1363
1363
|
* @description fetches information on multiple orders made by the user
|
|
1364
1364
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
1365
1365
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
1366
|
-
* @param {int} [limit] the maximum number of
|
|
1366
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
1367
1367
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1368
1368
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1369
1369
|
*/
|
|
@@ -1498,7 +1498,7 @@ class bigone extends bigone$1 {
|
|
|
1498
1498
|
* @description fetches information on multiple closed orders made by the user
|
|
1499
1499
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
1500
1500
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
1501
|
-
* @param {int} [limit] the maximum number of
|
|
1501
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
1502
1502
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1503
1503
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1504
1504
|
*/
|
package/dist/cjs/src/binance.js
CHANGED
|
@@ -2565,24 +2565,23 @@ class binance extends binance$1 {
|
|
|
2565
2565
|
let type = this.safeString(params, 'type', defaultType);
|
|
2566
2566
|
let subType = undefined;
|
|
2567
2567
|
[subType, params] = this.handleSubTypeAndParams('fetchBalance', undefined, params);
|
|
2568
|
-
|
|
2569
|
-
let
|
|
2568
|
+
let marginMode = undefined;
|
|
2569
|
+
let query = undefined;
|
|
2570
|
+
[marginMode, query] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
2571
|
+
query = this.omit(query, 'type');
|
|
2572
|
+
let response = undefined;
|
|
2570
2573
|
const request = {};
|
|
2571
2574
|
if (this.isLinear(type, subType)) {
|
|
2572
|
-
const options = this.safeValue(this.options, type, {});
|
|
2573
|
-
const fetchBalanceOptions = this.safeValue(options, 'fetchBalance', {});
|
|
2574
|
-
method = this.safeString(fetchBalanceOptions, 'method', 'fapiPrivateV2GetAccount');
|
|
2575
2575
|
type = 'linear';
|
|
2576
|
+
response = await this.fapiPrivateV2GetAccount(this.extend(request, query));
|
|
2576
2577
|
}
|
|
2577
2578
|
else if (this.isInverse(type, subType)) {
|
|
2578
|
-
const options = this.safeValue(this.options, type, {});
|
|
2579
|
-
const fetchBalanceOptions = this.safeValue(options, 'fetchBalance', {});
|
|
2580
|
-
method = this.safeString(fetchBalanceOptions, 'method', 'dapiPrivateGetAccount');
|
|
2581
2579
|
type = 'inverse';
|
|
2580
|
+
response = await this.dapiPrivateGetAccount(this.extend(request, query));
|
|
2582
2581
|
}
|
|
2583
2582
|
else if (marginMode === 'isolated') {
|
|
2584
|
-
method = 'sapiGetMarginIsolatedAccount';
|
|
2585
2583
|
const paramSymbols = this.safeValue(params, 'symbols');
|
|
2584
|
+
query = this.omit(query, 'symbols');
|
|
2586
2585
|
if (paramSymbols !== undefined) {
|
|
2587
2586
|
let symbols = '';
|
|
2588
2587
|
if (Array.isArray(paramSymbols)) {
|
|
@@ -2598,18 +2597,20 @@ class binance extends binance$1 {
|
|
|
2598
2597
|
}
|
|
2599
2598
|
request['symbols'] = symbols;
|
|
2600
2599
|
}
|
|
2600
|
+
response = await this.sapiGetMarginIsolatedAccount(this.extend(request, query));
|
|
2601
2601
|
}
|
|
2602
2602
|
else if ((type === 'margin') || (marginMode === 'cross')) {
|
|
2603
|
-
|
|
2603
|
+
response = await this.sapiGetMarginAccount(this.extend(request, query));
|
|
2604
2604
|
}
|
|
2605
2605
|
else if (type === 'savings') {
|
|
2606
|
-
|
|
2606
|
+
response = await this.sapiGetLendingUnionAccount(this.extend(request, query));
|
|
2607
2607
|
}
|
|
2608
2608
|
else if (type === 'funding') {
|
|
2609
|
-
|
|
2609
|
+
response = await this.sapiPostAssetGetFundingAsset(this.extend(request, query));
|
|
2610
|
+
}
|
|
2611
|
+
else {
|
|
2612
|
+
response = await this.privateGetAccount(this.extend(request, query));
|
|
2610
2613
|
}
|
|
2611
|
-
const requestParams = this.omit(query, ['type', 'symbols']);
|
|
2612
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
2613
2614
|
//
|
|
2614
2615
|
// spot
|
|
2615
2616
|
//
|
|
@@ -3301,33 +3302,35 @@ class binance extends binance$1 {
|
|
|
3301
3302
|
if (until !== undefined) {
|
|
3302
3303
|
request['endTime'] = until;
|
|
3303
3304
|
}
|
|
3304
|
-
let
|
|
3305
|
+
let response = undefined;
|
|
3305
3306
|
if (market['option']) {
|
|
3306
|
-
|
|
3307
|
+
response = await this.eapiPublicGetKlines(this.extend(request, params));
|
|
3307
3308
|
}
|
|
3308
3309
|
else if (price === 'mark') {
|
|
3309
3310
|
if (market['inverse']) {
|
|
3310
|
-
|
|
3311
|
+
response = await this.dapiPublicGetMarkPriceKlines(this.extend(request, params));
|
|
3311
3312
|
}
|
|
3312
3313
|
else {
|
|
3313
|
-
|
|
3314
|
+
response = await this.fapiPublicGetMarkPriceKlines(this.extend(request, params));
|
|
3314
3315
|
}
|
|
3315
3316
|
}
|
|
3316
3317
|
else if (price === 'index') {
|
|
3317
3318
|
if (market['inverse']) {
|
|
3318
|
-
|
|
3319
|
+
response = await this.dapiPublicGetIndexPriceKlines(this.extend(request, params));
|
|
3319
3320
|
}
|
|
3320
3321
|
else {
|
|
3321
|
-
|
|
3322
|
+
response = await this.fapiPublicGetIndexPriceKlines(this.extend(request, params));
|
|
3322
3323
|
}
|
|
3323
3324
|
}
|
|
3324
3325
|
else if (market['linear']) {
|
|
3325
|
-
|
|
3326
|
+
response = await this.fapiPublicGetKlines(this.extend(request, params));
|
|
3326
3327
|
}
|
|
3327
3328
|
else if (market['inverse']) {
|
|
3328
|
-
|
|
3329
|
+
response = await this.dapiPublicGetKlines(this.extend(request, params));
|
|
3330
|
+
}
|
|
3331
|
+
else {
|
|
3332
|
+
response = await this.publicGetKlines(this.extend(request, params));
|
|
3329
3333
|
}
|
|
3330
|
-
const response = await this[method](this.extend(request, params));
|
|
3331
3334
|
//
|
|
3332
3335
|
// [
|
|
3333
3336
|
// [1591478520000,"0.02501300","0.02501800","0.02500000","0.02500000","22.19000000",1591478579999,"0.55490906",40,"10.92900000","0.27336462","0"],
|
|
@@ -4743,22 +4746,6 @@ class binance extends binance$1 {
|
|
|
4743
4746
|
const request = {
|
|
4744
4747
|
'symbol': market['id'],
|
|
4745
4748
|
};
|
|
4746
|
-
let method = 'privateGetOrder';
|
|
4747
|
-
if (market['option']) {
|
|
4748
|
-
method = 'eapiPrivateGetOrder';
|
|
4749
|
-
}
|
|
4750
|
-
else if (market['linear']) {
|
|
4751
|
-
method = 'fapiPrivateGetOrder';
|
|
4752
|
-
}
|
|
4753
|
-
else if (market['inverse']) {
|
|
4754
|
-
method = 'dapiPrivateGetOrder';
|
|
4755
|
-
}
|
|
4756
|
-
else if (type === 'margin' || marginMode !== undefined) {
|
|
4757
|
-
method = 'sapiGetMarginOrder';
|
|
4758
|
-
if (marginMode === 'isolated') {
|
|
4759
|
-
request['isIsolated'] = true;
|
|
4760
|
-
}
|
|
4761
|
-
}
|
|
4762
4749
|
const clientOrderId = this.safeValue2(params, 'origClientOrderId', 'clientOrderId');
|
|
4763
4750
|
if (clientOrderId !== undefined) {
|
|
4764
4751
|
if (market['option']) {
|
|
@@ -4772,7 +4759,25 @@ class binance extends binance$1 {
|
|
|
4772
4759
|
request['orderId'] = id;
|
|
4773
4760
|
}
|
|
4774
4761
|
const requestParams = this.omit(query, ['type', 'clientOrderId', 'origClientOrderId']);
|
|
4775
|
-
|
|
4762
|
+
let response = undefined;
|
|
4763
|
+
if (market['option']) {
|
|
4764
|
+
response = await this.eapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4765
|
+
}
|
|
4766
|
+
else if (market['linear']) {
|
|
4767
|
+
response = await this.fapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4768
|
+
}
|
|
4769
|
+
else if (market['inverse']) {
|
|
4770
|
+
response = await this.dapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4771
|
+
}
|
|
4772
|
+
else if (type === 'margin' || marginMode !== undefined) {
|
|
4773
|
+
if (marginMode === 'isolated') {
|
|
4774
|
+
request['isIsolated'] = true;
|
|
4775
|
+
}
|
|
4776
|
+
response = await this.sapiGetMarginOrder(this.extend(request, requestParams));
|
|
4777
|
+
}
|
|
4778
|
+
else {
|
|
4779
|
+
response = await this.privateGetOrder(this.extend(request, requestParams));
|
|
4780
|
+
}
|
|
4776
4781
|
return this.parseOrder(response, market);
|
|
4777
4782
|
}
|
|
4778
4783
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -4810,34 +4815,36 @@ class binance extends binance$1 {
|
|
|
4810
4815
|
const request = {
|
|
4811
4816
|
'symbol': market['id'],
|
|
4812
4817
|
};
|
|
4813
|
-
|
|
4818
|
+
const until = this.safeInteger(params, 'until');
|
|
4819
|
+
if (until !== undefined) {
|
|
4820
|
+
params = this.omit(params, 'until');
|
|
4821
|
+
request['endTime'] = until;
|
|
4822
|
+
}
|
|
4823
|
+
if (since !== undefined) {
|
|
4824
|
+
request['startTime'] = since;
|
|
4825
|
+
}
|
|
4826
|
+
if (limit !== undefined) {
|
|
4827
|
+
request['limit'] = limit;
|
|
4828
|
+
}
|
|
4829
|
+
let response = undefined;
|
|
4814
4830
|
if (market['option']) {
|
|
4815
|
-
|
|
4831
|
+
response = await this.eapiPrivateGetHistoryOrders(this.extend(request, query));
|
|
4816
4832
|
}
|
|
4817
4833
|
else if (market['linear']) {
|
|
4818
|
-
|
|
4834
|
+
response = await this.fapiPrivateGetAllOrders(this.extend(request, query));
|
|
4819
4835
|
}
|
|
4820
4836
|
else if (market['inverse']) {
|
|
4821
|
-
|
|
4837
|
+
response = await this.dapiPrivateGetAllOrders(this.extend(request, query));
|
|
4822
4838
|
}
|
|
4823
4839
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
4824
|
-
method = 'sapiGetMarginAllOrders';
|
|
4825
4840
|
if (marginMode === 'isolated') {
|
|
4826
4841
|
request['isIsolated'] = true;
|
|
4827
4842
|
}
|
|
4843
|
+
response = await this.sapiGetMarginAllOrders(this.extend(request, query));
|
|
4828
4844
|
}
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
params = this.omit(params, 'until');
|
|
4832
|
-
request['endTime'] = until;
|
|
4833
|
-
}
|
|
4834
|
-
if (since !== undefined) {
|
|
4835
|
-
request['startTime'] = since;
|
|
4836
|
-
}
|
|
4837
|
-
if (limit !== undefined) {
|
|
4838
|
-
request['limit'] = limit;
|
|
4845
|
+
else {
|
|
4846
|
+
response = await this.privateGetAllOrders(this.extend(request, query));
|
|
4839
4847
|
}
|
|
4840
|
-
const response = await this[method](this.extend(request, query));
|
|
4841
4848
|
//
|
|
4842
4849
|
// spot
|
|
4843
4850
|
//
|
|
@@ -4962,32 +4969,34 @@ class binance extends binance$1 {
|
|
|
4962
4969
|
let subType = undefined;
|
|
4963
4970
|
[subType, query] = this.handleSubTypeAndParams('fetchOpenOrders', market, query);
|
|
4964
4971
|
const requestParams = this.omit(query, 'type');
|
|
4965
|
-
let
|
|
4972
|
+
let response = undefined;
|
|
4966
4973
|
if (type === 'option') {
|
|
4967
|
-
method = 'eapiPrivateGetOpenOrders';
|
|
4968
4974
|
if (since !== undefined) {
|
|
4969
4975
|
request['startTime'] = since;
|
|
4970
4976
|
}
|
|
4971
4977
|
if (limit !== undefined) {
|
|
4972
4978
|
request['limit'] = limit;
|
|
4973
4979
|
}
|
|
4980
|
+
response = await this.eapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4974
4981
|
}
|
|
4975
4982
|
else if (this.isLinear(type, subType)) {
|
|
4976
|
-
|
|
4983
|
+
response = await this.fapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4977
4984
|
}
|
|
4978
4985
|
else if (this.isInverse(type, subType)) {
|
|
4979
|
-
|
|
4986
|
+
response = await this.dapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4980
4987
|
}
|
|
4981
4988
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
4982
|
-
method = 'sapiGetMarginOpenOrders';
|
|
4983
4989
|
if (marginMode === 'isolated') {
|
|
4984
4990
|
request['isIsolated'] = true;
|
|
4985
4991
|
if (symbol === undefined) {
|
|
4986
4992
|
throw new errors.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument for isolated markets');
|
|
4987
4993
|
}
|
|
4988
4994
|
}
|
|
4995
|
+
response = await this.sapiGetMarginOpenOrders(this.extend(request, requestParams));
|
|
4996
|
+
}
|
|
4997
|
+
else {
|
|
4998
|
+
response = await this.privateGetOpenOrders(this.extend(request, requestParams));
|
|
4989
4999
|
}
|
|
4990
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
4991
5000
|
return this.parseOrders(response, market, since, limit);
|
|
4992
5001
|
}
|
|
4993
5002
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -5078,24 +5087,26 @@ class binance extends binance$1 {
|
|
|
5078
5087
|
else {
|
|
5079
5088
|
request['orderId'] = id;
|
|
5080
5089
|
}
|
|
5081
|
-
|
|
5090
|
+
const requestParams = this.omit(query, ['type', 'origClientOrderId', 'clientOrderId']);
|
|
5091
|
+
let response = undefined;
|
|
5082
5092
|
if (market['option']) {
|
|
5083
|
-
|
|
5093
|
+
response = await this.eapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5084
5094
|
}
|
|
5085
5095
|
else if (market['linear']) {
|
|
5086
|
-
|
|
5096
|
+
response = await this.fapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5087
5097
|
}
|
|
5088
5098
|
else if (market['inverse']) {
|
|
5089
|
-
|
|
5099
|
+
response = await this.dapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5090
5100
|
}
|
|
5091
5101
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
5092
|
-
method = 'sapiDeleteMarginOrder';
|
|
5093
5102
|
if (marginMode === 'isolated') {
|
|
5094
5103
|
request['isIsolated'] = true;
|
|
5095
5104
|
}
|
|
5105
|
+
response = await this.sapiDeleteMarginOrder(this.extend(request, requestParams));
|
|
5106
|
+
}
|
|
5107
|
+
else {
|
|
5108
|
+
response = await this.privateDeleteOrder(this.extend(request, requestParams));
|
|
5096
5109
|
}
|
|
5097
|
-
const requestParams = this.omit(query, ['type', 'origClientOrderId', 'clientOrderId']);
|
|
5098
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
5099
5110
|
return this.parseOrder(response, market);
|
|
5100
5111
|
}
|
|
5101
5112
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -5124,23 +5135,25 @@ class binance extends binance$1 {
|
|
|
5124
5135
|
const type = this.safeString(params, 'type', market['type']);
|
|
5125
5136
|
params = this.omit(params, ['type']);
|
|
5126
5137
|
const [marginMode, query] = this.handleMarginModeAndParams('cancelAllOrders', params);
|
|
5127
|
-
let
|
|
5138
|
+
let response = undefined;
|
|
5128
5139
|
if (market['option']) {
|
|
5129
|
-
|
|
5140
|
+
response = await this.eapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5130
5141
|
}
|
|
5131
5142
|
else if (market['linear']) {
|
|
5132
|
-
|
|
5143
|
+
response = await this.fapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5133
5144
|
}
|
|
5134
5145
|
else if (market['inverse']) {
|
|
5135
|
-
|
|
5146
|
+
response = await this.dapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5136
5147
|
}
|
|
5137
5148
|
else if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5138
|
-
method = 'sapiDeleteMarginOpenOrders';
|
|
5139
5149
|
if (marginMode === 'isolated') {
|
|
5140
5150
|
request['isIsolated'] = true;
|
|
5141
5151
|
}
|
|
5152
|
+
response = await this.sapiDeleteMarginOpenOrders(this.extend(request, query));
|
|
5153
|
+
}
|
|
5154
|
+
else {
|
|
5155
|
+
response = await this.privateDeleteOpenOrders(this.extend(request, query));
|
|
5142
5156
|
}
|
|
5143
|
-
const response = await this[method](this.extend(request, query));
|
|
5144
5157
|
if (Array.isArray(response)) {
|
|
5145
5158
|
return this.parseOrders(response, market);
|
|
5146
5159
|
}
|
|
@@ -5277,37 +5290,12 @@ class binance extends binance$1 {
|
|
|
5277
5290
|
const request = {};
|
|
5278
5291
|
let market = undefined;
|
|
5279
5292
|
let type = undefined;
|
|
5280
|
-
let method = undefined;
|
|
5281
5293
|
let marginMode = undefined;
|
|
5282
5294
|
if (symbol !== undefined) {
|
|
5283
5295
|
market = this.market(symbol);
|
|
5284
5296
|
request['symbol'] = market['id'];
|
|
5285
5297
|
}
|
|
5286
5298
|
[type, params] = this.handleMarketTypeAndParams('fetchMyTrades', market, params);
|
|
5287
|
-
if (type === 'option') {
|
|
5288
|
-
method = 'eapiPrivateGetUserTrades';
|
|
5289
|
-
}
|
|
5290
|
-
else {
|
|
5291
|
-
if (symbol === undefined) {
|
|
5292
|
-
throw new errors.ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
|
|
5293
|
-
}
|
|
5294
|
-
[marginMode, params] = this.handleMarginModeAndParams('fetchMyTrades', params);
|
|
5295
|
-
if (type === 'spot' || type === 'margin') {
|
|
5296
|
-
method = 'privateGetMyTrades';
|
|
5297
|
-
if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5298
|
-
method = 'sapiGetMarginMyTrades';
|
|
5299
|
-
if (marginMode === 'isolated') {
|
|
5300
|
-
request['isIsolated'] = true;
|
|
5301
|
-
}
|
|
5302
|
-
}
|
|
5303
|
-
}
|
|
5304
|
-
else if (market['linear']) {
|
|
5305
|
-
method = 'fapiPrivateGetUserTrades';
|
|
5306
|
-
}
|
|
5307
|
-
else if (market['inverse']) {
|
|
5308
|
-
method = 'dapiPrivateGetUserTrades';
|
|
5309
|
-
}
|
|
5310
|
-
}
|
|
5311
5299
|
let endTime = this.safeInteger2(params, 'until', 'endTime');
|
|
5312
5300
|
if (since !== undefined) {
|
|
5313
5301
|
const startTime = since;
|
|
@@ -5335,7 +5323,33 @@ class binance extends binance$1 {
|
|
|
5335
5323
|
}
|
|
5336
5324
|
request['limit'] = limit;
|
|
5337
5325
|
}
|
|
5338
|
-
|
|
5326
|
+
let response = undefined;
|
|
5327
|
+
if (type === 'option') {
|
|
5328
|
+
response = await this.eapiPrivateGetUserTrades(this.extend(request, params));
|
|
5329
|
+
}
|
|
5330
|
+
else {
|
|
5331
|
+
if (symbol === undefined) {
|
|
5332
|
+
throw new errors.ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
|
|
5333
|
+
}
|
|
5334
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchMyTrades', params);
|
|
5335
|
+
if (type === 'spot' || type === 'margin') {
|
|
5336
|
+
if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5337
|
+
if (marginMode === 'isolated') {
|
|
5338
|
+
request['isIsolated'] = true;
|
|
5339
|
+
}
|
|
5340
|
+
response = await this.sapiGetMarginMyTrades(this.extend(request, params));
|
|
5341
|
+
}
|
|
5342
|
+
else {
|
|
5343
|
+
response = await this.privateGetMyTrades(this.extend(request, params));
|
|
5344
|
+
}
|
|
5345
|
+
}
|
|
5346
|
+
else if (market['linear']) {
|
|
5347
|
+
response = await this.fapiPrivateGetUserTrades(this.extend(request, params));
|
|
5348
|
+
}
|
|
5349
|
+
else if (market['inverse']) {
|
|
5350
|
+
response = await this.dapiPrivateGetUserTrades(this.extend(request, params));
|
|
5351
|
+
}
|
|
5352
|
+
}
|
|
5339
5353
|
//
|
|
5340
5354
|
// spot trade
|
|
5341
5355
|
//
|
|
@@ -6665,7 +6679,6 @@ class binance extends binance$1 {
|
|
|
6665
6679
|
* @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
|
|
6666
6680
|
*/
|
|
6667
6681
|
await this.loadMarkets();
|
|
6668
|
-
let method = undefined;
|
|
6669
6682
|
let type = undefined;
|
|
6670
6683
|
[type, params] = this.handleMarketTypeAndParams('fetchTradingFees', undefined, params);
|
|
6671
6684
|
let subType = undefined;
|
|
@@ -6673,16 +6686,16 @@ class binance extends binance$1 {
|
|
|
6673
6686
|
const isSpotOrMargin = (type === 'spot') || (type === 'margin');
|
|
6674
6687
|
const isLinear = this.isLinear(type, subType);
|
|
6675
6688
|
const isInverse = this.isInverse(type, subType);
|
|
6689
|
+
let response = undefined;
|
|
6676
6690
|
if (isSpotOrMargin) {
|
|
6677
|
-
|
|
6691
|
+
response = await this.sapiGetAssetTradeFee(params);
|
|
6678
6692
|
}
|
|
6679
6693
|
else if (isLinear) {
|
|
6680
|
-
|
|
6694
|
+
response = await this.fapiPrivateV2GetAccount(params);
|
|
6681
6695
|
}
|
|
6682
6696
|
else if (isInverse) {
|
|
6683
|
-
|
|
6697
|
+
response = await this.dapiPrivateGetAccount(params);
|
|
6684
6698
|
}
|
|
6685
|
-
const response = await this[method](params);
|
|
6686
6699
|
//
|
|
6687
6700
|
// sapi / spot
|
|
6688
6701
|
//
|
|
@@ -6880,17 +6893,16 @@ class binance extends binance$1 {
|
|
|
6880
6893
|
const request = {
|
|
6881
6894
|
'symbol': market['id'],
|
|
6882
6895
|
};
|
|
6883
|
-
let
|
|
6896
|
+
let response = undefined;
|
|
6884
6897
|
if (market['linear']) {
|
|
6885
|
-
|
|
6898
|
+
response = await this.fapiPublicGetPremiumIndex(this.extend(request, params));
|
|
6886
6899
|
}
|
|
6887
6900
|
else if (market['inverse']) {
|
|
6888
|
-
|
|
6901
|
+
response = await this.dapiPublicGetPremiumIndex(this.extend(request, params));
|
|
6889
6902
|
}
|
|
6890
6903
|
else {
|
|
6891
6904
|
throw new errors.NotSupported(this.id + ' fetchFundingRate() supports linear and inverse contracts only');
|
|
6892
6905
|
}
|
|
6893
|
-
let response = await this[method](this.extend(request, params));
|
|
6894
6906
|
if (market['inverse']) {
|
|
6895
6907
|
response = response[0];
|
|
6896
6908
|
}
|
|
@@ -7528,20 +7540,20 @@ class binance extends binance$1 {
|
|
|
7528
7540
|
* @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
|
|
7529
7541
|
*/
|
|
7530
7542
|
await this.loadMarkets();
|
|
7531
|
-
|
|
7543
|
+
let type = undefined;
|
|
7544
|
+
[type, params] = this.handleMarketTypeAndParams('fetchLeverageTiers', undefined, params);
|
|
7532
7545
|
let subType = undefined;
|
|
7533
|
-
[subType, params] = this.handleSubTypeAndParams('fetchLeverageTiers', undefined,
|
|
7534
|
-
let
|
|
7546
|
+
[subType, params] = this.handleSubTypeAndParams('fetchLeverageTiers', undefined, params, 'linear');
|
|
7547
|
+
let response = undefined;
|
|
7535
7548
|
if (this.isLinear(type, subType)) {
|
|
7536
|
-
|
|
7549
|
+
response = await this.fapiPrivateGetLeverageBracket(params);
|
|
7537
7550
|
}
|
|
7538
7551
|
else if (this.isInverse(type, subType)) {
|
|
7539
|
-
|
|
7552
|
+
response = await this.dapiPrivateV2GetLeverageBracket(params);
|
|
7540
7553
|
}
|
|
7541
7554
|
else {
|
|
7542
7555
|
throw new errors.NotSupported(this.id + ' fetchLeverageTiers() supports linear and inverse contracts only');
|
|
7543
7556
|
}
|
|
7544
|
-
const response = await this[method](query);
|
|
7545
7557
|
//
|
|
7546
7558
|
// usdm
|
|
7547
7559
|
//
|
|
@@ -8015,21 +8027,21 @@ class binance extends binance$1 {
|
|
|
8015
8027
|
}
|
|
8016
8028
|
await this.loadMarkets();
|
|
8017
8029
|
const market = this.market(symbol);
|
|
8018
|
-
|
|
8030
|
+
const request = {
|
|
8031
|
+
'symbol': market['id'],
|
|
8032
|
+
'leverage': leverage,
|
|
8033
|
+
};
|
|
8034
|
+
let response = undefined;
|
|
8019
8035
|
if (market['linear']) {
|
|
8020
|
-
|
|
8036
|
+
response = await this.fapiPrivatePostLeverage(this.extend(request, params));
|
|
8021
8037
|
}
|
|
8022
8038
|
else if (market['inverse']) {
|
|
8023
|
-
|
|
8039
|
+
response = await this.dapiPrivatePostLeverage(this.extend(request, params));
|
|
8024
8040
|
}
|
|
8025
8041
|
else {
|
|
8026
8042
|
throw new errors.NotSupported(this.id + ' setLeverage() supports linear and inverse contracts only');
|
|
8027
8043
|
}
|
|
8028
|
-
|
|
8029
|
-
'symbol': market['id'],
|
|
8030
|
-
'leverage': leverage,
|
|
8031
|
-
};
|
|
8032
|
-
return await this[method](this.extend(request, params));
|
|
8044
|
+
return response;
|
|
8033
8045
|
}
|
|
8034
8046
|
async setMarginMode(marginMode, symbol = undefined, params = {}) {
|
|
8035
8047
|
/**
|
|
@@ -8062,23 +8074,21 @@ class binance extends binance$1 {
|
|
|
8062
8074
|
}
|
|
8063
8075
|
await this.loadMarkets();
|
|
8064
8076
|
const market = this.market(symbol);
|
|
8065
|
-
let method = undefined;
|
|
8066
|
-
if (market['linear']) {
|
|
8067
|
-
method = 'fapiPrivatePostMarginType';
|
|
8068
|
-
}
|
|
8069
|
-
else if (market['inverse']) {
|
|
8070
|
-
method = 'dapiPrivatePostMarginType';
|
|
8071
|
-
}
|
|
8072
|
-
else {
|
|
8073
|
-
throw new errors.NotSupported(this.id + ' setMarginMode() supports linear and inverse contracts only');
|
|
8074
|
-
}
|
|
8075
8077
|
const request = {
|
|
8076
8078
|
'symbol': market['id'],
|
|
8077
8079
|
'marginType': marginMode,
|
|
8078
8080
|
};
|
|
8079
8081
|
let response = undefined;
|
|
8080
8082
|
try {
|
|
8081
|
-
|
|
8083
|
+
if (market['linear']) {
|
|
8084
|
+
response = await this.fapiPrivatePostMarginType(this.extend(request, params));
|
|
8085
|
+
}
|
|
8086
|
+
else if (market['inverse']) {
|
|
8087
|
+
response = await this.dapiPrivatePostMarginType(this.extend(request, params));
|
|
8088
|
+
}
|
|
8089
|
+
else {
|
|
8090
|
+
throw new errors.NotSupported(this.id + ' setMarginMode() supports linear and inverse contracts only');
|
|
8091
|
+
}
|
|
8082
8092
|
}
|
|
8083
8093
|
catch (e) {
|
|
8084
8094
|
// not an error
|