@xyo-network/chain-orchestration 1.20.21 → 1.20.22

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 (100) hide show
  1. package/dist/browser/index.mjs +176 -124
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  4. package/dist/{neutral/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → browser/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
  5. package/dist/browser/node/config/locators/actors/index.d.ts +1 -1
  6. package/dist/browser/node/config/locators/actors/index.d.ts.map +1 -1
  7. package/dist/browser/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  8. package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  9. package/dist/browser/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  10. package/dist/browser/node/config/locators/locatorsFromConfig.d.ts +1 -1
  11. package/dist/browser/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  12. package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  13. package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  14. package/dist/browser/node/config/tryParseConfig.d.ts +3 -154
  15. package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
  16. package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  17. package/dist/browser/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  18. package/dist/{neutral/shared/actor/ValidatorActor.d.ts → browser/shared/actor/FinalizerActor.d.ts} +6 -9
  19. package/dist/browser/shared/actor/FinalizerActor.d.ts.map +1 -0
  20. package/dist/browser/shared/actor/index.d.ts +1 -1
  21. package/dist/browser/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +12 -12
  22. package/dist/browser/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  23. package/dist/browser/shared/config/actors/index.d.ts +1 -1
  24. package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
  25. package/dist/browser/shared/index.d.ts +1 -0
  26. package/dist/browser/shared/index.d.ts.map +1 -1
  27. package/dist/browser/shared/init/walletResolution.d.ts +4 -1
  28. package/dist/browser/shared/init/walletResolution.d.ts.map +1 -1
  29. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  30. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  31. package/dist/browser/shared/provider/index.d.ts +2 -0
  32. package/dist/browser/shared/provider/index.d.ts.map +1 -0
  33. package/dist/neutral/index.mjs +176 -124
  34. package/dist/neutral/index.mjs.map +1 -1
  35. package/dist/neutral/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  36. package/dist/{browser/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → neutral/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
  37. package/dist/neutral/node/config/locators/actors/index.d.ts +1 -1
  38. package/dist/neutral/node/config/locators/actors/index.d.ts.map +1 -1
  39. package/dist/neutral/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  40. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  41. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  42. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts +1 -1
  43. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  44. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  45. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  46. package/dist/neutral/node/config/tryParseConfig.d.ts +3 -154
  47. package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
  48. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  49. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  50. package/dist/{node/shared/actor/ValidatorActor.d.ts → neutral/shared/actor/FinalizerActor.d.ts} +6 -9
  51. package/dist/neutral/shared/actor/FinalizerActor.d.ts.map +1 -0
  52. package/dist/neutral/shared/actor/index.d.ts +1 -1
  53. package/dist/neutral/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +12 -12
  54. package/dist/neutral/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  55. package/dist/neutral/shared/config/actors/index.d.ts +1 -1
  56. package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
  57. package/dist/neutral/shared/index.d.ts +1 -0
  58. package/dist/neutral/shared/index.d.ts.map +1 -1
  59. package/dist/neutral/shared/init/walletResolution.d.ts +4 -1
  60. package/dist/neutral/shared/init/walletResolution.d.ts.map +1 -1
  61. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  62. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  63. package/dist/neutral/shared/provider/index.d.ts +2 -0
  64. package/dist/neutral/shared/provider/index.d.ts.map +1 -0
  65. package/dist/node/index.mjs +272 -173
  66. package/dist/node/index.mjs.map +1 -1
  67. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  68. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts.map → finalizerLocatorFromConfig.d.ts.map} +1 -1
  69. package/dist/node/node/config/locators/actors/index.d.ts +1 -1
  70. package/dist/node/node/config/locators/actors/index.d.ts.map +1 -1
  71. package/dist/node/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  72. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  73. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  74. package/dist/node/node/config/locators/locatorsFromConfig.d.ts +1 -1
  75. package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  76. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  77. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  78. package/dist/node/node/config/tryParseConfig.d.ts +3 -154
  79. package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
  80. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  81. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  82. package/dist/{browser/shared/actor/ValidatorActor.d.ts → node/shared/actor/FinalizerActor.d.ts} +6 -9
  83. package/dist/node/shared/actor/FinalizerActor.d.ts.map +1 -0
  84. package/dist/node/shared/actor/index.d.ts +1 -1
  85. package/dist/node/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +12 -12
  86. package/dist/node/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  87. package/dist/node/shared/config/actors/index.d.ts +1 -1
  88. package/dist/node/shared/config/actors/index.d.ts.map +1 -1
  89. package/dist/node/shared/index.d.ts +1 -0
  90. package/dist/node/shared/index.d.ts.map +1 -1
  91. package/dist/node/shared/init/walletResolution.d.ts +4 -1
  92. package/dist/node/shared/init/walletResolution.d.ts.map +1 -1
  93. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  94. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  95. package/dist/node/shared/provider/index.d.ts +2 -0
  96. package/dist/node/shared/provider/index.d.ts.map +1 -0
  97. package/package.json +20 -20
  98. package/dist/browser/shared/actor/ValidatorActor.d.ts.map +0 -1
  99. package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +0 -1
  100. package/dist/node/shared/actor/ValidatorActor.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
- // src/shared/actor/ValidatorActor.ts
4
+ // src/shared/actor/FinalizerActor.ts
5
5
  import { creatable } from "@xylabs/sdk-js";
6
6
  import { processPendingBlocks } from "@xyo-network/chain-sdk";
7
7
  import { ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, DeadLetterQueueRunnerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
@@ -12,16 +12,14 @@ function _ts_decorate(decorators, target, key, desc) {
12
12
  return c > 3 && r && Object.defineProperty(target, key, r), r;
13
13
  }
14
14
  __name(_ts_decorate, "_ts_decorate");
15
- var ValidatorActor = class extends ActorV3 {
15
+ var FinalizerActor = class extends ActorV3 {
16
16
  static {
17
- __name(this, "ValidatorActor");
17
+ __name(this, "FinalizerActor");
18
18
  }
19
19
  _blockValidationViewer;
20
20
  _blockViewer;
21
21
  _deadLetterQueueRunner;
22
22
  _finalizationRunner;
23
- _lastValidatedBlock;
24
- _lastValidatedBlockHash;
25
23
  _mempoolViewer;
26
24
  get allowedProducers() {
27
25
  return this.params.config.allowedProducers ?? [];
@@ -51,9 +49,9 @@ var ValidatorActor = class extends ActorV3 {
51
49
  }
52
50
  async startHandler() {
53
51
  await super.startHandler();
54
- this.registerTimer("ValidatorActor", async () => {
52
+ this.registerTimer("FinalizerActor", async () => {
55
53
  await this.spanAsync("processPendingBlocks", async () => {
56
- this.logger?.debug("ValidatorActor: Processing pending blocks...");
54
+ this.logger?.debug("FinalizerActor: Processing pending blocks...");
57
55
  await processPendingBlocks({
58
56
  blockValidationViewer: this.blockValidationViewer,
59
57
  context: this.context,
@@ -72,9 +70,9 @@ var ValidatorActor = class extends ActorV3 {
72
70
  }, 2e3, 500);
73
71
  }
74
72
  };
75
- ValidatorActor = _ts_decorate([
73
+ FinalizerActor = _ts_decorate([
76
74
  creatable()
77
- ], ValidatorActor);
75
+ ], FinalizerActor);
78
76
 
79
77
  // src/shared/buildTelemetryConfig.ts
80
78
  function buildTelemetryConfig(config, serviceName, serviceVersion, defaultMetricsScrapePort = 9464) {
@@ -248,17 +246,36 @@ var isBridgeConfigContext = zodIsFactory2(BridgeConfigContext);
248
246
  var asBridgeConfigContext = zodAsFactory2(BridgeConfigContext, "asBridgeConfigContext");
249
247
  var toBridgeConfigContext = zodToFactory2(BridgeConfigContext, "toBridgeConfigContext");
250
248
 
251
- // src/shared/config/actors/Mempool.ts
252
- import { zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
249
+ // src/shared/config/actors/Finalizer.ts
250
+ import { AddressZod as AddressZod2, zodAsFactory as zodAsFactory3, zodIsFactory as zodIsFactory3, zodToFactory as zodToFactory3 } from "@xylabs/sdk-js";
253
251
  import { BaseConfigContextZod as BaseConfigContextZod3, HostActorConfigZod as HostActorConfigZod3 } from "@xyo-network/xl1-sdk";
254
- import { globalRegistry as globalRegistry4, z as z4 } from "zod";
252
+ import { z as z4 } from "zod";
253
+ var FinalizerConfigZod = HostActorConfigZod3.extend({
254
+ accountIndex: ActorAccountIndexZod("finalizer.accountIndex"),
255
+ allowedProducers: z4.array(AddressZod2).optional(),
256
+ minCandidates: z4.number().int().min(0).default(1)
257
+ });
258
+ var isFinalizerConfig = zodIsFactory3(FinalizerConfigZod);
259
+ var asFinalizerConfig = zodAsFactory3(FinalizerConfigZod, "asFinalizerConfig");
260
+ var toFinalizerConfig = zodToFactory3(FinalizerConfigZod, "toFinalizerConfig");
261
+ var FinalizerConfigContext = BaseConfigContextZod3.extend({
262
+ config: FinalizerConfigZod
263
+ });
264
+ var isFinalizerConfigContext = zodIsFactory3(FinalizerConfigContext);
265
+ var asFinalizerConfigContext = zodAsFactory3(FinalizerConfigContext, "asFinalizerConfigContext");
266
+ var toFinalizerConfigContext = zodToFactory3(FinalizerConfigContext, "toFinalizerConfigContext");
267
+
268
+ // src/shared/config/actors/Mempool.ts
269
+ import { zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
270
+ import { BaseConfigContextZod as BaseConfigContextZod4, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
271
+ import { globalRegistry as globalRegistry4, z as z5 } from "zod";
255
272
  var DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL = 1e3;
256
273
  var DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL = 1e3;
257
- var MempoolConfigZod = HostActorConfigZod3.extend({
274
+ var MempoolConfigZod = HostActorConfigZod4.extend({
258
275
  accountIndex: ActorAccountIndexZod("mempool.accountIndex"),
259
- enabled: z4.union([
260
- z4.string(),
261
- z4.boolean()
276
+ enabled: z5.union([
277
+ z5.string(),
278
+ z5.boolean()
262
279
  ]).default("false").transform((val, ctx) => {
263
280
  if (typeof val === "boolean") return val;
264
281
  const normalized = val.toLowerCase().trim();
@@ -279,123 +296,104 @@ var MempoolConfigZod = HostActorConfigZod3.extend({
279
296
  expected: "boolean",
280
297
  message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
281
298
  });
282
- return z4.NEVER;
299
+ return z5.NEVER;
283
300
  }).register(globalRegistry4, {
284
301
  default: "false",
285
302
  description: "Enable the Mempool",
286
303
  title: "mempool.enabled",
287
304
  type: "boolean"
288
305
  }),
289
- blockPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry4, {
306
+ blockPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry4, {
290
307
  description: "The interval time (in milliseconds) between pending block prune attempts",
291
308
  title: "mempool.blockPruneInterval",
292
309
  type: "number"
293
310
  }),
294
- transactionPruneInterval: z4.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry4, {
311
+ transactionPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry4, {
295
312
  description: "The interval time (in milliseconds) between pending transaction prune attempts",
296
313
  title: "mempool.transactionPruneInterval",
297
314
  type: "number"
298
315
  })
299
316
  });
300
- var isMempoolConfig = zodIsFactory3(MempoolConfigZod);
301
- var asMempoolConfig = zodAsFactory3(MempoolConfigZod, "asMempoolConfig");
302
- var toMempoolConfig = zodToFactory3(MempoolConfigZod, "toMempoolConfig");
303
- var MempoolConfigContext = BaseConfigContextZod3.extend({
317
+ var isMempoolConfig = zodIsFactory4(MempoolConfigZod);
318
+ var asMempoolConfig = zodAsFactory4(MempoolConfigZod, "asMempoolConfig");
319
+ var toMempoolConfig = zodToFactory4(MempoolConfigZod, "toMempoolConfig");
320
+ var MempoolConfigContext = BaseConfigContextZod4.extend({
304
321
  config: MempoolConfigZod
305
322
  });
306
- var isMempoolConfigContext = zodIsFactory3(MempoolConfigContext);
307
- var asMempoolConfigContext = zodAsFactory3(MempoolConfigContext, "asMempoolConfigContext");
308
- var toMempoolConfigContext = zodToFactory3(MempoolConfigContext, "toMempoolConfigContext");
323
+ var isMempoolConfigContext = zodIsFactory4(MempoolConfigContext);
324
+ var asMempoolConfigContext = zodAsFactory4(MempoolConfigContext, "asMempoolConfigContext");
325
+ var toMempoolConfigContext = zodToFactory4(MempoolConfigContext, "toMempoolConfigContext");
309
326
 
310
327
  // src/shared/config/actors/Producer.ts
311
- import { AddressZod as AddressZod2, asAddress, zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
312
- import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod4 } from "@xyo-network/xl1-sdk";
313
- import { globalRegistry as globalRegistry5, z as z5 } from "zod";
328
+ import { AddressZod as AddressZod3, asAddress, zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
329
+ import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod5 } from "@xyo-network/xl1-sdk";
330
+ import { globalRegistry as globalRegistry5, z as z6 } from "zod";
314
331
  var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
315
- var ProducerConfigZod = ActorConfigZod.extend(z5.object({
332
+ var ProducerConfigZod = ActorConfigZod.extend(z6.object({
316
333
  accountIndex: ActorAccountIndexZod("producer.accountIndex"),
317
- allowlist: z5.preprocess((val) => {
334
+ allowlist: z6.preprocess((val) => {
318
335
  if (typeof val === "string") {
319
336
  return val.split(",").map((s) => asAddress(s.trim()));
320
337
  }
321
338
  return val;
322
- }, z5.array(AddressZod2).optional().register(globalRegistry5, {
339
+ }, z6.array(AddressZod3).optional().register(globalRegistry5, {
323
340
  description: "List of allowed producer addresses, if undefined anyone can participate",
324
341
  title: "allowlist",
325
342
  type: "array"
326
343
  })),
327
- blockProductionCheckInterval: z5.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry5, {
344
+ blockProductionCheckInterval: z6.coerce.number().default(DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL).register(globalRegistry5, {
328
345
  description: "The interval time (in milliseconds) between block production attempts",
329
346
  title: "producer.blockProductionCheckInterval",
330
347
  type: "number"
331
348
  }),
332
- disableIntentRedeclaration: z5.boolean().optional().register(globalRegistry5, {
349
+ disableIntentRedeclaration: z6.boolean().optional().register(globalRegistry5, {
333
350
  description: "Should the producer skip redeclaring their intent to continue producing blocks",
334
351
  title: "producer.disableIntentRedeclaration",
335
352
  type: "boolean"
336
353
  }),
337
- heartbeatInterval: z5.coerce.number().default(36e5).register(globalRegistry5, {
354
+ heartbeatInterval: z6.coerce.number().default(36e5).register(globalRegistry5, {
338
355
  description: "The number of milliseconds between heartbeats if no blocks are produced",
339
356
  title: "producer.heartbeatInterval",
340
357
  type: "number"
341
358
  }),
342
359
  // TODO: BigInt schema
343
- minStake: z5.coerce.number().default(1).register(globalRegistry5, {
360
+ minStake: z6.coerce.number().default(1).register(globalRegistry5, {
344
361
  description: "Minimum stake required to be a Producer",
345
362
  title: "producer.minStake",
346
363
  type: "number"
347
364
  }),
348
365
  // TODO: Address schema
349
- rewardAddress: z5.string().optional().register(globalRegistry5, {
366
+ rewardAddress: z6.string().optional().register(globalRegistry5, {
350
367
  description: "Address to receive block rewards",
351
368
  title: "producer.rewardAddress",
352
369
  type: "string"
353
370
  })
354
371
  }).shape);
355
- var isProducerConfig = zodIsFactory4(ProducerConfigZod);
356
- var asProducerConfig = zodAsFactory4(ProducerConfigZod, "asProducerConfig");
357
- var toProducerConfig = zodToFactory4(ProducerConfigZod, "toProducerConfig");
358
- var ProducerConfigContext = BaseConfigContextZod4.extend({
372
+ var isProducerConfig = zodIsFactory5(ProducerConfigZod);
373
+ var asProducerConfig = zodAsFactory5(ProducerConfigZod, "asProducerConfig");
374
+ var toProducerConfig = zodToFactory5(ProducerConfigZod, "toProducerConfig");
375
+ var ProducerConfigContext = BaseConfigContextZod5.extend({
359
376
  config: ProducerConfigZod
360
377
  });
361
- var isProducerConfigContext = zodIsFactory4(ProducerConfigContext);
362
- var asProducerConfigContext = zodAsFactory4(ProducerConfigContext, "asProducerConfigContext");
363
- var toProducerConfigContext = zodToFactory4(ProducerConfigContext, "toProducerConfigContext");
378
+ var isProducerConfigContext = zodIsFactory5(ProducerConfigContext);
379
+ var asProducerConfigContext = zodAsFactory5(ProducerConfigContext, "asProducerConfigContext");
380
+ var toProducerConfigContext = zodToFactory5(ProducerConfigContext, "toProducerConfigContext");
364
381
 
365
382
  // src/shared/config/actors/RewardRedemption.ts
366
- import { zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
367
- import { BaseConfigContextZod as BaseConfigContextZod5, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
368
- var RewardRedemptionConfigZod = HostActorConfigZod4.extend({
383
+ import { zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
384
+ import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
385
+ var RewardRedemptionConfigZod = HostActorConfigZod5.extend({
369
386
  accountIndex: ActorAccountIndexZod("rewardRedemption.accountIndex")
370
387
  });
371
- var isRewardRedemptionConfig = zodIsFactory5(RewardRedemptionConfigZod);
372
- var asRewardRedemptionConfig = zodAsFactory5(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
373
- var toRewardRedemptionConfig = zodToFactory5(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
374
- var RewardRedemptionConfigContext = BaseConfigContextZod5.extend({
388
+ var isRewardRedemptionConfig = zodIsFactory6(RewardRedemptionConfigZod);
389
+ var asRewardRedemptionConfig = zodAsFactory6(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
390
+ var toRewardRedemptionConfig = zodToFactory6(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
391
+ var RewardRedemptionConfigContext = BaseConfigContextZod6.extend({
375
392
  config: RewardRedemptionConfigZod
376
393
  });
377
- var isRewardRedemptionConfigContext = zodIsFactory5(RewardRedemptionConfigContext);
378
- var asRewardRedemptionConfigContext = zodAsFactory5(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
379
- var toRewardRedemptionConfigContext = zodToFactory5(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
380
-
381
- // src/shared/config/actors/Validator.ts
382
- import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
383
- import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
384
- import { z as z6 } from "zod";
385
- var ValidatorConfigZod = HostActorConfigZod5.extend({
386
- accountIndex: ActorAccountIndexZod("validator.accountIndex"),
387
- allowedProducers: z6.array(AddressZod3).optional(),
388
- minCandidates: z6.number().int().min(0).default(1)
389
- });
390
- var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
391
- var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
392
- var toValidatorConfig = zodToFactory6(ValidatorConfigZod, "toValidatorConfig");
393
- var ValidatorConfigContext = BaseConfigContextZod6.extend({
394
- config: ValidatorConfigZod
395
- });
396
- var isValidatorConfigContext = zodIsFactory6(ValidatorConfigContext);
397
- var asValidatorConfigContext = zodAsFactory6(ValidatorConfigContext, "asValidatorConfigContext");
398
- var toValidatorConfigContext = zodToFactory6(ValidatorConfigContext, "toValidatorConfigContext");
394
+ var isRewardRedemptionConfigContext = zodIsFactory6(RewardRedemptionConfigContext);
395
+ var asRewardRedemptionConfigContext = zodAsFactory6(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
396
+ var toRewardRedemptionConfigContext = zodToFactory6(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
399
397
 
400
398
  // src/shared/config/mergeConfig.ts
401
399
  import { deepMerge } from "@xylabs/sdk-js";
@@ -476,19 +474,19 @@ var RESERVED_ACTOR_INDEX = {
476
474
  [ROOT_WALLET_RUNTIME_ID]: 0,
477
475
  api: 4,
478
476
  bridge: 2,
477
+ finalizer: 6,
479
478
  mempool: 5,
480
479
  producer: 1,
481
- rewardRedemption: 3,
482
- validator: 6
480
+ rewardRedemption: 3
483
481
  };
484
482
  var ACTOR_LABELS = {
485
483
  [ROOT_WALLET_RUNTIME_ID]: "root/local-node",
486
484
  api: "api",
487
485
  bridge: "bridge",
486
+ finalizer: "finalizer",
488
487
  mempool: "mempool",
489
488
  producer: "producer",
490
- rewardRedemption: "rewardRedemption",
491
- validator: "validator"
489
+ rewardRedemption: "rewardRedemption"
492
490
  };
493
491
  var activeWalletReport;
494
492
  function getAccountLabel(actorName) {
@@ -512,11 +510,13 @@ function getInsecureGenesisRewardMnemonic() {
512
510
  }
513
511
  __name(getInsecureGenesisRewardMnemonic, "getInsecureGenesisRewardMnemonic");
514
512
  function resolveRootWallet(configuration) {
513
+ const isConfigured = configuration.mnemonic !== void 0;
515
514
  const mnemonic = configuration.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
516
515
  const isBuiltInDevMnemonic = mnemonic === BUILT_IN_DEV_MNEMONIC;
517
516
  return {
518
517
  basePath: DEFAULT_WALLET_PATH,
519
518
  isBuiltInDevMnemonic,
519
+ isConfigured,
520
520
  mnemonic,
521
521
  mnemonicKind: isBuiltInDevMnemonic ? "built-in-dev" : "configured-root"
522
522
  };
@@ -564,6 +564,7 @@ async function resolveWalletReport(requestedActors, configuration) {
564
564
  actor.name,
565
565
  actor
566
566
  ]));
567
+ const isRootRequired = requestedActors.some((actorName) => !actorConfigMap.get(actorName)?.mnemonic);
567
568
  const resolvedActors = await Promise.all(requestedActors.map(async (actorName) => await resolveActorWallet(actorName, actorConfigMap.get(actorName), root)));
568
569
  const labelMap = /* @__PURE__ */ new Map([
569
570
  [
@@ -595,7 +596,19 @@ async function resolveWalletReport(requestedActors, configuration) {
595
596
  label: labels?.join(", ") ?? `shared[${accountIndex}]`
596
597
  };
597
598
  }));
598
- const insecureGenesisRewardAccounts = configuration.chain.genesisRewardAddress ? void 0 : await Promise.all(Array.from({
599
+ return {
600
+ actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
601
+ isRootRequired,
602
+ requestedActors: [
603
+ ...requestedActors
604
+ ],
605
+ root,
606
+ sharedAccounts
607
+ };
608
+ }
609
+ __name(resolveWalletReport, "resolveWalletReport");
610
+ async function buildInsecureGenesisRewardAccounts() {
611
+ const accounts = await Promise.all(Array.from({
599
612
  length: SHARED_ACCOUNT_REPORT_COUNT
600
613
  }, (_, index) => index).map(async (accountIndex) => {
601
614
  const account = await resolveWalletMetadata({
@@ -610,17 +623,9 @@ async function resolveWalletReport(requestedActors, configuration) {
610
623
  label: accountIndex === 0 ? "genesisRewardAddress" : `genesisReward[${accountIndex}]`
611
624
  };
612
625
  }));
613
- return {
614
- actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
615
- insecureGenesisRewardAccounts,
616
- requestedActors: [
617
- ...requestedActors
618
- ],
619
- root,
620
- sharedAccounts
621
- };
626
+ return accounts;
622
627
  }
623
- __name(resolveWalletReport, "resolveWalletReport");
628
+ __name(buildInsecureGenesisRewardAccounts, "buildInsecureGenesisRewardAccounts");
624
629
  async function initializeResolvedWalletReport(requestedActors, configuration) {
625
630
  activeWalletReport = await resolveWalletReport(requestedActors, configuration);
626
631
  return activeWalletReport;
@@ -663,8 +668,13 @@ function formatGenesisRewardAccount(account) {
663
668
  __name(formatGenesisRewardAccount, "formatGenesisRewardAccount");
664
669
  function formatWalletReport(report) {
665
670
  const sections = [];
666
- const showSecrets = report.root.isBuiltInDevMnemonic;
667
- sections.push(showSecrets ? "Development wallet detected." : "Wallet summary");
671
+ const showRootSection = report.isRootRequired || report.root.isConfigured;
672
+ const showSecrets = report.root.isBuiltInDevMnemonic && showRootSection;
673
+ if (showRootSection) {
674
+ sections.push(showSecrets ? "Development wallet detected." : "Wallet summary");
675
+ } else {
676
+ sections.push("Wallet summary (root wallet not required \u2014 every requested actor has its own mnemonic)");
677
+ }
668
678
  if (showSecrets) {
669
679
  sections.push([
670
680
  "DEVELOPMENT WALLET WARNING",
@@ -678,39 +688,42 @@ function formatWalletReport(report) {
678
688
  report.root.mnemonic
679
689
  ].join("\n"));
680
690
  }
681
- sections.push([
682
- `Shared wallet accounts from ${report.root.basePath}:`,
683
- "",
684
- report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
685
- ].join("\n"));
686
- if (report.actorSpecificAccounts.length > 0) {
691
+ if (showRootSection) {
687
692
  sections.push([
688
- "Actor-specific wallet accounts:",
693
+ `Shared wallet accounts from ${report.root.basePath}:`,
689
694
  "",
690
- report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
695
+ report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
691
696
  ].join("\n"));
692
697
  }
693
- if (report.insecureGenesisRewardAccounts) {
698
+ if (report.actorSpecificAccounts.length > 0) {
694
699
  sections.push([
695
- "INSECURE GENESIS REWARD WALLET WARNING",
696
- "",
697
- "XL1 is using a public, insecure fallback wallet for the genesis reward address.",
698
- "This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
699
- "Anyone with this information can fully control the genesis reward wallet.",
700
- "",
701
- "Genesis reward phrase:",
702
- INSECURE_GENESIS_REWARD_MNEMONIC,
703
- "",
704
- `The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
705
- "",
706
- `Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
700
+ "Actor-specific wallet accounts:",
707
701
  "",
708
- report.insecureGenesisRewardAccounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
702
+ report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
709
703
  ].join("\n"));
710
704
  }
711
705
  return sections.join("\n\n");
712
706
  }
713
707
  __name(formatWalletReport, "formatWalletReport");
708
+ function formatInsecureGenesisRewardWarning(accounts) {
709
+ return [
710
+ "INSECURE GENESIS REWARD WALLET WARNING",
711
+ "",
712
+ "XL1 is using a public, insecure fallback wallet for the genesis reward address.",
713
+ "This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
714
+ "Anyone with this information can fully control the genesis reward wallet.",
715
+ "",
716
+ "Genesis reward phrase:",
717
+ INSECURE_GENESIS_REWARD_MNEMONIC,
718
+ "",
719
+ `The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
720
+ "",
721
+ `Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
722
+ "",
723
+ accounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
724
+ ].join("\n");
725
+ }
726
+ __name(formatInsecureGenesisRewardWarning, "formatInsecureGenesisRewardWarning");
714
727
  async function resolveGenesisRewardAddress(config) {
715
728
  if (config.chain.genesisRewardAddress) return config.chain.genesisRewardAddress;
716
729
  const wallet = await generateXyoBaseWalletFromPhrase(INSECURE_GENESIS_REWARD_MNEMONIC);
@@ -879,6 +892,41 @@ Orchestrator = _ts_decorate2([
879
892
  creatable2()
880
893
  ], Orchestrator);
881
894
 
895
+ // src/shared/provider/SimpleRejectedTransactionsArchivistProvider.ts
896
+ import { assertEx as assertEx3 } from "@xylabs/sdk-js";
897
+ import { AbstractCreatableProvider, creatableProvider } from "@xyo-network/xl1-sdk";
898
+ function _ts_decorate3(decorators, target, key, desc) {
899
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
900
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
901
+ 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;
902
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
903
+ }
904
+ __name(_ts_decorate3, "_ts_decorate");
905
+ var RejectedTransactionsArchivistProviderMoniker = "RejectedTransactionsArchivistProvider";
906
+ var SimpleRejectedTransactionsArchivistProvider = class _SimpleRejectedTransactionsArchivistProvider extends AbstractCreatableProvider {
907
+ static {
908
+ __name(this, "SimpleRejectedTransactionsArchivistProvider");
909
+ }
910
+ static defaultMoniker = RejectedTransactionsArchivistProviderMoniker;
911
+ static dependencies = [];
912
+ static monikers = [
913
+ RejectedTransactionsArchivistProviderMoniker
914
+ ];
915
+ moniker = _SimpleRejectedTransactionsArchivistProvider.defaultMoniker;
916
+ get archivist() {
917
+ return this.params.archivist;
918
+ }
919
+ static async paramsHandler(params) {
920
+ return {
921
+ ...await super.paramsHandler(params),
922
+ archivist: assertEx3(params?.archivist, () => "archivist is required")
923
+ };
924
+ }
925
+ };
926
+ SimpleRejectedTransactionsArchivistProvider = _ts_decorate3([
927
+ creatableProvider()
928
+ ], SimpleRejectedTransactionsArchivistProvider);
929
+
882
930
  // src/neutral/config/locators/basicRemoteRunnerLocator.ts
883
931
  import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from "@xyo-network/xl1-sdk";
884
932
  function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, validators) {
@@ -898,12 +946,12 @@ function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, validato
898
946
  __name(basicRemoteViewerLocator, "basicRemoteViewerLocator");
899
947
 
900
948
  // src/neutral/config/locators/rootLocatorFromConfig.ts
901
- import { assertEx as assertEx3 } from "@xylabs/sdk-js";
949
+ import { assertEx as assertEx4 } from "@xylabs/sdk-js";
902
950
  import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
903
951
  async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
904
952
  const { config } = context;
905
953
  await commonLocatorFromConfig(context, validateDepsOnRegister);
906
- const locator = assertEx3(await (config.remote.rpc ? remoteLocatorFromConfig(context, validateDepsOnRegister) : void 0), () => "Root locator could not be created from config. No supported configuration found.");
954
+ const locator = assertEx4(await (config.remote.rpc ? remoteLocatorFromConfig(context, validateDepsOnRegister) : void 0), () => "Root locator could not be created from config. No supported configuration found.");
907
955
  locator.freeze();
908
956
  return locator;
909
957
  }
@@ -920,6 +968,9 @@ export {
920
968
  DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL,
921
969
  DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL,
922
970
  DefaultServiceProvider,
971
+ FinalizerActor,
972
+ FinalizerConfigContext,
973
+ FinalizerConfigZod,
923
974
  GENESIS_REWARD_AMOUNT,
924
975
  GenericHost,
925
976
  INSECURE_GENESIS_REWARD_MNEMONIC,
@@ -929,30 +980,31 @@ export {
929
980
  ProducerConfigContext,
930
981
  ProducerConfigZod,
931
982
  ROOT_WALLET_RUNTIME_ID,
983
+ RejectedTransactionsArchivistProviderMoniker,
932
984
  RewardRedemptionConfigContext,
933
985
  RewardRedemptionConfigZod,
934
986
  SHARED_ACCOUNT_REPORT_COUNT,
935
987
  ServiceLifetime,
936
- ValidatorActor,
937
- ValidatorConfigContext,
938
- ValidatorConfigZod,
988
+ SimpleRejectedTransactionsArchivistProvider,
939
989
  asApiConfig,
940
990
  asApiConfigContext,
941
991
  asBridgeConfig,
942
992
  asBridgeConfigContext,
993
+ asFinalizerConfig,
994
+ asFinalizerConfigContext,
943
995
  asMempoolConfig,
944
996
  asMempoolConfigContext,
945
997
  asProducerConfig,
946
998
  asProducerConfigContext,
947
999
  asRewardRedemptionConfig,
948
1000
  asRewardRedemptionConfigContext,
949
- asValidatorConfig,
950
- asValidatorConfigContext,
951
1001
  basicRemoteRunnerLocator,
952
1002
  basicRemoteViewerLocator,
1003
+ buildInsecureGenesisRewardAccounts,
953
1004
  buildTelemetryConfig,
954
1005
  clearResolvedWalletReport,
955
1006
  createProducerChainStakeIntentBlock,
1007
+ formatInsecureGenesisRewardWarning,
956
1008
  formatWalletReport,
957
1009
  getBuiltInDevMnemonic,
958
1010
  getInsecureGenesisRewardMnemonic,
@@ -969,14 +1021,14 @@ export {
969
1021
  isApiConfigContext,
970
1022
  isBridgeConfig,
971
1023
  isBridgeConfigContext,
1024
+ isFinalizerConfig,
1025
+ isFinalizerConfigContext,
972
1026
  isMempoolConfig,
973
1027
  isMempoolConfigContext,
974
1028
  isProducerConfig,
975
1029
  isProducerConfigContext,
976
1030
  isRewardRedemptionConfig,
977
1031
  isRewardRedemptionConfigContext,
978
- isValidatorConfig,
979
- isValidatorConfigContext,
980
1032
  mergeConfig,
981
1033
  resolveActorWallet,
982
1034
  resolveGenesisRewardAddress,
@@ -988,13 +1040,13 @@ export {
988
1040
  toApiConfigContext,
989
1041
  toBridgeConfig,
990
1042
  toBridgeConfigContext,
1043
+ toFinalizerConfig,
1044
+ toFinalizerConfigContext,
991
1045
  toMempoolConfig,
992
1046
  toMempoolConfigContext,
993
1047
  toProducerConfig,
994
1048
  toProducerConfigContext,
995
1049
  toRewardRedemptionConfig,
996
- toRewardRedemptionConfigContext,
997
- toValidatorConfig,
998
- toValidatorConfigContext
1050
+ toRewardRedemptionConfigContext
999
1051
  };
1000
1052
  //# sourceMappingURL=index.mjs.map