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

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