ccxt 4.2.81 → 4.2.83
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/CHANGELOG.md +90 -0
- package/README.md +4 -4
- package/dist/ccxt.browser.js +1085 -188
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +3 -1
- package/dist/cjs/src/bitget.js +1 -0
- package/dist/cjs/src/bithumb.js +1 -0
- package/dist/cjs/src/bitstamp.js +42 -15
- package/dist/cjs/src/delta.js +147 -0
- package/dist/cjs/src/deribit.js +20 -2
- package/dist/cjs/src/gemini.js +2 -1
- package/dist/cjs/src/hyperliquid.js +9 -8
- package/dist/cjs/src/kucoinfutures.js +147 -8
- package/dist/cjs/src/okx.js +139 -0
- 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 +1 -0
- 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/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/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 +22 -2
- package/js/src/delta.js +147 -0
- package/js/src/deribit.d.ts +2 -2
- package/js/src/deribit.js +20 -2
- 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/huobijp.d.ts +1 -1
- package/js/src/hyperliquid.d.ts +1 -1
- package/js/src/hyperliquid.js +9 -8
- 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 +1 -1
- 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 +23 -2
- package/js/src/okx.js +139 -0
- 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/static_dependencies/jsencrypt/lib/jsbn/jsbn.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': {
|
|
@@ -53868,6 +53869,7 @@ class bithumb extends _abstract_bithumb_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
53868
53869
|
'name': 'Bithumb',
|
|
53869
53870
|
'countries': ['KR'],
|
|
53870
53871
|
'rateLimit': 500,
|
|
53872
|
+
'pro': true,
|
|
53871
53873
|
'has': {
|
|
53872
53874
|
'CORS': true,
|
|
53873
53875
|
'spot': true,
|
|
@@ -69380,7 +69382,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
69380
69382
|
'transfer-from-main/': 1,
|
|
69381
69383
|
'my_trading_pairs/': 1,
|
|
69382
69384
|
'fees/trading/': 1,
|
|
69383
|
-
'fees/trading/{
|
|
69385
|
+
'fees/trading/{market_symbol}': 1,
|
|
69384
69386
|
'fees/withdrawal/': 1,
|
|
69385
69387
|
'fees/withdrawal/{currency}/': 1,
|
|
69386
69388
|
'withdrawal-requests/': 1,
|
|
@@ -70380,7 +70382,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70380
70382
|
* @method
|
|
70381
70383
|
* @name bitstamp#fetchTradingFee
|
|
70382
70384
|
* @description fetch the trading fees for a market
|
|
70383
|
-
* @see https://www.bitstamp.net/api/#tag/Fees/operation/
|
|
70385
|
+
* @see https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
|
|
70384
70386
|
* @param {string} symbol unified market symbol
|
|
70385
70387
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
70386
70388
|
* @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
|
|
@@ -70388,21 +70390,35 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70388
70390
|
await this.loadMarkets();
|
|
70389
70391
|
const market = this.market(symbol);
|
|
70390
70392
|
const request = {
|
|
70391
|
-
'
|
|
70393
|
+
'market_symbol': market['id'],
|
|
70392
70394
|
};
|
|
70393
|
-
const response = await this.
|
|
70394
|
-
|
|
70395
|
+
const response = await this.privatePostFeesTrading(this.extend(request, params));
|
|
70396
|
+
//
|
|
70397
|
+
// [
|
|
70398
|
+
// {
|
|
70399
|
+
// "currency_pair": "btcusd",
|
|
70400
|
+
// "fees":
|
|
70401
|
+
// {
|
|
70402
|
+
// "maker": "0.15000",
|
|
70403
|
+
// "taker": "0.16000"
|
|
70404
|
+
// },
|
|
70405
|
+
// "market": "btcusd"
|
|
70406
|
+
// }
|
|
70407
|
+
// ...
|
|
70408
|
+
// ]
|
|
70409
|
+
//
|
|
70410
|
+
const tradingFeesByMarketId = this.indexBy(response, 'currency_pair');
|
|
70411
|
+
const tradingFee = this.safeDict(tradingFeesByMarketId, market['id']);
|
|
70412
|
+
return this.parseTradingFee(tradingFee, market);
|
|
70395
70413
|
}
|
|
70396
70414
|
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);
|
|
70415
|
+
const marketId = this.safeString(fee, 'market');
|
|
70416
|
+
const fees = this.safeDict(fee, 'fees', {});
|
|
70401
70417
|
return {
|
|
70402
70418
|
'info': fee,
|
|
70403
|
-
'symbol': market
|
|
70404
|
-
'maker':
|
|
70405
|
-
'taker':
|
|
70419
|
+
'symbol': this.safeSymbol(marketId, market),
|
|
70420
|
+
'maker': this.safeNumber(fees, 'maker'),
|
|
70421
|
+
'taker': this.safeNumber(fees, 'taker'),
|
|
70406
70422
|
};
|
|
70407
70423
|
}
|
|
70408
70424
|
parseTradingFees(fees) {
|
|
@@ -70410,8 +70426,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70410
70426
|
const symbols = this.symbols;
|
|
70411
70427
|
for (let i = 0; i < symbols.length; i++) {
|
|
70412
70428
|
const symbol = symbols[i];
|
|
70413
|
-
const
|
|
70414
|
-
const fee = this.parseTradingFee(fees, market);
|
|
70429
|
+
const fee = this.parseTradingFee(fees[i]);
|
|
70415
70430
|
result[symbol] = fee;
|
|
70416
70431
|
}
|
|
70417
70432
|
return result;
|
|
@@ -70426,7 +70441,21 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
70426
70441
|
* @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
|
|
70427
70442
|
*/
|
|
70428
70443
|
await this.loadMarkets();
|
|
70429
|
-
const response = await this.
|
|
70444
|
+
const response = await this.privatePostFeesTrading(params);
|
|
70445
|
+
//
|
|
70446
|
+
// [
|
|
70447
|
+
// {
|
|
70448
|
+
// "currency_pair": "btcusd",
|
|
70449
|
+
// "fees":
|
|
70450
|
+
// {
|
|
70451
|
+
// "maker": "0.15000",
|
|
70452
|
+
// "taker": "0.16000"
|
|
70453
|
+
// },
|
|
70454
|
+
// "market": "btcusd"
|
|
70455
|
+
// }
|
|
70456
|
+
// ...
|
|
70457
|
+
// ]
|
|
70458
|
+
//
|
|
70430
70459
|
return this.parseTradingFees(response);
|
|
70431
70460
|
}
|
|
70432
70461
|
async fetchTransactionFees(codes = undefined, params = {}) {
|
|
@@ -122349,6 +122378,8 @@ class delta extends _abstract_delta_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
122349
122378
|
'fetchOHLCV': true,
|
|
122350
122379
|
'fetchOpenInterest': true,
|
|
122351
122380
|
'fetchOpenOrders': true,
|
|
122381
|
+
'fetchOption': true,
|
|
122382
|
+
'fetchOptionChain': false,
|
|
122352
122383
|
'fetchOrderBook': true,
|
|
122353
122384
|
'fetchPosition': true,
|
|
122354
122385
|
'fetchPositionMode': false,
|
|
@@ -125600,6 +125631,151 @@ class delta extends _abstract_delta_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
125600
125631
|
'marginMode': this.safeString(marginMode, 'margin_mode'),
|
|
125601
125632
|
};
|
|
125602
125633
|
}
|
|
125634
|
+
async fetchOption(symbol, params = {}) {
|
|
125635
|
+
/**
|
|
125636
|
+
* @method
|
|
125637
|
+
* @name delta#fetchOption
|
|
125638
|
+
* @description fetches option data that is commonly found in an option chain
|
|
125639
|
+
* @see https://docs.delta.exchange/#get-ticker-for-a-product-by-symbol
|
|
125640
|
+
* @param {string} symbol unified market symbol
|
|
125641
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
125642
|
+
* @returns {object} an [option chain structure]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
|
|
125643
|
+
*/
|
|
125644
|
+
await this.loadMarkets();
|
|
125645
|
+
const market = this.market(symbol);
|
|
125646
|
+
const request = {
|
|
125647
|
+
'symbol': market['id'],
|
|
125648
|
+
};
|
|
125649
|
+
const response = await this.publicGetTickersSymbol(this.extend(request, params));
|
|
125650
|
+
//
|
|
125651
|
+
// {
|
|
125652
|
+
// "result": {
|
|
125653
|
+
// "close": 6793.0,
|
|
125654
|
+
// "contract_type": "call_options",
|
|
125655
|
+
// "greeks": {
|
|
125656
|
+
// "delta": "0.94739174",
|
|
125657
|
+
// "gamma": "0.00002206",
|
|
125658
|
+
// "rho": "11.00890725",
|
|
125659
|
+
// "spot": "36839.58124652",
|
|
125660
|
+
// "theta": "-18.18365310",
|
|
125661
|
+
// "vega": "7.85209698"
|
|
125662
|
+
// },
|
|
125663
|
+
// "high": 7556.0,
|
|
125664
|
+
// "low": 6793.0,
|
|
125665
|
+
// "mark_price": "6955.70698909",
|
|
125666
|
+
// "mark_vol": "0.66916863",
|
|
125667
|
+
// "oi": "1.8980",
|
|
125668
|
+
// "oi_change_usd_6h": "110.4600",
|
|
125669
|
+
// "oi_contracts": "1898",
|
|
125670
|
+
// "oi_value": "1.8980",
|
|
125671
|
+
// "oi_value_symbol": "BTC",
|
|
125672
|
+
// "oi_value_usd": "69940.7319",
|
|
125673
|
+
// "open": 7.2e3,
|
|
125674
|
+
// "price_band": {
|
|
125675
|
+
// "lower_limit": "5533.89814767",
|
|
125676
|
+
// "upper_limit": "11691.37688371"
|
|
125677
|
+
// },
|
|
125678
|
+
// "product_id": 129508,
|
|
125679
|
+
// "quotes": {
|
|
125680
|
+
// "ask_iv": "0.90180438",
|
|
125681
|
+
// "ask_size": "1898",
|
|
125682
|
+
// "best_ask": "7210",
|
|
125683
|
+
// "best_bid": "6913",
|
|
125684
|
+
// "bid_iv": "0.60881706",
|
|
125685
|
+
// "bid_size": "3163",
|
|
125686
|
+
// "impact_mid_price": null,
|
|
125687
|
+
// "mark_iv": "0.66973549"
|
|
125688
|
+
// },
|
|
125689
|
+
// "size": 5,
|
|
125690
|
+
// "spot_price": "36839.58153868",
|
|
125691
|
+
// "strike_price": "30000",
|
|
125692
|
+
// "symbol": "C-BTC-30000-241123",
|
|
125693
|
+
// "timestamp": 1699584998504530,
|
|
125694
|
+
// "turnover": 184.41206804,
|
|
125695
|
+
// "turnover_symbol": "USDT",
|
|
125696
|
+
// "turnover_usd": 184.41206804,
|
|
125697
|
+
// "volume": 0.005
|
|
125698
|
+
// },
|
|
125699
|
+
// "success": true
|
|
125700
|
+
// }
|
|
125701
|
+
//
|
|
125702
|
+
const result = this.safeDict(response, 'result', {});
|
|
125703
|
+
return this.parseOption(result, undefined, market);
|
|
125704
|
+
}
|
|
125705
|
+
parseOption(chain, currency = undefined, market = undefined) {
|
|
125706
|
+
//
|
|
125707
|
+
// {
|
|
125708
|
+
// "close": 6793.0,
|
|
125709
|
+
// "contract_type": "call_options",
|
|
125710
|
+
// "greeks": {
|
|
125711
|
+
// "delta": "0.94739174",
|
|
125712
|
+
// "gamma": "0.00002206",
|
|
125713
|
+
// "rho": "11.00890725",
|
|
125714
|
+
// "spot": "36839.58124652",
|
|
125715
|
+
// "theta": "-18.18365310",
|
|
125716
|
+
// "vega": "7.85209698"
|
|
125717
|
+
// },
|
|
125718
|
+
// "high": 7556.0,
|
|
125719
|
+
// "low": 6793.0,
|
|
125720
|
+
// "mark_price": "6955.70698909",
|
|
125721
|
+
// "mark_vol": "0.66916863",
|
|
125722
|
+
// "oi": "1.8980",
|
|
125723
|
+
// "oi_change_usd_6h": "110.4600",
|
|
125724
|
+
// "oi_contracts": "1898",
|
|
125725
|
+
// "oi_value": "1.8980",
|
|
125726
|
+
// "oi_value_symbol": "BTC",
|
|
125727
|
+
// "oi_value_usd": "69940.7319",
|
|
125728
|
+
// "open": 7.2e3,
|
|
125729
|
+
// "price_band": {
|
|
125730
|
+
// "lower_limit": "5533.89814767",
|
|
125731
|
+
// "upper_limit": "11691.37688371"
|
|
125732
|
+
// },
|
|
125733
|
+
// "product_id": 129508,
|
|
125734
|
+
// "quotes": {
|
|
125735
|
+
// "ask_iv": "0.90180438",
|
|
125736
|
+
// "ask_size": "1898",
|
|
125737
|
+
// "best_ask": "7210",
|
|
125738
|
+
// "best_bid": "6913",
|
|
125739
|
+
// "bid_iv": "0.60881706",
|
|
125740
|
+
// "bid_size": "3163",
|
|
125741
|
+
// "impact_mid_price": null,
|
|
125742
|
+
// "mark_iv": "0.66973549"
|
|
125743
|
+
// },
|
|
125744
|
+
// "size": 5,
|
|
125745
|
+
// "spot_price": "36839.58153868",
|
|
125746
|
+
// "strike_price": "30000",
|
|
125747
|
+
// "symbol": "C-BTC-30000-241123",
|
|
125748
|
+
// "timestamp": 1699584998504530,
|
|
125749
|
+
// "turnover": 184.41206804,
|
|
125750
|
+
// "turnover_symbol": "USDT",
|
|
125751
|
+
// "turnover_usd": 184.41206804,
|
|
125752
|
+
// "volume": 0.005
|
|
125753
|
+
// }
|
|
125754
|
+
//
|
|
125755
|
+
const marketId = this.safeString(chain, 'symbol');
|
|
125756
|
+
market = this.safeMarket(marketId, market);
|
|
125757
|
+
const quotes = this.safeDict(chain, 'quotes', {});
|
|
125758
|
+
const timestamp = this.safeIntegerProduct(chain, 'timestamp', 0.001);
|
|
125759
|
+
return {
|
|
125760
|
+
'info': chain,
|
|
125761
|
+
'currency': undefined,
|
|
125762
|
+
'symbol': market['symbol'],
|
|
125763
|
+
'timestamp': timestamp,
|
|
125764
|
+
'datetime': this.iso8601(timestamp),
|
|
125765
|
+
'impliedVolatility': this.safeNumber(quotes, 'mark_iv'),
|
|
125766
|
+
'openInterest': this.safeNumber(chain, 'oi'),
|
|
125767
|
+
'bidPrice': this.safeNumber(quotes, 'best_bid'),
|
|
125768
|
+
'askPrice': this.safeNumber(quotes, 'best_ask'),
|
|
125769
|
+
'midPrice': this.safeNumber(quotes, 'impact_mid_price'),
|
|
125770
|
+
'markPrice': this.safeNumber(chain, 'mark_price'),
|
|
125771
|
+
'lastPrice': undefined,
|
|
125772
|
+
'underlyingPrice': this.safeNumber(chain, 'spot_price'),
|
|
125773
|
+
'change': undefined,
|
|
125774
|
+
'percentage': undefined,
|
|
125775
|
+
'baseVolume': this.safeNumber(chain, 'volume'),
|
|
125776
|
+
'quoteVolume': undefined,
|
|
125777
|
+
};
|
|
125778
|
+
}
|
|
125603
125779
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
125604
125780
|
const requestPath = '/' + this.version + '/' + this.implodeParams(path, params);
|
|
125605
125781
|
let url = this.urls['api'][api] + requestPath;
|
|
@@ -127004,9 +127180,16 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127004
127180
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
127005
127181
|
* @param {int} [limit] the maximum amount of candles to fetch
|
|
127006
127182
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
127183
|
+
* @param {boolean} [params.paginate] whether to paginate the results, set to false by default
|
|
127184
|
+
* @param {int} [params.until] the latest time in ms to fetch ohlcv for
|
|
127007
127185
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
127008
127186
|
*/
|
|
127009
127187
|
await this.loadMarkets();
|
|
127188
|
+
let paginate = false;
|
|
127189
|
+
[paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate');
|
|
127190
|
+
if (paginate) {
|
|
127191
|
+
return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 5000);
|
|
127192
|
+
}
|
|
127010
127193
|
const market = this.market(symbol);
|
|
127011
127194
|
const request = {
|
|
127012
127195
|
'instrument_name': market['id'],
|
|
@@ -127031,6 +127214,11 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127031
127214
|
request['end_timestamp'] = this.sum(since, limit * duration * 1000);
|
|
127032
127215
|
}
|
|
127033
127216
|
}
|
|
127217
|
+
const until = this.safeInteger(params, 'until');
|
|
127218
|
+
if (until !== undefined) {
|
|
127219
|
+
params = this.omit(params, 'until');
|
|
127220
|
+
request['end_timestamp'] = until;
|
|
127221
|
+
}
|
|
127034
127222
|
const response = await this.publicGetGetTradingviewChartData(this.extend(request, params));
|
|
127035
127223
|
//
|
|
127036
127224
|
// {
|
|
@@ -127155,6 +127343,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127155
127343
|
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
127156
127344
|
* @param {int} [limit] the maximum amount of trades to fetch
|
|
127157
127345
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
127346
|
+
* @param {int} [params.until] the latest time in ms to fetch trades for
|
|
127158
127347
|
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
127159
127348
|
*/
|
|
127160
127349
|
await this.loadMarkets();
|
|
@@ -127169,8 +127358,13 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127169
127358
|
if (limit !== undefined) {
|
|
127170
127359
|
request['count'] = Math.min(limit, 1000); // default 10
|
|
127171
127360
|
}
|
|
127361
|
+
const until = this.safeInteger2(params, 'until', 'end_timestamp');
|
|
127362
|
+
if (until !== undefined) {
|
|
127363
|
+
params = this.omit(params, ['until']);
|
|
127364
|
+
request['end_timestamp'] = until;
|
|
127365
|
+
}
|
|
127172
127366
|
let response = undefined;
|
|
127173
|
-
if (since === undefined) {
|
|
127367
|
+
if ((since === undefined) && !('end_timestamp' in request)) {
|
|
127174
127368
|
response = await this.publicGetGetLastTradesByInstrument(this.extend(request, params));
|
|
127175
127369
|
}
|
|
127176
127370
|
else {
|
|
@@ -129260,7 +129454,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
129260
129454
|
const timestamp = this.safeInteger(chain, 'timestamp');
|
|
129261
129455
|
return {
|
|
129262
129456
|
'info': chain,
|
|
129263
|
-
'currency': code
|
|
129457
|
+
'currency': code,
|
|
129264
129458
|
'symbol': market['symbol'],
|
|
129265
129459
|
'timestamp': timestamp,
|
|
129266
129460
|
'datetime': this.iso8601(timestamp),
|
|
@@ -144107,7 +144301,8 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
144107
144301
|
},
|
|
144108
144302
|
'broad': {
|
|
144109
144303
|
'The Gemini Exchange is currently undergoing maintenance.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OnMaintenance,
|
|
144110
|
-
'We are investigating technical issues with the Gemini Exchange.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144304
|
+
'We are investigating technical issues with the Gemini Exchange.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144305
|
+
'Internal Server Error': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
|
|
144111
144306
|
},
|
|
144112
144307
|
},
|
|
144113
144308
|
'options': {
|
|
@@ -162617,7 +162812,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
162617
162812
|
'createMarketSellOrderWithCost': false,
|
|
162618
162813
|
'createOrder': true,
|
|
162619
162814
|
'createOrders': true,
|
|
162620
|
-
'createReduceOnlyOrder':
|
|
162815
|
+
'createReduceOnlyOrder': true,
|
|
162621
162816
|
'editOrder': true,
|
|
162622
162817
|
'fetchAccounts': false,
|
|
162623
162818
|
'fetchBalance': true,
|
|
@@ -163454,7 +163649,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
163454
163649
|
'tif': timeInForce,
|
|
163455
163650
|
};
|
|
163456
163651
|
}
|
|
163457
|
-
orderParams = this.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id']);
|
|
163652
|
+
orderParams = this.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id', 'reduceOnly', 'postOnly']);
|
|
163458
163653
|
const orderObj = {
|
|
163459
163654
|
'a': this.parseToInt(market['baseId']),
|
|
163460
163655
|
'b': isBuy,
|
|
@@ -164355,7 +164550,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164355
164550
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() requires a leverage parameter');
|
|
164356
164551
|
}
|
|
164357
164552
|
const asset = this.parseToInt(market['baseId']);
|
|
164358
|
-
const isCross = (marginMode === '
|
|
164553
|
+
const isCross = (marginMode === 'cross');
|
|
164359
164554
|
const nonce = this.milliseconds();
|
|
164360
164555
|
params = this.omit(params, ['leverage']);
|
|
164361
164556
|
const updateAction = {
|
|
@@ -164371,9 +164566,10 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164371
164566
|
vaultAddress = vaultAddress.replace('0x', '');
|
|
164372
164567
|
}
|
|
164373
164568
|
}
|
|
164374
|
-
const
|
|
164569
|
+
const extendedAction = this.extend(updateAction, params);
|
|
164570
|
+
const signature = this.signL1Action(extendedAction, nonce, vaultAddress);
|
|
164375
164571
|
const request = {
|
|
164376
|
-
'action':
|
|
164572
|
+
'action': extendedAction,
|
|
164377
164573
|
'nonce': nonce,
|
|
164378
164574
|
'signature': signature,
|
|
164379
164575
|
// 'vaultAddress': vaultAddress,
|
|
@@ -164381,7 +164577,7 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164381
164577
|
if (vaultAddress !== undefined) {
|
|
164382
164578
|
request['vaultAddress'] = vaultAddress;
|
|
164383
164579
|
}
|
|
164384
|
-
const response = await this.privatePostExchange(
|
|
164580
|
+
const response = await this.privatePostExchange(request);
|
|
164385
164581
|
//
|
|
164386
164582
|
// {
|
|
164387
164583
|
// 'response': {
|
|
@@ -164607,10 +164803,10 @@ class hyperliquid extends _abstract_hyperliquid_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
164607
164803
|
[userAux, params] = this.handleOptionAndParams(params, methodName, 'user');
|
|
164608
164804
|
let user = userAux;
|
|
164609
164805
|
[user, params] = this.handleOptionAndParams(params, methodName, 'address', userAux);
|
|
164610
|
-
if (user !== undefined) {
|
|
164806
|
+
if ((user !== undefined) && (user !== '')) {
|
|
164611
164807
|
return [user, params];
|
|
164612
164808
|
}
|
|
164613
|
-
if (this.walletAddress !== undefined) {
|
|
164809
|
+
if ((this.walletAddress !== undefined) && (this.walletAddress !== '')) {
|
|
164614
164810
|
return [this.walletAddress, params];
|
|
164615
164811
|
}
|
|
164616
164812
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' ' + methodName + '() requires a user parameter inside \'params\' or the wallet address set');
|
|
@@ -179147,7 +179343,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179147
179343
|
'fetchPremiumIndexOHLCV': false,
|
|
179148
179344
|
'fetchStatus': true,
|
|
179149
179345
|
'fetchTicker': true,
|
|
179150
|
-
'fetchTickers':
|
|
179346
|
+
'fetchTickers': true,
|
|
179151
179347
|
'fetchTime': true,
|
|
179152
179348
|
'fetchTrades': true,
|
|
179153
179349
|
'fetchTransactionFee': false,
|
|
@@ -179818,6 +180014,85 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179818
180014
|
//
|
|
179819
180015
|
return this.parseTicker(response['data'], market);
|
|
179820
180016
|
}
|
|
180017
|
+
async fetchTickers(symbols = undefined, params = {}) {
|
|
180018
|
+
/**
|
|
180019
|
+
* @method
|
|
180020
|
+
* @name kucoinfutures#fetchTickers
|
|
180021
|
+
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
180022
|
+
* @see https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
|
|
180023
|
+
* @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
180024
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
180025
|
+
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
180026
|
+
*/
|
|
180027
|
+
await this.loadMarkets();
|
|
180028
|
+
symbols = this.marketSymbols(symbols);
|
|
180029
|
+
const response = await this.futuresPublicGetContractsActive(params);
|
|
180030
|
+
//
|
|
180031
|
+
// {
|
|
180032
|
+
// "code": "200000",
|
|
180033
|
+
// "data": {
|
|
180034
|
+
// "symbol": "ETHUSDTM",
|
|
180035
|
+
// "rootSymbol": "USDT",
|
|
180036
|
+
// "type": "FFWCSX",
|
|
180037
|
+
// "firstOpenDate": 1591086000000,
|
|
180038
|
+
// "expireDate": null,
|
|
180039
|
+
// "settleDate": null,
|
|
180040
|
+
// "baseCurrency": "ETH",
|
|
180041
|
+
// "quoteCurrency": "USDT",
|
|
180042
|
+
// "settleCurrency": "USDT",
|
|
180043
|
+
// "maxOrderQty": 1000000,
|
|
180044
|
+
// "maxPrice": 1000000.0000000000,
|
|
180045
|
+
// "lotSize": 1,
|
|
180046
|
+
// "tickSize": 0.05,
|
|
180047
|
+
// "indexPriceTickSize": 0.01,
|
|
180048
|
+
// "multiplier": 0.01,
|
|
180049
|
+
// "initialMargin": 0.01,
|
|
180050
|
+
// "maintainMargin": 0.005,
|
|
180051
|
+
// "maxRiskLimit": 1000000,
|
|
180052
|
+
// "minRiskLimit": 1000000,
|
|
180053
|
+
// "riskStep": 500000,
|
|
180054
|
+
// "makerFeeRate": 0.00020,
|
|
180055
|
+
// "takerFeeRate": 0.00060,
|
|
180056
|
+
// "takerFixFee": 0.0000000000,
|
|
180057
|
+
// "makerFixFee": 0.0000000000,
|
|
180058
|
+
// "settlementFee": null,
|
|
180059
|
+
// "isDeleverage": true,
|
|
180060
|
+
// "isQuanto": true,
|
|
180061
|
+
// "isInverse": false,
|
|
180062
|
+
// "markMethod": "FairPrice",
|
|
180063
|
+
// "fairMethod": "FundingRate",
|
|
180064
|
+
// "fundingBaseSymbol": ".ETHINT8H",
|
|
180065
|
+
// "fundingQuoteSymbol": ".USDTINT8H",
|
|
180066
|
+
// "fundingRateSymbol": ".ETHUSDTMFPI8H",
|
|
180067
|
+
// "indexSymbol": ".KETHUSDT",
|
|
180068
|
+
// "settlementSymbol": "",
|
|
180069
|
+
// "status": "Open",
|
|
180070
|
+
// "fundingFeeRate": 0.000535,
|
|
180071
|
+
// "predictedFundingFeeRate": 0.002197,
|
|
180072
|
+
// "openInterest": "8724443",
|
|
180073
|
+
// "turnoverOf24h": 341156641.03354263,
|
|
180074
|
+
// "volumeOf24h": 74833.54000000,
|
|
180075
|
+
// "markPrice": 4534.07,
|
|
180076
|
+
// "indexPrice":4531.92,
|
|
180077
|
+
// "lastTradePrice": 4545.4500000000,
|
|
180078
|
+
// "nextFundingRateTime": 25481884,
|
|
180079
|
+
// "maxLeverage": 100,
|
|
180080
|
+
// "sourceExchanges": [ "huobi", "Okex", "Binance", "Kucoin", "Poloniex", "Hitbtc" ],
|
|
180081
|
+
// "premiumsSymbol1M": ".ETHUSDTMPI",
|
|
180082
|
+
// "premiumsSymbol8H": ".ETHUSDTMPI8H",
|
|
180083
|
+
// "fundingBaseSymbol1M": ".ETHINT",
|
|
180084
|
+
// "fundingQuoteSymbol1M": ".USDTINT",
|
|
180085
|
+
// "lowPrice": 4456.90,
|
|
180086
|
+
// "highPrice": 4674.25,
|
|
180087
|
+
// "priceChgPct": 0.0046,
|
|
180088
|
+
// "priceChg": 21.15
|
|
180089
|
+
// }
|
|
180090
|
+
// }
|
|
180091
|
+
//
|
|
180092
|
+
const data = this.safeList(response, 'data', []);
|
|
180093
|
+
const tickers = this.parseTickers(data, symbols);
|
|
180094
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
180095
|
+
}
|
|
179821
180096
|
parseTicker(ticker, market = undefined) {
|
|
179822
180097
|
//
|
|
179823
180098
|
// {
|
|
@@ -179837,16 +180112,76 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179837
180112
|
// }
|
|
179838
180113
|
// }
|
|
179839
180114
|
//
|
|
179840
|
-
|
|
180115
|
+
// from fetchTickers
|
|
180116
|
+
//
|
|
180117
|
+
// {
|
|
180118
|
+
// symbol: "XBTUSDTM",
|
|
180119
|
+
// rootSymbol: "USDT",
|
|
180120
|
+
// type: "FFWCSX",
|
|
180121
|
+
// firstOpenDate: 1585555200000,
|
|
180122
|
+
// expireDate: null,
|
|
180123
|
+
// settleDate: null,
|
|
180124
|
+
// baseCurrency: "XBT",
|
|
180125
|
+
// quoteCurrency: "USDT",
|
|
180126
|
+
// settleCurrency: "USDT",
|
|
180127
|
+
// maxOrderQty: 1000000,
|
|
180128
|
+
// maxPrice: 1000000,
|
|
180129
|
+
// lotSize: 1,
|
|
180130
|
+
// tickSize: 0.1,
|
|
180131
|
+
// indexPriceTickSize: 0.01,
|
|
180132
|
+
// multiplier: 0.001,
|
|
180133
|
+
// initialMargin: 0.008,
|
|
180134
|
+
// maintainMargin: 0.004,
|
|
180135
|
+
// maxRiskLimit: 100000,
|
|
180136
|
+
// minRiskLimit: 100000,
|
|
180137
|
+
// riskStep: 50000,
|
|
180138
|
+
// makerFeeRate: 0.0002,
|
|
180139
|
+
// takerFeeRate: 0.0006,
|
|
180140
|
+
// takerFixFee: 0,
|
|
180141
|
+
// makerFixFee: 0,
|
|
180142
|
+
// settlementFee: null,
|
|
180143
|
+
// isDeleverage: true,
|
|
180144
|
+
// isQuanto: true,
|
|
180145
|
+
// isInverse: false,
|
|
180146
|
+
// markMethod: "FairPrice",
|
|
180147
|
+
// fairMethod: "FundingRate",
|
|
180148
|
+
// fundingBaseSymbol: ".XBTINT8H",
|
|
180149
|
+
// fundingQuoteSymbol: ".USDTINT8H",
|
|
180150
|
+
// fundingRateSymbol: ".XBTUSDTMFPI8H",
|
|
180151
|
+
// indexSymbol: ".KXBTUSDT",
|
|
180152
|
+
// settlementSymbol: "",
|
|
180153
|
+
// status: "Open",
|
|
180154
|
+
// fundingFeeRate: 0.000297,
|
|
180155
|
+
// predictedFundingFeeRate: 0.000327,
|
|
180156
|
+
// fundingRateGranularity: 28800000,
|
|
180157
|
+
// openInterest: "8033200",
|
|
180158
|
+
// turnoverOf24h: 659795309.2524643,
|
|
180159
|
+
// volumeOf24h: 9998.54,
|
|
180160
|
+
// markPrice: 67193.51,
|
|
180161
|
+
// indexPrice: 67184.81,
|
|
180162
|
+
// lastTradePrice: 67191.8,
|
|
180163
|
+
// nextFundingRateTime: 20022985,
|
|
180164
|
+
// maxLeverage: 125,
|
|
180165
|
+
// premiumsSymbol1M: ".XBTUSDTMPI",
|
|
180166
|
+
// premiumsSymbol8H: ".XBTUSDTMPI8H",
|
|
180167
|
+
// fundingBaseSymbol1M: ".XBTINT",
|
|
180168
|
+
// fundingQuoteSymbol1M: ".USDTINT",
|
|
180169
|
+
// lowPrice: 64041.6,
|
|
180170
|
+
// highPrice: 67737.3,
|
|
180171
|
+
// priceChgPct: 0.0447,
|
|
180172
|
+
// priceChg: 2878.7
|
|
180173
|
+
// }
|
|
180174
|
+
//
|
|
179841
180175
|
const marketId = this.safeString(ticker, 'symbol');
|
|
179842
180176
|
market = this.safeMarket(marketId, market, '-');
|
|
180177
|
+
const last = this.safeString2(ticker, 'price', 'lastTradePrice');
|
|
179843
180178
|
const timestamp = this.safeIntegerProduct(ticker, 'ts', 0.000001);
|
|
179844
180179
|
return this.safeTicker({
|
|
179845
180180
|
'symbol': market['symbol'],
|
|
179846
180181
|
'timestamp': timestamp,
|
|
179847
180182
|
'datetime': this.iso8601(timestamp),
|
|
179848
|
-
'high':
|
|
179849
|
-
'low':
|
|
180183
|
+
'high': this.safeString(ticker, 'highPrice'),
|
|
180184
|
+
'low': this.safeString(ticker, 'lowPrice'),
|
|
179850
180185
|
'bid': this.safeString(ticker, 'bestBidPrice'),
|
|
179851
180186
|
'bidVolume': this.safeString(ticker, 'bestBidSize'),
|
|
179852
180187
|
'ask': this.safeString(ticker, 'bestAskPrice'),
|
|
@@ -179856,11 +180191,11 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
179856
180191
|
'close': last,
|
|
179857
180192
|
'last': last,
|
|
179858
180193
|
'previousClose': undefined,
|
|
179859
|
-
'change':
|
|
179860
|
-
'percentage':
|
|
180194
|
+
'change': this.safeString(ticker, 'priceChg'),
|
|
180195
|
+
'percentage': this.safeString(ticker, 'priceChgPct'),
|
|
179861
180196
|
'average': undefined,
|
|
179862
|
-
'baseVolume':
|
|
179863
|
-
'quoteVolume':
|
|
180197
|
+
'baseVolume': this.safeString(ticker, 'volumeOf24h'),
|
|
180198
|
+
'quoteVolume': this.safeString(ticker, 'turnoverOf24h'),
|
|
179864
180199
|
'info': ticker,
|
|
179865
180200
|
}, market);
|
|
179866
180201
|
}
|
|
@@ -205450,6 +205785,8 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
205450
205785
|
'fetchOpenInterestHistory': true,
|
|
205451
205786
|
'fetchOpenOrder': undefined,
|
|
205452
205787
|
'fetchOpenOrders': true,
|
|
205788
|
+
'fetchOption': true,
|
|
205789
|
+
'fetchOptionChain': true,
|
|
205453
205790
|
'fetchOrder': true,
|
|
205454
205791
|
'fetchOrderBook': true,
|
|
205455
205792
|
'fetchOrderBooks': false,
|
|
@@ -212766,6 +213103,143 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
212766
213103
|
const order = this.safeValue(data, 0);
|
|
212767
213104
|
return this.parseOrder(order, market);
|
|
212768
213105
|
}
|
|
213106
|
+
async fetchOption(symbol, params = {}) {
|
|
213107
|
+
/**
|
|
213108
|
+
* @method
|
|
213109
|
+
* @name okx#fetchOption
|
|
213110
|
+
* @description fetches option data that is commonly found in an option chain
|
|
213111
|
+
* @see https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-ticker
|
|
213112
|
+
* @param {string} symbol unified market symbol
|
|
213113
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
213114
|
+
* @returns {object} an [option chain structure]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
|
|
213115
|
+
*/
|
|
213116
|
+
await this.loadMarkets();
|
|
213117
|
+
const market = this.market(symbol);
|
|
213118
|
+
const request = {
|
|
213119
|
+
'instId': market['id'],
|
|
213120
|
+
};
|
|
213121
|
+
const response = await this.publicGetMarketTicker(this.extend(request, params));
|
|
213122
|
+
//
|
|
213123
|
+
// {
|
|
213124
|
+
// "code": "0",
|
|
213125
|
+
// "msg": "",
|
|
213126
|
+
// "data": [
|
|
213127
|
+
// {
|
|
213128
|
+
// "instType": "OPTION",
|
|
213129
|
+
// "instId": "BTC-USD-241227-60000-P",
|
|
213130
|
+
// "last": "",
|
|
213131
|
+
// "lastSz": "0",
|
|
213132
|
+
// "askPx": "",
|
|
213133
|
+
// "askSz": "0",
|
|
213134
|
+
// "bidPx": "",
|
|
213135
|
+
// "bidSz": "0",
|
|
213136
|
+
// "open24h": "",
|
|
213137
|
+
// "high24h": "",
|
|
213138
|
+
// "low24h": "",
|
|
213139
|
+
// "volCcy24h": "0",
|
|
213140
|
+
// "vol24h": "0",
|
|
213141
|
+
// "ts": "1711176035035",
|
|
213142
|
+
// "sodUtc0": "",
|
|
213143
|
+
// "sodUtc8": ""
|
|
213144
|
+
// }
|
|
213145
|
+
// ]
|
|
213146
|
+
// }
|
|
213147
|
+
//
|
|
213148
|
+
const result = this.safeList(response, 'data', []);
|
|
213149
|
+
const chain = this.safeDict(result, 0, {});
|
|
213150
|
+
return this.parseOption(chain, undefined, market);
|
|
213151
|
+
}
|
|
213152
|
+
async fetchOptionChain(code, params = {}) {
|
|
213153
|
+
/**
|
|
213154
|
+
* @method
|
|
213155
|
+
* @name okx#fetchOptionChain
|
|
213156
|
+
* @description fetches data for an underlying asset that is commonly found in an option chain
|
|
213157
|
+
* @see https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
|
|
213158
|
+
* @param {string} currency base currency to fetch an option chain for
|
|
213159
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
213160
|
+
* @param {string} [params.uly] the underlying asset, can be obtained from fetchUnderlyingAssets ()
|
|
213161
|
+
* @returns {object} a list of [option chain structures]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
|
|
213162
|
+
*/
|
|
213163
|
+
await this.loadMarkets();
|
|
213164
|
+
const currency = this.currency(code);
|
|
213165
|
+
const request = {
|
|
213166
|
+
'uly': currency['code'] + '-USD',
|
|
213167
|
+
'instType': 'OPTION',
|
|
213168
|
+
};
|
|
213169
|
+
const response = await this.publicGetMarketTickers(this.extend(request, params));
|
|
213170
|
+
//
|
|
213171
|
+
// {
|
|
213172
|
+
// "code": "0",
|
|
213173
|
+
// "msg": "",
|
|
213174
|
+
// "data": [
|
|
213175
|
+
// {
|
|
213176
|
+
// "instType": "OPTION",
|
|
213177
|
+
// "instId": "BTC-USD-240323-52000-C",
|
|
213178
|
+
// "last": "",
|
|
213179
|
+
// "lastSz": "0",
|
|
213180
|
+
// "askPx": "",
|
|
213181
|
+
// "askSz": "0",
|
|
213182
|
+
// "bidPx": "",
|
|
213183
|
+
// "bidSz": "0",
|
|
213184
|
+
// "open24h": "",
|
|
213185
|
+
// "high24h": "",
|
|
213186
|
+
// "low24h": "",
|
|
213187
|
+
// "volCcy24h": "0",
|
|
213188
|
+
// "vol24h": "0",
|
|
213189
|
+
// "ts": "1711176207008",
|
|
213190
|
+
// "sodUtc0": "",
|
|
213191
|
+
// "sodUtc8": ""
|
|
213192
|
+
// },
|
|
213193
|
+
// ]
|
|
213194
|
+
// }
|
|
213195
|
+
//
|
|
213196
|
+
const result = this.safeList(response, 'data', []);
|
|
213197
|
+
return this.parseOptionChain(result, undefined, 'instId');
|
|
213198
|
+
}
|
|
213199
|
+
parseOption(chain, currency = undefined, market = undefined) {
|
|
213200
|
+
//
|
|
213201
|
+
// {
|
|
213202
|
+
// "instType": "OPTION",
|
|
213203
|
+
// "instId": "BTC-USD-241227-60000-P",
|
|
213204
|
+
// "last": "",
|
|
213205
|
+
// "lastSz": "0",
|
|
213206
|
+
// "askPx": "",
|
|
213207
|
+
// "askSz": "0",
|
|
213208
|
+
// "bidPx": "",
|
|
213209
|
+
// "bidSz": "0",
|
|
213210
|
+
// "open24h": "",
|
|
213211
|
+
// "high24h": "",
|
|
213212
|
+
// "low24h": "",
|
|
213213
|
+
// "volCcy24h": "0",
|
|
213214
|
+
// "vol24h": "0",
|
|
213215
|
+
// "ts": "1711176035035",
|
|
213216
|
+
// "sodUtc0": "",
|
|
213217
|
+
// "sodUtc8": ""
|
|
213218
|
+
// }
|
|
213219
|
+
//
|
|
213220
|
+
const marketId = this.safeString(chain, 'instId');
|
|
213221
|
+
market = this.safeMarket(marketId, market);
|
|
213222
|
+
const timestamp = this.safeInteger(chain, 'ts');
|
|
213223
|
+
return {
|
|
213224
|
+
'info': chain,
|
|
213225
|
+
'currency': undefined,
|
|
213226
|
+
'symbol': market['symbol'],
|
|
213227
|
+
'timestamp': timestamp,
|
|
213228
|
+
'datetime': this.iso8601(timestamp),
|
|
213229
|
+
'impliedVolatility': undefined,
|
|
213230
|
+
'openInterest': undefined,
|
|
213231
|
+
'bidPrice': this.safeNumber(chain, 'bidPx'),
|
|
213232
|
+
'askPrice': this.safeNumber(chain, 'askPx'),
|
|
213233
|
+
'midPrice': undefined,
|
|
213234
|
+
'markPrice': undefined,
|
|
213235
|
+
'lastPrice': this.safeNumber(chain, 'last'),
|
|
213236
|
+
'underlyingPrice': undefined,
|
|
213237
|
+
'change': undefined,
|
|
213238
|
+
'percentage': undefined,
|
|
213239
|
+
'baseVolume': this.safeNumber(chain, 'volCcy24h'),
|
|
213240
|
+
'quoteVolume': undefined,
|
|
213241
|
+
};
|
|
213242
|
+
}
|
|
212769
213243
|
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
212770
213244
|
if (!response) {
|
|
212771
213245
|
return undefined; // fallback to default error handler
|
|
@@ -235359,6 +235833,402 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
235359
235833
|
}
|
|
235360
235834
|
|
|
235361
235835
|
|
|
235836
|
+
/***/ }),
|
|
235837
|
+
|
|
235838
|
+
/***/ 4922:
|
|
235839
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
235840
|
+
|
|
235841
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
235842
|
+
/* harmony export */ Z: () => (/* binding */ bithumb)
|
|
235843
|
+
/* harmony export */ });
|
|
235844
|
+
/* harmony import */ var _bithumb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5305);
|
|
235845
|
+
/* harmony import */ var _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3020);
|
|
235846
|
+
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6689);
|
|
235847
|
+
// ---------------------------------------------------------------------------
|
|
235848
|
+
|
|
235849
|
+
|
|
235850
|
+
|
|
235851
|
+
// ---------------------------------------------------------------------------
|
|
235852
|
+
class bithumb extends _bithumb_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
235853
|
+
describe() {
|
|
235854
|
+
return this.deepExtend(super.describe(), {
|
|
235855
|
+
'has': {
|
|
235856
|
+
'ws': true,
|
|
235857
|
+
'watchBalance': false,
|
|
235858
|
+
'watchTicker': true,
|
|
235859
|
+
'watchTickers': true,
|
|
235860
|
+
'watchTrades': true,
|
|
235861
|
+
'watchOrderBook': true,
|
|
235862
|
+
'watchOHLCV': false,
|
|
235863
|
+
},
|
|
235864
|
+
'urls': {
|
|
235865
|
+
'api': {
|
|
235866
|
+
'ws': 'wss://pubwss.bithumb.com/pub/ws',
|
|
235867
|
+
},
|
|
235868
|
+
},
|
|
235869
|
+
'options': {},
|
|
235870
|
+
'streaming': {},
|
|
235871
|
+
'exceptions': {},
|
|
235872
|
+
});
|
|
235873
|
+
}
|
|
235874
|
+
async watchTicker(symbol, params = {}) {
|
|
235875
|
+
/**
|
|
235876
|
+
* @method
|
|
235877
|
+
* @name bithumb#watchTicker
|
|
235878
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
235879
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
235880
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
235881
|
+
* @param {string} [params.channel] the channel to subscribe to, tickers by default. Can be tickers, sprd-tickers, index-tickers, block-tickers
|
|
235882
|
+
* @returns {object} a [ticker structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
235883
|
+
*/
|
|
235884
|
+
const url = this.urls['api']['ws'];
|
|
235885
|
+
await this.loadMarkets();
|
|
235886
|
+
const market = this.market(symbol);
|
|
235887
|
+
const messageHash = 'ticker:' + market['symbol'];
|
|
235888
|
+
const request = {
|
|
235889
|
+
'type': 'ticker',
|
|
235890
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
235891
|
+
'tickTypes': [this.safeString(params, 'tickTypes', '24H')],
|
|
235892
|
+
};
|
|
235893
|
+
return await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
235894
|
+
}
|
|
235895
|
+
async watchTickers(symbols = undefined, params = {}) {
|
|
235896
|
+
/**
|
|
235897
|
+
* @method
|
|
235898
|
+
* @name binance#watchTickers
|
|
235899
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
235900
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
235901
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
235902
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
235903
|
+
*/
|
|
235904
|
+
await this.loadMarkets();
|
|
235905
|
+
const url = this.urls['api']['ws'];
|
|
235906
|
+
const marketIds = [];
|
|
235907
|
+
const messageHashes = [];
|
|
235908
|
+
symbols = this.marketSymbols(symbols, undefined, false, true, true);
|
|
235909
|
+
for (let i = 0; i < symbols.length; i++) {
|
|
235910
|
+
const symbol = symbols[i];
|
|
235911
|
+
const market = this.market(symbol);
|
|
235912
|
+
marketIds.push(market['base'] + '_' + market['quote']);
|
|
235913
|
+
messageHashes.push('ticker:' + market['symbol']);
|
|
235914
|
+
}
|
|
235915
|
+
const request = {
|
|
235916
|
+
'type': 'ticker',
|
|
235917
|
+
'symbols': marketIds,
|
|
235918
|
+
'tickTypes': [this.safeString(params, 'tickTypes', '24H')],
|
|
235919
|
+
};
|
|
235920
|
+
const message = this.extend(request, params);
|
|
235921
|
+
const newTicker = await this.watchMultiple(url, messageHashes, message, messageHashes);
|
|
235922
|
+
if (this.newUpdates) {
|
|
235923
|
+
const result = {};
|
|
235924
|
+
result[newTicker['symbol']] = newTicker;
|
|
235925
|
+
return result;
|
|
235926
|
+
}
|
|
235927
|
+
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
235928
|
+
}
|
|
235929
|
+
handleTicker(client, message) {
|
|
235930
|
+
//
|
|
235931
|
+
// {
|
|
235932
|
+
// "type" : "ticker",
|
|
235933
|
+
// "content" : {
|
|
235934
|
+
// "symbol" : "BTC_KRW", // 통화코드
|
|
235935
|
+
// "tickType" : "24H", // 변동 기준시간- 30M, 1H, 12H, 24H, MID
|
|
235936
|
+
// "date" : "20200129", // 일자
|
|
235937
|
+
// "time" : "121844", // 시간
|
|
235938
|
+
// "openPrice" : "2302", // 시가
|
|
235939
|
+
// "closePrice" : "2317", // 종가
|
|
235940
|
+
// "lowPrice" : "2272", // 저가
|
|
235941
|
+
// "highPrice" : "2344", // 고가
|
|
235942
|
+
// "value" : "2831915078.07065789", // 누적거래금액
|
|
235943
|
+
// "volume" : "1222314.51355788", // 누적거래량
|
|
235944
|
+
// "sellVolume" : "760129.34079004", // 매도누적거래량
|
|
235945
|
+
// "buyVolume" : "462185.17276784", // 매수누적거래량
|
|
235946
|
+
// "prevClosePrice" : "2326", // 전일종가
|
|
235947
|
+
// "chgRate" : "0.65", // 변동률
|
|
235948
|
+
// "chgAmt" : "15", // 변동금액
|
|
235949
|
+
// "volumePower" : "60.80" // 체결강도
|
|
235950
|
+
// }
|
|
235951
|
+
// }
|
|
235952
|
+
//
|
|
235953
|
+
const content = this.safeDict(message, 'content', {});
|
|
235954
|
+
const marketId = this.safeString(content, 'symbol');
|
|
235955
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
235956
|
+
const ticker = this.parseWsTicker(content);
|
|
235957
|
+
const messageHash = 'ticker:' + symbol;
|
|
235958
|
+
this.tickers[symbol] = ticker;
|
|
235959
|
+
client.resolve(this.tickers[symbol], messageHash);
|
|
235960
|
+
}
|
|
235961
|
+
parseWsTicker(ticker, market = undefined) {
|
|
235962
|
+
//
|
|
235963
|
+
// {
|
|
235964
|
+
// "symbol" : "BTC_KRW", // 통화코드
|
|
235965
|
+
// "tickType" : "24H", // 변동 기준시간- 30M, 1H, 12H, 24H, MID
|
|
235966
|
+
// "date" : "20200129", // 일자
|
|
235967
|
+
// "time" : "121844", // 시간
|
|
235968
|
+
// "openPrice" : "2302", // 시가
|
|
235969
|
+
// "closePrice" : "2317", // 종가
|
|
235970
|
+
// "lowPrice" : "2272", // 저가
|
|
235971
|
+
// "highPrice" : "2344", // 고가
|
|
235972
|
+
// "value" : "2831915078.07065789", // 누적거래금액
|
|
235973
|
+
// "volume" : "1222314.51355788", // 누적거래량
|
|
235974
|
+
// "sellVolume" : "760129.34079004", // 매도누적거래량
|
|
235975
|
+
// "buyVolume" : "462185.17276784", // 매수누적거래량
|
|
235976
|
+
// "prevClosePrice" : "2326", // 전일종가
|
|
235977
|
+
// "chgRate" : "0.65", // 변동률
|
|
235978
|
+
// "chgAmt" : "15", // 변동금액
|
|
235979
|
+
// "volumePower" : "60.80" // 체결강도
|
|
235980
|
+
// }
|
|
235981
|
+
//
|
|
235982
|
+
const date = this.safeString(ticker, 'date', '');
|
|
235983
|
+
const time = this.safeString(ticker, 'time', '');
|
|
235984
|
+
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);
|
|
235985
|
+
const marketId = this.safeString(ticker, 'symbol');
|
|
235986
|
+
return this.safeTicker({
|
|
235987
|
+
'symbol': this.safeSymbol(marketId, market, '_'),
|
|
235988
|
+
'timestamp': this.parse8601(datetime),
|
|
235989
|
+
'datetime': datetime,
|
|
235990
|
+
'high': this.safeString(ticker, 'highPrice'),
|
|
235991
|
+
'low': this.safeString(ticker, 'lowPrice'),
|
|
235992
|
+
'bid': undefined,
|
|
235993
|
+
'bidVolume': this.safeString(ticker, 'buyVolume'),
|
|
235994
|
+
'ask': undefined,
|
|
235995
|
+
'askVolume': this.safeString(ticker, 'sellVolume'),
|
|
235996
|
+
'vwap': undefined,
|
|
235997
|
+
'open': this.safeString(ticker, 'openPrice'),
|
|
235998
|
+
'close': this.safeString(ticker, 'closePrice'),
|
|
235999
|
+
'last': undefined,
|
|
236000
|
+
'previousClose': this.safeString(ticker, 'prevClosePrice'),
|
|
236001
|
+
'change': this.safeString(ticker, 'chgAmt'),
|
|
236002
|
+
'percentage': this.safeString(ticker, 'chgRate'),
|
|
236003
|
+
'average': undefined,
|
|
236004
|
+
'baseVolume': this.safeString(ticker, 'volume'),
|
|
236005
|
+
'quoteVolume': this.safeString(ticker, 'value'),
|
|
236006
|
+
'info': ticker,
|
|
236007
|
+
}, market);
|
|
236008
|
+
}
|
|
236009
|
+
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
236010
|
+
/**
|
|
236011
|
+
* @method
|
|
236012
|
+
* @name bithumb#watchOrderBook
|
|
236013
|
+
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
236014
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
236015
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
236016
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236017
|
+
* @returns {object} A dictionary of [order book structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure} indexed by market symbols
|
|
236018
|
+
*/
|
|
236019
|
+
await this.loadMarkets();
|
|
236020
|
+
const url = this.urls['api']['ws'];
|
|
236021
|
+
const market = this.market(symbol);
|
|
236022
|
+
symbol = market['symbol'];
|
|
236023
|
+
const messageHash = 'orderbook' + ':' + symbol;
|
|
236024
|
+
const request = {
|
|
236025
|
+
'type': 'orderbookdepth',
|
|
236026
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
236027
|
+
};
|
|
236028
|
+
const orderbook = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
236029
|
+
return orderbook.limit();
|
|
236030
|
+
}
|
|
236031
|
+
handleOrderBook(client, message) {
|
|
236032
|
+
//
|
|
236033
|
+
// {
|
|
236034
|
+
// "type" : "orderbookdepth",
|
|
236035
|
+
// "content" : {
|
|
236036
|
+
// "list" : [
|
|
236037
|
+
// {
|
|
236038
|
+
// "symbol" : "BTC_KRW",
|
|
236039
|
+
// "orderType" : "ask", // 주문타입 – bid / ask
|
|
236040
|
+
// "price" : "10593000", // 호가
|
|
236041
|
+
// "quantity" : "1.11223318", // 잔량
|
|
236042
|
+
// "total" : "3" // 건수
|
|
236043
|
+
// },
|
|
236044
|
+
// {"symbol" : "BTC_KRW", "orderType" : "ask", "price" : "10596000", "quantity" : "0.5495", "total" : "8"},
|
|
236045
|
+
// {"symbol" : "BTC_KRW", "orderType" : "ask", "price" : "10598000", "quantity" : "18.2085", "total" : "10"},
|
|
236046
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10532000", "quantity" : "0", "total" : "0"},
|
|
236047
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10572000", "quantity" : "2.3324", "total" : "4"},
|
|
236048
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10571000", "quantity" : "1.469", "total" : "3"},
|
|
236049
|
+
// {"symbol" : "BTC_KRW", "orderType" : "bid", "price" : "10569000", "quantity" : "0.5152", "total" : "2"}
|
|
236050
|
+
// ],
|
|
236051
|
+
// "datetime":1580268255864325 // 일시
|
|
236052
|
+
// }
|
|
236053
|
+
// }
|
|
236054
|
+
//
|
|
236055
|
+
const content = this.safeDict(message, 'content', {});
|
|
236056
|
+
const list = this.safeList(content, 'list', []);
|
|
236057
|
+
const first = this.safeDict(list, 0, {});
|
|
236058
|
+
const marketId = this.safeString(first, 'symbol');
|
|
236059
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
236060
|
+
const timestampStr = this.safeString(content, 'datetime');
|
|
236061
|
+
const timestamp = this.parseToInt(timestampStr.slice(0, 13));
|
|
236062
|
+
if (!(symbol in this.orderbooks)) {
|
|
236063
|
+
const ob = this.orderBook();
|
|
236064
|
+
ob['symbol'] = symbol;
|
|
236065
|
+
this.orderbooks[symbol] = ob;
|
|
236066
|
+
}
|
|
236067
|
+
const orderbook = this.orderbooks[symbol];
|
|
236068
|
+
this.handleDeltas(orderbook, list);
|
|
236069
|
+
orderbook['timestamp'] = timestamp;
|
|
236070
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
236071
|
+
const messageHash = 'orderbook' + ':' + symbol;
|
|
236072
|
+
client.resolve(orderbook, messageHash);
|
|
236073
|
+
}
|
|
236074
|
+
handleDelta(orderbook, delta) {
|
|
236075
|
+
//
|
|
236076
|
+
// {
|
|
236077
|
+
// symbol: "ETH_BTC",
|
|
236078
|
+
// orderType: "bid",
|
|
236079
|
+
// price: "0.07349517",
|
|
236080
|
+
// quantity: "0",
|
|
236081
|
+
// total: "0",
|
|
236082
|
+
// }
|
|
236083
|
+
//
|
|
236084
|
+
const sideId = this.safeString(delta, 'orderType');
|
|
236085
|
+
const side = (sideId === 'bid') ? 'bids' : 'asks';
|
|
236086
|
+
const bidAsk = this.parseBidAsk(delta, 'price', 'quantity');
|
|
236087
|
+
const orderbookSide = orderbook[side];
|
|
236088
|
+
orderbookSide.storeArray(bidAsk);
|
|
236089
|
+
}
|
|
236090
|
+
handleDeltas(orderbook, deltas) {
|
|
236091
|
+
for (let i = 0; i < deltas.length; i++) {
|
|
236092
|
+
this.handleDelta(orderbook, deltas[i]);
|
|
236093
|
+
}
|
|
236094
|
+
}
|
|
236095
|
+
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
236096
|
+
/**
|
|
236097
|
+
* @method
|
|
236098
|
+
* @name bithumb#watchTrades
|
|
236099
|
+
* @description get the list of most recent trades for a particular symbol
|
|
236100
|
+
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
236101
|
+
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
236102
|
+
* @param {int} [limit] the maximum amount of trades to fetch
|
|
236103
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236104
|
+
* @returns {object[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
|
|
236105
|
+
*/
|
|
236106
|
+
await this.loadMarkets();
|
|
236107
|
+
const url = this.urls['api']['ws'];
|
|
236108
|
+
const market = this.market(symbol);
|
|
236109
|
+
symbol = market['symbol'];
|
|
236110
|
+
const messageHash = 'trade:' + symbol;
|
|
236111
|
+
const request = {
|
|
236112
|
+
'type': 'transaction',
|
|
236113
|
+
'symbols': [market['base'] + '_' + market['quote']],
|
|
236114
|
+
};
|
|
236115
|
+
const trades = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
236116
|
+
if (this.newUpdates) {
|
|
236117
|
+
limit = trades.getLimit(symbol, limit);
|
|
236118
|
+
}
|
|
236119
|
+
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
236120
|
+
}
|
|
236121
|
+
handleTrades(client, message) {
|
|
236122
|
+
//
|
|
236123
|
+
// {
|
|
236124
|
+
// "type" : "transaction",
|
|
236125
|
+
// "content" : {
|
|
236126
|
+
// "list" : [
|
|
236127
|
+
// {
|
|
236128
|
+
// "symbol" : "BTC_KRW",
|
|
236129
|
+
// "buySellGb" : "1",
|
|
236130
|
+
// "contPrice" : "10579000",
|
|
236131
|
+
// "contQty" : "0.01",
|
|
236132
|
+
// "contAmt" : "105790.00",
|
|
236133
|
+
// "contDtm" : "2020-01-29 12:24:18.830039",
|
|
236134
|
+
// "updn" : "dn"
|
|
236135
|
+
// }
|
|
236136
|
+
// ]
|
|
236137
|
+
// }
|
|
236138
|
+
// }
|
|
236139
|
+
//
|
|
236140
|
+
const content = this.safeDict(message, 'content', {});
|
|
236141
|
+
const rawTrades = this.safeList(content, 'list', []);
|
|
236142
|
+
for (let i = 0; i < rawTrades.length; i++) {
|
|
236143
|
+
const rawTrade = rawTrades[i];
|
|
236144
|
+
const marketId = this.safeString(rawTrade, 'symbol');
|
|
236145
|
+
const symbol = this.safeSymbol(marketId, undefined, '_');
|
|
236146
|
+
if (!(symbol in this.trades)) {
|
|
236147
|
+
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
236148
|
+
const stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__/* .ArrayCache */ .ZL(limit);
|
|
236149
|
+
this.trades[symbol] = stored;
|
|
236150
|
+
}
|
|
236151
|
+
const trades = this.trades[symbol];
|
|
236152
|
+
const parsed = this.parseWsTrade(rawTrade);
|
|
236153
|
+
trades.append(parsed);
|
|
236154
|
+
const messageHash = 'trade' + ':' + symbol;
|
|
236155
|
+
client.resolve(trades, messageHash);
|
|
236156
|
+
}
|
|
236157
|
+
}
|
|
236158
|
+
parseWsTrade(trade, market = undefined) {
|
|
236159
|
+
//
|
|
236160
|
+
// {
|
|
236161
|
+
// "symbol" : "BTC_KRW",
|
|
236162
|
+
// "buySellGb" : "1",
|
|
236163
|
+
// "contPrice" : "10579000",
|
|
236164
|
+
// "contQty" : "0.01",
|
|
236165
|
+
// "contAmt" : "105790.00",
|
|
236166
|
+
// "contDtm" : "2020-01-29 12:24:18.830039",
|
|
236167
|
+
// "updn" : "dn"
|
|
236168
|
+
// }
|
|
236169
|
+
//
|
|
236170
|
+
const marketId = this.safeString(trade, 'symbol');
|
|
236171
|
+
const datetime = this.safeString(trade, 'contDtm');
|
|
236172
|
+
const sideId = this.safeString(trade, 'buySellGb');
|
|
236173
|
+
return this.safeTrade({
|
|
236174
|
+
'id': undefined,
|
|
236175
|
+
'info': trade,
|
|
236176
|
+
'timestamp': this.parse8601(datetime),
|
|
236177
|
+
'datetime': datetime,
|
|
236178
|
+
'symbol': this.safeSymbol(marketId, market, '_'),
|
|
236179
|
+
'order': undefined,
|
|
236180
|
+
'type': undefined,
|
|
236181
|
+
'side': (sideId === '1') ? 'buy' : 'sell',
|
|
236182
|
+
'takerOrMaker': undefined,
|
|
236183
|
+
'price': this.safeString(trade, 'contPrice'),
|
|
236184
|
+
'amount': this.safeString(trade, 'contQty'),
|
|
236185
|
+
'cost': this.safeString(trade, 'contAmt'),
|
|
236186
|
+
'fee': undefined,
|
|
236187
|
+
}, market);
|
|
236188
|
+
}
|
|
236189
|
+
handleErrorMessage(client, message) {
|
|
236190
|
+
//
|
|
236191
|
+
// {
|
|
236192
|
+
// "status" : "5100",
|
|
236193
|
+
// "resmsg" : "Invalid Filter Syntax"
|
|
236194
|
+
// }
|
|
236195
|
+
//
|
|
236196
|
+
if (!('status' in message)) {
|
|
236197
|
+
return true;
|
|
236198
|
+
}
|
|
236199
|
+
const errorCode = this.safeString(message, 'status');
|
|
236200
|
+
try {
|
|
236201
|
+
if (errorCode !== '0000') {
|
|
236202
|
+
const msg = this.safeString(message, 'resmsg');
|
|
236203
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' ' + msg);
|
|
236204
|
+
}
|
|
236205
|
+
return true;
|
|
236206
|
+
}
|
|
236207
|
+
catch (e) {
|
|
236208
|
+
client.reject(e);
|
|
236209
|
+
}
|
|
236210
|
+
return true;
|
|
236211
|
+
}
|
|
236212
|
+
handleMessage(client, message) {
|
|
236213
|
+
if (!this.handleErrorMessage(client, message)) {
|
|
236214
|
+
return;
|
|
236215
|
+
}
|
|
236216
|
+
const topic = this.safeString(message, 'type');
|
|
236217
|
+
if (topic !== undefined) {
|
|
236218
|
+
const methods = {
|
|
236219
|
+
'ticker': this.handleTicker,
|
|
236220
|
+
'orderbookdepth': this.handleOrderBook,
|
|
236221
|
+
'transaction': this.handleTrades,
|
|
236222
|
+
};
|
|
236223
|
+
const method = this.safeValue(methods, topic);
|
|
236224
|
+
if (method !== undefined) {
|
|
236225
|
+
method.call(this, client, message);
|
|
236226
|
+
}
|
|
236227
|
+
}
|
|
236228
|
+
}
|
|
236229
|
+
}
|
|
236230
|
+
|
|
236231
|
+
|
|
235362
236232
|
/***/ }),
|
|
235363
236233
|
|
|
235364
236234
|
/***/ 7504:
|
|
@@ -236075,10 +236945,10 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
236075
236945
|
// }
|
|
236076
236946
|
//
|
|
236077
236947
|
const data = this.safeValue(message, 'data', []);
|
|
236078
|
-
const cache = this.positions;
|
|
236079
236948
|
if (this.positions === undefined) {
|
|
236080
236949
|
this.positions = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCacheBySymbolBySide */ .tU();
|
|
236081
236950
|
}
|
|
236951
|
+
const cache = this.positions;
|
|
236082
236952
|
const newPositions = [];
|
|
236083
236953
|
for (let i = 0; i < data.length; i++) {
|
|
236084
236954
|
const rawPosition = data[i];
|
|
@@ -242437,7 +243307,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
242437
243307
|
/**
|
|
242438
243308
|
* @method
|
|
242439
243309
|
* @name bybit#watchTickers
|
|
242440
|
-
* @description
|
|
243310
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
242441
243311
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/public/ticker
|
|
242442
243312
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/public/etp-ticker
|
|
242443
243313
|
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
@@ -244246,6 +245116,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244246
245116
|
const url = this.urls['api']['ws'];
|
|
244247
245117
|
const messageHash = 'trades';
|
|
244248
245118
|
const subscriptionHash = 'old:' + symbol;
|
|
245119
|
+
this.options['currentWatchTradeSymbol'] = symbol; // exchange supports only 1 symbol for this watchTrades channel
|
|
244249
245120
|
const client = this.safeValue(this.clients, url);
|
|
244250
245121
|
if (client !== undefined) {
|
|
244251
245122
|
const subscriptionKeys = Object.keys(client.subscriptions);
|
|
@@ -244287,11 +245158,16 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244287
245158
|
const data = this.safeList(message, 'data', []);
|
|
244288
245159
|
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
244289
245160
|
const stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCache */ .ZL(limit);
|
|
245161
|
+
const symbol = this.safeString(this.options, 'currentWatchTradeSymbol');
|
|
245162
|
+
if (symbol === undefined) {
|
|
245163
|
+
return;
|
|
245164
|
+
}
|
|
245165
|
+
const market = this.market(symbol);
|
|
244290
245166
|
const dataLength = data.length;
|
|
244291
245167
|
for (let i = 0; i < dataLength; i++) {
|
|
244292
245168
|
const index = dataLength - 1 - i;
|
|
244293
245169
|
const rawTrade = data[index];
|
|
244294
|
-
const parsed = this.parseWsOldTrade(rawTrade);
|
|
245170
|
+
const parsed = this.parseWsOldTrade(rawTrade, market);
|
|
244295
245171
|
stored.append(parsed);
|
|
244296
245172
|
}
|
|
244297
245173
|
const messageHash = 'trades';
|
|
@@ -244318,7 +245194,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244318
245194
|
'id': id,
|
|
244319
245195
|
'timestamp': timestamp,
|
|
244320
245196
|
'datetime': this.iso8601(timestamp),
|
|
244321
|
-
'symbol':
|
|
245197
|
+
'symbol': this.safeString(market, 'symbol'),
|
|
244322
245198
|
'type': undefined,
|
|
244323
245199
|
'side': side,
|
|
244324
245200
|
'order': undefined,
|
|
@@ -244340,8 +245216,10 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244340
245216
|
//
|
|
244341
245217
|
const data = this.safeValue(message, 'data', []);
|
|
244342
245218
|
const stored = this.trades; // to do fix this, this.trades is not meant to be used like this
|
|
244343
|
-
|
|
244344
|
-
|
|
245219
|
+
const dataLength = data.length;
|
|
245220
|
+
for (let i = 0; i < dataLength; i++) {
|
|
245221
|
+
const index = dataLength - 1 - i;
|
|
245222
|
+
const rawTrade = data[index];
|
|
244345
245223
|
const parsed = this.parseWsOldTrade(rawTrade);
|
|
244346
245224
|
stored.append(parsed);
|
|
244347
245225
|
}
|
|
@@ -244457,12 +245335,17 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
244457
245335
|
const data = this.safeValue(message, 'data', {});
|
|
244458
245336
|
const ticker = this.parseWsTicker(data);
|
|
244459
245337
|
const symbol = ticker['symbol'];
|
|
245338
|
+
if (symbol === undefined) {
|
|
245339
|
+
return;
|
|
245340
|
+
}
|
|
244460
245341
|
this.tickers[symbol] = ticker;
|
|
244461
245342
|
let messageHash = 'ticker:' + symbol;
|
|
244462
245343
|
client.resolve(ticker, messageHash);
|
|
244463
245344
|
client.resolve(ticker, 'tickers');
|
|
244464
245345
|
messageHash = this.safeString(message, 'oid');
|
|
244465
|
-
|
|
245346
|
+
if (messageHash !== undefined) {
|
|
245347
|
+
client.resolve(ticker, messageHash);
|
|
245348
|
+
}
|
|
244466
245349
|
}
|
|
244467
245350
|
parseWsTicker(ticker, market = undefined) {
|
|
244468
245351
|
//
|
|
@@ -271710,7 +272593,8 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
271710
272593
|
this.handleErrors(undefined, undefined, client.url, method, undefined, stringMsg, stringMsg, undefined, undefined);
|
|
271711
272594
|
}
|
|
271712
272595
|
const orders = this.parseOrders(args, undefined, undefined, undefined);
|
|
271713
|
-
|
|
272596
|
+
const first = this.safeDict(orders, 0, {});
|
|
272597
|
+
client.resolve(first, messageHash);
|
|
271714
272598
|
}
|
|
271715
272599
|
async editOrderWs(id, symbol, type, side, amount, price = undefined, params = {}) {
|
|
271716
272600
|
/**
|
|
@@ -273429,6 +274313,7 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
273429
274313
|
'watchTickers': {
|
|
273430
274314
|
'name': 'state', // or 'price'
|
|
273431
274315
|
},
|
|
274316
|
+
'tickerSubs': this.createSafeDictionary(),
|
|
273432
274317
|
},
|
|
273433
274318
|
'streaming': {
|
|
273434
274319
|
'ping': this.ping,
|
|
@@ -273499,13 +274384,14 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
273499
274384
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
273500
274385
|
*/
|
|
273501
274386
|
await this.loadMarkets();
|
|
273502
|
-
const watchTickerOptions = this.
|
|
274387
|
+
const watchTickerOptions = this.safeDict(this.options, 'watchTicker');
|
|
273503
274388
|
let name = this.safeString(watchTickerOptions, 'name', 'state'); // or price
|
|
273504
274389
|
[name, params] = this.handleOptionAndParams(params, 'method', 'name', name);
|
|
273505
274390
|
const market = this.market(symbol);
|
|
273506
|
-
|
|
273507
|
-
|
|
273508
|
-
];
|
|
274391
|
+
symbol = market['symbol'];
|
|
274392
|
+
this.options['tickerSubs'][market['id']] = true; // we need to re-subscribe to all tickers upon watching a new ticker
|
|
274393
|
+
const tickerSubs = this.options['tickerSubs'];
|
|
274394
|
+
const request = Object.keys(tickerSubs);
|
|
273509
274395
|
const messageHash = name + '::' + market['symbol'];
|
|
273510
274396
|
return await this.subscribe(name + '.subscribe', messageHash, request, params);
|
|
273511
274397
|
}
|
|
@@ -273808,6 +274694,14 @@ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
273808
274694
|
client.lastPong = this.safeInteger(message, 'id');
|
|
273809
274695
|
return message;
|
|
273810
274696
|
}
|
|
274697
|
+
onError(client, error) {
|
|
274698
|
+
this.options['tickerSubs'] = this.createSafeDictionary();
|
|
274699
|
+
this.onError(client, error);
|
|
274700
|
+
}
|
|
274701
|
+
onClose(client, error) {
|
|
274702
|
+
this.options['tickerSubs'] = this.createSafeDictionary();
|
|
274703
|
+
this.onClose(client, error);
|
|
274704
|
+
}
|
|
273811
274705
|
}
|
|
273812
274706
|
|
|
273813
274707
|
|
|
@@ -280448,7 +281342,7 @@ class woo extends _woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
280448
281342
|
/**
|
|
280449
281343
|
* @method
|
|
280450
281344
|
* @name woo#watchTickers
|
|
280451
|
-
* @description
|
|
281345
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
280452
281346
|
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
280453
281347
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280454
281348
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
@@ -322611,39 +323505,39 @@ var __webpack_exports__ = {};
|
|
|
322611
323505
|
(() => {
|
|
322612
323506
|
__webpack_require__.r(__webpack_exports__);
|
|
322613
323507
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
322614
|
-
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */
|
|
322615
|
-
/* harmony export */ AccountSuspended: () => (/* reexport safe */
|
|
322616
|
-
/* harmony export */ AddressPending: () => (/* reexport safe */
|
|
322617
|
-
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */
|
|
322618
|
-
/* harmony export */ AuthenticationError: () => (/* reexport safe */
|
|
322619
|
-
/* harmony export */ BadRequest: () => (/* reexport safe */
|
|
322620
|
-
/* harmony export */ BadResponse: () => (/* reexport safe */
|
|
322621
|
-
/* harmony export */ BadSymbol: () => (/* reexport safe */
|
|
322622
|
-
/* harmony export */ BaseError: () => (/* reexport safe */
|
|
322623
|
-
/* harmony export */ CancelPending: () => (/* reexport safe */
|
|
322624
|
-
/* harmony export */ DDoSProtection: () => (/* reexport safe */
|
|
322625
|
-
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */
|
|
323508
|
+
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AccountNotEnabled),
|
|
323509
|
+
/* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AccountSuspended),
|
|
323510
|
+
/* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AddressPending),
|
|
323511
|
+
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ArgumentsRequired),
|
|
323512
|
+
/* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.AuthenticationError),
|
|
323513
|
+
/* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadRequest),
|
|
323514
|
+
/* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadResponse),
|
|
323515
|
+
/* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BadSymbol),
|
|
323516
|
+
/* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.BaseError),
|
|
323517
|
+
/* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.CancelPending),
|
|
323518
|
+
/* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.DDoSProtection),
|
|
323519
|
+
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.DuplicateOrderId),
|
|
322626
323520
|
/* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
|
|
322627
|
-
/* harmony export */ ExchangeError: () => (/* reexport safe */
|
|
322628
|
-
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */
|
|
322629
|
-
/* harmony export */ InsufficientFunds: () => (/* reexport safe */
|
|
322630
|
-
/* harmony export */ InvalidAddress: () => (/* reexport safe */
|
|
322631
|
-
/* harmony export */ InvalidNonce: () => (/* reexport safe */
|
|
322632
|
-
/* harmony export */ InvalidOrder: () => (/* reexport safe */
|
|
322633
|
-
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */
|
|
322634
|
-
/* harmony export */ NetworkError: () => (/* reexport safe */
|
|
322635
|
-
/* harmony export */ NoChange: () => (/* reexport safe */
|
|
322636
|
-
/* harmony export */ NotSupported: () => (/* reexport safe */
|
|
322637
|
-
/* harmony export */ NullResponse: () => (/* reexport safe */
|
|
322638
|
-
/* harmony export */ OnMaintenance: () => (/* reexport safe */
|
|
322639
|
-
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */
|
|
322640
|
-
/* harmony export */ OrderNotCached: () => (/* reexport safe */
|
|
322641
|
-
/* harmony export */ OrderNotFillable: () => (/* reexport safe */
|
|
322642
|
-
/* harmony export */ OrderNotFound: () => (/* reexport safe */
|
|
322643
|
-
/* harmony export */ PermissionDenied: () => (/* reexport safe */
|
|
322644
|
-
/* harmony export */ Precise: () => (/* reexport safe */
|
|
322645
|
-
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */
|
|
322646
|
-
/* harmony export */ RequestTimeout: () => (/* reexport safe */
|
|
323521
|
+
/* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ExchangeError),
|
|
323522
|
+
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.ExchangeNotAvailable),
|
|
323523
|
+
/* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InsufficientFunds),
|
|
323524
|
+
/* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidAddress),
|
|
323525
|
+
/* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidNonce),
|
|
323526
|
+
/* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.InvalidOrder),
|
|
323527
|
+
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.MarginModeAlreadySet),
|
|
323528
|
+
/* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NetworkError),
|
|
323529
|
+
/* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NoChange),
|
|
323530
|
+
/* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NotSupported),
|
|
323531
|
+
/* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.NullResponse),
|
|
323532
|
+
/* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OnMaintenance),
|
|
323533
|
+
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderImmediatelyFillable),
|
|
323534
|
+
/* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotCached),
|
|
323535
|
+
/* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotFillable),
|
|
323536
|
+
/* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.OrderNotFound),
|
|
323537
|
+
/* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.PermissionDenied),
|
|
323538
|
+
/* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_168__.O),
|
|
323539
|
+
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.RateLimitExceeded),
|
|
323540
|
+
/* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__.RequestTimeout),
|
|
322647
323541
|
/* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
322648
323542
|
/* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
322649
323543
|
/* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
@@ -322699,11 +323593,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
322699
323593
|
/* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
322700
323594
|
/* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
322701
323595
|
/* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
322702
|
-
/* harmony export */ errors: () => (/* reexport module object */
|
|
323596
|
+
/* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__),
|
|
322703
323597
|
/* harmony export */ exchanges: () => (/* binding */ exchanges),
|
|
322704
323598
|
/* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
322705
323599
|
/* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
322706
|
-
/* harmony export */ functions: () => (/* reexport module object */
|
|
323600
|
+
/* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_169__),
|
|
322707
323601
|
/* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
322708
323602
|
/* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_58__.Z),
|
|
322709
323603
|
/* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_59__.Z),
|
|
@@ -322755,9 +323649,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
322755
323649
|
/* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_103__.Z)
|
|
322756
323650
|
/* harmony export */ });
|
|
322757
323651
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
322758
|
-
/* harmony import */ var
|
|
322759
|
-
/* harmony import */ var
|
|
322760
|
-
/* harmony import */ var
|
|
323652
|
+
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(2194);
|
|
323653
|
+
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(7100);
|
|
323654
|
+
/* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(6689);
|
|
322761
323655
|
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
|
|
322762
323656
|
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
|
|
322763
323657
|
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
|
|
@@ -322873,57 +323767,58 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
322873
323767
|
/* harmony import */ var _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(9772);
|
|
322874
323768
|
/* harmony import */ var _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(588);
|
|
322875
323769
|
/* harmony import */ var _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(1885);
|
|
322876
|
-
/* harmony import */ var
|
|
322877
|
-
/* harmony import */ var
|
|
322878
|
-
/* harmony import */ var
|
|
322879
|
-
/* harmony import */ var
|
|
322880
|
-
/* harmony import */ var
|
|
322881
|
-
/* harmony import */ var
|
|
322882
|
-
/* harmony import */ var
|
|
322883
|
-
/* harmony import */ var
|
|
322884
|
-
/* harmony import */ var
|
|
322885
|
-
/* harmony import */ var
|
|
322886
|
-
/* harmony import */ var
|
|
322887
|
-
/* harmony import */ var
|
|
322888
|
-
/* harmony import */ var
|
|
322889
|
-
/* harmony import */ var
|
|
322890
|
-
/* harmony import */ var
|
|
322891
|
-
/* harmony import */ var
|
|
322892
|
-
/* harmony import */ var
|
|
322893
|
-
/* harmony import */ var
|
|
322894
|
-
/* harmony import */ var
|
|
322895
|
-
/* harmony import */ var
|
|
322896
|
-
/* harmony import */ var
|
|
322897
|
-
/* harmony import */ var
|
|
322898
|
-
/* harmony import */ var
|
|
322899
|
-
/* harmony import */ var
|
|
322900
|
-
/* harmony import */ var
|
|
322901
|
-
/* harmony import */ var
|
|
322902
|
-
/* harmony import */ var
|
|
322903
|
-
/* harmony import */ var
|
|
322904
|
-
/* harmony import */ var
|
|
322905
|
-
/* harmony import */ var
|
|
322906
|
-
/* harmony import */ var
|
|
322907
|
-
/* harmony import */ var
|
|
322908
|
-
/* harmony import */ var
|
|
322909
|
-
/* harmony import */ var
|
|
322910
|
-
/* harmony import */ var
|
|
322911
|
-
/* harmony import */ var
|
|
322912
|
-
/* harmony import */ var
|
|
322913
|
-
/* harmony import */ var
|
|
322914
|
-
/* harmony import */ var
|
|
322915
|
-
/* harmony import */ var
|
|
322916
|
-
/* harmony import */ var
|
|
322917
|
-
/* harmony import */ var
|
|
322918
|
-
/* harmony import */ var
|
|
322919
|
-
/* harmony import */ var
|
|
322920
|
-
/* harmony import */ var
|
|
322921
|
-
/* harmony import */ var
|
|
322922
|
-
/* harmony import */ var
|
|
322923
|
-
/* harmony import */ var
|
|
322924
|
-
/* harmony import */ var
|
|
322925
|
-
/* harmony import */ var
|
|
322926
|
-
/* harmony import */ var
|
|
323770
|
+
/* harmony import */ var _src_pro_bithumb_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(4922);
|
|
323771
|
+
/* harmony import */ var _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(7504);
|
|
323772
|
+
/* harmony import */ var _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(2302);
|
|
323773
|
+
/* harmony import */ var _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(2191);
|
|
323774
|
+
/* harmony import */ var _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(1297);
|
|
323775
|
+
/* harmony import */ var _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3005);
|
|
323776
|
+
/* harmony import */ var _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(2317);
|
|
323777
|
+
/* harmony import */ var _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(6977);
|
|
323778
|
+
/* harmony import */ var _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(2519);
|
|
323779
|
+
/* harmony import */ var _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(5030);
|
|
323780
|
+
/* harmony import */ var _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(5272);
|
|
323781
|
+
/* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(3414);
|
|
323782
|
+
/* harmony import */ var _src_pro_coinbaseinternational_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(6541);
|
|
323783
|
+
/* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(8368);
|
|
323784
|
+
/* harmony import */ var _src_pro_coincheck_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(7891);
|
|
323785
|
+
/* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(204);
|
|
323786
|
+
/* harmony import */ var _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(5208);
|
|
323787
|
+
/* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(6820);
|
|
323788
|
+
/* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(2952);
|
|
323789
|
+
/* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(1788);
|
|
323790
|
+
/* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(9004);
|
|
323791
|
+
/* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(8335);
|
|
323792
|
+
/* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(1465);
|
|
323793
|
+
/* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(9488);
|
|
323794
|
+
/* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(5189);
|
|
323795
|
+
/* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(8559);
|
|
323796
|
+
/* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(7474);
|
|
323797
|
+
/* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(8384);
|
|
323798
|
+
/* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(9021);
|
|
323799
|
+
/* harmony import */ var _src_pro_hyperliquid_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(8354);
|
|
323800
|
+
/* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(3484);
|
|
323801
|
+
/* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(1311);
|
|
323802
|
+
/* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(736);
|
|
323803
|
+
/* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(449);
|
|
323804
|
+
/* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(2387);
|
|
323805
|
+
/* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(7181);
|
|
323806
|
+
/* harmony import */ var _src_pro_lbank_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(1267);
|
|
323807
|
+
/* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(627);
|
|
323808
|
+
/* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(6484);
|
|
323809
|
+
/* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(8080);
|
|
323810
|
+
/* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(7105);
|
|
323811
|
+
/* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(2214);
|
|
323812
|
+
/* harmony import */ var _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(9419);
|
|
323813
|
+
/* harmony import */ var _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(8516);
|
|
323814
|
+
/* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(4360);
|
|
323815
|
+
/* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(7924);
|
|
323816
|
+
/* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(3541);
|
|
323817
|
+
/* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(9782);
|
|
323818
|
+
/* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(7614);
|
|
323819
|
+
/* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(4828);
|
|
323820
|
+
/* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(5630);
|
|
323821
|
+
/* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(3910);
|
|
322927
323822
|
/*
|
|
322928
323823
|
|
|
322929
323824
|
MIT License
|
|
@@ -322958,7 +323853,7 @@ SOFTWARE.
|
|
|
322958
323853
|
|
|
322959
323854
|
//-----------------------------------------------------------------------------
|
|
322960
323855
|
// this is updated by vss.js when building
|
|
322961
|
-
const version = '4.2.
|
|
323856
|
+
const version = '4.2.83';
|
|
322962
323857
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
322963
323858
|
//-----------------------------------------------------------------------------
|
|
322964
323859
|
|
|
@@ -323126,6 +324021,7 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
|
|
|
323126
324021
|
|
|
323127
324022
|
|
|
323128
324023
|
|
|
324024
|
+
|
|
323129
324025
|
|
|
323130
324026
|
|
|
323131
324027
|
const exchanges = {
|
|
@@ -323246,57 +324142,58 @@ const pro = {
|
|
|
323246
324142
|
'bitfinex': _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_113__/* ["default"] */ .Z,
|
|
323247
324143
|
'bitfinex2': _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_114__/* ["default"] */ .Z,
|
|
323248
324144
|
'bitget': _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_115__/* ["default"] */ .Z,
|
|
323249
|
-
'
|
|
323250
|
-
'
|
|
323251
|
-
'
|
|
323252
|
-
'
|
|
323253
|
-
'
|
|
323254
|
-
'
|
|
323255
|
-
'
|
|
323256
|
-
'
|
|
323257
|
-
'
|
|
323258
|
-
'
|
|
323259
|
-
'
|
|
323260
|
-
'
|
|
323261
|
-
'
|
|
323262
|
-
'
|
|
323263
|
-
'
|
|
323264
|
-
'
|
|
323265
|
-
'
|
|
323266
|
-
'
|
|
323267
|
-
'
|
|
323268
|
-
'
|
|
323269
|
-
'
|
|
323270
|
-
'
|
|
323271
|
-
'
|
|
323272
|
-
'
|
|
323273
|
-
'
|
|
323274
|
-
'
|
|
323275
|
-
'
|
|
323276
|
-
'
|
|
323277
|
-
'
|
|
323278
|
-
'
|
|
323279
|
-
'
|
|
323280
|
-
'
|
|
323281
|
-
'
|
|
323282
|
-
'
|
|
323283
|
-
'
|
|
323284
|
-
'
|
|
323285
|
-
'
|
|
323286
|
-
'
|
|
323287
|
-
'
|
|
323288
|
-
'
|
|
323289
|
-
'
|
|
323290
|
-
'
|
|
323291
|
-
'
|
|
323292
|
-
'
|
|
323293
|
-
'
|
|
323294
|
-
'
|
|
323295
|
-
'
|
|
323296
|
-
'
|
|
323297
|
-
'
|
|
323298
|
-
'
|
|
323299
|
-
'
|
|
324145
|
+
'bithumb': _src_pro_bithumb_js__WEBPACK_IMPORTED_MODULE_116__/* ["default"] */ .Z,
|
|
324146
|
+
'bitmart': _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__/* ["default"] */ .Z,
|
|
324147
|
+
'bitmex': _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__/* ["default"] */ .Z,
|
|
324148
|
+
'bitopro': _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__/* ["default"] */ .Z,
|
|
324149
|
+
'bitpanda': _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__/* ["default"] */ .Z,
|
|
324150
|
+
'bitrue': _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
|
|
324151
|
+
'bitstamp': _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
|
|
324152
|
+
'bitvavo': _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
|
|
324153
|
+
'blockchaincom': _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
|
|
324154
|
+
'bybit': _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
|
|
324155
|
+
'cex': _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
|
|
324156
|
+
'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
|
|
324157
|
+
'coinbaseinternational': _src_pro_coinbaseinternational_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
|
|
324158
|
+
'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
|
|
324159
|
+
'coincheck': _src_pro_coincheck_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
|
|
324160
|
+
'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
|
|
324161
|
+
'coinone': _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
|
|
324162
|
+
'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
|
|
324163
|
+
'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
|
|
324164
|
+
'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
|
|
324165
|
+
'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
|
|
324166
|
+
'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
|
|
324167
|
+
'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
|
|
324168
|
+
'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
|
|
324169
|
+
'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
|
|
324170
|
+
'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
|
|
324171
|
+
'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
|
|
324172
|
+
'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
|
|
324173
|
+
'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
|
|
324174
|
+
'hyperliquid': _src_pro_hyperliquid_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
|
|
324175
|
+
'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
|
|
324176
|
+
'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
|
|
324177
|
+
'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
|
|
324178
|
+
'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
|
|
324179
|
+
'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
|
|
324180
|
+
'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
|
|
324181
|
+
'lbank': _src_pro_lbank_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
|
|
324182
|
+
'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
|
|
324183
|
+
'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
|
|
324184
|
+
'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
|
|
324185
|
+
'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
|
|
324186
|
+
'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
|
|
324187
|
+
'onetrading': _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
|
|
324188
|
+
'p2b': _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
|
|
324189
|
+
'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
|
|
324190
|
+
'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_161__/* ["default"] */ .Z,
|
|
324191
|
+
'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_162__/* ["default"] */ .Z,
|
|
324192
|
+
'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_163__/* ["default"] */ .Z,
|
|
324193
|
+
'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_164__/* ["default"] */ .Z,
|
|
324194
|
+
'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_165__/* ["default"] */ .Z,
|
|
324195
|
+
'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_166__/* ["default"] */ .Z,
|
|
324196
|
+
'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_167__/* ["default"] */ .Z,
|
|
323300
324197
|
};
|
|
323301
324198
|
for (const exchange in pro) {
|
|
323302
324199
|
// const ccxtExchange = exchanges[exchange]
|
|
@@ -323309,7 +324206,7 @@ for (const exchange in pro) {
|
|
|
323309
324206
|
pro.exchanges = Object.keys(pro);
|
|
323310
324207
|
pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
|
|
323311
324208
|
//-----------------------------------------------------------------------------
|
|
323312
|
-
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise:
|
|
324209
|
+
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__);
|
|
323313
324210
|
|
|
323314
324211
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
|
|
323315
324212
|
//-----------------------------------------------------------------------------
|