evernode-js-client 0.6.33 → 0.6.35

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/index.js +20 -468
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -51836,7 +51836,6 @@ const { Defaults } = __nccwpck_require__(8262);
51836
51836
  const { EncryptionHelper } = __nccwpck_require__(4832);
51837
51837
  const { EventEmitter } = __nccwpck_require__(6170);
51838
51838
  const { UtilHelpers } = __nccwpck_require__(6687);
51839
- const { FirestoreHandler } = __nccwpck_require__(9718);
51840
51839
  const { StateHelpers } = __nccwpck_require__(3860);
51841
51840
  const { EvernodeHelpers } = __nccwpck_require__(2523);
51842
51841
  const { HookHelpers } = __nccwpck_require__(4675);
@@ -51860,7 +51859,6 @@ class BaseEvernodeClient {
51860
51859
  #watchEvents;
51861
51860
  #autoSubscribe;
51862
51861
  #ownsXrplApi = false;
51863
- #firestoreHandler;
51864
51862
 
51865
51863
  constructor(xrpAddress, xrpSecret, watchEvents, autoSubscribe = false, options = {}) {
51866
51864
 
@@ -51879,7 +51877,6 @@ class BaseEvernodeClient {
51879
51877
  this.#watchEvents = watchEvents;
51880
51878
  this.#autoSubscribe = autoSubscribe;
51881
51879
  this.events = new EventEmitter();
51882
- this.#firestoreHandler = new FirestoreHandler()
51883
51880
 
51884
51881
  this.xrplAcc.on(XrplApiEvents.PAYMENT, (tx, error) => this.#handleEvernodeEvent(tx, error));
51885
51882
  this.xrplAcc.on(XrplApiEvents.URI_TOKEN_BUY, (tx, error) => this.#handleEvernodeEvent(tx, error));
@@ -52487,29 +52484,6 @@ class BaseEvernodeClient {
52487
52484
  return null;
52488
52485
  }
52489
52486
 
52490
- /**
52491
- * Get the hosts registered in Evernode. The result's are paginated. Default page size is 20. _Note: Specifying both filter and pagination does not supported._
52492
- * @param {object} filters [Optional] Filter criteria to filter the hosts. The filter key can be a either property of the host.
52493
- * @param {number} pageSize [Optional] Page size for the results.
52494
- * @param {string} nextPageToken [Optional] Next page's token, If received by the previous result set.
52495
- * @returns The list of active hosts. The response will be in '{data: [], nextPageToken: ''}' only if there are more pages. Otherwise the response will only contain the host list.
52496
- */
52497
- async getHosts(filters = null, pageSize = null, nextPageToken = null) {
52498
- const hosts = await this.#firestoreHandler.getHosts(filters, pageSize, nextPageToken);
52499
- const curMomentStartIdx = await this.getMomentStartIndex();
52500
- const res = await Promise.all((hosts.nextPageToken ? hosts.data : hosts).map(async host => {
52501
- const hostAcc = new XrplAccount(host.address, null, { xrplApi: this.xrplApi });
52502
- host.domain = await hostAcc.getDomain();
52503
-
52504
- host.active = (host.lastHeartbeatIndex > (this.config.hostHeartbeatFreq * this.config.momentSize) ?
52505
- (host.lastHeartbeatIndex >= (curMomentStartIdx - (this.config.hostHeartbeatFreq * this.config.momentSize))) :
52506
- (host.lastHeartbeatIndex > 0));
52507
- return host;
52508
- }));
52509
-
52510
- return (hosts.nextPageToken ? { ...hosts, data: res } : res);
52511
- }
52512
-
52513
52487
  /**
52514
52488
  * Get the hosts registered in Evernode.
52515
52489
  * @returns The list of hosts.
@@ -52545,94 +52519,25 @@ class BaseEvernodeClient {
52545
52519
  }
52546
52520
 
52547
52521
  /**
52548
- * Get the candidates proposed in Evernode. The result's are paginated. Default page size is 20. _Note: Specifying both filter and pagination does not supported._
52549
- * @param {object} filters [Optional] Filter criteria to filter the candidates. The filter key can be a either property of the candidate.
52550
- * @param {number} pageSize [Optional] Page size for the results.
52551
- * @param {string} nextPageToken [Optional] Next page's token, If received by the previous result set.
52552
- * @returns The list of candidates. The response will be in '{data: [], nextPageToken: ''}' only if there are more pages. Otherwise the response will only contain the host list.
52553
- */
52554
- async getCandidates(filters = null, pageSize = null, nextPageToken = null) {
52555
- const candidates = await this.#firestoreHandler.getCandidates(filters, pageSize, nextPageToken);
52556
- return candidates;
52557
- }
52558
-
52559
- /**
52560
- * Get all Evernode configuration without paginating.
52561
- * @returns The list of configuration.
52562
- */
52563
- async getAllConfigs() {
52564
- let fullConfigList = [];
52565
- const configs = await this.#firestoreHandler.getConfigs();
52566
- if (configs.nextPageToken) {
52567
- let currentPageToken = configs.nextPageToken;
52568
- let nextConfigs = null;
52569
- fullConfigList = fullConfigList.concat(configs.data);
52570
- while (currentPageToken) {
52571
- nextConfigs = await this.#firestoreHandler.getConfigs(null, 50, currentPageToken);
52572
- fullConfigList = fullConfigList.concat(nextConfigs.nextPageToken ? nextConfigs.data : nextConfigs);
52573
- currentPageToken = nextConfigs.nextPageToken;
52574
- }
52575
- } else {
52576
- fullConfigList = fullConfigList.concat(configs);
52577
- }
52578
-
52579
- return fullConfigList;
52580
- }
52581
-
52582
- /**
52583
- * Get all the hosts without paginating.
52584
- * @returns The list of hosts.
52522
+ * Get the governor in Evernode.
52523
+ * @returns The list of candidates.
52585
52524
  */
52586
- async getAllHosts() {
52587
- let fullHostList = [];
52588
- const hosts = await this.#firestoreHandler.getHosts();
52589
- if (hosts.nextPageToken) {
52590
- let currentPageToken = hosts.nextPageToken;
52591
- let nextHosts = null;
52592
- fullHostList = fullHostList.concat(hosts.data);
52593
- while (currentPageToken) {
52594
- nextHosts = await this.#firestoreHandler.getHosts(null, 50, currentPageToken);
52595
- fullHostList = fullHostList.concat(nextHosts.nextPageToken ? nextHosts.data : nextHosts);
52596
- currentPageToken = nextHosts.nextPageToken;
52597
- }
52598
- } else {
52599
- fullHostList = fullHostList.concat(hosts);
52600
- }
52601
-
52602
- const curMomentStartIdx = await this.getMomentStartIndex();
52603
- await Promise.all((fullHostList).map(async host => {
52604
- const hostAcc = new XrplAccount(host.address, null, { xrplApi: this.xrplApi });
52605
- host.domain = await hostAcc.getDomain();
52606
- host.active = (host.lastHeartbeatIndex > (this.config.hostHeartbeatFreq * this.config.momentSize) ?
52607
- (host.lastHeartbeatIndex >= (curMomentStartIdx - (this.config.hostHeartbeatFreq * this.config.momentSize))) :
52608
- (host.lastHeartbeatIndex > 0));
52609
- return host;
52610
- }));
52611
-
52612
- return fullHostList;
52613
- }
52525
+ async getAllCandidatesFromLedger() {
52526
+ const states = await this.getHookStates();
52527
+ let candidates = [];
52614
52528
 
52615
- /**
52616
- * Get all the candidates without paginating.
52617
- * @returns The list of candidates.
52618
- */
52619
- async getAllCandidates() {
52620
- let fullCandidateList = [];
52621
- const candidates = await this.#firestoreHandler.getCandidates();
52622
- if (candidates.nextPageToken) {
52623
- let currentPageToken = candidates.nextPageToken;
52624
- let nextCandidates = null;
52625
- fullCandidateList = fullCandidateList.concat(candidates.data);
52626
- while (currentPageToken) {
52627
- nextCandidates = await this.#firestoreHandler.getCandidates(null, 50, currentPageToken);
52628
- fullCandidateList = fullCandidateList.concat(nextCandidates.nextPageToken ? nextCandidates.data : nextCandidates);
52629
- currentPageToken = nextCandidates.nextPageToken;
52529
+ for (const state of states) {
52530
+ const stateKey = Buffer.from(state.key, 'hex');
52531
+ if (state.data) {
52532
+ const stateData = Buffer.from(state.data, 'hex');
52533
+ const decoded = StateHelpers.decodeStateData(stateKey, stateData);
52534
+ if (decoded.type == StateHelpers.StateTypes.CANDIDATE_ID) {
52535
+ candidates.push(decoded);
52536
+ }
52630
52537
  }
52631
- } else {
52632
- fullCandidateList = fullCandidateList.concat(candidates);
52633
52538
  }
52634
52539
 
52635
- return fullCandidateList;
52540
+ return candidates;
52636
52541
  }
52637
52542
 
52638
52543
  /**
@@ -52717,10 +52622,11 @@ class BaseEvernodeClient {
52717
52622
  */
52718
52623
  async getDudHostCandidatesByOwner(ownerAddress = this.xrplAcc.address) {
52719
52624
  try {
52720
- let candidates = await this.#firestoreHandler.getCandidates({ ownerAddress: ownerAddress });
52721
- if (candidates && candidates.length > 0) {
52722
- candidates = candidates.filter(c => StateHelpers.getCandidateType(c.uniqueId) == EvernodeConstants.CandidateTypes.DudHost);
52723
- return candidates;
52625
+ const candidates = await this.getAllCandidatesFromLedger();
52626
+ let filteredCandidates = candidates.filter(c => c.ownerAddress === ownerAddress);
52627
+ if (filteredCandidates && filteredCandidates.length > 0) {
52628
+ filteredCandidates = filteredCandidates.filter(c => StateHelpers.getCandidateType(c.uniqueId) == EvernodeConstants.CandidateTypes.DudHost);
52629
+ return filteredCandidates;
52724
52630
  }
52725
52631
  } catch (error) {
52726
52632
  console.log(error)
@@ -53263,29 +53169,6 @@ class RegistryClient extends BaseEvernodeClient {
53263
53169
  super(options.registryAddress, null, Object.values(RegistryEvents), false, options);
53264
53170
  }
53265
53171
 
53266
- /**
53267
- * Gets all the active hosts registered in Evernode without paginating.
53268
- * @returns The list of active hosts.
53269
- */
53270
- async getActiveHosts() {
53271
- let fullHostList = [];
53272
- const hosts = await this.getHosts();
53273
- if (hosts.nextPageToken) {
53274
- let currentPageToken = hosts.nextPageToken;
53275
- let nextHosts = null;
53276
- fullHostList = fullHostList.concat(hosts.data);
53277
- while (currentPageToken) {
53278
- nextHosts = await this.getHosts(null, null, currentPageToken);
53279
- fullHostList = fullHostList.concat(nextHosts.nextPageToken ? nextHosts.data : nextHosts);
53280
- currentPageToken = nextHosts.nextPageToken;
53281
- }
53282
- } else {
53283
- fullHostList = fullHostList.concat(hosts);
53284
- }
53285
- // Filter only active hosts.
53286
- return fullHostList.filter(h => h.active);
53287
- }
53288
-
53289
53172
  /**
53290
53173
  * Gets all the active hosts registered in ledger.
53291
53174
  * @returns The list of active hosts.
@@ -54666,8 +54549,7 @@ const https = __nccwpck_require__(5687);
54666
54549
  const DefinitionsUrl = 'https://raw.githubusercontent.com/EvernodeXRPL/evernode-resources/main/definitions/definitions.json';
54667
54550
 
54668
54551
  const DefaultValues = {
54669
- xrplApi: null,
54670
- useCentralizedRegistry: false,
54552
+ xrplApi: null
54671
54553
  }
54672
54554
 
54673
54555
  const HookTypes = {
@@ -55417,334 +55299,6 @@ module.exports = {
55417
55299
 
55418
55300
  /***/ }),
55419
55301
 
55420
- /***/ 9718:
55421
- /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
55422
-
55423
- const https = __nccwpck_require__(5687);
55424
- const { Defaults } = __nccwpck_require__(8262);
55425
-
55426
- const FirestoreOperations = {
55427
- EQUAL: 'EQUAL',
55428
- AND: 'AND'
55429
- }
55430
-
55431
- class FirestoreHandler {
55432
- #projectId = null;
55433
- #collectionPrefix = null;
55434
-
55435
- constructor(options = {}) {
55436
- this.#projectId = options.stateIndexId || Defaults.values.stateIndexId;
55437
- this.#collectionPrefix = options.collectionPrefix || Defaults.values.governorAddress;
55438
- }
55439
-
55440
- /**
55441
- * Convert given document value object to real format and snake_case key to camelCase.
55442
- * @param key Name of the property.
55443
- * @param value Value to be parsed.
55444
- * @returns Parsed key and value.
55445
- */
55446
- #parseValue(key, value) {
55447
- // Convert snake_case to camelCase.
55448
- const ccKey = key.replace(/_([a-z])/g, function (g) { return g[1].toUpperCase(); });
55449
- const type = Object.keys(value)[0];
55450
- let parsed;
55451
- switch (type) {
55452
- case 'integerValue':
55453
- parsed = parseInt(value[type]);
55454
- break;
55455
- case 'floatValue':
55456
- parsed = parseFloat(value[type]);
55457
- break;
55458
- case 'mapValue':
55459
- parsed = {};
55460
- for (const [subKey, subValue] of Object.entries(value[type].fields)) {
55461
- const field = this.#parseValue(subKey, subValue);
55462
- parsed[field.key] = field.value;
55463
- }
55464
- break;
55465
- default:
55466
- parsed = value[type];
55467
- break;
55468
- }
55469
- return { key: ccKey, value: parsed };
55470
- }
55471
-
55472
- /**
55473
- * Get values filtered according to the given body.
55474
- * @param body Body to parsed in to the query reqest.
55475
- * @returns Result set.
55476
- */
55477
- async #runQuery(body) {
55478
- const url = this.buildApiPath(null, null, true);
55479
- return await this.sendRequest('POST', url, null, body);
55480
- }
55481
-
55482
- /**
55483
- * Get documents from a collection.
55484
- * @param collectionId Name of the collection.
55485
- * @param pageSize Optianal page size if result set needed to be paginated
55486
- * @param nextPageToken Next page token of a paginated result set.
55487
- * @returns Result set.
55488
- */
55489
- async #read(collectionId, pageSize = null, nextPageToken = null) {
55490
- if (!collectionId)
55491
- throw { type: 'Validation Error', message: 'collectionId is required' };
55492
-
55493
- const url = this.buildApiPath(collectionId);
55494
- let params = (pageSize || nextPageToken) ? {} : null;
55495
- if (pageSize)
55496
- params = { pageSize: pageSize };
55497
- if (nextPageToken)
55498
- params = { pageToken: nextPageToken, ...params };
55499
-
55500
- return await this.sendRequest('GET', url, params);
55501
- }
55502
-
55503
- /**
55504
- * Get documents from a collection with filtering support.
55505
- * @param collectionId Name of the collection.
55506
- * @param filter Optional filters to filter documents.
55507
- * @param pageSize Optianal page size if result set needed to be paginated
55508
- * @param nextPageToken Next page token of a paginated result set.
55509
- * @returns Parsed readable result set.
55510
- */
55511
- async #getDocuments(collectionId, filters = null, pageSize = null, nextPageToken = null) {
55512
- if (filters && (pageSize || nextPageToken))
55513
- throw { type: 'Validation Error', message: 'Pagination isn\'t supported with filter.' };
55514
-
55515
- let data;
55516
- // If there are filters send requst in query mode.
55517
- if (filters) {
55518
- // Prepare the query body from given filters.
55519
- let where = {
55520
- compositeFilter: {
55521
- filters: Object.entries(filters).map(([key, value]) => {
55522
- const field = this.convertValue(key, value);
55523
- return {
55524
- fieldFilter: {
55525
- field: { fieldPath: field.key },
55526
- op: FirestoreOperations.EQUAL,
55527
- value: field.value
55528
- }
55529
- }
55530
- }),
55531
- op: filters.operator ? filters.operator : FirestoreOperations.AND
55532
- }
55533
- };
55534
- for (const [key, value] of Object.entries(filters)) {
55535
- const field = this.convertValue(key, value);
55536
- let fieldFilter = {
55537
- field: { fieldPath: field.key },
55538
- op: FirestoreOperations.EQUAL,
55539
- value: field.value
55540
- }
55541
- where.compositeFilter.filters.push({ fieldFilter: fieldFilter });
55542
- }
55543
-
55544
- let body = {
55545
- structuredQuery: {
55546
- where: where,
55547
- from: [{ collectionId: collectionId }]
55548
- }
55549
- };
55550
- data = await this.#runQuery(body);
55551
- data = data ? JSON.parse(data) : [];
55552
- if (data && data.length && data[0].document) {
55553
- return data.map(d => {
55554
- return this.parseDocument(d.document);
55555
- });
55556
- }
55557
- }
55558
- else {
55559
- data = await this.#read(collectionId, pageSize, nextPageToken);
55560
- data = data ? JSON.parse(data) : {};
55561
- if (data.documents && data.documents.length) {
55562
- const list = data.documents.map(d => {
55563
- return this.parseDocument(d);
55564
- });
55565
- return data.nextPageToken ? {
55566
- data: list,
55567
- nextPageToken: data.nextPageToken
55568
- } : list;
55569
- }
55570
- }
55571
-
55572
- return [];
55573
- }
55574
-
55575
- getCollectionId(collection) {
55576
- // Document if is generated with given prefix.
55577
- return `${this.#collectionPrefix}_${collection}`;
55578
- }
55579
-
55580
- /**
55581
- * Send http requst.
55582
- * @param httpMethod GET/POST/PATCH/DELETE
55583
- * @param url Url for the request.
55584
- * @param params Optional query params.
55585
- * @param data Optional request body.
55586
- * @param options Optional options.
55587
- * @returns Result set.
55588
- */
55589
- async sendRequest(httpMethod, url, params = null, data = null, options = null) {
55590
- if (!Defaults.values.useCentralizedRegistry) {
55591
- console.warn("Please change the useCentralizedRegistry flag to true in Defaults if you want to use this function!")
55592
- throw new Error("Centralized function is in use!!")
55593
- }
55594
-
55595
- const urlObj = new URL(url);
55596
- // Populate uri params to the URL object.
55597
- if (params) {
55598
- for (const [key, value] of Object.entries(params)) {
55599
- if (value) {
55600
- // If value is a array, populate it with same name.
55601
- if (typeof value === 'object') {
55602
- for (const val of value) {
55603
- if (val)
55604
- urlObj.searchParams.append(key, val);
55605
- }
55606
- }
55607
- else
55608
- urlObj.searchParams.set(key, value);
55609
- }
55610
- }
55611
- }
55612
-
55613
- let reqOptions = {
55614
- method: httpMethod,
55615
- protocol: urlObj.protocol,
55616
- hostname: urlObj.hostname,
55617
- port: urlObj.port,
55618
- path: `${urlObj.pathname}?${urlObj.searchParams.toString()}`,
55619
- ...(options ? options : {})
55620
- };
55621
-
55622
- return new Promise(async (resolve, reject) => {
55623
- // Send request and collect data chuncks to a buffer. Then return the result set on end event.
55624
- // Resolve only if the status is 200.
55625
- const req = https.request(reqOptions, (res) => {
55626
- let resData = '';
55627
- res.on('data', (d) => {
55628
- resData += d;
55629
- });
55630
- res.on('end', async () => {
55631
- if (res.statusCode === 200) {
55632
- resolve(resData);
55633
- return;
55634
- }
55635
- reject({ status: res.statusCode, data: resData });
55636
- return;
55637
- });
55638
- }).on('error', async (e) => {
55639
- reject(e);
55640
- return;
55641
- });
55642
-
55643
- if (data)
55644
- req.write(typeof data === 'object' ? JSON.stringify(data) : data);
55645
-
55646
- req.end();
55647
- });
55648
- }
55649
-
55650
- /**
55651
- * Generate url for firestore.
55652
- * @param collectionId Optional collection name.
55653
- * @param documentId Optional document name.
55654
- * @param isQuery Whether a query request or not.
55655
- * @returns The generated url.
55656
- */
55657
- buildApiPath(collectionId = null, documentId = null, isQuery = false) {
55658
- let path = `https://firestore.googleapis.com/v1/projects/${this.#projectId}/databases/(default)/documents`;
55659
- if (collectionId)
55660
- path += `/${collectionId.toString()}`;
55661
- if (documentId)
55662
- path += `/${documentId.toString()}`;
55663
- if (isQuery)
55664
- path += ':runQuery';
55665
- return path;
55666
- }
55667
-
55668
- /**
55669
- * Generate firestore document value object from given key and value, Convert camelCase key to snake_case.
55670
- * @param key Name of the value.
55671
- * @param value Value to be parsed.
55672
- * @returns Generated firestore document object.
55673
- */
55674
- convertValue(key, value) {
55675
- // Convert camelCase to snake_case.
55676
- const uKey = key.replace(/([A-Z])/g, function (g) { return `_${g[0].toLocaleLowerCase()}`; });
55677
- let val = {};
55678
- let type
55679
- switch (typeof value) {
55680
- case 'number':
55681
- type = (value % 1 > 0 ? 'float' : 'integer');
55682
- val = value;
55683
- break;
55684
- case 'object':
55685
- type = 'map';
55686
- val = {
55687
- fields: {}
55688
- }
55689
- // Prepare the firestore write body with the given data object.
55690
- for (const [subKey, subValue] of Object.entries(value)) {
55691
- const field = this.convertValue(subKey, subValue);
55692
- val.fields[field.key] = field.value;
55693
- }
55694
- break;
55695
- case 'boolean':
55696
- type = 'boolean';
55697
- val = value;
55698
- break;
55699
- default:
55700
- type = 'string';
55701
- val = value;
55702
- break;
55703
- }
55704
- type = `${type}Value`;
55705
- let obj = {};
55706
- obj[type] = val;
55707
- return { key: uKey, value: obj };
55708
- }
55709
-
55710
- /**
55711
- * Convert the firestore document to human readable simplified json object.
55712
- * @param document Firestore document.
55713
- * @returns Simplified json object for the document.
55714
- */
55715
- parseDocument(document) {
55716
- let item = {
55717
- id: document.name.split('/').pop(),
55718
- createTime: new Date(document.createTime),
55719
- updateTime: new Date(document.updateTime)
55720
- };
55721
- for (const [key, value] of Object.entries(document.fields)) {
55722
- const field = this.#parseValue(key, value);
55723
- item[field.key] = field.value;
55724
- }
55725
- return item;
55726
- }
55727
-
55728
- async getCandidates(filters = null, pageSize = null, nextPageToken = null) {
55729
- return await this.#getDocuments(this.getCollectionId('candidates'), filters, pageSize, nextPageToken);
55730
- }
55731
-
55732
- async getHosts(filters = null, pageSize = null, nextPageToken = null) {
55733
- return await this.#getDocuments(this.getCollectionId('hosts'), filters, pageSize, nextPageToken);
55734
- }
55735
-
55736
- async getConfigs(filters = null, pageSize = null, nextPageToken = null) {
55737
- return await this.#getDocuments(this.getCollectionId('configs'), filters, pageSize, nextPageToken);
55738
- }
55739
- }
55740
-
55741
- module.exports = {
55742
- FirestoreHandler,
55743
- FirestoreOperations
55744
- }
55745
-
55746
- /***/ }),
55747
-
55748
55302
  /***/ 4675:
55749
55303
  /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
55750
55304
 
@@ -55800,7 +55354,6 @@ const { XrplApiEvents, XrplConstants } = __nccwpck_require__(3307);
55800
55354
  const { XrplAccount } = __nccwpck_require__(9329);
55801
55355
  const { EvernodeConstants, HookStateKeys, HookParamKeys, EventTypes } = __nccwpck_require__(9849);
55802
55356
  const { XflHelpers } = __nccwpck_require__(3243);
55803
- const { FirestoreHandler } = __nccwpck_require__(9718);
55804
55357
  const { StateHelpers } = __nccwpck_require__(3860);
55805
55358
  const { UtilHelpers } = __nccwpck_require__(6687);
55806
55359
  const { TransactionHelper } = __nccwpck_require__(7071);
@@ -55829,7 +55382,6 @@ module.exports = {
55829
55382
  Defaults,
55830
55383
  XflHelpers,
55831
55384
  StateHelpers,
55832
- FirestoreHandler,
55833
55385
  UtilHelpers,
55834
55386
  TransactionHelper,
55835
55387
  EncryptionHelper,
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  ],
7
7
  "homepage": "https://github.com/HotPocketDev/evernode-js-client",
8
8
  "license": "SEE LICENSE IN https://raw.githubusercontent.com/EvernodeXRPL/evernode-resources/main/license/evernode-license.pdf",
9
- "version": "0.6.33",
9
+ "version": "0.6.35",
10
10
  "dependencies": {
11
11
  "elliptic": "6.5.4",
12
12
  "libsodium-wrappers": "0.7.10",