evernode-js-client 0.6.49 → 0.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +42 -40
- package/package.json +1 -1
package/index.js
CHANGED
@@ -65484,7 +65484,6 @@ const { TransactionHelper } = __nccwpck_require__(7071);
|
|
65484
65484
|
const { XrplApiEvents } = __nccwpck_require__(3307);
|
65485
65485
|
const { XrplAccount } = __nccwpck_require__(9329);
|
65486
65486
|
const { XrplHelpers } = __nccwpck_require__(3189);
|
65487
|
-
const { UtilHelpers } = __nccwpck_require__(6687);
|
65488
65487
|
|
65489
65488
|
const MAX_PAGE_LIMIT = 400;
|
65490
65489
|
const API_REQ_TYPE = {
|
@@ -65535,7 +65534,7 @@ class XrplApi {
|
|
65535
65534
|
}
|
65536
65535
|
|
65537
65536
|
async #acquireClient() {
|
65538
|
-
while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected) && this.#isClientAcquired
|
65537
|
+
while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected) && this.#isClientAcquired) {
|
65539
65538
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
65540
65539
|
}
|
65541
65540
|
this.#isClientAcquired = true;
|
@@ -65546,7 +65545,7 @@ class XrplApi {
|
|
65546
65545
|
}
|
65547
65546
|
|
65548
65547
|
async #acquireConnection() {
|
65549
|
-
while (this.#
|
65548
|
+
while (this.#isConnectionAcquired) {
|
65550
65549
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
65551
65550
|
}
|
65552
65551
|
this.#isConnectionAcquired = true;
|
@@ -65581,8 +65580,6 @@ class XrplApi {
|
|
65581
65580
|
|
65582
65581
|
if (!FUNCTIONING_SERVER_STATES.includes(serverState))
|
65583
65582
|
throw "Client might have functioning issues."
|
65584
|
-
|
65585
|
-
await this.#setXrplClient(client);
|
65586
65583
|
}
|
65587
65584
|
|
65588
65585
|
async #initEventListeners(client) {
|
@@ -65597,6 +65594,10 @@ class XrplApi {
|
|
65597
65594
|
console.log(errorCode + ': ' + errorMessage);
|
65598
65595
|
});
|
65599
65596
|
|
65597
|
+
client.on('connected', async () => {
|
65598
|
+
await this.#setXrplClient(client)
|
65599
|
+
});
|
65600
|
+
|
65600
65601
|
client.on('disconnected', async (code) => {
|
65601
65602
|
this.#events.emit(XrplApiEvents.DISCONNECTED, code);
|
65602
65603
|
|
@@ -65698,50 +65699,51 @@ class XrplApi {
|
|
65698
65699
|
});
|
65699
65700
|
}
|
65700
65701
|
|
65701
|
-
async #attemptFallbackServerReconnect(
|
65702
|
+
async #attemptFallbackServerReconnect(maxRounds, attemptsPerServer = 3) {
|
65702
65703
|
if (!this.#fallbackServers || this.#fallbackServers?.length == 0)
|
65703
65704
|
return;
|
65704
65705
|
|
65705
65706
|
await this.#acquireClient();
|
65706
65707
|
|
65707
|
-
|
65708
|
-
let
|
65709
|
-
|
65710
|
-
|
65711
|
-
|
65712
|
-
for (
|
65713
|
-
const
|
65714
|
-
|
65715
|
-
if (
|
65716
|
-
|
65717
|
-
this.#isFallbackServerConnected = true;
|
65708
|
+
const fallbackServers = this.#fallbackServers;
|
65709
|
+
let round = 0;
|
65710
|
+
while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected && !this.#isFallbackServerConnected && (!maxRounds || round < maxRounds)) { // Keep attempting until consumer calls disconnect() manually or if the primary server is disconnected.
|
65711
|
+
++round;
|
65712
|
+
serverIterator:
|
65713
|
+
for (let serverIndex in fallbackServers) {
|
65714
|
+
const server = fallbackServers[serverIndex];
|
65715
|
+
for (let attempt = 0; attempt < attemptsPerServer;) {
|
65716
|
+
if (this.#isPrimaryServerConnected || this.#isPermanentlyDisconnected) {
|
65717
|
+
break serverIterator;
|
65718
65718
|
}
|
65719
|
-
|
65720
|
-
|
65721
|
-
|
65722
|
-
|
65723
|
-
|
65724
|
-
|
65725
|
-
|
65726
|
-
|
65727
|
-
await client.disconnect();
|
65719
|
+
++attempt;
|
65720
|
+
const client = new xrpl.Client(server, this.#xrplClientOptions);
|
65721
|
+
try {
|
65722
|
+
if (!this.#isPrimaryServerConnected) {
|
65723
|
+
await this.#handleClientConnect(client);
|
65724
|
+
this.#isFallbackServerConnected = true;
|
65725
|
+
}
|
65726
|
+
break serverIterator;
|
65728
65727
|
}
|
65729
|
-
|
65730
|
-
|
65731
|
-
|
65732
|
-
|
65733
|
-
|
65734
|
-
|
65735
|
-
|
65728
|
+
catch (e) {
|
65729
|
+
this.#releaseClient();
|
65730
|
+
console.log(`Error occurred while connecting to fallback server ${server}`);
|
65731
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
65732
|
+
if (client.isConnected()) {
|
65733
|
+
console.log('Connection closure already handled');
|
65734
|
+
await client.disconnect();
|
65736
65735
|
}
|
65737
65736
|
|
65738
|
-
|
65737
|
+
if (!this.#isPermanentlyDisconnected) {
|
65738
|
+
if (!maxRounds || round < maxRounds)
|
65739
|
+
console.log(`Fallback server ${server} connection attempt ${attempt} failed. Retrying in ${2 * round}s...`);
|
65740
|
+
else
|
65741
|
+
return { error: `Fallback server ${server} connection max attempts failed.`, exception: e };
|
65742
|
+
await new Promise(resolve => setTimeout(resolve, 2 * round * 1000));
|
65743
|
+
}
|
65739
65744
|
}
|
65740
65745
|
}
|
65741
65746
|
}
|
65742
|
-
|
65743
|
-
if (maxAttempts && attempt >= maxAttempts)
|
65744
|
-
return { error: Object.values(errors) };
|
65745
65747
|
}
|
65746
65748
|
|
65747
65749
|
return {};
|
@@ -65793,9 +65795,9 @@ class XrplApi {
|
|
65793
65795
|
}
|
65794
65796
|
else {
|
65795
65797
|
if (this.#primaryServer) {
|
65796
|
-
res = await Promise.all([this.#attemptPrimaryServerReconnect(1), this.#attemptFallbackServerReconnect(1)]);
|
65798
|
+
res = await Promise.all([this.#attemptPrimaryServerReconnect(1), this.#attemptFallbackServerReconnect(1, 1)]);
|
65797
65799
|
} else {
|
65798
|
-
res = [await this.#attemptFallbackServerReconnect(1)];
|
65800
|
+
res = [await this.#attemptFallbackServerReconnect(1, 1)];
|
65799
65801
|
}
|
65800
65802
|
}
|
65801
65803
|
|
@@ -65925,7 +65927,7 @@ class XrplApi {
|
|
65925
65927
|
const info = await this.getAccountInfo(address);
|
65926
65928
|
const accountFlags = xrpl.parseAccountRootFlags(info.Flags);
|
65927
65929
|
const regularKey = info.RegularKey;
|
65928
|
-
const derivedPubKeyAddress =
|
65930
|
+
const derivedPubKeyAddress = kp.deriveAddress(publicKey);
|
65929
65931
|
|
65930
65932
|
// If the master key is disabled the derived pubkey address should be the regular key.
|
65931
65933
|
// Otherwise it could be account address or the regular key
|
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.
|
9
|
+
"version": "0.6.50",
|
10
10
|
"dependencies": {
|
11
11
|
"elliptic": "6.5.4",
|
12
12
|
"libsodium-wrappers": "0.7.10",
|