@xyo-network/chain-orchestration 1.17.7 → 1.18.0
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/dist/neutral/ChainInitializableParams.d.ts +2 -10
- package/dist/neutral/ChainInitializableParams.d.ts.map +1 -1
- package/dist/neutral/actor/Actor.d.ts +205 -2
- package/dist/neutral/actor/Actor.d.ts.map +1 -1
- package/dist/neutral/actor/ValidatorActor.d.ts +13 -10
- package/dist/neutral/actor/ValidatorActor.d.ts.map +1 -1
- package/dist/neutral/archivists/ChainFinalized/archivist.d.ts +1 -1
- package/dist/neutral/archivists/ChainFinalized/archivist.d.ts.map +1 -1
- package/dist/neutral/archivists/ChainFinalized/local.d.ts +2 -4
- package/dist/neutral/archivists/ChainFinalized/local.d.ts.map +1 -1
- package/dist/neutral/archivists/PendingBlocks/archivist.d.ts +1 -1
- package/dist/neutral/archivists/PendingBlocks/archivist.d.ts.map +1 -1
- package/dist/neutral/archivists/StakeIntentState/local.d.ts +2 -4
- package/dist/neutral/archivists/StakeIntentState/local.d.ts.map +1 -1
- package/dist/neutral/archivists/index.d.ts +0 -1
- package/dist/neutral/archivists/index.d.ts.map +1 -1
- package/dist/neutral/createDeclarationIntentBlock.d.ts.map +1 -1
- package/dist/neutral/health/initHealthEndpoints.d.ts +1 -2
- package/dist/neutral/health/initHealthEndpoints.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +0 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +156 -279
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/init/index.d.ts +1 -1
- package/dist/neutral/init/index.d.ts.map +1 -1
- package/dist/neutral/init/initChainStakeViewer.d.ts +5 -4
- package/dist/neutral/init/initChainStakeViewer.d.ts.map +1 -1
- package/dist/neutral/init/initFinalizedArchivist.d.ts +4 -0
- package/dist/neutral/init/initFinalizedArchivist.d.ts.map +1 -0
- package/dist/neutral/init/initServerNode.d.ts.map +1 -1
- package/dist/neutral/init/initStatusReporter.d.ts +1 -1
- package/dist/neutral/init/initStatusReporter.d.ts.map +1 -1
- package/package.json +10 -12
- package/src/ChainInitializableParams.ts +2 -11
- package/src/actor/Actor.ts +43 -6
- package/src/actor/BalanceActor.ts +1 -1
- package/src/actor/ValidatorActor.ts +30 -67
- package/src/archivists/ChainFinalized/archivist.ts +3 -3
- package/src/archivists/ChainFinalized/local.ts +2 -2
- package/src/archivists/PendingBlocks/archivist.ts +3 -3
- package/src/archivists/StakeIntentState/archivist.ts +3 -3
- package/src/archivists/StakeIntentState/local.ts +3 -2
- package/src/archivists/index.ts +0 -1
- package/src/createDeclarationIntentBlock.ts +2 -1
- package/src/health/initHealthEndpoints.ts +1 -3
- package/src/index.ts +0 -2
- package/src/init/index.ts +1 -1
- package/src/init/initChainStakeViewer.ts +29 -15
- package/src/init/initFinalizedArchivist.ts +16 -0
- package/src/init/initServerNode.ts +1 -0
- package/src/init/initStatusReporter.ts +1 -2
- package/dist/neutral/archivists/PendingTransactions/archivist.d.ts +0 -4
- package/dist/neutral/archivists/PendingTransactions/archivist.d.ts.map +0 -1
- package/dist/neutral/archivists/PendingTransactions/index.d.ts +0 -2
- package/dist/neutral/archivists/PendingTransactions/index.d.ts.map +0 -1
- package/dist/neutral/archivists/PendingTransactions/local.d.ts +0 -7
- package/dist/neutral/archivists/PendingTransactions/local.d.ts.map +0 -1
- package/dist/neutral/init/iterator.d.ts +0 -7
- package/dist/neutral/init/iterator.d.ts.map +0 -1
- package/dist/neutral/status/RuntimeStatusMonitor.d.ts +0 -31
- package/dist/neutral/status/RuntimeStatusMonitor.d.ts.map +0 -1
- package/dist/neutral/status/ServiceStatus.d.ts +0 -8
- package/dist/neutral/status/ServiceStatus.d.ts.map +0 -1
- package/dist/neutral/status/index.d.ts +0 -3
- package/dist/neutral/status/index.d.ts.map +0 -1
- package/src/archivists/PendingTransactions/archivist.ts +0 -21
- package/src/archivists/PendingTransactions/index.ts +0 -1
- package/src/archivists/PendingTransactions/local.ts +0 -18
- package/src/init/iterator.ts +0 -42
- package/src/status/RuntimeStatusMonitor.ts +0 -117
- package/src/status/ServiceStatus.ts +0 -20
- package/src/status/index.ts +0 -2
package/dist/neutral/index.mjs
CHANGED
|
@@ -2,7 +2,8 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/actor/Actor.ts
|
|
5
|
-
import { AbstractCreatable, Base, creatable, delay, IdLogger } from "@xylabs/sdk-js";
|
|
5
|
+
import { AbstractCreatable, assertEx, Base, creatable, delay, IdLogger } from "@xylabs/sdk-js";
|
|
6
|
+
import { getDefaultConfig, ProviderFactoryLocator } from "@xyo-network/xl1-protocol-sdk";
|
|
6
7
|
import { Semaphore } from "async-mutex";
|
|
7
8
|
function _ts_decorate(decorators, target, key, desc) {
|
|
8
9
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -25,6 +26,18 @@ var Actor = class extends AbstractCreatable {
|
|
|
25
26
|
get id() {
|
|
26
27
|
return this.params.id;
|
|
27
28
|
}
|
|
29
|
+
get account() {
|
|
30
|
+
return this.params.account;
|
|
31
|
+
}
|
|
32
|
+
get config() {
|
|
33
|
+
return this.context.config;
|
|
34
|
+
}
|
|
35
|
+
get context() {
|
|
36
|
+
return this.params.context;
|
|
37
|
+
}
|
|
38
|
+
get locator() {
|
|
39
|
+
return this.context.locator;
|
|
40
|
+
}
|
|
28
41
|
get logPrefix() {
|
|
29
42
|
return `[${this.displayName} (${this.id})] `;
|
|
30
43
|
}
|
|
@@ -32,11 +45,25 @@ var Actor = class extends AbstractCreatable {
|
|
|
32
45
|
const baseParams = await super.paramsHandler(params);
|
|
33
46
|
const id = params?.id ?? baseParams.name;
|
|
34
47
|
const displayName = params?.displayName ?? baseParams.name;
|
|
48
|
+
const account = assertEx(params?.account, () => `Account is required for actor ${id}.`);
|
|
49
|
+
const logger = baseParams.logger ?? new IdLogger(Base.defaultLogger ?? console, () => `[${displayName} (${id})] `);
|
|
50
|
+
const singletons = params?.context?.singletons ?? {};
|
|
51
|
+
const config = params?.context?.config ?? getDefaultConfig();
|
|
52
|
+
const context = params?.context ?? {
|
|
53
|
+
config,
|
|
54
|
+
locator: new ProviderFactoryLocator({
|
|
55
|
+
config,
|
|
56
|
+
logger,
|
|
57
|
+
singletons
|
|
58
|
+
})
|
|
59
|
+
};
|
|
35
60
|
return {
|
|
36
61
|
...baseParams,
|
|
62
|
+
account,
|
|
63
|
+
context,
|
|
37
64
|
displayName,
|
|
38
65
|
id,
|
|
39
|
-
logger
|
|
66
|
+
logger
|
|
40
67
|
};
|
|
41
68
|
}
|
|
42
69
|
/**
|
|
@@ -69,6 +96,7 @@ var Actor = class extends AbstractCreatable {
|
|
|
69
96
|
}
|
|
70
97
|
}).catch((error) => {
|
|
71
98
|
this.logger?.error(`Error in timer '${this.name}:${timerName}': ${error}`);
|
|
99
|
+
this.logger?.error(error.stack);
|
|
72
100
|
}).finally(() => {
|
|
73
101
|
release();
|
|
74
102
|
running = false;
|
|
@@ -124,7 +152,7 @@ Actor = _ts_decorate([
|
|
|
124
152
|
], Actor);
|
|
125
153
|
|
|
126
154
|
// src/actor/BalanceActor.ts
|
|
127
|
-
import { assertEx } from "@xylabs/sdk-js";
|
|
155
|
+
import { assertEx as assertEx2 } from "@xylabs/sdk-js";
|
|
128
156
|
import { Mutex } from "async-mutex";
|
|
129
157
|
var BalanceActor = class extends Actor {
|
|
130
158
|
static {
|
|
@@ -132,10 +160,10 @@ var BalanceActor = class extends Actor {
|
|
|
132
160
|
}
|
|
133
161
|
_updateMutex = new Mutex();
|
|
134
162
|
get balanceService() {
|
|
135
|
-
return
|
|
163
|
+
return assertEx2(this.params.balance, () => "balanceService not set");
|
|
136
164
|
}
|
|
137
165
|
get blockViewer() {
|
|
138
|
-
return
|
|
166
|
+
return assertEx2(this.params.blockViewer, () => "blockViewer not set");
|
|
139
167
|
}
|
|
140
168
|
async startHandler() {
|
|
141
169
|
await super.startHandler();
|
|
@@ -153,15 +181,18 @@ var BalanceActor = class extends Actor {
|
|
|
153
181
|
if (this._updateMutex.isLocked()) return;
|
|
154
182
|
await this._updateMutex.runExclusive(async () => {
|
|
155
183
|
const head = await this.blockViewer.currentBlockHash();
|
|
156
|
-
await this.balanceService.accountBalances([],
|
|
184
|
+
await this.balanceService.accountBalances([], {
|
|
185
|
+
head
|
|
186
|
+
});
|
|
157
187
|
});
|
|
158
188
|
}
|
|
159
189
|
};
|
|
160
190
|
|
|
161
191
|
// src/actor/ValidatorActor.ts
|
|
162
|
-
import { assertEx as
|
|
192
|
+
import { assertEx as assertEx3, creatable as creatable2 } from "@xylabs/sdk-js";
|
|
163
193
|
import { processPendingBlocks } from "@xyo-network/chain-sdk";
|
|
164
194
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
195
|
+
import { BlockViewerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
165
196
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
166
197
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
167
198
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -173,38 +204,24 @@ var ValidatorActor = class extends Actor {
|
|
|
173
204
|
static {
|
|
174
205
|
__name(this, "ValidatorActor");
|
|
175
206
|
}
|
|
207
|
+
_blockViewer;
|
|
176
208
|
_lastValidatedBlock;
|
|
177
209
|
_lastValidatedBlockHash;
|
|
178
|
-
|
|
179
|
-
return assertEx2(this.params.account, () => "account not set");
|
|
180
|
-
}
|
|
181
|
-
get balanceService() {
|
|
182
|
-
return assertEx2(this.params.balance, () => "balanceService not set");
|
|
183
|
-
}
|
|
210
|
+
_mempoolViewer;
|
|
184
211
|
get blockViewer() {
|
|
185
|
-
return
|
|
212
|
+
return this._blockViewer;
|
|
186
213
|
}
|
|
187
|
-
get
|
|
188
|
-
return
|
|
214
|
+
get finalizedArchivist() {
|
|
215
|
+
return assertEx3(this.params.finalizedArchivist, () => "finalizedArchivist not set");
|
|
189
216
|
}
|
|
190
217
|
get mempoolViewer() {
|
|
191
|
-
return
|
|
218
|
+
return this._mempoolViewer;
|
|
192
219
|
}
|
|
193
|
-
|
|
194
|
-
|
|
220
|
+
async createHandler() {
|
|
221
|
+
await super.createHandler();
|
|
222
|
+
this._blockViewer = assertEx3(this.params.blockViewer ?? await this.locator.getInstance(BlockViewerMoniker), () => "Unable to locate a BlockViewer");
|
|
223
|
+
this._mempoolViewer = assertEx3(this.params.mempoolViewer ?? await this.locator.getInstance(MempoolViewerMoniker), () => "Unable to locate a MempoolViewer");
|
|
195
224
|
}
|
|
196
|
-
// protected get chainSubmissionsArchivistWrite() {
|
|
197
|
-
// return assertEx(this.params.chainSubmissionsArchivistWrite, () => 'chainSubmissionsArchivistWrite not set')
|
|
198
|
-
// }
|
|
199
|
-
// protected get pendingBundledTransactionsArchivistWrite() {
|
|
200
|
-
// return assertEx(this.params.pendingBundledTransactionsArchivistWrite, () => 'pendingBundledTransactionsArchivistWrite not set')
|
|
201
|
-
// }
|
|
202
|
-
// protected get stakeIntentService() {
|
|
203
|
-
// return assertEx(this.params.stakeIntent, () => 'stakeIntentService not set')
|
|
204
|
-
// }
|
|
205
|
-
// protected get validator() {
|
|
206
|
-
// return assertEx(this.params.validator, () => 'validator not set')
|
|
207
|
-
// }
|
|
208
225
|
async startHandler() {
|
|
209
226
|
await super.startHandler();
|
|
210
227
|
this.registerTimer(
|
|
@@ -213,10 +230,11 @@ var ValidatorActor = class extends Actor {
|
|
|
213
230
|
await this.spanAsync("processPendingBlocks", async () => {
|
|
214
231
|
console.log("ValidatorActor: Processing pending blocks...");
|
|
215
232
|
await processPendingBlocks({
|
|
233
|
+
context: this.context,
|
|
216
234
|
logger: this.logger,
|
|
217
235
|
mempoolViewer: this.mempoolViewer,
|
|
218
236
|
blockViewer: this.blockViewer,
|
|
219
|
-
|
|
237
|
+
finalizedArchivist: this.finalizedArchivist
|
|
220
238
|
});
|
|
221
239
|
});
|
|
222
240
|
},
|
|
@@ -288,14 +306,11 @@ var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config })
|
|
|
288
306
|
// src/archivists/ChainFinalized/archivist.ts
|
|
289
307
|
var mutex2 = new Mutex3();
|
|
290
308
|
var singleton2;
|
|
291
|
-
async function initChainFinalizedArchivist(
|
|
309
|
+
async function initChainFinalizedArchivist(context) {
|
|
292
310
|
return await mutex2.runExclusive(async () => {
|
|
293
311
|
if (singleton2) return singleton2;
|
|
294
|
-
return await timeBudget("initChainFinalizedArchivist", logger, async () => {
|
|
295
|
-
const local = await startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist(
|
|
296
|
-
config,
|
|
297
|
-
logger
|
|
298
|
-
}));
|
|
312
|
+
return await timeBudget("initChainFinalizedArchivist", context.logger, async () => {
|
|
313
|
+
const local = await startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist(context));
|
|
299
314
|
singleton2 = local;
|
|
300
315
|
return singleton2;
|
|
301
316
|
}, 2e3, true);
|
|
@@ -324,14 +339,11 @@ var initLocalPendingBlocksArchivist = /* @__PURE__ */ __name(async ({ config })
|
|
|
324
339
|
// src/archivists/PendingBlocks/archivist.ts
|
|
325
340
|
var mutex4 = new Mutex5();
|
|
326
341
|
var singleton4;
|
|
327
|
-
async function initPendingBlocksArchivist(
|
|
342
|
+
async function initPendingBlocksArchivist(context) {
|
|
328
343
|
return await mutex4.runExclusive(async () => {
|
|
329
344
|
if (singleton4) return singleton4;
|
|
330
|
-
return await timeBudget2("initPendingBlocksArchivist", logger, async () => {
|
|
331
|
-
const local = await startupSpanAsync2("PendingBlocksArchivist:initLocal", () => initLocalPendingBlocksArchivist(
|
|
332
|
-
config,
|
|
333
|
-
logger
|
|
334
|
-
}));
|
|
345
|
+
return await timeBudget2("initPendingBlocksArchivist", context.logger, async () => {
|
|
346
|
+
const local = await startupSpanAsync2("PendingBlocksArchivist:initLocal", () => initLocalPendingBlocksArchivist(context));
|
|
335
347
|
singleton4 = local;
|
|
336
348
|
return singleton4;
|
|
337
349
|
}, 2e3, true);
|
|
@@ -339,112 +351,76 @@ async function initPendingBlocksArchivist({ config, logger }) {
|
|
|
339
351
|
}
|
|
340
352
|
__name(initPendingBlocksArchivist, "initPendingBlocksArchivist");
|
|
341
353
|
|
|
342
|
-
// src/archivists/
|
|
354
|
+
// src/archivists/RejectedTransactions/archivist.ts
|
|
343
355
|
import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
|
|
344
356
|
import { timeBudget as timeBudget3 } from "@xyo-network/xl1-protocol-sdk";
|
|
345
357
|
import { Mutex as Mutex7 } from "async-mutex";
|
|
346
358
|
|
|
347
|
-
// src/archivists/
|
|
359
|
+
// src/archivists/RejectedTransactions/local.ts
|
|
360
|
+
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
348
361
|
import { Mutex as Mutex6 } from "async-mutex";
|
|
349
362
|
var mutex5 = new Mutex6();
|
|
350
363
|
var singleton5;
|
|
351
|
-
var
|
|
364
|
+
var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () => {
|
|
352
365
|
return await mutex5.runExclusive(async () => {
|
|
353
366
|
if (singleton5) return singleton5;
|
|
354
|
-
|
|
355
|
-
|
|
367
|
+
singleton5 = await MemoryArchivist.create({
|
|
368
|
+
account: "random",
|
|
369
|
+
config: {
|
|
370
|
+
schema: MemoryArchivistConfigSchema,
|
|
371
|
+
max: 1e3,
|
|
372
|
+
name: "localRejectedTransactions"
|
|
373
|
+
}
|
|
374
|
+
});
|
|
356
375
|
return singleton5;
|
|
357
376
|
});
|
|
358
|
-
}, "
|
|
377
|
+
}, "initLocalRejectedTransactionsArchivist");
|
|
359
378
|
|
|
360
|
-
// src/archivists/
|
|
379
|
+
// src/archivists/RejectedTransactions/archivist.ts
|
|
361
380
|
var mutex6 = new Mutex7();
|
|
362
381
|
var singleton6;
|
|
363
|
-
async function
|
|
382
|
+
async function initRejectedTransactionsArchivist(params) {
|
|
364
383
|
return await mutex6.runExclusive(async () => {
|
|
365
384
|
if (singleton6) return singleton6;
|
|
366
|
-
return await timeBudget3("
|
|
367
|
-
const local = await startupSpanAsync3("
|
|
368
|
-
config,
|
|
369
|
-
logger
|
|
370
|
-
}));
|
|
385
|
+
return await timeBudget3("initRejectedTransactionsArchivist", params.logger, async () => {
|
|
386
|
+
const local = await startupSpanAsync3("RejectedTransactionsArchivist:initLocal", () => initLocalRejectedTransactionsArchivist(params));
|
|
371
387
|
singleton6 = local;
|
|
372
388
|
return singleton6;
|
|
373
389
|
}, 2e3, true);
|
|
374
390
|
});
|
|
375
391
|
}
|
|
376
|
-
__name(
|
|
392
|
+
__name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
|
|
377
393
|
|
|
378
|
-
// src/archivists/
|
|
394
|
+
// src/archivists/StakeIntentState/archivist.ts
|
|
395
|
+
import { assertEx as assertEx5 } from "@xylabs/sdk-js";
|
|
379
396
|
import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
|
|
380
397
|
import { timeBudget as timeBudget4 } from "@xyo-network/xl1-protocol-sdk";
|
|
381
398
|
import { Mutex as Mutex9 } from "async-mutex";
|
|
382
399
|
|
|
383
|
-
// src/archivists/
|
|
384
|
-
import {
|
|
400
|
+
// src/archivists/StakeIntentState/local.ts
|
|
401
|
+
import { assertEx as assertEx4 } from "@xylabs/sdk-js";
|
|
385
402
|
import { Mutex as Mutex8 } from "async-mutex";
|
|
386
403
|
var mutex7 = new Mutex8();
|
|
387
404
|
var singleton7;
|
|
388
|
-
var
|
|
405
|
+
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config }) => {
|
|
389
406
|
return await mutex7.runExclusive(async () => {
|
|
390
407
|
if (singleton7) return singleton7;
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
schema: MemoryArchivistConfigSchema,
|
|
395
|
-
max: 1e3,
|
|
396
|
-
name: "localRejectedTransactions"
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
return singleton7;
|
|
408
|
+
const { root } = config.storage;
|
|
409
|
+
singleton7 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
|
|
410
|
+
return assertEx4(singleton7, () => new Error("Failed to initialize stake intent state archivist"));
|
|
400
411
|
});
|
|
401
|
-
}, "
|
|
412
|
+
}, "initLocalStakeIntentStateArchivist");
|
|
402
413
|
|
|
403
|
-
// src/archivists/
|
|
414
|
+
// src/archivists/StakeIntentState/archivist.ts
|
|
404
415
|
var mutex8 = new Mutex9();
|
|
405
416
|
var singleton8;
|
|
406
|
-
|
|
417
|
+
var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (context) => {
|
|
407
418
|
return await mutex8.runExclusive(async () => {
|
|
408
419
|
if (singleton8) return singleton8;
|
|
409
|
-
return await timeBudget4("
|
|
410
|
-
const local = await startupSpanAsync4("
|
|
420
|
+
return await timeBudget4("initStakeIntentStateArchivist", context.logger, async () => {
|
|
421
|
+
const local = await startupSpanAsync4("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(context));
|
|
411
422
|
singleton8 = local;
|
|
412
|
-
return singleton8;
|
|
413
|
-
}, 2e3, true);
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
__name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
|
|
417
|
-
|
|
418
|
-
// src/archivists/StakeIntentState/archivist.ts
|
|
419
|
-
import { assertEx as assertEx4 } from "@xylabs/sdk-js";
|
|
420
|
-
import { startupSpanAsync as startupSpanAsync5 } from "@xyo-network/chain-utils";
|
|
421
|
-
import { timeBudget as timeBudget5 } from "@xyo-network/xl1-protocol-sdk";
|
|
422
|
-
import { Mutex as Mutex11 } from "async-mutex";
|
|
423
|
-
|
|
424
|
-
// src/archivists/StakeIntentState/local.ts
|
|
425
|
-
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
426
|
-
import { Mutex as Mutex10 } from "async-mutex";
|
|
427
|
-
var mutex9 = new Mutex10();
|
|
428
|
-
var singleton9;
|
|
429
|
-
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config }) => {
|
|
430
|
-
return await mutex9.runExclusive(async () => {
|
|
431
|
-
if (singleton9) return singleton9;
|
|
432
|
-
const { root } = config.storage;
|
|
433
|
-
singleton9 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
|
|
434
|
-
return assertEx3(singleton9, () => new Error("Failed to initialize stake intent state archivist"));
|
|
435
|
-
});
|
|
436
|
-
}, "initLocalStakeIntentStateArchivist");
|
|
437
|
-
|
|
438
|
-
// src/archivists/StakeIntentState/archivist.ts
|
|
439
|
-
var mutex10 = new Mutex11();
|
|
440
|
-
var singleton10;
|
|
441
|
-
var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (params) => {
|
|
442
|
-
return await mutex10.runExclusive(async () => {
|
|
443
|
-
if (singleton10) return singleton10;
|
|
444
|
-
return await timeBudget5("initStakeIntentStateArchivist", params.logger, async () => {
|
|
445
|
-
const local = await startupSpanAsync5("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(params));
|
|
446
|
-
singleton10 = local;
|
|
447
|
-
return assertEx4(singleton10, () => "StakeIntentStateArchivist is undefined");
|
|
423
|
+
return assertEx5(singleton8, () => "StakeIntentStateArchivist is undefined");
|
|
448
424
|
}, 2e3, true);
|
|
449
425
|
});
|
|
450
426
|
}, "initStakeIntentStateArchivist");
|
|
@@ -469,7 +445,8 @@ function buildTelemetryConfig(config, serviceName, serviceVersion) {
|
|
|
469
445
|
__name(buildTelemetryConfig, "buildTelemetryConfig");
|
|
470
446
|
|
|
471
447
|
// src/createDeclarationIntentBlock.ts
|
|
472
|
-
import { buildNextBlock
|
|
448
|
+
import { buildNextBlock } from "@xyo-network/chain-sdk";
|
|
449
|
+
import { createDeclarationIntent } from "@xyo-network/xl1-protocol-sdk";
|
|
473
450
|
async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, range) {
|
|
474
451
|
const producerDeclarationPayload = createDeclarationIntent(producerAccount.address, "producer", range[0], range[1]);
|
|
475
452
|
return await buildNextBlock(prevBlock, [], [
|
|
@@ -481,19 +458,19 @@ async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, r
|
|
|
481
458
|
__name(createProducerChainStakeIntentBlock, "createProducerChainStakeIntentBlock");
|
|
482
459
|
|
|
483
460
|
// src/evm/initEvmProvider.ts
|
|
484
|
-
import { assertEx as
|
|
461
|
+
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
485
462
|
|
|
486
463
|
// src/evm/initInfuraProvider.ts
|
|
487
|
-
import { assertEx as
|
|
464
|
+
import { assertEx as assertEx7, isDefined as isDefined2 } from "@xylabs/sdk-js";
|
|
488
465
|
import { InfuraProvider } from "ethers/providers";
|
|
489
466
|
|
|
490
467
|
// src/evm/initChainId.ts
|
|
491
|
-
import { assertEx as
|
|
468
|
+
import { assertEx as assertEx6, hexFrom, isDefined, isHex } from "@xylabs/sdk-js";
|
|
492
469
|
var canUseChainId = /* @__PURE__ */ __name((config) => {
|
|
493
470
|
return isDefined(config.evm.chainId);
|
|
494
471
|
}, "canUseChainId");
|
|
495
472
|
var getChainId = /* @__PURE__ */ __name((config) => {
|
|
496
|
-
const chainId =
|
|
473
|
+
const chainId = assertEx6(config.evm.chainId, () => "Missing config.evm.chainId");
|
|
497
474
|
if (isHex(chainId, {
|
|
498
475
|
prefix: true
|
|
499
476
|
})) {
|
|
@@ -518,8 +495,8 @@ var canUseInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
|
518
495
|
return canUseChainId(config) && isDefined2(config.evm?.infura?.projectId) && isDefined2(config.evm?.infura?.projectSecret);
|
|
519
496
|
}, "canUseInfuraProvider");
|
|
520
497
|
var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
521
|
-
const projectId =
|
|
522
|
-
const projectSecret =
|
|
498
|
+
const projectId = assertEx7(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
|
|
499
|
+
const projectSecret = assertEx7(config.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
|
|
523
500
|
return [
|
|
524
501
|
getChainId(config),
|
|
525
502
|
projectId,
|
|
@@ -528,7 +505,7 @@ var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
|
528
505
|
}, "getInfuraProviderConfig");
|
|
529
506
|
|
|
530
507
|
// src/evm/initJsonRpcProvider.ts
|
|
531
|
-
import { assertEx as
|
|
508
|
+
import { assertEx as assertEx8, isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
532
509
|
import { JsonRpcProvider } from "ethers/providers";
|
|
533
510
|
var initJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
534
511
|
const providerConfig = getJsonRpcProviderConfig(config);
|
|
@@ -538,7 +515,7 @@ var canUseJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
|
538
515
|
return canUseChainId(config) && isDefined3(config.evm.jsonRpc?.url);
|
|
539
516
|
}, "canUseJsonRpcProvider");
|
|
540
517
|
var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
541
|
-
const jsonRpcUrl =
|
|
518
|
+
const jsonRpcUrl = assertEx8(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
|
|
542
519
|
return [
|
|
543
520
|
jsonRpcUrl,
|
|
544
521
|
getChainId(config)
|
|
@@ -554,7 +531,7 @@ var initEvmProvider = /* @__PURE__ */ __name(async ({ config }) => {
|
|
|
554
531
|
} else if (canUseJsonRpcProvider(config)) {
|
|
555
532
|
provider = initJsonRpcProvider(config);
|
|
556
533
|
}
|
|
557
|
-
return
|
|
534
|
+
return assertEx9(await provider, () => "No provider available");
|
|
558
535
|
}, "initEvmProvider");
|
|
559
536
|
var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
|
|
560
537
|
return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
|
|
@@ -657,7 +634,7 @@ var ServiceLifetime = {
|
|
|
657
634
|
|
|
658
635
|
// src/init/initBalanceSummaryMap.ts
|
|
659
636
|
import { BaseMongoSdk } from "@xylabs/mongo";
|
|
660
|
-
import { assertEx as
|
|
637
|
+
import { assertEx as assertEx10 } from "@xylabs/sdk-js";
|
|
661
638
|
import { MongoMap } from "@xyo-network/chain-protocol";
|
|
662
639
|
import { hasMongoConfig, MemoryMap } from "@xyo-network/xl1-protocol-sdk";
|
|
663
640
|
async function initBalanceSummaryMap({ config, logger }) {
|
|
@@ -682,7 +659,7 @@ async function initBalanceSummaryMap({ config, logger }) {
|
|
|
682
659
|
maxEntries: 5e3
|
|
683
660
|
}
|
|
684
661
|
});
|
|
685
|
-
|
|
662
|
+
assertEx10(await result.start(), () => "Failed to start transfer summary map");
|
|
686
663
|
return result;
|
|
687
664
|
} else {
|
|
688
665
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for BalanceSummaryMap.");
|
|
@@ -692,18 +669,18 @@ async function initBalanceSummaryMap({ config, logger }) {
|
|
|
692
669
|
__name(initBalanceSummaryMap, "initBalanceSummaryMap");
|
|
693
670
|
|
|
694
671
|
// src/init/initBridgedModule.ts
|
|
695
|
-
import { assertEx as
|
|
672
|
+
import { assertEx as assertEx11 } from "@xylabs/sdk-js";
|
|
696
673
|
import { asAttachableArchivistInstance } from "@xyo-network/archivist-model";
|
|
697
674
|
import { asAttachableModuleInstance } from "@xyo-network/module-model";
|
|
698
|
-
import { Mutex as
|
|
699
|
-
var initMutex = new
|
|
675
|
+
import { Mutex as Mutex10 } from "async-mutex";
|
|
676
|
+
var initMutex = new Mutex10();
|
|
700
677
|
var bridgedModuleDictionary = {};
|
|
701
678
|
var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
702
679
|
return await initMutex.runExclusive(async () => {
|
|
703
680
|
const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName];
|
|
704
681
|
if (existing) return existing;
|
|
705
|
-
const mod =
|
|
706
|
-
const moduleInstance =
|
|
682
|
+
const mod = assertEx11(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`);
|
|
683
|
+
const moduleInstance = assertEx11(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`);
|
|
707
684
|
let moduleMap = bridgedModuleDictionary[bridge.address];
|
|
708
685
|
if (moduleMap === void 0) {
|
|
709
686
|
moduleMap = {};
|
|
@@ -714,60 +691,81 @@ var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) =>
|
|
|
714
691
|
});
|
|
715
692
|
}, "initBridgedModule");
|
|
716
693
|
var initBridgedArchivistModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
717
|
-
return
|
|
694
|
+
return assertEx11(asAttachableArchivistInstance(await initBridgedModule({
|
|
718
695
|
bridge,
|
|
719
696
|
moduleName
|
|
720
697
|
})), () => `Could not convert ${moduleName} to attachable archivist instance`);
|
|
721
698
|
}, "initBridgedArchivistModule");
|
|
722
699
|
|
|
723
700
|
// src/init/initChainStakeViewer.ts
|
|
724
|
-
import { asAddress, assertEx as
|
|
725
|
-
import {
|
|
701
|
+
import { asAddress, assertEx as assertEx12, toAddress, toEthAddress } from "@xylabs/sdk-js";
|
|
702
|
+
import { EthereumChainStakeEventsViewer, EthereumChainStakeViewer } from "@xyo-network/chain-sdk";
|
|
726
703
|
import { StakedXyoChainV2__factory } from "@xyo-network/typechain";
|
|
727
|
-
import {
|
|
728
|
-
async function initEvmChainStakeViewer(config, logger) {
|
|
704
|
+
import { SimpleStakeViewer } from "@xyo-network/xl1-protocol-sdk";
|
|
705
|
+
async function initEvmChainStakeViewer(context, config, logger) {
|
|
729
706
|
const provider2 = await initEvmProvider({
|
|
730
707
|
config,
|
|
731
708
|
logger
|
|
732
709
|
});
|
|
733
|
-
const contractAddress =
|
|
710
|
+
const contractAddress = assertEx12(config.chain.id, () => "Missing config.evm.chainId");
|
|
734
711
|
const contract = StakedXyoChainV2__factory.connect(toEthAddress(contractAddress), provider2);
|
|
735
|
-
const stakeEventsViewer = await
|
|
712
|
+
const stakeEventsViewer = await EthereumChainStakeEventsViewer.create({
|
|
736
713
|
contract,
|
|
737
|
-
logger
|
|
714
|
+
logger,
|
|
715
|
+
context
|
|
738
716
|
});
|
|
739
|
-
|
|
717
|
+
assertEx12(await stakeEventsViewer.start(), () => "Failed to start EthereumChainStakeEvents reader");
|
|
740
718
|
const stakeChainViewer = await EthereumChainStakeViewer.create({
|
|
741
719
|
contract,
|
|
742
720
|
stakeEventsViewer,
|
|
743
|
-
logger
|
|
721
|
+
logger,
|
|
722
|
+
context
|
|
744
723
|
});
|
|
745
|
-
|
|
724
|
+
assertEx12(await stakeChainViewer.start(), () => "Failed to start EthereumChainStake viewer");
|
|
746
725
|
return stakeChainViewer;
|
|
747
726
|
}
|
|
748
727
|
__name(initEvmChainStakeViewer, "initEvmChainStakeViewer");
|
|
749
|
-
async function initSimpleStakeViewer(config, logger) {
|
|
750
|
-
const
|
|
728
|
+
async function initSimpleStakeViewer(context, config, logger) {
|
|
729
|
+
const stakeViewer = await SimpleStakeViewer.create({
|
|
730
|
+
context,
|
|
751
731
|
chainId: asAddress(toAddress(1n), true),
|
|
752
732
|
logger,
|
|
753
733
|
positions: []
|
|
754
734
|
});
|
|
755
|
-
|
|
756
|
-
return
|
|
735
|
+
assertEx12(await stakeViewer.start(), () => "Failed to start SimpleChainStake viewer");
|
|
736
|
+
return stakeViewer;
|
|
757
737
|
}
|
|
758
738
|
__name(initSimpleStakeViewer, "initSimpleStakeViewer");
|
|
759
|
-
async function initStakeViewer({ config, logger }) {
|
|
739
|
+
async function initStakeViewer({ config, logger, context }) {
|
|
760
740
|
if (canUseEvmProvider({
|
|
761
741
|
config
|
|
762
742
|
})) {
|
|
763
|
-
return await initEvmChainStakeViewer(config, logger);
|
|
743
|
+
return await initEvmChainStakeViewer(context, config, logger);
|
|
764
744
|
} else {
|
|
765
745
|
console.warn("[API] Infura configuration not found. Using SimpleChainStakeViewer with no positions. This means no staking data will be available.");
|
|
766
|
-
return await initSimpleStakeViewer(config, logger);
|
|
746
|
+
return await initSimpleStakeViewer(context, config, logger);
|
|
767
747
|
}
|
|
768
748
|
}
|
|
769
749
|
__name(initStakeViewer, "initStakeViewer");
|
|
770
750
|
|
|
751
|
+
// src/init/initFinalizedArchivist.ts
|
|
752
|
+
import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
|
|
753
|
+
async function initMongoFinalizedArchivist(config) {
|
|
754
|
+
const payloadSdkConfig = {
|
|
755
|
+
...config.storage.mongo,
|
|
756
|
+
collection: "chain_validated"
|
|
757
|
+
};
|
|
758
|
+
return await MongoDBArchivistV2.create({
|
|
759
|
+
payloadSdkConfig
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
__name(initMongoFinalizedArchivist, "initMongoFinalizedArchivist");
|
|
763
|
+
async function initFinalizedArchivist(config) {
|
|
764
|
+
const finalizedArchivist = await initMongoFinalizedArchivist(config);
|
|
765
|
+
return finalizedArchivist;
|
|
766
|
+
}
|
|
767
|
+
__name(initFinalizedArchivist, "initFinalizedArchivist");
|
|
768
|
+
|
|
771
769
|
// src/init/initProducerAccount.ts
|
|
772
770
|
import { isUndefined } from "@xylabs/sdk-js";
|
|
773
771
|
import { HDWallet } from "@xyo-network/wallet";
|
|
@@ -793,7 +791,7 @@ ${randomMnemonic}
|
|
|
793
791
|
}, "initProducerAccount");
|
|
794
792
|
|
|
795
793
|
// src/init/initSeedPhrase.ts
|
|
796
|
-
import { assertEx as
|
|
794
|
+
import { assertEx as assertEx13, isString } from "@xylabs/sdk-js";
|
|
797
795
|
import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
|
|
798
796
|
async function initSeedPhrase({ config, logger, bios }) {
|
|
799
797
|
const storedSeedPhrase = await bios.seedPhraseStore.get("os");
|
|
@@ -813,18 +811,18 @@ async function initSeedPhrase({ config, logger, bios }) {
|
|
|
813
811
|
}
|
|
814
812
|
await bios.seedPhraseStore.set("os", seedPhrase);
|
|
815
813
|
}
|
|
816
|
-
return
|
|
814
|
+
return assertEx13(await bios.seedPhraseStore.get("os"), () => "Unable to acquire mnemonic from bios");
|
|
817
815
|
}
|
|
818
816
|
__name(initSeedPhrase, "initSeedPhrase");
|
|
819
817
|
|
|
820
818
|
// src/init/initServerNode.ts
|
|
821
|
-
import { assertEx as
|
|
819
|
+
import { assertEx as assertEx14 } from "@xylabs/sdk-js";
|
|
822
820
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
823
821
|
|
|
824
822
|
// src/manifest/getLocator.ts
|
|
825
823
|
import { isDefined as isDefined5 } from "@xylabs/sdk-js";
|
|
826
824
|
import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
|
|
827
|
-
import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
|
|
825
|
+
import { MongoDBArchivistV2 as MongoDBArchivistV22 } from "@xyo-network/archivist-mongodb";
|
|
828
826
|
import { ViewArchivist } from "@xyo-network/archivist-view";
|
|
829
827
|
import { initTelemetry } from "@xyo-network/chain-telemetry";
|
|
830
828
|
import { AbstractModule, LoggerModuleStatusReporter } from "@xyo-network/module-abstract";
|
|
@@ -864,7 +862,7 @@ var getLocator = /* @__PURE__ */ __name(async ({ config, logger }) => {
|
|
|
864
862
|
statusReporter,
|
|
865
863
|
traceProvider
|
|
866
864
|
};
|
|
867
|
-
locator.register(
|
|
865
|
+
locator.register(MongoDBArchivistV22.factory(params), void 0, true);
|
|
868
866
|
}
|
|
869
867
|
locator.register(MemoryArchivist2.factory({
|
|
870
868
|
traceProvider,
|
|
@@ -1046,7 +1044,7 @@ async function writableChainArchivistFromNode(node) {
|
|
|
1046
1044
|
}
|
|
1047
1045
|
__name(writableChainArchivistFromNode, "writableChainArchivistFromNode");
|
|
1048
1046
|
async function readonlyChainArchivistFromNode(node) {
|
|
1049
|
-
return
|
|
1047
|
+
return assertEx14(asArchivistInstance(await node.resolve("Chain:Validated"), {
|
|
1050
1048
|
required: true
|
|
1051
1049
|
}));
|
|
1052
1050
|
}
|
|
@@ -1071,6 +1069,7 @@ async function initServerNode({ wallet, logger, config, node: providedNode, tran
|
|
|
1071
1069
|
transfersSummaryMap,
|
|
1072
1070
|
balancesSummaryMap
|
|
1073
1071
|
});
|
|
1072
|
+
assertEx14(await node.start(), () => "Failed to start node");
|
|
1074
1073
|
const writableChainArchivist = await writableChainArchivistFromNode(node);
|
|
1075
1074
|
const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
|
|
1076
1075
|
const pendingTransactionsArchivist = await pendingTransactionsArchivistFromNode(node);
|
|
@@ -1101,97 +1100,8 @@ async function initServerWallet({ config, logger }) {
|
|
|
1101
1100
|
}
|
|
1102
1101
|
__name(initServerWallet, "initServerWallet");
|
|
1103
1102
|
|
|
1104
|
-
// src/status/ServiceStatus.ts
|
|
1105
|
-
var LoggerStatusReporter = class {
|
|
1106
|
-
static {
|
|
1107
|
-
__name(this, "LoggerStatusReporter");
|
|
1108
|
-
}
|
|
1109
|
-
logger;
|
|
1110
|
-
statusMap = {};
|
|
1111
|
-
constructor(logger) {
|
|
1112
|
-
this.logger = logger;
|
|
1113
|
-
}
|
|
1114
|
-
report(name, status, progress) {
|
|
1115
|
-
this.statusMap[name] = status;
|
|
1116
|
-
const starting = Object.entries(this.statusMap).map(([, value]) => value === "starting" ? 1 : 0).reduce((a, b) => a + b, 0);
|
|
1117
|
-
const started = Object.entries(this.statusMap).map(([, value]) => value === "started" ? 1 : 0).reduce((a, b) => a + b, 0);
|
|
1118
|
-
this.logger.info(`${started}/${starting + started} ${name} status: ${status}`, {
|
|
1119
|
-
progress
|
|
1120
|
-
});
|
|
1121
|
-
}
|
|
1122
|
-
};
|
|
1123
|
-
|
|
1124
|
-
// src/status/RuntimeStatusMonitor.ts
|
|
1125
|
-
var statusPriority = {
|
|
1126
|
-
error: 0,
|
|
1127
|
-
stopped: 1,
|
|
1128
|
-
stopping: 2,
|
|
1129
|
-
creating: 3,
|
|
1130
|
-
created: 4,
|
|
1131
|
-
starting: 5,
|
|
1132
|
-
started: 6
|
|
1133
|
-
};
|
|
1134
|
-
var SENTINEL_STATUS = "starting";
|
|
1135
|
-
var reduceToMinimumStatus = /* @__PURE__ */ __name((statuses) => {
|
|
1136
|
-
let minStatus = SENTINEL_STATUS;
|
|
1137
|
-
let minPriority = Infinity;
|
|
1138
|
-
for (const status of statuses) {
|
|
1139
|
-
const priority = statusPriority[status];
|
|
1140
|
-
if (priority < minPriority) {
|
|
1141
|
-
minPriority = priority;
|
|
1142
|
-
minStatus = status;
|
|
1143
|
-
}
|
|
1144
|
-
}
|
|
1145
|
-
return minStatus;
|
|
1146
|
-
}, "reduceToMinimumStatus");
|
|
1147
|
-
var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
1148
|
-
static {
|
|
1149
|
-
__name(this, "RuntimeStatusMonitor");
|
|
1150
|
-
}
|
|
1151
|
-
globalTransitions = [];
|
|
1152
|
-
transitions = [];
|
|
1153
|
-
getGlobalStatus() {
|
|
1154
|
-
if (Object.keys(this.statusMap).length === 0) return SENTINEL_STATUS;
|
|
1155
|
-
return reduceToMinimumStatus(Object.values(this.statusMap));
|
|
1156
|
-
}
|
|
1157
|
-
getStatus(name) {
|
|
1158
|
-
return this.statusMap[name];
|
|
1159
|
-
}
|
|
1160
|
-
onGlobalTransition(match, handler) {
|
|
1161
|
-
this.globalTransitions.push({
|
|
1162
|
-
...match,
|
|
1163
|
-
handler
|
|
1164
|
-
});
|
|
1165
|
-
}
|
|
1166
|
-
/**
|
|
1167
|
-
* Register a callback to be called on a specific transition.
|
|
1168
|
-
*/
|
|
1169
|
-
onTransition(match, handler) {
|
|
1170
|
-
this.transitions.push({
|
|
1171
|
-
...match,
|
|
1172
|
-
handler
|
|
1173
|
-
});
|
|
1174
|
-
}
|
|
1175
|
-
report(name, status, progress) {
|
|
1176
|
-
const previous = this.statusMap[name];
|
|
1177
|
-
const previousGlobal = this.getGlobalStatus();
|
|
1178
|
-
super.report(name, status, progress);
|
|
1179
|
-
if (previous === status) return;
|
|
1180
|
-
this.runTransitions(this.transitions, previous, status, name);
|
|
1181
|
-
const globalStatus = this.getGlobalStatus();
|
|
1182
|
-
if (previousGlobal === globalStatus) return;
|
|
1183
|
-
this.runTransitions(this.globalTransitions, previousGlobal, globalStatus);
|
|
1184
|
-
}
|
|
1185
|
-
runTransitions(transitions, prev, next, name) {
|
|
1186
|
-
for (const { from, to, name: matchName, handler } of transitions) {
|
|
1187
|
-
if ((matchName === void 0 || matchName === name) && (from === void 0 || from === prev) && (to === void 0 || to === next)) {
|
|
1188
|
-
handler(prev, next);
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
}
|
|
1192
|
-
};
|
|
1193
|
-
|
|
1194
1103
|
// src/init/initStatusReporter.ts
|
|
1104
|
+
import { RuntimeStatusMonitor } from "@xyo-network/xl1-protocol-sdk";
|
|
1195
1105
|
function initStatusReporter({ logger }) {
|
|
1196
1106
|
const statusReporter = new RuntimeStatusMonitor(logger);
|
|
1197
1107
|
statusReporter.onGlobalTransition({
|
|
@@ -1211,7 +1121,7 @@ __name(initStatusReporter, "initStatusReporter");
|
|
|
1211
1121
|
|
|
1212
1122
|
// src/init/initTransferSummaryMap.ts
|
|
1213
1123
|
import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
|
|
1214
|
-
import { assertEx as
|
|
1124
|
+
import { assertEx as assertEx15 } from "@xylabs/sdk-js";
|
|
1215
1125
|
import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
|
|
1216
1126
|
import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1217
1127
|
async function initTransferSummaryMap({ config, logger }) {
|
|
@@ -1236,7 +1146,7 @@ async function initTransferSummaryMap({ config, logger }) {
|
|
|
1236
1146
|
maxEntries: 5e3
|
|
1237
1147
|
}
|
|
1238
1148
|
});
|
|
1239
|
-
|
|
1149
|
+
assertEx15(await result.start(), () => "Failed to start transfer summary map");
|
|
1240
1150
|
return result;
|
|
1241
1151
|
} else {
|
|
1242
1152
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for TransferSummaryMap.");
|
|
@@ -1245,34 +1155,6 @@ async function initTransferSummaryMap({ config, logger }) {
|
|
|
1245
1155
|
}
|
|
1246
1156
|
__name(initTransferSummaryMap, "initTransferSummaryMap");
|
|
1247
1157
|
|
|
1248
|
-
// src/init/iterator.ts
|
|
1249
|
-
import { BaseElectionService, ChainBlockNumberIterationService, XyoStakeIntentService } from "@xyo-network/chain-services";
|
|
1250
|
-
import { timeBudget as timeBudget6 } from "@xyo-network/xl1-protocol-sdk";
|
|
1251
|
-
var chainIteratorServiceSingleton;
|
|
1252
|
-
var stakeIntentServiceSingleton;
|
|
1253
|
-
var electionServiceSingleton;
|
|
1254
|
-
var initChainIterator = /* @__PURE__ */ __name((params) => {
|
|
1255
|
-
if (chainIteratorServiceSingleton) return chainIteratorServiceSingleton;
|
|
1256
|
-
return timeBudget6("initChainIterator", params.logger, () => {
|
|
1257
|
-
chainIteratorServiceSingleton = ChainBlockNumberIterationService.create(params);
|
|
1258
|
-
return chainIteratorServiceSingleton;
|
|
1259
|
-
}, 2e3, true);
|
|
1260
|
-
}, "initChainIterator");
|
|
1261
|
-
var initStakeIntentService = /* @__PURE__ */ __name((params) => {
|
|
1262
|
-
if (stakeIntentServiceSingleton) return stakeIntentServiceSingleton;
|
|
1263
|
-
return timeBudget6("initStakeIntentService", params.logger, () => {
|
|
1264
|
-
stakeIntentServiceSingleton = XyoStakeIntentService.create(params);
|
|
1265
|
-
return stakeIntentServiceSingleton;
|
|
1266
|
-
}, 2e3, true);
|
|
1267
|
-
}, "initStakeIntentService");
|
|
1268
|
-
var initElectionService = /* @__PURE__ */ __name((params) => {
|
|
1269
|
-
if (electionServiceSingleton) return electionServiceSingleton;
|
|
1270
|
-
return timeBudget6("initElectionService", params.logger, () => {
|
|
1271
|
-
electionServiceSingleton = BaseElectionService.create(params);
|
|
1272
|
-
return electionServiceSingleton;
|
|
1273
|
-
}, 2e3, true);
|
|
1274
|
-
}, "initElectionService");
|
|
1275
|
-
|
|
1276
1158
|
// src/orchestrator/Orchestrator.ts
|
|
1277
1159
|
import { AbstractCreatable as AbstractCreatable2, creatable as creatable3 } from "@xylabs/sdk-js";
|
|
1278
1160
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
@@ -1342,12 +1224,10 @@ export {
|
|
|
1342
1224
|
BalanceActor,
|
|
1343
1225
|
DefaultServiceProvider,
|
|
1344
1226
|
GenericHost,
|
|
1345
|
-
LoggerStatusReporter,
|
|
1346
1227
|
NodeManifest,
|
|
1347
1228
|
Orchestrator,
|
|
1348
1229
|
PrivateChildManifests,
|
|
1349
1230
|
PublicChildManifests,
|
|
1350
|
-
RuntimeStatusMonitor,
|
|
1351
1231
|
ServiceLifetime,
|
|
1352
1232
|
ValidatorActor,
|
|
1353
1233
|
buildTelemetryConfig,
|
|
@@ -1358,20 +1238,17 @@ export {
|
|
|
1358
1238
|
initBridgedArchivistModule,
|
|
1359
1239
|
initBridgedModule,
|
|
1360
1240
|
initChainFinalizedArchivist,
|
|
1361
|
-
initChainIterator,
|
|
1362
|
-
initElectionService,
|
|
1363
1241
|
initEvmChainStakeViewer,
|
|
1364
1242
|
initEvmProvider,
|
|
1243
|
+
initFinalizedArchivist,
|
|
1365
1244
|
initHealthEndpoints,
|
|
1366
1245
|
initPendingBlocksArchivist,
|
|
1367
|
-
initPendingTransactionsArchivist,
|
|
1368
1246
|
initProducerAccount,
|
|
1369
1247
|
initRejectedTransactionsArchivist,
|
|
1370
1248
|
initSeedPhrase,
|
|
1371
1249
|
initServerNode,
|
|
1372
1250
|
initServerWallet,
|
|
1373
1251
|
initSimpleStakeViewer,
|
|
1374
|
-
initStakeIntentService,
|
|
1375
1252
|
initStakeIntentStateArchivist,
|
|
1376
1253
|
initStakeViewer,
|
|
1377
1254
|
initStatusReporter,
|