ccxt 4.3.2 → 4.3.4

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 (42) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/base/Exchange.js +22 -0
  4. package/dist/cjs/src/binance.js +320 -21
  5. package/dist/cjs/src/bingx.js +2 -2
  6. package/dist/cjs/src/bitget.js +76 -1
  7. package/dist/cjs/src/coinbase.js +9 -1
  8. package/dist/cjs/src/hyperliquid.js +87 -13
  9. package/dist/cjs/src/okx.js +116 -0
  10. package/dist/cjs/src/phemex.js +5 -0
  11. package/dist/cjs/src/poloniexfutures.js +12 -2
  12. package/dist/cjs/src/pro/hyperliquid.js +8 -7
  13. package/dist/cjs/src/pro/kraken.js +1 -1
  14. package/dist/cjs/src/pro/wazirx.js +2 -1
  15. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +27 -2
  16. package/dist/cjs/src/woo.js +110 -6
  17. package/js/ccxt.d.ts +1 -1
  18. package/js/ccxt.js +1 -1
  19. package/js/src/base/Exchange.d.ts +1 -0
  20. package/js/src/base/Exchange.js +22 -0
  21. package/js/src/binance.d.ts +3 -0
  22. package/js/src/binance.js +320 -21
  23. package/js/src/bingx.js +3 -3
  24. package/js/src/bitget.d.ts +1 -0
  25. package/js/src/bitget.js +76 -1
  26. package/js/src/coinbase.js +9 -1
  27. package/js/src/coinbasepro.d.ts +1 -1
  28. package/js/src/hyperliquid.d.ts +1 -0
  29. package/js/src/hyperliquid.js +87 -13
  30. package/js/src/okx.d.ts +2 -0
  31. package/js/src/okx.js +116 -0
  32. package/js/src/phemex.js +5 -0
  33. package/js/src/poloniexfutures.js +12 -2
  34. package/js/src/pro/hyperliquid.js +8 -7
  35. package/js/src/pro/kraken.js +1 -1
  36. package/js/src/pro/wazirx.js +2 -1
  37. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +2 -2
  38. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -357
  39. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +27 -0
  40. package/js/src/woo.d.ts +2 -0
  41. package/js/src/woo.js +110 -6
  42. package/package.json +1 -1
@@ -315,6 +315,7 @@ export default class hyperliquid extends Exchange {
315
315
  // ]
316
316
  // ]
317
317
  //
318
+ //
318
319
  let meta = this.safeDict(response, 0, {});
319
320
  meta = this.safeList(meta, 'universe', []);
320
321
  const assetCtxs = this.safeDict(response, 1, {});
@@ -373,10 +374,70 @@ export default class hyperliquid extends Exchange {
373
374
  // },
374
375
  // ],
375
376
  // ];
377
+ // mainnet
378
+ // [
379
+ // {
380
+ // "canonical_tokens2":[
381
+ // 0,
382
+ // 1
383
+ // ],
384
+ // "spot_infos":[
385
+ // {
386
+ // "name":"PURR/USDC",
387
+ // "tokens":[
388
+ // 1,
389
+ // 0
390
+ // ]
391
+ // }
392
+ // ],
393
+ // "token_id_to_token":[
394
+ // [
395
+ // "0x6d1e7cde53ba9467b783cb7c530ce054",
396
+ // 0
397
+ // ],
398
+ // [
399
+ // "0xc1fb593aeffbeb02f85e0308e9956a90",
400
+ // 1
401
+ // ]
402
+ // ],
403
+ // "token_infos":[
404
+ // {
405
+ // "deployer":null,
406
+ // "spec":{
407
+ // "name":"USDC",
408
+ // "szDecimals":"8",
409
+ // "weiDecimals":"8"
410
+ // },
411
+ // "spots":[
412
+ // ]
413
+ // },
414
+ // {
415
+ // "deployer":null,
416
+ // "spec":{
417
+ // "name":"PURR",
418
+ // "szDecimals":"0",
419
+ // "weiDecimals":"5"
420
+ // },
421
+ // "spots":[
422
+ // 0
423
+ // ]
424
+ // }
425
+ // ]
426
+ // },
427
+ // [
428
+ // {
429
+ // "dayNtlVlm":"35001170.16631",
430
+ // "markPx":"0.15743",
431
+ // "midPx":"0.157555",
432
+ // "prevDayPx":"0.158"
433
+ // }
434
+ // ]
435
+ // ]
376
436
  //
437
+ // response differs depending on the environment (mainnet vs sandbox)
377
438
  const first = this.safeDict(response, 0, {});
378
- const meta = this.safeList(first, 'universe', []);
379
- const tokens = this.safeList(first, 'tokens', []);
439
+ const meta = this.safeList2(first, 'universe', 'spot_infos', []);
440
+ const tokens = this.safeList2(first, 'tokens', 'token_infos', []);
380
441
  const markets = [];
381
442
  for (let i = 0; i < meta.length; i++) {
382
443
  const market = this.safeDict(meta, i, {});
@@ -392,14 +453,16 @@ export default class hyperliquid extends Exchange {
392
453
  const maker = this.safeNumber(fees, 'maker');
393
454
  const tokensPos = this.safeList(market, 'tokens', []);
394
455
  const baseTokenPos = this.safeInteger(tokensPos, 0);
395
- const quoteTokenPos = this.safeInteger(tokensPos, 1);
456
+ // const quoteTokenPos = this.safeInteger (tokensPos, 1);
396
457
  const baseTokenInfo = this.safeDict(tokens, baseTokenPos, {});
397
- const quoteTokenInfo = this.safeDict(tokens, quoteTokenPos, {});
398
- const baseDecimals = this.safeString(baseTokenInfo, 'szDecimals');
399
- const quoteDecimals = this.safeInteger(quoteTokenInfo, 'szDecimals');
458
+ // const quoteTokenInfo = this.safeDict (tokens, quoteTokenPos, {});
459
+ const innerBaseTokenInfo = this.safeDict(baseTokenInfo, 'spec', baseTokenInfo);
460
+ // const innerQuoteTokenInfo = this.safeDict (quoteTokenInfo, 'spec', quoteTokenInfo);
461
+ const amountPrecision = this.parseNumber(this.parsePrecision(this.safeString(innerBaseTokenInfo, 'szDecimals')));
462
+ // const quotePrecision = this.parseNumber (this.parsePrecision (this.safeString (innerQuoteTokenInfo, 'szDecimals')));
400
463
  const baseId = this.numberToString(i + 10000);
401
464
  markets.push(this.safeMarketStructure({
402
- 'id': baseId,
465
+ 'id': marketName,
403
466
  'symbol': symbol,
404
467
  'base': base,
405
468
  'quote': quote,
@@ -409,14 +472,15 @@ export default class hyperliquid extends Exchange {
409
472
  'settleId': undefined,
410
473
  'type': 'spot',
411
474
  'spot': true,
475
+ 'subType': undefined,
412
476
  'margin': undefined,
413
477
  'swap': false,
414
478
  'future': false,
415
479
  'option': false,
416
480
  'active': true,
417
481
  'contract': false,
418
- 'linear': true,
419
- 'inverse': false,
482
+ 'linear': undefined,
483
+ 'inverse': undefined,
420
484
  'taker': taker,
421
485
  'maker': maker,
422
486
  'contractSize': undefined,
@@ -425,8 +489,8 @@ export default class hyperliquid extends Exchange {
425
489
  'strike': undefined,
426
490
  'optionType': undefined,
427
491
  'precision': {
428
- 'amount': this.parseNumber(this.parsePrecision(baseDecimals)),
429
- 'price': quoteDecimals, // significant digits
492
+ 'amount': amountPrecision,
493
+ 'price': 5, // significant digits
430
494
  },
431
495
  'limits': {
432
496
  'leverage': {
@@ -642,7 +706,7 @@ export default class hyperliquid extends Exchange {
642
706
  const market = this.market(symbol);
643
707
  const request = {
644
708
  'type': 'l2Book',
645
- 'coin': market['base'],
709
+ 'coin': market['swap'] ? market['base'] : market['id'],
646
710
  };
647
711
  const response = await this.publicPostInfo(this.extend(request, params));
648
712
  //
@@ -702,7 +766,7 @@ export default class hyperliquid extends Exchange {
702
766
  const request = {
703
767
  'type': 'candleSnapshot',
704
768
  'req': {
705
- 'coin': market['base'],
769
+ 'coin': market['swap'] ? market['base'] : market['id'],
706
770
  'interval': timeframe,
707
771
  'startTime': since,
708
772
  'endTime': until,
@@ -810,6 +874,10 @@ export default class hyperliquid extends Exchange {
810
874
  return this.parseTrades(response, market, since, limit);
811
875
  }
812
876
  amountToPrecision(symbol, amount) {
877
+ const market = this.market(symbol);
878
+ if (market['spot']) {
879
+ return super.amountToPrecision(symbol, amount);
880
+ }
813
881
  return this.decimalToPrecision(amount, ROUND, this.markets[symbol]['precision']['amount'], this.precisionMode);
814
882
  }
815
883
  priceToPrecision(symbol, price) {
@@ -2358,6 +2426,12 @@ export default class hyperliquid extends Exchange {
2358
2426
  }
2359
2427
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a user parameter inside \'params\' or the wallet address set');
2360
2428
  }
2429
+ coinToMarketId(coin) {
2430
+ if (coin.indexOf('/') > -1) {
2431
+ return coin; // spot
2432
+ }
2433
+ return coin + '/USDC:USDC';
2434
+ }
2361
2435
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
2362
2436
  if (!response) {
2363
2437
  return undefined; // fallback to default error handler
package/js/src/okx.d.ts CHANGED
@@ -299,6 +299,8 @@ export default class okx extends Exchange {
299
299
  };
300
300
  fetchConvertQuote(fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
301
301
  createConvertTrade(id: string, fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
302
+ fetchConvertTrade(id: string, code?: Str, params?: {}): Promise<Conversion>;
303
+ fetchConvertTradeHistory(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Conversion[]>;
302
304
  parseConversion(conversion: any, fromCurrency?: Currency, toCurrency?: Currency): Conversion;
303
305
  fetchConvertCurrencies(params?: {}): Promise<Currencies>;
304
306
  handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
package/js/src/okx.js CHANGED
@@ -66,6 +66,8 @@ export default class okx extends Exchange {
66
66
  'fetchClosedOrders': true,
67
67
  'fetchConvertCurrencies': true,
68
68
  'fetchConvertQuote': true,
69
+ 'fetchConvertTrade': true,
70
+ 'fetchConvertTradeHistory': true,
69
71
  'fetchCrossBorrowRate': true,
70
72
  'fetchCrossBorrowRates': true,
71
73
  'fetchCurrencies': true,
@@ -7715,6 +7717,104 @@ export default class okx extends Exchange {
7715
7717
  const toCurrency = this.currency(toCurrencyId);
7716
7718
  return this.parseConversion(result, fromCurrency, toCurrency);
7717
7719
  }
7720
+ async fetchConvertTrade(id, code = undefined, params = {}) {
7721
+ /**
7722
+ * @method
7723
+ * @name okx#fetchConvertTrade
7724
+ * @description fetch the data for a conversion trade
7725
+ * @see https://www.okx.com/docs-v5/en/#funding-account-rest-api-get-convert-history
7726
+ * @param {string} id the id of the trade that you want to fetch
7727
+ * @param {string} [code] the unified currency code of the conversion trade
7728
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
7729
+ * @returns {object} a [conversion structure]{@link https://docs.ccxt.com/#/?id=conversion-structure}
7730
+ */
7731
+ await this.loadMarkets();
7732
+ const request = {
7733
+ 'clTReqId': id,
7734
+ };
7735
+ const response = await this.privateGetAssetConvertHistory(this.extend(request, params));
7736
+ //
7737
+ // {
7738
+ // "code": "0",
7739
+ // "data": [
7740
+ // {
7741
+ // "clTReqId": "",
7742
+ // "instId": "ETH-USDT",
7743
+ // "side": "buy",
7744
+ // "fillPx": "2932.401044",
7745
+ // "baseCcy": "ETH",
7746
+ // "quoteCcy": "USDT",
7747
+ // "fillBaseSz": "0.01023052",
7748
+ // "state": "fullyFilled",
7749
+ // "tradeId": "trader16461885203381437",
7750
+ // "fillQuoteSz": "30",
7751
+ // "ts": "1646188520000"
7752
+ // }
7753
+ // ],
7754
+ // "msg": ""
7755
+ // }
7756
+ //
7757
+ const data = this.safeList(response, 'data', []);
7758
+ const result = this.safeDict(data, 0, {});
7759
+ const fromCurrencyId = this.safeString(result, 'baseCcy');
7760
+ const toCurrencyId = this.safeString(result, 'quoteCcy');
7761
+ let fromCurrency = undefined;
7762
+ let toCurrency = undefined;
7763
+ if (fromCurrencyId !== undefined) {
7764
+ fromCurrency = this.currency(fromCurrencyId);
7765
+ }
7766
+ if (toCurrencyId !== undefined) {
7767
+ toCurrency = this.currency(toCurrencyId);
7768
+ }
7769
+ return this.parseConversion(result, fromCurrency, toCurrency);
7770
+ }
7771
+ async fetchConvertTradeHistory(code = undefined, since = undefined, limit = undefined, params = {}) {
7772
+ /**
7773
+ * @method
7774
+ * @name okx#fetchConvertTradeHistory
7775
+ * @description fetch the users history of conversion trades
7776
+ * @see https://www.okx.com/docs-v5/en/#funding-account-rest-api-get-convert-history
7777
+ * @param {string} [code] the unified currency code
7778
+ * @param {int} [since] the earliest time in ms to fetch conversions for
7779
+ * @param {int} [limit] the maximum number of conversion structures to retrieve
7780
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
7781
+ * @param {int} [params.until] timestamp in ms of the latest conversion to fetch
7782
+ * @returns {object[]} a list of [conversion structures]{@link https://docs.ccxt.com/#/?id=conversion-structure}
7783
+ */
7784
+ await this.loadMarkets();
7785
+ let request = {};
7786
+ [request, params] = this.handleUntilOption('after', request, params);
7787
+ if (since !== undefined) {
7788
+ request['before'] = since;
7789
+ }
7790
+ if (limit !== undefined) {
7791
+ request['limit'] = limit;
7792
+ }
7793
+ const response = await this.privateGetAssetConvertHistory(this.extend(request, params));
7794
+ //
7795
+ // {
7796
+ // "code": "0",
7797
+ // "data": [
7798
+ // {
7799
+ // "clTReqId": "",
7800
+ // "instId": "ETH-USDT",
7801
+ // "side": "buy",
7802
+ // "fillPx": "2932.401044",
7803
+ // "baseCcy": "ETH",
7804
+ // "quoteCcy": "USDT",
7805
+ // "fillBaseSz": "0.01023052",
7806
+ // "state": "fullyFilled",
7807
+ // "tradeId": "trader16461885203381437",
7808
+ // "fillQuoteSz": "30",
7809
+ // "ts": "1646188520000"
7810
+ // }
7811
+ // ],
7812
+ // "msg": ""
7813
+ // }
7814
+ //
7815
+ const rows = this.safeList(response, 'data', []);
7816
+ return this.parseConversions(rows, 'baseCcy', 'quoteCcy', since, limit);
7817
+ }
7718
7818
  parseConversion(conversion, fromCurrency = undefined, toCurrency = undefined) {
7719
7819
  //
7720
7820
  // fetchConvertQuote
@@ -7752,6 +7852,22 @@ export default class okx extends Exchange {
7752
7852
  // "ts": "1646188520338"
7753
7853
  // }
7754
7854
  //
7855
+ // fetchConvertTrade, fetchConvertTradeHistory
7856
+ //
7857
+ // {
7858
+ // "clTReqId": "",
7859
+ // "instId": "ETH-USDT",
7860
+ // "side": "buy",
7861
+ // "fillPx": "2932.401044",
7862
+ // "baseCcy": "ETH",
7863
+ // "quoteCcy": "USDT",
7864
+ // "fillBaseSz": "0.01023052",
7865
+ // "state": "fullyFilled",
7866
+ // "tradeId": "trader16461885203381437",
7867
+ // "fillQuoteSz": "30",
7868
+ // "ts": "1646188520000"
7869
+ // }
7870
+ //
7755
7871
  const timestamp = this.safeInteger2(conversion, 'quoteTime', 'ts');
7756
7872
  const fromCoin = this.safeString(conversion, 'baseCcy');
7757
7873
  const fromCode = this.safeCurrencyCode(fromCoin, fromCurrency);
package/js/src/phemex.js CHANGED
@@ -2868,11 +2868,16 @@ export default class phemex extends Exchange {
2868
2868
  }
2869
2869
  await this.loadMarkets();
2870
2870
  const market = this.market(symbol);
2871
+ const stop = this.safeValue2(params, 'stop', 'trigger', false);
2872
+ params = this.omit(params, 'stop', 'trigger');
2871
2873
  const request = {
2872
2874
  'symbol': market['id'],
2873
2875
  // 'untriggerred': false, // false to cancel non-conditional orders, true to cancel conditional orders
2874
2876
  // 'text': 'up to 40 characters max',
2875
2877
  };
2878
+ if (stop) {
2879
+ request['untriggerred'] = stop;
2880
+ }
2876
2881
  let response = undefined;
2877
2882
  if (market['settle'] === 'USDT') {
2878
2883
  response = await this.privateDeleteGOrdersAll(this.extend(request, params));
@@ -376,8 +376,18 @@ export default class poloniexfutures extends Exchange {
376
376
  const marketId = this.safeString(ticker, 'symbol');
377
377
  const symbol = this.safeSymbol(marketId, market);
378
378
  const timestampString = this.safeString(ticker, 'ts');
379
- // check timestamp bcz bug: https://app.travis-ci.com/github/ccxt/ccxt/builds/269959181#L4011
380
- const multiplier = (timestampString.length === 18) ? 0.00001 : 0.000001;
379
+ // check timestamp bcz bug: https://app.travis-ci.com/github/ccxt/ccxt/builds/269959181#L4011 and also 17 digits occured
380
+ let multiplier = undefined;
381
+ if (timestampString.length === 17) {
382
+ multiplier = 0.0001;
383
+ }
384
+ else if (timestampString.length === 18) {
385
+ multiplier = 0.00001;
386
+ }
387
+ else {
388
+ // 19 length default
389
+ multiplier = 0.000001;
390
+ }
381
391
  const timestamp = this.safeIntegerProduct(ticker, 'ts', multiplier);
382
392
  const last = this.safeString2(ticker, 'price', 'lastPrice');
383
393
  const percentage = Precise.stringMul(this.safeString(ticker, 'priceChgPct'), '100');
@@ -67,7 +67,7 @@ export default class hyperliquid extends hyperliquidRest {
67
67
  'method': 'subscribe',
68
68
  'subscription': {
69
69
  'type': 'l2Book',
70
- 'coin': market['base'],
70
+ 'coin': market['swap'] ? market['base'] : market['id'],
71
71
  },
72
72
  };
73
73
  const message = this.extend(request, params);
@@ -102,7 +102,7 @@ export default class hyperliquid extends hyperliquidRest {
102
102
  //
103
103
  const entry = this.safeDict(message, 'data', {});
104
104
  const coin = this.safeString(entry, 'coin');
105
- const marketId = coin + '/USDC:USDC';
105
+ const marketId = this.coinToMarketId(coin);
106
106
  const market = this.market(marketId);
107
107
  const symbol = market['symbol'];
108
108
  const rawData = this.safeList(entry, 'levels', []);
@@ -233,7 +233,7 @@ export default class hyperliquid extends hyperliquidRest {
233
233
  'method': 'subscribe',
234
234
  'subscription': {
235
235
  'type': 'trades',
236
- 'coin': market['base'],
236
+ 'coin': market['swap'] ? market['base'] : market['id'],
237
237
  },
238
238
  };
239
239
  const message = this.extend(request, params);
@@ -263,7 +263,7 @@ export default class hyperliquid extends hyperliquidRest {
263
263
  const entry = this.safeList(message, 'data', []);
264
264
  const first = this.safeDict(entry, 0, {});
265
265
  const coin = this.safeString(first, 'coin');
266
- const marketId = coin + '/USDC:USDC';
266
+ const marketId = this.coinToMarketId(coin);
267
267
  const market = this.market(marketId);
268
268
  const symbol = market['symbol'];
269
269
  if (!(symbol in this.trades)) {
@@ -318,7 +318,7 @@ export default class hyperliquid extends hyperliquidRest {
318
318
  const price = this.safeString(trade, 'px');
319
319
  const amount = this.safeString(trade, 'sz');
320
320
  const coin = this.safeString(trade, 'coin');
321
- const marketId = coin + '/USDC:USDC';
321
+ const marketId = this.coinToMarketId(coin);
322
322
  market = this.safeMarket(marketId, undefined);
323
323
  const symbol = market['symbol'];
324
324
  const id = this.safeString(trade, 'tid');
@@ -363,7 +363,7 @@ export default class hyperliquid extends hyperliquidRest {
363
363
  'method': 'subscribe',
364
364
  'subscription': {
365
365
  'type': 'candle',
366
- 'coin': market['base'],
366
+ 'coin': market['swap'] ? market['base'] : market['id'],
367
367
  'interval': timeframe,
368
368
  },
369
369
  };
@@ -395,7 +395,8 @@ export default class hyperliquid extends hyperliquidRest {
395
395
  //
396
396
  const data = this.safeDict(message, 'data', {});
397
397
  const base = this.safeString(data, 's');
398
- const symbol = base + '/USDC:USDC';
398
+ const marketId = this.coinToMarketId(base);
399
+ const symbol = this.safeSymbol(marketId);
399
400
  const timeframe = this.safeString(data, 'i');
400
401
  if (!(symbol in this.ohlcvs)) {
401
402
  this.ohlcvs[symbol] = {};
@@ -1323,7 +1323,7 @@ export default class kraken extends krakenRest {
1323
1323
  },
1324
1324
  };
1325
1325
  const url = this.urls['api']['ws']['public'];
1326
- return await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes, subscriptionArgs);
1326
+ return await this.watchMultiple(url, messageHashes, this.deepExtend(request, params), messageHashes, subscriptionArgs);
1327
1327
  }
1328
1328
  getMessageHash(unifiedElementName, subChannelName = undefined, symbol = undefined) {
1329
1329
  // unifiedElementName can be : orderbook, trade, ticker, bidask ...
@@ -749,7 +749,8 @@ export default class wazirx extends wazirxRest {
749
749
  };
750
750
  const streams = Object.keys(streamHandlers);
751
751
  for (let i = 0; i < streams.length; i++) {
752
- if (this.inArray(streams[i], stream)) {
752
+ const streamContains = stream.indexOf(streams[i]) > -1;
753
+ if (streamContains) {
753
754
  const handler = streamHandlers[streams[i]];
754
755
  handler.call(this, client, message);
755
756
  return;
@@ -55,7 +55,7 @@ export declare class JSEncryptRSAKey extends RSAKey {
55
55
  * @returns {string} DER Encoded String representing the rsa private key
56
56
  * @private
57
57
  */
58
- getPrivateBaseKey(): string;
58
+ getPrivateBaseKey(): any;
59
59
  /**
60
60
  * base64 (pem) encoded version of the DER encoded representation
61
61
  * @returns {string} pem encoded representation without header and footer
@@ -82,7 +82,7 @@ export declare class JSEncryptRSAKey extends RSAKey {
82
82
  * @returns {string} DER Encoded String representing the rsa public key
83
83
  * @private
84
84
  */
85
- getPublicBaseKey(): string;
85
+ getPublicBaseKey(): any;
86
86
  /**
87
87
  * base64 (pem) encoded version of the DER encoded representation
88
88
  * @returns {string} pem encoded representation without header and footer