@xyo-network/xl1-cli-lib 1.12.0 → 1.12.1

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.
Files changed (61) hide show
  1. package/dist/node/index.mjs +430 -416
  2. package/dist/node/index.mjs.map +1 -1
  3. package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts +1 -1
  4. package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts.map +1 -1
  5. package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts +5 -5
  6. package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts.map +1 -1
  7. package/dist/node/orchestration/archivists/ChainFinalized/archivist.d.ts.map +1 -1
  8. package/dist/node/orchestration/archivists/PendingTransactions/archivist.d.ts.map +1 -1
  9. package/dist/node/orchestration/initServices.d.ts.map +1 -1
  10. package/dist/node/orchestration/map/BalanceSummary/initBalanceSummaryMap.d.ts +1 -1
  11. package/dist/node/orchestration/map/BalanceSummary/initBalanceSummaryMap.d.ts.map +1 -1
  12. package/dist/node/orchestration/map/BalanceSummary/local.d.ts +1 -1
  13. package/dist/node/orchestration/map/BalanceSummary/local.d.ts.map +1 -1
  14. package/dist/node/orchestration/map/driver/lmdb/SynchronousLmdbMap.d.ts +1 -1
  15. package/dist/node/orchestration/map/driver/lmdb/SynchronousLmdbMap.d.ts.map +1 -1
  16. package/dist/node/orchestration/map/localPersistentMap.d.ts +1 -1
  17. package/dist/node/orchestration/map/localPersistentMap.d.ts.map +1 -1
  18. package/dist/node/orchestration/services/implementation/balance.d.ts +1 -1
  19. package/dist/node/orchestration/services/implementation/balance.d.ts.map +1 -1
  20. package/dist/node/orchestration/services/implementation/chain/evm.d.ts +2 -2
  21. package/dist/node/orchestration/services/implementation/chain/evm.d.ts.map +1 -1
  22. package/dist/node/orchestration/services/implementation/chain/index.d.ts +1 -1
  23. package/dist/node/orchestration/services/implementation/chain/index.d.ts.map +1 -1
  24. package/dist/node/orchestration/services/implementation/iterator.d.ts +1 -1
  25. package/dist/node/orchestration/services/implementation/iterator.d.ts.map +1 -1
  26. package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts +1 -1
  27. package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts.map +1 -1
  28. package/dist/node/orchestration/services/implementation/producer.d.ts +1 -1
  29. package/dist/node/orchestration/services/implementation/producer.d.ts.map +1 -1
  30. package/dist/node/orchestration/services/implementation/reward.d.ts +1 -1
  31. package/dist/node/orchestration/services/implementation/reward.d.ts.map +1 -1
  32. package/dist/node/orchestration/services/implementation/validator.d.ts +1 -1
  33. package/dist/node/orchestration/services/implementation/validator.d.ts.map +1 -1
  34. package/dist/node/xl1.mjs +425 -414
  35. package/dist/node/xl1.mjs.map +1 -1
  36. package/package.json +32 -39
  37. package/src/orchestration/actor/implementation/ChainHeadUpdateActor.ts +1 -1
  38. package/src/orchestration/actor/implementation/ProducerActor.ts +1 -2
  39. package/src/orchestration/archivists/ChainFinalized/archivist.ts +1 -2
  40. package/src/orchestration/archivists/ChainFinalized/remote.ts +1 -1
  41. package/src/orchestration/archivists/ChainSubmissions/archivist.ts +1 -1
  42. package/src/orchestration/archivists/ChainSubmissions/remote.ts +1 -1
  43. package/src/orchestration/archivists/PendingTransactions/archivist.ts +1 -2
  44. package/src/orchestration/archivists/PendingTransactions/remote.ts +1 -1
  45. package/src/orchestration/archivists/RejectedTransactions/archivist.ts +1 -1
  46. package/src/orchestration/archivists/StakeIntentState/archivist.ts +1 -1
  47. package/src/orchestration/initServices.ts +4 -5
  48. package/src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts +2 -2
  49. package/src/orchestration/map/BalanceSummary/local.ts +1 -1
  50. package/src/orchestration/map/driver/lmdb/SynchronousLmdbMap.ts +1 -1
  51. package/src/orchestration/map/localPersistentMap.ts +1 -1
  52. package/src/orchestration/services/implementation/balance.ts +2 -2
  53. package/src/orchestration/services/implementation/chain/evm.ts +2 -2
  54. package/src/orchestration/services/implementation/chain/index.ts +2 -2
  55. package/src/orchestration/services/implementation/head.ts +1 -1
  56. package/src/orchestration/services/implementation/iterator.ts +2 -2
  57. package/src/orchestration/services/implementation/pendingTransactions.ts +2 -2
  58. package/src/orchestration/services/implementation/producer.ts +2 -2
  59. package/src/orchestration/services/implementation/reward.ts +2 -2
  60. package/src/orchestration/services/implementation/validator.ts +1 -1
  61. package/src/spec/BootstrapChain.spec.ts +1 -1
package/dist/node/xl1.mjs CHANGED
@@ -1,13 +1,5 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __decorateClass = (decorators, target, key, kind) => {
4
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
- if (decorator = decorators[i])
7
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
- if (kind && result) __defProp(target, key, result);
9
- return result;
10
- };
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
3
 
12
4
  // src/start.ts
13
5
  import { config as config2 } from "dotenv";
@@ -25,6 +17,7 @@ import { getServer } from "@xyo-network/chain-api";
25
17
  function runApi(context) {
26
18
  void getServer(context);
27
19
  }
20
+ __name(runApi, "runApi");
28
21
 
29
22
  // src/orchestration/actor/implementation/BalanceActor.ts
30
23
  import { assertEx } from "@xylabs/assert";
@@ -37,13 +30,19 @@ import { forget } from "@xylabs/forget";
37
30
  import { IdLogger } from "@xylabs/logger";
38
31
  import { span, spanAsync } from "@xylabs/telemetry";
39
32
  var Actor = class extends Base {
33
+ static {
34
+ __name(this, "Actor");
35
+ }
40
36
  _timers = /* @__PURE__ */ new Map();
41
37
  _active = false;
42
38
  _displayName;
43
39
  _id;
44
40
  constructor(id, displayName = "Actor", params) {
45
41
  const logger = params.logger ?? new IdLogger(Base.defaultLogger ?? console, () => `[${displayName} (${id})] `);
46
- super({ ...params, logger });
42
+ super({
43
+ ...params,
44
+ logger
45
+ });
47
46
  this._displayName = displayName;
48
47
  this._id = id;
49
48
  }
@@ -60,29 +59,29 @@ var Actor = class extends Base {
60
59
  return `[${this.displayName} (${this.id})] `;
61
60
  }
62
61
  /**
63
- * The timer runs until the actor is deactivated (or you manually stop it).
64
- */
62
+ * The timer runs until the actor is deactivated (or you manually stop it).
63
+ */
65
64
  registerTimer(timerName, callback, dueTimeMs, periodMs) {
66
65
  if (!this._active) {
67
- this.logger?.warn(
68
- `Cannot register timer '${timerName}' because actor is not active.`
69
- );
66
+ this.logger?.warn(`Cannot register timer '${timerName}' because actor is not active.`);
70
67
  return;
71
68
  }
72
- const schedulePeriodicRun = async () => {
69
+ const schedulePeriodicRun = /* @__PURE__ */ __name(async () => {
73
70
  if (!this._active || !this._timers.has(timerName)) return;
74
71
  try {
75
72
  await callback();
76
73
  } catch (error) {
77
74
  this.logger?.error(`Error in timer '${this.name}:${timerName}': ${error}`);
78
75
  } finally {
79
- this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), { name: `schedulePeriodicRun:${this.name}:${timerName}` }), periodMs));
76
+ this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), {
77
+ name: `schedulePeriodicRun:${this.name}:${timerName}`
78
+ }), periodMs));
80
79
  }
81
- };
82
- this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), { name: `schedulePeriodicRun(initial):${this.name}:${timerName}` }), dueTimeMs));
83
- this.logger?.log(
84
- `Timer '${this.name}:${timerName}' registered: first call after ${dueTimeMs}ms, recurring every ${periodMs}ms.`
85
- );
80
+ }, "schedulePeriodicRun");
81
+ this._timers.set(timerName, setTimeout(() => forget(schedulePeriodicRun(), {
82
+ name: `schedulePeriodicRun(initial):${this.name}:${timerName}`
83
+ }), dueTimeMs));
84
+ this.logger?.log(`Timer '${this.name}:${timerName}' registered: first call after ${dueTimeMs}ms, recurring every ${periodMs}ms.`);
86
85
  }
87
86
  span(name, fn) {
88
87
  return span(`${this.name}:${name}`, fn, this.tracer);
@@ -91,17 +90,17 @@ var Actor = class extends Base {
91
90
  return await spanAsync(`${this.name}:${name}`, fn, this.tracer);
92
91
  }
93
92
  /**
94
- * Called by the Orchestrator when the actor is activated.
95
- */
93
+ * Called by the Orchestrator when the actor is activated.
94
+ */
96
95
  async start() {
97
96
  await Promise.resolve();
98
97
  this._active = true;
99
98
  this.logger?.log("Started.");
100
99
  }
101
100
  /**
102
- * Called by the Orchestrator when the actor is deactivated.
103
- * Stop all running timers.
104
- */
101
+ * Called by the Orchestrator when the actor is deactivated.
102
+ * Stop all running timers.
103
+ */
105
104
  async stop() {
106
105
  await Promise.resolve();
107
106
  this._active = false;
@@ -116,6 +115,9 @@ var Actor = class extends Base {
116
115
 
117
116
  // src/orchestration/actor/model/Orchestrator.ts
118
117
  var Orchestrator = class {
118
+ static {
119
+ __name(this, "Orchestrator");
120
+ }
119
121
  actors = [];
120
122
  keepAliveHandle = null;
121
123
  logger;
@@ -124,9 +126,9 @@ var Orchestrator = class {
124
126
  this.logger = logger;
125
127
  }
126
128
  /**
127
- * Registers an actor.
128
- * (We won't activate the actor until `start()` is called.)
129
- */
129
+ * Registers an actor.
130
+ * (We won't activate the actor until `start()` is called.)
131
+ */
130
132
  async registerActor(actor) {
131
133
  if (this.running) {
132
134
  await actor.start();
@@ -134,8 +136,8 @@ var Orchestrator = class {
134
136
  this.actors.push(actor);
135
137
  }
136
138
  /**
137
- * Starts the orchestrator: activates all actors.
138
- */
139
+ * Starts the orchestrator: activates all actors.
140
+ */
139
141
  async start() {
140
142
  await Promise.resolve();
141
143
  if (this.running) {
@@ -151,8 +153,8 @@ var Orchestrator = class {
151
153
  }, 2147483647);
152
154
  }
153
155
  /**
154
- * Stops the orchestrator: deactivates all actors.
155
- */
156
+ * Stops the orchestrator: deactivates all actors.
157
+ */
156
158
  async stop() {
157
159
  await Promise.resolve();
158
160
  if (!this.running) {
@@ -171,6 +173,9 @@ var Orchestrator = class {
171
173
 
172
174
  // src/orchestration/actor/implementation/BalanceActor.ts
173
175
  var BalanceActor = class _BalanceActor extends Actor {
176
+ static {
177
+ __name(this, "BalanceActor");
178
+ }
174
179
  _updateMutex = new Mutex();
175
180
  constructor(params) {
176
181
  super("BalanceActor", "Balance", params);
@@ -206,9 +211,12 @@ var BalanceActor = class _BalanceActor extends Actor {
206
211
  import { filterAs } from "@xylabs/array";
207
212
  import { assertEx as assertEx2 } from "@xylabs/assert";
208
213
  import { toHex } from "@xylabs/hex";
209
- import { findMostRecentBlock, sortBlocks } from "@xyo-network/chain-protocol";
214
+ import { findMostRecentBlock, sortBlocks } from "@xyo-network/chain-sdk";
210
215
  import { asBlockBoundWitness } from "@xyo-network/xl1-protocol";
211
216
  var ChainHeadUpdateActor = class _ChainHeadUpdateActor extends Actor {
217
+ static {
218
+ __name(this, "ChainHeadUpdateActor");
219
+ }
212
220
  constructor(params) {
213
221
  super("ChainHeadUpdate", "ChainHeadUpdate", params);
214
222
  }
@@ -254,18 +262,16 @@ var ChainHeadUpdateActor = class _ChainHeadUpdateActor extends Actor {
254
262
  import { assertEx as assertEx3 } from "@xylabs/assert";
255
263
  import { toHex as toHex2 } from "@xylabs/hex";
256
264
  import { isDefined, isUndefined } from "@xylabs/typeof";
257
- import { createDeclarationIntent } from "@xyo-network/chain-protocol";
258
- import { BaseBlockProducerService } from "@xyo-network/chain-services";
265
+ import { BaseBlockProducerService, createDeclarationIntent } from "@xyo-network/chain-sdk";
259
266
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
260
267
  import { PayloadBundleSchema } from "@xyo-network/payload-model";
261
- import {
262
- buildTransaction,
263
- flattenHydratedBlock,
264
- flattenHydratedTransaction
265
- } from "@xyo-network/xl1-protocol-sdk";
268
+ import { buildTransaction, flattenHydratedBlock, flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
266
269
  var SHOULD_REGISTER_REDECLARATION_INTENT_TIMER = true;
267
270
  var TEN_MINUTES = 10 * 60 * 1e3;
268
271
  var ProducerActor = class _ProducerActor extends Actor {
272
+ static {
273
+ __name(this, "ProducerActor");
274
+ }
269
275
  _lastProducedBlock;
270
276
  _lastRedeclarationIntent;
271
277
  constructor(params) {
@@ -335,24 +341,15 @@ var ProducerActor = class _ProducerActor extends Actor {
335
341
  this._lastRedeclarationIntent = void 0;
336
342
  }
337
343
  if (!await this.validateCurrentBalance()) {
338
- this.logger?.error(
339
- `Add balance to address ${this.account.address} for the producer to declare it's intent.`
340
- );
344
+ this.logger?.error(`Add balance to address ${this.account.address} for the producer to declare it's intent.`);
341
345
  return;
342
346
  }
343
347
  if (!await this.validateCurrentStake()) {
344
- this.logger?.error(
345
- `Add stake to contract address ${this.params.config.chain.id} for the producer to declare it's intent.`
346
- );
348
+ this.logger?.error(`Add stake to contract address ${this.params.config.chain.id} for the producer to declare it's intent.`);
347
349
  return;
348
350
  }
349
351
  this.logger?.log("Creating redeclaration intent for producer:", this.account.address);
350
- const redeclarationIntent = createDeclarationIntent(
351
- this.account.address,
352
- "producer",
353
- currentBlock,
354
- currentBlock + BaseBlockProducerService.RedeclarationDuration
355
- );
352
+ const redeclarationIntent = createDeclarationIntent(this.account.address, "producer", currentBlock, currentBlock + BaseBlockProducerService.RedeclarationDuration);
356
353
  await this.submitRedeclarationIntent(currentBlock, redeclarationIntent);
357
354
  this._lastRedeclarationIntent = redeclarationIntent;
358
355
  });
@@ -362,30 +359,37 @@ var ProducerActor = class _ProducerActor extends Actor {
362
359
  async calculateBlocksUntilProducerDeclarationExpiration(currentBlock) {
363
360
  const ranges = await this.stakeIntentService.getDeclaredCandidateRanges(this.account.address, "producer");
364
361
  const lastRange = ranges.toSorted((a, b) => a[1] > b[1] ? 1 : -1).at(-1);
365
- const [, currentDeclarationEnd] = lastRange || [void 0, currentBlock];
362
+ const [, currentDeclarationEnd] = lastRange || [
363
+ void 0,
364
+ currentBlock
365
+ ];
366
366
  const timeToProducerExpiration = currentDeclarationEnd - currentBlock;
367
367
  return timeToProducerExpiration;
368
368
  }
369
369
  async submitRedeclarationIntent(currentBlock, redeclarationIntent) {
370
370
  this.logger?.log("Submitting redeclaration intent for producer:", this.account.address);
371
- const tx = await buildTransaction(
372
- this.chainIterator.chainId,
373
- [redeclarationIntent],
374
- [],
375
- this.account,
376
- currentBlock,
377
- currentBlock + 1e3
378
- );
371
+ const tx = await buildTransaction(this.chainIterator.chainId, [
372
+ redeclarationIntent
373
+ ], [], this.account, currentBlock, currentBlock + 1e3);
379
374
  const payloads = flattenHydratedTransaction(tx);
380
375
  const root = tx[0]._hash;
381
- const payloadBundle = new PayloadBuilder2({ schema: PayloadBundleSchema }).fields({ payloads, root }).build();
382
- await this.pendingBundledTransactionsArchivistWrite.insert([payloadBundle]);
376
+ const payloadBundle = new PayloadBuilder2({
377
+ schema: PayloadBundleSchema
378
+ }).fields({
379
+ payloads,
380
+ root
381
+ }).build();
382
+ await this.pendingBundledTransactionsArchivistWrite.insert([
383
+ payloadBundle
384
+ ]);
383
385
  this.logger?.log("Submitted redeclaration intent for producer:", this.account.address);
384
386
  }
385
387
  async validateCurrentBalance() {
386
388
  const head = this._lastProducedBlock?.[0]._hash;
387
389
  if (isDefined(head)) {
388
- const balances = await this.balanceService.balances(head, [this.account.address]);
390
+ const balances = await this.balanceService.balances(head, [
391
+ this.account.address
392
+ ]);
389
393
  const currentBalance = balances[this.account.address] ?? 0n;
390
394
  if (currentBalance <= 0n) {
391
395
  this.logger?.error(`Producer ${this.account.address} has no balance.`);
@@ -409,16 +413,24 @@ var ProducerActor = class _ProducerActor extends Actor {
409
413
  // src/orchestration/health/initHealthEndpoints.ts
410
414
  import http from "http";
411
415
  import { isDefined as isDefined2 } from "@xylabs/typeof";
412
- var sendStatus = (res, status, errorCode) => {
416
+ var sendStatus = /* @__PURE__ */ __name((res, status, errorCode) => {
413
417
  const statusCode = status === "started" ? 200 : errorCode;
414
- res.writeHead(statusCode, { "Content-Type": "application/json" });
415
- res.end(JSON.stringify({ status }));
416
- };
417
- var notFound = (res) => {
418
- res.writeHead(404, { "Content-Type": "application/json" });
419
- res.end(JSON.stringify({ status: "not found" }));
420
- };
421
- var createHealthServer = (port, statusMonitor, logger) => {
418
+ res.writeHead(statusCode, {
419
+ "Content-Type": "application/json"
420
+ });
421
+ res.end(JSON.stringify({
422
+ status
423
+ }));
424
+ }, "sendStatus");
425
+ var notFound = /* @__PURE__ */ __name((res) => {
426
+ res.writeHead(404, {
427
+ "Content-Type": "application/json"
428
+ });
429
+ res.end(JSON.stringify({
430
+ status: "not found"
431
+ }));
432
+ }, "notFound");
433
+ var createHealthServer = /* @__PURE__ */ __name((port, statusMonitor, logger) => {
422
434
  const server = http.createServer((req, res) => {
423
435
  const url = req.url ?? "";
424
436
  const status = statusMonitor.getGlobalStatus();
@@ -447,29 +459,21 @@ var createHealthServer = (port, statusMonitor, logger) => {
447
459
  logger.log(" - /readyz");
448
460
  });
449
461
  return server;
450
- };
451
- var initHealthEndpoints = (params) => {
452
- const {
453
- config: config3,
454
- logger,
455
- statusReporter
456
- } = params;
462
+ }, "createHealthServer");
463
+ var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
464
+ const { config: config3, logger, statusReporter } = params;
457
465
  const { healthCheckPort } = config3.producer;
458
466
  return isDefined2(healthCheckPort) ? createHealthServer(healthCheckPort, statusReporter, logger) : void 0;
459
- };
467
+ }, "initHealthEndpoints");
460
468
 
461
469
  // src/orchestration/initServices.ts
462
470
  import { assertEx as assertEx16 } from "@xylabs/assert";
463
471
  import { asAddress as asAddress2 } from "@xylabs/hex";
464
472
  import { isDefined as isDefined9 } from "@xylabs/typeof";
465
- import { balanceSummaryRepositoryFromMap } from "@xyo-network/chain-modules";
466
- import { initTelemetry } from "@xyo-network/chain-telemetry";
467
- import { startupSpanAsync as startupSpanAsync7 } from "@xyo-network/chain-utils";
468
- import { validateHydratedBlockState } from "@xyo-network/chain-validation";
473
+ import { balanceSummaryRepositoryFromMap, initTelemetry, startupSpanAsync as startupSpanAsync7, validateHydratedBlockState } from "@xyo-network/chain-sdk";
469
474
 
470
475
  // src/orchestration/archivists/ChainFinalized/archivist.ts
471
- import { initArchivistSync } from "@xyo-network/chain-orchestration";
472
- import { startupSpanAsync } from "@xyo-network/chain-utils";
476
+ import { initArchivistSync, startupSpanAsync } from "@xyo-network/chain-sdk";
473
477
  import { Mutex as Mutex4 } from "async-mutex";
474
478
 
475
479
  // src/orchestration/archivists/ChainFinalized/local.ts
@@ -482,13 +486,13 @@ import { LmdbArchivist, LmdbArchivistConfigSchema } from "@xyo-network/archivist
482
486
 
483
487
  // src/orchestration/store/getStoreDirectory.ts
484
488
  import Path from "path";
485
- var getStoreDirectory = (name, storageRoot, kind) => {
489
+ var getStoreDirectory = /* @__PURE__ */ __name((name, storageRoot, kind) => {
486
490
  return kind === void 0 ? Path.join(storageRoot, name) : Path.join(storageRoot, kind, name);
487
- };
491
+ }, "getStoreDirectory");
488
492
 
489
493
  // src/orchestration/archivists/lib/localPersistentArchivist.ts
490
494
  var DEFAULT_STORAGE_ROOT = Path2.join(process.cwd(), ".store");
491
- var getLocalPersistentArchivist = (dbName, storeName, storageRoot, kind = "lmdb") => {
495
+ var getLocalPersistentArchivist = /* @__PURE__ */ __name((dbName, storeName, storageRoot, kind = "lmdb") => {
492
496
  switch (kind) {
493
497
  case "lmdb": {
494
498
  const root = storageRoot ?? DEFAULT_STORAGE_ROOT;
@@ -504,99 +508,104 @@ var getLocalPersistentArchivist = (dbName, storeName, storageRoot, kind = "lmdb"
504
508
  });
505
509
  }
506
510
  }
507
- };
511
+ }, "getLocalPersistentArchivist");
508
512
 
509
513
  // src/orchestration/archivists/ChainFinalized/local.ts
510
514
  var mutex = new Mutex2();
511
515
  var singleton;
512
- var initLocalChainFinalizedArchivist = async ({ config: config3 }) => {
516
+ var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config3 }) => {
513
517
  return await mutex.runExclusive(async () => {
514
518
  if (singleton) return singleton;
515
519
  const { root } = config3.storage;
516
520
  singleton = await getLocalPersistentArchivist("chain", "finalized", root);
517
521
  return singleton;
518
522
  });
519
- };
523
+ }, "initLocalChainFinalizedArchivist");
520
524
 
521
525
  // src/orchestration/archivists/ChainFinalized/remote.ts
522
526
  import { assertEx as assertEx4 } from "@xylabs/assert";
523
- import { initBridge, initBridgedArchivistModule } from "@xyo-network/chain-orchestration";
527
+ import { initBridge, initBridgedArchivistModule } from "@xyo-network/chain-sdk";
524
528
  import { getUrl } from "@xyo-network/xl1-protocol-sdk";
525
529
  import { Mutex as Mutex3 } from "async-mutex";
526
530
  var mutex2 = new Mutex3();
527
531
  var singleton2;
528
- var initRemoteChainFinalizedArchivist = async ({ config: config3 }) => {
532
+ var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config3 }) => {
529
533
  return await mutex2.runExclusive(async () => {
530
534
  if (singleton2) return singleton2;
531
535
  const { host, port } = config3.api;
532
536
  const nodeUrl = getUrl(host, port);
533
537
  const bridge = await initBridge(nodeUrl);
534
- singleton2 = await initBridgedArchivistModule({ bridge, moduleName: "XYOChain:Chain:Finalized" });
538
+ singleton2 = await initBridgedArchivistModule({
539
+ bridge,
540
+ moduleName: "XYOChain:Chain:Finalized"
541
+ });
535
542
  return assertEx4(singleton2, () => "Error: RemoteChainFinalizedArchivist failed to initialize");
536
543
  });
537
- };
544
+ }, "initRemoteChainFinalizedArchivist");
538
545
 
539
546
  // src/orchestration/archivists/ChainFinalized/archivist.ts
540
547
  var mutex3 = new Mutex4();
541
548
  var singleton3;
542
- async function initChainFinalizedArchivist({
543
- config: config3,
544
- logger,
545
- traceProvider
546
- }) {
549
+ async function initChainFinalizedArchivist({ config: config3, logger, traceProvider }) {
547
550
  return await mutex3.runExclusive(async () => {
548
551
  if (singleton3) return singleton3;
549
552
  const [remote, local] = await Promise.all([
550
- startupSpanAsync("ChainFinalizedArchivist:initRemote", () => initRemoteChainFinalizedArchivist({ config: config3, logger })),
551
- startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist({ config: config3, logger }))
553
+ startupSpanAsync("ChainFinalizedArchivist:initRemote", () => initRemoteChainFinalizedArchivist({
554
+ config: config3,
555
+ logger
556
+ })),
557
+ startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist({
558
+ config: config3,
559
+ logger
560
+ }))
552
561
  ]);
553
- await startupSpanAsync(
554
- "ChainFinalizedArchivist:initArchivistSync",
555
- () => initArchivistSync("ChainFinalizedArchivist", remote, local, 200, Number.MAX_SAFE_INTEGER, traceProvider)
556
- );
562
+ await startupSpanAsync("ChainFinalizedArchivist:initArchivistSync", () => initArchivistSync("ChainFinalizedArchivist", remote, local, 200, Number.MAX_SAFE_INTEGER, traceProvider));
557
563
  singleton3 = local;
558
564
  return singleton3;
559
565
  });
560
566
  }
567
+ __name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
561
568
 
562
569
  // src/orchestration/archivists/ChainSubmissions/archivist.ts
563
570
  import { assertEx as assertEx6 } from "@xylabs/assert";
564
- import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-utils";
571
+ import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-sdk";
565
572
  import { Mutex as Mutex6 } from "async-mutex";
566
573
 
567
574
  // src/orchestration/archivists/ChainSubmissions/remote.ts
568
575
  import { assertEx as assertEx5 } from "@xylabs/assert";
569
- import { initBridge as initBridge2, initBridgedArchivistModule as initBridgedArchivistModule2 } from "@xyo-network/chain-orchestration";
576
+ import { initBridge as initBridge2, initBridgedArchivistModule as initBridgedArchivistModule2 } from "@xyo-network/chain-sdk";
570
577
  import { getUrl as getUrl2 } from "@xyo-network/xl1-protocol-sdk";
571
578
  import { Mutex as Mutex5 } from "async-mutex";
572
579
  var mutex4 = new Mutex5();
573
580
  var singleton4;
574
- var initRemoteChainSubmissionsArchivist = async ({ config: config3 }) => {
581
+ var initRemoteChainSubmissionsArchivist = /* @__PURE__ */ __name(async ({ config: config3 }) => {
575
582
  return await mutex4.runExclusive(async () => {
576
583
  if (singleton4) return singleton4;
577
584
  const { host, port } = config3.api;
578
585
  const nodeUrl = getUrl2(host, port);
579
586
  const bridge = await initBridge2(nodeUrl);
580
- singleton4 = await initBridgedArchivistModule2({ bridge, moduleName: "XYOChain:Chain:Submissions" });
587
+ singleton4 = await initBridgedArchivistModule2({
588
+ bridge,
589
+ moduleName: "XYOChain:Chain:Submissions"
590
+ });
581
591
  return assertEx5(singleton4, () => new Error("Failed to initialize RemoteChainSubmissionsArchivist"));
582
592
  });
583
- };
593
+ }, "initRemoteChainSubmissionsArchivist");
584
594
 
585
595
  // src/orchestration/archivists/ChainSubmissions/archivist.ts
586
596
  var mutex5 = new Mutex6();
587
597
  var singleton5;
588
- var initChainSubmissionsArchivist = async (params) => {
598
+ var initChainSubmissionsArchivist = /* @__PURE__ */ __name(async (params) => {
589
599
  return await mutex5.runExclusive(async () => {
590
600
  if (singleton5) return singleton5;
591
601
  const remote = await startupSpanAsync2("ChainSubmissionsArchivist:initRemote", () => initRemoteChainSubmissionsArchivist(params));
592
602
  singleton5 = remote;
593
603
  return assertEx6(singleton5, () => new Error("Failed to initialize ChainSubmissionsArchivist"));
594
604
  });
595
- };
605
+ }, "initChainSubmissionsArchivist");
596
606
 
597
607
  // src/orchestration/archivists/PendingTransactions/archivist.ts
598
- import { initArchivistSync as initArchivistSync2 } from "@xyo-network/chain-orchestration";
599
- import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
608
+ import { initArchivistSync as initArchivistSync2, startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-sdk";
600
609
  import { Mutex as Mutex9 } from "async-mutex";
601
610
 
602
611
  // src/orchestration/archivists/PendingTransactions/local.ts
@@ -604,7 +613,7 @@ import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archi
604
613
  import { Mutex as Mutex7 } from "async-mutex";
605
614
  var mutex6 = new Mutex7();
606
615
  var singleton6;
607
- var initLocalPendingTransactionsArchivist = async () => {
616
+ var initLocalPendingTransactionsArchivist = /* @__PURE__ */ __name(async () => {
608
617
  return await mutex6.runExclusive(async () => {
609
618
  if (singleton6) return singleton6;
610
619
  singleton6 = await MemoryArchivist.create({
@@ -617,47 +626,53 @@ var initLocalPendingTransactionsArchivist = async () => {
617
626
  });
618
627
  return singleton6;
619
628
  });
620
- };
629
+ }, "initLocalPendingTransactionsArchivist");
621
630
 
622
631
  // src/orchestration/archivists/PendingTransactions/remote.ts
623
632
  import { assertEx as assertEx7 } from "@xylabs/assert";
624
- import { initBridge as initBridge3, initBridgedArchivistModule as initBridgedArchivistModule3 } from "@xyo-network/chain-orchestration";
633
+ import { initBridge as initBridge3, initBridgedArchivistModule as initBridgedArchivistModule3 } from "@xyo-network/chain-sdk";
625
634
  import { getUrl as getUrl3 } from "@xyo-network/xl1-protocol-sdk";
626
635
  import { Mutex as Mutex8 } from "async-mutex";
627
636
  var mutex7 = new Mutex8();
628
637
  var singleton7;
629
- var initRemotePendingTransactionsArchivist = async ({ config: config3 }) => {
638
+ var initRemotePendingTransactionsArchivist = /* @__PURE__ */ __name(async ({ config: config3 }) => {
630
639
  return await mutex7.runExclusive(async () => {
631
640
  if (singleton7) return singleton7;
632
641
  const { host, port } = config3.api;
633
642
  const nodeUrl = getUrl3(host, port);
634
643
  const bridge = await initBridge3(nodeUrl);
635
- singleton7 = await initBridgedArchivistModule3({ bridge, moduleName: "XYOChain:Pending:PendingTransactions" });
644
+ singleton7 = await initBridgedArchivistModule3({
645
+ bridge,
646
+ moduleName: "XYOChain:Pending:PendingTransactions"
647
+ });
636
648
  return assertEx7(singleton7, () => "Error: RemotePendingBundledTransactionsArchivist is undefined");
637
649
  });
638
- };
650
+ }, "initRemotePendingTransactionsArchivist");
639
651
 
640
652
  // src/orchestration/archivists/PendingTransactions/archivist.ts
641
653
  var mutex8 = new Mutex9();
642
654
  var singleton8;
643
- var initPendingBundledTransactionsArchivist = async (params) => {
655
+ var initPendingBundledTransactionsArchivist = /* @__PURE__ */ __name(async (params) => {
644
656
  return await mutex8.runExclusive(async () => {
645
657
  if (singleton8) return singleton8;
646
658
  const remote = await startupSpanAsync3("PendingBundledTransactionsArchivist:initRemote", () => initRemotePendingTransactionsArchivist(params));
647
659
  const local = await startupSpanAsync3("PendingBundledTransactionsArchivist:initLocal", () => initLocalPendingTransactionsArchivist(params));
648
- const start2 = await remote.next({ limit: 1, order: "desc" });
660
+ const start2 = await remote.next({
661
+ limit: 1,
662
+ order: "desc"
663
+ });
649
664
  await local.insert(start2);
650
- await startupSpanAsync3(
651
- "PendingBundledTransactionsArchivist:initArchivistSync",
652
- () => initArchivistSync2("PendingBundledTransactionsArchivist", remote, local)
653
- );
654
- singleton8 = [local, remote];
665
+ await startupSpanAsync3("PendingBundledTransactionsArchivist:initArchivistSync", () => initArchivistSync2("PendingBundledTransactionsArchivist", remote, local));
666
+ singleton8 = [
667
+ local,
668
+ remote
669
+ ];
655
670
  return singleton8;
656
671
  });
657
- };
672
+ }, "initPendingBundledTransactionsArchivist");
658
673
 
659
674
  // src/orchestration/archivists/RejectedTransactions/archivist.ts
660
- import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
675
+ import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-sdk";
661
676
  import { Mutex as Mutex11 } from "async-mutex";
662
677
 
663
678
  // src/orchestration/archivists/RejectedTransactions/local.ts
@@ -665,7 +680,7 @@ import { MemoryArchivist as MemoryArchivist2, MemoryArchivistConfigSchema as Mem
665
680
  import { Mutex as Mutex10 } from "async-mutex";
666
681
  var mutex9 = new Mutex10();
667
682
  var singleton9;
668
- var initLocalRejectedTransactionsArchivist = async () => {
683
+ var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () => {
669
684
  return await mutex9.runExclusive(async () => {
670
685
  if (singleton9) return singleton9;
671
686
  singleton9 = await MemoryArchivist2.create({
@@ -678,7 +693,7 @@ var initLocalRejectedTransactionsArchivist = async () => {
678
693
  });
679
694
  return singleton9;
680
695
  });
681
- };
696
+ }, "initLocalRejectedTransactionsArchivist");
682
697
 
683
698
  // src/orchestration/archivists/RejectedTransactions/archivist.ts
684
699
  var mutex10 = new Mutex11();
@@ -691,10 +706,11 @@ async function initRejectedTransactionsArchivist(params) {
691
706
  return singleton10;
692
707
  });
693
708
  }
709
+ __name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
694
710
 
695
711
  // src/orchestration/archivists/StakeIntentState/archivist.ts
696
712
  import { assertEx as assertEx9 } from "@xylabs/assert";
697
- import { startupSpanAsync as startupSpanAsync5 } from "@xyo-network/chain-utils";
713
+ import { startupSpanAsync as startupSpanAsync5 } from "@xyo-network/chain-sdk";
698
714
  import { Mutex as Mutex13 } from "async-mutex";
699
715
 
700
716
  // src/orchestration/archivists/StakeIntentState/local.ts
@@ -702,30 +718,30 @@ import { assertEx as assertEx8 } from "@xylabs/assert";
702
718
  import { Mutex as Mutex12 } from "async-mutex";
703
719
  var mutex11 = new Mutex12();
704
720
  var singleton11;
705
- var initLocalStakeIntentStateArchivist = async ({ config: config3 }) => {
721
+ var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config: config3 }) => {
706
722
  return await mutex11.runExclusive(async () => {
707
723
  if (singleton11) return singleton11;
708
724
  const { root } = config3.storage;
709
725
  singleton11 = await getLocalPersistentArchivist("stakeIntent", "state", root);
710
726
  return assertEx8(singleton11, () => new Error("Failed to initialize stake intent state archivist"));
711
727
  });
712
- };
728
+ }, "initLocalStakeIntentStateArchivist");
713
729
 
714
730
  // src/orchestration/archivists/StakeIntentState/archivist.ts
715
731
  var mutex12 = new Mutex13();
716
732
  var singleton12;
717
- var initStakeIntentStateArchivist = async (params) => {
733
+ var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (params) => {
718
734
  return await mutex12.runExclusive(async () => {
719
735
  if (singleton12) return singleton12;
720
736
  const local = await startupSpanAsync5("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(params));
721
737
  singleton12 = local;
722
738
  return assertEx9(singleton12, () => "Error: StakeIntentStateArchivist is undefined");
723
739
  });
724
- };
740
+ }, "initStakeIntentStateArchivist");
725
741
 
726
742
  // src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts
727
743
  import { isDefined as isDefined4 } from "@xylabs/typeof";
728
- import { startupSpanAsync as startupSpanAsync6 } from "@xyo-network/chain-utils";
744
+ import { startupSpanAsync as startupSpanAsync6 } from "@xyo-network/chain-sdk";
729
745
  import { Mutex as Mutex15 } from "async-mutex";
730
746
 
731
747
  // src/orchestration/map/BalanceSummary/local.ts
@@ -738,24 +754,34 @@ import Path3 from "path";
738
754
 
739
755
  // src/orchestration/map/driver/lmdb/SynchronousLmdbMap.ts
740
756
  import { AbstractCreatable, creatable } from "@xylabs/creatable";
741
- import {
742
- open
743
- } from "lmdb";
757
+ import { open } from "lmdb";
758
+ function _ts_decorate(decorators, target, key, desc) {
759
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
760
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
761
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
762
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
763
+ }
764
+ __name(_ts_decorate, "_ts_decorate");
744
765
  var SynchronousLmdbMap = class extends AbstractCreatable {
766
+ static {
767
+ __name(this, "SynchronousLmdbMap");
768
+ }
745
769
  db;
746
770
  rootDatabase;
747
771
  /**
748
- * The path to the LMDB folder where the database is stored.
749
- * This is constructed from the location and dbName parameters
750
- * allowing for multiple DBs within the root (by specifying a
751
- * different storeName).
752
- * @returns The folder path for the LMDB database.
753
- */
772
+ * The path to the LMDB folder where the database is stored.
773
+ * This is constructed from the location and dbName parameters
774
+ * allowing for multiple DBs within the root (by specifying a
775
+ * different storeName).
776
+ * @returns The folder path for the LMDB database.
777
+ */
754
778
  get folderPath() {
755
779
  return `${this.params.location}/${this.params.dbName}`;
756
780
  }
757
781
  all() {
758
- return [...this.db.getRange({})].map((entry) => entry.value);
782
+ return [
783
+ ...this.db.getRange({})
784
+ ].map((entry) => entry.value);
759
785
  }
760
786
  clear() {
761
787
  this.db.clearSync();
@@ -775,17 +801,21 @@ var SynchronousLmdbMap = class extends AbstractCreatable {
775
801
  }
776
802
  async startHandler() {
777
803
  await super.startHandler();
778
- this.rootDatabase = open({ path: this.folderPath });
779
- this.db = this.rootDatabase.openDB({ name: this.params.storeName });
804
+ this.rootDatabase = open({
805
+ path: this.folderPath
806
+ });
807
+ this.db = this.rootDatabase.openDB({
808
+ name: this.params.storeName
809
+ });
780
810
  }
781
811
  };
782
- SynchronousLmdbMap = __decorateClass([
812
+ SynchronousLmdbMap = _ts_decorate([
783
813
  creatable()
784
814
  ], SynchronousLmdbMap);
785
815
 
786
816
  // src/orchestration/map/localPersistentMap.ts
787
817
  var DEFAULT_STORAGE_ROOT2 = Path3.join(process.cwd(), ".store");
788
- var getLocalPersistentMap = async (dbName, storeName, storageRoot, kind = "lmdb") => {
818
+ var getLocalPersistentMap = /* @__PURE__ */ __name(async (dbName, storeName, storageRoot, kind = "lmdb") => {
789
819
  switch (kind) {
790
820
  case "lmdb": {
791
821
  const root = storageRoot ?? DEFAULT_STORAGE_ROOT2;
@@ -798,19 +828,19 @@ var getLocalPersistentMap = async (dbName, storeName, storageRoot, kind = "lmdb"
798
828
  return store;
799
829
  }
800
830
  }
801
- };
831
+ }, "getLocalPersistentMap");
802
832
 
803
833
  // src/orchestration/map/BalanceSummary/local.ts
804
834
  var mutex13 = new Mutex14();
805
835
  var singleton13;
806
- var initLocalBalanceSummaryMap = async (params) => {
836
+ var initLocalBalanceSummaryMap = /* @__PURE__ */ __name(async (params) => {
807
837
  return await mutex13.runExclusive(async () => {
808
838
  if (isDefined3(singleton13)) return singleton13;
809
839
  const { root } = params.config.storage;
810
840
  singleton13 = await getLocalPersistentMap("balance", "summary", root);
811
841
  return singleton13;
812
842
  });
813
- };
843
+ }, "initLocalBalanceSummaryMap");
814
844
 
815
845
  // src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts
816
846
  var mutex14 = new Mutex15();
@@ -823,13 +853,14 @@ async function initBalanceSummaryMap(params) {
823
853
  return singleton14;
824
854
  });
825
855
  }
856
+ __name(initBalanceSummaryMap, "initBalanceSummaryMap");
826
857
 
827
858
  // src/orchestration/services/implementation/account.ts
828
859
  import { isUndefined as isUndefined2 } from "@xylabs/typeof";
829
860
  import { HDWallet } from "@xyo-network/wallet";
830
861
  import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-protocol-sdk";
831
862
  var accountServiceSingleton;
832
- var initAccount = async ({ config: config3, logger }) => {
863
+ var initAccount = /* @__PURE__ */ __name(async ({ config: config3, logger }) => {
833
864
  if (accountServiceSingleton) return accountServiceSingleton;
834
865
  let walletPhrase = config3.producer.mnemonic;
835
866
  if (isUndefined2(walletPhrase)) {
@@ -846,25 +877,25 @@ ${randomMnemonic}
846
877
  const account = await wallet.derivePath(ADDRESS_INDEX.XYO);
847
878
  accountServiceSingleton = account;
848
879
  return accountServiceSingleton;
849
- };
880
+ }, "initAccount");
850
881
 
851
882
  // src/orchestration/services/implementation/balance.ts
852
- import { BaseAccountBalanceService } from "@xyo-network/chain-services";
883
+ import { BaseAccountBalanceService } from "@xyo-network/chain-sdk";
853
884
  var balanceServiceSingleton;
854
- var initBalanceService = async (params) => {
885
+ var initBalanceService = /* @__PURE__ */ __name(async (params) => {
855
886
  if (balanceServiceSingleton) return balanceServiceSingleton;
856
887
  balanceServiceSingleton = await BaseAccountBalanceService.create(params);
857
888
  return balanceServiceSingleton;
858
- };
889
+ }, "initBalanceService");
859
890
 
860
891
  // src/orchestration/services/implementation/chain/index.ts
861
- import { MemoryChainService } from "@xyo-network/chain-services";
892
+ import { MemoryChainService } from "@xyo-network/chain-sdk";
862
893
 
863
894
  // src/orchestration/services/implementation/chain/evm.ts
864
895
  import { assertEx as assertEx14 } from "@xylabs/assert";
865
896
  import { asAddress, ZERO_ADDRESS } from "@xylabs/hex";
866
897
  import { isDefined as isDefined8 } from "@xylabs/typeof";
867
- import { EvmChainService } from "@xyo-network/chain-services";
898
+ import { EvmChainService } from "@xyo-network/chain-sdk";
868
899
  import { Wallet } from "ethers/wallet";
869
900
 
870
901
  // src/orchestration/services/implementation/evm/initEvmProvider.ts
@@ -879,12 +910,14 @@ import { InfuraProvider } from "ethers/providers";
879
910
  import { assertEx as assertEx10 } from "@xylabs/assert";
880
911
  import { hexFrom, isHex } from "@xylabs/hex";
881
912
  import { isDefined as isDefined5 } from "@xylabs/typeof";
882
- var canUseChainId = (config3) => {
913
+ var canUseChainId = /* @__PURE__ */ __name((config3) => {
883
914
  return isDefined5(config3.evm.chainId);
884
- };
885
- var getChainId = (config3) => {
915
+ }, "canUseChainId");
916
+ var getChainId = /* @__PURE__ */ __name((config3) => {
886
917
  const chainId = assertEx10(config3.evm.chainId, () => "Missing config.evm.chainId");
887
- if (isHex(chainId, { prefix: true })) {
918
+ if (isHex(chainId, {
919
+ prefix: true
920
+ })) {
888
921
  const hex = hexFrom(chainId);
889
922
  const parsed = Number.parseInt(hex, 16);
890
923
  return parsed;
@@ -892,44 +925,51 @@ var getChainId = (config3) => {
892
925
  const parsed = Number.parseInt(chainId, 10);
893
926
  return parsed;
894
927
  }
895
- };
928
+ }, "getChainId");
896
929
 
897
930
  // src/orchestration/services/implementation/evm/initInfuraProvider.ts
898
931
  var instance;
899
- var initInfuraProvider = (config3) => {
932
+ var initInfuraProvider = /* @__PURE__ */ __name((config3) => {
900
933
  if (instance) return instance;
901
934
  const providerConfig = getInfuraProviderConfig(config3);
902
935
  instance = Promise.resolve(new InfuraProvider(...providerConfig));
903
936
  return instance;
904
- };
905
- var canUseInfuraProvider = (config3) => {
937
+ }, "initInfuraProvider");
938
+ var canUseInfuraProvider = /* @__PURE__ */ __name((config3) => {
906
939
  return canUseChainId(config3) && isDefined6(config3.evm?.infura?.projectId) && isDefined6(config3.evm?.infura?.projectSecret);
907
- };
908
- var getInfuraProviderConfig = (config3) => {
940
+ }, "canUseInfuraProvider");
941
+ var getInfuraProviderConfig = /* @__PURE__ */ __name((config3) => {
909
942
  const projectId = assertEx11(config3.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
910
943
  const projectSecret = assertEx11(config3.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
911
- return [getChainId(config3), projectId, projectSecret];
912
- };
944
+ return [
945
+ getChainId(config3),
946
+ projectId,
947
+ projectSecret
948
+ ];
949
+ }, "getInfuraProviderConfig");
913
950
 
914
951
  // src/orchestration/services/implementation/evm/initJsonRpcProvider.ts
915
952
  import { assertEx as assertEx12 } from "@xylabs/assert";
916
953
  import { isDefined as isDefined7 } from "@xylabs/typeof";
917
954
  import { JsonRpcProvider } from "ethers/providers";
918
- var initJsonRpcProvider = (config3) => {
955
+ var initJsonRpcProvider = /* @__PURE__ */ __name((config3) => {
919
956
  const providerConfig = getJsonRpcProviderConfig(config3);
920
957
  return Promise.resolve(new JsonRpcProvider(...providerConfig));
921
- };
922
- var canUseJsonRpcProvider = (config3) => {
958
+ }, "initJsonRpcProvider");
959
+ var canUseJsonRpcProvider = /* @__PURE__ */ __name((config3) => {
923
960
  return canUseChainId(config3) && isDefined7(config3.evm.jsonRpc?.url);
924
- };
925
- var getJsonRpcProviderConfig = (config3) => {
961
+ }, "canUseJsonRpcProvider");
962
+ var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config3) => {
926
963
  const jsonRpcUrl = assertEx12(config3.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
927
- return [jsonRpcUrl, getChainId(config3)];
928
- };
964
+ return [
965
+ jsonRpcUrl,
966
+ getChainId(config3)
967
+ ];
968
+ }, "getJsonRpcProviderConfig");
929
969
 
930
970
  // src/orchestration/services/implementation/evm/initEvmProvider.ts
931
971
  var provider;
932
- var initEvmProvider = async ({ config: config3 }) => {
972
+ var initEvmProvider = /* @__PURE__ */ __name(async ({ config: config3 }) => {
933
973
  if (provider) return provider;
934
974
  if (canUseInfuraProvider(config3)) {
935
975
  provider = initInfuraProvider(config3);
@@ -937,28 +977,26 @@ var initEvmProvider = async ({ config: config3 }) => {
937
977
  provider = initJsonRpcProvider(config3);
938
978
  }
939
979
  return assertEx13(await provider, () => "Error: No provider available");
940
- };
941
- var canUseEvmProvider = ({ config: config3 }) => {
980
+ }, "initEvmProvider");
981
+ var canUseEvmProvider = /* @__PURE__ */ __name(({ config: config3 }) => {
942
982
  return canUseInfuraProvider(config3) || canUseJsonRpcProvider(config3);
943
- };
983
+ }, "canUseEvmProvider");
944
984
 
945
985
  // src/orchestration/services/implementation/chain/evm.ts
946
986
  var chainStakeServiceSingleton;
947
- var canUseEvmContractChainService = (config3) => {
987
+ var canUseEvmContractChainService = /* @__PURE__ */ __name((config3) => {
948
988
  const { id } = config3.chain;
949
- return isDefined8(id) && id !== ZERO_ADDRESS && canUseEvmProvider({ config: config3 });
950
- };
951
- var initEvmContractChainService = async ({
952
- account,
953
- config: config3,
954
- traceProvider,
955
- meterProvider,
956
- logger
957
- }) => {
989
+ return isDefined8(id) && id !== ZERO_ADDRESS && canUseEvmProvider({
990
+ config: config3
991
+ });
992
+ }, "canUseEvmContractChainService");
993
+ var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, config: config3, traceProvider, meterProvider, logger }) => {
958
994
  if (chainStakeServiceSingleton) return chainStakeServiceSingleton;
959
995
  const emvStakingContractAddress = assertEx14(config3.chain.id, () => "Error: config.chain.id is required");
960
996
  const id = assertEx14(asAddress(emvStakingContractAddress), () => "Error: config.chain.id is not a valid address");
961
- const provider2 = assertEx14(await initEvmProvider({ config: config3 }));
997
+ const provider2 = assertEx14(await initEvmProvider({
998
+ config: config3
999
+ }));
962
1000
  const privateKey = assertEx14(account.private?.hex, () => "Error: Account does not have a private key");
963
1001
  const runner = new Wallet(privateKey, provider2);
964
1002
  chainStakeServiceSingleton = EvmChainService.create({
@@ -969,112 +1007,116 @@ var initEvmContractChainService = async ({
969
1007
  logger
970
1008
  });
971
1009
  return await chainStakeServiceSingleton;
972
- };
1010
+ }, "initEvmContractChainService");
973
1011
 
974
1012
  // src/orchestration/services/implementation/chain/index.ts
975
1013
  var chainStakeServiceSingleton2;
976
- var initChainService = ({ account, config: config3 }) => init({
1014
+ var initChainService = /* @__PURE__ */ __name(({ account, config: config3 }) => init({
977
1015
  config: config3,
978
1016
  name: "ChainService",
979
1017
  account
980
- });
981
- var init = (params) => {
1018
+ }), "initChainService");
1019
+ var init = /* @__PURE__ */ __name((params) => {
982
1020
  if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
983
1021
  const { config: config3 } = params;
984
- chainStakeServiceSingleton2 = canUseEvmContractChainService(config3) ? initEvmContractChainService({ ...params, name: "ChainStakeService" }) : MemoryChainService.create({ ...params, name: "ChainStakeService" });
1022
+ chainStakeServiceSingleton2 = canUseEvmContractChainService(config3) ? initEvmContractChainService({
1023
+ ...params,
1024
+ name: "ChainStakeService"
1025
+ }) : MemoryChainService.create({
1026
+ ...params,
1027
+ name: "ChainStakeService"
1028
+ });
985
1029
  return chainStakeServiceSingleton2;
986
- };
1030
+ }, "init");
987
1031
 
988
1032
  // src/orchestration/services/implementation/head.ts
989
1033
  import { delay } from "@xylabs/delay";
990
1034
  import { ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/hex";
991
- import { createGenesisBlock, findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-protocol";
1035
+ import { createGenesisBlock, findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-sdk";
992
1036
  import { flattenHydratedBlock as flattenHydratedBlock2 } from "@xyo-network/xl1-protocol-sdk";
993
1037
  var headSingleton;
994
- var createBootstrapHead = async (chainSubmissionsArchivistWrite, chainArchivist, account) => {
1038
+ var createBootstrapHead = /* @__PURE__ */ __name(async (chainSubmissionsArchivistWrite, chainArchivist, account) => {
995
1039
  const block = await createGenesisBlock(account, ZERO_ADDRESS2, 10000000n, account.address);
996
1040
  const [bw] = block;
997
1041
  await chainSubmissionsArchivistWrite.insert(flattenHydratedBlock2(block));
998
1042
  while (true) {
999
- const result = await chainArchivist.get([bw._hash]);
1043
+ const result = await chainArchivist.get([
1044
+ bw._hash
1045
+ ]);
1000
1046
  if (result.length > 0) break;
1001
1047
  await delay(1e3);
1002
1048
  }
1003
1049
  return bw;
1004
- };
1005
- var initHead = async (params) => {
1006
- const {
1007
- account,
1008
- chainArchivist,
1009
- chainSubmissionsArchivistWrite
1010
- } = params;
1050
+ }, "createBootstrapHead");
1051
+ var initHead = /* @__PURE__ */ __name(async (params) => {
1052
+ const { account, chainArchivist, chainSubmissionsArchivistWrite } = params;
1011
1053
  if (headSingleton) return headSingleton;
1012
1054
  let head = await findMostRecentBlock2(chainArchivist);
1013
1055
  if (!head) head = await createBootstrapHead(chainSubmissionsArchivistWrite, chainArchivist, account);
1014
1056
  headSingleton = head;
1015
1057
  return headSingleton;
1016
- };
1058
+ }, "initHead");
1017
1059
 
1018
1060
  // src/orchestration/services/implementation/iterator.ts
1019
- import {
1020
- BaseElectionService,
1021
- ChainBlockNumberIterationService,
1022
- XyoStakeIntentService
1023
- } from "@xyo-network/chain-services";
1061
+ import { BaseElectionService, ChainBlockNumberIterationService, XyoStakeIntentService } from "@xyo-network/chain-sdk";
1024
1062
  var chainIteratorServiceSingleton;
1025
1063
  var stakeIntentServiceSingleton;
1026
1064
  var electionServiceSingleton;
1027
- var initChainIterator = (params) => {
1065
+ var initChainIterator = /* @__PURE__ */ __name((params) => {
1028
1066
  if (chainIteratorServiceSingleton) return chainIteratorServiceSingleton;
1029
1067
  chainIteratorServiceSingleton = ChainBlockNumberIterationService.create(params);
1030
1068
  return chainIteratorServiceSingleton;
1031
- };
1032
- var initStakeIntentService = (params) => {
1069
+ }, "initChainIterator");
1070
+ var initStakeIntentService = /* @__PURE__ */ __name((params) => {
1033
1071
  if (stakeIntentServiceSingleton) return stakeIntentServiceSingleton;
1034
1072
  stakeIntentServiceSingleton = XyoStakeIntentService.create(params);
1035
1073
  return stakeIntentServiceSingleton;
1036
- };
1037
- var initElectionService = (params) => {
1074
+ }, "initStakeIntentService");
1075
+ var initElectionService = /* @__PURE__ */ __name((params) => {
1038
1076
  if (electionServiceSingleton) return electionServiceSingleton;
1039
1077
  electionServiceSingleton = BaseElectionService.create(params);
1040
1078
  return electionServiceSingleton;
1041
- };
1079
+ }, "initElectionService");
1042
1080
 
1043
1081
  // src/orchestration/services/implementation/pendingTransactions.ts
1044
- import { BasePendingTransactionsService } from "@xyo-network/chain-services";
1082
+ import { BasePendingTransactionsService } from "@xyo-network/chain-sdk";
1045
1083
  var serviceSingleton;
1046
- var initPendingTransactions = async (params) => {
1084
+ var initPendingTransactions = /* @__PURE__ */ __name(async (params) => {
1047
1085
  if (serviceSingleton) return serviceSingleton;
1048
1086
  serviceSingleton = await BasePendingTransactionsService.create(params);
1049
1087
  return serviceSingleton;
1050
- };
1088
+ }, "initPendingTransactions");
1051
1089
 
1052
1090
  // src/orchestration/services/implementation/producer.ts
1053
- import { BaseBlockProducerService as BaseBlockProducerService2 } from "@xyo-network/chain-services";
1091
+ import { BaseBlockProducerService as BaseBlockProducerService2 } from "@xyo-network/chain-sdk";
1054
1092
  var serviceSingleton2;
1055
- var initBlockProducer = async (params) => {
1093
+ var initBlockProducer = /* @__PURE__ */ __name(async (params) => {
1056
1094
  if (serviceSingleton2) return serviceSingleton2;
1057
1095
  serviceSingleton2 = await BaseBlockProducerService2.create(params);
1058
1096
  return serviceSingleton2;
1059
- };
1097
+ }, "initBlockProducer");
1060
1098
 
1061
1099
  // src/orchestration/services/implementation/reward.ts
1062
1100
  import { assertEx as assertEx15 } from "@xylabs/assert";
1063
- import { EvmBlockRewardService, MemoryBlockRewardService } from "@xyo-network/chain-services";
1101
+ import { EvmBlockRewardService, MemoryBlockRewardService } from "@xyo-network/chain-sdk";
1064
1102
  var rewardServiceSingleton;
1065
- var initBlockRewardService = (params) => {
1103
+ var initBlockRewardService = /* @__PURE__ */ __name((params) => {
1066
1104
  if (rewardServiceSingleton) return rewardServiceSingleton;
1067
1105
  const { config: config3 } = params;
1068
- rewardServiceSingleton = canUseEvmBlockRewardService({ config: config3 }) ? initEvmBlockRewardService(params) : initXyoBlockRewardService(params);
1106
+ rewardServiceSingleton = canUseEvmBlockRewardService({
1107
+ config: config3
1108
+ }) ? initEvmBlockRewardService(params) : initXyoBlockRewardService(params);
1069
1109
  return rewardServiceSingleton;
1070
- };
1071
- var initXyoBlockRewardService = (params) => {
1110
+ }, "initBlockRewardService");
1111
+ var initXyoBlockRewardService = /* @__PURE__ */ __name((params) => {
1072
1112
  if (rewardServiceSingleton) return rewardServiceSingleton;
1073
1113
  rewardServiceSingleton = MemoryBlockRewardService.create(params);
1074
1114
  return rewardServiceSingleton;
1075
- };
1076
- var canUseEvmBlockRewardService = (params) => canUseEvmProvider({ config: params.config });
1077
- var initEvmBlockRewardService = async (params) => {
1115
+ }, "initXyoBlockRewardService");
1116
+ var canUseEvmBlockRewardService = /* @__PURE__ */ __name((params) => canUseEvmProvider({
1117
+ config: params.config
1118
+ }), "canUseEvmBlockRewardService");
1119
+ var initEvmBlockRewardService = /* @__PURE__ */ __name(async (params) => {
1078
1120
  if (rewardServiceSingleton) return rewardServiceSingleton;
1079
1121
  const { account: paramsAccount } = params;
1080
1122
  const account = assertEx15(paramsAccount, () => "Error: Account is required");
@@ -1086,10 +1128,13 @@ var initEvmBlockRewardService = async (params) => {
1086
1128
  };
1087
1129
  rewardServiceSingleton = EvmBlockRewardService.create(evmBlockRewardServiceParams);
1088
1130
  return rewardServiceSingleton;
1089
- };
1131
+ }, "initEvmBlockRewardService");
1090
1132
 
1091
1133
  // src/orchestration/status/ServiceStatus.ts
1092
1134
  var LoggerStatusReporter = class {
1135
+ static {
1136
+ __name(this, "LoggerStatusReporter");
1137
+ }
1093
1138
  logger;
1094
1139
  statusMap = {};
1095
1140
  constructor(logger) {
@@ -1099,7 +1144,9 @@ var LoggerStatusReporter = class {
1099
1144
  this.statusMap[name] = status;
1100
1145
  const starting = Object.entries(this.statusMap).map(([, value]) => value === "starting" ? 1 : 0).reduce((a, b) => a + b, 0);
1101
1146
  const started = Object.entries(this.statusMap).map(([, value]) => value === "started" ? 1 : 0).reduce((a, b) => a + b, 0);
1102
- this.logger.info(`${started}/${starting + started} ${name} status: ${status}`, { progress });
1147
+ this.logger.info(`${started}/${starting + started} ${name} status: ${status}`, {
1148
+ progress
1149
+ });
1103
1150
  }
1104
1151
  };
1105
1152
 
@@ -1114,7 +1161,7 @@ var statusPriority = {
1114
1161
  started: 6
1115
1162
  };
1116
1163
  var SENTINEL_STATUS = "starting";
1117
- var reduceToMinimumStatus = (statuses) => {
1164
+ var reduceToMinimumStatus = /* @__PURE__ */ __name((statuses) => {
1118
1165
  let minStatus = SENTINEL_STATUS;
1119
1166
  let minPriority = Infinity;
1120
1167
  for (const status of statuses) {
@@ -1125,8 +1172,11 @@ var reduceToMinimumStatus = (statuses) => {
1125
1172
  }
1126
1173
  }
1127
1174
  return minStatus;
1128
- };
1175
+ }, "reduceToMinimumStatus");
1129
1176
  var RuntimeStatusMonitor = class extends LoggerStatusReporter {
1177
+ static {
1178
+ __name(this, "RuntimeStatusMonitor");
1179
+ }
1130
1180
  globalTransitions = [];
1131
1181
  transitions = [];
1132
1182
  getGlobalStatus() {
@@ -1137,13 +1187,19 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
1137
1187
  return this.statusMap[name];
1138
1188
  }
1139
1189
  onGlobalTransition(match, handler) {
1140
- this.globalTransitions.push({ ...match, handler });
1190
+ this.globalTransitions.push({
1191
+ ...match,
1192
+ handler
1193
+ });
1141
1194
  }
1142
1195
  /**
1143
- * Register a callback to be called on a specific transition.
1144
- */
1196
+ * Register a callback to be called on a specific transition.
1197
+ */
1145
1198
  onTransition(match, handler) {
1146
- this.transitions.push({ ...match, handler });
1199
+ this.transitions.push({
1200
+ ...match,
1201
+ handler
1202
+ });
1147
1203
  }
1148
1204
  report(name, status, progress) {
1149
1205
  const previous = this.statusMap[name];
@@ -1156,12 +1212,7 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
1156
1212
  this.runTransitions(this.globalTransitions, previousGlobal, globalStatus);
1157
1213
  }
1158
1214
  runTransitions(transitions, prev, next, name) {
1159
- for (const {
1160
- from,
1161
- to,
1162
- name: matchName,
1163
- handler
1164
- } of transitions) {
1215
+ for (const { from, to, name: matchName, handler } of transitions) {
1165
1216
  if ((matchName === void 0 || matchName === name) && (from === void 0 || from === prev) && (to === void 0 || to === next)) {
1166
1217
  handler(prev, next);
1167
1218
  }
@@ -1180,24 +1231,28 @@ var telemetryConfig = {
1180
1231
  port: 9464
1181
1232
  }
1182
1233
  };
1183
- var isStartable = (value) => {
1234
+ var isStartable = /* @__PURE__ */ __name((value) => {
1184
1235
  return isDefined9(value.start) && typeof value.start === "function";
1185
- };
1186
- var initServices = async (context) => {
1236
+ }, "isStartable");
1237
+ var initServices = /* @__PURE__ */ __name(async (context) => {
1187
1238
  const { config: config3, logger } = context;
1188
1239
  const statusReporter = new RuntimeStatusMonitor(logger);
1189
- statusReporter.onGlobalTransition({ to: "started" }, () => {
1240
+ statusReporter.onGlobalTransition({
1241
+ to: "started"
1242
+ }, () => {
1190
1243
  logger.log("All services started.");
1191
1244
  });
1192
- statusReporter.onGlobalTransition({ to: "error" }, () => {
1245
+ statusReporter.onGlobalTransition({
1246
+ to: "error"
1247
+ }, () => {
1193
1248
  logger.error("Producer encountered an unhandled error!");
1194
1249
  process.exit(1);
1195
1250
  });
1196
- await startupSpanAsync7("initHealthEndpoints", () => initHealthEndpoints({ ...context, statusReporter }));
1197
- const [
1198
- { traceProvider, meterProvider },
1199
- account
1200
- ] = await Promise.all([
1251
+ await startupSpanAsync7("initHealthEndpoints", () => initHealthEndpoints({
1252
+ ...context,
1253
+ statusReporter
1254
+ }));
1255
+ const [{ traceProvider, meterProvider }, account] = await Promise.all([
1201
1256
  startupSpanAsync7("initTelemetry", () => initTelemetry(telemetryConfig)),
1202
1257
  startupSpanAsync7("initAccount", () => initAccount(context))
1203
1258
  ]);
@@ -1208,47 +1263,18 @@ var initServices = async (context) => {
1208
1263
  statusReporter,
1209
1264
  traceProvider
1210
1265
  };
1211
- const [
1212
- chainArchivist,
1213
- [pendingBundledTransactionsArchivist, pendingBundledTransactionsArchivistWrite],
1214
- rejectedTransactionsArchivist,
1215
- chainSubmissionsArchivistWrite,
1216
- stakeIntentStateArchivist,
1217
- chainService,
1218
- balanceSummaryMap
1219
- ] = await Promise.all([
1220
- startupSpanAsync7(
1221
- "ChainFinalizedArchivist",
1222
- () => initChainFinalizedArchivist(initParams)
1223
- ),
1224
- startupSpanAsync7(
1225
- "PendingBundledTransactionsArchivist",
1226
- () => initPendingBundledTransactionsArchivist(initParams)
1227
- ),
1228
- startupSpanAsync7(
1229
- "RejectedTransactionsArchivist",
1230
- () => initRejectedTransactionsArchivist(initParams)
1231
- ),
1232
- startupSpanAsync7(
1233
- "ChainSubmissionsArchivist",
1234
- () => initChainSubmissionsArchivist(initParams)
1235
- ),
1236
- startupSpanAsync7(
1237
- "StakeIntentStateArchivist",
1238
- () => initStakeIntentStateArchivist(initParams)
1239
- ),
1240
- startupSpanAsync7(
1241
- "ChainService",
1242
- () => initChainService({
1243
- ...initParams,
1244
- account,
1245
- name: "ChainService"
1246
- })
1247
- ),
1248
- startupSpanAsync7(
1249
- "BalanceSummaryMap",
1250
- () => initBalanceSummaryMap(initParams)
1251
- )
1266
+ const [chainArchivist, [pendingBundledTransactionsArchivist, pendingBundledTransactionsArchivistWrite], rejectedTransactionsArchivist, chainSubmissionsArchivistWrite, stakeIntentStateArchivist, chainService, balanceSummaryMap] = await Promise.all([
1267
+ startupSpanAsync7("ChainFinalizedArchivist", () => initChainFinalizedArchivist(initParams)),
1268
+ startupSpanAsync7("PendingBundledTransactionsArchivist", () => initPendingBundledTransactionsArchivist(initParams)),
1269
+ startupSpanAsync7("RejectedTransactionsArchivist", () => initRejectedTransactionsArchivist(initParams)),
1270
+ startupSpanAsync7("ChainSubmissionsArchivist", () => initChainSubmissionsArchivist(initParams)),
1271
+ startupSpanAsync7("StakeIntentStateArchivist", () => initStakeIntentStateArchivist(initParams)),
1272
+ startupSpanAsync7("ChainService", () => initChainService({
1273
+ ...initParams,
1274
+ account,
1275
+ name: "ChainService"
1276
+ })),
1277
+ startupSpanAsync7("BalanceSummaryMap", () => initBalanceSummaryMap(initParams))
1252
1278
  ]);
1253
1279
  const chainId = chainService.chainId;
1254
1280
  const chainContractViewer = chainService;
@@ -1260,12 +1286,7 @@ var initServices = async (context) => {
1260
1286
  chainArchivist,
1261
1287
  chainSubmissionsArchivistWrite
1262
1288
  }));
1263
- const [
1264
- pendingTransactionsService,
1265
- rewardService,
1266
- chainIterator,
1267
- balanceService
1268
- ] = await Promise.all([
1289
+ const [pendingTransactionsService, rewardService, chainIterator, balanceService] = await Promise.all([
1269
1290
  startupSpanAsync7("PendingTransactions", () => initPendingTransactions({
1270
1291
  name: "PendingTransactionsService",
1271
1292
  chainArchivist,
@@ -1274,55 +1295,40 @@ var initServices = async (context) => {
1274
1295
  rejectedTransactionsArchivist,
1275
1296
  ...initParams
1276
1297
  })),
1277
- startupSpanAsync7(
1278
- "RewardService",
1279
- () => initBlockRewardService({
1280
- name: "RewardService",
1281
- account,
1282
- chainService,
1283
- ...initParams
1284
- })
1285
- ),
1286
- startupSpanAsync7(
1287
- "ChainIterator",
1288
- () => initChainIterator({
1289
- name: "ChainIterator",
1290
- chainArchivist,
1291
- head,
1292
- ...initParams
1293
- })
1294
- ),
1295
- startupSpanAsync7(
1296
- "BalanceService",
1297
- () => initBalanceService({
1298
- name: "BalanceService",
1299
- chainArchivist,
1300
- summaryRepository: balanceSummaryRepositoryFromMap(balanceSummaryMap),
1301
- ...initParams
1302
- })
1303
- )
1304
- ]);
1305
- const stakeIntentService = await startupSpanAsync7(
1306
- "StakeIntentService",
1307
- () => initStakeIntentService({
1308
- name: "StakeIntentService",
1298
+ startupSpanAsync7("RewardService", () => initBlockRewardService({
1299
+ name: "RewardService",
1300
+ account,
1301
+ chainService,
1302
+ ...initParams
1303
+ })),
1304
+ startupSpanAsync7("ChainIterator", () => initChainIterator({
1305
+ name: "ChainIterator",
1309
1306
  chainArchivist,
1310
- chainIterator,
1311
- chainStakeViewer,
1312
- stakeIntentStateArchivist,
1307
+ head,
1313
1308
  ...initParams
1314
- })
1315
- );
1316
- const electionService = await startupSpanAsync7(
1317
- "ElectionService",
1318
- () => initElectionService({
1319
- name: "ElectionService",
1320
- chainIterator,
1321
- chainStakeViewer,
1322
- stakeIntentService,
1309
+ })),
1310
+ startupSpanAsync7("BalanceService", () => initBalanceService({
1311
+ name: "BalanceService",
1312
+ chainArchivist,
1313
+ summaryRepository: balanceSummaryRepositoryFromMap(balanceSummaryMap),
1323
1314
  ...initParams
1324
- })
1325
- );
1315
+ }))
1316
+ ]);
1317
+ const stakeIntentService = await startupSpanAsync7("StakeIntentService", () => initStakeIntentService({
1318
+ name: "StakeIntentService",
1319
+ chainArchivist,
1320
+ chainIterator,
1321
+ chainStakeViewer,
1322
+ stakeIntentStateArchivist,
1323
+ ...initParams
1324
+ }));
1325
+ const electionService = await startupSpanAsync7("ElectionService", () => initElectionService({
1326
+ name: "ElectionService",
1327
+ chainIterator,
1328
+ chainStakeViewer,
1329
+ stakeIntentService,
1330
+ ...initParams
1331
+ }));
1326
1332
  const validatorParams = {
1327
1333
  name: "Validator",
1328
1334
  account,
@@ -1365,31 +1371,37 @@ var initServices = async (context) => {
1365
1371
  stakeIntentService
1366
1372
  };
1367
1373
  logger?.log("All services created. Starting...");
1368
- const startableServices = [balanceSummaryMap, ...Object.values(result)].filter(isStartable);
1374
+ const startableServices = [
1375
+ balanceSummaryMap,
1376
+ ...Object.values(result)
1377
+ ].filter(isStartable);
1369
1378
  await Promise.all(startableServices.map((service) => service.start()));
1370
1379
  return result;
1371
- };
1380
+ }, "initServices");
1372
1381
 
1373
1382
  // src/commands/producer/runProducer.ts
1374
- var runProducer = async (context) => {
1375
- const {
1376
- config: config3,
1377
- logger,
1378
- orchestrator
1379
- } = context;
1383
+ var runProducer = /* @__PURE__ */ __name(async (context) => {
1384
+ const { config: config3, logger, orchestrator } = context;
1380
1385
  logger?.log("Services: Initializing...");
1381
1386
  const services = await initServices(context);
1382
1387
  logger?.log("Services: Initialized");
1383
- const params = { ...services, config: config3 };
1388
+ const params = {
1389
+ ...services,
1390
+ config: config3
1391
+ };
1384
1392
  const chainHeadUpdate = await ChainHeadUpdateActor.create(params);
1385
1393
  const balances = await BalanceActor.create(params);
1386
1394
  const producer = await ProducerActor.create(params);
1387
- const actors = [chainHeadUpdate, balances, producer];
1395
+ const actors = [
1396
+ chainHeadUpdate,
1397
+ balances,
1398
+ producer
1399
+ ];
1388
1400
  for (const actor of actors) {
1389
1401
  await orchestrator.registerActor(actor);
1390
1402
  }
1391
1403
  await orchestrator.start();
1392
- };
1404
+ }, "runProducer");
1393
1405
 
1394
1406
  // src/images.ts
1395
1407
  var XL1LogoColorizedAscii = `\x1B[38;2;128;128;128m\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\x1B[0m\x1B[38;2;118;111;144m_\x1B[0m
@@ -1413,13 +1425,9 @@ var XL1LogoColorizedAscii = `\x1B[38;2;128;128;128m\xA0\xA0\xA0\xA0\xA0\xA0\xA0\
1413
1425
 
1414
1426
  // src/initLogger.ts
1415
1427
  import { Base as Base2 } from "@xylabs/base";
1416
- import {
1417
- ConsoleLogger,
1418
- LogLevel,
1419
- SilentLogger
1420
- } from "@xylabs/logger";
1428
+ import { ConsoleLogger, LogLevel, SilentLogger } from "@xylabs/logger";
1421
1429
  import { isDefined as isDefined10 } from "@xylabs/typeof";
1422
- var initLogger = (config3) => {
1430
+ var initLogger = /* @__PURE__ */ __name((config3) => {
1423
1431
  let logger;
1424
1432
  if (config3.silent) {
1425
1433
  logger = new SilentLogger();
@@ -1433,15 +1441,15 @@ var initLogger = (config3) => {
1433
1441
  }
1434
1442
  Base2.defaultLogger = logger;
1435
1443
  return logger;
1436
- };
1444
+ }, "initLogger");
1437
1445
 
1438
1446
  // src/optionsFromGlobalZodRegistry.ts
1439
1447
  import { isUsageMeta } from "@xyo-network/xl1-protocol-sdk";
1440
1448
  import { globalRegistry } from "zod";
1441
- var usageMetaToOptions = (meta) => {
1449
+ var usageMetaToOptions = /* @__PURE__ */ __name((meta) => {
1442
1450
  return meta;
1443
- };
1444
- var optionsFromGlobalZodRegistry = () => {
1451
+ }, "usageMetaToOptions");
1452
+ var optionsFromGlobalZodRegistry = /* @__PURE__ */ __name(() => {
1445
1453
  const opts = {};
1446
1454
  for (const schema of globalRegistry._map.values()) {
1447
1455
  if (isUsageMeta(schema)) {
@@ -1450,28 +1458,15 @@ var optionsFromGlobalZodRegistry = () => {
1450
1458
  }
1451
1459
  }
1452
1460
  return opts;
1453
- };
1461
+ }, "optionsFromGlobalZodRegistry");
1454
1462
 
1455
1463
  // src/tryParseConfig.ts
1456
1464
  import { isDefined as isDefined11, isNull } from "@xylabs/typeof";
1457
1465
  import { cosmiconfigSync } from "cosmiconfig";
1458
1466
  var configName = "xyo";
1459
1467
  var configSection = "xl1";
1460
- var tryParseConfig = () => {
1461
- const explorer = cosmiconfigSync(
1462
- configName
1463
- /* {
1464
- searchPlaces: [
1465
- 'package.json', // Looks under `xyo` key in package.json
1466
- '.xyorc.json', // Supports common dotfile format
1467
- 'xyo.config.json', // Supports custom-named config file
1468
- ],
1469
- loaders: {
1470
- '.json': defaultLoaders['.json'],
1471
- 'noExt': defaultLoaders['.json'],
1472
- },
1473
- }, */
1474
- );
1468
+ var tryParseConfig = /* @__PURE__ */ __name(() => {
1469
+ const explorer = cosmiconfigSync(configName);
1475
1470
  const result = explorer.search();
1476
1471
  if (!isNull(result)) {
1477
1472
  const section = result?.config?.[configSection];
@@ -1480,13 +1475,13 @@ var tryParseConfig = () => {
1480
1475
  }
1481
1476
  }
1482
1477
  return {};
1483
- };
1478
+ }, "tryParseConfig");
1484
1479
 
1485
1480
  // src/waitForHostPort.ts
1486
1481
  import net from "net";
1487
- var waitForHostPort = (host, port) => {
1482
+ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
1488
1483
  return new Promise((resolve) => {
1489
- const tryConnect = () => {
1484
+ const tryConnect = /* @__PURE__ */ __name(() => {
1490
1485
  const socket = new net.Socket();
1491
1486
  socket.setTimeout(1e3).once("error", () => {
1492
1487
  socket.destroy();
@@ -1498,15 +1493,15 @@ var waitForHostPort = (host, port) => {
1498
1493
  socket.end();
1499
1494
  resolve();
1500
1495
  });
1501
- };
1496
+ }, "tryConnect");
1502
1497
  tryConnect();
1503
1498
  });
1504
- };
1499
+ }, "waitForHostPort");
1505
1500
 
1506
1501
  // src/runCLI.ts
1507
1502
  var config;
1508
- var version = isDefined12("1.11.0") ? "1.11.0" : "unknown";
1509
- var getContextFromConfig = (config3) => {
1503
+ var version = isDefined12("1.12.0") ? "1.12.0" : "unknown";
1504
+ var getContextFromConfig = /* @__PURE__ */ __name((config3) => {
1510
1505
  const logger = initLogger(config3);
1511
1506
  const orchestrator = new Orchestrator(logger);
1512
1507
  process.on("SIGINT", () => {
@@ -1522,8 +1517,11 @@ var getContextFromConfig = (config3) => {
1522
1517
  }
1523
1518
  })();
1524
1519
  });
1525
- return { logger, orchestrator };
1526
- };
1520
+ return {
1521
+ logger,
1522
+ orchestrator
1523
+ };
1524
+ }, "getContextFromConfig");
1527
1525
  async function runCLI() {
1528
1526
  const y = yargs(hideBin(process.argv));
1529
1527
  const argv = y.usage(`
@@ -1534,9 +1532,7 @@ Run various components of the XL1 ecosystem.
1534
1532
  Usage:
1535
1533
  $0 <command> [options]`).parserConfiguration({
1536
1534
  "dot-notation": true,
1537
- // foo.bar → { foo: { bar } }
1538
1535
  "populate--": true
1539
- // Populate -- with all options so we can detected user-supplied vs defaults
1540
1536
  }).env("XL1").scriptName("xl1").middleware((argv2) => {
1541
1537
  try {
1542
1538
  const parsedConfigFile = tryParseConfig();
@@ -1553,29 +1549,44 @@ $0 <command> [options]`).parserConfiguration({
1553
1549
  return yargs2.command("$0", "Run a XL1 API Node", () => {
1554
1550
  }, () => {
1555
1551
  const context = getContextFromConfig(config);
1556
- runApi({ ...context, config });
1552
+ runApi({
1553
+ ...context,
1554
+ config
1555
+ });
1557
1556
  });
1558
1557
  }).command("producer", "Run a XL1 Producer Node", (yargs2) => {
1559
1558
  return yargs2.command("$0", "Run a XL1 Producer Node", () => {
1560
1559
  }, async () => {
1561
1560
  const context = getContextFromConfig(config);
1562
- await runProducer({ ...context, config });
1561
+ await runProducer({
1562
+ ...context,
1563
+ config
1564
+ });
1563
1565
  });
1564
1566
  }).command("$0", "Run a full XL1 Node", () => {
1565
1567
  }, async () => {
1566
1568
  const context = getContextFromConfig(config);
1567
- runApi({ ...context, config });
1569
+ runApi({
1570
+ ...context,
1571
+ config
1572
+ });
1568
1573
  await waitForHostPort("localhost", config.api.port);
1569
- await runProducer({ ...context, config });
1574
+ await runProducer({
1575
+ ...context,
1576
+ config
1577
+ });
1570
1578
  }).help().alias("help", "h").version(version).argv;
1571
1579
  await argv;
1572
1580
  }
1581
+ __name(runCLI, "runCLI");
1573
1582
 
1574
1583
  // src/start.ts
1575
- var start = async () => {
1576
- config2({ quiet: true });
1584
+ var start = /* @__PURE__ */ __name(async () => {
1585
+ config2({
1586
+ quiet: true
1587
+ });
1577
1588
  await runCLI();
1578
- };
1589
+ }, "start");
1579
1590
 
1580
1591
  // src/xl1.ts
1581
1592
  start().catch((err) => {