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/indodax.js
CHANGED
|
@@ -479,7 +479,7 @@ export default class indodax extends Exchange {
|
|
|
479
479
|
// }
|
|
480
480
|
// }
|
|
481
481
|
//
|
|
482
|
-
const ticker = this.
|
|
482
|
+
const ticker = this.safeDict(response, 'ticker', {});
|
|
483
483
|
return this.parseTicker(ticker, market);
|
|
484
484
|
}
|
|
485
485
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
@@ -510,7 +510,7 @@ export default class indodax extends Exchange {
|
|
|
510
510
|
// }
|
|
511
511
|
//
|
|
512
512
|
const response = await this.publicGetApiTickerAll(params);
|
|
513
|
-
const tickers = this.
|
|
513
|
+
const tickers = this.safeList(response, 'tickers');
|
|
514
514
|
return this.parseTickers(tickers, symbols);
|
|
515
515
|
}
|
|
516
516
|
parseTrade(trade, market = undefined) {
|
package/js/src/kraken.js
CHANGED
|
@@ -1000,7 +1000,7 @@ export default class kraken extends Exchange {
|
|
|
1000
1000
|
// }
|
|
1001
1001
|
// }
|
|
1002
1002
|
const result = this.safeValue(response, 'result', {});
|
|
1003
|
-
const ohlcvs = this.
|
|
1003
|
+
const ohlcvs = this.safeList(result, market['id'], []);
|
|
1004
1004
|
return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
|
|
1005
1005
|
}
|
|
1006
1006
|
parseLedgerEntryType(type) {
|
|
@@ -1389,7 +1389,7 @@ export default class kraken extends Exchange {
|
|
|
1389
1389
|
// }
|
|
1390
1390
|
// }
|
|
1391
1391
|
//
|
|
1392
|
-
const result = this.
|
|
1392
|
+
const result = this.safeDict(response, 'result');
|
|
1393
1393
|
return this.parseOrder(result);
|
|
1394
1394
|
}
|
|
1395
1395
|
findMarketByAltnameOrId(id) {
|
|
@@ -1821,7 +1821,7 @@ export default class kraken extends Exchange {
|
|
|
1821
1821
|
// }
|
|
1822
1822
|
// }
|
|
1823
1823
|
//
|
|
1824
|
-
const data = this.
|
|
1824
|
+
const data = this.safeDict(response, 'result', {});
|
|
1825
1825
|
return this.parseOrder(data, market);
|
|
1826
1826
|
}
|
|
1827
1827
|
async fetchOrder(id, symbol = undefined, params = {}) {
|
|
@@ -2159,8 +2159,8 @@ export default class kraken extends Exchange {
|
|
|
2159
2159
|
if (symbol !== undefined) {
|
|
2160
2160
|
market = this.market(symbol);
|
|
2161
2161
|
}
|
|
2162
|
-
const result = this.
|
|
2163
|
-
const orders = this.
|
|
2162
|
+
const result = this.safeDict(response, 'result', {});
|
|
2163
|
+
const orders = this.safeDict(result, 'open', {});
|
|
2164
2164
|
return this.parseOrders(orders, market, since, limit);
|
|
2165
2165
|
}
|
|
2166
2166
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -2232,8 +2232,8 @@ export default class kraken extends Exchange {
|
|
|
2232
2232
|
if (symbol !== undefined) {
|
|
2233
2233
|
market = this.market(symbol);
|
|
2234
2234
|
}
|
|
2235
|
-
const result = this.
|
|
2236
|
-
const orders = this.
|
|
2235
|
+
const result = this.safeDict(response, 'result', {});
|
|
2236
|
+
const orders = this.safeDict(result, 'closed', {});
|
|
2237
2237
|
return this.parseOrders(orders, market, since, limit);
|
|
2238
2238
|
}
|
|
2239
2239
|
parseTransactionStatus(status) {
|
|
@@ -2693,7 +2693,7 @@ export default class kraken extends Exchange {
|
|
|
2693
2693
|
// }
|
|
2694
2694
|
// }
|
|
2695
2695
|
//
|
|
2696
|
-
const result = this.
|
|
2696
|
+
const result = this.safeDict(response, 'result', {});
|
|
2697
2697
|
return this.parseTransaction(result, currency);
|
|
2698
2698
|
}
|
|
2699
2699
|
throw new ExchangeError(this.id + " withdraw() requires a 'key' parameter (withdrawal key name, as set up on your account)");
|
package/js/src/krakenfutures.js
CHANGED
|
@@ -537,7 +537,7 @@ export default class krakenfutures extends Exchange {
|
|
|
537
537
|
// "serverTime": "2022-02-18T14:16:29.440Z"
|
|
538
538
|
// }
|
|
539
539
|
//
|
|
540
|
-
const tickers = this.
|
|
540
|
+
const tickers = this.safeList(response, 'tickers');
|
|
541
541
|
return this.parseTickers(tickers, symbols);
|
|
542
542
|
}
|
|
543
543
|
parseTicker(ticker, market = undefined) {
|
|
@@ -675,7 +675,7 @@ export default class krakenfutures extends Exchange {
|
|
|
675
675
|
// "more_candles": true
|
|
676
676
|
// }
|
|
677
677
|
//
|
|
678
|
-
const candles = this.
|
|
678
|
+
const candles = this.safeList(response, 'candles');
|
|
679
679
|
return this.parseOHLCVs(candles, market, timeframe, since, limit);
|
|
680
680
|
}
|
|
681
681
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -1138,7 +1138,7 @@ export default class krakenfutures extends Exchange {
|
|
|
1138
1138
|
// ]
|
|
1139
1139
|
// }
|
|
1140
1140
|
//
|
|
1141
|
-
const data = this.
|
|
1141
|
+
const data = this.safeList(response, 'batchStatus', []);
|
|
1142
1142
|
return this.parseOrders(data);
|
|
1143
1143
|
}
|
|
1144
1144
|
async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
@@ -1255,7 +1255,7 @@ export default class krakenfutures extends Exchange {
|
|
|
1255
1255
|
// }
|
|
1256
1256
|
// ]
|
|
1257
1257
|
// }
|
|
1258
|
-
const batchStatus = this.
|
|
1258
|
+
const batchStatus = this.safeList(response, 'batchStatus', []);
|
|
1259
1259
|
return this.parseOrders(batchStatus);
|
|
1260
1260
|
}
|
|
1261
1261
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -1293,7 +1293,7 @@ export default class krakenfutures extends Exchange {
|
|
|
1293
1293
|
market = this.market(symbol);
|
|
1294
1294
|
}
|
|
1295
1295
|
const response = await this.privateGetOpenorders(params);
|
|
1296
|
-
const orders = this.
|
|
1296
|
+
const orders = this.safeList(response, 'openOrders', []);
|
|
1297
1297
|
return this.parseOrders(orders, market, since, limit);
|
|
1298
1298
|
}
|
|
1299
1299
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -2362,7 +2362,7 @@ export default class krakenfutures extends Exchange {
|
|
|
2362
2362
|
// "serverTime": "2018-07-19T11:32:39.433Z"
|
|
2363
2363
|
// }
|
|
2364
2364
|
//
|
|
2365
|
-
const data = this.
|
|
2365
|
+
const data = this.safeList(response, 'instruments');
|
|
2366
2366
|
return this.parseLeverageTiers(data, symbols, 'symbol');
|
|
2367
2367
|
}
|
|
2368
2368
|
parseMarketLeverageTiers(info, market = undefined) {
|
package/js/src/kucoin.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export default class kucoin extends Exchange {
|
|
|
71
71
|
createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
|
|
72
72
|
createMarketSellOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
|
|
73
73
|
createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
|
|
74
|
+
marketOrderAmountToPrecision(symbol: string, amount: any): any;
|
|
74
75
|
createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
|
|
75
76
|
editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
|
|
76
77
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
package/js/src/kucoin.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import Exchange from './abstract/kucoin.js';
|
|
9
9
|
import { ExchangeError, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, AccountSuspended, InvalidNonce, NotSupported, BadRequest, AuthenticationError, BadSymbol, RateLimitExceeded, PermissionDenied, InvalidAddress, ArgumentsRequired } from './base/errors.js';
|
|
10
10
|
import { Precise } from './base/Precise.js';
|
|
11
|
-
import { TICK_SIZE } from './base/functions/number.js';
|
|
11
|
+
import { TICK_SIZE, TRUNCATE } from './base/functions/number.js';
|
|
12
12
|
import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
14
|
/**
|
|
@@ -426,6 +426,7 @@ export default class kucoin extends Exchange {
|
|
|
426
426
|
'Order size below the minimum requirement.': InvalidOrder,
|
|
427
427
|
'The withdrawal amount is below the minimum requirement.': ExchangeError,
|
|
428
428
|
'Unsuccessful! Exceeded the max. funds out-transfer limit': InsufficientFunds,
|
|
429
|
+
'The amount increment is invalid.': BadRequest,
|
|
429
430
|
'400': BadRequest,
|
|
430
431
|
'401': AuthenticationError,
|
|
431
432
|
'403': NotSupported,
|
|
@@ -2163,6 +2164,14 @@ export default class kucoin extends Exchange {
|
|
|
2163
2164
|
data = this.safeList(data, 'data', []);
|
|
2164
2165
|
return this.parseOrders(data);
|
|
2165
2166
|
}
|
|
2167
|
+
marketOrderAmountToPrecision(symbol, amount) {
|
|
2168
|
+
const market = this.market(symbol);
|
|
2169
|
+
const result = this.decimalToPrecision(amount, TRUNCATE, market['info']['quoteIncrement'], this.precisionMode, this.paddingMode);
|
|
2170
|
+
if (result === '0') {
|
|
2171
|
+
throw new InvalidOrder(this.id + ' amount of ' + market['symbol'] + ' must be greater than minimum amount precision of ' + this.numberToString(market['precision']['amount']));
|
|
2172
|
+
}
|
|
2173
|
+
return result;
|
|
2174
|
+
}
|
|
2166
2175
|
createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
|
|
2167
2176
|
const market = this.market(symbol);
|
|
2168
2177
|
// required param, cannot be used twice
|
|
@@ -2183,7 +2192,7 @@ export default class kucoin extends Exchange {
|
|
|
2183
2192
|
if (quoteAmount !== undefined) {
|
|
2184
2193
|
params = this.omit(params, ['cost', 'funds']);
|
|
2185
2194
|
// kucoin uses base precision even for quote values
|
|
2186
|
-
costString = this.
|
|
2195
|
+
costString = this.marketOrderAmountToPrecision(symbol, quoteAmount);
|
|
2187
2196
|
request['funds'] = costString;
|
|
2188
2197
|
}
|
|
2189
2198
|
else {
|
|
@@ -2501,8 +2510,12 @@ export default class kucoin extends Exchange {
|
|
|
2501
2510
|
// ]
|
|
2502
2511
|
// }
|
|
2503
2512
|
// }
|
|
2513
|
+
const listData = this.safeList(response, 'data');
|
|
2514
|
+
if (listData !== undefined) {
|
|
2515
|
+
return this.parseOrders(listData, market, since, limit);
|
|
2516
|
+
}
|
|
2504
2517
|
const responseData = this.safeDict(response, 'data', {});
|
|
2505
|
-
const orders = this.
|
|
2518
|
+
const orders = this.safeList(responseData, 'items', []);
|
|
2506
2519
|
return this.parseOrders(orders, market, since, limit);
|
|
2507
2520
|
}
|
|
2508
2521
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
package/js/src/kucoinfutures.js
CHANGED
|
@@ -600,7 +600,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
600
600
|
// ]
|
|
601
601
|
// }
|
|
602
602
|
//
|
|
603
|
-
const data = this.
|
|
603
|
+
const data = this.safeList(response, 'data', []);
|
|
604
604
|
return this.parseOHLCVs(data, market, timeframe, since, limit);
|
|
605
605
|
}
|
|
606
606
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -1073,7 +1073,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1073
1073
|
// }
|
|
1074
1074
|
// }
|
|
1075
1075
|
//
|
|
1076
|
-
const data = this.
|
|
1076
|
+
const data = this.safeDict(response, 'data', {});
|
|
1077
1077
|
return this.parsePosition(data, market);
|
|
1078
1078
|
}
|
|
1079
1079
|
async fetchPositions(symbols = undefined, params = {}) {
|
|
@@ -1134,7 +1134,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1134
1134
|
// ]
|
|
1135
1135
|
// }
|
|
1136
1136
|
//
|
|
1137
|
-
const data = this.
|
|
1137
|
+
const data = this.safeList(response, 'data');
|
|
1138
1138
|
return this.parsePositions(data, symbols);
|
|
1139
1139
|
}
|
|
1140
1140
|
parsePosition(position, market = undefined) {
|
|
@@ -1282,7 +1282,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1282
1282
|
// },
|
|
1283
1283
|
// }
|
|
1284
1284
|
//
|
|
1285
|
-
const data = this.
|
|
1285
|
+
const data = this.safeDict(response, 'data', {});
|
|
1286
1286
|
return this.parseOrder(data, market);
|
|
1287
1287
|
}
|
|
1288
1288
|
async createOrders(orders, params = {}) {
|
|
@@ -1331,7 +1331,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1331
1331
|
// ]
|
|
1332
1332
|
// }
|
|
1333
1333
|
//
|
|
1334
|
-
const data = this.
|
|
1334
|
+
const data = this.safeList(response, 'data', []);
|
|
1335
1335
|
return this.parseOrders(data);
|
|
1336
1336
|
}
|
|
1337
1337
|
createContractOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
|
|
@@ -1737,7 +1737,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1737
1737
|
// }
|
|
1738
1738
|
//
|
|
1739
1739
|
const responseData = this.safeValue(response, 'data', {});
|
|
1740
|
-
const orders = this.
|
|
1740
|
+
const orders = this.safeList(responseData, 'items', []);
|
|
1741
1741
|
return this.parseOrders(orders, market, since, limit);
|
|
1742
1742
|
}
|
|
1743
1743
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1834,7 +1834,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
1834
1834
|
// }
|
|
1835
1835
|
//
|
|
1836
1836
|
const market = (symbol !== undefined) ? this.market(symbol) : undefined;
|
|
1837
|
-
const responseData = this.
|
|
1837
|
+
const responseData = this.safeDict(response, 'data');
|
|
1838
1838
|
return this.parseOrder(responseData, market);
|
|
1839
1839
|
}
|
|
1840
1840
|
parseOrder(order, market = undefined) {
|
|
@@ -2252,7 +2252,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
2252
2252
|
// ]
|
|
2253
2253
|
// }
|
|
2254
2254
|
//
|
|
2255
|
-
const trades = this.
|
|
2255
|
+
const trades = this.safeList(response, 'data', []);
|
|
2256
2256
|
return this.parseTrades(trades, market, since, limit);
|
|
2257
2257
|
}
|
|
2258
2258
|
parseTrade(trade, market = undefined) {
|
package/js/src/kuna.js
CHANGED
|
@@ -657,7 +657,7 @@ export default class kuna extends Exchange {
|
|
|
657
657
|
// }
|
|
658
658
|
// }
|
|
659
659
|
//
|
|
660
|
-
const data = this.
|
|
660
|
+
const data = this.safeDict(response, 'data', {});
|
|
661
661
|
return this.parseOrderBook(data, market['symbol'], undefined, 'bids', 'asks', 0, 1);
|
|
662
662
|
}
|
|
663
663
|
parseTicker(ticker, market = undefined) {
|
|
@@ -738,7 +738,7 @@ export default class kuna extends Exchange {
|
|
|
738
738
|
// ]
|
|
739
739
|
// }
|
|
740
740
|
//
|
|
741
|
-
const data = this.
|
|
741
|
+
const data = this.safeList(response, 'data', []);
|
|
742
742
|
return this.parseTickers(data, symbols, params);
|
|
743
743
|
}
|
|
744
744
|
async fetchTicker(symbol, params = {}) {
|
|
@@ -778,7 +778,7 @@ export default class kuna extends Exchange {
|
|
|
778
778
|
// }
|
|
779
779
|
//
|
|
780
780
|
const data = this.safeValue(response, 'data', []);
|
|
781
|
-
const ticker = this.
|
|
781
|
+
const ticker = this.safeDict(data, 0);
|
|
782
782
|
return this.parseTicker(ticker, market);
|
|
783
783
|
}
|
|
784
784
|
async fetchL3OrderBook(symbol, limit = undefined, params = {}) {
|
|
@@ -995,7 +995,7 @@ export default class kuna extends Exchange {
|
|
|
995
995
|
// }
|
|
996
996
|
// }
|
|
997
997
|
//
|
|
998
|
-
const data = this.
|
|
998
|
+
const data = this.safeDict(response, 'data', {});
|
|
999
999
|
return this.parseOrder(data, market);
|
|
1000
1000
|
}
|
|
1001
1001
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
@@ -1055,7 +1055,7 @@ export default class kuna extends Exchange {
|
|
|
1055
1055
|
// ]
|
|
1056
1056
|
// }
|
|
1057
1057
|
//
|
|
1058
|
-
const data = this.
|
|
1058
|
+
const data = this.safeList(response, 'data', []);
|
|
1059
1059
|
return this.parseOrders(data);
|
|
1060
1060
|
}
|
|
1061
1061
|
parseOrderStatus(status) {
|
|
@@ -1201,7 +1201,7 @@ export default class kuna extends Exchange {
|
|
|
1201
1201
|
// }
|
|
1202
1202
|
// }
|
|
1203
1203
|
//
|
|
1204
|
-
const data = this.
|
|
1204
|
+
const data = this.safeDict(response, 'data', {});
|
|
1205
1205
|
return this.parseOrder(data);
|
|
1206
1206
|
}
|
|
1207
1207
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1260,7 +1260,7 @@ export default class kuna extends Exchange {
|
|
|
1260
1260
|
// ]
|
|
1261
1261
|
// }
|
|
1262
1262
|
//
|
|
1263
|
-
const data = this.
|
|
1263
|
+
const data = this.safeList(response, 'data', []);
|
|
1264
1264
|
return this.parseOrders(data, market, since, limit);
|
|
1265
1265
|
}
|
|
1266
1266
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1344,7 +1344,7 @@ export default class kuna extends Exchange {
|
|
|
1344
1344
|
// ]
|
|
1345
1345
|
// }
|
|
1346
1346
|
//
|
|
1347
|
-
const data = this.
|
|
1347
|
+
const data = this.safeList(response, 'data', []);
|
|
1348
1348
|
return this.parseOrders(data, market, since, limit);
|
|
1349
1349
|
}
|
|
1350
1350
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1390,7 +1390,7 @@ export default class kuna extends Exchange {
|
|
|
1390
1390
|
// ]
|
|
1391
1391
|
// }
|
|
1392
1392
|
//
|
|
1393
|
-
const data = this.
|
|
1393
|
+
const data = this.safeList(response, 'data');
|
|
1394
1394
|
return this.parseTrades(data, market, since, limit);
|
|
1395
1395
|
}
|
|
1396
1396
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -1443,7 +1443,7 @@ export default class kuna extends Exchange {
|
|
|
1443
1443
|
// }
|
|
1444
1444
|
// }
|
|
1445
1445
|
//
|
|
1446
|
-
const data = this.
|
|
1446
|
+
const data = this.safeDict(response, 'data', {});
|
|
1447
1447
|
return this.parseTransaction(data, currency);
|
|
1448
1448
|
}
|
|
1449
1449
|
async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1511,7 +1511,7 @@ export default class kuna extends Exchange {
|
|
|
1511
1511
|
// ]
|
|
1512
1512
|
// }
|
|
1513
1513
|
//
|
|
1514
|
-
const data = this.
|
|
1514
|
+
const data = this.safeList(response, 'data', []);
|
|
1515
1515
|
return this.parseTransactions(data, currency);
|
|
1516
1516
|
}
|
|
1517
1517
|
async fetchWithdrawal(id, code = undefined, params = {}) {
|
|
@@ -1551,7 +1551,7 @@ export default class kuna extends Exchange {
|
|
|
1551
1551
|
// }
|
|
1552
1552
|
// }
|
|
1553
1553
|
//
|
|
1554
|
-
const data = this.
|
|
1554
|
+
const data = this.safeDict(response, 'data', {});
|
|
1555
1555
|
return this.parseTransaction(data);
|
|
1556
1556
|
}
|
|
1557
1557
|
async createDepositAddress(code, params = {}) {
|
|
@@ -1579,7 +1579,7 @@ export default class kuna extends Exchange {
|
|
|
1579
1579
|
// }
|
|
1580
1580
|
// }
|
|
1581
1581
|
//
|
|
1582
|
-
const data = this.
|
|
1582
|
+
const data = this.safeDict(response, 'data', {});
|
|
1583
1583
|
return this.parseDepositAddress(data, currency);
|
|
1584
1584
|
}
|
|
1585
1585
|
async fetchDepositAddress(code, params = {}) {
|
|
@@ -1607,7 +1607,7 @@ export default class kuna extends Exchange {
|
|
|
1607
1607
|
// }
|
|
1608
1608
|
// }
|
|
1609
1609
|
//
|
|
1610
|
-
const data = this.
|
|
1610
|
+
const data = this.safeDict(response, 'data', {});
|
|
1611
1611
|
return this.parseDepositAddress(data, currency);
|
|
1612
1612
|
}
|
|
1613
1613
|
parseDepositAddress(depositAddress, currency = undefined) {
|
|
@@ -1705,7 +1705,7 @@ export default class kuna extends Exchange {
|
|
|
1705
1705
|
// ]
|
|
1706
1706
|
// }
|
|
1707
1707
|
//
|
|
1708
|
-
const data = this.
|
|
1708
|
+
const data = this.safeList(response, 'data', []);
|
|
1709
1709
|
return this.parseTransactions(data, currency);
|
|
1710
1710
|
}
|
|
1711
1711
|
async fetchDeposit(id, code = undefined, params = {}) {
|
|
@@ -1749,7 +1749,7 @@ export default class kuna extends Exchange {
|
|
|
1749
1749
|
// }
|
|
1750
1750
|
// }
|
|
1751
1751
|
//
|
|
1752
|
-
const data = this.
|
|
1752
|
+
const data = this.safeDict(response, 'data', {});
|
|
1753
1753
|
return this.parseTransaction(data, currency);
|
|
1754
1754
|
}
|
|
1755
1755
|
parseTransaction(transaction, currency = undefined) {
|
package/js/src/latoken.js
CHANGED
|
@@ -1460,7 +1460,7 @@ export default class latoken extends Exchange {
|
|
|
1460
1460
|
if (code !== undefined) {
|
|
1461
1461
|
currency = this.currency(code);
|
|
1462
1462
|
}
|
|
1463
|
-
const content = this.
|
|
1463
|
+
const content = this.safeList(response, 'content', []);
|
|
1464
1464
|
return this.parseTransactions(content, currency, since, limit);
|
|
1465
1465
|
}
|
|
1466
1466
|
parseTransaction(transaction, currency = undefined) {
|
|
@@ -1587,7 +1587,7 @@ export default class latoken extends Exchange {
|
|
|
1587
1587
|
// "hasContent": true
|
|
1588
1588
|
// }
|
|
1589
1589
|
//
|
|
1590
|
-
const transfers = this.
|
|
1590
|
+
const transfers = this.safeList(response, 'content', []);
|
|
1591
1591
|
return this.parseTransfers(transfers, currency, since, limit);
|
|
1592
1592
|
}
|
|
1593
1593
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
package/js/src/lbank.js
CHANGED
|
@@ -635,7 +635,7 @@ export default class lbank extends Exchange {
|
|
|
635
635
|
// }
|
|
636
636
|
//
|
|
637
637
|
const data = this.safeValue(response, 'data', []);
|
|
638
|
-
const first = this.
|
|
638
|
+
const first = this.safeDict(data, 0, {});
|
|
639
639
|
return this.parseTicker(first, market);
|
|
640
640
|
}
|
|
641
641
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
@@ -715,7 +715,7 @@ export default class lbank extends Exchange {
|
|
|
715
715
|
// "success": true
|
|
716
716
|
// }
|
|
717
717
|
//
|
|
718
|
-
const data = this.
|
|
718
|
+
const data = this.safeList(response, 'data', []);
|
|
719
719
|
return this.parseTickers(data, symbols);
|
|
720
720
|
}
|
|
721
721
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
@@ -961,7 +961,7 @@ export default class lbank extends Exchange {
|
|
|
961
961
|
// "ts":1647021999308
|
|
962
962
|
// }
|
|
963
963
|
//
|
|
964
|
-
const trades = this.
|
|
964
|
+
const trades = this.safeList(response, 'data', []);
|
|
965
965
|
return this.parseTrades(trades, market, since, limit);
|
|
966
966
|
}
|
|
967
967
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -1596,7 +1596,7 @@ export default class lbank extends Exchange {
|
|
|
1596
1596
|
// "ts":1648164471827
|
|
1597
1597
|
// }
|
|
1598
1598
|
//
|
|
1599
|
-
const result = this.
|
|
1599
|
+
const result = this.safeDict(response, 'data', {});
|
|
1600
1600
|
return this.parseOrder(result);
|
|
1601
1601
|
}
|
|
1602
1602
|
async fetchOrderDefault(id, symbol = undefined, params = {}) {
|
|
@@ -1702,7 +1702,7 @@ export default class lbank extends Exchange {
|
|
|
1702
1702
|
// "ts":1648509742164
|
|
1703
1703
|
// }
|
|
1704
1704
|
//
|
|
1705
|
-
const trades = this.
|
|
1705
|
+
const trades = this.safeList(response, 'data', []);
|
|
1706
1706
|
return this.parseTrades(trades, market, since, limit);
|
|
1707
1707
|
}
|
|
1708
1708
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1762,7 +1762,7 @@ export default class lbank extends Exchange {
|
|
|
1762
1762
|
// }
|
|
1763
1763
|
//
|
|
1764
1764
|
const result = this.safeValue(response, 'data', {});
|
|
1765
|
-
const orders = this.
|
|
1765
|
+
const orders = this.safeList(result, 'orders', []);
|
|
1766
1766
|
return this.parseOrders(orders, market, since, limit);
|
|
1767
1767
|
}
|
|
1768
1768
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -1819,7 +1819,7 @@ export default class lbank extends Exchange {
|
|
|
1819
1819
|
// }
|
|
1820
1820
|
//
|
|
1821
1821
|
const result = this.safeValue(response, 'data', {});
|
|
1822
|
-
const orders = this.
|
|
1822
|
+
const orders = this.safeList(result, 'orders', []);
|
|
1823
1823
|
return this.parseOrders(orders, market, since, limit);
|
|
1824
1824
|
}
|
|
1825
1825
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
@@ -2231,7 +2231,7 @@ export default class lbank extends Exchange {
|
|
|
2231
2231
|
// }
|
|
2232
2232
|
//
|
|
2233
2233
|
const data = this.safeValue(response, 'data', {});
|
|
2234
|
-
const deposits = this.
|
|
2234
|
+
const deposits = this.safeList(data, 'depositOrders', []);
|
|
2235
2235
|
return this.parseTransactions(deposits, currency, since, limit);
|
|
2236
2236
|
}
|
|
2237
2237
|
async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -2288,7 +2288,7 @@ export default class lbank extends Exchange {
|
|
|
2288
2288
|
// }
|
|
2289
2289
|
//
|
|
2290
2290
|
const data = this.safeValue(response, 'data', {});
|
|
2291
|
-
const withdraws = this.
|
|
2291
|
+
const withdraws = this.safeList(data, 'withdraws', []);
|
|
2292
2292
|
return this.parseTransactions(withdraws, currency, since, limit);
|
|
2293
2293
|
}
|
|
2294
2294
|
async fetchTransactionFees(codes = undefined, params = {}) {
|
|
@@ -2506,7 +2506,7 @@ export default class lbank extends Exchange {
|
|
|
2506
2506
|
// "code": 0
|
|
2507
2507
|
// }
|
|
2508
2508
|
//
|
|
2509
|
-
const data = this.
|
|
2509
|
+
const data = this.safeList(response, 'data', []);
|
|
2510
2510
|
return this.parseDepositWithdrawFees(data, codes, 'coin');
|
|
2511
2511
|
}
|
|
2512
2512
|
async fetchPublicDepositWithdrawFees(codes = undefined, params = {}) {
|
package/js/src/luno.js
CHANGED
|
@@ -488,7 +488,7 @@ export default class luno extends Exchange {
|
|
|
488
488
|
request['pair'] = market['id'];
|
|
489
489
|
}
|
|
490
490
|
const response = await this.privateGetListorders(this.extend(request, params));
|
|
491
|
-
const orders = this.
|
|
491
|
+
const orders = this.safeList(response, 'orders', []);
|
|
492
492
|
return this.parseOrders(orders, market, since, limit);
|
|
493
493
|
}
|
|
494
494
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -751,7 +751,7 @@ export default class luno extends Exchange {
|
|
|
751
751
|
// ]
|
|
752
752
|
// }
|
|
753
753
|
//
|
|
754
|
-
const trades = this.
|
|
754
|
+
const trades = this.safeList(response, 'trades', []);
|
|
755
755
|
return this.parseTrades(trades, market, since, limit);
|
|
756
756
|
}
|
|
757
757
|
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
@@ -797,7 +797,7 @@ export default class luno extends Exchange {
|
|
|
797
797
|
// "pair": "XBTEUR"
|
|
798
798
|
// }
|
|
799
799
|
//
|
|
800
|
-
const ohlcvs = this.
|
|
800
|
+
const ohlcvs = this.safeList(response, 'candles', []);
|
|
801
801
|
return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
|
|
802
802
|
}
|
|
803
803
|
parseOHLCV(ohlcv, market = undefined) {
|
|
@@ -866,7 +866,7 @@ export default class luno extends Exchange {
|
|
|
866
866
|
// ]
|
|
867
867
|
// }
|
|
868
868
|
//
|
|
869
|
-
const trades = this.
|
|
869
|
+
const trades = this.safeList(response, 'trades', []);
|
|
870
870
|
return this.parseTrades(trades, market, since, limit);
|
|
871
871
|
}
|
|
872
872
|
async fetchTradingFee(symbol, params = {}) {
|
package/js/src/mercado.js
CHANGED
|
@@ -517,7 +517,7 @@ export default class mercado extends Exchange {
|
|
|
517
517
|
// }
|
|
518
518
|
//
|
|
519
519
|
const responseData = this.safeValue(response, 'response_data', {});
|
|
520
|
-
const order = this.
|
|
520
|
+
const order = this.safeDict(responseData, 'order', {});
|
|
521
521
|
return this.parseOrder(order, market);
|
|
522
522
|
}
|
|
523
523
|
parseOrderStatus(status) {
|
|
@@ -620,7 +620,7 @@ export default class mercado extends Exchange {
|
|
|
620
620
|
};
|
|
621
621
|
const response = await this.privatePostGetOrder(this.extend(request, params));
|
|
622
622
|
const responseData = this.safeValue(response, 'response_data', {});
|
|
623
|
-
const order = this.
|
|
623
|
+
const order = this.safeDict(responseData, 'order');
|
|
624
624
|
return this.parseOrder(order, market);
|
|
625
625
|
}
|
|
626
626
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -687,7 +687,7 @@ export default class mercado extends Exchange {
|
|
|
687
687
|
// }
|
|
688
688
|
//
|
|
689
689
|
const responseData = this.safeValue(response, 'response_data', {});
|
|
690
|
-
const withdrawal = this.
|
|
690
|
+
const withdrawal = this.safeDict(responseData, 'withdrawal');
|
|
691
691
|
return this.parseTransaction(withdrawal, currency);
|
|
692
692
|
}
|
|
693
693
|
parseTransaction(transaction, currency = undefined) {
|
|
@@ -792,7 +792,7 @@ export default class mercado extends Exchange {
|
|
|
792
792
|
};
|
|
793
793
|
const response = await this.privatePostListOrders(this.extend(request, params));
|
|
794
794
|
const responseData = this.safeValue(response, 'response_data', {});
|
|
795
|
-
const orders = this.
|
|
795
|
+
const orders = this.safeList(responseData, 'orders', []);
|
|
796
796
|
return this.parseOrders(orders, market, since, limit);
|
|
797
797
|
}
|
|
798
798
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -817,7 +817,7 @@ export default class mercado extends Exchange {
|
|
|
817
817
|
};
|
|
818
818
|
const response = await this.privatePostListOrders(this.extend(request, params));
|
|
819
819
|
const responseData = this.safeValue(response, 'response_data', {});
|
|
820
|
-
const orders = this.
|
|
820
|
+
const orders = this.safeList(responseData, 'orders', []);
|
|
821
821
|
return this.parseOrders(orders, market, since, limit);
|
|
822
822
|
}
|
|
823
823
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
package/js/src/mexc.js
CHANGED
|
@@ -2834,7 +2834,7 @@ export default class mexc extends Exchange {
|
|
|
2834
2834
|
// ]
|
|
2835
2835
|
// }
|
|
2836
2836
|
//
|
|
2837
|
-
const data = this.
|
|
2837
|
+
const data = this.safeList(response, 'data');
|
|
2838
2838
|
return this.parseOrders(data, market);
|
|
2839
2839
|
}
|
|
2840
2840
|
}
|
|
@@ -3119,7 +3119,7 @@ export default class mexc extends Exchange {
|
|
|
3119
3119
|
// ]
|
|
3120
3120
|
// }
|
|
3121
3121
|
//
|
|
3122
|
-
const data = this.
|
|
3122
|
+
const data = this.safeList(response, 'data');
|
|
3123
3123
|
return this.parseOrders(data, market);
|
|
3124
3124
|
}
|
|
3125
3125
|
}
|
|
@@ -3213,7 +3213,7 @@ export default class mexc extends Exchange {
|
|
|
3213
3213
|
// "code": "0"
|
|
3214
3214
|
// }
|
|
3215
3215
|
//
|
|
3216
|
-
const data = this.
|
|
3216
|
+
const data = this.safeList(response, 'data', []);
|
|
3217
3217
|
return this.parseOrders(data, market);
|
|
3218
3218
|
}
|
|
3219
3219
|
}
|
|
@@ -4356,7 +4356,7 @@ export default class mexc extends Exchange {
|
|
|
4356
4356
|
// ]
|
|
4357
4357
|
// }
|
|
4358
4358
|
//
|
|
4359
|
-
const data = this.
|
|
4359
|
+
const data = this.safeList(response, 'data');
|
|
4360
4360
|
return this.parseLeverageTiers(data, symbols, 'symbol');
|
|
4361
4361
|
}
|
|
4362
4362
|
parseMarketLeverageTiers(info, market = undefined) {
|
|
@@ -4814,7 +4814,7 @@ export default class mexc extends Exchange {
|
|
|
4814
4814
|
// ]
|
|
4815
4815
|
// }
|
|
4816
4816
|
//
|
|
4817
|
-
const data = this.
|
|
4817
|
+
const data = this.safeList(response, 'data', []);
|
|
4818
4818
|
return this.parsePositions(data, symbols);
|
|
4819
4819
|
}
|
|
4820
4820
|
parsePosition(position, market = undefined) {
|
|
@@ -4905,7 +4905,7 @@ export default class mexc extends Exchange {
|
|
|
4905
4905
|
// }
|
|
4906
4906
|
// }
|
|
4907
4907
|
//
|
|
4908
|
-
const data = this.
|
|
4908
|
+
const data = this.safeDict(response, 'data', {});
|
|
4909
4909
|
return this.parseTransfer(data);
|
|
4910
4910
|
}
|
|
4911
4911
|
else if (marketType === 'swap') {
|
package/js/src/ndax.js
CHANGED
|
@@ -1942,7 +1942,7 @@ export default class ndax extends Exchange {
|
|
|
1942
1942
|
// ]
|
|
1943
1943
|
//
|
|
1944
1944
|
const grouped = this.groupBy(response, 'ChangeReason');
|
|
1945
|
-
const trades = this.
|
|
1945
|
+
const trades = this.safeList(grouped, 'Trade', []);
|
|
1946
1946
|
return this.parseTrades(trades, market, since, limit);
|
|
1947
1947
|
}
|
|
1948
1948
|
async fetchDepositAddress(code, params = {}) {
|