ccxt 4.2.83 → 4.2.85
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 +1 -1
- package/dist/ccxt.browser.js +896 -941
- package/dist/ccxt.browser.min.js +4 -4
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +5 -5
- package/dist/cjs/src/ascendex.js +8 -8
- package/dist/cjs/src/base/Exchange.js +76 -14
- package/dist/cjs/src/bigone.js +12 -12
- package/dist/cjs/src/binance.js +23 -35
- package/dist/cjs/src/bingx.js +13 -9
- package/dist/cjs/src/bit2c.js +1 -1
- package/dist/cjs/src/bitbank.js +8 -8
- package/dist/cjs/src/bitbns.js +5 -5
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex2.js +1 -1
- package/dist/cjs/src/bitget.js +40 -28
- package/dist/cjs/src/bithumb.js +5 -5
- package/dist/cjs/src/bitmart.js +16 -16
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitrue.js +4 -4
- package/dist/cjs/src/bitso.js +5 -5
- package/dist/cjs/src/bitstamp.js +1 -1
- package/dist/cjs/src/bitteam.js +8 -8
- package/dist/cjs/src/bl3p.js +1 -1
- package/dist/cjs/src/btcturk.js +6 -6
- package/dist/cjs/src/bybit.js +34 -98
- package/dist/cjs/src/coincheck.js +4 -4
- package/dist/cjs/src/coinex.js +12 -13
- package/dist/cjs/src/coinlist.js +7 -7
- package/dist/cjs/src/coinmate.js +4 -4
- package/dist/cjs/src/coinmetro.js +3 -3
- package/dist/cjs/src/coinone.js +5 -5
- package/dist/cjs/src/coinspot.js +2 -2
- package/dist/cjs/src/cryptocom.js +17 -17
- package/dist/cjs/src/currencycom.js +1 -1
- package/dist/cjs/src/delta.js +0 -8
- package/dist/cjs/src/deribit.js +16 -92
- package/dist/cjs/src/digifinex.js +8 -8
- package/dist/cjs/src/exmo.js +8 -8
- package/dist/cjs/src/gate.js +0 -8
- package/dist/cjs/src/hitbtc.js +5 -4
- package/dist/cjs/src/hollaex.js +7 -7
- package/dist/cjs/src/htx.js +12 -34
- package/dist/cjs/src/huobijp.js +3 -3
- package/dist/cjs/src/idex.js +2 -2
- package/dist/cjs/src/independentreserve.js +2 -2
- package/dist/cjs/src/indodax.js +2 -2
- package/dist/cjs/src/kraken.js +8 -8
- package/dist/cjs/src/krakenfutures.js +6 -6
- package/dist/cjs/src/kucoin.js +15 -2
- package/dist/cjs/src/kucoinfutures.js +8 -8
- package/dist/cjs/src/kuna.js +16 -16
- package/dist/cjs/src/latoken.js +2 -2
- package/dist/cjs/src/lbank.js +10 -10
- package/dist/cjs/src/luno.js +4 -4
- package/dist/cjs/src/mercado.js +5 -5
- package/dist/cjs/src/mexc.js +6 -6
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/novadax.js +9 -9
- package/dist/cjs/src/oceanex.js +7 -7
- package/dist/cjs/src/okcoin.js +13 -13
- package/dist/cjs/src/okx.js +23 -31
- package/dist/cjs/src/onetrading.js +4 -4
- package/dist/cjs/src/p2b.js +7 -7
- package/dist/cjs/src/phemex.js +12 -12
- package/dist/cjs/src/poloniexfutures.js +5 -5
- package/dist/cjs/src/pro/binance.js +167 -121
- package/dist/cjs/src/pro/kucoin.js +6 -7
- package/dist/cjs/src/pro/okx.js +19 -2
- package/dist/cjs/src/probit.js +11 -11
- package/dist/cjs/src/timex.js +7 -7
- package/dist/cjs/src/tokocrypto.js +9 -9
- package/dist/cjs/src/wavesexchange.js +3 -3
- package/dist/cjs/src/whitebit.js +5 -5
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/zaif.js +1 -1
- package/dist/cjs/src/zonda.js +7 -7
- package/examples/js/cli.js +0 -1
- package/examples/ts/cli.ts +0 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/ace.js +5 -5
- package/js/src/ascendex.js +8 -8
- package/js/src/base/Exchange.d.ts +4 -3
- package/js/src/base/Exchange.js +76 -14
- package/js/src/bigone.js +12 -12
- package/js/src/binance.d.ts +0 -1
- package/js/src/binance.js +23 -35
- package/js/src/bingx.js +13 -9
- package/js/src/bit2c.js +1 -1
- package/js/src/bitbank.js +8 -8
- package/js/src/bitbns.js +5 -5
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.js +1 -1
- package/js/src/bitget.js +40 -28
- package/js/src/bithumb.js +5 -5
- package/js/src/bitmart.js +16 -16
- package/js/src/bitopro.js +1 -1
- package/js/src/bitrue.js +4 -4
- package/js/src/bitso.js +5 -5
- package/js/src/bitstamp.js +1 -1
- package/js/src/bitteam.js +8 -8
- package/js/src/bl3p.js +1 -1
- package/js/src/btcturk.js +6 -6
- package/js/src/bybit.d.ts +0 -3
- package/js/src/bybit.js +34 -98
- package/js/src/coincheck.js +4 -4
- package/js/src/coinex.js +12 -13
- package/js/src/coinlist.js +7 -7
- package/js/src/coinmate.js +4 -4
- package/js/src/coinmetro.js +3 -3
- package/js/src/coinone.js +5 -5
- package/js/src/coinspot.js +2 -2
- package/js/src/cryptocom.js +17 -17
- package/js/src/currencycom.js +1 -1
- package/js/src/delta.d.ts +0 -1
- package/js/src/delta.js +0 -8
- package/js/src/deribit.d.ts +0 -3
- package/js/src/deribit.js +16 -92
- package/js/src/digifinex.js +8 -8
- package/js/src/exmo.js +8 -8
- package/js/src/gate.d.ts +0 -1
- package/js/src/gate.js +0 -8
- package/js/src/hitbtc.js +5 -4
- package/js/src/hollaex.js +7 -7
- package/js/src/htx.js +12 -34
- package/js/src/huobijp.js +3 -3
- package/js/src/idex.js +2 -2
- package/js/src/independentreserve.js +2 -2
- package/js/src/indodax.js +2 -2
- package/js/src/kraken.js +8 -8
- package/js/src/krakenfutures.js +6 -6
- package/js/src/kucoin.d.ts +1 -0
- package/js/src/kucoin.js +16 -3
- package/js/src/kucoinfutures.js +8 -8
- package/js/src/kuna.js +16 -16
- package/js/src/latoken.js +2 -2
- package/js/src/lbank.js +10 -10
- package/js/src/luno.js +4 -4
- package/js/src/mercado.js +5 -5
- package/js/src/mexc.js +6 -6
- package/js/src/ndax.js +1 -1
- package/js/src/novadax.js +9 -9
- package/js/src/oceanex.js +7 -7
- package/js/src/okcoin.js +13 -13
- package/js/src/okx.d.ts +0 -1
- package/js/src/okx.js +23 -31
- package/js/src/onetrading.js +4 -4
- package/js/src/p2b.js +7 -7
- package/js/src/phemex.js +12 -12
- package/js/src/poloniexfutures.js +5 -5
- package/js/src/pro/binance.d.ts +5 -1
- package/js/src/pro/binance.js +168 -122
- package/js/src/pro/kucoin.js +6 -7
- package/js/src/pro/okx.js +19 -2
- package/js/src/probit.js +11 -11
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
- package/js/src/timex.js +7 -7
- package/js/src/tokocrypto.js +9 -9
- package/js/src/wavesexchange.js +3 -3
- package/js/src/whitebit.js +5 -5
- package/js/src/woo.js +1 -1
- package/js/src/zaif.js +1 -1
- package/js/src/zonda.js +7 -7
- package/package.json +1 -1
package/js/src/binance.js
CHANGED
|
@@ -2425,14 +2425,6 @@ export default class binance extends Exchange {
|
|
|
2425
2425
|
super.setSandboxMode(enable);
|
|
2426
2426
|
this.options['sandboxMode'] = enable;
|
|
2427
2427
|
}
|
|
2428
|
-
convertExpireDate(date) {
|
|
2429
|
-
// parse YYMMDD to timestamp
|
|
2430
|
-
const year = date.slice(0, 2);
|
|
2431
|
-
const month = date.slice(2, 4);
|
|
2432
|
-
const day = date.slice(4, 6);
|
|
2433
|
-
const reconstructedDate = '20' + year + '-' + month + '-' + day + 'T00:00:00Z';
|
|
2434
|
-
return reconstructedDate;
|
|
2435
|
-
}
|
|
2436
2428
|
createExpiredOptionMarket(symbol) {
|
|
2437
2429
|
// support expired option contracts
|
|
2438
2430
|
const settle = 'USDT';
|
|
@@ -3969,16 +3961,12 @@ export default class binance extends Exchange {
|
|
|
3969
3961
|
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
3970
3962
|
*/
|
|
3971
3963
|
await this.loadMarkets();
|
|
3972
|
-
symbols = this.marketSymbols(symbols);
|
|
3973
|
-
|
|
3974
|
-
if (symbols !== undefined) {
|
|
3975
|
-
const first = this.safeString(symbols, 0);
|
|
3976
|
-
market = this.market(first);
|
|
3977
|
-
}
|
|
3964
|
+
symbols = this.marketSymbols(symbols, undefined, true, true, true);
|
|
3965
|
+
const market = this.getMarketFromSymbols(symbols);
|
|
3978
3966
|
let type = undefined;
|
|
3967
|
+
[type, params] = this.handleMarketTypeAndParams('fetchBidsAsks', market, params);
|
|
3979
3968
|
let subType = undefined;
|
|
3980
3969
|
[subType, params] = this.handleSubTypeAndParams('fetchBidsAsks', market, params);
|
|
3981
|
-
[type, params] = this.handleMarketTypeAndParams('fetchBidsAsks', market, params);
|
|
3982
3970
|
let response = undefined;
|
|
3983
3971
|
if (this.isLinear(type, subType)) {
|
|
3984
3972
|
response = await this.fapiPublicGetTickerBookTicker(params);
|
|
@@ -3986,14 +3974,16 @@ export default class binance extends Exchange {
|
|
|
3986
3974
|
else if (this.isInverse(type, subType)) {
|
|
3987
3975
|
response = await this.dapiPublicGetTickerBookTicker(params);
|
|
3988
3976
|
}
|
|
3989
|
-
else {
|
|
3977
|
+
else if (type === 'spot') {
|
|
3990
3978
|
const request = {};
|
|
3991
3979
|
if (symbols !== undefined) {
|
|
3992
|
-
|
|
3993
|
-
request['symbols'] = this.json(marketIds);
|
|
3980
|
+
request['symbols'] = this.json(this.marketIds(symbols));
|
|
3994
3981
|
}
|
|
3995
3982
|
response = await this.publicGetTickerBookTicker(this.extend(request, params));
|
|
3996
3983
|
}
|
|
3984
|
+
else {
|
|
3985
|
+
throw new NotSupported(this.id + ' fetchBidsAsks() does not support ' + type + ' markets yet');
|
|
3986
|
+
}
|
|
3997
3987
|
return this.parseTickers(response, symbols);
|
|
3998
3988
|
}
|
|
3999
3989
|
async fetchLastPrices(symbols = undefined, params = {}) {
|
|
@@ -4010,12 +4000,12 @@ export default class binance extends Exchange {
|
|
|
4010
4000
|
* @returns {object} a dictionary of lastprices structures
|
|
4011
4001
|
*/
|
|
4012
4002
|
await this.loadMarkets();
|
|
4013
|
-
symbols = this.marketSymbols(symbols);
|
|
4003
|
+
symbols = this.marketSymbols(symbols, undefined, true, true, true);
|
|
4014
4004
|
const market = this.getMarketFromSymbols(symbols);
|
|
4015
4005
|
let type = undefined;
|
|
4006
|
+
[type, params] = this.handleMarketTypeAndParams('fetchLastPrices', market, params);
|
|
4016
4007
|
let subType = undefined;
|
|
4017
4008
|
[subType, params] = this.handleSubTypeAndParams('fetchLastPrices', market, params);
|
|
4018
|
-
[type, params] = this.handleMarketTypeAndParams('fetchLastPrices', market, params);
|
|
4019
4009
|
let response = undefined;
|
|
4020
4010
|
if (this.isLinear(type, subType)) {
|
|
4021
4011
|
response = await this.fapiPublicV2GetTickerPrice(params);
|
|
@@ -4116,34 +4106,32 @@ export default class binance extends Exchange {
|
|
|
4116
4106
|
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
4117
4107
|
*/
|
|
4118
4108
|
await this.loadMarkets();
|
|
4119
|
-
let type = undefined;
|
|
4120
|
-
let market = undefined;
|
|
4121
4109
|
symbols = this.marketSymbols(symbols, undefined, true, true, true);
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
market = this.market(first);
|
|
4125
|
-
}
|
|
4110
|
+
const market = this.getMarketFromSymbols(symbols);
|
|
4111
|
+
let type = undefined;
|
|
4126
4112
|
[type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
4127
4113
|
let subType = undefined;
|
|
4128
4114
|
[subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params);
|
|
4129
4115
|
let response = undefined;
|
|
4130
|
-
if (type
|
|
4131
|
-
response = await this.eapiPublicGetTicker(params);
|
|
4132
|
-
}
|
|
4133
|
-
else if (this.isLinear(type, subType)) {
|
|
4116
|
+
if (this.isLinear(type, subType)) {
|
|
4134
4117
|
response = await this.fapiPublicGetTicker24hr(params);
|
|
4135
4118
|
}
|
|
4136
4119
|
else if (this.isInverse(type, subType)) {
|
|
4137
4120
|
response = await this.dapiPublicGetTicker24hr(params);
|
|
4138
4121
|
}
|
|
4139
|
-
else {
|
|
4122
|
+
else if (type === 'spot') {
|
|
4140
4123
|
const request = {};
|
|
4141
4124
|
if (symbols !== undefined) {
|
|
4142
|
-
|
|
4143
|
-
request['symbols'] = this.json(marketIds);
|
|
4125
|
+
request['symbols'] = this.json(this.marketIds(symbols));
|
|
4144
4126
|
}
|
|
4145
4127
|
response = await this.publicGetTicker24hr(this.extend(request, params));
|
|
4146
4128
|
}
|
|
4129
|
+
else if (type === 'option') {
|
|
4130
|
+
response = await this.eapiPublicGetTicker(params);
|
|
4131
|
+
}
|
|
4132
|
+
else {
|
|
4133
|
+
throw new NotSupported(this.id + ' fetchTickers() does not support ' + type + ' markets yet');
|
|
4134
|
+
}
|
|
4147
4135
|
return this.parseTickers(response, symbols);
|
|
4148
4136
|
}
|
|
4149
4137
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -4810,7 +4798,7 @@ export default class binance extends Exchange {
|
|
|
4810
4798
|
// }
|
|
4811
4799
|
// }
|
|
4812
4800
|
//
|
|
4813
|
-
const data = this.
|
|
4801
|
+
const data = this.safeDict(response, 'newOrderResponse');
|
|
4814
4802
|
return this.parseOrder(data, market);
|
|
4815
4803
|
}
|
|
4816
4804
|
editSpotOrderRequest(id, symbol, type, side, amount, price = undefined, params = {}) {
|
|
@@ -12400,7 +12388,7 @@ export default class binance extends Exchange {
|
|
|
12400
12388
|
else {
|
|
12401
12389
|
throw new BadRequest(this.id + ' fetchMarginModes () supports linear and inverse subTypes only');
|
|
12402
12390
|
}
|
|
12403
|
-
const assets = this.
|
|
12391
|
+
const assets = this.safeList(response, 'positions', []);
|
|
12404
12392
|
return this.parseMarginModes(assets, symbols, 'symbol', 'swap');
|
|
12405
12393
|
}
|
|
12406
12394
|
parseMarginMode(marginMode, market = undefined) {
|
package/js/src/bingx.js
CHANGED
|
@@ -1387,9 +1387,13 @@ export default class bingx extends Exchange {
|
|
|
1387
1387
|
else {
|
|
1388
1388
|
response = await this.swapV2PublicGetQuoteTicker(this.extend(request, params));
|
|
1389
1389
|
}
|
|
1390
|
-
const data = this.
|
|
1391
|
-
|
|
1392
|
-
|
|
1390
|
+
const data = this.safeList(response, 'data');
|
|
1391
|
+
if (data !== undefined) {
|
|
1392
|
+
const first = this.safeDict(data, 0, {});
|
|
1393
|
+
return this.parseTicker(first, market);
|
|
1394
|
+
}
|
|
1395
|
+
const dataDict = this.safeDict(response, 'data', {});
|
|
1396
|
+
return this.parseTicker(dataDict, market);
|
|
1393
1397
|
}
|
|
1394
1398
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
1395
1399
|
/**
|
|
@@ -1419,7 +1423,7 @@ export default class bingx extends Exchange {
|
|
|
1419
1423
|
else {
|
|
1420
1424
|
response = await this.swapV2PublicGetQuoteTicker(params);
|
|
1421
1425
|
}
|
|
1422
|
-
const tickers = this.
|
|
1426
|
+
const tickers = this.safeList(response, 'data');
|
|
1423
1427
|
return this.parseTickers(tickers, symbols);
|
|
1424
1428
|
}
|
|
1425
1429
|
parseTicker(ticker, market = undefined) {
|
|
@@ -2065,7 +2069,7 @@ export default class bingx extends Exchange {
|
|
|
2065
2069
|
response = this.parseJson(response);
|
|
2066
2070
|
}
|
|
2067
2071
|
const data = this.safeValue(response, 'data', {});
|
|
2068
|
-
const order = this.
|
|
2072
|
+
const order = this.safeDict(data, 'order', data);
|
|
2069
2073
|
return this.parseOrder(order, market);
|
|
2070
2074
|
}
|
|
2071
2075
|
async createOrders(orders, params = {}) {
|
|
@@ -2562,7 +2566,7 @@ export default class bingx extends Exchange {
|
|
|
2562
2566
|
// }
|
|
2563
2567
|
//
|
|
2564
2568
|
const data = this.safeValue(response, 'data');
|
|
2565
|
-
const first = this.
|
|
2569
|
+
const first = this.safeDict(data, 'order', data);
|
|
2566
2570
|
return this.parseOrder(first, market);
|
|
2567
2571
|
}
|
|
2568
2572
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -2807,7 +2811,7 @@ export default class bingx extends Exchange {
|
|
|
2807
2811
|
// }
|
|
2808
2812
|
//
|
|
2809
2813
|
const data = this.safeValue(response, 'data');
|
|
2810
|
-
const first = this.
|
|
2814
|
+
const first = this.safeDict(data, 'order', data);
|
|
2811
2815
|
return this.parseOrder(first, market);
|
|
2812
2816
|
}
|
|
2813
2817
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -2990,7 +2994,7 @@ export default class bingx extends Exchange {
|
|
|
2990
2994
|
// }
|
|
2991
2995
|
//
|
|
2992
2996
|
const data = this.safeValue(response, 'data', []);
|
|
2993
|
-
const orders = this.
|
|
2997
|
+
const orders = this.safeList(data, 'orders', []);
|
|
2994
2998
|
return this.parseOrders(orders, market, since, limit);
|
|
2995
2999
|
}
|
|
2996
3000
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
|
@@ -3734,7 +3738,7 @@ export default class bingx extends Exchange {
|
|
|
3734
3738
|
*/
|
|
3735
3739
|
await this.loadMarkets();
|
|
3736
3740
|
const response = await this.walletsV1PrivateGetCapitalConfigGetall(params);
|
|
3737
|
-
const coins = this.
|
|
3741
|
+
const coins = this.safeList(response, 'data');
|
|
3738
3742
|
return this.parseDepositWithdrawFees(coins, codes, 'coin');
|
|
3739
3743
|
}
|
|
3740
3744
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
package/js/src/bit2c.js
CHANGED
|
@@ -492,7 +492,7 @@ export default class bit2c extends Exchange {
|
|
|
492
492
|
const response = await this.privateGetOrderMyOrders(this.extend(request, params));
|
|
493
493
|
const orders = this.safeValue(response, market['id'], {});
|
|
494
494
|
const asks = this.safeValue(orders, 'ask', []);
|
|
495
|
-
const bids = this.
|
|
495
|
+
const bids = this.safeList(orders, 'bid', []);
|
|
496
496
|
return this.parseOrders(this.arrayConcat(asks, bids), market, since, limit);
|
|
497
497
|
}
|
|
498
498
|
async fetchOrder(id, symbol = undefined, params = {}) {
|
package/js/src/bitbank.js
CHANGED
|
@@ -301,7 +301,7 @@ export default class bitbank extends Exchange {
|
|
|
301
301
|
'pair': market['id'],
|
|
302
302
|
};
|
|
303
303
|
const response = await this.publicGetPairTicker(this.extend(request, params));
|
|
304
|
-
const data = this.
|
|
304
|
+
const data = this.safeDict(response, 'data', {});
|
|
305
305
|
return this.parseTicker(data, market);
|
|
306
306
|
}
|
|
307
307
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
@@ -389,7 +389,7 @@ export default class bitbank extends Exchange {
|
|
|
389
389
|
};
|
|
390
390
|
const response = await this.publicGetPairTransactions(this.extend(request, params));
|
|
391
391
|
const data = this.safeValue(response, 'data', {});
|
|
392
|
-
const trades = this.
|
|
392
|
+
const trades = this.safeList(data, 'transactions', []);
|
|
393
393
|
return this.parseTrades(trades, market, since, limit);
|
|
394
394
|
}
|
|
395
395
|
async fetchTradingFees(params = {}) {
|
|
@@ -519,7 +519,7 @@ export default class bitbank extends Exchange {
|
|
|
519
519
|
const data = this.safeValue(response, 'data', {});
|
|
520
520
|
const candlestick = this.safeValue(data, 'candlestick', []);
|
|
521
521
|
const first = this.safeValue(candlestick, 0, {});
|
|
522
|
-
const ohlcv = this.
|
|
522
|
+
const ohlcv = this.safeList(first, 'ohlcv', []);
|
|
523
523
|
return this.parseOHLCVs(ohlcv, market, timeframe, since, limit);
|
|
524
524
|
}
|
|
525
525
|
parseBalance(response) {
|
|
@@ -662,7 +662,7 @@ export default class bitbank extends Exchange {
|
|
|
662
662
|
request['price'] = this.priceToPrecision(symbol, price);
|
|
663
663
|
}
|
|
664
664
|
const response = await this.privatePostUserSpotOrder(this.extend(request, params));
|
|
665
|
-
const data = this.
|
|
665
|
+
const data = this.safeDict(response, 'data');
|
|
666
666
|
return this.parseOrder(data, market);
|
|
667
667
|
}
|
|
668
668
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
@@ -703,7 +703,7 @@ export default class bitbank extends Exchange {
|
|
|
703
703
|
'pair': market['id'],
|
|
704
704
|
};
|
|
705
705
|
const response = await this.privateGetUserSpotOrder(this.extend(request, params));
|
|
706
|
-
const data = this.
|
|
706
|
+
const data = this.safeDict(response, 'data');
|
|
707
707
|
return this.parseOrder(data, market);
|
|
708
708
|
}
|
|
709
709
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -731,7 +731,7 @@ export default class bitbank extends Exchange {
|
|
|
731
731
|
}
|
|
732
732
|
const response = await this.privateGetUserSpotActiveOrders(this.extend(request, params));
|
|
733
733
|
const data = this.safeValue(response, 'data', {});
|
|
734
|
-
const orders = this.
|
|
734
|
+
const orders = this.safeList(data, 'orders', []);
|
|
735
735
|
return this.parseOrders(orders, market, since, limit);
|
|
736
736
|
}
|
|
737
737
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -761,7 +761,7 @@ export default class bitbank extends Exchange {
|
|
|
761
761
|
}
|
|
762
762
|
const response = await this.privateGetUserSpotTradeHistory(this.extend(request, params));
|
|
763
763
|
const data = this.safeValue(response, 'data', {});
|
|
764
|
-
const trades = this.
|
|
764
|
+
const trades = this.safeList(data, 'trades', []);
|
|
765
765
|
return this.parseTrades(trades, market, since, limit);
|
|
766
766
|
}
|
|
767
767
|
async fetchDepositAddress(code, params = {}) {
|
|
@@ -834,7 +834,7 @@ export default class bitbank extends Exchange {
|
|
|
834
834
|
// }
|
|
835
835
|
// }
|
|
836
836
|
//
|
|
837
|
-
const data = this.
|
|
837
|
+
const data = this.safeDict(response, 'data', {});
|
|
838
838
|
return this.parseTransaction(data, currency);
|
|
839
839
|
}
|
|
840
840
|
parseTransaction(transaction, currency = undefined) {
|
package/js/src/bitbns.js
CHANGED
|
@@ -725,7 +725,7 @@ export default class bitbns extends Exchange {
|
|
|
725
725
|
// }
|
|
726
726
|
//
|
|
727
727
|
const data = this.safeValue(response, 'data', []);
|
|
728
|
-
const first = this.
|
|
728
|
+
const first = this.safeDict(data, 0);
|
|
729
729
|
return this.parseOrder(first, market);
|
|
730
730
|
}
|
|
731
731
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -776,7 +776,7 @@ export default class bitbns extends Exchange {
|
|
|
776
776
|
// "code":200
|
|
777
777
|
// }
|
|
778
778
|
//
|
|
779
|
-
const data = this.
|
|
779
|
+
const data = this.safeList(response, 'data', []);
|
|
780
780
|
return this.parseOrders(data, market, since, limit);
|
|
781
781
|
}
|
|
782
782
|
parseTrade(trade, market = undefined) {
|
|
@@ -926,7 +926,7 @@ export default class bitbns extends Exchange {
|
|
|
926
926
|
// "code": 200
|
|
927
927
|
// }
|
|
928
928
|
//
|
|
929
|
-
const data = this.
|
|
929
|
+
const data = this.safeList(response, 'data', []);
|
|
930
930
|
return this.parseTrades(data, market, since, limit);
|
|
931
931
|
}
|
|
932
932
|
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1003,7 +1003,7 @@ export default class bitbns extends Exchange {
|
|
|
1003
1003
|
// "code":200
|
|
1004
1004
|
// }
|
|
1005
1005
|
//
|
|
1006
|
-
const data = this.
|
|
1006
|
+
const data = this.safeList(response, 'data', []);
|
|
1007
1007
|
return this.parseTransactions(data, currency, since, limit);
|
|
1008
1008
|
}
|
|
1009
1009
|
async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1030,7 +1030,7 @@ export default class bitbns extends Exchange {
|
|
|
1030
1030
|
//
|
|
1031
1031
|
// ...
|
|
1032
1032
|
//
|
|
1033
|
-
const data = this.
|
|
1033
|
+
const data = this.safeList(response, 'data', []);
|
|
1034
1034
|
return this.parseTransactions(data, currency, since, limit);
|
|
1035
1035
|
}
|
|
1036
1036
|
parseTransactionStatusByType(status, type = undefined) {
|
package/js/src/bitfinex.js
CHANGED
|
@@ -453,7 +453,7 @@ export default class bitfinex extends Exchange {
|
|
|
453
453
|
// }
|
|
454
454
|
// }
|
|
455
455
|
//
|
|
456
|
-
const withdraw = this.
|
|
456
|
+
const withdraw = this.safeList(response, 'withdraw');
|
|
457
457
|
return this.parseDepositWithdrawFees(withdraw, codes);
|
|
458
458
|
}
|
|
459
459
|
parseDepositWithdrawFee(fee, currency = undefined) {
|
package/js/src/bitfinex2.js
CHANGED
|
@@ -1785,7 +1785,7 @@ export default class bitfinex2 extends Exchange {
|
|
|
1785
1785
|
'all': 1,
|
|
1786
1786
|
};
|
|
1787
1787
|
const response = await this.privatePostAuthWOrderCancelMulti(this.extend(request, params));
|
|
1788
|
-
const orders = this.
|
|
1788
|
+
const orders = this.safeList(response, 4, []);
|
|
1789
1789
|
return this.parseOrders(orders);
|
|
1790
1790
|
}
|
|
1791
1791
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
package/js/src/bitget.js
CHANGED
|
@@ -2194,7 +2194,7 @@ export default class bitget extends Exchange {
|
|
|
2194
2194
|
// ]
|
|
2195
2195
|
// }
|
|
2196
2196
|
//
|
|
2197
|
-
const rawTransactions = this.
|
|
2197
|
+
const rawTransactions = this.safeList(response, 'data', []);
|
|
2198
2198
|
return this.parseTransactions(rawTransactions, currency, since, limit);
|
|
2199
2199
|
}
|
|
2200
2200
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -2342,7 +2342,7 @@ export default class bitget extends Exchange {
|
|
|
2342
2342
|
// ]
|
|
2343
2343
|
// }
|
|
2344
2344
|
//
|
|
2345
|
-
const rawTransactions = this.
|
|
2345
|
+
const rawTransactions = this.safeList(response, 'data', []);
|
|
2346
2346
|
return this.parseTransactions(rawTransactions, currency, since, limit);
|
|
2347
2347
|
}
|
|
2348
2348
|
parseTransaction(transaction, currency = undefined) {
|
|
@@ -2470,7 +2470,7 @@ export default class bitget extends Exchange {
|
|
|
2470
2470
|
// }
|
|
2471
2471
|
// }
|
|
2472
2472
|
//
|
|
2473
|
-
const data = this.
|
|
2473
|
+
const data = this.safeDict(response, 'data', {});
|
|
2474
2474
|
return this.parseDepositAddress(data, currency);
|
|
2475
2475
|
}
|
|
2476
2476
|
parseDepositAddress(depositAddress, currency = undefined) {
|
|
@@ -2759,7 +2759,7 @@ export default class bitget extends Exchange {
|
|
|
2759
2759
|
// ]
|
|
2760
2760
|
// }
|
|
2761
2761
|
//
|
|
2762
|
-
const data = this.
|
|
2762
|
+
const data = this.safeList(response, 'data', []);
|
|
2763
2763
|
return this.parseTicker(data[0], market);
|
|
2764
2764
|
}
|
|
2765
2765
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
@@ -2771,6 +2771,7 @@ export default class bitget extends Exchange {
|
|
|
2771
2771
|
* @see https://www.bitget.com/api-doc/contract/market/Get-All-Symbol-Ticker
|
|
2772
2772
|
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
2773
2773
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2774
|
+
* @param {string} [params.subType] *contract only* 'linear', 'inverse'
|
|
2774
2775
|
* @param {string} [params.productType] *contract only* 'USDT-FUTURES', 'USDC-FUTURES', 'COIN-FUTURES', 'SUSDT-FUTURES', 'SUSDC-FUTURES' or 'SCOIN-FUTURES'
|
|
2775
2776
|
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
2776
2777
|
*/
|
|
@@ -2787,16 +2788,21 @@ export default class bitget extends Exchange {
|
|
|
2787
2788
|
market = this.market(symbol);
|
|
2788
2789
|
}
|
|
2789
2790
|
}
|
|
2791
|
+
let response = undefined;
|
|
2790
2792
|
const request = {};
|
|
2791
2793
|
let type = undefined;
|
|
2792
2794
|
[type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
+
// Calls like `.fetchTickers (undefined, {subType:'inverse'})` should be supported for this exchange, so
|
|
2796
|
+
// as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
|
|
2797
|
+
// with higher priority and only default to spot, if `subType` is not set in params
|
|
2798
|
+
const passedSubType = this.safeString(params, 'subType');
|
|
2799
|
+
let productType = undefined;
|
|
2800
|
+
[productType, params] = this.handleProductTypeAndParams(market, params);
|
|
2801
|
+
// only if passedSubType && productType is undefined, then use spot
|
|
2802
|
+
if (type === 'spot' && passedSubType === undefined) {
|
|
2795
2803
|
response = await this.publicSpotGetV2SpotMarketTickers(this.extend(request, params));
|
|
2796
2804
|
}
|
|
2797
2805
|
else {
|
|
2798
|
-
let productType = undefined;
|
|
2799
|
-
[productType, params] = this.handleProductTypeAndParams(market, params);
|
|
2800
2806
|
request['productType'] = productType;
|
|
2801
2807
|
response = await this.publicMixGetV2MixMarketTickers(this.extend(request, params));
|
|
2802
2808
|
}
|
|
@@ -2857,7 +2863,7 @@ export default class bitget extends Exchange {
|
|
|
2857
2863
|
// ]
|
|
2858
2864
|
// }
|
|
2859
2865
|
//
|
|
2860
|
-
const data = this.
|
|
2866
|
+
const data = this.safeList(response, 'data', []);
|
|
2861
2867
|
return this.parseTickers(data, symbols);
|
|
2862
2868
|
}
|
|
2863
2869
|
parseTrade(trade, market = undefined) {
|
|
@@ -3097,7 +3103,7 @@ export default class bitget extends Exchange {
|
|
|
3097
3103
|
// ]
|
|
3098
3104
|
// }
|
|
3099
3105
|
//
|
|
3100
|
-
const data = this.
|
|
3106
|
+
const data = this.safeList(response, 'data', []);
|
|
3101
3107
|
return this.parseTrades(data, market, since, limit);
|
|
3102
3108
|
}
|
|
3103
3109
|
async fetchTradingFee(symbol, params = {}) {
|
|
@@ -4184,7 +4190,7 @@ export default class bitget extends Exchange {
|
|
|
4184
4190
|
// }
|
|
4185
4191
|
// }
|
|
4186
4192
|
//
|
|
4187
|
-
const data = this.
|
|
4193
|
+
const data = this.safeDict(response, 'data', {});
|
|
4188
4194
|
return this.parseOrder(data, market);
|
|
4189
4195
|
}
|
|
4190
4196
|
createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
|
|
@@ -4695,7 +4701,7 @@ export default class bitget extends Exchange {
|
|
|
4695
4701
|
// }
|
|
4696
4702
|
// }
|
|
4697
4703
|
//
|
|
4698
|
-
const data = this.
|
|
4704
|
+
const data = this.safeDict(response, 'data', {});
|
|
4699
4705
|
return this.parseOrder(data, market);
|
|
4700
4706
|
}
|
|
4701
4707
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
@@ -4934,7 +4940,7 @@ export default class bitget extends Exchange {
|
|
|
4934
4940
|
// }
|
|
4935
4941
|
//
|
|
4936
4942
|
const data = this.safeValue(response, 'data', {});
|
|
4937
|
-
const orders = this.
|
|
4943
|
+
const orders = this.safeList(data, 'successList', []);
|
|
4938
4944
|
return this.parseOrders(orders, market);
|
|
4939
4945
|
}
|
|
4940
4946
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -5165,9 +5171,15 @@ export default class bitget extends Exchange {
|
|
|
5165
5171
|
if (typeof response === 'string') {
|
|
5166
5172
|
response = JSON.parse(response);
|
|
5167
5173
|
}
|
|
5168
|
-
const data = this.
|
|
5169
|
-
|
|
5174
|
+
const data = this.safeDict(response, 'data');
|
|
5175
|
+
if ((data !== undefined) && !Array.isArray(data)) {
|
|
5176
|
+
return this.parseOrder(data, market);
|
|
5177
|
+
}
|
|
5178
|
+
const dataList = this.safeList(response, 'data', []);
|
|
5179
|
+
const first = this.safeDict(dataList, 0, {});
|
|
5170
5180
|
return this.parseOrder(first, market);
|
|
5181
|
+
// const first = this.safeDict (data, 0, data);
|
|
5182
|
+
// return this.parseOrder (first, market);
|
|
5171
5183
|
}
|
|
5172
5184
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5173
5185
|
/**
|
|
@@ -5470,12 +5482,12 @@ export default class bitget extends Exchange {
|
|
|
5470
5482
|
const data = this.safeValue(response, 'data');
|
|
5471
5483
|
if (type === 'spot') {
|
|
5472
5484
|
if ((marginMode !== undefined) || stop) {
|
|
5473
|
-
const resultList = this.
|
|
5485
|
+
const resultList = this.safeList(data, 'orderList', []);
|
|
5474
5486
|
return this.parseOrders(resultList, market, since, limit);
|
|
5475
5487
|
}
|
|
5476
5488
|
}
|
|
5477
5489
|
else {
|
|
5478
|
-
const result = this.
|
|
5490
|
+
const result = this.safeList(data, 'entrustedList', []);
|
|
5479
5491
|
return this.parseOrders(result, market, since, limit);
|
|
5480
5492
|
}
|
|
5481
5493
|
return this.parseOrders(data, market, since, limit);
|
|
@@ -5842,7 +5854,7 @@ export default class bitget extends Exchange {
|
|
|
5842
5854
|
if (typeof response === 'string') {
|
|
5843
5855
|
response = JSON.parse(response);
|
|
5844
5856
|
}
|
|
5845
|
-
const orders = this.
|
|
5857
|
+
const orders = this.safeList(response, 'data', []);
|
|
5846
5858
|
return this.parseOrders(orders, market, since, limit);
|
|
5847
5859
|
}
|
|
5848
5860
|
async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -6246,11 +6258,11 @@ export default class bitget extends Exchange {
|
|
|
6246
6258
|
//
|
|
6247
6259
|
const data = this.safeValue(response, 'data');
|
|
6248
6260
|
if ((market['swap']) || (market['future'])) {
|
|
6249
|
-
const fillList = this.
|
|
6261
|
+
const fillList = this.safeList(data, 'fillList', []);
|
|
6250
6262
|
return this.parseTrades(fillList, market, since, limit);
|
|
6251
6263
|
}
|
|
6252
6264
|
else if (marginMode !== undefined) {
|
|
6253
|
-
const fills = this.
|
|
6265
|
+
const fills = this.safeList(data, 'fills', []);
|
|
6254
6266
|
return this.parseTrades(fills, market, since, limit);
|
|
6255
6267
|
}
|
|
6256
6268
|
return this.parseTrades(data, market, since, limit);
|
|
@@ -6313,8 +6325,8 @@ export default class bitget extends Exchange {
|
|
|
6313
6325
|
// ]
|
|
6314
6326
|
// }
|
|
6315
6327
|
//
|
|
6316
|
-
const data = this.
|
|
6317
|
-
const first = this.
|
|
6328
|
+
const data = this.safeList(response, 'data', []);
|
|
6329
|
+
const first = this.safeDict(data, 0, {});
|
|
6318
6330
|
return this.parsePosition(first, market);
|
|
6319
6331
|
}
|
|
6320
6332
|
async fetchPositions(symbols = undefined, params = {}) {
|
|
@@ -7265,7 +7277,7 @@ export default class bitget extends Exchange {
|
|
|
7265
7277
|
// }
|
|
7266
7278
|
// }
|
|
7267
7279
|
//
|
|
7268
|
-
const data = this.
|
|
7280
|
+
const data = this.safeDict(response, 'data', {});
|
|
7269
7281
|
return this.parseOpenInterest(data, market);
|
|
7270
7282
|
}
|
|
7271
7283
|
parseOpenInterest(interest, market = undefined) {
|
|
@@ -7349,7 +7361,7 @@ export default class bitget extends Exchange {
|
|
|
7349
7361
|
// ]
|
|
7350
7362
|
// }
|
|
7351
7363
|
//
|
|
7352
|
-
const data = this.
|
|
7364
|
+
const data = this.safeList(response, 'data', []);
|
|
7353
7365
|
return this.parseTransfers(data, currency, since, limit);
|
|
7354
7366
|
}
|
|
7355
7367
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
|
@@ -7546,7 +7558,7 @@ export default class bitget extends Exchange {
|
|
|
7546
7558
|
// "requestTime": "1700120731773"
|
|
7547
7559
|
// }
|
|
7548
7560
|
//
|
|
7549
|
-
const data = this.
|
|
7561
|
+
const data = this.safeList(response, 'data', []);
|
|
7550
7562
|
return this.parseDepositWithdrawFees(data, codes, 'coin');
|
|
7551
7563
|
}
|
|
7552
7564
|
async borrowCrossMargin(code, amount, params = {}) {
|
|
@@ -7853,7 +7865,7 @@ export default class bitget extends Exchange {
|
|
|
7853
7865
|
// }
|
|
7854
7866
|
//
|
|
7855
7867
|
const data = this.safeValue(response, 'data', {});
|
|
7856
|
-
const liquidations = this.
|
|
7868
|
+
const liquidations = this.safeList(data, 'resultList', []);
|
|
7857
7869
|
return this.parseLiquidations(liquidations, market, since, limit);
|
|
7858
7870
|
}
|
|
7859
7871
|
parseLiquidation(liquidation, market = undefined) {
|
|
@@ -8301,7 +8313,7 @@ export default class bitget extends Exchange {
|
|
|
8301
8313
|
// }
|
|
8302
8314
|
//
|
|
8303
8315
|
const data = this.safeValue(response, 'data', {});
|
|
8304
|
-
const order = this.
|
|
8316
|
+
const order = this.safeList(data, 'successList', []);
|
|
8305
8317
|
return this.parseOrder(order[0], market);
|
|
8306
8318
|
}
|
|
8307
8319
|
async closeAllPositions(params = {}) {
|
|
@@ -8339,7 +8351,7 @@ export default class bitget extends Exchange {
|
|
|
8339
8351
|
// }
|
|
8340
8352
|
//
|
|
8341
8353
|
const data = this.safeValue(response, 'data', {});
|
|
8342
|
-
const orderInfo = this.
|
|
8354
|
+
const orderInfo = this.safeList(data, 'successList', []);
|
|
8343
8355
|
return this.parsePositions(orderInfo, undefined, params);
|
|
8344
8356
|
}
|
|
8345
8357
|
async fetchMarginMode(symbol, params = {}) {
|
package/js/src/bithumb.js
CHANGED
|
@@ -498,7 +498,7 @@ export default class bithumb extends Exchange {
|
|
|
498
498
|
// }
|
|
499
499
|
// }
|
|
500
500
|
//
|
|
501
|
-
const data = this.
|
|
501
|
+
const data = this.safeDict(response, 'data', {});
|
|
502
502
|
return this.parseTicker(data, market);
|
|
503
503
|
}
|
|
504
504
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -565,7 +565,7 @@ export default class bithumb extends Exchange {
|
|
|
565
565
|
// }
|
|
566
566
|
// }
|
|
567
567
|
//
|
|
568
|
-
const data = this.
|
|
568
|
+
const data = this.safeList(response, 'data', []);
|
|
569
569
|
return this.parseOHLCVs(data, market, timeframe, since, limit);
|
|
570
570
|
}
|
|
571
571
|
parseTrade(trade, market = undefined) {
|
|
@@ -682,7 +682,7 @@ export default class bithumb extends Exchange {
|
|
|
682
682
|
// ]
|
|
683
683
|
// }
|
|
684
684
|
//
|
|
685
|
-
const data = this.
|
|
685
|
+
const data = this.safeList(response, 'data', []);
|
|
686
686
|
return this.parseTrades(data, market, since, limit);
|
|
687
687
|
}
|
|
688
688
|
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
@@ -778,7 +778,7 @@ export default class bithumb extends Exchange {
|
|
|
778
778
|
// }
|
|
779
779
|
// }
|
|
780
780
|
//
|
|
781
|
-
const data = this.
|
|
781
|
+
const data = this.safeDict(response, 'data');
|
|
782
782
|
return this.parseOrder(this.extend(data, { 'order_id': id }), market);
|
|
783
783
|
}
|
|
784
784
|
parseOrderStatus(status) {
|
|
@@ -934,7 +934,7 @@ export default class bithumb extends Exchange {
|
|
|
934
934
|
// ]
|
|
935
935
|
// }
|
|
936
936
|
//
|
|
937
|
-
const data = this.
|
|
937
|
+
const data = this.safeList(response, 'data', []);
|
|
938
938
|
return this.parseOrders(data, market, since, limit);
|
|
939
939
|
}
|
|
940
940
|
async cancelOrder(id, symbol = undefined, params = {}) {
|