ccxt 4.2.82 → 4.2.84
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 +4 -4
- package/dist/ccxt.browser.js +823 -220
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +3 -1
- package/dist/cjs/src/bitget.js +11 -4
- package/dist/cjs/src/bithumb.js +1 -0
- package/dist/cjs/src/bitstamp.js +42 -15
- package/dist/cjs/src/bybit.js +3 -3
- package/dist/cjs/src/coinex.js +1 -2
- package/dist/cjs/src/deribit.js +19 -1
- package/dist/cjs/src/gemini.js +2 -1
- package/dist/cjs/src/htx.js +5 -27
- package/dist/cjs/src/hyperliquid.js +5 -4
- package/dist/cjs/src/kucoin.js +10 -1
- package/dist/cjs/src/kucoinfutures.js +147 -8
- package/dist/cjs/src/pro/bithumb.js +388 -0
- package/dist/cjs/src/pro/bitmart.js +1 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/pro/cex.js +18 -5
- package/dist/cjs/src/pro/okx.js +2 -1
- package/dist/cjs/src/pro/p2b.js +14 -4
- package/dist/cjs/src/pro/woo.js +1 -1
- package/js/ccxt.d.ts +4 -1
- package/js/ccxt.js +3 -1
- package/js/src/abstract/bitstamp.d.ts +1 -1
- package/js/src/ace.d.ts +1 -1
- package/js/src/alpaca.d.ts +1 -1
- package/js/src/ascendex.d.ts +1 -1
- package/js/src/bigone.d.ts +1 -1
- package/js/src/binance.d.ts +1 -1
- package/js/src/bingx.d.ts +1 -1
- package/js/src/bitbank.d.ts +1 -1
- package/js/src/bitbns.d.ts +1 -1
- package/js/src/bitfinex.d.ts +1 -1
- package/js/src/bitfinex2.d.ts +1 -1
- package/js/src/bitflyer.d.ts +1 -1
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +11 -4
- package/js/src/bithumb.d.ts +1 -1
- package/js/src/bithumb.js +1 -0
- package/js/src/bitmart.d.ts +1 -1
- package/js/src/bitmex.d.ts +1 -1
- package/js/src/bitopro.d.ts +1 -1
- package/js/src/bitrue.d.ts +1 -1
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +42 -15
- package/js/src/bitteam.d.ts +1 -1
- package/js/src/bitvavo.d.ts +1 -1
- package/js/src/blockchaincom.d.ts +1 -1
- package/js/src/blofin.d.ts +1 -1
- package/js/src/btcalpha.d.ts +1 -1
- package/js/src/btcmarkets.d.ts +1 -1
- package/js/src/btcturk.d.ts +1 -1
- package/js/src/bybit.d.ts +1 -1
- package/js/src/bybit.js +3 -3
- package/js/src/cex.d.ts +1 -1
- package/js/src/coinbase.d.ts +1 -1
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbasepro.d.ts +1 -1
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinex.js +1 -2
- package/js/src/coinlist.d.ts +1 -1
- package/js/src/coinmate.d.ts +1 -1
- package/js/src/coinmetro.d.ts +1 -1
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinsph.d.ts +1 -1
- package/js/src/cryptocom.d.ts +1 -1
- package/js/src/currencycom.d.ts +1 -1
- package/js/src/delta.d.ts +1 -1
- package/js/src/deribit.d.ts +1 -1
- package/js/src/deribit.js +19 -1
- package/js/src/digifinex.d.ts +1 -1
- package/js/src/exmo.d.ts +1 -1
- package/js/src/gate.d.ts +1 -1
- package/js/src/gemini.d.ts +1 -1
- package/js/src/gemini.js +2 -1
- package/js/src/hitbtc.d.ts +1 -1
- package/js/src/hollaex.d.ts +1 -1
- package/js/src/htx.d.ts +1 -1
- package/js/src/htx.js +5 -27
- package/js/src/huobijp.d.ts +1 -1
- package/js/src/hyperliquid.d.ts +1 -1
- package/js/src/hyperliquid.js +5 -4
- package/js/src/idex.d.ts +1 -1
- package/js/src/independentreserve.d.ts +1 -1
- package/js/src/indodax.d.ts +1 -1
- package/js/src/kraken.d.ts +1 -1
- package/js/src/krakenfutures.d.ts +1 -1
- package/js/src/kucoin.d.ts +2 -1
- package/js/src/kucoin.js +11 -2
- package/js/src/kucoinfutures.d.ts +3 -2
- package/js/src/kucoinfutures.js +147 -8
- package/js/src/kuna.d.ts +1 -1
- package/js/src/latoken.d.ts +1 -1
- package/js/src/lbank.d.ts +1 -1
- package/js/src/luno.d.ts +1 -1
- package/js/src/lykke.d.ts +1 -1
- package/js/src/mercado.d.ts +1 -1
- package/js/src/mexc.d.ts +1 -1
- package/js/src/ndax.d.ts +1 -1
- package/js/src/novadax.d.ts +1 -1
- package/js/src/oceanex.d.ts +1 -1
- package/js/src/okcoin.d.ts +1 -1
- package/js/src/okx.d.ts +1 -1
- package/js/src/onetrading.d.ts +1 -1
- package/js/src/p2b.d.ts +1 -1
- package/js/src/phemex.d.ts +1 -1
- package/js/src/poloniex.d.ts +1 -1
- package/js/src/poloniexfutures.d.ts +1 -1
- package/js/src/pro/bithumb.d.ts +19 -0
- package/js/src/pro/bithumb.js +389 -0
- package/js/src/pro/bitmart.js +1 -1
- package/js/src/pro/bybit.js +1 -1
- package/js/src/pro/cex.js +18 -5
- package/js/src/pro/okx.js +2 -1
- package/js/src/pro/p2b.d.ts +2 -0
- package/js/src/pro/p2b.js +14 -4
- package/js/src/pro/woo.js +1 -1
- package/js/src/probit.d.ts +1 -1
- package/js/src/timex.d.ts +1 -1
- package/js/src/tokocrypto.d.ts +1 -1
- package/js/src/tradeogre.d.ts +1 -1
- package/js/src/upbit.d.ts +1 -1
- package/js/src/wavesexchange.d.ts +1 -1
- package/js/src/wazirx.d.ts +1 -1
- package/js/src/whitebit.d.ts +1 -1
- package/js/src/woo.d.ts +1 -1
- package/js/src/yobit.d.ts +1 -1
- package/js/src/zaif.d.ts +1 -1
- package/js/src/zonda.d.ts +1 -1
- package/package.json +1 -1
- package/skip-tests.json +17 -4
package/dist/ccxt.browser.js
CHANGED
|
@@ -46627,6 +46627,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
46627
46627
|
'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_2__/* .TICK_SIZE */ .sh,
|
|
46628
46628
|
'commonCurrencies': {
|
|
46629
46629
|
'JADE': 'Jade Protocol',
|
|
46630
|
+
'DEGEN': 'DegenReborn',
|
|
46630
46631
|
},
|
|
46631
46632
|
'options': {
|
|
46632
46633
|
'timeframes': {
|
|
@@ -48101,6 +48102,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
48101
48102
|
* @see https://www.bitget.com/api-doc/contract/market/Get-All-Symbol-Ticker
|
|
48102
48103
|
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
48103
48104
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
48105
|
+
* @param {string} [params.subType] *contract only* 'linear', 'inverse'
|
|
48104
48106
|
* @param {string} [params.productType] *contract only* 'USDT-FUTURES', 'USDC-FUTURES', 'COIN-FUTURES', 'SUSDT-FUTURES', 'SUSDC-FUTURES' or 'SCOIN-FUTURES'
|
|
48105
48107
|
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
48106
48108
|
*/
|
|
@@ -48117,16 +48119,21 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
48117
48119
|
market = this.market(symbol);
|
|
48118
48120
|
}
|
|
48119
48121
|
}
|
|
48122
|
+
let response = undefined;
|
|
48120
48123
|
const request = {};
|
|
48121
48124
|
let type = undefined;
|
|
48122
48125
|
[type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
48123
|
-
|
|
48124
|
-
|
|
48126
|
+
// Calls like `.fetchTickers (undefined, {subType:'inverse'})` should be supported for this exchange, so
|
|
48127
|
+
// as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
|
|
48128
|
+
// with higher priority and only default to spot, if `subType` is not set in params
|
|
48129
|
+
const passedSubType = this.safeString(params, 'subType');
|
|
48130
|
+
let productType = undefined;
|
|
48131
|
+
[productType, params] = this.handleProductTypeAndParams(market, params);
|
|
48132
|
+
// only if passedSubType && productType is undefined, then use spot
|
|
48133
|
+
if (type === 'spot' && passedSubType === undefined) {
|
|
48125
48134
|
response = await this.publicSpotGetV2SpotMarketTickers(this.extend(request, params));
|
|
48126
48135
|
}
|
|
48127
48136
|
else {
|
|
48128
|
-
let productType = undefined;
|
|
48129
|
-
[productType, params] = this.handleProductTypeAndParams(market, params);
|
|
48130
48137
|
request['productType'] = productType;
|
|
48131
48138
|
response = await this.publicMixGetV2MixMarketTickers(this.extend(request, params));
|
|
48132
48139
|
}
|
|
@@ -53868,6 +53875,7 @@ class bithumb extends _abstract_bithumb_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
53868
53875
|
'name': 'Bithumb',
|
|
53869
53876
|
'countries': ['KR'],
|
|
53870
53877
|
'rateLimit': 500,
|
|
53878
|
+
'pro': true,
|
|
53871
53879
|
'has': {
|
|
53872
53880
|
'CORS': true,
|
|
53873
53881
|
'spot': true,
|
|
@@ -69380,7 +69388,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
69380
69388
|
'transfer-from-main/': 1,
|
|
69381
69389
|
'my_trading_pairs/': 1,
|
|
69382
69390
|
'fees/trading/': 1,
|
|
69383
|
-
'fees/trading/{
|
|
69391
|
+
'fees/trading/{market_symbol}': 1,
|
|
69384
69392
|
'fees/withdrawal/': 1,
|
|
69385
69393
|
'fees/withdrawal/{currency}/': 1,
|
|
69386
69394
|
'withdrawal-requests/': 1,
|
|
@@ -70380,7 +70388,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70380
70388
|
* @method
|
|
70381
70389
|
* @name bitstamp#fetchTradingFee
|
|
70382
70390
|
* @description fetch the trading fees for a market
|
|
70383
|
-
* @see https://www.bitstamp.net/api/#tag/Fees/operation/
|
|
70391
|
+
* @see https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
|
|
70384
70392
|
* @param {string} symbol unified market symbol
|
|
70385
70393
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
70386
70394
|
* @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
|
|
@@ -70388,21 +70396,35 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70388
70396
|
await this.loadMarkets();
|
|
70389
70397
|
const market = this.market(symbol);
|
|
70390
70398
|
const request = {
|
|
70391
|
-
'
|
|
70399
|
+
'market_symbol': market['id'],
|
|
70392
70400
|
};
|
|
70393
|
-
const response = await this.
|
|
70394
|
-
|
|
70401
|
+
const response = await this.privatePostFeesTrading(this.extend(request, params));
|
|
70402
|
+
//
|
|
70403
|
+
// [
|
|
70404
|
+
// {
|
|
70405
|
+
// "currency_pair": "btcusd",
|
|
70406
|
+
// "fees":
|
|
70407
|
+
// {
|
|
70408
|
+
// "maker": "0.15000",
|
|
70409
|
+
// "taker": "0.16000"
|
|
70410
|
+
// },
|
|
70411
|
+
// "market": "btcusd"
|
|
70412
|
+
// }
|
|
70413
|
+
// ...
|
|
70414
|
+
// ]
|
|
70415
|
+
//
|
|
70416
|
+
const tradingFeesByMarketId = this.indexBy(response, 'currency_pair');
|
|
70417
|
+
const tradingFee = this.safeDict(tradingFeesByMarketId, market['id']);
|
|
70418
|
+
return this.parseTradingFee(tradingFee, market);
|
|
70395
70419
|
}
|
|
70396
70420
|
parseTradingFee(fee, market = undefined) {
|
|
70397
|
-
|
|
70398
|
-
const
|
|
70399
|
-
const dividedFeeString = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringDiv(feeString, '100');
|
|
70400
|
-
const tradeFee = this.parseNumber(dividedFeeString);
|
|
70421
|
+
const marketId = this.safeString(fee, 'market');
|
|
70422
|
+
const fees = this.safeDict(fee, 'fees', {});
|
|
70401
70423
|
return {
|
|
70402
70424
|
'info': fee,
|
|
70403
|
-
'symbol': market
|
|
70404
|
-
'maker':
|
|
70405
|
-
'taker':
|
|
70425
|
+
'symbol': this.safeSymbol(marketId, market),
|
|
70426
|
+
'maker': this.safeNumber(fees, 'maker'),
|
|
70427
|
+
'taker': this.safeNumber(fees, 'taker'),
|
|
70406
70428
|
};
|
|
70407
70429
|
}
|
|
70408
70430
|
parseTradingFees(fees) {
|
|
@@ -70410,8 +70432,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70410
70432
|
const symbols = this.symbols;
|
|
70411
70433
|
for (let i = 0; i < symbols.length; i++) {
|
|
70412
70434
|
const symbol = symbols[i];
|
|
70413
|
-
const
|
|
70414
|
-
const fee = this.parseTradingFee(fees, market);
|
|
70435
|
+
const fee = this.parseTradingFee(fees[i]);
|
|
70415
70436
|
result[symbol] = fee;
|
|
70416
70437
|
}
|
|
70417
70438
|
return result;
|
|
@@ -70426,7 +70447,21 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70426
70447
|
* @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
|
|
70427
70448
|
*/
|
|
70428
70449
|
await this.loadMarkets();
|
|
70429
|
-
const response = await this.
|
|
70450
|
+
const response = await this.privatePostFeesTrading(params);
|
|
70451
|
+
//
|
|
70452
|
+
// [
|
|
70453
|
+
// {
|
|
70454
|
+
// "currency_pair": "btcusd",
|
|
70455
|
+
// "fees":
|
|
70456
|
+
// {
|
|
70457
|
+
// "maker": "0.15000",
|
|
70458
|
+
// "taker": "0.16000"
|
|
70459
|
+
// },
|
|
70460
|
+
// "market": "btcusd"
|
|
70461
|
+
// }
|
|
70462
|
+
// ...
|
|
70463
|
+
// ]
|
|
70464
|
+
//
|
|
70430
70465
|
return this.parseTradingFees(response);
|
|
70431
70466
|
}
|
|
70432
70467
|
async fetchTransactionFees(codes = undefined, params = {}) {
|
|
@@ -84095,7 +84130,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
84095
84130
|
'v5/account/mmp-modify': 5,
|
|
84096
84131
|
'v5/account/mmp-reset': 5,
|
|
84097
84132
|
// asset
|
|
84098
|
-
'v5/asset/transfer/inter-transfer':
|
|
84133
|
+
'v5/asset/transfer/inter-transfer': 50,
|
|
84099
84134
|
'v5/asset/transfer/save-transfer-sub-member': 150,
|
|
84100
84135
|
'v5/asset/transfer/universal-transfer': 10,
|
|
84101
84136
|
'v5/asset/deposit/deposit-to-account': 5,
|
|
@@ -86467,11 +86502,11 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
86467
86502
|
request['category'] = 'option';
|
|
86468
86503
|
}
|
|
86469
86504
|
else if (market['linear']) {
|
|
86470
|
-
// limit: [1,
|
|
86505
|
+
// limit: [1, 500]. Default: 25
|
|
86471
86506
|
request['category'] = 'linear';
|
|
86472
86507
|
}
|
|
86473
86508
|
else if (market['inverse']) {
|
|
86474
|
-
// limit: [1,
|
|
86509
|
+
// limit: [1, 500]. Default: 25
|
|
86475
86510
|
request['category'] = 'inverse';
|
|
86476
86511
|
}
|
|
86477
86512
|
}
|
|
@@ -106320,8 +106355,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
106320
106355
|
// }
|
|
106321
106356
|
//
|
|
106322
106357
|
const marketId = this.safeString(position, 'market');
|
|
106323
|
-
|
|
106324
|
-
market = this.safeMarket(marketId, market, undefined, defaultType);
|
|
106358
|
+
market = this.safeMarket(marketId, market, undefined, 'swap');
|
|
106325
106359
|
const symbol = market['symbol'];
|
|
106326
106360
|
const positionId = this.safeInteger(position, 'position_id');
|
|
106327
106361
|
const marginModeInteger = this.safeInteger(position, 'type');
|
|
@@ -127151,9 +127185,16 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127151
127185
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
127152
127186
|
* @param {int} [limit] the maximum amount of candles to fetch
|
|
127153
127187
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
127188
|
+
* @param {boolean} [params.paginate] whether to paginate the results, set to false by default
|
|
127189
|
+
* @param {int} [params.until] the latest time in ms to fetch ohlcv for
|
|
127154
127190
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
127155
127191
|
*/
|
|
127156
127192
|
await this.loadMarkets();
|
|
127193
|
+
let paginate = false;
|
|
127194
|
+
[paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate');
|
|
127195
|
+
if (paginate) {
|
|
127196
|
+
return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 5000);
|
|
127197
|
+
}
|
|
127157
127198
|
const market = this.market(symbol);
|
|
127158
127199
|
const request = {
|
|
127159
127200
|
'instrument_name': market['id'],
|
|
@@ -127178,6 +127219,11 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127178
127219
|
request['end_timestamp'] = this.sum(since, limit * duration * 1000);
|
|
127179
127220
|
}
|
|
127180
127221
|
}
|
|
127222
|
+
const until = this.safeInteger(params, 'until');
|
|
127223
|
+
if (until !== undefined) {
|
|
127224
|
+
params = this.omit(params, 'until');
|
|
127225
|
+
request['end_timestamp'] = until;
|
|
127226
|
+
}
|
|
127181
127227
|
const response = await this.publicGetGetTradingviewChartData(this.extend(request, params));
|
|
127182
127228
|
//
|
|
127183
127229
|
// {
|
|
@@ -127302,6 +127348,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127302
127348
|
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
127303
127349
|
* @param {int} [limit] the maximum amount of trades to fetch
|
|
127304
127350
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
127351
|
+
* @param {int} [params.until] the latest time in ms to fetch trades for
|
|
127305
127352
|
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
127306
127353
|
*/
|
|
127307
127354
|
await this.loadMarkets();
|
|
@@ -127316,8 +127363,13 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127316
127363
|
if (limit !== undefined) {
|
|
127317
127364
|
request['count'] = Math.min(limit, 1000); // default 10
|
|
127318
127365
|
}
|
|
127366
|
+
const until = this.safeInteger2(params, 'until', 'end_timestamp');
|
|
127367
|
+
if (until !== undefined) {
|
|
127368
|
+
params = this.omit(params, ['until']);
|
|
127369
|
+
request['end_timestamp'] = until;
|
|
127370
|
+
}
|
|
127319
127371
|
let response = undefined;
|
|
127320
|
-
if (since === undefined) {
|
|
127372
|
+
if ((since === undefined) && !('end_timestamp' in request)) {
|
|
127321
127373
|
response = await this.publicGetGetLastTradesByInstrument(this.extend(request, params));
|
|
127322
127374
|
}
|
|
127323
127375
|
else {
|
|
@@ -144254,7 +144306,8 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
144254
144306
|
},
|
|
144255
144307
|
'broad': {
|
|
144256
144308
|
'The Gemini Exchange is currently undergoing maintenance.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OnMaintenance,
|
|
144257
|
-
'We are investigating technical issues with the Gemini Exchange.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144309
|
+
'We are investigating technical issues with the Gemini Exchange.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144310
|
+
'Internal Server Error': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144258
144311
|
},
|
|
144259
144312
|
},
|
|
144260
144313
|
'options': {
|
|
@@ -153753,7 +153806,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
153753
153806
|
// "ts":1639547261293
|
|
153754
153807
|
// }
|
|
153755
153808
|
//
|
|
153756
|
-
//
|
|
153809
|
+
// linear swap, linear future, inverse swap, inverse future
|
|
153757
153810
|
//
|
|
153758
153811
|
// {
|
|
153759
153812
|
// "status":"ok",
|
|
@@ -153770,37 +153823,15 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
153770
153823
|
// "high":"0.10725",
|
|
153771
153824
|
// "amount":"2340267.415144052378486261756692535687481566",
|
|
153772
153825
|
// "count":882,
|
|
153773
|
-
// "vol":"24706"
|
|
153826
|
+
// "vol":"24706",
|
|
153827
|
+
// "trade_turnover":"840726.5048", // only in linear futures
|
|
153828
|
+
// "business_type":"futures", // only in linear futures
|
|
153829
|
+
// "contract_code":"BTC-USDT-CW", // only in linear futures, instead of 'symbol'
|
|
153774
153830
|
// }
|
|
153775
153831
|
// ],
|
|
153776
153832
|
// "ts":1637504679376
|
|
153777
153833
|
// }
|
|
153778
153834
|
//
|
|
153779
|
-
// linear futures
|
|
153780
|
-
//
|
|
153781
|
-
// {
|
|
153782
|
-
// "status":"ok",
|
|
153783
|
-
// "ticks":[
|
|
153784
|
-
// {
|
|
153785
|
-
// "id":1640745627,
|
|
153786
|
-
// "ts":1640745627957,
|
|
153787
|
-
// "ask":[48079.1,20],
|
|
153788
|
-
// "bid":[47713.8,125],
|
|
153789
|
-
// "business_type":"futures",
|
|
153790
|
-
// "contract_code":"BTC-USDT-CW",
|
|
153791
|
-
// "open":"49011.8",
|
|
153792
|
-
// "close":"47934",
|
|
153793
|
-
// "low":"47292.3",
|
|
153794
|
-
// "high":"49011.8",
|
|
153795
|
-
// "amount":"17.398",
|
|
153796
|
-
// "count":1515,
|
|
153797
|
-
// "vol":"17398",
|
|
153798
|
-
// "trade_turnover":"840726.5048"
|
|
153799
|
-
// }
|
|
153800
|
-
// ],
|
|
153801
|
-
// "ts":1640745627988
|
|
153802
|
-
// }
|
|
153803
|
-
//
|
|
153804
153835
|
const tickers = this.safeValue2(response, 'data', 'ticks', []);
|
|
153805
153836
|
const timestamp = this.safeInteger(response, 'ts');
|
|
153806
153837
|
const result = {};
|
|
@@ -164502,7 +164533,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164502
164533
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() requires a leverage parameter');
|
|
164503
164534
|
}
|
|
164504
164535
|
const asset = this.parseToInt(market['baseId']);
|
|
164505
|
-
const isCross = (marginMode === '
|
|
164536
|
+
const isCross = (marginMode === 'cross');
|
|
164506
164537
|
const nonce = this.milliseconds();
|
|
164507
164538
|
params = this.omit(params, ['leverage']);
|
|
164508
164539
|
const updateAction = {
|
|
@@ -164518,9 +164549,10 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164518
164549
|
vaultAddress = vaultAddress.replace('0x', '');
|
|
164519
164550
|
}
|
|
164520
164551
|
}
|
|
164521
|
-
const
|
|
164552
|
+
const extendedAction = this.extend(updateAction, params);
|
|
164553
|
+
const signature = this.signL1Action(extendedAction, nonce, vaultAddress);
|
|
164522
164554
|
const request = {
|
|
164523
|
-
'action':
|
|
164555
|
+
'action': extendedAction,
|
|
164524
164556
|
'nonce': nonce,
|
|
164525
164557
|
'signature': signature,
|
|
164526
164558
|
// 'vaultAddress': vaultAddress,
|
|
@@ -164528,7 +164560,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164528
164560
|
if (vaultAddress !== undefined) {
|
|
164529
164561
|
request['vaultAddress'] = vaultAddress;
|
|
164530
164562
|
}
|
|
164531
|
-
const response = await this.privatePostExchange(
|
|
164563
|
+
const response = await this.privatePostExchange(request);
|
|
164532
164564
|
//
|
|
164533
164565
|
// {
|
|
164534
164566
|
// 'response': {
|
|
@@ -174901,6 +174933,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
174901
174933
|
'Order size below the minimum requirement.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
|
|
174902
174934
|
'The withdrawal amount is below the minimum requirement.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
|
|
174903
174935
|
'Unsuccessful! Exceeded the max. funds out-transfer limit': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
|
|
174936
|
+
'The amount increment is invalid.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
174904
174937
|
'400': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
174905
174938
|
'401': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
|
|
174906
174939
|
'403': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported,
|
|
@@ -176638,6 +176671,14 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
176638
176671
|
data = this.safeList(data, 'data', []);
|
|
176639
176672
|
return this.parseOrders(data);
|
|
176640
176673
|
}
|
|
176674
|
+
marketOrderAmountToPrecision(symbol, amount) {
|
|
176675
|
+
const market = this.market(symbol);
|
|
176676
|
+
const result = this.decimalToPrecision(amount, _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TRUNCATE */ .tk, market['info']['quoteIncrement'], this.precisionMode, this.paddingMode);
|
|
176677
|
+
if (result === '0') {
|
|
176678
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder(this.id + ' amount of ' + market['symbol'] + ' must be greater than minimum amount precision of ' + this.numberToString(market['precision']['amount']));
|
|
176679
|
+
}
|
|
176680
|
+
return result;
|
|
176681
|
+
}
|
|
176641
176682
|
createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
|
|
176642
176683
|
const market = this.market(symbol);
|
|
176643
176684
|
// required param, cannot be used twice
|
|
@@ -176658,7 +176699,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
176658
176699
|
if (quoteAmount !== undefined) {
|
|
176659
176700
|
params = this.omit(params, ['cost', 'funds']);
|
|
176660
176701
|
// kucoin uses base precision even for quote values
|
|
176661
|
-
costString = this.
|
|
176702
|
+
costString = this.marketOrderAmountToPrecision(symbol, quoteAmount);
|
|
176662
176703
|
request['funds'] = costString;
|
|
176663
176704
|
}
|
|
176664
176705
|
else {
|
|
@@ -179294,7 +179335,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179294
179335
|
'fetchPremiumIndexOHLCV': false,
|
|
179295
179336
|
'fetchStatus': true,
|
|
179296
179337
|
'fetchTicker': true,
|
|
179297
|
-
'fetchTickers':
|
|
179338
|
+
'fetchTickers': true,
|
|
179298
179339
|
'fetchTime': true,
|
|
179299
179340
|
'fetchTrades': true,
|
|
179300
179341
|
'fetchTransactionFee': false,
|
|
@@ -179965,6 +180006,85 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179965
180006
|
//
|
|
179966
180007
|
return this.parseTicker(response['data'], market);
|
|
179967
180008
|
}
|
|
180009
|
+
async fetchTickers(symbols = undefined, params = {}) {
|
|
180010
|
+
/**
|
|
180011
|
+
* @method
|
|
180012
|
+
* @name kucoinfutures#fetchTickers
|
|
180013
|
+
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
180014
|
+
* @see https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
|
|
180015
|
+
* @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
180016
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
180017
|
+
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
180018
|
+
*/
|
|
180019
|
+
await this.loadMarkets();
|
|
180020
|
+
symbols = this.marketSymbols(symbols);
|
|
180021
|
+
const response = await this.futuresPublicGetContractsActive(params);
|
|
180022
|
+
//
|
|
180023
|
+
// {
|
|
180024
|
+
// "code": "200000",
|
|
180025
|
+
// "data": {
|
|
180026
|
+
// "symbol": "ETHUSDTM",
|
|
180027
|
+
// "rootSymbol": "USDT",
|
|
180028
|
+
// "type": "FFWCSX",
|
|
180029
|
+
// "firstOpenDate": 1591086000000,
|
|
180030
|
+
// "expireDate": null,
|
|
180031
|
+
// "settleDate": null,
|
|
180032
|
+
// "baseCurrency": "ETH",
|
|
180033
|
+
// "quoteCurrency": "USDT",
|
|
180034
|
+
// "settleCurrency": "USDT",
|
|
180035
|
+
// "maxOrderQty": 1000000,
|
|
180036
|
+
// "maxPrice": 1000000.0000000000,
|
|
180037
|
+
// "lotSize": 1,
|
|
180038
|
+
// "tickSize": 0.05,
|
|
180039
|
+
// "indexPriceTickSize": 0.01,
|
|
180040
|
+
// "multiplier": 0.01,
|
|
180041
|
+
// "initialMargin": 0.01,
|
|
180042
|
+
// "maintainMargin": 0.005,
|
|
180043
|
+
// "maxRiskLimit": 1000000,
|
|
180044
|
+
// "minRiskLimit": 1000000,
|
|
180045
|
+
// "riskStep": 500000,
|
|
180046
|
+
// "makerFeeRate": 0.00020,
|
|
180047
|
+
// "takerFeeRate": 0.00060,
|
|
180048
|
+
// "takerFixFee": 0.0000000000,
|
|
180049
|
+
// "makerFixFee": 0.0000000000,
|
|
180050
|
+
// "settlementFee": null,
|
|
180051
|
+
// "isDeleverage": true,
|
|
180052
|
+
// "isQuanto": true,
|
|
180053
|
+
// "isInverse": false,
|
|
180054
|
+
// "markMethod": "FairPrice",
|
|
180055
|
+
// "fairMethod": "FundingRate",
|
|
180056
|
+
// "fundingBaseSymbol": ".ETHINT8H",
|
|
180057
|
+
// "fundingQuoteSymbol": ".USDTINT8H",
|
|
180058
|
+
// "fundingRateSymbol": ".ETHUSDTMFPI8H",
|
|
180059
|
+
// "indexSymbol": ".KETHUSDT",
|
|
180060
|
+
// "settlementSymbol": "",
|
|
180061
|
+
// "status": "Open",
|
|
180062
|
+
// "fundingFeeRate": 0.000535,
|
|
180063
|
+
// "predictedFundingFeeRate": 0.002197,
|
|
180064
|
+
// "openInterest": "8724443",
|
|
180065
|
+
// "turnoverOf24h": 341156641.03354263,
|
|
180066
|
+
// "volumeOf24h": 74833.54000000,
|
|
180067
|
+
// "markPrice": 4534.07,
|
|
180068
|
+
// "indexPrice":4531.92,
|
|
180069
|
+
// "lastTradePrice": 4545.4500000000,
|
|
180070
|
+
// "nextFundingRateTime": 25481884,
|
|
180071
|
+
// "maxLeverage": 100,
|
|
180072
|
+
// "sourceExchanges": [ "huobi", "Okex", "Binance", "Kucoin", "Poloniex", "Hitbtc" ],
|
|
180073
|
+
// "premiumsSymbol1M": ".ETHUSDTMPI",
|
|
180074
|
+
// "premiumsSymbol8H": ".ETHUSDTMPI8H",
|
|
180075
|
+
// "fundingBaseSymbol1M": ".ETHINT",
|
|
180076
|
+
// "fundingQuoteSymbol1M": ".USDTINT",
|
|
180077
|
+
// "lowPrice": 4456.90,
|
|
180078
|
+
// "highPrice": 4674.25,
|
|
180079
|
+
// "priceChgPct": 0.0046,
|
|
180080
|
+
// "priceChg": 21.15
|
|
180081
|
+
// }
|
|
180082
|
+
// }
|
|
180083
|
+
//
|
|
180084
|
+
const data = this.safeList(response, 'data', []);
|
|
180085
|
+
const tickers = this.parseTickers(data, symbols);
|
|
180086
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
180087
|
+
}
|
|
179968
180088
|
parseTicker(ticker, market = undefined) {
|
|
179969
180089
|
//
|
|
179970
180090
|
// {
|
|
@@ -179984,16 +180104,76 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179984
180104
|
// }
|
|
179985
180105
|
// }
|
|
179986
180106
|
//
|
|
179987
|
-
|
|
180107
|
+
// from fetchTickers
|
|
180108
|
+
//
|
|
180109
|
+
// {
|
|
180110
|
+
// symbol: "XBTUSDTM",
|
|
180111
|
+
// rootSymbol: "USDT",
|
|
180112
|
+
// type: "FFWCSX",
|
|
180113
|
+
// firstOpenDate: 1585555200000,
|
|
180114
|
+
// expireDate: null,
|
|
180115
|
+
// settleDate: null,
|
|
180116
|
+
// baseCurrency: "XBT",
|
|
180117
|
+
// quoteCurrency: "USDT",
|
|
180118
|
+
// settleCurrency: "USDT",
|
|
180119
|
+
// maxOrderQty: 1000000,
|
|
180120
|
+
// maxPrice: 1000000,
|
|
180121
|
+
// lotSize: 1,
|
|
180122
|
+
// tickSize: 0.1,
|
|
180123
|
+
// indexPriceTickSize: 0.01,
|
|
180124
|
+
// multiplier: 0.001,
|
|
180125
|
+
// initialMargin: 0.008,
|
|
180126
|
+
// maintainMargin: 0.004,
|
|
180127
|
+
// maxRiskLimit: 100000,
|
|
180128
|
+
// minRiskLimit: 100000,
|
|
180129
|
+
// riskStep: 50000,
|
|
180130
|
+
// makerFeeRate: 0.0002,
|
|
180131
|
+
// takerFeeRate: 0.0006,
|
|
180132
|
+
// takerFixFee: 0,
|
|
180133
|
+
// makerFixFee: 0,
|
|
180134
|
+
// settlementFee: null,
|
|
180135
|
+
// isDeleverage: true,
|
|
180136
|
+
// isQuanto: true,
|
|
180137
|
+
// isInverse: false,
|
|
180138
|
+
// markMethod: "FairPrice",
|
|
180139
|
+
// fairMethod: "FundingRate",
|
|
180140
|
+
// fundingBaseSymbol: ".XBTINT8H",
|
|
180141
|
+
// fundingQuoteSymbol: ".USDTINT8H",
|
|
180142
|
+
// fundingRateSymbol: ".XBTUSDTMFPI8H",
|
|
180143
|
+
// indexSymbol: ".KXBTUSDT",
|
|
180144
|
+
// settlementSymbol: "",
|
|
180145
|
+
// status: "Open",
|
|
180146
|
+
// fundingFeeRate: 0.000297,
|
|
180147
|
+
// predictedFundingFeeRate: 0.000327,
|
|
180148
|
+
// fundingRateGranularity: 28800000,
|
|
180149
|
+
// openInterest: "8033200",
|
|
180150
|
+
// turnoverOf24h: 659795309.2524643,
|
|
180151
|
+
// volumeOf24h: 9998.54,
|
|
180152
|
+
// markPrice: 67193.51,
|
|
180153
|
+
// indexPrice: 67184.81,
|
|
180154
|
+
// lastTradePrice: 67191.8,
|
|
180155
|
+
// nextFundingRateTime: 20022985,
|
|
180156
|
+
// maxLeverage: 125,
|
|
180157
|
+
// premiumsSymbol1M: ".XBTUSDTMPI",
|
|
180158
|
+
// premiumsSymbol8H: ".XBTUSDTMPI8H",
|
|
180159
|
+
// fundingBaseSymbol1M: ".XBTINT",
|
|
180160
|
+
// fundingQuoteSymbol1M: ".USDTINT",
|
|
180161
|
+
// lowPrice: 64041.6,
|
|
180162
|
+
// highPrice: 67737.3,
|
|
180163
|
+
// priceChgPct: 0.0447,
|
|
180164
|
+
// priceChg: 2878.7
|
|
180165
|
+
// }
|
|
180166
|
+
//
|
|
179988
180167
|
const marketId = this.safeString(ticker, 'symbol');
|
|
179989
180168
|
market = this.safeMarket(marketId, market, '-');
|
|
180169
|
+
const last = this.safeString2(ticker, 'price', 'lastTradePrice');
|
|
179990
180170
|
const timestamp = this.safeIntegerProduct(ticker, 'ts', 0.000001);
|
|
179991
180171
|
return this.safeTicker({
|
|
179992
180172
|
'symbol': market['symbol'],
|
|
179993
180173
|
'timestamp': timestamp,
|
|
179994
180174
|
'datetime': this.iso8601(timestamp),
|
|
179995
|
-
'high':
|
|
179996
|
-
'low':
|
|
180175
|
+
'high': this.safeString(ticker, 'highPrice'),
|
|
180176
|
+
'low': this.safeString(ticker, 'lowPrice'),
|
|
179997
180177
|
'bid': this.safeString(ticker, 'bestBidPrice'),
|
|
179998
180178
|
'bidVolume': this.safeString(ticker, 'bestBidSize'),
|
|
179999
180179
|
'ask': this.safeString(ticker, 'bestAskPrice'),
|
|
@@ -180003,11 +180183,11 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
180003
180183
|
'close': last,
|
|
180004
180184
|
'last': last,
|
|
180005
180185
|
'previousClose': undefined,
|
|
180006
|
-
'change':
|
|
180007
|
-
'percentage':
|
|
180186
|
+
'change': this.safeString(ticker, 'priceChg'),
|
|
180187
|
+
'percentage': this.safeString(ticker, 'priceChgPct'),
|
|
180008
180188
|
'average': undefined,
|
|
180009
|
-
'baseVolume':
|
|
180010
|
-
'quoteVolume':
|
|
180189
|
+
'baseVolume': this.safeString(ticker, 'volumeOf24h'),
|
|
180190
|
+
'quoteVolume': this.safeString(ticker, 'turnoverOf24h'),
|
|
180011
180191
|
'info': ticker,
|
|
180012
180192
|
}, market);
|
|
180013
180193
|
}
|
|
@@ -235645,6 +235825,402 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
235645
235825
|
}
|
|
235646
235826
|
|
|
235647
235827
|
|
|
235828
|
+
/***/ }),
|
|
235829
|
+
|
|
235830
|
+
/***/ 4922:
|
|
235831
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
235832
|
+
|
|
235833
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
235834
|
+
/* harmony export */ Z: () => (/* binding */ bithumb)
|
|
235835
|
+
/* harmony export */ });
|
|
235836
|
+
/* harmony import */ var _bithumb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5305);
|
|
235837
|
+
/* harmony import */ var _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3020);
|
|
235838
|
+
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6689);
|
|
235839
|
+
// ---------------------------------------------------------------------------
|
|
235840
|
+
|
|
235841
|
+
|
|
235842
|
+
|
|
235843
|
+
// ---------------------------------------------------------------------------
|
|
235844
|
+
class bithumb extends _bithumb_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
235845
|
+
describe() {
|
|
235846
|
+
return this.deepExtend(super.describe(), {
|
|
235847
|
+
'has': {
|
|
235848
|
+
'ws': true,
|
|
235849
|
+
'watchBalance': false,
|
|
235850
|
+
'watchTicker': true,
|
|
235851
|
+
'watchTickers': true,
|
|
235852
|
+
'watchTrades': true,
|
|
235853
|
+
'watchOrderBook': true,
|
|
235854
|
+
'watchOHLCV': false,
|
|
235855
|
+
},
|
|
235856
|
+
'urls': {
|
|
235857
|
+
'api': {
|
|
235858
|
+
'ws': 'wss://pubwss.bithumb.com/pub/ws',
|
|
235859
|
+
},
|
|
235860
|
+
},
|
|
235861
|
+
'options': {},
|
|
235862
|
+
'streaming': {},
|
|
235863
|
+
'exceptions': {},
|
|
235864
|
+
});
|
|
235865
|
+
}
|
|
235866
|
+
async watchTicker(symbol, params = {}) {
|
|
235867
|
+
/**
|
|
235868
|
+
* @method
|
|
235869
|
+
* @name bithumb#watchTicker
|
|
235870
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
235871
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
235872
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
235873
|
+
* @param {string} [params.channel] the channel to subscribe to, tickers by default. Can be tickers, sprd-tickers, index-tickers, block-tickers
|
|
235874
|
+
* @returns {object} a [ticker structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
235875
|
+
*/
|
|
235876
|
+
const url = this.urls['api']['ws'];
|
|
235877
|
+
await this.loadMarkets();
|
|
235878
|
+
const market = this.market(symbol);
|
|
235879
|
+
const messageHash = 'ticker:' + market['symbol'];
|
|
235880
|
+
const request = {
|
|
235881
|
+
'type': 'ticker',
|
|
235882
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
235883
|
+
'tickTypes': [this.safeString(params, 'tickTypes', '24H')],
|
|
235884
|
+
};
|
|
235885
|
+
return await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
235886
|
+
}
|
|
235887
|
+
async watchTickers(symbols = undefined, params = {}) {
|
|
235888
|
+
/**
|
|
235889
|
+
* @method
|
|
235890
|
+
* @name binance#watchTickers
|
|
235891
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
235892
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
235893
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
235894
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
235895
|
+
*/
|
|
235896
|
+
await this.loadMarkets();
|
|
235897
|
+
const url = this.urls['api']['ws'];
|
|
235898
|
+
const marketIds = [];
|
|
235899
|
+
const messageHashes = [];
|
|
235900
|
+
symbols = this.marketSymbols(symbols, undefined, false, true, true);
|
|
235901
|
+
for (let i = 0; i < symbols.length; i++) {
|
|
235902
|
+
const symbol = symbols[i];
|
|
235903
|
+
const market = this.market(symbol);
|
|
235904
|
+
marketIds.push(market['base'] + '_' + market['quote']);
|
|
235905
|
+
messageHashes.push('ticker:' + market['symbol']);
|
|
235906
|
+
}
|
|
235907
|
+
const request = {
|
|
235908
|
+
'type': 'ticker',
|
|
235909
|
+
'symbols': marketIds,
|
|
235910
|
+
'tickTypes': [this.safeString(params, 'tickTypes', '24H')],
|
|
235911
|
+
};
|
|
235912
|
+
const message = this.extend(request, params);
|
|
235913
|
+
const newTicker = await this.watchMultiple(url, messageHashes, message, messageHashes);
|
|
235914
|
+
if (this.newUpdates) {
|
|
235915
|
+
const result = {};
|
|
235916
|
+
result[newTicker['symbol']] = newTicker;
|
|
235917
|
+
return result;
|
|
235918
|
+
}
|
|
235919
|
+
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
235920
|
+
}
|
|
235921
|
+
handleTicker(client, message) {
|
|
235922
|
+
//
|
|
235923
|
+
// {
|
|
235924
|
+
// "type" : "ticker",
|
|
235925
|
+
// "content" : {
|
|
235926
|
+
// "symbol" : "BTC_KRW", // 통화코드
|
|
235927
|
+
// "tickType" : "24H", // 변동 기준시간- 30M, 1H, 12H, 24H, MID
|
|
235928
|
+
// "date" : "20200129", // 일자
|
|
235929
|
+
// "time" : "121844", // 시간
|
|
235930
|
+
// "openPrice" : "2302", // 시가
|
|
235931
|
+
// "closePrice" : "2317", // 종가
|
|
235932
|
+
// "lowPrice" : "2272", // 저가
|
|
235933
|
+
// "highPrice" : "2344", // 고가
|
|
235934
|
+
// "value" : "2831915078.07065789", // 누적거래금액
|
|
235935
|
+
// "volume" : "1222314.51355788", // 누적거래량
|
|
235936
|
+
// "sellVolume" : "760129.34079004", // 매도누적거래량
|
|
235937
|
+
// "buyVolume" : "462185.17276784", // 매수누적거래량
|
|
235938
|
+
// "prevClosePrice" : "2326", // 전일종가
|
|
235939
|
+
// "chgRate" : "0.65", // 변동률
|
|
235940
|
+
// "chgAmt" : "15", // 변동금액
|
|
235941
|
+
// "volumePower" : "60.80" // 체결강도
|
|
235942
|
+
// }
|
|
235943
|
+
// }
|
|
235944
|
+
//
|
|
235945
|
+
const content = this.safeDict(message, 'content', {});
|
|
235946
|
+
const marketId = this.safeString(content, 'symbol');
|
|
235947
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
235948
|
+
const ticker = this.parseWsTicker(content);
|
|
235949
|
+
const messageHash = 'ticker:' + symbol;
|
|
235950
|
+
this.tickers[symbol] = ticker;
|
|
235951
|
+
client.resolve(this.tickers[symbol], messageHash);
|
|
235952
|
+
}
|
|
235953
|
+
parseWsTicker(ticker, market = undefined) {
|
|
235954
|
+
//
|
|
235955
|
+
// {
|
|
235956
|
+
// "symbol" : "BTC_KRW", // 통화코드
|
|
235957
|
+
// "tickType" : "24H", // 변동 기준시간- 30M, 1H, 12H, 24H, MID
|
|
235958
|
+
// "date" : "20200129", // 일자
|
|
235959
|
+
// "time" : "121844", // 시간
|
|
235960
|
+
// "openPrice" : "2302", // 시가
|
|
235961
|
+
// "closePrice" : "2317", // 종가
|
|
235962
|
+
// "lowPrice" : "2272", // 저가
|
|
235963
|
+
// "highPrice" : "2344", // 고가
|
|
235964
|
+
// "value" : "2831915078.07065789", // 누적거래금액
|
|
235965
|
+
// "volume" : "1222314.51355788", // 누적거래량
|
|
235966
|
+
// "sellVolume" : "760129.34079004", // 매도누적거래량
|
|
235967
|
+
// "buyVolume" : "462185.17276784", // 매수누적거래량
|
|
235968
|
+
// "prevClosePrice" : "2326", // 전일종가
|
|
235969
|
+
// "chgRate" : "0.65", // 변동률
|
|
235970
|
+
// "chgAmt" : "15", // 변동금액
|
|
235971
|
+
// "volumePower" : "60.80" // 체결강도
|
|
235972
|
+
// }
|
|
235973
|
+
//
|
|
235974
|
+
const date = this.safeString(ticker, 'date', '');
|
|
235975
|
+
const time = this.safeString(ticker, 'time', '');
|
|
235976
|
+
const datetime = date.slice(0, 4) + '-' + date.slice(4, 6) + '-' + date.slice(6, 8) + 'T' + time.slice(0, 2) + ':' + time.slice(2, 4) + ':' + time.slice(4, 6);
|
|
235977
|
+
const marketId = this.safeString(ticker, 'symbol');
|
|
235978
|
+
return this.safeTicker({
|
|
235979
|
+
'symbol': this.safeSymbol(marketId, market, '_'),
|
|
235980
|
+
'timestamp': this.parse8601(datetime),
|
|
235981
|
+
'datetime': datetime,
|
|
235982
|
+
'high': this.safeString(ticker, 'highPrice'),
|
|
235983
|
+
'low': this.safeString(ticker, 'lowPrice'),
|
|
235984
|
+
'bid': undefined,
|
|
235985
|
+
'bidVolume': this.safeString(ticker, 'buyVolume'),
|
|
235986
|
+
'ask': undefined,
|
|
235987
|
+
'askVolume': this.safeString(ticker, 'sellVolume'),
|
|
235988
|
+
'vwap': undefined,
|
|
235989
|
+
'open': this.safeString(ticker, 'openPrice'),
|
|
235990
|
+
'close': this.safeString(ticker, 'closePrice'),
|
|
235991
|
+
'last': undefined,
|
|
235992
|
+
'previousClose': this.safeString(ticker, 'prevClosePrice'),
|
|
235993
|
+
'change': this.safeString(ticker, 'chgAmt'),
|
|
235994
|
+
'percentage': this.safeString(ticker, 'chgRate'),
|
|
235995
|
+
'average': undefined,
|
|
235996
|
+
'baseVolume': this.safeString(ticker, 'volume'),
|
|
235997
|
+
'quoteVolume': this.safeString(ticker, 'value'),
|
|
235998
|
+
'info': ticker,
|
|
235999
|
+
}, market);
|
|
236000
|
+
}
|
|
236001
|
+
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
236002
|
+
/**
|
|
236003
|
+
* @method
|
|
236004
|
+
* @name bithumb#watchOrderBook
|
|
236005
|
+
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
236006
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
236007
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
236008
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236009
|
+
* @returns {object} A dictionary of [order book structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure} indexed by market symbols
|
|
236010
|
+
*/
|
|
236011
|
+
await this.loadMarkets();
|
|
236012
|
+
const url = this.urls['api']['ws'];
|
|
236013
|
+
const market = this.market(symbol);
|
|
236014
|
+
symbol = market['symbol'];
|
|
236015
|
+
const messageHash = 'orderbook' + ':' + symbol;
|
|
236016
|
+
const request = {
|
|
236017
|
+
'type': 'orderbookdepth',
|
|
236018
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
236019
|
+
};
|
|
236020
|
+
const orderbook = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
236021
|
+
return orderbook.limit();
|
|
236022
|
+
}
|
|
236023
|
+
handleOrderBook(client, message) {
|
|
236024
|
+
//
|
|
236025
|
+
// {
|
|
236026
|
+
// "type" : "orderbookdepth",
|
|
236027
|
+
// "content" : {
|
|
236028
|
+
// "list" : [
|
|
236029
|
+
// {
|
|
236030
|
+
// "symbol" : "BTC_KRW",
|
|
236031
|
+
// "orderType" : "ask", // 주문타입 – bid / ask
|
|
236032
|
+
// "price" : "10593000", // 호가
|
|
236033
|
+
// "quantity" : "1.11223318", // 잔량
|
|
236034
|
+
// "total" : "3" // 건수
|
|
236035
|
+
// },
|
|
236036
|
+
// {"symbol" : "BTC_KRW", "orderType" : "ask", "price" : "10596000", "quantity" : "0.5495", "total" : "8"},
|
|
236037
|
+
// {"symbol" : "BTC_KRW", "orderType" : "ask", "price" : "10598000", "quantity" : "18.2085", "total" : "10"},
|
|
236038
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10532000", "quantity" : "0", "total" : "0"},
|
|
236039
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10572000", "quantity" : "2.3324", "total" : "4"},
|
|
236040
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10571000", "quantity" : "1.469", "total" : "3"},
|
|
236041
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10569000", "quantity" : "0.5152", "total" : "2"}
|
|
236042
|
+
// ],
|
|
236043
|
+
// "datetime":1580268255864325 // 일시
|
|
236044
|
+
// }
|
|
236045
|
+
// }
|
|
236046
|
+
//
|
|
236047
|
+
const content = this.safeDict(message, 'content', {});
|
|
236048
|
+
const list = this.safeList(content, 'list', []);
|
|
236049
|
+
const first = this.safeDict(list, 0, {});
|
|
236050
|
+
const marketId = this.safeString(first, 'symbol');
|
|
236051
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
236052
|
+
const timestampStr = this.safeString(content, 'datetime');
|
|
236053
|
+
const timestamp = this.parseToInt(timestampStr.slice(0, 13));
|
|
236054
|
+
if (!(symbol in this.orderbooks)) {
|
|
236055
|
+
const ob = this.orderBook();
|
|
236056
|
+
ob['symbol'] = symbol;
|
|
236057
|
+
this.orderbooks[symbol] = ob;
|
|
236058
|
+
}
|
|
236059
|
+
const orderbook = this.orderbooks[symbol];
|
|
236060
|
+
this.handleDeltas(orderbook, list);
|
|
236061
|
+
orderbook['timestamp'] = timestamp;
|
|
236062
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
236063
|
+
const messageHash = 'orderbook' + ':' + symbol;
|
|
236064
|
+
client.resolve(orderbook, messageHash);
|
|
236065
|
+
}
|
|
236066
|
+
handleDelta(orderbook, delta) {
|
|
236067
|
+
//
|
|
236068
|
+
// {
|
|
236069
|
+
// symbol: "ETH_BTC",
|
|
236070
|
+
// orderType: "bid",
|
|
236071
|
+
// price: "0.07349517",
|
|
236072
|
+
// quantity: "0",
|
|
236073
|
+
// total: "0",
|
|
236074
|
+
// }
|
|
236075
|
+
//
|
|
236076
|
+
const sideId = this.safeString(delta, 'orderType');
|
|
236077
|
+
const side = (sideId === 'bid') ? 'bids' : 'asks';
|
|
236078
|
+
const bidAsk = this.parseBidAsk(delta, 'price', 'quantity');
|
|
236079
|
+
const orderbookSide = orderbook[side];
|
|
236080
|
+
orderbookSide.storeArray(bidAsk);
|
|
236081
|
+
}
|
|
236082
|
+
handleDeltas(orderbook, deltas) {
|
|
236083
|
+
for (let i = 0; i < deltas.length; i++) {
|
|
236084
|
+
this.handleDelta(orderbook, deltas[i]);
|
|
236085
|
+
}
|
|
236086
|
+
}
|
|
236087
|
+
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
236088
|
+
/**
|
|
236089
|
+
* @method
|
|
236090
|
+
* @name bithumb#watchTrades
|
|
236091
|
+
* @description get the list of most recent trades for a particular symbol
|
|
236092
|
+
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
236093
|
+
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
236094
|
+
* @param {int} [limit] the maximum amount of trades to fetch
|
|
236095
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236096
|
+
* @returns {object[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
|
|
236097
|
+
*/
|
|
236098
|
+
await this.loadMarkets();
|
|
236099
|
+
const url = this.urls['api']['ws'];
|
|
236100
|
+
const market = this.market(symbol);
|
|
236101
|
+
symbol = market['symbol'];
|
|
236102
|
+
const messageHash = 'trade:' + symbol;
|
|
236103
|
+
const request = {
|
|
236104
|
+
'type': 'transaction',
|
|
236105
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
236106
|
+
};
|
|
236107
|
+
const trades = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
236108
|
+
if (this.newUpdates) {
|
|
236109
|
+
limit = trades.getLimit(symbol, limit);
|
|
236110
|
+
}
|
|
236111
|
+
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
236112
|
+
}
|
|
236113
|
+
handleTrades(client, message) {
|
|
236114
|
+
//
|
|
236115
|
+
// {
|
|
236116
|
+
// "type" : "transaction",
|
|
236117
|
+
// "content" : {
|
|
236118
|
+
// "list" : [
|
|
236119
|
+
// {
|
|
236120
|
+
// "symbol" : "BTC_KRW",
|
|
236121
|
+
// "buySellGb" : "1",
|
|
236122
|
+
// "contPrice" : "10579000",
|
|
236123
|
+
// "contQty" : "0.01",
|
|
236124
|
+
// "contAmt" : "105790.00",
|
|
236125
|
+
// "contDtm" : "2020-01-29 12:24:18.830039",
|
|
236126
|
+
// "updn" : "dn"
|
|
236127
|
+
// }
|
|
236128
|
+
// ]
|
|
236129
|
+
// }
|
|
236130
|
+
// }
|
|
236131
|
+
//
|
|
236132
|
+
const content = this.safeDict(message, 'content', {});
|
|
236133
|
+
const rawTrades = this.safeList(content, 'list', []);
|
|
236134
|
+
for (let i = 0; i < rawTrades.length; i++) {
|
|
236135
|
+
const rawTrade = rawTrades[i];
|
|
236136
|
+
const marketId = this.safeString(rawTrade, 'symbol');
|
|
236137
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
236138
|
+
if (!(symbol in this.trades)) {
|
|
236139
|
+
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
236140
|
+
const stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__/* .ArrayCache */ .ZL(limit);
|
|
236141
|
+
this.trades[symbol] = stored;
|
|
236142
|
+
}
|
|
236143
|
+
const trades = this.trades[symbol];
|
|
236144
|
+
const parsed = this.parseWsTrade(rawTrade);
|
|
236145
|
+
trades.append(parsed);
|
|
236146
|
+
const messageHash = 'trade' + ':' + symbol;
|
|
236147
|
+
client.resolve(trades, messageHash);
|
|
236148
|
+
}
|
|
236149
|
+
}
|
|
236150
|
+
parseWsTrade(trade, market = undefined) {
|
|
236151
|
+
//
|
|
236152
|
+
// {
|
|
236153
|
+
// "symbol" : "BTC_KRW",
|
|
236154
|
+
// "buySellGb" : "1",
|
|
236155
|
+
// "contPrice" : "10579000",
|
|
236156
|
+
// "contQty" : "0.01",
|
|
236157
|
+
// "contAmt" : "105790.00",
|
|
236158
|
+
// "contDtm" : "2020-01-29 12:24:18.830039",
|
|
236159
|
+
// "updn" : "dn"
|
|
236160
|
+
// }
|
|
236161
|
+
//
|
|
236162
|
+
const marketId = this.safeString(trade, 'symbol');
|
|
236163
|
+
const datetime = this.safeString(trade, 'contDtm');
|
|
236164
|
+
const sideId = this.safeString(trade, 'buySellGb');
|
|
236165
|
+
return this.safeTrade({
|
|
236166
|
+
'id': undefined,
|
|
236167
|
+
'info': trade,
|
|
236168
|
+
'timestamp': this.parse8601(datetime),
|
|
236169
|
+
'datetime': datetime,
|
|
236170
|
+
'symbol': this.safeSymbol(marketId, market, '_'),
|
|
236171
|
+
'order': undefined,
|
|
236172
|
+
'type': undefined,
|
|
236173
|
+
'side': (sideId === '1') ? 'buy' : 'sell',
|
|
236174
|
+
'takerOrMaker': undefined,
|
|
236175
|
+
'price': this.safeString(trade, 'contPrice'),
|
|
236176
|
+
'amount': this.safeString(trade, 'contQty'),
|
|
236177
|
+
'cost': this.safeString(trade, 'contAmt'),
|
|
236178
|
+
'fee': undefined,
|
|
236179
|
+
}, market);
|
|
236180
|
+
}
|
|
236181
|
+
handleErrorMessage(client, message) {
|
|
236182
|
+
//
|
|
236183
|
+
// {
|
|
236184
|
+
// "status" : "5100",
|
|
236185
|
+
// "resmsg" : "Invalid Filter Syntax"
|
|
236186
|
+
// }
|
|
236187
|
+
//
|
|
236188
|
+
if (!('status' in message)) {
|
|
236189
|
+
return true;
|
|
236190
|
+
}
|
|
236191
|
+
const errorCode = this.safeString(message, 'status');
|
|
236192
|
+
try {
|
|
236193
|
+
if (errorCode !== '0000') {
|
|
236194
|
+
const msg = this.safeString(message, 'resmsg');
|
|
236195
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' ' + msg);
|
|
236196
|
+
}
|
|
236197
|
+
return true;
|
|
236198
|
+
}
|
|
236199
|
+
catch (e) {
|
|
236200
|
+
client.reject(e);
|
|
236201
|
+
}
|
|
236202
|
+
return true;
|
|
236203
|
+
}
|
|
236204
|
+
handleMessage(client, message) {
|
|
236205
|
+
if (!this.handleErrorMessage(client, message)) {
|
|
236206
|
+
return;
|
|
236207
|
+
}
|
|
236208
|
+
const topic = this.safeString(message, 'type');
|
|
236209
|
+
if (topic !== undefined) {
|
|
236210
|
+
const methods = {
|
|
236211
|
+
'ticker': this.handleTicker,
|
|
236212
|
+
'orderbookdepth': this.handleOrderBook,
|
|
236213
|
+
'transaction': this.handleTrades,
|
|
236214
|
+
};
|
|
236215
|
+
const method = this.safeValue(methods, topic);
|
|
236216
|
+
if (method !== undefined) {
|
|
236217
|
+
method.call(this, client, message);
|
|
236218
|
+
}
|
|
236219
|
+
}
|
|
236220
|
+
}
|
|
236221
|
+
}
|
|
236222
|
+
|
|
236223
|
+
|
|
235648
236224
|
/***/ }),
|
|
235649
236225
|
|
|
235650
236226
|
/***/ 7504:
|
|
@@ -236361,10 +236937,10 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
236361
236937
|
// }
|
|
236362
236938
|
//
|
|
236363
236939
|
const data = this.safeValue(message, 'data', []);
|
|
236364
|
-
const cache = this.positions;
|
|
236365
236940
|
if (this.positions === undefined) {
|
|
236366
236941
|
this.positions = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCacheBySymbolBySide */ .tU();
|
|
236367
236942
|
}
|
|
236943
|
+
const cache = this.positions;
|
|
236368
236944
|
const newPositions = [];
|
|
236369
236945
|
for (let i = 0; i < data.length; i++) {
|
|
236370
236946
|
const rawPosition = data[i];
|
|
@@ -242723,7 +243299,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
242723
243299
|
/**
|
|
242724
243300
|
* @method
|
|
242725
243301
|
* @name bybit#watchTickers
|
|
242726
|
-
* @description
|
|
243302
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
242727
243303
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/public/ticker
|
|
242728
243304
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/public/etp-ticker
|
|
242729
243305
|
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
@@ -244532,6 +245108,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244532
245108
|
const url = this.urls['api']['ws'];
|
|
244533
245109
|
const messageHash = 'trades';
|
|
244534
245110
|
const subscriptionHash = 'old:' + symbol;
|
|
245111
|
+
this.options['currentWatchTradeSymbol'] = symbol; // exchange supports only 1 symbol for this watchTrades channel
|
|
244535
245112
|
const client = this.safeValue(this.clients, url);
|
|
244536
245113
|
if (client !== undefined) {
|
|
244537
245114
|
const subscriptionKeys = Object.keys(client.subscriptions);
|
|
@@ -244573,11 +245150,16 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244573
245150
|
const data = this.safeList(message, 'data', []);
|
|
244574
245151
|
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
244575
245152
|
const stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCache */ .ZL(limit);
|
|
245153
|
+
const symbol = this.safeString(this.options, 'currentWatchTradeSymbol');
|
|
245154
|
+
if (symbol === undefined) {
|
|
245155
|
+
return;
|
|
245156
|
+
}
|
|
245157
|
+
const market = this.market(symbol);
|
|
244576
245158
|
const dataLength = data.length;
|
|
244577
245159
|
for (let i = 0; i < dataLength; i++) {
|
|
244578
245160
|
const index = dataLength - 1 - i;
|
|
244579
245161
|
const rawTrade = data[index];
|
|
244580
|
-
const parsed = this.parseWsOldTrade(rawTrade);
|
|
245162
|
+
const parsed = this.parseWsOldTrade(rawTrade, market);
|
|
244581
245163
|
stored.append(parsed);
|
|
244582
245164
|
}
|
|
244583
245165
|
const messageHash = 'trades';
|
|
@@ -244604,7 +245186,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244604
245186
|
'id': id,
|
|
244605
245187
|
'timestamp': timestamp,
|
|
244606
245188
|
'datetime': this.iso8601(timestamp),
|
|
244607
|
-
'symbol':
|
|
245189
|
+
'symbol': this.safeString(market, 'symbol'),
|
|
244608
245190
|
'type': undefined,
|
|
244609
245191
|
'side': side,
|
|
244610
245192
|
'order': undefined,
|
|
@@ -244626,8 +245208,10 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244626
245208
|
//
|
|
244627
245209
|
const data = this.safeValue(message, 'data', []);
|
|
244628
245210
|
const stored = this.trades; // to do fix this, this.trades is not meant to be used like this
|
|
244629
|
-
|
|
244630
|
-
|
|
245211
|
+
const dataLength = data.length;
|
|
245212
|
+
for (let i = 0; i < dataLength; i++) {
|
|
245213
|
+
const index = dataLength - 1 - i;
|
|
245214
|
+
const rawTrade = data[index];
|
|
244631
245215
|
const parsed = this.parseWsOldTrade(rawTrade);
|
|
244632
245216
|
stored.append(parsed);
|
|
244633
245217
|
}
|
|
@@ -244743,12 +245327,17 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244743
245327
|
const data = this.safeValue(message, 'data', {});
|
|
244744
245328
|
const ticker = this.parseWsTicker(data);
|
|
244745
245329
|
const symbol = ticker['symbol'];
|
|
245330
|
+
if (symbol === undefined) {
|
|
245331
|
+
return;
|
|
245332
|
+
}
|
|
244746
245333
|
this.tickers[symbol] = ticker;
|
|
244747
245334
|
let messageHash = 'ticker:' + symbol;
|
|
244748
245335
|
client.resolve(ticker, messageHash);
|
|
244749
245336
|
client.resolve(ticker, 'tickers');
|
|
244750
245337
|
messageHash = this.safeString(message, 'oid');
|
|
244751
|
-
|
|
245338
|
+
if (messageHash !== undefined) {
|
|
245339
|
+
client.resolve(ticker, messageHash);
|
|
245340
|
+
}
|
|
244752
245341
|
}
|
|
244753
245342
|
parseWsTicker(ticker, market = undefined) {
|
|
244754
245343
|
//
|
|
@@ -271996,7 +272585,8 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
271996
272585
|
this.handleErrors(undefined, undefined, client.url, method, undefined, stringMsg, stringMsg, undefined, undefined);
|
|
271997
272586
|
}
|
|
271998
272587
|
const orders = this.parseOrders(args, undefined, undefined, undefined);
|
|
271999
|
-
|
|
272588
|
+
const first = this.safeDict(orders, 0, {});
|
|
272589
|
+
client.resolve(first, messageHash);
|
|
272000
272590
|
}
|
|
272001
272591
|
async editOrderWs(id, symbol, type, side, amount, price = undefined, params = {}) {
|
|
272002
272592
|
/**
|
|
@@ -273715,6 +274305,7 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
273715
274305
|
'watchTickers': {
|
|
273716
274306
|
'name': 'state', // or 'price'
|
|
273717
274307
|
},
|
|
274308
|
+
'tickerSubs': this.createSafeDictionary(),
|
|
273718
274309
|
},
|
|
273719
274310
|
'streaming': {
|
|
273720
274311
|
'ping': this.ping,
|
|
@@ -273785,13 +274376,14 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
273785
274376
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
273786
274377
|
*/
|
|
273787
274378
|
await this.loadMarkets();
|
|
273788
|
-
const watchTickerOptions = this.
|
|
274379
|
+
const watchTickerOptions = this.safeDict(this.options, 'watchTicker');
|
|
273789
274380
|
let name = this.safeString(watchTickerOptions, 'name', 'state'); // or price
|
|
273790
274381
|
[name, params] = this.handleOptionAndParams(params, 'method', 'name', name);
|
|
273791
274382
|
const market = this.market(symbol);
|
|
273792
|
-
|
|
273793
|
-
|
|
273794
|
-
];
|
|
274383
|
+
symbol = market['symbol'];
|
|
274384
|
+
this.options['tickerSubs'][market['id']] = true; // we need to re-subscribe to all tickers upon watching a new ticker
|
|
274385
|
+
const tickerSubs = this.options['tickerSubs'];
|
|
274386
|
+
const request = Object.keys(tickerSubs);
|
|
273795
274387
|
const messageHash = name + '::' + market['symbol'];
|
|
273796
274388
|
return await this.subscribe(name + '.subscribe', messageHash, request, params);
|
|
273797
274389
|
}
|
|
@@ -274094,6 +274686,14 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
274094
274686
|
client.lastPong = this.safeInteger(message, 'id');
|
|
274095
274687
|
return message;
|
|
274096
274688
|
}
|
|
274689
|
+
onError(client, error) {
|
|
274690
|
+
this.options['tickerSubs'] = this.createSafeDictionary();
|
|
274691
|
+
this.onError(client, error);
|
|
274692
|
+
}
|
|
274693
|
+
onClose(client, error) {
|
|
274694
|
+
this.options['tickerSubs'] = this.createSafeDictionary();
|
|
274695
|
+
this.onClose(client, error);
|
|
274696
|
+
}
|
|
274097
274697
|
}
|
|
274098
274698
|
|
|
274099
274699
|
|
|
@@ -280734,7 +281334,7 @@ class woo extends _woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
280734
281334
|
/**
|
|
280735
281335
|
* @method
|
|
280736
281336
|
* @name woo#watchTickers
|
|
280737
|
-
* @description
|
|
281337
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
280738
281338
|
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
280739
281339
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280740
281340
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
@@ -322897,39 +323497,39 @@ var __webpack_exports__ = {};
|
|
|
322897
323497
|
(() => {
|
|
322898
323498
|
__webpack_require__.r(__webpack_exports__);
|
|
322899
323499
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
322900
|
-
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */
|
|
322901
|
-
/* harmony export */ AccountSuspended: () => (/* reexport safe */
|
|
322902
|
-
/* harmony export */ AddressPending: () => (/* reexport safe */
|
|
322903
|
-
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */
|
|
322904
|
-
/* harmony export */ AuthenticationError: () => (/* reexport safe */
|
|
322905
|
-
/* harmony export */ BadRequest: () => (/* reexport safe */
|
|
322906
|
-
/* harmony export */ BadResponse: () => (/* reexport safe */
|
|
322907
|
-
/* harmony export */ BadSymbol: () => (/* reexport safe */
|
|
322908
|
-
/* harmony export */ BaseError: () => (/* reexport safe */
|
|
322909
|
-
/* harmony export */ CancelPending: () => (/* reexport safe */
|
|
322910
|
-
/* harmony export */ DDoSProtection: () => (/* reexport safe */
|
|
322911
|
-
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */
|
|
323500
|
+
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AccountNotEnabled),
|
|
323501
|
+
/* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AccountSuspended),
|
|
323502
|
+
/* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AddressPending),
|
|
323503
|
+
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ArgumentsRequired),
|
|
323504
|
+
/* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AuthenticationError),
|
|
323505
|
+
/* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadRequest),
|
|
323506
|
+
/* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadResponse),
|
|
323507
|
+
/* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadSymbol),
|
|
323508
|
+
/* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BaseError),
|
|
323509
|
+
/* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.CancelPending),
|
|
323510
|
+
/* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.DDoSProtection),
|
|
323511
|
+
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.DuplicateOrderId),
|
|
322912
323512
|
/* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
|
|
322913
|
-
/* harmony export */ ExchangeError: () => (/* reexport safe */
|
|
322914
|
-
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */
|
|
322915
|
-
/* harmony export */ InsufficientFunds: () => (/* reexport safe */
|
|
322916
|
-
/* harmony export */ InvalidAddress: () => (/* reexport safe */
|
|
322917
|
-
/* harmony export */ InvalidNonce: () => (/* reexport safe */
|
|
322918
|
-
/* harmony export */ InvalidOrder: () => (/* reexport safe */
|
|
322919
|
-
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */
|
|
322920
|
-
/* harmony export */ NetworkError: () => (/* reexport safe */
|
|
322921
|
-
/* harmony export */ NoChange: () => (/* reexport safe */
|
|
322922
|
-
/* harmony export */ NotSupported: () => (/* reexport safe */
|
|
322923
|
-
/* harmony export */ NullResponse: () => (/* reexport safe */
|
|
322924
|
-
/* harmony export */ OnMaintenance: () => (/* reexport safe */
|
|
322925
|
-
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */
|
|
322926
|
-
/* harmony export */ OrderNotCached: () => (/* reexport safe */
|
|
322927
|
-
/* harmony export */ OrderNotFillable: () => (/* reexport safe */
|
|
322928
|
-
/* harmony export */ OrderNotFound: () => (/* reexport safe */
|
|
322929
|
-
/* harmony export */ PermissionDenied: () => (/* reexport safe */
|
|
322930
|
-
/* harmony export */ Precise: () => (/* reexport safe */
|
|
322931
|
-
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */
|
|
322932
|
-
/* harmony export */ RequestTimeout: () => (/* reexport safe */
|
|
323513
|
+
/* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ExchangeError),
|
|
323514
|
+
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ExchangeNotAvailable),
|
|
323515
|
+
/* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InsufficientFunds),
|
|
323516
|
+
/* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidAddress),
|
|
323517
|
+
/* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidNonce),
|
|
323518
|
+
/* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidOrder),
|
|
323519
|
+
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.MarginModeAlreadySet),
|
|
323520
|
+
/* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NetworkError),
|
|
323521
|
+
/* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NoChange),
|
|
323522
|
+
/* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NotSupported),
|
|
323523
|
+
/* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NullResponse),
|
|
323524
|
+
/* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OnMaintenance),
|
|
323525
|
+
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderImmediatelyFillable),
|
|
323526
|
+
/* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotCached),
|
|
323527
|
+
/* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotFillable),
|
|
323528
|
+
/* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotFound),
|
|
323529
|
+
/* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.PermissionDenied),
|
|
323530
|
+
/* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_168__.O),
|
|
323531
|
+
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.RateLimitExceeded),
|
|
323532
|
+
/* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.RequestTimeout),
|
|
322933
323533
|
/* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
322934
323534
|
/* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
322935
323535
|
/* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
@@ -322985,11 +323585,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
322985
323585
|
/* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
322986
323586
|
/* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
322987
323587
|
/* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
322988
|
-
/* harmony export */ errors: () => (/* reexport module object */
|
|
323588
|
+
/* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__),
|
|
322989
323589
|
/* harmony export */ exchanges: () => (/* binding */ exchanges),
|
|
322990
323590
|
/* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
322991
323591
|
/* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
322992
|
-
/* harmony export */ functions: () => (/* reexport module object */
|
|
323592
|
+
/* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_169__),
|
|
322993
323593
|
/* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
322994
323594
|
/* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_58__.Z),
|
|
322995
323595
|
/* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_59__.Z),
|
|
@@ -323041,9 +323641,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
323041
323641
|
/* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_103__.Z)
|
|
323042
323642
|
/* harmony export */ });
|
|
323043
323643
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
323044
|
-
/* harmony import */ var
|
|
323045
|
-
/* harmony import */ var
|
|
323046
|
-
/* harmony import */ var
|
|
323644
|
+
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(2194);
|
|
323645
|
+
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(7100);
|
|
323646
|
+
/* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(6689);
|
|
323047
323647
|
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
|
|
323048
323648
|
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
|
|
323049
323649
|
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
|
|
@@ -323159,57 +323759,58 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
323159
323759
|
/* harmony import */ var _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(9772);
|
|
323160
323760
|
/* harmony import */ var _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(588);
|
|
323161
323761
|
/* harmony import */ var _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(1885);
|
|
323162
|
-
/* harmony import */ var
|
|
323163
|
-
/* harmony import */ var
|
|
323164
|
-
/* harmony import */ var
|
|
323165
|
-
/* harmony import */ var
|
|
323166
|
-
/* harmony import */ var
|
|
323167
|
-
/* harmony import */ var
|
|
323168
|
-
/* harmony import */ var
|
|
323169
|
-
/* harmony import */ var
|
|
323170
|
-
/* harmony import */ var
|
|
323171
|
-
/* harmony import */ var
|
|
323172
|
-
/* harmony import */ var
|
|
323173
|
-
/* harmony import */ var
|
|
323174
|
-
/* harmony import */ var
|
|
323175
|
-
/* harmony import */ var
|
|
323176
|
-
/* harmony import */ var
|
|
323177
|
-
/* harmony import */ var
|
|
323178
|
-
/* harmony import */ var
|
|
323179
|
-
/* harmony import */ var
|
|
323180
|
-
/* harmony import */ var
|
|
323181
|
-
/* harmony import */ var
|
|
323182
|
-
/* harmony import */ var
|
|
323183
|
-
/* harmony import */ var
|
|
323184
|
-
/* harmony import */ var
|
|
323185
|
-
/* harmony import */ var
|
|
323186
|
-
/* harmony import */ var
|
|
323187
|
-
/* harmony import */ var
|
|
323188
|
-
/* harmony import */ var
|
|
323189
|
-
/* harmony import */ var
|
|
323190
|
-
/* harmony import */ var
|
|
323191
|
-
/* harmony import */ var
|
|
323192
|
-
/* harmony import */ var
|
|
323193
|
-
/* harmony import */ var
|
|
323194
|
-
/* harmony import */ var
|
|
323195
|
-
/* harmony import */ var
|
|
323196
|
-
/* harmony import */ var
|
|
323197
|
-
/* harmony import */ var
|
|
323198
|
-
/* harmony import */ var
|
|
323199
|
-
/* harmony import */ var
|
|
323200
|
-
/* harmony import */ var
|
|
323201
|
-
/* harmony import */ var
|
|
323202
|
-
/* harmony import */ var
|
|
323203
|
-
/* harmony import */ var
|
|
323204
|
-
/* harmony import */ var
|
|
323205
|
-
/* harmony import */ var
|
|
323206
|
-
/* harmony import */ var
|
|
323207
|
-
/* harmony import */ var
|
|
323208
|
-
/* harmony import */ var
|
|
323209
|
-
/* harmony import */ var
|
|
323210
|
-
/* harmony import */ var
|
|
323211
|
-
/* harmony import */ var
|
|
323212
|
-
/* harmony import */ var
|
|
323762
|
+
/* harmony import */ var _src_pro_bithumb_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(4922);
|
|
323763
|
+
/* harmony import */ var _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(7504);
|
|
323764
|
+
/* harmony import */ var _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(2302);
|
|
323765
|
+
/* harmony import */ var _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(2191);
|
|
323766
|
+
/* harmony import */ var _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(1297);
|
|
323767
|
+
/* harmony import */ var _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3005);
|
|
323768
|
+
/* harmony import */ var _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(2317);
|
|
323769
|
+
/* harmony import */ var _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(6977);
|
|
323770
|
+
/* harmony import */ var _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(2519);
|
|
323771
|
+
/* harmony import */ var _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(5030);
|
|
323772
|
+
/* harmony import */ var _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(5272);
|
|
323773
|
+
/* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(3414);
|
|
323774
|
+
/* harmony import */ var _src_pro_coinbaseinternational_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(6541);
|
|
323775
|
+
/* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(8368);
|
|
323776
|
+
/* harmony import */ var _src_pro_coincheck_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(7891);
|
|
323777
|
+
/* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(204);
|
|
323778
|
+
/* harmony import */ var _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(5208);
|
|
323779
|
+
/* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(6820);
|
|
323780
|
+
/* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(2952);
|
|
323781
|
+
/* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(1788);
|
|
323782
|
+
/* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(9004);
|
|
323783
|
+
/* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(8335);
|
|
323784
|
+
/* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(1465);
|
|
323785
|
+
/* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(9488);
|
|
323786
|
+
/* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(5189);
|
|
323787
|
+
/* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(8559);
|
|
323788
|
+
/* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(7474);
|
|
323789
|
+
/* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(8384);
|
|
323790
|
+
/* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(9021);
|
|
323791
|
+
/* harmony import */ var _src_pro_hyperliquid_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(8354);
|
|
323792
|
+
/* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(3484);
|
|
323793
|
+
/* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(1311);
|
|
323794
|
+
/* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(736);
|
|
323795
|
+
/* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(449);
|
|
323796
|
+
/* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(2387);
|
|
323797
|
+
/* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(7181);
|
|
323798
|
+
/* harmony import */ var _src_pro_lbank_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(1267);
|
|
323799
|
+
/* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(627);
|
|
323800
|
+
/* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(6484);
|
|
323801
|
+
/* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(8080);
|
|
323802
|
+
/* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(7105);
|
|
323803
|
+
/* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(2214);
|
|
323804
|
+
/* harmony import */ var _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(9419);
|
|
323805
|
+
/* harmony import */ var _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(8516);
|
|
323806
|
+
/* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(4360);
|
|
323807
|
+
/* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(7924);
|
|
323808
|
+
/* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(3541);
|
|
323809
|
+
/* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(9782);
|
|
323810
|
+
/* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(7614);
|
|
323811
|
+
/* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(4828);
|
|
323812
|
+
/* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(5630);
|
|
323813
|
+
/* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(3910);
|
|
323213
323814
|
/*
|
|
323214
323815
|
|
|
323215
323816
|
MIT License
|
|
@@ -323244,7 +323845,7 @@ SOFTWARE.
|
|
|
323244
323845
|
|
|
323245
323846
|
//-----------------------------------------------------------------------------
|
|
323246
323847
|
// this is updated by vss.js when building
|
|
323247
|
-
const version = '4.2.
|
|
323848
|
+
const version = '4.2.84';
|
|
323248
323849
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
323249
323850
|
//-----------------------------------------------------------------------------
|
|
323250
323851
|
|
|
@@ -323412,6 +324013,7 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
|
|
|
323412
324013
|
|
|
323413
324014
|
|
|
323414
324015
|
|
|
324016
|
+
|
|
323415
324017
|
|
|
323416
324018
|
|
|
323417
324019
|
const exchanges = {
|
|
@@ -323532,57 +324134,58 @@ const pro = {
|
|
|
323532
324134
|
'bitfinex': _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_113__/* ["default"] */ .Z,
|
|
323533
324135
|
'bitfinex2': _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_114__/* ["default"] */ .Z,
|
|
323534
324136
|
'bitget': _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_115__/* ["default"] */ .Z,
|
|
323535
|
-
'
|
|
323536
|
-
'
|
|
323537
|
-
'
|
|
323538
|
-
'
|
|
323539
|
-
'
|
|
323540
|
-
'
|
|
323541
|
-
'
|
|
323542
|
-
'
|
|
323543
|
-
'
|
|
323544
|
-
'
|
|
323545
|
-
'
|
|
323546
|
-
'
|
|
323547
|
-
'
|
|
323548
|
-
'
|
|
323549
|
-
'
|
|
323550
|
-
'
|
|
323551
|
-
'
|
|
323552
|
-
'
|
|
323553
|
-
'
|
|
323554
|
-
'
|
|
323555
|
-
'
|
|
323556
|
-
'
|
|
323557
|
-
'
|
|
323558
|
-
'
|
|
323559
|
-
'
|
|
323560
|
-
'
|
|
323561
|
-
'
|
|
323562
|
-
'
|
|
323563
|
-
'
|
|
323564
|
-
'
|
|
323565
|
-
'
|
|
323566
|
-
'
|
|
323567
|
-
'
|
|
323568
|
-
'
|
|
323569
|
-
'
|
|
323570
|
-
'
|
|
323571
|
-
'
|
|
323572
|
-
'
|
|
323573
|
-
'
|
|
323574
|
-
'
|
|
323575
|
-
'
|
|
323576
|
-
'
|
|
323577
|
-
'
|
|
323578
|
-
'
|
|
323579
|
-
'
|
|
323580
|
-
'
|
|
323581
|
-
'
|
|
323582
|
-
'
|
|
323583
|
-
'
|
|
323584
|
-
'
|
|
323585
|
-
'
|
|
324137
|
+
'bithumb': _src_pro_bithumb_js__WEBPACK_IMPORTED_MODULE_116__/* ["default"] */ .Z,
|
|
324138
|
+
'bitmart': _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__/* ["default"] */ .Z,
|
|
324139
|
+
'bitmex': _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__/* ["default"] */ .Z,
|
|
324140
|
+
'bitopro': _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__/* ["default"] */ .Z,
|
|
324141
|
+
'bitpanda': _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__/* ["default"] */ .Z,
|
|
324142
|
+
'bitrue': _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
|
|
324143
|
+
'bitstamp': _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
|
|
324144
|
+
'bitvavo': _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
|
|
324145
|
+
'blockchaincom': _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
|
|
324146
|
+
'bybit': _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
|
|
324147
|
+
'cex': _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
|
|
324148
|
+
'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
|
|
324149
|
+
'coinbaseinternational': _src_pro_coinbaseinternational_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
|
|
324150
|
+
'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
|
|
324151
|
+
'coincheck': _src_pro_coincheck_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
|
|
324152
|
+
'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
|
|
324153
|
+
'coinone': _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
|
|
324154
|
+
'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
|
|
324155
|
+
'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
|
|
324156
|
+
'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
|
|
324157
|
+
'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
|
|
324158
|
+
'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
|
|
324159
|
+
'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
|
|
324160
|
+
'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
|
|
324161
|
+
'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
|
|
324162
|
+
'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
|
|
324163
|
+
'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
|
|
324164
|
+
'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
|
|
324165
|
+
'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
|
|
324166
|
+
'hyperliquid': _src_pro_hyperliquid_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
|
|
324167
|
+
'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
|
|
324168
|
+
'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
|
|
324169
|
+
'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
|
|
324170
|
+
'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
|
|
324171
|
+
'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
|
|
324172
|
+
'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
|
|
324173
|
+
'lbank': _src_pro_lbank_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
|
|
324174
|
+
'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
|
|
324175
|
+
'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
|
|
324176
|
+
'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
|
|
324177
|
+
'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
|
|
324178
|
+
'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
|
|
324179
|
+
'onetrading': _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
|
|
324180
|
+
'p2b': _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
|
|
324181
|
+
'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
|
|
324182
|
+
'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_161__/* ["default"] */ .Z,
|
|
324183
|
+
'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_162__/* ["default"] */ .Z,
|
|
324184
|
+
'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_163__/* ["default"] */ .Z,
|
|
324185
|
+
'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_164__/* ["default"] */ .Z,
|
|
324186
|
+
'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_165__/* ["default"] */ .Z,
|
|
324187
|
+
'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_166__/* ["default"] */ .Z,
|
|
324188
|
+
'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_167__/* ["default"] */ .Z,
|
|
323586
324189
|
};
|
|
323587
324190
|
for (const exchange in pro) {
|
|
323588
324191
|
// const ccxtExchange = exchanges[exchange]
|
|
@@ -323595,7 +324198,7 @@ for (const exchange in pro) {
|
|
|
323595
324198
|
pro.exchanges = Object.keys(pro);
|
|
323596
324199
|
pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
|
|
323597
324200
|
//-----------------------------------------------------------------------------
|
|
323598
|
-
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise:
|
|
324201
|
+
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_168__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_169__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__);
|
|
323599
324202
|
|
|
323600
324203
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
|
|
323601
324204
|
//-----------------------------------------------------------------------------
|