ccxt 4.2.82 → 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.
Files changed (126) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +794 -183
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +3 -1
  5. package/dist/cjs/src/bitget.js +1 -0
  6. package/dist/cjs/src/bithumb.js +1 -0
  7. package/dist/cjs/src/bitstamp.js +42 -15
  8. package/dist/cjs/src/deribit.js +19 -1
  9. package/dist/cjs/src/gemini.js +2 -1
  10. package/dist/cjs/src/hyperliquid.js +5 -4
  11. package/dist/cjs/src/kucoinfutures.js +147 -8
  12. package/dist/cjs/src/pro/bithumb.js +388 -0
  13. package/dist/cjs/src/pro/bitmart.js +1 -1
  14. package/dist/cjs/src/pro/bybit.js +1 -1
  15. package/dist/cjs/src/pro/cex.js +18 -5
  16. package/dist/cjs/src/pro/okx.js +2 -1
  17. package/dist/cjs/src/pro/p2b.js +14 -4
  18. package/dist/cjs/src/pro/woo.js +1 -1
  19. package/js/ccxt.d.ts +4 -1
  20. package/js/ccxt.js +3 -1
  21. package/js/src/abstract/bitstamp.d.ts +1 -1
  22. package/js/src/ace.d.ts +1 -1
  23. package/js/src/alpaca.d.ts +1 -1
  24. package/js/src/ascendex.d.ts +1 -1
  25. package/js/src/bigone.d.ts +1 -1
  26. package/js/src/binance.d.ts +1 -1
  27. package/js/src/bingx.d.ts +1 -1
  28. package/js/src/bitbank.d.ts +1 -1
  29. package/js/src/bitbns.d.ts +1 -1
  30. package/js/src/bitfinex.d.ts +1 -1
  31. package/js/src/bitfinex2.d.ts +1 -1
  32. package/js/src/bitflyer.d.ts +1 -1
  33. package/js/src/bitget.d.ts +1 -1
  34. package/js/src/bitget.js +1 -0
  35. package/js/src/bithumb.d.ts +1 -1
  36. package/js/src/bithumb.js +1 -0
  37. package/js/src/bitmart.d.ts +1 -1
  38. package/js/src/bitmex.d.ts +1 -1
  39. package/js/src/bitopro.d.ts +1 -1
  40. package/js/src/bitrue.d.ts +1 -1
  41. package/js/src/bitso.d.ts +1 -1
  42. package/js/src/bitstamp.d.ts +1 -1
  43. package/js/src/bitstamp.js +42 -15
  44. package/js/src/bitteam.d.ts +1 -1
  45. package/js/src/bitvavo.d.ts +1 -1
  46. package/js/src/blockchaincom.d.ts +1 -1
  47. package/js/src/blofin.d.ts +1 -1
  48. package/js/src/btcalpha.d.ts +1 -1
  49. package/js/src/btcmarkets.d.ts +1 -1
  50. package/js/src/btcturk.d.ts +1 -1
  51. package/js/src/bybit.d.ts +1 -1
  52. package/js/src/cex.d.ts +1 -1
  53. package/js/src/coinbase.d.ts +1 -1
  54. package/js/src/coinbaseinternational.d.ts +1 -1
  55. package/js/src/coinbasepro.d.ts +1 -1
  56. package/js/src/coinex.d.ts +1 -1
  57. package/js/src/coinlist.d.ts +1 -1
  58. package/js/src/coinmate.d.ts +1 -1
  59. package/js/src/coinmetro.d.ts +1 -1
  60. package/js/src/coinone.d.ts +1 -1
  61. package/js/src/coinsph.d.ts +1 -1
  62. package/js/src/cryptocom.d.ts +1 -1
  63. package/js/src/currencycom.d.ts +1 -1
  64. package/js/src/delta.d.ts +1 -1
  65. package/js/src/deribit.d.ts +1 -1
  66. package/js/src/deribit.js +19 -1
  67. package/js/src/digifinex.d.ts +1 -1
  68. package/js/src/exmo.d.ts +1 -1
  69. package/js/src/gate.d.ts +1 -1
  70. package/js/src/gemini.d.ts +1 -1
  71. package/js/src/gemini.js +2 -1
  72. package/js/src/hitbtc.d.ts +1 -1
  73. package/js/src/hollaex.d.ts +1 -1
  74. package/js/src/htx.d.ts +1 -1
  75. package/js/src/huobijp.d.ts +1 -1
  76. package/js/src/hyperliquid.d.ts +1 -1
  77. package/js/src/hyperliquid.js +5 -4
  78. package/js/src/idex.d.ts +1 -1
  79. package/js/src/independentreserve.d.ts +1 -1
  80. package/js/src/indodax.d.ts +1 -1
  81. package/js/src/kraken.d.ts +1 -1
  82. package/js/src/krakenfutures.d.ts +1 -1
  83. package/js/src/kucoin.d.ts +1 -1
  84. package/js/src/kucoinfutures.d.ts +3 -2
  85. package/js/src/kucoinfutures.js +147 -8
  86. package/js/src/kuna.d.ts +1 -1
  87. package/js/src/latoken.d.ts +1 -1
  88. package/js/src/lbank.d.ts +1 -1
  89. package/js/src/luno.d.ts +1 -1
  90. package/js/src/lykke.d.ts +1 -1
  91. package/js/src/mercado.d.ts +1 -1
  92. package/js/src/mexc.d.ts +1 -1
  93. package/js/src/ndax.d.ts +1 -1
  94. package/js/src/novadax.d.ts +1 -1
  95. package/js/src/oceanex.d.ts +1 -1
  96. package/js/src/okcoin.d.ts +1 -1
  97. package/js/src/okx.d.ts +1 -1
  98. package/js/src/onetrading.d.ts +1 -1
  99. package/js/src/p2b.d.ts +1 -1
  100. package/js/src/phemex.d.ts +1 -1
  101. package/js/src/poloniex.d.ts +1 -1
  102. package/js/src/poloniexfutures.d.ts +1 -1
  103. package/js/src/pro/bithumb.d.ts +19 -0
  104. package/js/src/pro/bithumb.js +389 -0
  105. package/js/src/pro/bitmart.js +1 -1
  106. package/js/src/pro/bybit.js +1 -1
  107. package/js/src/pro/cex.js +18 -5
  108. package/js/src/pro/okx.js +2 -1
  109. package/js/src/pro/p2b.d.ts +2 -0
  110. package/js/src/pro/p2b.js +14 -4
  111. package/js/src/pro/woo.js +1 -1
  112. package/js/src/probit.d.ts +1 -1
  113. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  114. package/js/src/timex.d.ts +1 -1
  115. package/js/src/tokocrypto.d.ts +1 -1
  116. package/js/src/tradeogre.d.ts +1 -1
  117. package/js/src/upbit.d.ts +1 -1
  118. package/js/src/wavesexchange.d.ts +1 -1
  119. package/js/src/wazirx.d.ts +1 -1
  120. package/js/src/whitebit.d.ts +1 -1
  121. package/js/src/woo.d.ts +1 -1
  122. package/js/src/yobit.d.ts +1 -1
  123. package/js/src/zaif.d.ts +1 -1
  124. package/js/src/zonda.d.ts +1 -1
  125. package/package.json +1 -1
  126. package/skip-tests.json +17 -4
package/js/src/htx.d.ts CHANGED
@@ -46,7 +46,7 @@ export default class htx extends Exchange {
46
46
  };
47
47
  };
48
48
  costToPrecision(symbol: any, cost: any): any;
49
- fetchMarkets(params?: {}): Promise<any[]>;
49
+ fetchMarkets(params?: {}): Promise<Market[]>;
50
50
  fetchMarketsByTypeAndSubType(type: any, subType: any, params?: {}): Promise<any[]>;
51
51
  parseTicker(ticker: any, market?: Market): Ticker;
52
52
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -27,7 +27,7 @@ export default class huobijp extends Exchange {
27
27
  };
28
28
  };
29
29
  costToPrecision(symbol: any, cost: any): any;
30
- fetchMarkets(params?: {}): Promise<any[]>;
30
+ fetchMarkets(params?: {}): Promise<Market[]>;
31
31
  parseTicker(ticker: any, market?: Market): Ticker;
32
32
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
33
33
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -8,7 +8,7 @@ export default class hyperliquid extends Exchange {
8
8
  describe(): any;
9
9
  setSandboxMode(enabled: any): void;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseMarket(market: any): Market;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -1785,7 +1785,7 @@ export default class hyperliquid extends Exchange {
1785
1785
  throw new ArgumentsRequired(this.id + ' setMarginMode() requires a leverage parameter');
1786
1786
  }
1787
1787
  const asset = this.parseToInt(market['baseId']);
1788
- const isCross = (marginMode === 'isolated');
1788
+ const isCross = (marginMode === 'cross');
1789
1789
  const nonce = this.milliseconds();
1790
1790
  params = this.omit(params, ['leverage']);
1791
1791
  const updateAction = {
@@ -1801,9 +1801,10 @@ export default class hyperliquid extends Exchange {
1801
1801
  vaultAddress = vaultAddress.replace('0x', '');
1802
1802
  }
1803
1803
  }
1804
- const signature = this.signL1Action(updateAction, nonce, vaultAddress);
1804
+ const extendedAction = this.extend(updateAction, params);
1805
+ const signature = this.signL1Action(extendedAction, nonce, vaultAddress);
1805
1806
  const request = {
1806
- 'action': updateAction,
1807
+ 'action': extendedAction,
1807
1808
  'nonce': nonce,
1808
1809
  'signature': signature,
1809
1810
  // 'vaultAddress': vaultAddress,
@@ -1811,7 +1812,7 @@ export default class hyperliquid extends Exchange {
1811
1812
  if (vaultAddress !== undefined) {
1812
1813
  request['vaultAddress'] = vaultAddress;
1813
1814
  }
1814
- const response = await this.privatePostExchange(this.extend(request, params));
1815
+ const response = await this.privatePostExchange(request);
1815
1816
  //
1816
1817
  // {
1817
1818
  // 'response': {
package/js/src/idex.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
7
7
  export default class idex extends Exchange {
8
8
  describe(): any;
9
9
  priceToPrecision(symbol: any, price: any): any;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
12
12
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
13
13
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide,
6
6
  */
7
7
  export default class independentreserve extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseBalance(response: any): Balances;
11
11
  fetchBalance(params?: {}): Promise<Balances>;
12
12
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -8,7 +8,7 @@ export default class indodax extends Exchange {
8
8
  describe(): any;
9
9
  nonce(): number;
10
10
  fetchTime(params?: {}): Promise<number>;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -8,7 +8,7 @@ import type { IndexType, Int, OrderSide, OrderType, OHLCV, Trade, Order, Balance
8
8
  export default class kraken extends Exchange {
9
9
  describe(): any;
10
10
  feeToPrecision(symbol: any, fee: any): any;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  safeCurrency(currencyId: any, currency?: Currency): import("./base/types.js").CurrencyInterface;
13
13
  appendInactiveMarkets(result: any): any;
14
14
  fetchCurrencies(params?: {}): Promise<{}>;
@@ -6,7 +6,7 @@ import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Trade, FundingRat
6
6
  */
7
7
  export default class krakenfutures extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
11
11
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -15,7 +15,7 @@ export default class kucoin extends Exchange {
15
15
  url: any;
16
16
  info: any;
17
17
  }>;
18
- fetchMarkets(params?: {}): Promise<any[]>;
18
+ fetchMarkets(params?: {}): Promise<Market[]>;
19
19
  fetchCurrencies(params?: {}): Promise<{}>;
20
20
  fetchAccounts(params?: {}): Promise<Account[]>;
21
21
  fetchTransactionFee(code: string, params?: {}): Promise<{
@@ -1,5 +1,5 @@
1
1
  import kucoin from './abstract/kucoinfutures.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, OrderBook, Transaction, Strings, Market, Currency, Num } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, Tickers, OrderBook, Transaction, Strings, Market, Currency, Num } from './base/types.js';
3
3
  /**
4
4
  * @class kucoinfutures
5
5
  * @augments Exchange
@@ -13,7 +13,7 @@ export default class kucoinfutures extends kucoin {
13
13
  url: any;
14
14
  info: any;
15
15
  }>;
16
- fetchMarkets(params?: {}): Promise<any[]>;
16
+ fetchMarkets(params?: {}): Promise<Market[]>;
17
17
  fetchTime(params?: {}): Promise<number>;
18
18
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
19
19
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
@@ -26,6 +26,7 @@ export default class kucoinfutures extends kucoin {
26
26
  }>;
27
27
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
28
28
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
29
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
29
30
  parseTicker(ticker: any, market?: Market): Ticker;
30
31
  fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
31
32
  fetchPosition(symbol: string, params?: {}): Promise<import("./base/types.js").Position>;
@@ -85,7 +85,7 @@ export default class kucoinfutures extends kucoin {
85
85
  'fetchPremiumIndexOHLCV': false,
86
86
  'fetchStatus': true,
87
87
  'fetchTicker': true,
88
- 'fetchTickers': false,
88
+ 'fetchTickers': true,
89
89
  'fetchTime': true,
90
90
  'fetchTrades': true,
91
91
  'fetchTransactionFee': false,
@@ -756,6 +756,85 @@ export default class kucoinfutures extends kucoin {
756
756
  //
757
757
  return this.parseTicker(response['data'], market);
758
758
  }
759
+ async fetchTickers(symbols = undefined, params = {}) {
760
+ /**
761
+ * @method
762
+ * @name kucoinfutures#fetchTickers
763
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
764
+ * @see https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
765
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
766
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
767
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
768
+ */
769
+ await this.loadMarkets();
770
+ symbols = this.marketSymbols(symbols);
771
+ const response = await this.futuresPublicGetContractsActive(params);
772
+ //
773
+ // {
774
+ // "code": "200000",
775
+ // "data": {
776
+ // "symbol": "ETHUSDTM",
777
+ // "rootSymbol": "USDT",
778
+ // "type": "FFWCSX",
779
+ // "firstOpenDate": 1591086000000,
780
+ // "expireDate": null,
781
+ // "settleDate": null,
782
+ // "baseCurrency": "ETH",
783
+ // "quoteCurrency": "USDT",
784
+ // "settleCurrency": "USDT",
785
+ // "maxOrderQty": 1000000,
786
+ // "maxPrice": 1000000.0000000000,
787
+ // "lotSize": 1,
788
+ // "tickSize": 0.05,
789
+ // "indexPriceTickSize": 0.01,
790
+ // "multiplier": 0.01,
791
+ // "initialMargin": 0.01,
792
+ // "maintainMargin": 0.005,
793
+ // "maxRiskLimit": 1000000,
794
+ // "minRiskLimit": 1000000,
795
+ // "riskStep": 500000,
796
+ // "makerFeeRate": 0.00020,
797
+ // "takerFeeRate": 0.00060,
798
+ // "takerFixFee": 0.0000000000,
799
+ // "makerFixFee": 0.0000000000,
800
+ // "settlementFee": null,
801
+ // "isDeleverage": true,
802
+ // "isQuanto": true,
803
+ // "isInverse": false,
804
+ // "markMethod": "FairPrice",
805
+ // "fairMethod": "FundingRate",
806
+ // "fundingBaseSymbol": ".ETHINT8H",
807
+ // "fundingQuoteSymbol": ".USDTINT8H",
808
+ // "fundingRateSymbol": ".ETHUSDTMFPI8H",
809
+ // "indexSymbol": ".KETHUSDT",
810
+ // "settlementSymbol": "",
811
+ // "status": "Open",
812
+ // "fundingFeeRate": 0.000535,
813
+ // "predictedFundingFeeRate": 0.002197,
814
+ // "openInterest": "8724443",
815
+ // "turnoverOf24h": 341156641.03354263,
816
+ // "volumeOf24h": 74833.54000000,
817
+ // "markPrice": 4534.07,
818
+ // "indexPrice":4531.92,
819
+ // "lastTradePrice": 4545.4500000000,
820
+ // "nextFundingRateTime": 25481884,
821
+ // "maxLeverage": 100,
822
+ // "sourceExchanges": [ "huobi", "Okex", "Binance", "Kucoin", "Poloniex", "Hitbtc" ],
823
+ // "premiumsSymbol1M": ".ETHUSDTMPI",
824
+ // "premiumsSymbol8H": ".ETHUSDTMPI8H",
825
+ // "fundingBaseSymbol1M": ".ETHINT",
826
+ // "fundingQuoteSymbol1M": ".USDTINT",
827
+ // "lowPrice": 4456.90,
828
+ // "highPrice": 4674.25,
829
+ // "priceChgPct": 0.0046,
830
+ // "priceChg": 21.15
831
+ // }
832
+ // }
833
+ //
834
+ const data = this.safeList(response, 'data', []);
835
+ const tickers = this.parseTickers(data, symbols);
836
+ return this.filterByArrayTickers(tickers, 'symbol', symbols);
837
+ }
759
838
  parseTicker(ticker, market = undefined) {
760
839
  //
761
840
  // {
@@ -775,16 +854,76 @@ export default class kucoinfutures extends kucoin {
775
854
  // }
776
855
  // }
777
856
  //
778
- const last = this.safeString(ticker, 'price');
857
+ // from fetchTickers
858
+ //
859
+ // {
860
+ // symbol: "XBTUSDTM",
861
+ // rootSymbol: "USDT",
862
+ // type: "FFWCSX",
863
+ // firstOpenDate: 1585555200000,
864
+ // expireDate: null,
865
+ // settleDate: null,
866
+ // baseCurrency: "XBT",
867
+ // quoteCurrency: "USDT",
868
+ // settleCurrency: "USDT",
869
+ // maxOrderQty: 1000000,
870
+ // maxPrice: 1000000,
871
+ // lotSize: 1,
872
+ // tickSize: 0.1,
873
+ // indexPriceTickSize: 0.01,
874
+ // multiplier: 0.001,
875
+ // initialMargin: 0.008,
876
+ // maintainMargin: 0.004,
877
+ // maxRiskLimit: 100000,
878
+ // minRiskLimit: 100000,
879
+ // riskStep: 50000,
880
+ // makerFeeRate: 0.0002,
881
+ // takerFeeRate: 0.0006,
882
+ // takerFixFee: 0,
883
+ // makerFixFee: 0,
884
+ // settlementFee: null,
885
+ // isDeleverage: true,
886
+ // isQuanto: true,
887
+ // isInverse: false,
888
+ // markMethod: "FairPrice",
889
+ // fairMethod: "FundingRate",
890
+ // fundingBaseSymbol: ".XBTINT8H",
891
+ // fundingQuoteSymbol: ".USDTINT8H",
892
+ // fundingRateSymbol: ".XBTUSDTMFPI8H",
893
+ // indexSymbol: ".KXBTUSDT",
894
+ // settlementSymbol: "",
895
+ // status: "Open",
896
+ // fundingFeeRate: 0.000297,
897
+ // predictedFundingFeeRate: 0.000327,
898
+ // fundingRateGranularity: 28800000,
899
+ // openInterest: "8033200",
900
+ // turnoverOf24h: 659795309.2524643,
901
+ // volumeOf24h: 9998.54,
902
+ // markPrice: 67193.51,
903
+ // indexPrice: 67184.81,
904
+ // lastTradePrice: 67191.8,
905
+ // nextFundingRateTime: 20022985,
906
+ // maxLeverage: 125,
907
+ // premiumsSymbol1M: ".XBTUSDTMPI",
908
+ // premiumsSymbol8H: ".XBTUSDTMPI8H",
909
+ // fundingBaseSymbol1M: ".XBTINT",
910
+ // fundingQuoteSymbol1M: ".USDTINT",
911
+ // lowPrice: 64041.6,
912
+ // highPrice: 67737.3,
913
+ // priceChgPct: 0.0447,
914
+ // priceChg: 2878.7
915
+ // }
916
+ //
779
917
  const marketId = this.safeString(ticker, 'symbol');
780
918
  market = this.safeMarket(marketId, market, '-');
919
+ const last = this.safeString2(ticker, 'price', 'lastTradePrice');
781
920
  const timestamp = this.safeIntegerProduct(ticker, 'ts', 0.000001);
782
921
  return this.safeTicker({
783
922
  'symbol': market['symbol'],
784
923
  'timestamp': timestamp,
785
924
  'datetime': this.iso8601(timestamp),
786
- 'high': undefined,
787
- 'low': undefined,
925
+ 'high': this.safeString(ticker, 'highPrice'),
926
+ 'low': this.safeString(ticker, 'lowPrice'),
788
927
  'bid': this.safeString(ticker, 'bestBidPrice'),
789
928
  'bidVolume': this.safeString(ticker, 'bestBidSize'),
790
929
  'ask': this.safeString(ticker, 'bestAskPrice'),
@@ -794,11 +933,11 @@ export default class kucoinfutures extends kucoin {
794
933
  'close': last,
795
934
  'last': last,
796
935
  'previousClose': undefined,
797
- 'change': undefined,
798
- 'percentage': undefined,
936
+ 'change': this.safeString(ticker, 'priceChg'),
937
+ 'percentage': this.safeString(ticker, 'priceChgPct'),
799
938
  'average': undefined,
800
- 'baseVolume': undefined,
801
- 'quoteVolume': undefined,
939
+ 'baseVolume': this.safeString(ticker, 'volumeOf24h'),
940
+ 'quoteVolume': this.safeString(ticker, 'turnoverOf24h'),
802
941
  'info': ticker,
803
942
  }, market);
804
943
  }
package/js/src/kuna.d.ts CHANGED
@@ -34,7 +34,7 @@ export default class kuna extends Exchange {
34
34
  };
35
35
  networks: {};
36
36
  };
37
- fetchMarkets(params?: {}): Promise<any[]>;
37
+ fetchMarkets(params?: {}): Promise<Market[]>;
38
38
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
39
39
  parseTicker(ticker: any, market?: Market): Ticker;
40
40
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
@@ -8,7 +8,7 @@ export default class latoken extends Exchange {
8
8
  describe(): any;
9
9
  nonce(): number;
10
10
  fetchTime(params?: {}): Promise<number>;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  fetchCurrenciesFromCache(params?: {}): Promise<any>;
13
13
  fetchCurrencies(params?: {}): Promise<{}>;
14
14
  fetchBalance(params?: {}): Promise<Balances>;
package/js/src/lbank.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
7
7
  export default class lbank extends Exchange {
8
8
  describe(): any;
9
9
  fetchTime(params?: {}): Promise<number>;
10
- fetchMarkets(params?: {}): Promise<any>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchSpotMarkets(params?: {}): Promise<any[]>;
12
12
  fetchSwapMarkets(params?: {}): Promise<any[]>;
13
13
  parseTicker(ticker: any, market?: Market): Ticker;
package/js/src/luno.d.ts CHANGED
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, Orde
6
6
  */
7
7
  export default class luno extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchAccounts(params?: {}): Promise<Account[]>;
11
11
  parseBalance(response: any): Balances;
12
12
  fetchBalance(params?: {}): Promise<Balances>;
package/js/src/lykke.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { IndexType, Balances, Currency, Int, Market, Order, OrderBook, Orde
7
7
  export default class lykke extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
13
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
6
6
  */
7
7
  export default class mercado extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
11
11
  parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
package/js/src/mexc.d.ts CHANGED
@@ -15,7 +15,7 @@ export default class mexc extends Exchange {
15
15
  }>;
16
16
  fetchTime(params?: {}): Promise<number>;
17
17
  fetchCurrencies(params?: {}): Promise<{}>;
18
- fetchMarkets(params?: {}): Promise<any>;
18
+ fetchMarkets(params?: {}): Promise<Market[]>;
19
19
  fetchSpotMarkets(params?: {}): Promise<any[]>;
20
20
  fetchSwapMarkets(params?: {}): Promise<any[]>;
21
21
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
package/js/src/ndax.d.ts CHANGED
@@ -8,7 +8,7 @@ export default class ndax extends Exchange {
8
8
  describe(): any;
9
9
  signIn(params?: {}): Promise<any>;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseMarket(market: any): Market;
13
13
  parseOrderBook(orderbook: any, symbol: any, timestamp?: any, bidsKey?: string, asksKey?: string, priceKey?: IndexType, amountKey?: IndexType, countOrIdKey?: IndexType): OrderBook;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -7,7 +7,7 @@ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, Orde
7
7
  export default class novadax extends Exchange {
8
8
  describe(): any;
9
9
  fetchTime(params?: {}): Promise<number>;
10
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
13
13
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -6,7 +6,7 @@ import type { Balances, Dictionary, Int, Market, Num, OHLCV, Order, OrderBook, O
6
6
  */
7
7
  export default class oceanex extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
11
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
12
12
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
@@ -7,7 +7,7 @@ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, Orde
7
7
  export default class okcoin extends Exchange {
8
8
  describe(): any;
9
9
  fetchTime(params?: {}): Promise<number>;
10
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  safeNetwork(networkId: any): string;
13
13
  fetchCurrencies(params?: {}): Promise<{}>;
package/js/src/okx.d.ts CHANGED
@@ -20,7 +20,7 @@ export default class okx extends Exchange {
20
20
  }>;
21
21
  fetchTime(params?: {}): Promise<number>;
22
22
  fetchAccounts(params?: {}): Promise<Account[]>;
23
- fetchMarkets(params?: {}): Promise<any[]>;
23
+ fetchMarkets(params?: {}): Promise<Market[]>;
24
24
  parseMarket(market: any): Market;
25
25
  fetchMarketsByType(type: any, params?: {}): Promise<MarketInterface[]>;
26
26
  safeNetwork(networkId: any): string;
@@ -8,7 +8,7 @@ export default class onetrading extends Exchange {
8
8
  describe(): any;
9
9
  fetchTime(params?: {}): Promise<number>;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseMarket(market: any): Market;
13
13
  fetchTradingFees(params?: {}): Promise<any>;
14
14
  fetchPublicTradingFees(params?: {}): Promise<{}>;
package/js/src/p2b.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { Int, Num, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker
7
7
  */
8
8
  export default class p2b extends Exchange {
9
9
  describe(): any;
10
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
13
13
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -9,7 +9,7 @@ export default class phemex extends Exchange {
9
9
  parseSafeNumber(value?: any): any;
10
10
  parseSwapMarket(market: any): import("./base/types.js").MarketInterface;
11
11
  parseSpotMarket(market: any): import("./base/types.js").MarketInterface;
12
- fetchMarkets(params?: {}): Promise<any[]>;
12
+ fetchMarkets(params?: {}): Promise<Market[]>;
13
13
  fetchCurrencies(params?: {}): Promise<{}>;
14
14
  customParseBidAsk(bidask: any, priceKey?: number, amountKey?: number, market?: Market): number[];
15
15
  customParseOrderBook(orderbook: any, symbol: any, timestamp?: any, bidsKey?: string, asksKey?: string, priceKey?: number, amountKey?: number, market?: Market): any;
@@ -9,7 +9,7 @@ export default class poloniex extends Exchange {
9
9
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
10
10
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
11
11
  loadMarkets(reload?: boolean, params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").MarketInterface>>;
12
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
12
+ fetchMarkets(params?: {}): Promise<Market[]>;
13
13
  parseMarket(market: any): Market;
14
14
  fetchTime(params?: {}): Promise<number>;
15
15
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -6,7 +6,7 @@ import type { Balances, FundingHistory, Int, Market, Num, OHLCV, Order, OrderBoo
6
6
  */
7
7
  export default class poloniexfutures extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
11
  parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -0,0 +1,19 @@
1
+ import bithumbRest from '../bithumb.js';
2
+ import type { Int, OrderBook, Ticker, Trade, Strings, Tickers } from '../base/types.js';
3
+ import Client from '../base/ws/Client.js';
4
+ export default class bithumb extends bithumbRest {
5
+ describe(): any;
6
+ watchTicker(symbol: string, params?: {}): Promise<Ticker>;
7
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
8
+ handleTicker(client: Client, message: any): void;
9
+ parseWsTicker(ticker: any, market?: any): Ticker;
10
+ watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
11
+ handleOrderBook(client: Client, message: any): void;
12
+ handleDelta(orderbook: any, delta: any): void;
13
+ handleDeltas(orderbook: any, deltas: any): void;
14
+ watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
15
+ handleTrades(client: any, message: any): void;
16
+ parseWsTrade(trade: any, market?: any): Trade;
17
+ handleErrorMessage(client: Client, message: any): boolean;
18
+ handleMessage(client: Client, message: any): void;
19
+ }