ccxt 4.2.84 → 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 +867 -904
- 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 +30 -24
- 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 +31 -95
- package/dist/cjs/src/coincheck.js +4 -4
- package/dist/cjs/src/coinex.js +11 -11
- 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 +7 -7
- 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 +5 -1
- 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 +30 -24
- 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 +31 -95
- package/js/src/coincheck.js +4 -4
- package/js/src/coinex.js +11 -11
- 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 +7 -7
- 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.js +5 -1
- 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/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/base/Exchange.js
CHANGED
|
@@ -3888,20 +3888,6 @@ export default class Exchange {
|
|
|
3888
3888
|
async fetchStatus(params = {}) {
|
|
3889
3889
|
throw new NotSupported(this.id + ' fetchStatus() is not supported yet');
|
|
3890
3890
|
}
|
|
3891
|
-
async fetchFundingFee(code, params = {}) {
|
|
3892
|
-
const warnOnFetchFundingFee = this.safeBool(this.options, 'warnOnFetchFundingFee', true);
|
|
3893
|
-
if (warnOnFetchFundingFee) {
|
|
3894
|
-
throw new NotSupported(this.id + ' fetchFundingFee() method is deprecated, it will be removed in July 2022, please, use fetchTransactionFee() or set exchange.options["warnOnFetchFundingFee"] = false to suppress this warning');
|
|
3895
|
-
}
|
|
3896
|
-
return await this.fetchTransactionFee(code, params);
|
|
3897
|
-
}
|
|
3898
|
-
async fetchFundingFees(codes = undefined, params = {}) {
|
|
3899
|
-
const warnOnFetchFundingFees = this.safeBool(this.options, 'warnOnFetchFundingFees', true);
|
|
3900
|
-
if (warnOnFetchFundingFees) {
|
|
3901
|
-
throw new NotSupported(this.id + ' fetchFundingFees() method is deprecated, it will be removed in July 2022. Please, use fetchTransactionFees() or set exchange.options["warnOnFetchFundingFees"] = false to suppress this warning');
|
|
3902
|
-
}
|
|
3903
|
-
return await this.fetchTransactionFees(codes, params);
|
|
3904
|
-
}
|
|
3905
3891
|
async fetchTransactionFee(code, params = {}) {
|
|
3906
3892
|
if (!this.has['fetchTransactionFees']) {
|
|
3907
3893
|
throw new NotSupported(this.id + ' fetchTransactionFee() is not supported yet');
|
|
@@ -5707,5 +5693,81 @@ export default class Exchange {
|
|
|
5707
5693
|
parseLeverage(leverage, market = undefined) {
|
|
5708
5694
|
throw new NotSupported(this.id + ' parseLeverage() is not supported yet');
|
|
5709
5695
|
}
|
|
5696
|
+
convertExpireDate(date) {
|
|
5697
|
+
// parse YYMMDD to datetime string
|
|
5698
|
+
const year = date.slice(0, 2);
|
|
5699
|
+
const month = date.slice(2, 4);
|
|
5700
|
+
const day = date.slice(4, 6);
|
|
5701
|
+
const reconstructedDate = '20' + year + '-' + month + '-' + day + 'T00:00:00Z';
|
|
5702
|
+
return reconstructedDate;
|
|
5703
|
+
}
|
|
5704
|
+
convertExpireDateToMarketIdDate(date) {
|
|
5705
|
+
// parse 240119 to 19JAN24
|
|
5706
|
+
const year = date.slice(0, 2);
|
|
5707
|
+
const monthRaw = date.slice(2, 4);
|
|
5708
|
+
let month = undefined;
|
|
5709
|
+
const day = date.slice(4, 6);
|
|
5710
|
+
if (monthRaw === '01') {
|
|
5711
|
+
month = 'JAN';
|
|
5712
|
+
}
|
|
5713
|
+
else if (monthRaw === '02') {
|
|
5714
|
+
month = 'FEB';
|
|
5715
|
+
}
|
|
5716
|
+
else if (monthRaw === '03') {
|
|
5717
|
+
month = 'MAR';
|
|
5718
|
+
}
|
|
5719
|
+
else if (monthRaw === '04') {
|
|
5720
|
+
month = 'APR';
|
|
5721
|
+
}
|
|
5722
|
+
else if (monthRaw === '05') {
|
|
5723
|
+
month = 'MAY';
|
|
5724
|
+
}
|
|
5725
|
+
else if (monthRaw === '06') {
|
|
5726
|
+
month = 'JUN';
|
|
5727
|
+
}
|
|
5728
|
+
else if (monthRaw === '07') {
|
|
5729
|
+
month = 'JUL';
|
|
5730
|
+
}
|
|
5731
|
+
else if (monthRaw === '08') {
|
|
5732
|
+
month = 'AUG';
|
|
5733
|
+
}
|
|
5734
|
+
else if (monthRaw === '09') {
|
|
5735
|
+
month = 'SEP';
|
|
5736
|
+
}
|
|
5737
|
+
else if (monthRaw === '10') {
|
|
5738
|
+
month = 'OCT';
|
|
5739
|
+
}
|
|
5740
|
+
else if (monthRaw === '11') {
|
|
5741
|
+
month = 'NOV';
|
|
5742
|
+
}
|
|
5743
|
+
else if (monthRaw === '12') {
|
|
5744
|
+
month = 'DEC';
|
|
5745
|
+
}
|
|
5746
|
+
const reconstructedDate = day + month + year;
|
|
5747
|
+
return reconstructedDate;
|
|
5748
|
+
}
|
|
5749
|
+
convertMarketIdExpireDate(date) {
|
|
5750
|
+
// parse 19JAN24 to 240119
|
|
5751
|
+
const monthMappping = {
|
|
5752
|
+
'JAN': '01',
|
|
5753
|
+
'FEB': '02',
|
|
5754
|
+
'MAR': '03',
|
|
5755
|
+
'APR': '04',
|
|
5756
|
+
'MAY': '05',
|
|
5757
|
+
'JUN': '06',
|
|
5758
|
+
'JUL': '07',
|
|
5759
|
+
'AUG': '08',
|
|
5760
|
+
'SEP': '09',
|
|
5761
|
+
'OCT': '10',
|
|
5762
|
+
'NOV': '11',
|
|
5763
|
+
'DEC': '12',
|
|
5764
|
+
};
|
|
5765
|
+
const year = date.slice(0, 2);
|
|
5766
|
+
const monthName = date.slice(2, 5);
|
|
5767
|
+
const month = this.safeString(monthMappping, monthName);
|
|
5768
|
+
const day = date.slice(5, 7);
|
|
5769
|
+
const reconstructedDate = day + month + year;
|
|
5770
|
+
return reconstructedDate;
|
|
5771
|
+
}
|
|
5710
5772
|
}
|
|
5711
5773
|
export { Exchange, };
|
package/js/src/bigone.js
CHANGED
|
@@ -814,7 +814,7 @@ export default class bigone extends Exchange {
|
|
|
814
814
|
// }
|
|
815
815
|
// }
|
|
816
816
|
//
|
|
817
|
-
const ticker = this.
|
|
817
|
+
const ticker = this.safeDict(response, 'data', {});
|
|
818
818
|
return this.parseTicker(ticker, market);
|
|
819
819
|
}
|
|
820
820
|
else {
|
|
@@ -1001,7 +1001,7 @@ export default class bigone extends Exchange {
|
|
|
1001
1001
|
// }
|
|
1002
1002
|
// }
|
|
1003
1003
|
//
|
|
1004
|
-
const orderbook = this.
|
|
1004
|
+
const orderbook = this.safeDict(response, 'data', {});
|
|
1005
1005
|
return this.parseOrderBook(orderbook, market['symbol'], undefined, 'bids', 'asks', 'price', 'quantity');
|
|
1006
1006
|
}
|
|
1007
1007
|
}
|
|
@@ -1216,7 +1216,7 @@ export default class bigone extends Exchange {
|
|
|
1216
1216
|
// ]
|
|
1217
1217
|
// }
|
|
1218
1218
|
//
|
|
1219
|
-
const trades = this.
|
|
1219
|
+
const trades = this.safeList(response, 'data', []);
|
|
1220
1220
|
return this.parseTrades(trades, market, since, limit);
|
|
1221
1221
|
}
|
|
1222
1222
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -1295,7 +1295,7 @@ export default class bigone extends Exchange {
|
|
|
1295
1295
|
// ]
|
|
1296
1296
|
// }
|
|
1297
1297
|
//
|
|
1298
|
-
const data = this.
|
|
1298
|
+
const data = this.safeList(response, 'data', []);
|
|
1299
1299
|
return this.parseOHLCVs(data, market, timeframe, since, limit);
|
|
1300
1300
|
}
|
|
1301
1301
|
parseBalance(response) {
|
|
@@ -1564,7 +1564,7 @@ export default class bigone extends Exchange {
|
|
|
1564
1564
|
// "updated_at":"2019-01-29T06:05:56Z"
|
|
1565
1565
|
// }
|
|
1566
1566
|
//
|
|
1567
|
-
const order = this.
|
|
1567
|
+
const order = this.safeDict(response, 'data');
|
|
1568
1568
|
return this.parseOrder(order, market);
|
|
1569
1569
|
}
|
|
1570
1570
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
@@ -1593,7 +1593,7 @@ export default class bigone extends Exchange {
|
|
|
1593
1593
|
// "created_at":"2019-01-29T06:05:56Z",
|
|
1594
1594
|
// "updated_at":"2019-01-29T06:05:56Z"
|
|
1595
1595
|
// }
|
|
1596
|
-
const order = this.
|
|
1596
|
+
const order = this.safeDict(response, 'data');
|
|
1597
1597
|
return this.parseOrder(order);
|
|
1598
1598
|
}
|
|
1599
1599
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -1639,7 +1639,7 @@ export default class bigone extends Exchange {
|
|
|
1639
1639
|
await this.loadMarkets();
|
|
1640
1640
|
const request = { 'id': id };
|
|
1641
1641
|
const response = await this.privateGetOrdersId(this.extend(request, params));
|
|
1642
|
-
const order = this.
|
|
1642
|
+
const order = this.safeDict(response, 'data', {});
|
|
1643
1643
|
return this.parseOrder(order);
|
|
1644
1644
|
}
|
|
1645
1645
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1690,7 +1690,7 @@ export default class bigone extends Exchange {
|
|
|
1690
1690
|
// "page_token":"dxzef",
|
|
1691
1691
|
// }
|
|
1692
1692
|
//
|
|
1693
|
-
const orders = this.
|
|
1693
|
+
const orders = this.safeList(response, 'data', []);
|
|
1694
1694
|
return this.parseOrders(orders, market, since, limit);
|
|
1695
1695
|
}
|
|
1696
1696
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1752,7 +1752,7 @@ export default class bigone extends Exchange {
|
|
|
1752
1752
|
// "page_token":"dxfv"
|
|
1753
1753
|
// }
|
|
1754
1754
|
//
|
|
1755
|
-
const trades = this.
|
|
1755
|
+
const trades = this.safeList(response, 'data', []);
|
|
1756
1756
|
return this.parseTrades(trades, market, since, limit);
|
|
1757
1757
|
}
|
|
1758
1758
|
parseOrderStatus(status) {
|
|
@@ -2035,7 +2035,7 @@ export default class bigone extends Exchange {
|
|
|
2035
2035
|
// ]
|
|
2036
2036
|
// }
|
|
2037
2037
|
//
|
|
2038
|
-
const deposits = this.
|
|
2038
|
+
const deposits = this.safeList(response, 'data', []);
|
|
2039
2039
|
return this.parseTransactions(deposits, currency, since, limit);
|
|
2040
2040
|
}
|
|
2041
2041
|
async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -2087,7 +2087,7 @@ export default class bigone extends Exchange {
|
|
|
2087
2087
|
// "page_token":"dxvf"
|
|
2088
2088
|
// }
|
|
2089
2089
|
//
|
|
2090
|
-
const withdrawals = this.
|
|
2090
|
+
const withdrawals = this.safeList(response, 'data', []);
|
|
2091
2091
|
return this.parseTransactions(withdrawals, currency, since, limit);
|
|
2092
2092
|
}
|
|
2093
2093
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
|
@@ -2214,7 +2214,7 @@ export default class bigone extends Exchange {
|
|
|
2214
2214
|
// }
|
|
2215
2215
|
// }
|
|
2216
2216
|
//
|
|
2217
|
-
const data = this.
|
|
2217
|
+
const data = this.safeDict(response, 'data', {});
|
|
2218
2218
|
return this.parseTransaction(data, currency);
|
|
2219
2219
|
}
|
|
2220
2220
|
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
package/js/src/binance.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export default class binance extends Exchange {
|
|
|
9
9
|
isInverse(type: string, subType?: Str): boolean;
|
|
10
10
|
isLinear(type: string, subType?: Str): boolean;
|
|
11
11
|
setSandboxMode(enable: boolean): void;
|
|
12
|
-
convertExpireDate(date: any): string;
|
|
13
12
|
createExpiredOptionMarket(symbol: string): MarketInterface;
|
|
14
13
|
market(symbol: string): MarketInterface;
|
|
15
14
|
safeMarket(marketId?: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
|
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 = {}) {
|