@xyo-network/chain-orchestration 1.20.20 → 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 (115) hide show
  1. package/dist/browser/index.mjs +188 -122
  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/browser/node/manifest/NamedLmdbArchivist.d.ts +18 -0
  19. package/dist/browser/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
  20. package/dist/browser/node/manifest/getLocator.d.ts.map +1 -1
  21. package/dist/{neutral/shared/actor/ValidatorActor.d.ts → browser/shared/actor/FinalizerActor.d.ts} +7 -10
  22. package/dist/browser/shared/actor/FinalizerActor.d.ts.map +1 -0
  23. package/dist/browser/shared/actor/index.d.ts +1 -1
  24. package/dist/browser/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
  25. package/dist/browser/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  26. package/dist/browser/shared/config/actors/Mempool.d.ts +14 -0
  27. package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
  28. package/dist/browser/shared/config/actors/index.d.ts +1 -1
  29. package/dist/browser/shared/config/actors/index.d.ts.map +1 -1
  30. package/dist/browser/shared/index.d.ts +1 -0
  31. package/dist/browser/shared/index.d.ts.map +1 -1
  32. package/dist/browser/shared/init/walletResolution.d.ts +4 -1
  33. package/dist/browser/shared/init/walletResolution.d.ts.map +1 -1
  34. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  35. package/dist/browser/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  36. package/dist/browser/shared/provider/index.d.ts +2 -0
  37. package/dist/browser/shared/provider/index.d.ts.map +1 -0
  38. package/dist/neutral/index.mjs +188 -122
  39. package/dist/neutral/index.mjs.map +1 -1
  40. package/dist/neutral/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  41. package/dist/{browser/node/config/locators/actors/validatorLocatorFromConfig.d.ts.map → neutral/node/config/locators/actors/finalizerLocatorFromConfig.d.ts.map} +1 -1
  42. package/dist/neutral/node/config/locators/actors/index.d.ts +1 -1
  43. package/dist/neutral/node/config/locators/actors/index.d.ts.map +1 -1
  44. package/dist/neutral/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  45. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  46. package/dist/neutral/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  47. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts +1 -1
  48. package/dist/neutral/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  49. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  50. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  51. package/dist/neutral/node/config/tryParseConfig.d.ts +3 -154
  52. package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
  53. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  54. package/dist/neutral/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  55. package/dist/neutral/node/manifest/NamedLmdbArchivist.d.ts +18 -0
  56. package/dist/neutral/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
  57. package/dist/neutral/node/manifest/getLocator.d.ts.map +1 -1
  58. package/dist/{node/shared/actor/ValidatorActor.d.ts → neutral/shared/actor/FinalizerActor.d.ts} +7 -10
  59. package/dist/neutral/shared/actor/FinalizerActor.d.ts.map +1 -0
  60. package/dist/neutral/shared/actor/index.d.ts +1 -1
  61. package/dist/neutral/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
  62. package/dist/neutral/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  63. package/dist/neutral/shared/config/actors/Mempool.d.ts +14 -0
  64. package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
  65. package/dist/neutral/shared/config/actors/index.d.ts +1 -1
  66. package/dist/neutral/shared/config/actors/index.d.ts.map +1 -1
  67. package/dist/neutral/shared/index.d.ts +1 -0
  68. package/dist/neutral/shared/index.d.ts.map +1 -1
  69. package/dist/neutral/shared/init/walletResolution.d.ts +4 -1
  70. package/dist/neutral/shared/init/walletResolution.d.ts.map +1 -1
  71. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  72. package/dist/neutral/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  73. package/dist/neutral/shared/provider/index.d.ts +2 -0
  74. package/dist/neutral/shared/provider/index.d.ts.map +1 -0
  75. package/dist/node/index.mjs +324 -171
  76. package/dist/node/index.mjs.map +1 -1
  77. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts → finalizerLocatorFromConfig.d.ts} +2 -2
  78. package/dist/node/node/config/locators/actors/{validatorLocatorFromConfig.d.ts.map → finalizerLocatorFromConfig.d.ts.map} +1 -1
  79. package/dist/node/node/config/locators/actors/index.d.ts +1 -1
  80. package/dist/node/node/config/locators/actors/index.d.ts.map +1 -1
  81. package/dist/node/node/config/locators/actors/producerLocatorFromConfig.d.ts.map +1 -1
  82. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts +1 -1
  83. package/dist/node/node/config/locators/localLocatorFromConfig.d.ts.map +1 -1
  84. package/dist/node/node/config/locators/locatorsFromConfig.d.ts +1 -1
  85. package/dist/node/node/config/locators/locatorsFromConfig.d.ts.map +1 -1
  86. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts +1 -1
  87. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  88. package/dist/node/node/config/tryParseConfig.d.ts +3 -154
  89. package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
  90. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts +6 -1
  91. package/dist/node/node/init/initFinalizationArchivistIfNeeded.d.ts.map +1 -1
  92. package/dist/node/node/manifest/NamedLmdbArchivist.d.ts +18 -0
  93. package/dist/node/node/manifest/NamedLmdbArchivist.d.ts.map +1 -0
  94. package/dist/node/node/manifest/getLocator.d.ts.map +1 -1
  95. package/dist/{browser/shared/actor/ValidatorActor.d.ts → node/shared/actor/FinalizerActor.d.ts} +7 -10
  96. package/dist/node/shared/actor/FinalizerActor.d.ts.map +1 -0
  97. package/dist/node/shared/actor/index.d.ts +1 -1
  98. package/dist/node/shared/config/actors/{Validator.d.ts → Finalizer.d.ts} +18 -18
  99. package/dist/node/shared/config/actors/{Validator.d.ts.map → Finalizer.d.ts.map} +1 -1
  100. package/dist/node/shared/config/actors/Mempool.d.ts +14 -0
  101. package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
  102. package/dist/node/shared/config/actors/index.d.ts +1 -1
  103. package/dist/node/shared/config/actors/index.d.ts.map +1 -1
  104. package/dist/node/shared/index.d.ts +1 -0
  105. package/dist/node/shared/index.d.ts.map +1 -1
  106. package/dist/node/shared/init/walletResolution.d.ts +4 -1
  107. package/dist/node/shared/init/walletResolution.d.ts.map +1 -1
  108. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts +31 -0
  109. package/dist/node/shared/provider/SimpleRejectedTransactionsArchivistProvider.d.ts.map +1 -0
  110. package/dist/node/shared/provider/index.d.ts +2 -0
  111. package/dist/node/shared/provider/index.d.ts.map +1 -0
  112. package/package.json +23 -22
  113. package/dist/browser/shared/actor/ValidatorActor.d.ts.map +0 -1
  114. package/dist/neutral/shared/actor/ValidatorActor.d.ts.map +0 -1
  115. 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,15 +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";
255
- var MempoolConfigZod = HostActorConfigZod3.extend({
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";
272
+ var DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL = 1e3;
273
+ var DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL = 1e3;
274
+ var MempoolConfigZod = HostActorConfigZod4.extend({
256
275
  accountIndex: ActorAccountIndexZod("mempool.accountIndex"),
257
- enabled: z4.union([
258
- z4.string(),
259
- z4.boolean()
276
+ enabled: z5.union([
277
+ z5.string(),
278
+ z5.boolean()
260
279
  ]).default("false").transform((val, ctx) => {
261
280
  if (typeof val === "boolean") return val;
262
281
  const normalized = val.toLowerCase().trim();
@@ -277,113 +296,104 @@ var MempoolConfigZod = HostActorConfigZod3.extend({
277
296
  expected: "boolean",
278
297
  message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`
279
298
  });
280
- return z4.NEVER;
299
+ return z5.NEVER;
281
300
  }).register(globalRegistry4, {
282
301
  default: "false",
283
302
  description: "Enable the Mempool",
284
303
  title: "mempool.enabled",
285
304
  type: "boolean"
305
+ }),
306
+ blockPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL).register(globalRegistry4, {
307
+ description: "The interval time (in milliseconds) between pending block prune attempts",
308
+ title: "mempool.blockPruneInterval",
309
+ type: "number"
310
+ }),
311
+ transactionPruneInterval: z5.coerce.number().default(DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL).register(globalRegistry4, {
312
+ description: "The interval time (in milliseconds) between pending transaction prune attempts",
313
+ title: "mempool.transactionPruneInterval",
314
+ type: "number"
286
315
  })
287
316
  });
288
- var isMempoolConfig = zodIsFactory3(MempoolConfigZod);
289
- var asMempoolConfig = zodAsFactory3(MempoolConfigZod, "asMempoolConfig");
290
- var toMempoolConfig = zodToFactory3(MempoolConfigZod, "toMempoolConfig");
291
- 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({
292
321
  config: MempoolConfigZod
293
322
  });
294
- var isMempoolConfigContext = zodIsFactory3(MempoolConfigContext);
295
- var asMempoolConfigContext = zodAsFactory3(MempoolConfigContext, "asMempoolConfigContext");
296
- var toMempoolConfigContext = zodToFactory3(MempoolConfigContext, "toMempoolConfigContext");
323
+ var isMempoolConfigContext = zodIsFactory4(MempoolConfigContext);
324
+ var asMempoolConfigContext = zodAsFactory4(MempoolConfigContext, "asMempoolConfigContext");
325
+ var toMempoolConfigContext = zodToFactory4(MempoolConfigContext, "toMempoolConfigContext");
297
326
 
298
327
  // src/shared/config/actors/Producer.ts
299
- import { AddressZod as AddressZod2, asAddress, zodAsFactory as zodAsFactory4, zodIsFactory as zodIsFactory4, zodToFactory as zodToFactory4 } from "@xylabs/sdk-js";
300
- import { ActorConfigZod, BaseConfigContextZod as BaseConfigContextZod4 } from "@xyo-network/xl1-sdk";
301
- 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";
302
331
  var DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL = 1e4;
303
- var ProducerConfigZod = ActorConfigZod.extend(z5.object({
332
+ var ProducerConfigZod = ActorConfigZod.extend(z6.object({
304
333
  accountIndex: ActorAccountIndexZod("producer.accountIndex"),
305
- allowlist: z5.preprocess((val) => {
334
+ allowlist: z6.preprocess((val) => {
306
335
  if (typeof val === "string") {
307
336
  return val.split(",").map((s) => asAddress(s.trim()));
308
337
  }
309
338
  return val;
310
- }, z5.array(AddressZod2).optional().register(globalRegistry5, {
339
+ }, z6.array(AddressZod3).optional().register(globalRegistry5, {
311
340
  description: "List of allowed producer addresses, if undefined anyone can participate",
312
341
  title: "allowlist",
313
342
  type: "array"
314
343
  })),
315
- 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, {
316
345
  description: "The interval time (in milliseconds) between block production attempts",
317
346
  title: "producer.blockProductionCheckInterval",
318
347
  type: "number"
319
348
  }),
320
- disableIntentRedeclaration: z5.boolean().optional().register(globalRegistry5, {
349
+ disableIntentRedeclaration: z6.boolean().optional().register(globalRegistry5, {
321
350
  description: "Should the producer skip redeclaring their intent to continue producing blocks",
322
351
  title: "producer.disableIntentRedeclaration",
323
352
  type: "boolean"
324
353
  }),
325
- heartbeatInterval: z5.coerce.number().default(36e5).register(globalRegistry5, {
354
+ heartbeatInterval: z6.coerce.number().default(36e5).register(globalRegistry5, {
326
355
  description: "The number of milliseconds between heartbeats if no blocks are produced",
327
356
  title: "producer.heartbeatInterval",
328
357
  type: "number"
329
358
  }),
330
359
  // TODO: BigInt schema
331
- minStake: z5.coerce.number().default(1).register(globalRegistry5, {
360
+ minStake: z6.coerce.number().default(1).register(globalRegistry5, {
332
361
  description: "Minimum stake required to be a Producer",
333
362
  title: "producer.minStake",
334
363
  type: "number"
335
364
  }),
336
365
  // TODO: Address schema
337
- rewardAddress: z5.string().optional().register(globalRegistry5, {
366
+ rewardAddress: z6.string().optional().register(globalRegistry5, {
338
367
  description: "Address to receive block rewards",
339
368
  title: "producer.rewardAddress",
340
369
  type: "string"
341
370
  })
342
371
  }).shape);
343
- var isProducerConfig = zodIsFactory4(ProducerConfigZod);
344
- var asProducerConfig = zodAsFactory4(ProducerConfigZod, "asProducerConfig");
345
- var toProducerConfig = zodToFactory4(ProducerConfigZod, "toProducerConfig");
346
- 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({
347
376
  config: ProducerConfigZod
348
377
  });
349
- var isProducerConfigContext = zodIsFactory4(ProducerConfigContext);
350
- var asProducerConfigContext = zodAsFactory4(ProducerConfigContext, "asProducerConfigContext");
351
- var toProducerConfigContext = zodToFactory4(ProducerConfigContext, "toProducerConfigContext");
378
+ var isProducerConfigContext = zodIsFactory5(ProducerConfigContext);
379
+ var asProducerConfigContext = zodAsFactory5(ProducerConfigContext, "asProducerConfigContext");
380
+ var toProducerConfigContext = zodToFactory5(ProducerConfigContext, "toProducerConfigContext");
352
381
 
353
382
  // src/shared/config/actors/RewardRedemption.ts
354
- import { zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory5, zodToFactory as zodToFactory5 } from "@xylabs/sdk-js";
355
- import { BaseConfigContextZod as BaseConfigContextZod5, HostActorConfigZod as HostActorConfigZod4 } from "@xyo-network/xl1-sdk";
356
- 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({
357
386
  accountIndex: ActorAccountIndexZod("rewardRedemption.accountIndex")
358
387
  });
359
- var isRewardRedemptionConfig = zodIsFactory5(RewardRedemptionConfigZod);
360
- var asRewardRedemptionConfig = zodAsFactory5(RewardRedemptionConfigZod, "asRewardRedemptionConfig");
361
- var toRewardRedemptionConfig = zodToFactory5(RewardRedemptionConfigZod, "toRewardRedemptionConfig");
362
- 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({
363
392
  config: RewardRedemptionConfigZod
364
393
  });
365
- var isRewardRedemptionConfigContext = zodIsFactory5(RewardRedemptionConfigContext);
366
- var asRewardRedemptionConfigContext = zodAsFactory5(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
367
- var toRewardRedemptionConfigContext = zodToFactory5(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
368
-
369
- // src/shared/config/actors/Validator.ts
370
- import { AddressZod as AddressZod3, zodAsFactory as zodAsFactory6, zodIsFactory as zodIsFactory6, zodToFactory as zodToFactory6 } from "@xylabs/sdk-js";
371
- import { BaseConfigContextZod as BaseConfigContextZod6, HostActorConfigZod as HostActorConfigZod5 } from "@xyo-network/xl1-sdk";
372
- import { z as z6 } from "zod";
373
- var ValidatorConfigZod = HostActorConfigZod5.extend({
374
- accountIndex: ActorAccountIndexZod("validator.accountIndex"),
375
- allowedProducers: z6.array(AddressZod3).optional(),
376
- minCandidates: z6.number().int().min(0).optional()
377
- });
378
- var isValidatorConfig = zodIsFactory6(ValidatorConfigZod);
379
- var asValidatorConfig = zodAsFactory6(ValidatorConfigZod, "asValidatorConfig");
380
- var toValidatorConfig = zodToFactory6(ValidatorConfigZod, "toValidatorConfig");
381
- var ValidatorConfigContext = BaseConfigContextZod6.extend({
382
- config: ValidatorConfigZod
383
- });
384
- var isValidatorConfigContext = zodIsFactory6(ValidatorConfigContext);
385
- var asValidatorConfigContext = zodAsFactory6(ValidatorConfigContext, "asValidatorConfigContext");
386
- var toValidatorConfigContext = zodToFactory6(ValidatorConfigContext, "toValidatorConfigContext");
394
+ var isRewardRedemptionConfigContext = zodIsFactory6(RewardRedemptionConfigContext);
395
+ var asRewardRedemptionConfigContext = zodAsFactory6(RewardRedemptionConfigContext, "asRewardRedemptionConfigContext");
396
+ var toRewardRedemptionConfigContext = zodToFactory6(RewardRedemptionConfigContext, "toRewardRedemptionConfigContext");
387
397
 
388
398
  // src/shared/config/mergeConfig.ts
389
399
  import { deepMerge } from "@xylabs/sdk-js";
@@ -464,19 +474,19 @@ var RESERVED_ACTOR_INDEX = {
464
474
  [ROOT_WALLET_RUNTIME_ID]: 0,
465
475
  api: 4,
466
476
  bridge: 2,
477
+ finalizer: 6,
467
478
  mempool: 5,
468
479
  producer: 1,
469
- rewardRedemption: 3,
470
- validator: 6
480
+ rewardRedemption: 3
471
481
  };
472
482
  var ACTOR_LABELS = {
473
483
  [ROOT_WALLET_RUNTIME_ID]: "root/local-node",
474
484
  api: "api",
475
485
  bridge: "bridge",
486
+ finalizer: "finalizer",
476
487
  mempool: "mempool",
477
488
  producer: "producer",
478
- rewardRedemption: "rewardRedemption",
479
- validator: "validator"
489
+ rewardRedemption: "rewardRedemption"
480
490
  };
481
491
  var activeWalletReport;
482
492
  function getAccountLabel(actorName) {
@@ -500,11 +510,13 @@ function getInsecureGenesisRewardMnemonic() {
500
510
  }
501
511
  __name(getInsecureGenesisRewardMnemonic, "getInsecureGenesisRewardMnemonic");
502
512
  function resolveRootWallet(configuration) {
513
+ const isConfigured = configuration.mnemonic !== void 0;
503
514
  const mnemonic = configuration.mnemonic ?? BUILT_IN_DEV_MNEMONIC;
504
515
  const isBuiltInDevMnemonic = mnemonic === BUILT_IN_DEV_MNEMONIC;
505
516
  return {
506
517
  basePath: DEFAULT_WALLET_PATH,
507
518
  isBuiltInDevMnemonic,
519
+ isConfigured,
508
520
  mnemonic,
509
521
  mnemonicKind: isBuiltInDevMnemonic ? "built-in-dev" : "configured-root"
510
522
  };
@@ -552,6 +564,7 @@ async function resolveWalletReport(requestedActors, configuration) {
552
564
  actor.name,
553
565
  actor
554
566
  ]));
567
+ const isRootRequired = requestedActors.some((actorName) => !actorConfigMap.get(actorName)?.mnemonic);
555
568
  const resolvedActors = await Promise.all(requestedActors.map(async (actorName) => await resolveActorWallet(actorName, actorConfigMap.get(actorName), root)));
556
569
  const labelMap = /* @__PURE__ */ new Map([
557
570
  [
@@ -583,7 +596,19 @@ async function resolveWalletReport(requestedActors, configuration) {
583
596
  label: labels?.join(", ") ?? `shared[${accountIndex}]`
584
597
  };
585
598
  }));
586
- 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({
587
612
  length: SHARED_ACCOUNT_REPORT_COUNT
588
613
  }, (_, index) => index).map(async (accountIndex) => {
589
614
  const account = await resolveWalletMetadata({
@@ -598,17 +623,9 @@ async function resolveWalletReport(requestedActors, configuration) {
598
623
  label: accountIndex === 0 ? "genesisRewardAddress" : `genesisReward[${accountIndex}]`
599
624
  };
600
625
  }));
601
- return {
602
- actorSpecificAccounts: resolvedActors.filter((actor) => actor.source === "actor"),
603
- insecureGenesisRewardAccounts,
604
- requestedActors: [
605
- ...requestedActors
606
- ],
607
- root,
608
- sharedAccounts
609
- };
626
+ return accounts;
610
627
  }
611
- __name(resolveWalletReport, "resolveWalletReport");
628
+ __name(buildInsecureGenesisRewardAccounts, "buildInsecureGenesisRewardAccounts");
612
629
  async function initializeResolvedWalletReport(requestedActors, configuration) {
613
630
  activeWalletReport = await resolveWalletReport(requestedActors, configuration);
614
631
  return activeWalletReport;
@@ -651,8 +668,13 @@ function formatGenesisRewardAccount(account) {
651
668
  __name(formatGenesisRewardAccount, "formatGenesisRewardAccount");
652
669
  function formatWalletReport(report) {
653
670
  const sections = [];
654
- const showSecrets = report.root.isBuiltInDevMnemonic;
655
- 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
+ }
656
678
  if (showSecrets) {
657
679
  sections.push([
658
680
  "DEVELOPMENT WALLET WARNING",
@@ -666,39 +688,42 @@ function formatWalletReport(report) {
666
688
  report.root.mnemonic
667
689
  ].join("\n"));
668
690
  }
669
- sections.push([
670
- `Shared wallet accounts from ${report.root.basePath}:`,
671
- "",
672
- report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
673
- ].join("\n"));
674
- if (report.actorSpecificAccounts.length > 0) {
691
+ if (showRootSection) {
675
692
  sections.push([
676
- "Actor-specific wallet accounts:",
693
+ `Shared wallet accounts from ${report.root.basePath}:`,
677
694
  "",
678
- report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
695
+ report.sharedAccounts.map((account) => formatSharedAccount(account, showSecrets)).join("\n\n")
679
696
  ].join("\n"));
680
697
  }
681
- if (report.insecureGenesisRewardAccounts) {
698
+ if (report.actorSpecificAccounts.length > 0) {
682
699
  sections.push([
683
- "INSECURE GENESIS REWARD WALLET WARNING",
684
- "",
685
- "XL1 is using a public, insecure fallback wallet for the genesis reward address.",
686
- "This phrase is intentionally unsafe and must never be used for real funds, production systems, or shared environments.",
687
- "Anyone with this information can fully control the genesis reward wallet.",
688
- "",
689
- "Genesis reward phrase:",
690
- INSECURE_GENESIS_REWARD_MNEMONIC,
691
- "",
692
- `The genesis reward is sent to index 0 and starts with ${(GENESIS_REWARD_AMOUNT / ATTO_XL1_PER_XL1).toString()} XL1.`,
693
- "",
694
- `Genesis reward wallet accounts from ${DEFAULT_WALLET_PATH}:`,
700
+ "Actor-specific wallet accounts:",
695
701
  "",
696
- report.insecureGenesisRewardAccounts.map((account) => formatGenesisRewardAccount(account)).join("\n\n")
702
+ report.actorSpecificAccounts.map((account) => formatActorSpecificAccount(account)).join("\n\n")
697
703
  ].join("\n"));
698
704
  }
699
705
  return sections.join("\n\n");
700
706
  }
701
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");
702
727
  async function resolveGenesisRewardAddress(config) {
703
728
  if (config.chain.genesisRewardAddress) return config.chain.genesisRewardAddress;
704
729
  const wallet = await generateXyoBaseWalletFromPhrase(INSECURE_GENESIS_REWARD_MNEMONIC);
@@ -867,6 +892,41 @@ Orchestrator = _ts_decorate2([
867
892
  creatable2()
868
893
  ], Orchestrator);
869
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
+
870
930
  // src/neutral/config/locators/basicRemoteRunnerLocator.ts
871
931
  import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from "@xyo-network/xl1-sdk";
872
932
  function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, validators) {
@@ -886,12 +946,12 @@ function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, validato
886
946
  __name(basicRemoteViewerLocator, "basicRemoteViewerLocator");
887
947
 
888
948
  // src/neutral/config/locators/rootLocatorFromConfig.ts
889
- import { assertEx as assertEx3 } from "@xylabs/sdk-js";
949
+ import { assertEx as assertEx4 } from "@xylabs/sdk-js";
890
950
  import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
891
951
  async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
892
952
  const { config } = context;
893
953
  await commonLocatorFromConfig(context, validateDepsOnRegister);
894
- 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.");
895
955
  locator.freeze();
896
956
  return locator;
897
957
  }
@@ -905,7 +965,12 @@ export {
905
965
  BridgeConfigZod,
906
966
  BridgeSettingsZod,
907
967
  DEFAULT_BLOCK_PRODUCTION_CHECK_INTERVAL,
968
+ DEFAULT_MEMPOOL_BLOCK_PRUNE_INTERVAL,
969
+ DEFAULT_MEMPOOL_TRANSACTION_PRUNE_INTERVAL,
908
970
  DefaultServiceProvider,
971
+ FinalizerActor,
972
+ FinalizerConfigContext,
973
+ FinalizerConfigZod,
909
974
  GENESIS_REWARD_AMOUNT,
910
975
  GenericHost,
911
976
  INSECURE_GENESIS_REWARD_MNEMONIC,
@@ -915,30 +980,31 @@ export {
915
980
  ProducerConfigContext,
916
981
  ProducerConfigZod,
917
982
  ROOT_WALLET_RUNTIME_ID,
983
+ RejectedTransactionsArchivistProviderMoniker,
918
984
  RewardRedemptionConfigContext,
919
985
  RewardRedemptionConfigZod,
920
986
  SHARED_ACCOUNT_REPORT_COUNT,
921
987
  ServiceLifetime,
922
- ValidatorActor,
923
- ValidatorConfigContext,
924
- ValidatorConfigZod,
988
+ SimpleRejectedTransactionsArchivistProvider,
925
989
  asApiConfig,
926
990
  asApiConfigContext,
927
991
  asBridgeConfig,
928
992
  asBridgeConfigContext,
993
+ asFinalizerConfig,
994
+ asFinalizerConfigContext,
929
995
  asMempoolConfig,
930
996
  asMempoolConfigContext,
931
997
  asProducerConfig,
932
998
  asProducerConfigContext,
933
999
  asRewardRedemptionConfig,
934
1000
  asRewardRedemptionConfigContext,
935
- asValidatorConfig,
936
- asValidatorConfigContext,
937
1001
  basicRemoteRunnerLocator,
938
1002
  basicRemoteViewerLocator,
1003
+ buildInsecureGenesisRewardAccounts,
939
1004
  buildTelemetryConfig,
940
1005
  clearResolvedWalletReport,
941
1006
  createProducerChainStakeIntentBlock,
1007
+ formatInsecureGenesisRewardWarning,
942
1008
  formatWalletReport,
943
1009
  getBuiltInDevMnemonic,
944
1010
  getInsecureGenesisRewardMnemonic,
@@ -955,14 +1021,14 @@ export {
955
1021
  isApiConfigContext,
956
1022
  isBridgeConfig,
957
1023
  isBridgeConfigContext,
1024
+ isFinalizerConfig,
1025
+ isFinalizerConfigContext,
958
1026
  isMempoolConfig,
959
1027
  isMempoolConfigContext,
960
1028
  isProducerConfig,
961
1029
  isProducerConfigContext,
962
1030
  isRewardRedemptionConfig,
963
1031
  isRewardRedemptionConfigContext,
964
- isValidatorConfig,
965
- isValidatorConfigContext,
966
1032
  mergeConfig,
967
1033
  resolveActorWallet,
968
1034
  resolveGenesisRewardAddress,
@@ -974,13 +1040,13 @@ export {
974
1040
  toApiConfigContext,
975
1041
  toBridgeConfig,
976
1042
  toBridgeConfigContext,
1043
+ toFinalizerConfig,
1044
+ toFinalizerConfigContext,
977
1045
  toMempoolConfig,
978
1046
  toMempoolConfigContext,
979
1047
  toProducerConfig,
980
1048
  toProducerConfigContext,
981
1049
  toRewardRedemptionConfig,
982
- toRewardRedemptionConfigContext,
983
- toValidatorConfig,
984
- toValidatorConfigContext
1050
+ toRewardRedemptionConfigContext
985
1051
  };
986
1052
  //# sourceMappingURL=index.mjs.map