evernode-js-client 0.6.20 → 0.6.21-definition-1.1

Sign up to get free protection for your applications and to get access to all the features.
Binary file
package/index.js CHANGED
@@ -9149,7 +9149,7 @@ module.exports = { mask, unmask };
9149
9149
 
9150
9150
 
9151
9151
  try {
9152
- module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi.node");
9152
+ module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi1.node");
9153
9153
  } catch (e) {
9154
9154
  module.exports = __nccwpck_require__(2567);
9155
9155
  }
@@ -33340,7 +33340,7 @@ module.exports = isValidUTF8;
33340
33340
 
33341
33341
 
33342
33342
  try {
33343
- module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi1.node");
33343
+ module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi.node");
33344
33344
  } catch (e) {
33345
33345
  module.exports = __nccwpck_require__(9372);
33346
33346
  }
@@ -51832,7 +51832,7 @@ const { XrplApi } = __nccwpck_require__(1850);
51832
51832
  const { XrplAccount } = __nccwpck_require__(9329);
51833
51833
  const { XrplApiEvents, XrplConstants } = __nccwpck_require__(3307);
51834
51834
  const { EvernodeEvents, EventTypes, MemoFormats, EvernodeConstants, HookStateKeys, HookParamKeys, RegExp } = __nccwpck_require__(9849);
51835
- const { DefaultValues } = __nccwpck_require__(8262);
51835
+ 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);
@@ -51861,10 +51861,10 @@ class BaseEvernodeClient {
51861
51861
  constructor(xrpAddress, xrpSecret, watchEvents, autoSubscribe = false, options = {}) {
51862
51862
 
51863
51863
  this.connected = false;
51864
- this.governorAddress = options.governorAddress || DefaultValues.governorAddress;
51864
+ this.governorAddress = options.governorAddress || Defaults.values.governorAddress;
51865
51865
 
51866
- this.xrplApi = options.xrplApi || DefaultValues.xrplApi || new XrplApi(options.rippledServer);
51867
- if (!options.xrplApi && !DefaultValues.xrplApi)
51866
+ this.xrplApi = options.xrplApi || Defaults.values.xrplApi || new XrplApi(options.rippledServer);
51867
+ if (!options.xrplApi && !Defaults.values.xrplApi)
51868
51868
  this.#ownsXrplApi = true;
51869
51869
 
51870
51870
  this.xrplAcc = new XrplAccount(xrpAddress, xrpSecret, { xrplApi: this.xrplApi });
@@ -53036,7 +53036,7 @@ module.exports = {
53036
53036
  /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
53037
53037
 
53038
53038
  const { BaseEvernodeClient } = __nccwpck_require__(6263);
53039
- const { DefaultValues } = __nccwpck_require__(8262);
53039
+ const { Defaults } = __nccwpck_require__(8262);
53040
53040
  const { EvernodeEvents } = __nccwpck_require__(9849);
53041
53041
 
53042
53042
  const GovernorEvents = {
@@ -53055,7 +53055,7 @@ const GovernorEvents = {
53055
53055
 
53056
53056
  class GovernorClient extends BaseEvernodeClient {
53057
53057
  constructor(options = {}) {
53058
- super((options.governorAddress || DefaultValues.governorAddress), null, Object.values(GovernorEvents), false, options);
53058
+ super((options.governorAddress || Defaults.values.governorAddress), null, Object.values(GovernorEvents), false, options);
53059
53059
  }
53060
53060
  }
53061
53061
 
@@ -54355,16 +54355,22 @@ module.exports = {
54355
54355
  /***/ }),
54356
54356
 
54357
54357
  /***/ 8262:
54358
- /***/ ((module) => {
54358
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
54359
+
54360
+ const DefinitionsPath = './resources/definitions.json';
54361
+
54362
+ const Definitions = __nccwpck_require__(4626);
54359
54363
 
54360
54364
  const DefaultValues = {
54361
- governorAddress: 'rGVHr1PrfL93UAjyw3DWZoi9adz2sLp2yL',
54362
- rippledServer: 'wss://hooks-testnet-v3.xrpl-labs.com',
54363
54365
  xrplApi: null,
54364
- stateIndexId: 'evernodeindex',
54365
- networkID: 21338
54366
54366
  }
54367
54367
 
54368
+ const RequiredInfoKeys = [
54369
+ "governorAddress",
54370
+ "stateIndexId",
54371
+ "networkID"
54372
+ ]
54373
+
54368
54374
  const HookTypes = {
54369
54375
  governor: 'GOVERNOR',
54370
54376
  registry: 'REGISTRY',
@@ -54372,6 +54378,17 @@ const HookTypes = {
54372
54378
  }
54373
54379
 
54374
54380
  class Defaults {
54381
+ /**
54382
+ * Load defaults from the public definitions json.
54383
+ * @param {string} network Network to choose the info.
54384
+ */
54385
+ static useNetwork(network) {
54386
+ if (!Definitions[network])
54387
+ throw 'Invalid network';
54388
+
54389
+ this.set(Definitions[network]);
54390
+ }
54391
+
54375
54392
  /**
54376
54393
  * Override Evernode default configs.
54377
54394
  * @param {object} newDefaults Configurations to override `{ governorAddress: '{string} governor xrpl address', rippledServer: '{string} rippled server url', xrplApi: '{XrplApi} xrpl instance', stateIndexId: '{string} firestore index', networkID: '{number} rippled network id' }`
@@ -54384,13 +54401,18 @@ class Defaults {
54384
54401
  * Read Evernode default configs.
54385
54402
  * @returns The Object of Evernode configs
54386
54403
  */
54387
- static get() {
54404
+ static get values() {
54405
+ var notFound = RequiredInfoKeys.find(k => !DefaultValues[k]);
54406
+ if (notFound)
54407
+ throw `Value for ${notFound} is not set.`;
54408
+ else if (!DefaultValues.rippledServer && (!DefaultValues.fallbackRippledServers || !DefaultValues.fallbackRippledServers.length))
54409
+ throw 'Either rippledServer or fallbackRippledServers required.';
54410
+
54388
54411
  return { ...DefaultValues };
54389
54412
  }
54390
54413
  }
54391
54414
 
54392
54415
  module.exports = {
54393
- DefaultValues,
54394
54416
  Defaults,
54395
54417
  HookTypes
54396
54418
  }
@@ -55075,7 +55097,7 @@ module.exports = {
55075
55097
  /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
55076
55098
 
55077
55099
  const https = __nccwpck_require__(5687);
55078
- const { DefaultValues } = __nccwpck_require__(8262);
55100
+ const { Defaults } = __nccwpck_require__(8262);
55079
55101
 
55080
55102
  const FirestoreOperations = {
55081
55103
  EQUAL: 'EQUAL',
@@ -55087,8 +55109,8 @@ class FirestoreHandler {
55087
55109
  #collectionPrefix = null;
55088
55110
 
55089
55111
  constructor(options = {}) {
55090
- this.#projectId = options.stateIndexId || DefaultValues.stateIndexId;
55091
- this.#collectionPrefix = options.collectionPrefix || DefaultValues.governorAddress;
55112
+ this.#projectId = options.stateIndexId || Defaults.values.stateIndexId;
55113
+ this.#collectionPrefix = options.collectionPrefix || Defaults.values.governorAddress;
55092
55114
  }
55093
55115
 
55094
55116
  /**
@@ -56450,7 +56472,7 @@ const crypto = __nccwpck_require__(6113);
56450
56472
  const { XrplConstants, XrplTransactionTypes } = __nccwpck_require__(3307);
56451
56473
  const { TransactionHelper } = __nccwpck_require__(7071);
56452
56474
  const { EventEmitter } = __nccwpck_require__(6170);
56453
- const { DefaultValues } = __nccwpck_require__(8262);
56475
+ const { Defaults } = __nccwpck_require__(8262);
56454
56476
 
56455
56477
  class XrplAccount {
56456
56478
 
@@ -56464,7 +56486,7 @@ class XrplAccount {
56464
56486
 
56465
56487
  this.address = address;
56466
56488
  this.secret = secret;
56467
- this.xrplApi = options.xrplApi || DefaultValues.xrplApi;
56489
+ this.xrplApi = options.xrplApi || Defaults.values.xrplApi;
56468
56490
 
56469
56491
  if (!this.xrplApi)
56470
56492
  throw "XrplAccount: xrplApi not specified.";
@@ -57186,7 +57208,7 @@ class XrplAccount {
57186
57208
  Sequence: options.sequence || await this.getSequence(),
57187
57209
  SigningPubKey: '', // This field is required for fee calculation.
57188
57210
  Fee: '0', // This field is required for fee calculation.
57189
- NetworkID: DefaultValues.networkID
57211
+ NetworkID: Defaults.values.networkID
57190
57212
  }
57191
57213
 
57192
57214
  Object.assign(tx, txOptions);
@@ -57244,11 +57266,11 @@ module.exports = {
57244
57266
  const xrpl = __nccwpck_require__(4666);
57245
57267
  const kp = __nccwpck_require__(8150);
57246
57268
  const { EventEmitter } = __nccwpck_require__(6170);
57247
- const { DefaultValues } = __nccwpck_require__(8262);
57269
+ const { Defaults } = __nccwpck_require__(8262);
57248
57270
  const { TransactionHelper } = __nccwpck_require__(7071);
57249
57271
  const { XrplApiEvents } = __nccwpck_require__(3307);
57250
57272
  const { XrplAccount } = __nccwpck_require__(9329);
57251
- const {XrplHelpers} = __nccwpck_require__(3189)
57273
+ const { XrplHelpers } = __nccwpck_require__(3189)
57252
57274
 
57253
57275
  const MAX_PAGE_LIMIT = 400;
57254
57276
  const API_REQ_TYPE = {
@@ -57264,29 +57286,58 @@ const LEDGER_CLOSE_TIME = 1000
57264
57286
 
57265
57287
  class XrplApi {
57266
57288
 
57267
- #rippledServer;
57289
+ #primaryServer;
57290
+ #fallbackServers;
57268
57291
  #client;
57269
57292
  #events = new EventEmitter();
57270
57293
  #addressSubscriptions = [];
57271
57294
  #initialConnectCalled = false;
57272
57295
  #isPermanentlyDisconnected = false;
57296
+ #isClientLocked = false;
57297
+ #isPrimaryServerConnected = false;
57298
+ #isFallbackServerConnected = false;
57299
+ #isAttemptingConnection = false;
57300
+ #xrplClientOptions;
57273
57301
  #autoReconnect;
57274
57302
 
57275
- constructor(rippledServer = null, options = {}) {
57276
- this.#rippledServer = rippledServer || DefaultValues.rippledServer;
57277
- this.#initXrplClient(options.xrplClientOptions);
57303
+ constructor(rippledServer = '-', options = {}) {
57304
+ if (rippledServer == '-') {
57305
+ this.#primaryServer = null;
57306
+ } else {
57307
+ this.#primaryServer = rippledServer || Defaults.values.rippledServer;
57308
+ }
57309
+ this.#fallbackServers = options.fallbackRippledServers || Defaults.values.fallbackRippledServers || [];
57310
+
57311
+ if (!this.#primaryServer && (!this.#fallbackServers || !this.#fallbackServers.length))
57312
+ throw 'Either primaryServer or fallbackServers required.';
57313
+
57314
+ this.#xrplClientOptions = options.xrplClientOptions;
57315
+ const initServer = this.#primaryServer || this.#fallbackServers[0];
57316
+ const client = new xrpl.Client(initServer, this.#xrplClientOptions);
57317
+ this.#initXrplClient(client);
57278
57318
  this.#autoReconnect = options.autoReconnect ?? true;
57279
57319
  }
57280
57320
 
57281
- async #initXrplClient(xrplClientOptions = {}) {
57282
- if (this.#client) { // If the client already exists, clean it up.
57321
+ async #setClient(client, removeCurrentClient = false) {
57322
+ while (this.#isClientLocked) {
57323
+ await new Promise((resolve) => setTimeout(resolve, 100));
57324
+ }
57325
+ if (removeCurrentClient) {
57326
+ this.#isClientLocked = true;
57283
57327
  this.#client.removeAllListeners(); // Remove existing event listeners to avoid them getting called from the old client object.
57284
57328
  await this.#client.disconnect();
57285
- this.#client = null;
57329
+ this.#isClientLocked = false;
57330
+ }
57331
+ this.#client = client;
57332
+ }
57333
+
57334
+ async #initXrplClient(client) {
57335
+ if (this.#client) { // If the client already exists, clean it up.
57336
+ await this.#setClient(null, true);
57286
57337
  }
57287
57338
 
57288
57339
  try {
57289
- this.#client = new xrpl.Client(this.#rippledServer, xrplClientOptions);
57340
+ await this.#setClient(client);
57290
57341
  }
57291
57342
  catch (e) {
57292
57343
  console.log("Error occurred in Client initiation:", e)
@@ -57298,10 +57349,10 @@ class XrplApi {
57298
57349
 
57299
57350
  this.#client.on('disconnected', (code) => {
57300
57351
  if (this.#autoReconnect && !this.#isPermanentlyDisconnected) {
57301
- console.log(`Connection failure for ${this.#rippledServer} (code:${code})`);
57352
+ console.log(`Connection failure for ${this.#client.url} (code:${code})`);
57302
57353
  console.log("Re-initializing xrpl client.");
57303
57354
  try {
57304
- this.#initXrplClient().then(() => this.#connectXrplClient(true));
57355
+ this.#initXrplClient(this.#client).then(() => this.#connectXrplClient(true));
57305
57356
  }
57306
57357
  catch (e) {
57307
57358
  console.log("Error occurred while re-initializing", e)
@@ -57359,40 +57410,113 @@ class XrplApi {
57359
57410
  });
57360
57411
  }
57361
57412
 
57362
- async #connectXrplClient(reconnect = false) {
57413
+ async #attemptFallbackServerReconnect(maxRounds, attemptsPerServer = 3) {
57414
+ const fallbackServers = this.#fallbackServers;
57415
+ let round = 0;
57416
+ while (fallbackServers?.length > 0 && !this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected && !this.#isFallbackServerConnected && (!maxRounds || round < maxRounds)) { // Keep attempting until consumer calls disconnect() manually or if the primary server is disconnected.
57417
+ ++round;
57418
+ serverIterator:
57419
+ for (let serverIndex in fallbackServers) {
57420
+ const server = fallbackServers[serverIndex];
57421
+ for (let attempt = 0; attempt < attemptsPerServer;) {
57422
+ if (this.#isPrimaryServerConnected || this.#isPermanentlyDisconnected) {
57423
+ break serverIterator;
57424
+ }
57425
+ console.log(`Fallback server ${server} reconnection attempt ${++attempt}`);
57426
+ try {
57427
+ while (this.#isAttemptingConnection) {
57428
+ await new Promise((resolve) => setTimeout(resolve, 100));
57429
+ }
57430
+ this.#isAttemptingConnection = true;
57431
+ const client = new xrpl.Client(server, this.#xrplClientOptions);
57432
+ if (!this.#isPrimaryServerConnected) {
57433
+ await this.#handleClientConnect(client);
57434
+ await this.#initXrplClient(client);
57435
+ this.#isFallbackServerConnected = true;
57436
+ console.log(`Successfully connected to the fallback server ${server}`)
57437
+ }
57438
+ this.#isAttemptingConnection = false;
57439
+ break serverIterator;
57440
+ }
57441
+ catch (e) {
57442
+ console.log(`Error occurred while connecting to fallback server ${server}`, e)
57443
+ this.#isAttemptingConnection = false;
57444
+ if (!this.#isPermanentlyDisconnected) {
57445
+ if (!maxRounds || round < maxRounds)
57446
+ console.log(`Fallback server ${server} connection attempt ${attempt} failed. Retrying in ${2 * round}s...`);
57447
+ else
57448
+ console.log(`Fallback server ${server} connection attempt failed.`);
57449
+ await new Promise(resolve => setTimeout(resolve, 2 * round * 1000));
57450
+ }
57451
+ }
57452
+ }
57453
+ }
57363
57454
 
57364
- if (reconnect) {
57365
- let attempts = 0;
57366
- while (!this.#isPermanentlyDisconnected) { // Keep attempting until consumer calls disconnect() manually.
57367
- console.log(`Reconnection attempt ${++attempts}`);
57368
- try {
57369
- await this.#client.connect();
57370
- break;
57455
+ }
57456
+ }
57457
+
57458
+ async #attemptPrimaryServerReconnect() {
57459
+ let attempt = 0;
57460
+ while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected) { // Keep attempting until consumer calls disconnect() manually.
57461
+ console.log(`Primary server reconnection attempt ${++attempt}`);
57462
+ try {
57463
+ const client = new xrpl.Client(this.#primaryServer, this.#xrplClientOptions);
57464
+ while (this.#isAttemptingConnection) {
57465
+ await new Promise((resolve) => setTimeout(resolve, 100));
57371
57466
  }
57372
- catch (e) {
57373
- console.log("Error occurred while re-connecting", e)
57374
- if (!this.#isPermanentlyDisconnected) {
57375
- const delaySec = 2 * attempts; // Retry with backoff delay.
57376
- console.log(`Attempt ${attempts} failed. Retrying in ${delaySec}s...`);
57377
- await new Promise(resolve => setTimeout(resolve, delaySec * 1000));
57378
- }
57467
+ this.#isAttemptingConnection = true;
57468
+ await this.#handleClientConnect(client);
57469
+ await this.#initXrplClient(client);
57470
+ this.#isFallbackServerConnected = false;
57471
+ this.#isPrimaryServerConnected = true;
57472
+ console.log("Successfully connected to the primary server");
57473
+ this.#isAttemptingConnection = false;
57474
+ break;
57475
+ }
57476
+ catch (e) {
57477
+ console.log("Error occurred while re-connecting to the primary server", e)
57478
+ this.#isAttemptingConnection = false;
57479
+ if (!this.#isPermanentlyDisconnected) {
57480
+ const delaySec = 2 * attempt; // Retry with backoff delay.
57481
+ console.log(`Attempt ${attempt} failed. Retrying in ${delaySec}s...`);
57482
+ await new Promise(resolve => setTimeout(resolve, delaySec * 1000));
57379
57483
  }
57380
57484
  }
57381
57485
  }
57486
+ }
57487
+
57488
+ async #connectXrplClient(reconnect = false) {
57489
+ if (reconnect) {
57490
+ if (this.#primaryServer) {
57491
+ Promise.all([this.#attemptFallbackServerReconnect(), this.#attemptPrimaryServerReconnect()]);
57492
+ } else {
57493
+ this.#attemptFallbackServerReconnect();
57494
+ }
57495
+ await this.#waitForReconnection();
57496
+ }
57382
57497
  else {
57383
57498
  // Single attempt and throw error. Used for initial connect() call.
57384
- await this.#client.connect();
57499
+ try {
57500
+ await this.#handleClientConnect();
57501
+ this.#isPrimaryServerConnected = true;
57502
+ } catch {
57503
+ await this.#attemptFallbackServerReconnect(1, 1);
57504
+ if (this.#isFallbackServerConnected)
57505
+ await this.#attemptPrimaryServerReconnect();
57506
+ }
57385
57507
  }
57386
57508
 
57387
57509
  // After connection established, check again whether maintainConnections has become false.
57388
57510
  // This is in case the consumer has called disconnect() while connection is being established.
57389
57511
  if (!this.#isPermanentlyDisconnected) {
57512
+ this.#isClientLocked = true;
57390
57513
  this.ledgerIndex = await this.#client.getLedgerIndex();
57514
+ this.#isClientLocked = false;
57391
57515
  this.#subscribeToStream('ledger');
57392
57516
 
57393
57517
  // Re-subscribe to existing account address subscriptions (in case this is a reconnect)
57394
57518
  if (this.#addressSubscriptions.length > 0)
57395
- await this.#client.request({ command: 'subscribe', accounts: this.#addressSubscriptions.map(s => s.address) });
57519
+ await this.#handleClientRequest({ command: 'subscribe', accounts: this.#addressSubscriptions.map(s => s.address) });
57396
57520
  }
57397
57521
  else {
57398
57522
  await this.disconnect();
@@ -57412,7 +57536,7 @@ class XrplApi {
57412
57536
  requestObj.marker = resp?.result?.marker;
57413
57537
  else
57414
57538
  delete requestObj.marker;
57415
- resp = (await this.#client.request(requestObj));
57539
+ resp = (await this.#handleClientRequest(requestObj));
57416
57540
  if (resp?.result && resp?.result[requestType])
57417
57541
  res.push(...resp.result[requestType]);
57418
57542
  if (count)
@@ -57422,6 +57546,23 @@ class XrplApi {
57422
57546
  return res;
57423
57547
  }
57424
57548
 
57549
+ async #handleClientRequest(request = {}) {
57550
+ while (this.#isAttemptingConnection) {
57551
+ await new Promise((resolve) => setTimeout(resolve, 100));
57552
+ }
57553
+ this.#isClientLocked = true;
57554
+ const response = await this.#client.request(request);
57555
+
57556
+ this.#isClientLocked = false;
57557
+ return response;
57558
+ }
57559
+
57560
+ async #handleClientConnect(client = this.#client) {
57561
+ this.#isClientLocked = true;
57562
+ await client.connect();
57563
+ this.#isClientLocked = false;
57564
+ }
57565
+
57425
57566
  on(event, handler) {
57426
57567
  this.#events.on(event, handler);
57427
57568
  }
@@ -57434,23 +57575,34 @@ class XrplApi {
57434
57575
  this.#events.off(event, handler);
57435
57576
  }
57436
57577
 
57578
+ async #waitForReconnection() {
57579
+ while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected)) {
57580
+ await new Promise(resolve => setTimeout(resolve, 100));
57581
+ }
57582
+ return true;
57583
+ }
57584
+
57437
57585
  async connect() {
57438
57586
  if (this.#initialConnectCalled) {
57439
57587
  return
57440
57588
  }
57441
- this.#initialConnectCalled = true
57442
- this.#isPermanentlyDisconnected = false
57589
+ this.#initialConnectCalled = true;
57590
+ this.#isPermanentlyDisconnected = false;
57443
57591
  await this.#connectXrplClient();
57444
- const definitions = await this.#client.request({ command: 'server_definitions' })
57592
+ const definitions = await this.#handleClientRequest({ command: 'server_definitions' })
57445
57593
  this.xrplHelper = new XrplHelpers(definitions.result);
57446
57594
  }
57447
57595
 
57448
57596
  async disconnect() {
57449
57597
  this.#initialConnectCalled = false;
57450
- this.#isPermanentlyDisconnected = true
57598
+ this.#isPermanentlyDisconnected = true;
57451
57599
 
57452
57600
  if (this.#client.isConnected()) {
57601
+ this.#isClientLocked = true;
57453
57602
  await this.#client.disconnect().catch(console.error);
57603
+ this.#isClientLocked = false;
57604
+ this.#isPrimaryServerConnected = false;
57605
+ this.#isFallbackServerConnected = false;
57454
57606
  }
57455
57607
  }
57456
57608
 
@@ -57470,7 +57622,7 @@ class XrplApi {
57470
57622
 
57471
57623
  async isAccountExists(address) {
57472
57624
  try {
57473
- await this.#client.request({ command: 'account_info', account: address });
57625
+ await this.#handleClientRequest({ command: 'account_info', account: address });
57474
57626
  return true;
57475
57627
  }
57476
57628
  catch (e) {
@@ -57480,12 +57632,12 @@ class XrplApi {
57480
57632
  }
57481
57633
 
57482
57634
  async getAccountInfo(address) {
57483
- const resp = (await this.#client.request({ command: 'account_info', account: address }));
57635
+ const resp = (await this.#handleClientRequest({ command: 'account_info', account: address }));
57484
57636
  return resp?.result?.account_data;
57485
57637
  }
57486
57638
 
57487
57639
  async getServerDefinition() {
57488
- const resp = (await this.#client.request({ command: 'server_definitions' }));
57640
+ const resp = (await this.#handleClientRequest({ command: 'server_definitions' }));
57489
57641
  return resp?.result;
57490
57642
  }
57491
57643
 
@@ -57529,7 +57681,7 @@ class XrplApi {
57529
57681
 
57530
57682
  async getLedgerEntry(index, options) {
57531
57683
  try {
57532
- const resp = (await this.#client.request({ command: 'ledger_entry', index: index, ledger_index: "validated", ...options }));
57684
+ const resp = (await this.#handleClientRequest({ command: 'ledger_entry', index: index, ledger_index: "validated", ...options }));
57533
57685
  return resp?.result?.node;
57534
57686
 
57535
57687
  } catch (e) {
@@ -57540,13 +57692,13 @@ class XrplApi {
57540
57692
  }
57541
57693
 
57542
57694
  async getTxnInfo(txnHash, options) {
57543
- const resp = (await this.#client.request({ command: 'tx', transaction: txnHash, binary: false, ...options }));
57695
+ const resp = (await this.#handleClientRequest({ command: 'tx', transaction: txnHash, binary: false, ...options }));
57544
57696
  return resp?.result;
57545
57697
  }
57546
57698
 
57547
57699
  async subscribeToAddress(address, handler) {
57548
57700
  this.#addressSubscriptions.push({ address: address, handler: handler });
57549
- await this.#client.request({ command: 'subscribe', accounts: [address] });
57701
+ await this.#handleClientRequest({ command: 'subscribe', accounts: [address] });
57550
57702
  }
57551
57703
 
57552
57704
  async unsubscribeFromAddress(address, handler) {
@@ -57555,16 +57707,16 @@ class XrplApi {
57555
57707
  if (sub.address === address && sub.handler === handler)
57556
57708
  this.#addressSubscriptions.splice(i, 1);
57557
57709
  }
57558
- await this.#client.request({ command: 'unsubscribe', accounts: [address] });
57710
+ await this.#handleClientRequest({ command: 'unsubscribe', accounts: [address] });
57559
57711
  }
57560
57712
 
57561
57713
  async getTransactionFee(txBlob) {
57562
- const fees = await this.#client.request({ command: 'fee', tx_blob: txBlob });
57714
+ const fees = await this.#handleClientRequest({ command: 'fee', tx_blob: txBlob });
57563
57715
  return fees?.result?.drops?.base_fee;
57564
57716
  }
57565
57717
 
57566
57718
  async #subscribeToStream(streamName) {
57567
- await this.#client.request({ command: 'subscribe', streams: [streamName] });
57719
+ await this.#handleClientRequest({ command: 'subscribe', streams: [streamName] });
57568
57720
  }
57569
57721
 
57570
57722
  /**
@@ -57580,7 +57732,9 @@ class XrplApi {
57580
57732
 
57581
57733
  await new Promise(r => setTimeout(r, LEDGER_CLOSE_TIME));
57582
57734
 
57735
+ this.#isClientLocked = true;
57583
57736
  const latestLedger = await this.#client.getLedgerIndex();
57737
+ this.#isClientLocked = false;
57584
57738
 
57585
57739
  if (lastLedger < latestLedger) {
57586
57740
  throw `The latest ledger sequence ${latestLedger} is greater than the transaction's LastLedgerSequence (${lastLedger}).\n` +
@@ -57647,7 +57801,7 @@ class XrplApi {
57647
57801
  */
57648
57802
  async submitMultisignedAndWait(tx) {
57649
57803
  tx.SigningPubKey = "";
57650
- const submissionResult = await this.#client.request({ command: 'submit_multisigned', tx_json: tx });
57804
+ const submissionResult = await this.#handleClientRequest({ command: 'submit_multisigned', tx_json: tx });
57651
57805
  return await this.#prepareResponse(tx, submissionResult);
57652
57806
  }
57653
57807
 
@@ -57658,7 +57812,7 @@ class XrplApi {
57658
57812
  */
57659
57813
  async submitMultisigned(tx) {
57660
57814
  tx.SigningPubKey = "";
57661
- return await this.#client.request({ command: 'submit_multisigned', tx_json: tx });
57815
+ return await this.#handleClientRequest({ command: 'submit_multisigned', tx_json: tx });
57662
57816
  }
57663
57817
 
57664
57818
  /**
@@ -57667,7 +57821,7 @@ class XrplApi {
57667
57821
  * @returns response object of the validated transaction.
57668
57822
  */
57669
57823
  async submitAndWait(tx, tx_blob) {
57670
- const submissionResult = await this.#client.request({ command: 'submit', tx_blob: tx_blob });
57824
+ const submissionResult = await this.#handleClientRequest({ command: 'submit', tx_blob: tx_blob });
57671
57825
  return await this.#prepareResponse(tx, submissionResult);
57672
57826
  }
57673
57827
 
@@ -57677,7 +57831,7 @@ class XrplApi {
57677
57831
  * @returns response object of the submitted transaction.
57678
57832
  */
57679
57833
  async submit(tx_blob) {
57680
- return await this.#client.request({ command: 'submit', tx_blob: tx_blob });
57834
+ return await this.#handleClientRequest({ command: 'submit', tx_blob: tx_blob });
57681
57835
  }
57682
57836
 
57683
57837
  /**
@@ -57777,6 +57931,14 @@ module.exports = {
57777
57931
  XrplHelpers
57778
57932
  }
57779
57933
 
57934
+ /***/ }),
57935
+
57936
+ /***/ 4626:
57937
+ /***/ ((module) => {
57938
+
57939
+ module.exports = eval("require")("./resources/definitions.json");
57940
+
57941
+
57780
57942
  /***/ }),
57781
57943
 
57782
57944
  /***/ 9491:
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  ],
7
7
  "homepage": "https://github.com/HotPocketDev/evernode-js-client",
8
8
  "license": "MIT",
9
- "version": "0.6.20",
9
+ "version": "0.6.21-definition-1.01",
10
10
  "dependencies": {
11
11
  "elliptic": "6.5.4",
12
12
  "libsodium-wrappers": "0.7.10",
@@ -15,5 +15,8 @@
15
15
  "xrpl": "2.2.1",
16
16
  "xrpl-binary-codec": "1.4.2",
17
17
  "xrpl-accountlib": "2.2.0"
18
+ },
19
+ "scripts": {
20
+ "postinstall": "node postinstall.js external"
18
21
  }
19
22
  }
@@ -0,0 +1 @@
1
+ (()=>{var e={147:e=>{"use strict";e.exports=require("fs")},687:e=>{"use strict";e.exports=require("https")},17:e=>{"use strict";e.exports=require("path")}};var r={};function __nccwpck_require__(t){var s=r[t];if(s!==undefined){return s.exports}var o=r[t]={exports:{}};var n=true;try{e[t](o,o.exports,__nccwpck_require__);n=false}finally{if(n)delete r[t]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t={};(()=>{const e=__nccwpck_require__(147);const r=__nccwpck_require__(17);const t=__nccwpck_require__(687);const s="https://raw.githubusercontent.com/chalith/test-repository/main/definitions.json";const o="./resources/definitions.json";async function main(){t.get(s,(t=>{let s=[];console.log("Server info response:");const n=t.headers&&t.headers.date?t.headers.date:"no response date";console.log(" Status Code:",t.statusCode);console.log(" Date in header:",n);t.on("data",(e=>{s.push(e)}));t.on("end",(()=>{console.log(" Response ended: ");const t=r.dirname(o);if(!e.existsSync(t))e.mkdirSync(t,{recursive:true});e.writeFileSync(o,Buffer.concat(s).toString())}))})).on("error",(e=>{throw`Error: ${e.message}`}))}main()})();module.exports=t})();
Binary file
Binary file