evernode-js-client 0.6.42 → 0.6.43
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.
Binary file
|
package/index.js
CHANGED
@@ -9189,7 +9189,7 @@ module.exports = { mask, unmask };
|
|
9189
9189
|
|
9190
9190
|
|
9191
9191
|
try {
|
9192
|
-
module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.
|
9192
|
+
module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi.node");
|
9193
9193
|
} catch (e) {
|
9194
9194
|
module.exports = __nccwpck_require__(2567);
|
9195
9195
|
}
|
@@ -38321,7 +38321,7 @@ module.exports = isValidUTF8;
|
|
38321
38321
|
|
38322
38322
|
|
38323
38323
|
try {
|
38324
|
-
module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.
|
38324
|
+
module.exports = require(__nccwpck_require__.ab + "prebuilds/linux-x64/node.napi1.node");
|
38325
38325
|
} catch (e) {
|
38326
38326
|
module.exports = __nccwpck_require__(9372);
|
38327
38327
|
}
|
@@ -60240,7 +60240,7 @@ class BaseEvernodeClient {
|
|
60240
60240
|
* Get the hosts registered in Evernode.
|
60241
60241
|
* @returns The list of hosts.
|
60242
60242
|
*/
|
60243
|
-
async getAllHostsFromLedger(
|
60243
|
+
async getAllHostsFromLedger(getDomain = true) {
|
60244
60244
|
const states = await this.getHookStates();
|
60245
60245
|
let hosts = {};
|
60246
60246
|
|
@@ -60260,7 +60260,7 @@ class BaseEvernodeClient {
|
|
60260
60260
|
const curMomentStartIdx = await this.getMomentStartIndex();
|
60261
60261
|
await Promise.all((hostList).map(async host => {
|
60262
60262
|
const hostAcc = new XrplAccount(host.address, null, { xrplApi: this.xrplApi });
|
60263
|
-
if (
|
60263
|
+
if (getDomain) {
|
60264
60264
|
host.domain = await hostAcc.getDomain();
|
60265
60265
|
}
|
60266
60266
|
host.active = (host.lastHeartbeatIndex > (this.config.hostHeartbeatFreq * this.config.momentSize) ?
|
@@ -65022,7 +65022,7 @@ class XrplApi {
|
|
65022
65022
|
}
|
65023
65023
|
|
65024
65024
|
async #acquireClient() {
|
65025
|
-
while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected) && this.#isClientAcquired) {
|
65025
|
+
while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected) && this.#isClientAcquired || this.#isConnectionAcquired) {
|
65026
65026
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
65027
65027
|
}
|
65028
65028
|
this.#isClientAcquired = true;
|
@@ -65033,7 +65033,7 @@ class XrplApi {
|
|
65033
65033
|
}
|
65034
65034
|
|
65035
65035
|
async #acquireConnection() {
|
65036
|
-
while (this.#
|
65036
|
+
while (this.#isClientAcquired) {
|
65037
65037
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
65038
65038
|
}
|
65039
65039
|
this.#isConnectionAcquired = true;
|
@@ -65068,6 +65068,8 @@ class XrplApi {
|
|
65068
65068
|
|
65069
65069
|
if (!FUNCTIONING_SERVER_STATES.includes(serverState))
|
65070
65070
|
throw "Client might have functioning issues."
|
65071
|
+
|
65072
|
+
await this.#setXrplClient(client);
|
65071
65073
|
}
|
65072
65074
|
|
65073
65075
|
async #initEventListeners(client) {
|
@@ -65082,10 +65084,6 @@ class XrplApi {
|
|
65082
65084
|
console.log(errorCode + ': ' + errorMessage);
|
65083
65085
|
});
|
65084
65086
|
|
65085
|
-
client.on('connected', async () => {
|
65086
|
-
await this.#setXrplClient(client)
|
65087
|
-
});
|
65088
|
-
|
65089
65087
|
client.on('disconnected', async (code) => {
|
65090
65088
|
this.#events.emit(XrplApiEvents.DISCONNECTED, code);
|
65091
65089
|
|
@@ -65182,51 +65180,50 @@ class XrplApi {
|
|
65182
65180
|
});
|
65183
65181
|
}
|
65184
65182
|
|
65185
|
-
async #attemptFallbackServerReconnect(
|
65183
|
+
async #attemptFallbackServerReconnect(maxAttempts = null) {
|
65186
65184
|
if (!this.#fallbackServers || this.#fallbackServers?.length == 0)
|
65187
65185
|
return;
|
65188
65186
|
|
65189
65187
|
await this.#acquireClient();
|
65190
65188
|
|
65191
|
-
|
65192
|
-
let
|
65193
|
-
|
65194
|
-
|
65195
|
-
|
65196
|
-
for (
|
65197
|
-
const
|
65198
|
-
|
65199
|
-
if (this.#isPrimaryServerConnected
|
65200
|
-
|
65189
|
+
let errors = {};
|
65190
|
+
let attempt = 0;
|
65191
|
+
retryIterator:
|
65192
|
+
while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected && !this.#isFallbackServerConnected) { // Keep attempting until consumer calls disconnect() manually or if the primary server is disconnected.
|
65193
|
+
++attempt;
|
65194
|
+
for (const server of this.#fallbackServers) {
|
65195
|
+
const client = new xrpl.Client(server, this.#xrplClientOptions);
|
65196
|
+
try {
|
65197
|
+
if (!this.#isPrimaryServerConnected) {
|
65198
|
+
await this.#handleClientConnect(client);
|
65199
|
+
this.#isFallbackServerConnected = true;
|
65201
65200
|
}
|
65202
|
-
|
65203
|
-
|
65204
|
-
|
65205
|
-
|
65206
|
-
|
65207
|
-
|
65208
|
-
|
65209
|
-
|
65201
|
+
break retryIterator;
|
65202
|
+
}
|
65203
|
+
catch (e) {
|
65204
|
+
this.#releaseClient();
|
65205
|
+
console.log(`Error occurred while connecting to fallback server ${server}`);
|
65206
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
65207
|
+
if (client.isConnected()) {
|
65208
|
+
console.log('Connection closure already handled');
|
65209
|
+
await client.disconnect();
|
65210
65210
|
}
|
65211
|
-
catch (e) {
|
65212
|
-
this.#releaseClient();
|
65213
|
-
console.log(`Error occurred while connecting to fallback server ${server}`);
|
65214
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
65215
|
-
if (client.isConnected()) {
|
65216
|
-
console.log('Connection closure already handled');
|
65217
|
-
await client.disconnect();
|
65218
|
-
}
|
65219
65211
|
|
65220
|
-
|
65221
|
-
|
65222
|
-
|
65223
|
-
|
65224
|
-
|
65225
|
-
|
65212
|
+
if (!this.#isPermanentlyDisconnected) {
|
65213
|
+
const delaySec = 2 * attempt; // Retry with backoff delay.
|
65214
|
+
if (!maxAttempts || attempt < maxAttempts)
|
65215
|
+
console.log(`Fallback server ${server} connection attempt ${attempt} failed. Retrying in ${delaySec}s...`);
|
65216
|
+
else {
|
65217
|
+
errors[server] = { error: `Fallback server ${server} connection max attempts failed.`, exception: e };
|
65226
65218
|
}
|
65219
|
+
|
65220
|
+
await new Promise(resolve => setTimeout(resolve, delaySec * 1000));
|
65227
65221
|
}
|
65228
65222
|
}
|
65229
65223
|
}
|
65224
|
+
|
65225
|
+
if (maxAttempts && attempt >= maxAttempts)
|
65226
|
+
return { error: Object.values(errors) };
|
65230
65227
|
}
|
65231
65228
|
|
65232
65229
|
return {};
|
@@ -65278,9 +65275,9 @@ class XrplApi {
|
|
65278
65275
|
}
|
65279
65276
|
else {
|
65280
65277
|
if (this.#primaryServer) {
|
65281
|
-
res = await Promise.all([this.#attemptPrimaryServerReconnect(1), this.#attemptFallbackServerReconnect(1
|
65278
|
+
res = await Promise.all([this.#attemptPrimaryServerReconnect(1), this.#attemptFallbackServerReconnect(1)]);
|
65282
65279
|
} else {
|
65283
|
-
res = [await this.#attemptFallbackServerReconnect(1
|
65280
|
+
res = [await this.#attemptFallbackServerReconnect(1)];
|
65284
65281
|
}
|
65285
65282
|
}
|
65286
65283
|
|
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.43",
|
10
10
|
"dependencies": {
|
11
11
|
"elliptic": "6.5.4",
|
12
12
|
"libsodium-wrappers": "0.7.10",
|
Binary file
|
Binary file
|