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/js/src/binance.js
CHANGED
|
@@ -2568,24 +2568,23 @@ export default class binance extends Exchange {
|
|
|
2568
2568
|
let type = this.safeString(params, 'type', defaultType);
|
|
2569
2569
|
let subType = undefined;
|
|
2570
2570
|
[subType, params] = this.handleSubTypeAndParams('fetchBalance', undefined, params);
|
|
2571
|
-
|
|
2572
|
-
let
|
|
2571
|
+
let marginMode = undefined;
|
|
2572
|
+
let query = undefined;
|
|
2573
|
+
[marginMode, query] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
2574
|
+
query = this.omit(query, 'type');
|
|
2575
|
+
let response = undefined;
|
|
2573
2576
|
const request = {};
|
|
2574
2577
|
if (this.isLinear(type, subType)) {
|
|
2575
|
-
const options = this.safeValue(this.options, type, {});
|
|
2576
|
-
const fetchBalanceOptions = this.safeValue(options, 'fetchBalance', {});
|
|
2577
|
-
method = this.safeString(fetchBalanceOptions, 'method', 'fapiPrivateV2GetAccount');
|
|
2578
2578
|
type = 'linear';
|
|
2579
|
+
response = await this.fapiPrivateV2GetAccount(this.extend(request, query));
|
|
2579
2580
|
}
|
|
2580
2581
|
else if (this.isInverse(type, subType)) {
|
|
2581
|
-
const options = this.safeValue(this.options, type, {});
|
|
2582
|
-
const fetchBalanceOptions = this.safeValue(options, 'fetchBalance', {});
|
|
2583
|
-
method = this.safeString(fetchBalanceOptions, 'method', 'dapiPrivateGetAccount');
|
|
2584
2582
|
type = 'inverse';
|
|
2583
|
+
response = await this.dapiPrivateGetAccount(this.extend(request, query));
|
|
2585
2584
|
}
|
|
2586
2585
|
else if (marginMode === 'isolated') {
|
|
2587
|
-
method = 'sapiGetMarginIsolatedAccount';
|
|
2588
2586
|
const paramSymbols = this.safeValue(params, 'symbols');
|
|
2587
|
+
query = this.omit(query, 'symbols');
|
|
2589
2588
|
if (paramSymbols !== undefined) {
|
|
2590
2589
|
let symbols = '';
|
|
2591
2590
|
if (Array.isArray(paramSymbols)) {
|
|
@@ -2601,18 +2600,20 @@ export default class binance extends Exchange {
|
|
|
2601
2600
|
}
|
|
2602
2601
|
request['symbols'] = symbols;
|
|
2603
2602
|
}
|
|
2603
|
+
response = await this.sapiGetMarginIsolatedAccount(this.extend(request, query));
|
|
2604
2604
|
}
|
|
2605
2605
|
else if ((type === 'margin') || (marginMode === 'cross')) {
|
|
2606
|
-
|
|
2606
|
+
response = await this.sapiGetMarginAccount(this.extend(request, query));
|
|
2607
2607
|
}
|
|
2608
2608
|
else if (type === 'savings') {
|
|
2609
|
-
|
|
2609
|
+
response = await this.sapiGetLendingUnionAccount(this.extend(request, query));
|
|
2610
2610
|
}
|
|
2611
2611
|
else if (type === 'funding') {
|
|
2612
|
-
|
|
2612
|
+
response = await this.sapiPostAssetGetFundingAsset(this.extend(request, query));
|
|
2613
|
+
}
|
|
2614
|
+
else {
|
|
2615
|
+
response = await this.privateGetAccount(this.extend(request, query));
|
|
2613
2616
|
}
|
|
2614
|
-
const requestParams = this.omit(query, ['type', 'symbols']);
|
|
2615
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
2616
2617
|
//
|
|
2617
2618
|
// spot
|
|
2618
2619
|
//
|
|
@@ -3304,33 +3305,35 @@ export default class binance extends Exchange {
|
|
|
3304
3305
|
if (until !== undefined) {
|
|
3305
3306
|
request['endTime'] = until;
|
|
3306
3307
|
}
|
|
3307
|
-
let
|
|
3308
|
+
let response = undefined;
|
|
3308
3309
|
if (market['option']) {
|
|
3309
|
-
|
|
3310
|
+
response = await this.eapiPublicGetKlines(this.extend(request, params));
|
|
3310
3311
|
}
|
|
3311
3312
|
else if (price === 'mark') {
|
|
3312
3313
|
if (market['inverse']) {
|
|
3313
|
-
|
|
3314
|
+
response = await this.dapiPublicGetMarkPriceKlines(this.extend(request, params));
|
|
3314
3315
|
}
|
|
3315
3316
|
else {
|
|
3316
|
-
|
|
3317
|
+
response = await this.fapiPublicGetMarkPriceKlines(this.extend(request, params));
|
|
3317
3318
|
}
|
|
3318
3319
|
}
|
|
3319
3320
|
else if (price === 'index') {
|
|
3320
3321
|
if (market['inverse']) {
|
|
3321
|
-
|
|
3322
|
+
response = await this.dapiPublicGetIndexPriceKlines(this.extend(request, params));
|
|
3322
3323
|
}
|
|
3323
3324
|
else {
|
|
3324
|
-
|
|
3325
|
+
response = await this.fapiPublicGetIndexPriceKlines(this.extend(request, params));
|
|
3325
3326
|
}
|
|
3326
3327
|
}
|
|
3327
3328
|
else if (market['linear']) {
|
|
3328
|
-
|
|
3329
|
+
response = await this.fapiPublicGetKlines(this.extend(request, params));
|
|
3329
3330
|
}
|
|
3330
3331
|
else if (market['inverse']) {
|
|
3331
|
-
|
|
3332
|
+
response = await this.dapiPublicGetKlines(this.extend(request, params));
|
|
3333
|
+
}
|
|
3334
|
+
else {
|
|
3335
|
+
response = await this.publicGetKlines(this.extend(request, params));
|
|
3332
3336
|
}
|
|
3333
|
-
const response = await this[method](this.extend(request, params));
|
|
3334
3337
|
//
|
|
3335
3338
|
// [
|
|
3336
3339
|
// [1591478520000,"0.02501300","0.02501800","0.02500000","0.02500000","22.19000000",1591478579999,"0.55490906",40,"10.92900000","0.27336462","0"],
|
|
@@ -4746,22 +4749,6 @@ export default class binance extends Exchange {
|
|
|
4746
4749
|
const request = {
|
|
4747
4750
|
'symbol': market['id'],
|
|
4748
4751
|
};
|
|
4749
|
-
let method = 'privateGetOrder';
|
|
4750
|
-
if (market['option']) {
|
|
4751
|
-
method = 'eapiPrivateGetOrder';
|
|
4752
|
-
}
|
|
4753
|
-
else if (market['linear']) {
|
|
4754
|
-
method = 'fapiPrivateGetOrder';
|
|
4755
|
-
}
|
|
4756
|
-
else if (market['inverse']) {
|
|
4757
|
-
method = 'dapiPrivateGetOrder';
|
|
4758
|
-
}
|
|
4759
|
-
else if (type === 'margin' || marginMode !== undefined) {
|
|
4760
|
-
method = 'sapiGetMarginOrder';
|
|
4761
|
-
if (marginMode === 'isolated') {
|
|
4762
|
-
request['isIsolated'] = true;
|
|
4763
|
-
}
|
|
4764
|
-
}
|
|
4765
4752
|
const clientOrderId = this.safeValue2(params, 'origClientOrderId', 'clientOrderId');
|
|
4766
4753
|
if (clientOrderId !== undefined) {
|
|
4767
4754
|
if (market['option']) {
|
|
@@ -4775,7 +4762,25 @@ export default class binance extends Exchange {
|
|
|
4775
4762
|
request['orderId'] = id;
|
|
4776
4763
|
}
|
|
4777
4764
|
const requestParams = this.omit(query, ['type', 'clientOrderId', 'origClientOrderId']);
|
|
4778
|
-
|
|
4765
|
+
let response = undefined;
|
|
4766
|
+
if (market['option']) {
|
|
4767
|
+
response = await this.eapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4768
|
+
}
|
|
4769
|
+
else if (market['linear']) {
|
|
4770
|
+
response = await this.fapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4771
|
+
}
|
|
4772
|
+
else if (market['inverse']) {
|
|
4773
|
+
response = await this.dapiPrivateGetOrder(this.extend(request, requestParams));
|
|
4774
|
+
}
|
|
4775
|
+
else if (type === 'margin' || marginMode !== undefined) {
|
|
4776
|
+
if (marginMode === 'isolated') {
|
|
4777
|
+
request['isIsolated'] = true;
|
|
4778
|
+
}
|
|
4779
|
+
response = await this.sapiGetMarginOrder(this.extend(request, requestParams));
|
|
4780
|
+
}
|
|
4781
|
+
else {
|
|
4782
|
+
response = await this.privateGetOrder(this.extend(request, requestParams));
|
|
4783
|
+
}
|
|
4779
4784
|
return this.parseOrder(response, market);
|
|
4780
4785
|
}
|
|
4781
4786
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -4813,34 +4818,36 @@ export default class binance extends Exchange {
|
|
|
4813
4818
|
const request = {
|
|
4814
4819
|
'symbol': market['id'],
|
|
4815
4820
|
};
|
|
4816
|
-
|
|
4821
|
+
const until = this.safeInteger(params, 'until');
|
|
4822
|
+
if (until !== undefined) {
|
|
4823
|
+
params = this.omit(params, 'until');
|
|
4824
|
+
request['endTime'] = until;
|
|
4825
|
+
}
|
|
4826
|
+
if (since !== undefined) {
|
|
4827
|
+
request['startTime'] = since;
|
|
4828
|
+
}
|
|
4829
|
+
if (limit !== undefined) {
|
|
4830
|
+
request['limit'] = limit;
|
|
4831
|
+
}
|
|
4832
|
+
let response = undefined;
|
|
4817
4833
|
if (market['option']) {
|
|
4818
|
-
|
|
4834
|
+
response = await this.eapiPrivateGetHistoryOrders(this.extend(request, query));
|
|
4819
4835
|
}
|
|
4820
4836
|
else if (market['linear']) {
|
|
4821
|
-
|
|
4837
|
+
response = await this.fapiPrivateGetAllOrders(this.extend(request, query));
|
|
4822
4838
|
}
|
|
4823
4839
|
else if (market['inverse']) {
|
|
4824
|
-
|
|
4840
|
+
response = await this.dapiPrivateGetAllOrders(this.extend(request, query));
|
|
4825
4841
|
}
|
|
4826
4842
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
4827
|
-
method = 'sapiGetMarginAllOrders';
|
|
4828
4843
|
if (marginMode === 'isolated') {
|
|
4829
4844
|
request['isIsolated'] = true;
|
|
4830
4845
|
}
|
|
4846
|
+
response = await this.sapiGetMarginAllOrders(this.extend(request, query));
|
|
4831
4847
|
}
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
params = this.omit(params, 'until');
|
|
4835
|
-
request['endTime'] = until;
|
|
4836
|
-
}
|
|
4837
|
-
if (since !== undefined) {
|
|
4838
|
-
request['startTime'] = since;
|
|
4839
|
-
}
|
|
4840
|
-
if (limit !== undefined) {
|
|
4841
|
-
request['limit'] = limit;
|
|
4848
|
+
else {
|
|
4849
|
+
response = await this.privateGetAllOrders(this.extend(request, query));
|
|
4842
4850
|
}
|
|
4843
|
-
const response = await this[method](this.extend(request, query));
|
|
4844
4851
|
//
|
|
4845
4852
|
// spot
|
|
4846
4853
|
//
|
|
@@ -4965,32 +4972,34 @@ export default class binance extends Exchange {
|
|
|
4965
4972
|
let subType = undefined;
|
|
4966
4973
|
[subType, query] = this.handleSubTypeAndParams('fetchOpenOrders', market, query);
|
|
4967
4974
|
const requestParams = this.omit(query, 'type');
|
|
4968
|
-
let
|
|
4975
|
+
let response = undefined;
|
|
4969
4976
|
if (type === 'option') {
|
|
4970
|
-
method = 'eapiPrivateGetOpenOrders';
|
|
4971
4977
|
if (since !== undefined) {
|
|
4972
4978
|
request['startTime'] = since;
|
|
4973
4979
|
}
|
|
4974
4980
|
if (limit !== undefined) {
|
|
4975
4981
|
request['limit'] = limit;
|
|
4976
4982
|
}
|
|
4983
|
+
response = await this.eapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4977
4984
|
}
|
|
4978
4985
|
else if (this.isLinear(type, subType)) {
|
|
4979
|
-
|
|
4986
|
+
response = await this.fapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4980
4987
|
}
|
|
4981
4988
|
else if (this.isInverse(type, subType)) {
|
|
4982
|
-
|
|
4989
|
+
response = await this.dapiPrivateGetOpenOrders(this.extend(request, requestParams));
|
|
4983
4990
|
}
|
|
4984
4991
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
4985
|
-
method = 'sapiGetMarginOpenOrders';
|
|
4986
4992
|
if (marginMode === 'isolated') {
|
|
4987
4993
|
request['isIsolated'] = true;
|
|
4988
4994
|
if (symbol === undefined) {
|
|
4989
4995
|
throw new ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument for isolated markets');
|
|
4990
4996
|
}
|
|
4991
4997
|
}
|
|
4998
|
+
response = await this.sapiGetMarginOpenOrders(this.extend(request, requestParams));
|
|
4999
|
+
}
|
|
5000
|
+
else {
|
|
5001
|
+
response = await this.privateGetOpenOrders(this.extend(request, requestParams));
|
|
4992
5002
|
}
|
|
4993
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
4994
5003
|
return this.parseOrders(response, market, since, limit);
|
|
4995
5004
|
}
|
|
4996
5005
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -5081,24 +5090,26 @@ export default class binance extends Exchange {
|
|
|
5081
5090
|
else {
|
|
5082
5091
|
request['orderId'] = id;
|
|
5083
5092
|
}
|
|
5084
|
-
|
|
5093
|
+
const requestParams = this.omit(query, ['type', 'origClientOrderId', 'clientOrderId']);
|
|
5094
|
+
let response = undefined;
|
|
5085
5095
|
if (market['option']) {
|
|
5086
|
-
|
|
5096
|
+
response = await this.eapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5087
5097
|
}
|
|
5088
5098
|
else if (market['linear']) {
|
|
5089
|
-
|
|
5099
|
+
response = await this.fapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5090
5100
|
}
|
|
5091
5101
|
else if (market['inverse']) {
|
|
5092
|
-
|
|
5102
|
+
response = await this.dapiPrivateDeleteOrder(this.extend(request, requestParams));
|
|
5093
5103
|
}
|
|
5094
5104
|
else if (type === 'margin' || marginMode !== undefined) {
|
|
5095
|
-
method = 'sapiDeleteMarginOrder';
|
|
5096
5105
|
if (marginMode === 'isolated') {
|
|
5097
5106
|
request['isIsolated'] = true;
|
|
5098
5107
|
}
|
|
5108
|
+
response = await this.sapiDeleteMarginOrder(this.extend(request, requestParams));
|
|
5109
|
+
}
|
|
5110
|
+
else {
|
|
5111
|
+
response = await this.privateDeleteOrder(this.extend(request, requestParams));
|
|
5099
5112
|
}
|
|
5100
|
-
const requestParams = this.omit(query, ['type', 'origClientOrderId', 'clientOrderId']);
|
|
5101
|
-
const response = await this[method](this.extend(request, requestParams));
|
|
5102
5113
|
return this.parseOrder(response, market);
|
|
5103
5114
|
}
|
|
5104
5115
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -5127,23 +5138,25 @@ export default class binance extends Exchange {
|
|
|
5127
5138
|
const type = this.safeString(params, 'type', market['type']);
|
|
5128
5139
|
params = this.omit(params, ['type']);
|
|
5129
5140
|
const [marginMode, query] = this.handleMarginModeAndParams('cancelAllOrders', params);
|
|
5130
|
-
let
|
|
5141
|
+
let response = undefined;
|
|
5131
5142
|
if (market['option']) {
|
|
5132
|
-
|
|
5143
|
+
response = await this.eapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5133
5144
|
}
|
|
5134
5145
|
else if (market['linear']) {
|
|
5135
|
-
|
|
5146
|
+
response = await this.fapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5136
5147
|
}
|
|
5137
5148
|
else if (market['inverse']) {
|
|
5138
|
-
|
|
5149
|
+
response = await this.dapiPrivateDeleteAllOpenOrders(this.extend(request, query));
|
|
5139
5150
|
}
|
|
5140
5151
|
else if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5141
|
-
method = 'sapiDeleteMarginOpenOrders';
|
|
5142
5152
|
if (marginMode === 'isolated') {
|
|
5143
5153
|
request['isIsolated'] = true;
|
|
5144
5154
|
}
|
|
5155
|
+
response = await this.sapiDeleteMarginOpenOrders(this.extend(request, query));
|
|
5156
|
+
}
|
|
5157
|
+
else {
|
|
5158
|
+
response = await this.privateDeleteOpenOrders(this.extend(request, query));
|
|
5145
5159
|
}
|
|
5146
|
-
const response = await this[method](this.extend(request, query));
|
|
5147
5160
|
if (Array.isArray(response)) {
|
|
5148
5161
|
return this.parseOrders(response, market);
|
|
5149
5162
|
}
|
|
@@ -5280,37 +5293,12 @@ export default class binance extends Exchange {
|
|
|
5280
5293
|
const request = {};
|
|
5281
5294
|
let market = undefined;
|
|
5282
5295
|
let type = undefined;
|
|
5283
|
-
let method = undefined;
|
|
5284
5296
|
let marginMode = undefined;
|
|
5285
5297
|
if (symbol !== undefined) {
|
|
5286
5298
|
market = this.market(symbol);
|
|
5287
5299
|
request['symbol'] = market['id'];
|
|
5288
5300
|
}
|
|
5289
5301
|
[type, params] = this.handleMarketTypeAndParams('fetchMyTrades', market, params);
|
|
5290
|
-
if (type === 'option') {
|
|
5291
|
-
method = 'eapiPrivateGetUserTrades';
|
|
5292
|
-
}
|
|
5293
|
-
else {
|
|
5294
|
-
if (symbol === undefined) {
|
|
5295
|
-
throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
|
|
5296
|
-
}
|
|
5297
|
-
[marginMode, params] = this.handleMarginModeAndParams('fetchMyTrades', params);
|
|
5298
|
-
if (type === 'spot' || type === 'margin') {
|
|
5299
|
-
method = 'privateGetMyTrades';
|
|
5300
|
-
if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5301
|
-
method = 'sapiGetMarginMyTrades';
|
|
5302
|
-
if (marginMode === 'isolated') {
|
|
5303
|
-
request['isIsolated'] = true;
|
|
5304
|
-
}
|
|
5305
|
-
}
|
|
5306
|
-
}
|
|
5307
|
-
else if (market['linear']) {
|
|
5308
|
-
method = 'fapiPrivateGetUserTrades';
|
|
5309
|
-
}
|
|
5310
|
-
else if (market['inverse']) {
|
|
5311
|
-
method = 'dapiPrivateGetUserTrades';
|
|
5312
|
-
}
|
|
5313
|
-
}
|
|
5314
5302
|
let endTime = this.safeInteger2(params, 'until', 'endTime');
|
|
5315
5303
|
if (since !== undefined) {
|
|
5316
5304
|
const startTime = since;
|
|
@@ -5338,7 +5326,33 @@ export default class binance extends Exchange {
|
|
|
5338
5326
|
}
|
|
5339
5327
|
request['limit'] = limit;
|
|
5340
5328
|
}
|
|
5341
|
-
|
|
5329
|
+
let response = undefined;
|
|
5330
|
+
if (type === 'option') {
|
|
5331
|
+
response = await this.eapiPrivateGetUserTrades(this.extend(request, params));
|
|
5332
|
+
}
|
|
5333
|
+
else {
|
|
5334
|
+
if (symbol === undefined) {
|
|
5335
|
+
throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
|
|
5336
|
+
}
|
|
5337
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchMyTrades', params);
|
|
5338
|
+
if (type === 'spot' || type === 'margin') {
|
|
5339
|
+
if ((type === 'margin') || (marginMode !== undefined)) {
|
|
5340
|
+
if (marginMode === 'isolated') {
|
|
5341
|
+
request['isIsolated'] = true;
|
|
5342
|
+
}
|
|
5343
|
+
response = await this.sapiGetMarginMyTrades(this.extend(request, params));
|
|
5344
|
+
}
|
|
5345
|
+
else {
|
|
5346
|
+
response = await this.privateGetMyTrades(this.extend(request, params));
|
|
5347
|
+
}
|
|
5348
|
+
}
|
|
5349
|
+
else if (market['linear']) {
|
|
5350
|
+
response = await this.fapiPrivateGetUserTrades(this.extend(request, params));
|
|
5351
|
+
}
|
|
5352
|
+
else if (market['inverse']) {
|
|
5353
|
+
response = await this.dapiPrivateGetUserTrades(this.extend(request, params));
|
|
5354
|
+
}
|
|
5355
|
+
}
|
|
5342
5356
|
//
|
|
5343
5357
|
// spot trade
|
|
5344
5358
|
//
|
|
@@ -6668,7 +6682,6 @@ export default class binance extends Exchange {
|
|
|
6668
6682
|
* @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
|
|
6669
6683
|
*/
|
|
6670
6684
|
await this.loadMarkets();
|
|
6671
|
-
let method = undefined;
|
|
6672
6685
|
let type = undefined;
|
|
6673
6686
|
[type, params] = this.handleMarketTypeAndParams('fetchTradingFees', undefined, params);
|
|
6674
6687
|
let subType = undefined;
|
|
@@ -6676,16 +6689,16 @@ export default class binance extends Exchange {
|
|
|
6676
6689
|
const isSpotOrMargin = (type === 'spot') || (type === 'margin');
|
|
6677
6690
|
const isLinear = this.isLinear(type, subType);
|
|
6678
6691
|
const isInverse = this.isInverse(type, subType);
|
|
6692
|
+
let response = undefined;
|
|
6679
6693
|
if (isSpotOrMargin) {
|
|
6680
|
-
|
|
6694
|
+
response = await this.sapiGetAssetTradeFee(params);
|
|
6681
6695
|
}
|
|
6682
6696
|
else if (isLinear) {
|
|
6683
|
-
|
|
6697
|
+
response = await this.fapiPrivateV2GetAccount(params);
|
|
6684
6698
|
}
|
|
6685
6699
|
else if (isInverse) {
|
|
6686
|
-
|
|
6700
|
+
response = await this.dapiPrivateGetAccount(params);
|
|
6687
6701
|
}
|
|
6688
|
-
const response = await this[method](params);
|
|
6689
6702
|
//
|
|
6690
6703
|
// sapi / spot
|
|
6691
6704
|
//
|
|
@@ -6883,17 +6896,16 @@ export default class binance extends Exchange {
|
|
|
6883
6896
|
const request = {
|
|
6884
6897
|
'symbol': market['id'],
|
|
6885
6898
|
};
|
|
6886
|
-
let
|
|
6899
|
+
let response = undefined;
|
|
6887
6900
|
if (market['linear']) {
|
|
6888
|
-
|
|
6901
|
+
response = await this.fapiPublicGetPremiumIndex(this.extend(request, params));
|
|
6889
6902
|
}
|
|
6890
6903
|
else if (market['inverse']) {
|
|
6891
|
-
|
|
6904
|
+
response = await this.dapiPublicGetPremiumIndex(this.extend(request, params));
|
|
6892
6905
|
}
|
|
6893
6906
|
else {
|
|
6894
6907
|
throw new NotSupported(this.id + ' fetchFundingRate() supports linear and inverse contracts only');
|
|
6895
6908
|
}
|
|
6896
|
-
let response = await this[method](this.extend(request, params));
|
|
6897
6909
|
if (market['inverse']) {
|
|
6898
6910
|
response = response[0];
|
|
6899
6911
|
}
|
|
@@ -7531,20 +7543,20 @@ export default class binance extends Exchange {
|
|
|
7531
7543
|
* @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
|
|
7532
7544
|
*/
|
|
7533
7545
|
await this.loadMarkets();
|
|
7534
|
-
|
|
7546
|
+
let type = undefined;
|
|
7547
|
+
[type, params] = this.handleMarketTypeAndParams('fetchLeverageTiers', undefined, params);
|
|
7535
7548
|
let subType = undefined;
|
|
7536
|
-
[subType, params] = this.handleSubTypeAndParams('fetchLeverageTiers', undefined,
|
|
7537
|
-
let
|
|
7549
|
+
[subType, params] = this.handleSubTypeAndParams('fetchLeverageTiers', undefined, params, 'linear');
|
|
7550
|
+
let response = undefined;
|
|
7538
7551
|
if (this.isLinear(type, subType)) {
|
|
7539
|
-
|
|
7552
|
+
response = await this.fapiPrivateGetLeverageBracket(params);
|
|
7540
7553
|
}
|
|
7541
7554
|
else if (this.isInverse(type, subType)) {
|
|
7542
|
-
|
|
7555
|
+
response = await this.dapiPrivateV2GetLeverageBracket(params);
|
|
7543
7556
|
}
|
|
7544
7557
|
else {
|
|
7545
7558
|
throw new NotSupported(this.id + ' fetchLeverageTiers() supports linear and inverse contracts only');
|
|
7546
7559
|
}
|
|
7547
|
-
const response = await this[method](query);
|
|
7548
7560
|
//
|
|
7549
7561
|
// usdm
|
|
7550
7562
|
//
|
|
@@ -8018,21 +8030,21 @@ export default class binance extends Exchange {
|
|
|
8018
8030
|
}
|
|
8019
8031
|
await this.loadMarkets();
|
|
8020
8032
|
const market = this.market(symbol);
|
|
8021
|
-
|
|
8033
|
+
const request = {
|
|
8034
|
+
'symbol': market['id'],
|
|
8035
|
+
'leverage': leverage,
|
|
8036
|
+
};
|
|
8037
|
+
let response = undefined;
|
|
8022
8038
|
if (market['linear']) {
|
|
8023
|
-
|
|
8039
|
+
response = await this.fapiPrivatePostLeverage(this.extend(request, params));
|
|
8024
8040
|
}
|
|
8025
8041
|
else if (market['inverse']) {
|
|
8026
|
-
|
|
8042
|
+
response = await this.dapiPrivatePostLeverage(this.extend(request, params));
|
|
8027
8043
|
}
|
|
8028
8044
|
else {
|
|
8029
8045
|
throw new NotSupported(this.id + ' setLeverage() supports linear and inverse contracts only');
|
|
8030
8046
|
}
|
|
8031
|
-
|
|
8032
|
-
'symbol': market['id'],
|
|
8033
|
-
'leverage': leverage,
|
|
8034
|
-
};
|
|
8035
|
-
return await this[method](this.extend(request, params));
|
|
8047
|
+
return response;
|
|
8036
8048
|
}
|
|
8037
8049
|
async setMarginMode(marginMode, symbol = undefined, params = {}) {
|
|
8038
8050
|
/**
|
|
@@ -8065,23 +8077,21 @@ export default class binance extends Exchange {
|
|
|
8065
8077
|
}
|
|
8066
8078
|
await this.loadMarkets();
|
|
8067
8079
|
const market = this.market(symbol);
|
|
8068
|
-
let method = undefined;
|
|
8069
|
-
if (market['linear']) {
|
|
8070
|
-
method = 'fapiPrivatePostMarginType';
|
|
8071
|
-
}
|
|
8072
|
-
else if (market['inverse']) {
|
|
8073
|
-
method = 'dapiPrivatePostMarginType';
|
|
8074
|
-
}
|
|
8075
|
-
else {
|
|
8076
|
-
throw new NotSupported(this.id + ' setMarginMode() supports linear and inverse contracts only');
|
|
8077
|
-
}
|
|
8078
8080
|
const request = {
|
|
8079
8081
|
'symbol': market['id'],
|
|
8080
8082
|
'marginType': marginMode,
|
|
8081
8083
|
};
|
|
8082
8084
|
let response = undefined;
|
|
8083
8085
|
try {
|
|
8084
|
-
|
|
8086
|
+
if (market['linear']) {
|
|
8087
|
+
response = await this.fapiPrivatePostMarginType(this.extend(request, params));
|
|
8088
|
+
}
|
|
8089
|
+
else if (market['inverse']) {
|
|
8090
|
+
response = await this.dapiPrivatePostMarginType(this.extend(request, params));
|
|
8091
|
+
}
|
|
8092
|
+
else {
|
|
8093
|
+
throw new NotSupported(this.id + ' setMarginMode() supports linear and inverse contracts only');
|
|
8094
|
+
}
|
|
8085
8095
|
}
|
|
8086
8096
|
catch (e) {
|
|
8087
8097
|
// not an error
|
package/js/src/bingx.d.ts
CHANGED
|
@@ -134,6 +134,7 @@ export default class bingx extends Exchange {
|
|
|
134
134
|
fetchMyLiquidations(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Liquidation[]>;
|
|
135
135
|
parseLiquidation(liquidation: any, market?: Market): import("./base/types.js").Liquidation;
|
|
136
136
|
closeAllPositions(params?: {}): Promise<Position[]>;
|
|
137
|
+
setPositionMode(hedged: any, symbol?: Str, params?: {}): Promise<any>;
|
|
137
138
|
sign(path: any, section?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
138
139
|
url: any;
|
|
139
140
|
method: string;
|
package/js/src/bingx.js
CHANGED
|
@@ -145,6 +145,16 @@ export default class bingx extends Exchange {
|
|
|
145
145
|
},
|
|
146
146
|
},
|
|
147
147
|
'swap': {
|
|
148
|
+
'v1': {
|
|
149
|
+
'private': {
|
|
150
|
+
'get': {
|
|
151
|
+
'positionSide/dual': 1,
|
|
152
|
+
},
|
|
153
|
+
'post': {
|
|
154
|
+
'positionSide/dual': 1,
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
},
|
|
148
158
|
'v2': {
|
|
149
159
|
'public': {
|
|
150
160
|
'get': {
|
|
@@ -331,6 +341,7 @@ export default class bingx extends Exchange {
|
|
|
331
341
|
'100202': InsufficientFunds,
|
|
332
342
|
'100204': BadRequest,
|
|
333
343
|
'100400': BadRequest,
|
|
344
|
+
'100421': BadSymbol,
|
|
334
345
|
'100440': ExchangeError,
|
|
335
346
|
'100500': ExchangeError,
|
|
336
347
|
'100503': ExchangeError,
|
|
@@ -1306,7 +1317,7 @@ export default class bingx extends Exchange {
|
|
|
1306
1317
|
// }
|
|
1307
1318
|
//
|
|
1308
1319
|
const marketId = this.safeString(ticker, 'symbol');
|
|
1309
|
-
const change = this.safeString(ticker, 'priceChange');
|
|
1320
|
+
// const change = this.safeString (ticker, 'priceChange'); // this is not ccxt's change because it does high-low instead of last-open
|
|
1310
1321
|
const lastQty = this.safeString(ticker, 'lastQty');
|
|
1311
1322
|
// in spot markets, lastQty is not present
|
|
1312
1323
|
// it's (bad, but) the only way we can check the tickers origin
|
|
@@ -1318,10 +1329,10 @@ export default class bingx extends Exchange {
|
|
|
1318
1329
|
const close = this.safeString(ticker, 'lastPrice');
|
|
1319
1330
|
const quoteVolume = this.safeString(ticker, 'quoteVolume');
|
|
1320
1331
|
const baseVolume = this.safeString(ticker, 'volume');
|
|
1321
|
-
let percentage = this.safeString(ticker, 'priceChangePercent');
|
|
1322
|
-
if (percentage !== undefined) {
|
|
1323
|
-
|
|
1324
|
-
}
|
|
1332
|
+
// let percentage = this.safeString (ticker, 'priceChangePercent');
|
|
1333
|
+
// if (percentage !== undefined) {
|
|
1334
|
+
// percentage = percentage.replace ('%', '');
|
|
1335
|
+
// } similarly to change, it's not ccxt's percentage because it does priceChange/open, and priceChange is high-low
|
|
1325
1336
|
const ts = this.safeInteger(ticker, 'closeTime');
|
|
1326
1337
|
const datetime = this.iso8601(ts);
|
|
1327
1338
|
const bid = this.safeString(ticker, 'bidPrice');
|
|
@@ -1343,8 +1354,8 @@ export default class bingx extends Exchange {
|
|
|
1343
1354
|
'close': close,
|
|
1344
1355
|
'last': undefined,
|
|
1345
1356
|
'previousClose': undefined,
|
|
1346
|
-
'change':
|
|
1347
|
-
'percentage':
|
|
1357
|
+
'change': undefined,
|
|
1358
|
+
'percentage': undefined,
|
|
1348
1359
|
'average': undefined,
|
|
1349
1360
|
'baseVolume': baseVolume,
|
|
1350
1361
|
'quoteVolume': quoteVolume,
|
|
@@ -2472,7 +2483,7 @@ export default class bingx extends Exchange {
|
|
|
2472
2483
|
* @see https://bingx-api.github.io/docs/#/standard/contract-interface.html#Historical%20order
|
|
2473
2484
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
2474
2485
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
2475
|
-
* @param {int} [limit] the maximum number of
|
|
2486
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
2476
2487
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2477
2488
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
2478
2489
|
* @param {boolean} [params.standard] whether to fetch standard contract orders
|
|
@@ -3415,6 +3426,37 @@ export default class bingx extends Exchange {
|
|
|
3415
3426
|
}
|
|
3416
3427
|
return positions;
|
|
3417
3428
|
}
|
|
3429
|
+
async setPositionMode(hedged, symbol = undefined, params = {}) {
|
|
3430
|
+
/**
|
|
3431
|
+
* @method
|
|
3432
|
+
* @name bingx#setPositionMode
|
|
3433
|
+
* @description set hedged to true or false for a market
|
|
3434
|
+
* @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Set%20Position%20Mode
|
|
3435
|
+
* @param {bool} hedged set to true to use dualSidePosition
|
|
3436
|
+
* @param {string} symbol not used by bingx setPositionMode ()
|
|
3437
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3438
|
+
* @returns {object} response from the exchange
|
|
3439
|
+
*/
|
|
3440
|
+
let dualSidePosition = undefined;
|
|
3441
|
+
if (hedged) {
|
|
3442
|
+
dualSidePosition = 'true';
|
|
3443
|
+
}
|
|
3444
|
+
else {
|
|
3445
|
+
dualSidePosition = 'false';
|
|
3446
|
+
}
|
|
3447
|
+
const request = {
|
|
3448
|
+
'dualSidePosition': dualSidePosition,
|
|
3449
|
+
};
|
|
3450
|
+
//
|
|
3451
|
+
// {
|
|
3452
|
+
// code: '0',
|
|
3453
|
+
// msg: '',
|
|
3454
|
+
// timeStamp: '1703327432734',
|
|
3455
|
+
// data: { dualSidePosition: 'false' }
|
|
3456
|
+
// }
|
|
3457
|
+
//
|
|
3458
|
+
return await this.swapV1PrivatePostPositionSideDual(this.extend(request, params));
|
|
3459
|
+
}
|
|
3418
3460
|
sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
3419
3461
|
const type = section[0];
|
|
3420
3462
|
const version = section[1];
|
package/js/src/bit2c.js
CHANGED
|
@@ -279,14 +279,13 @@ export default class bit2c extends Exchange {
|
|
|
279
279
|
}
|
|
280
280
|
parseTicker(ticker, market = undefined) {
|
|
281
281
|
const symbol = this.safeSymbol(undefined, market);
|
|
282
|
-
const timestamp = this.milliseconds();
|
|
283
282
|
const averagePrice = this.safeString(ticker, 'av');
|
|
284
283
|
const baseVolume = this.safeString(ticker, 'a');
|
|
285
284
|
const last = this.safeString(ticker, 'll');
|
|
286
285
|
return this.safeTicker({
|
|
287
286
|
'symbol': symbol,
|
|
288
|
-
'timestamp':
|
|
289
|
-
'datetime':
|
|
287
|
+
'timestamp': undefined,
|
|
288
|
+
'datetime': undefined,
|
|
290
289
|
'high': undefined,
|
|
291
290
|
'low': undefined,
|
|
292
291
|
'bid': this.safeString(ticker, 'h'),
|
package/js/src/bitfinex.js
CHANGED
|
@@ -1241,7 +1241,7 @@ export default class bitfinex extends Exchange {
|
|
|
1241
1241
|
* @description fetches information on multiple closed orders made by the user
|
|
1242
1242
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
1243
1243
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
1244
|
-
* @param {int} [limit] the maximum number of
|
|
1244
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
1245
1245
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1246
1246
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1247
1247
|
*/
|