@xyo-network/chain-orchestration 1.20.16 → 1.20.17

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 (79) hide show
  1. package/dist/browser/index.mjs +15 -146
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/neutral/config/locators/basicRemoteRunnerLocator.d.ts +3 -2
  4. package/dist/browser/neutral/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  5. package/dist/browser/neutral/config/locators/basicRemoteViewerLocator.d.ts +3 -2
  6. package/dist/browser/neutral/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  7. package/dist/browser/neutral/config/locators/rootLocatorFromConfig.d.ts +1 -0
  8. package/dist/browser/neutral/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  9. package/dist/browser/node/config/locators/basicRemoteRunnerLocator.d.ts +2 -2
  10. package/dist/browser/node/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  11. package/dist/browser/node/config/locators/basicRemoteViewerLocator.d.ts +2 -2
  12. package/dist/browser/node/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  13. package/dist/browser/node/config/locators/localViewerFromConfig.d.ts.map +1 -1
  14. package/dist/browser/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  15. package/dist/browser/shared/config/index.d.ts +0 -1
  16. package/dist/browser/shared/config/index.d.ts.map +1 -1
  17. package/dist/neutral/index.mjs +15 -146
  18. package/dist/neutral/index.mjs.map +1 -1
  19. package/dist/neutral/neutral/config/locators/basicRemoteRunnerLocator.d.ts +3 -2
  20. package/dist/neutral/neutral/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  21. package/dist/neutral/neutral/config/locators/basicRemoteViewerLocator.d.ts +3 -2
  22. package/dist/neutral/neutral/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  23. package/dist/neutral/neutral/config/locators/rootLocatorFromConfig.d.ts +1 -0
  24. package/dist/neutral/neutral/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  25. package/dist/neutral/node/config/locators/basicRemoteRunnerLocator.d.ts +2 -2
  26. package/dist/neutral/node/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  27. package/dist/neutral/node/config/locators/basicRemoteViewerLocator.d.ts +2 -2
  28. package/dist/neutral/node/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  29. package/dist/neutral/node/config/locators/localViewerFromConfig.d.ts.map +1 -1
  30. package/dist/neutral/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  31. package/dist/neutral/shared/config/index.d.ts +0 -1
  32. package/dist/neutral/shared/config/index.d.ts.map +1 -1
  33. package/dist/node/index.mjs +88 -223
  34. package/dist/node/index.mjs.map +1 -1
  35. package/dist/node/neutral/config/locators/basicRemoteRunnerLocator.d.ts +3 -2
  36. package/dist/node/neutral/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  37. package/dist/node/neutral/config/locators/basicRemoteViewerLocator.d.ts +3 -2
  38. package/dist/node/neutral/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  39. package/dist/node/neutral/config/locators/rootLocatorFromConfig.d.ts +1 -0
  40. package/dist/node/neutral/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  41. package/dist/node/node/config/locators/basicRemoteRunnerLocator.d.ts +2 -2
  42. package/dist/node/node/config/locators/basicRemoteRunnerLocator.d.ts.map +1 -1
  43. package/dist/node/node/config/locators/basicRemoteViewerLocator.d.ts +2 -2
  44. package/dist/node/node/config/locators/basicRemoteViewerLocator.d.ts.map +1 -1
  45. package/dist/node/node/config/locators/localViewerFromConfig.d.ts.map +1 -1
  46. package/dist/node/node/config/locators/rootLocatorFromConfig.d.ts.map +1 -1
  47. package/dist/node/shared/config/index.d.ts +0 -1
  48. package/dist/node/shared/config/index.d.ts.map +1 -1
  49. package/package.json +17 -17
  50. package/dist/browser/shared/config/locators/basicRemoteRunnerLocator.d.ts +0 -9
  51. package/dist/browser/shared/config/locators/basicRemoteRunnerLocator.d.ts.map +0 -1
  52. package/dist/browser/shared/config/locators/basicRemoteViewerLocator.d.ts +0 -7
  53. package/dist/browser/shared/config/locators/basicRemoteViewerLocator.d.ts.map +0 -1
  54. package/dist/browser/shared/config/locators/commonLocatorFromConfig.d.ts +0 -4
  55. package/dist/browser/shared/config/locators/commonLocatorFromConfig.d.ts.map +0 -1
  56. package/dist/browser/shared/config/locators/index.d.ts +0 -5
  57. package/dist/browser/shared/config/locators/index.d.ts.map +0 -1
  58. package/dist/browser/shared/config/locators/remoteLocatorFromConfig.d.ts +0 -4
  59. package/dist/browser/shared/config/locators/remoteLocatorFromConfig.d.ts.map +0 -1
  60. package/dist/neutral/shared/config/locators/basicRemoteRunnerLocator.d.ts +0 -9
  61. package/dist/neutral/shared/config/locators/basicRemoteRunnerLocator.d.ts.map +0 -1
  62. package/dist/neutral/shared/config/locators/basicRemoteViewerLocator.d.ts +0 -7
  63. package/dist/neutral/shared/config/locators/basicRemoteViewerLocator.d.ts.map +0 -1
  64. package/dist/neutral/shared/config/locators/commonLocatorFromConfig.d.ts +0 -4
  65. package/dist/neutral/shared/config/locators/commonLocatorFromConfig.d.ts.map +0 -1
  66. package/dist/neutral/shared/config/locators/index.d.ts +0 -5
  67. package/dist/neutral/shared/config/locators/index.d.ts.map +0 -1
  68. package/dist/neutral/shared/config/locators/remoteLocatorFromConfig.d.ts +0 -4
  69. package/dist/neutral/shared/config/locators/remoteLocatorFromConfig.d.ts.map +0 -1
  70. package/dist/node/shared/config/locators/basicRemoteRunnerLocator.d.ts +0 -9
  71. package/dist/node/shared/config/locators/basicRemoteRunnerLocator.d.ts.map +0 -1
  72. package/dist/node/shared/config/locators/basicRemoteViewerLocator.d.ts +0 -7
  73. package/dist/node/shared/config/locators/basicRemoteViewerLocator.d.ts.map +0 -1
  74. package/dist/node/shared/config/locators/commonLocatorFromConfig.d.ts +0 -4
  75. package/dist/node/shared/config/locators/commonLocatorFromConfig.d.ts.map +0 -1
  76. package/dist/node/shared/config/locators/index.d.ts +0 -5
  77. package/dist/node/shared/config/locators/index.d.ts.map +0 -1
  78. package/dist/node/shared/config/locators/remoteLocatorFromConfig.d.ts +0 -4
  79. package/dist/node/shared/config/locators/remoteLocatorFromConfig.d.ts.map +0 -1
@@ -354,140 +354,6 @@ var isValidatorConfigContext = zodIsFactory6(ValidatorConfigContext);
354
354
  var asValidatorConfigContext = zodAsFactory6(ValidatorConfigContext, "asValidatorConfigContext");
355
355
  var toValidatorConfigContext = zodToFactory6(ValidatorConfigContext, "toValidatorConfigContext");
356
356
 
357
- // src/shared/config/locators/basicRemoteRunnerLocator.ts
358
- import { isDefined as isDefined2 } from "@xylabs/sdk-js";
359
- import { JsonRpcXyoRunner, JsonRpcXyoSigner, ProviderFactoryLocator as ProviderFactoryLocator4, RestDataLakeViewer as RestDataLakeViewer2, SimpleXyoConnectionRunner, SimpleXyoGatewayRunner } from "@xyo-network/xl1-sdk";
360
-
361
- // src/shared/config/locators/basicRemoteViewerLocator.ts
362
- import { isDefined } from "@xylabs/sdk-js";
363
- import { ActorConfigZod as ActorConfigZod2, ProviderFactoryLocator as ProviderFactoryLocator3, RestDataLakeViewer, SimpleTransactionViewer as SimpleTransactionViewer2, SimpleXyoConnectionViewer, SimpleXyoGateway } from "@xyo-network/xl1-sdk";
364
-
365
- // src/shared/config/locators/commonLocatorFromConfig.ts
366
- import { ProviderFactoryLocator, SimpleBlockRewardViewer, SimpleNetworkStakeViewer, SimpleStepRewardsByPositionViewer, SimpleStepRewardsByStakerViewer, SimpleStepRewardsByStepViewer, SimpleStepRewardsTotalViewer, SimpleStepRewardsViewer, SimpleStepViewer, SimpleTimeSyncViewer, SimpleTransactionValidationViewer, SimpleTransactionViewer, SimpleWindowedBlockViewer } from "@xyo-network/xl1-sdk";
367
- function commonLocatorFromConfig(context, validateDepsOnRegister = false) {
368
- const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister);
369
- locator.registerMany([
370
- SimpleNetworkStakeViewer.factory(SimpleNetworkStakeViewer.dependencies, {}),
371
- SimpleTimeSyncViewer.factory(SimpleTimeSyncViewer.dependencies, {}),
372
- SimpleStepViewer.factory(SimpleStepViewer.dependencies, {}),
373
- SimpleStepRewardsViewer.factory(SimpleStepRewardsViewer.dependencies, {}),
374
- SimpleStepRewardsByPositionViewer.factory(SimpleStepRewardsByPositionViewer.dependencies, {}),
375
- SimpleStepRewardsByStakerViewer.factory(SimpleStepRewardsByStakerViewer.dependencies, {}),
376
- SimpleStepRewardsByStepViewer.factory(SimpleStepRewardsByStepViewer.dependencies, {}),
377
- SimpleStepRewardsTotalViewer.factory(SimpleStepRewardsTotalViewer.dependencies, {}),
378
- SimpleWindowedBlockViewer.factory(SimpleWindowedBlockViewer.dependencies, {
379
- maxWindowSize: 1e3,
380
- syncInterval: 1e4
381
- }),
382
- SimpleBlockRewardViewer.factory(SimpleBlockRewardViewer.dependencies, {}),
383
- SimpleTransactionViewer.factory(SimpleTransactionViewer.dependencies, {}),
384
- SimpleTransactionValidationViewer.factory(SimpleTransactionValidationViewer.dependencies, {})
385
- ]);
386
- return locator;
387
- }
388
- __name(commonLocatorFromConfig, "commonLocatorFromConfig");
389
-
390
- // src/shared/config/locators/remoteLocatorFromConfig.ts
391
- import { validateHydratedBlock, validateHydratedBlockState } from "@xyo-network/chain-validation";
392
- import { BlockCumulativeBalanceValidatorFactory, JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcFinalizationViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer, JsonRpcNetworkStakeViewer, JsonRpcStakeViewer, JsonRpcTransactionViewer, JsonRpcXyoViewer, ProviderFactoryLocator as ProviderFactoryLocator2, SimpleBlockValidationViewer, SimpleStakeEventsViewer } from "@xyo-network/xl1-sdk";
393
- var cumulativeBalanceValidator = BlockCumulativeBalanceValidatorFactory();
394
- var validateHydratedBlockStateWithCumulativeBalance = /* @__PURE__ */ __name(async (context, block) => {
395
- const [stateErrors, cumulativeErrors] = await Promise.all([
396
- validateHydratedBlockState(context, block),
397
- cumulativeBalanceValidator(context, block)
398
- ]);
399
- return [
400
- ...stateErrors,
401
- ...cumulativeErrors
402
- ];
403
- }, "validateHydratedBlockStateWithCumulativeBalance");
404
- function remoteLocatorFromConfig(context, validateDepsOnRegister = false) {
405
- const locator = new ProviderFactoryLocator2(context, {}, validateDepsOnRegister);
406
- locator.registerMany([
407
- JsonRpcMempoolViewer.factory(JsonRpcMempoolViewer.dependencies, {}),
408
- JsonRpcMempoolRunner.factory(JsonRpcMempoolRunner.dependencies, {}),
409
- JsonRpcAccountBalanceViewer.factory(JsonRpcAccountBalanceViewer.dependencies, {}),
410
- JsonRpcFinalizationViewer.factory(JsonRpcFinalizationViewer.dependencies, {}),
411
- JsonRpcBlockViewer.factory(JsonRpcBlockViewer.dependencies, {}),
412
- JsonRpcTransactionViewer.factory(JsonRpcTransactionViewer.dependencies, {}),
413
- JsonRpcNetworkStakeViewer.factory(JsonRpcNetworkStakeViewer.dependencies, {}),
414
- JsonRpcStakeViewer.factory(JsonRpcStakeViewer.dependencies, {}),
415
- SimpleStakeEventsViewer.factory(SimpleStakeEventsViewer.dependencies, {
416
- positions: []
417
- }),
418
- JsonRpcXyoViewer.factory(JsonRpcXyoViewer.dependencies, {}),
419
- SimpleBlockValidationViewer.factory(SimpleBlockValidationViewer.dependencies, {
420
- state: validateHydratedBlockStateWithCumulativeBalance,
421
- protocol: validateHydratedBlock
422
- })
423
- ]);
424
- return locator;
425
- }
426
- __name(remoteLocatorFromConfig, "remoteLocatorFromConfig");
427
-
428
- // src/shared/config/locators/basicRemoteViewerLocator.ts
429
- async function baseBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, options) {
430
- const config = ActorConfigZod2.parse({
431
- name,
432
- remote: remoteConfig
433
- });
434
- const rootLocator = await commonLocatorFromConfig({
435
- config,
436
- singletons: {},
437
- caches: {}
438
- });
439
- const remoteLocator = await remoteLocatorFromConfig(rootLocator.context);
440
- const locator = new ProviderFactoryLocator3(remoteLocator.context, {});
441
- locator.registerMany([
442
- SimpleXyoGateway.factory(SimpleXyoGateway.dependencies, {}),
443
- SimpleXyoConnectionViewer.factory(SimpleXyoConnectionViewer.dependencies, {}),
444
- SimpleTransactionViewer2.factory(SimpleTransactionViewer2.dependencies, {}),
445
- ...options?.additionalProviders ?? []
446
- ]);
447
- if (isDefined(dataLakeEndpoint)) {
448
- const dataLakeViewerParams = {
449
- endpoint: dataLakeEndpoint
450
- };
451
- locator.register(RestDataLakeViewer.factory(RestDataLakeViewer.dependencies, dataLakeViewerParams));
452
- }
453
- locator.freeze();
454
- return locator;
455
- }
456
- __name(baseBasicRemoteViewerLocator, "baseBasicRemoteViewerLocator");
457
-
458
- // src/shared/config/locators/basicRemoteRunnerLocator.ts
459
- async function baseBasicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, options) {
460
- const remoteViewerLocator = await baseBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, options);
461
- const locator = new ProviderFactoryLocator4(remoteViewerLocator.context, {});
462
- const providers = [
463
- SimpleXyoConnectionRunner.factory(SimpleXyoConnectionRunner.dependencies, {}),
464
- JsonRpcXyoRunner.factory(JsonRpcXyoRunner.dependencies, {})
465
- ];
466
- if (!options?.skipGatewayRunner) {
467
- providers.push(SimpleXyoGatewayRunner.factory(SimpleXyoGatewayRunner.dependencies, {}));
468
- }
469
- locator.registerMany([
470
- ...providers,
471
- ...options?.additionalRunnerProviders ?? []
472
- ]);
473
- if (options?.signerFactory) {
474
- locator.register(options.signerFactory);
475
- } else {
476
- locator.register(JsonRpcXyoSigner.factory(JsonRpcXyoSigner.dependencies, {
477
- transport: signerTransport
478
- }));
479
- }
480
- if (isDefined2(dataLakeEndpoint)) {
481
- const dataLakeViewerParams = {
482
- endpoint: dataLakeEndpoint
483
- };
484
- locator.register(RestDataLakeViewer2.factory(RestDataLakeViewer2.dependencies, dataLakeViewerParams));
485
- }
486
- locator.freeze();
487
- return locator;
488
- }
489
- __name(baseBasicRemoteRunnerLocator, "baseBasicRemoteRunnerLocator");
490
-
491
357
  // src/shared/config/mergeConfig.ts
492
358
  import { deepMerge } from "@xylabs/sdk-js";
493
359
  function mergeConfig({ actors, ...baseConfig }) {
@@ -553,13 +419,13 @@ var ServiceLifetime = {
553
419
  };
554
420
 
555
421
  // src/shared/init/initActorAccount.ts
556
- import { isDefined as isDefined3, isUndefined } from "@xylabs/sdk-js";
422
+ import { isDefined, isUndefined } from "@xylabs/sdk-js";
557
423
  import { HDWallet } from "@xyo-network/sdk-js";
558
424
  import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1-sdk";
559
425
  var actorAccountSingletons = {};
560
426
  async function initActorAccount({ config, logger }) {
561
427
  const actorName = config.name;
562
- if (isDefined3(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
428
+ if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName];
563
429
  let walletPhrase = config.mnemonic;
564
430
  if (isUndefined(walletPhrase)) {
565
431
  logger?.warn(`[${actorName}}] No wallet mnemonic specified!`);
@@ -655,12 +521,12 @@ function initStatusReporter({ logger }) {
655
521
  __name(initStatusReporter, "initStatusReporter");
656
522
 
657
523
  // src/shared/init/initWallet.ts
658
- import { isDefined as isDefined4 } from "@xylabs/sdk-js";
524
+ import { isDefined as isDefined2 } from "@xylabs/sdk-js";
659
525
  import { boot } from "@xyo-network/bios";
660
526
  import { HDWallet as HDWallet3 } from "@xyo-network/sdk-js";
661
527
  async function initActorWallet(context, mnemonic) {
662
528
  const bios = await boot();
663
- const seedPhrase = isDefined4(mnemonic) ? mnemonic : await initActorSeedPhrase(context, bios);
529
+ const seedPhrase = isDefined2(mnemonic) ? mnemonic : await initActorSeedPhrase(context, bios);
664
530
  return await HDWallet3.fromPhrase(seedPhrase);
665
531
  }
666
532
  __name(initActorWallet, "initActorWallet");
@@ -731,19 +597,26 @@ Orchestrator = _ts_decorate2([
731
597
  ], Orchestrator);
732
598
 
733
599
  // src/neutral/config/locators/basicRemoteRunnerLocator.ts
734
- function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint) {
735
- return baseBasicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint);
600
+ import { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from "@xyo-network/xl1-sdk";
601
+ function basicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, validators) {
602
+ return sdkBasicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, {
603
+ validators
604
+ });
736
605
  }
737
606
  __name(basicRemoteRunnerLocator, "basicRemoteRunnerLocator");
738
607
 
739
608
  // src/neutral/config/locators/basicRemoteViewerLocator.ts
740
- function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint) {
741
- return baseBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint);
609
+ import { basicRemoteViewerLocator as sdkBasicRemoteViewerLocator } from "@xyo-network/xl1-sdk";
610
+ function basicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, validators) {
611
+ return sdkBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, {
612
+ validators
613
+ });
742
614
  }
743
615
  __name(basicRemoteViewerLocator, "basicRemoteViewerLocator");
744
616
 
745
617
  // src/neutral/config/locators/rootLocatorFromConfig.ts
746
618
  import { assertEx as assertEx3 } from "@xylabs/sdk-js";
619
+ import { commonLocatorFromConfig, remoteLocatorFromConfig } from "@xyo-network/xl1-sdk";
747
620
  async function rootLocatorFromConfig(context, validateDepsOnRegister = false) {
748
621
  const { config } = context;
749
622
  let locator = await commonLocatorFromConfig(context, validateDepsOnRegister);
@@ -785,12 +658,9 @@ export {
785
658
  asRewardRedemptionConfigContext,
786
659
  asValidatorConfig,
787
660
  asValidatorConfigContext,
788
- baseBasicRemoteRunnerLocator,
789
- baseBasicRemoteViewerLocator,
790
661
  basicRemoteRunnerLocator,
791
662
  basicRemoteViewerLocator,
792
663
  buildTelemetryConfig,
793
- commonLocatorFromConfig,
794
664
  createProducerChainStakeIntentBlock,
795
665
  initActorAccount,
796
666
  initActorSeedPhrase,
@@ -811,7 +681,6 @@ export {
811
681
  isValidatorConfig,
812
682
  isValidatorConfigContext,
813
683
  mergeConfig,
814
- remoteLocatorFromConfig,
815
684
  rootLocatorFromConfig,
816
685
  toApiConfig,
817
686
  toApiConfigContext,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/actor/ValidatorActor.ts","../../src/shared/buildTelemetryConfig.ts","../../src/shared/config/actors/Api.ts","../../src/shared/config/actors/Bridge.ts","../../src/shared/config/actors/Mempool.ts","../../src/shared/config/actors/Producer.ts","../../src/shared/config/actors/RewardRedemption.ts","../../src/shared/config/actors/Validator.ts","../../src/shared/config/locators/basicRemoteRunnerLocator.ts","../../src/shared/config/locators/basicRemoteViewerLocator.ts","../../src/shared/config/locators/commonLocatorFromConfig.ts","../../src/shared/config/locators/remoteLocatorFromConfig.ts","../../src/shared/config/mergeConfig.ts","../../src/shared/createDeclarationIntentBlock.ts","../../src/shared/host/implementation/DefaultHost.ts","../../src/shared/host/implementation/DefaultServiceProvider.ts","../../src/shared/host/model/ServiceCollection.ts","../../src/shared/init/initActorAccount.ts","../../src/shared/init/initActorSeedPhrase.ts","../../src/shared/init/initBridgedModule.ts","../../src/shared/init/initStatusReporter.ts","../../src/shared/init/initWallet.ts","../../src/shared/orchestrator/Orchestrator.ts","../../src/neutral/config/locators/basicRemoteRunnerLocator.ts","../../src/neutral/config/locators/basicRemoteViewerLocator.ts","../../src/neutral/config/locators/rootLocatorFromConfig.ts"],"sourcesContent":["import type { Hash } from '@xylabs/sdk-js'\nimport { creatable } from '@xylabs/sdk-js'\nimport { processPendingBlocks } from '@xyo-network/chain-sdk'\nimport type {\n ActorParamsV3, BlockBoundWitness, BlockValidationViewer, BlockViewer,\n FinalizationRunner,\n MempoolViewer,\n} from '@xyo-network/xl1-sdk'\nimport {\n ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, FinalizationRunnerMoniker,\n MempoolViewerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nimport { ValidatorConfig } from '../config/index.ts'\n\nexport type ValidatorActorParams = ActorParamsV3<\n {\n config: ValidatorConfig\n }>\n\n@creatable()\nexport class ValidatorActor extends ActorV3<ValidatorActorParams> {\n protected _blockValidationViewer!: BlockValidationViewer\n protected _blockViewer!: BlockViewer\n protected _finalizationRunner!: FinalizationRunner\n protected _lastValidatedBlock: BlockBoundWitness | undefined\n protected _lastValidatedBlockHash: Hash | undefined\n protected _mempoolViewer!: MempoolViewer\n\n protected get allowedProducers() {\n return this.params.config.allowedProducers ?? []\n }\n\n protected get blockValidationViewer() {\n return this._blockValidationViewer\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationRunner() {\n return this._finalizationRunner\n }\n\n protected get mempoolViewer() {\n return this._mempoolViewer\n }\n\n override async createHandler() {\n await super.startHandler()\n this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker)\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationRunner = await this.locator.getInstance(FinalizationRunnerMoniker)\n this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker)\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n this.registerTimer('ValidatorActor', async () => {\n await this.spanAsync('processPendingBlocks', async () => {\n console.log('ValidatorActor: Processing pending blocks...')\n await processPendingBlocks({\n blockValidationViewer: this.blockValidationViewer,\n context: this.context,\n logger: this.logger,\n mempoolViewer: this.mempoolViewer,\n blockViewer: this.blockViewer,\n finalizationRunner: this.finalizationRunner,\n allowedProducers: this.allowedProducers,\n })\n }, { ...this.context, timeBudgetLimit: 1500 })\n }, 2000, 500)\n }\n}\n","import type { Config } from '@xyo-network/xl1-sdk'\n\nexport function buildTelemetryConfig(config: Config, serviceName: string, serviceVersion: string, defaultMetricsScrapePort = 9464) {\n const { otlpEndpoint } = config.telemetry?.otel ?? {}\n const { path: endpoint = '/metrics', port = defaultMetricsScrapePort } = config.telemetry?.metrics?.scrape ?? {}\n const telemetryConfig = {\n attributes: { serviceName, serviceVersion }, otlpEndpoint, metricsConfig: { endpoint, port },\n }\n return telemetryConfig\n}\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const ApiConfigZod = HostActorConfigZod.extend(z.object({\n initRewardsCache: z.union([z.number(), z.string(), z.boolean()]).transform(\n v => v !== '0' && v !== 'false' && v !== false && v != 0,\n ).default(true).register(globalRegistry, {\n description: 'Whether to initialize the rewards cache on startup',\n title: 'api.initRewardsCache',\n type: 'boolean',\n }),\n}).shape)\n\nexport type ApiConfig = z.infer<typeof ApiConfigZod>\n\nexport const isApiConfig = zodIsFactory(ApiConfigZod)\nexport const asApiConfig = zodAsFactory(ApiConfigZod, 'asApiConfig')\nexport const toApiConfig = zodToFactory(ApiConfigZod, 'toApiConfig')\n\nexport interface ApiConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ApiConfig\n}\n\nexport const ApiConfigContext: z.ZodType<ApiConfigContext> = BaseConfigContextZod.extend({ config: ApiConfigZod })\n\nexport const isApiConfigContext: <T>(value: T) => value is T & ApiConfigContext = zodIsFactory(ApiConfigContext)\nexport const asApiConfigContext: ReturnType<typeof zodAsFactory<ApiConfigContext>> = zodAsFactory(ApiConfigContext, 'asApiConfigContext')\nexport const toApiConfigContext: ReturnType<typeof zodToFactory<ApiConfigContext>> = zodToFactory(ApiConfigContext, 'toApiConfigContext')\n","import {\n AddressZod, HexZod, toAddress, toHex, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext, ChainId } from '@xyo-network/xl1-sdk'\nimport {\n AttoXL1ConvertFactor, BaseConfigContextZod, HostActorConfigZod, XL1,\n} from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nconst DEFAULT_FIXED_FEE = toHex(XL1(1000n) * AttoXL1ConvertFactor.xl1)\nconst DEFAULT_VARIABLE_FEE_BASIS_POINTS = 300 // 3%\nconst DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress('2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6')\nconst DEFAULT_HARDHAT_CHAIN_ID: ChainId = toHex('7A69')\nconst DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80')\nconst DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress('5FbDB2315678afecb367f032d93F642f64180aa3')\nconst DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(1_000_000n) * AttoXL1ConvertFactor.xl1)\nconst DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(1500n) * AttoXL1ConvertFactor.xl1)\n\nexport const BasisPointsZod = z.coerce.number().int().nonnegative().max(10_000)\nexport type BasisPoints = z.infer<typeof BasisPointsZod>\n\nexport const BridgeConfigZod = HostActorConfigZod.extend({\n escrowAddress: AddressZod.optional().register(globalRegistry, {\n description: 'Address to which bridge escrow will be sent',\n title: 'bridge.escrowAddress',\n type: 'string',\n }),\n feesAddress: AddressZod.optional().register(globalRegistry, {\n description: 'Address to which bridge fees will be sent',\n title: 'bridge.feesAddress',\n type: 'string',\n }),\n feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry, {\n default: DEFAULT_FIXED_FEE,\n description: 'Fixed fee (in AttoXL1) applied to bridge transfers',\n title: 'bridge.feeFixed',\n type: 'bigint',\n }),\n feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(globalRegistry, {\n default: DEFAULT_VARIABLE_FEE_BASIS_POINTS,\n description: 'Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers',\n title: 'bridge.feeRateBasisPoints',\n type: 'number',\n }),\n maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry, {\n default: DEFAULT_MAX_BRIDGE_AMOUNT,\n description: 'Maximum amount allowed for a bridge transfer',\n title: 'bridge.maxBridgeAmount',\n type: 'string',\n }),\n minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry, {\n default: DEFAULT_MIN_BRIDGE_AMOUNT,\n description: 'Minimum amount required for a bridge transfer',\n title: 'bridge.minBridgeAmount',\n type: 'string',\n }),\n redisHost: z.string().default('localhost').register(globalRegistry, {\n default: 'localhost',\n description: 'Host for the Bridge Redis instance',\n title: 'bridge.redisHost',\n type: 'string',\n }),\n redisPort: z.coerce.number().int().positive().default(6379).register(globalRegistry, {\n default: 6379,\n description: 'Port for the Bridge Redis instance',\n title: 'bridge.redisPort',\n type: 'number',\n }),\n remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry, {\n default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,\n description: 'Hex representation of remote token address used for bridging',\n title: 'bridge.remoteBridgeContractAddress',\n type: 'string',\n }),\n remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry, {\n default: DEFAULT_HARDHAT_CHAIN_ID,\n description: 'Remote chain ID',\n title: 'bridge.remoteChainId',\n type: 'string',\n }),\n remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry, {\n default: DEFAULT_HARDHAT_TOKEN_CONTRACT,\n description: 'Hex representation of remote token address used for bridging',\n title: 'bridge.remoteTokenAddress',\n type: 'string',\n }),\n remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry, {\n description: 'Private key for the wallet to use for the remote chain wallet',\n title: 'bridge.remoteChainWalletPrivateKey',\n type: 'string',\n }),\n xl1ChainId: HexZod.optional().register(globalRegistry, {\n description: 'XL1 chain id used for bridging',\n title: 'bridge.xl1ChainId',\n type: 'string',\n }),\n xl1TokenAddress: HexZod.optional().register(globalRegistry, {\n description: 'XL1 token address used for bridging',\n title: 'bridge.xl1TokenAddress',\n type: 'string',\n }),\n})\n\nexport type BridgeConfig = z.infer<typeof BridgeConfigZod>\n\nexport const BridgeSettingsZod = BridgeConfigZod.pick({\n feeFixed: true,\n feeRateBasisPoints: true,\n feesAddress: true,\n escrowAddress: true,\n maxBridgeAmount: true,\n minBridgeAmount: true,\n remoteChainId: true,\n remoteTokenAddress: true,\n xl1TokenAddress: true,\n xl1ChainId: true,\n}).required()\n\nexport type BridgeSettings = z.infer<typeof BridgeSettingsZod>\n\nexport const isBridgeConfig = zodIsFactory(BridgeConfigZod)\nexport const asBridgeConfig = zodAsFactory(BridgeConfigZod, 'asBridgeConfig')\nexport const toBridgeConfig = zodToFactory(BridgeConfigZod, 'toBridgeConfig')\n\nexport interface BridgeConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: BridgeConfig\n}\n\nexport const BridgeConfigContext: z.ZodType<BridgeConfigContext> = BaseConfigContextZod.extend({ config: BridgeConfigZod })\n\nexport const isBridgeConfigContext: <T>(value: T) => value is T & BridgeConfigContext = zodIsFactory(BridgeConfigContext)\nexport const asBridgeConfigContext: ReturnType<typeof zodAsFactory<BridgeConfigContext>> = zodAsFactory(BridgeConfigContext, 'asBridgeConfigContext')\nexport const toBridgeConfigContext: ReturnType<typeof zodToFactory<BridgeConfigContext>> = zodToFactory(BridgeConfigContext, 'toBridgeConfigContext')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const MempoolConfigZod = HostActorConfigZod.extend({\n enabled: z.union([z.string(), z.boolean()]).default('false').transform((val, ctx) => {\n if (typeof val === 'boolean') return val\n const normalized = val.toLowerCase().trim()\n if (['true', '1', 'yes', 'on'].includes(normalized)) return true\n if (['false', '0', 'no', 'off'].includes(normalized)) return false\n ctx.addIssue({\n code: 'invalid_type',\n expected: 'boolean',\n message: `Invalid boolean value: \"${val}\". Use true/false, 1/0, yes/no.`,\n })\n return z.NEVER\n }).register(globalRegistry, {\n default: 'false',\n description: 'Enable the Mempool',\n title: 'mempool.enabled',\n type: 'boolean',\n }),\n})\n\nexport type MempoolConfig = z.infer<typeof MempoolConfigZod>\n\nexport const isMempoolConfig = zodIsFactory(MempoolConfigZod)\nexport const asMempoolConfig = zodAsFactory(MempoolConfigZod, 'asMempoolConfig')\nexport const toMempoolConfig = zodToFactory(MempoolConfigZod, 'toMempoolConfig')\n\nexport interface MempoolConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: MempoolConfig\n}\n\nexport const MempoolConfigContext: z.ZodType<MempoolConfigContext> = BaseConfigContextZod.extend({ config: MempoolConfigZod })\n\nexport const isMempoolConfigContext: <T>(value: T) => value is T & MempoolConfigContext = zodIsFactory(MempoolConfigContext)\nexport const asMempoolConfigContext: ReturnType<typeof zodAsFactory<MempoolConfigContext>> = zodAsFactory(MempoolConfigContext, 'asMempoolConfigContext')\nexport const toMempoolConfigContext: ReturnType<typeof zodToFactory<MempoolConfigContext>> = zodToFactory(MempoolConfigContext, 'toMempoolConfigContext')\n","import {\n AddressZod, asAddress,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { ActorConfigZod, BaseConfigContextZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const ProducerConfigZod = ActorConfigZod.extend(z.object({\n allowlist: z.preprocess((val) => {\n if (typeof val === 'string') {\n return val.split(',').map(s => asAddress(s.trim()))\n }\n return val\n }, z.array(AddressZod).optional().register(globalRegistry, {\n description: 'List of allowed producer addresses, if undefined anyone can participate',\n title: 'allowlist',\n type: 'array',\n })),\n\n disableIntentRedeclaration: z.boolean().optional().register(globalRegistry, {\n description: 'Should the producer skip redeclaring their intent to continue producing blocks',\n title: 'producer.disableIntentRedeclaration',\n type: 'boolean',\n }),\n heartbeatInterval: z.coerce.number().default(3_600_000).register(globalRegistry, {\n description: 'The number of milliseconds between heartbeats if no blocks are produced',\n title: 'producer.heartbeatInterval',\n type: 'number',\n }),\n // TODO: BigInt schema\n minStake: z.coerce.number().default(1).register(globalRegistry, {\n description: 'Minimum stake required to be a Producer',\n title: 'producer.minStake',\n type: 'number',\n }),\n // TODO: Address schema\n rewardAddress: z.string().optional().register(globalRegistry, {\n description: 'Address to receive block rewards',\n title: 'producer.rewardAddress',\n type: 'string',\n }),\n}).shape)\n\nexport type ProducerConfig = z.infer<typeof ProducerConfigZod>\n\nexport const isProducerConfig = zodIsFactory(ProducerConfigZod)\nexport const asProducerConfig = zodAsFactory(ProducerConfigZod, 'asProducerConfig')\nexport const toProducerConfig = zodToFactory(ProducerConfigZod, 'toProducerConfig')\n\nexport interface ProducerConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ProducerConfig\n}\n\nexport const ProducerConfigContext: z.ZodType<ProducerConfigContext> = BaseConfigContextZod.extend({ config: ProducerConfigZod })\n\nexport const isProducerConfigContext: <T>(value: T) => value is T & ProducerConfigContext = zodIsFactory(ProducerConfigContext)\nexport const asProducerConfigContext: ReturnType<typeof zodAsFactory<ProducerConfigContext>> = zodAsFactory(ProducerConfigContext, 'asProducerConfigContext')\nexport const toProducerConfigContext: ReturnType<typeof zodToFactory<ProducerConfigContext>> = zodToFactory(ProducerConfigContext, 'toProducerConfigContext')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport type { z } from 'zod'\n\nexport const RewardRedemptionConfigZod = HostActorConfigZod.extend({})\n\nexport type RewardRedemptionConfig = z.infer<typeof RewardRedemptionConfigZod>\n\nexport const isRewardRedemptionConfig = zodIsFactory(RewardRedemptionConfigZod)\nexport const asRewardRedemptionConfig = zodAsFactory(RewardRedemptionConfigZod, 'asRewardRedemptionConfig')\nexport const toRewardRedemptionConfig = zodToFactory(RewardRedemptionConfigZod, 'toRewardRedemptionConfig')\n\nexport interface RewardRedemptionConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: RewardRedemptionConfig\n}\n\nexport const RewardRedemptionConfigContext: z.ZodType<RewardRedemptionConfigContext> = BaseConfigContextZod.extend({ config: RewardRedemptionConfigZod })\n\nexport const isRewardRedemptionConfigContext: <T>(value: T) => value is T & RewardRedemptionConfigContext = zodIsFactory(RewardRedemptionConfigContext)\nexport const asRewardRedemptionConfigContext: ReturnType<typeof zodAsFactory<RewardRedemptionConfigContext>> = zodAsFactory(RewardRedemptionConfigContext, 'asRewardRedemptionConfigContext')\nexport const toRewardRedemptionConfigContext: ReturnType<typeof zodToFactory<RewardRedemptionConfigContext>> = zodToFactory(RewardRedemptionConfigContext, 'toRewardRedemptionConfigContext')\n","import {\n AddressZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { z } from 'zod'\n\nexport const ValidatorConfigZod = HostActorConfigZod.extend({ allowedProducers: z.array(AddressZod).optional() })\n\nexport type ValidatorConfig = z.infer<typeof ValidatorConfigZod>\n\nexport const isValidatorConfig = zodIsFactory(ValidatorConfigZod)\nexport const asValidatorConfig = zodAsFactory(ValidatorConfigZod, 'asValidatorConfig')\nexport const toValidatorConfig = zodToFactory(ValidatorConfigZod, 'toValidatorConfig')\n\nexport interface ValidatorConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ValidatorConfig\n}\n\nexport const ValidatorConfigContext: z.ZodType<ValidatorConfigContext> = BaseConfigContextZod.extend({ config: ValidatorConfigZod })\n\nexport const isValidatorConfigContext: <T>(value: T) => value is T & ValidatorConfigContext = zodIsFactory(ValidatorConfigContext)\nexport const asValidatorConfigContext: ReturnType<typeof zodAsFactory<ValidatorConfigContext>> = zodAsFactory(ValidatorConfigContext, 'asValidatorConfigContext')\nexport const toValidatorConfigContext: ReturnType<typeof zodToFactory<ValidatorConfigContext>> = zodToFactory(ValidatorConfigContext, 'toValidatorConfigContext')\n","import { isDefined } from '@xylabs/sdk-js'\nimport type {\n CreatableProviderFactory, ProviderFactoryLocatorInstance, RemoteConfig, RpcTransport, XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\nimport {\n JsonRpcXyoRunner, JsonRpcXyoSigner,\n ProviderFactoryLocator, RestDataLakeViewer,\n SimpleXyoConnectionRunner,\n SimpleXyoGatewayRunner,\n} from '@xyo-network/xl1-sdk'\n\nimport type { BasicRemoteViewerLocatorOptions } from './basicRemoteViewerLocator.ts'\nimport { baseBasicRemoteViewerLocator } from './basicRemoteViewerLocator.ts'\n\nexport interface BasicRemoteRunnerLocatorOptions extends BasicRemoteViewerLocatorOptions {\n additionalRunnerProviders?: CreatableProviderFactory[]\n signerFactory?: CreatableProviderFactory\n skipGatewayRunner?: boolean\n}\n\nexport async function baseBasicRemoteRunnerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n signerTransport: RpcTransport<XyoSignerRpcSchemas>,\n dataLakeEndpoint?: string,\n options?: BasicRemoteRunnerLocatorOptions,\n): Promise<ProviderFactoryLocatorInstance> {\n const remoteViewerLocator = await baseBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, options)\n const locator = new ProviderFactoryLocator(remoteViewerLocator.context, {})\n\n const providers: CreatableProviderFactory[] = [\n SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),\n JsonRpcXyoRunner.factory<JsonRpcXyoRunner>(JsonRpcXyoRunner.dependencies, {}),\n ]\n\n if (!options?.skipGatewayRunner) {\n providers.push(\n SimpleXyoGatewayRunner.factory<SimpleXyoGatewayRunner>(SimpleXyoGatewayRunner.dependencies, {}),\n )\n }\n\n locator.registerMany([\n ...providers,\n ...options?.additionalRunnerProviders ?? [],\n ])\n\n if (options?.signerFactory) {\n locator.register(options.signerFactory)\n } else {\n locator.register(\n JsonRpcXyoSigner.factory<JsonRpcXyoSigner>(JsonRpcXyoSigner.dependencies, { transport: signerTransport }),\n )\n }\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type { CreatableProviderFactory, RemoteConfig } from '@xyo-network/xl1-sdk'\nimport {\n ActorConfigZod,\n ProviderFactoryLocator, RestDataLakeViewer,\n SimpleTransactionViewer,\n SimpleXyoConnectionViewer, SimpleXyoGateway,\n} from '@xyo-network/xl1-sdk'\n\nimport { commonLocatorFromConfig } from './commonLocatorFromConfig.ts'\nimport { remoteLocatorFromConfig } from './remoteLocatorFromConfig.ts'\n\nexport interface BasicRemoteViewerLocatorOptions {\n additionalProviders?: CreatableProviderFactory[]\n}\n\nexport async function baseBasicRemoteViewerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n dataLakeEndpoint?: string,\n options?: BasicRemoteViewerLocatorOptions,\n) {\n const config = ActorConfigZod.parse({ name, remote: remoteConfig })\n const rootLocator = await commonLocatorFromConfig({\n config, singletons: {}, caches: {},\n })\n const remoteLocator = await remoteLocatorFromConfig(rootLocator.context)\n const locator = new ProviderFactoryLocator(remoteLocator.context, {})\n locator.registerMany([\n SimpleXyoGateway.factory<SimpleXyoGateway>(SimpleXyoGateway.dependencies, {}),\n SimpleXyoConnectionViewer.factory<SimpleXyoConnectionViewer>(SimpleXyoConnectionViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n ...options?.additionalProviders ?? [],\n ])\n\n if (isDefined(dataLakeEndpoint)) {\n const dataLakeViewerParams = { endpoint: dataLakeEndpoint }\n locator.register(RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, dataLakeViewerParams))\n }\n\n locator.freeze()\n\n return locator\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\nimport {\n ProviderFactoryLocator,\n SimpleBlockRewardViewer,\n SimpleNetworkStakeViewer,\n SimpleStepRewardsByPositionViewer,\n SimpleStepRewardsByStakerViewer,\n SimpleStepRewardsByStepViewer,\n SimpleStepRewardsTotalViewer,\n SimpleStepRewardsViewer,\n SimpleStepViewer,\n SimpleTimeSyncViewer,\n SimpleTransactionValidationViewer,\n SimpleTransactionViewer,\n SimpleWindowedBlockViewer,\n} from '@xyo-network/xl1-sdk'\n\nexport function commonLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator: ProviderFactoryLocatorInstance = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\n SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),\n SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(SimpleTimeSyncViewer.dependencies, {}),\n SimpleStepViewer.factory<SimpleStepViewer>(SimpleStepViewer.dependencies, {}),\n SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(SimpleStepRewardsViewer.dependencies, {}),\n SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(SimpleStepRewardsByPositionViewer.dependencies, {}),\n SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(SimpleStepRewardsByStakerViewer.dependencies, {}),\n SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(SimpleStepRewardsByStepViewer.dependencies, {}),\n SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(SimpleStepRewardsTotalViewer.dependencies, {}),\n SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(SimpleWindowedBlockViewer.dependencies, { maxWindowSize: 1000, syncInterval: 10_000 }),\n SimpleBlockRewardViewer.factory<SimpleBlockRewardViewer>(SimpleBlockRewardViewer.dependencies, {}),\n SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),\n SimpleTransactionValidationViewer.factory<SimpleTransactionValidationViewer>(SimpleTransactionValidationViewer.dependencies, {}),\n ])\n return locator\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { validateHydratedBlock, validateHydratedBlockState } from '@xyo-network/chain-validation'\nimport type {\n BaseConfigContext, HydratedBlockStateValidationFunction, ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\nimport {\n BlockCumulativeBalanceValidatorFactory,\n JsonRpcAccountBalanceViewer,\n JsonRpcBlockViewer,\n JsonRpcFinalizationViewer,\n JsonRpcMempoolRunner,\n JsonRpcMempoolViewer,\n JsonRpcNetworkStakeViewer,\n JsonRpcStakeViewer,\n JsonRpcTransactionViewer,\n JsonRpcXyoViewer,\n ProviderFactoryLocator,\n SimpleBlockValidationViewer,\n SimpleStakeEventsViewer,\n} from '@xyo-network/xl1-sdk'\n\nconst cumulativeBalanceValidator = BlockCumulativeBalanceValidatorFactory()\n\nconst validateHydratedBlockStateWithCumulativeBalance: HydratedBlockStateValidationFunction = async (context, block) => {\n const [stateErrors, cumulativeErrors] = await Promise.all([\n validateHydratedBlockState(context, block),\n cumulativeBalanceValidator(context, block),\n ])\n return [...stateErrors, ...cumulativeErrors]\n}\n\nexport function remoteLocatorFromConfig(\n context: BaseConfigContext,\n validateDepsOnRegister = false,\n): Promisable<ProviderFactoryLocatorInstance> {\n const locator = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)\n\n locator.registerMany([\n JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>(JsonRpcMempoolViewer.dependencies, {}),\n JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>(JsonRpcMempoolRunner.dependencies, {}),\n JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>(JsonRpcAccountBalanceViewer.dependencies, {}),\n JsonRpcFinalizationViewer.factory<JsonRpcFinalizationViewer>(JsonRpcFinalizationViewer.dependencies, {}),\n JsonRpcBlockViewer.factory<JsonRpcBlockViewer>(JsonRpcBlockViewer.dependencies, {}),\n JsonRpcTransactionViewer.factory<JsonRpcTransactionViewer>(JsonRpcTransactionViewer.dependencies, {}),\n JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>(JsonRpcNetworkStakeViewer.dependencies, {}),\n JsonRpcStakeViewer.factory<JsonRpcStakeViewer>(JsonRpcStakeViewer.dependencies, {}),\n SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions: [] }),\n JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, {}),\n SimpleBlockValidationViewer.factory<SimpleBlockValidationViewer>(\n SimpleBlockValidationViewer.dependencies,\n { state: validateHydratedBlockStateWithCumulativeBalance, protocol: validateHydratedBlock },\n ),\n ])\n\n return locator\n}\n","import { deepMerge } from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\nexport function mergeConfig({ actors, ...baseConfig }: Config) {\n return {\n ...baseConfig,\n actors: actors.map((actor) => {\n return deepMerge(baseConfig, actor)\n }),\n }\n}\n","import { buildNextBlock } from '@xyo-network/chain-sdk'\nimport type { AccountInstance, WithHashMeta } from '@xyo-network/sdk-js'\nimport type { BlockBoundWitness, XL1BlockRange } from '@xyo-network/xl1-sdk'\nimport { createDeclarationIntent } from '@xyo-network/xl1-sdk'\n\nexport async function createProducerChainStakeIntentBlock(prevBlock: WithHashMeta<BlockBoundWitness>, producerAccount: AccountInstance, range: XL1BlockRange) {\n const producerDeclarationPayload = createDeclarationIntent(\n producerAccount.address,\n 'producer',\n range[0],\n range[1],\n )\n return await buildNextBlock(\n prevBlock,\n [],\n [producerDeclarationPayload],\n [producerAccount],\n )\n}\n","import type { Host, ServiceProvider } from '../model/index.ts'\n\n/**\n * A generic host implementation that can be used as a starting point for\n * more complex host implementations.\n */\nexport class GenericHost implements Host {\n services: ServiceProvider\n\n constructor(services: ServiceProvider) {\n this.services = services\n }\n\n async start(): Promise<void> {\n await Promise.resolve()\n // Initialize or start your services here\n console.log('Host is starting...')\n }\n\n async stop(): Promise<void> {\n await Promise.resolve()\n // Stop or clean up services here\n console.log('Host is stopping...')\n }\n}\n","import type { ServiceProvider } from '../model/index.ts'\n\nexport class DefaultServiceProvider implements ServiceProvider {\n protected _services: Record<string, unknown>\n constructor(services: Record<string, unknown>) {\n this._services = services\n }\n\n getService<T>(serviceIdentifier: string): T | undefined {\n return this._services[serviceIdentifier] as T\n }\n}\n","import type { ServiceProvider } from './ServiceProvider.ts'\n\nexport interface ServiceCollection {\n build(): ServiceProvider\n}\n\n/**\n * Represents the lifetime of a service\n */\nexport const ServiceLifetime = {\n Singleton: 'Singleton',\n Transient: 'Transient',\n} as const\n\n/**\n * Describes a single service registration\n */\nexport interface ServiceDescriptor<T = unknown> {\n identifier: string | symbol\n implementationFactory: () => T\n lifetime: keyof typeof ServiceLifetime\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\nimport { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from '@xyo-network/xl1-sdk'\n\nconst actorAccountSingletons: Record<string, Promisable<WalletInstance>> = {}\n\nexport async function initActorAccount({ config, logger }: Pick<ActorConfigContext, 'config' | 'logger'>): Promise<WalletInstance> {\n const actorName = config.name\n if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName]\n let walletPhrase = config.mnemonic\n if (isUndefined(walletPhrase)) {\n logger?.warn(`[${actorName}}] No wallet mnemonic specified!`)\n const randomMnemonic = HDWallet.generateMnemonic()\n logger?.warn(`[${actorName}}] Using randomly generated mnemonic:\n \n${randomMnemonic}\n \n `)\n walletPhrase = randomMnemonic\n }\n const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase)\n const account = await wallet.derivePath(ADDRESS_INDEX.XYO)\n actorAccountSingletons[actorName] = account\n return actorAccountSingletons[actorName]\n}\n","import { assertEx, isString } from '@xylabs/sdk-js'\nimport type { BiosExternalInterface } from '@xyo-network/bios-model'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { WalletKind } from '@xyo-network/storage-model'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\n\n// TODO: Make nodejs version of bios support round tripping mnemonic between boots\nexport async function initActorSeedPhrase(context: ActorConfigContext, bios: BiosExternalInterface): Promise<string> {\n const { logger, config } = context\n const walletKind = config.name as WalletKind\n const storedSeedPhrase = await bios.seedPhraseStore.get(walletKind)\n logger?.debug(`[API] Stored mnemonic: ${storedSeedPhrase}`)\n const { mnemonic } = config\n if (isString(storedSeedPhrase) && isString(mnemonic)) {\n logger?.warn('[API] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')\n await bios.seedPhraseStore.set(walletKind, mnemonic)\n } else {\n let seedPhrase: string\n if (isString(mnemonic)) {\n seedPhrase = mnemonic\n } else {\n seedPhrase = HDWallet.generateMnemonic()\n logger?.log('[API] No mnemonic provided, using random mnemonic. This is not recommended for production use.')\n logger?.log(`[API] Mnemonic: ${seedPhrase}`)\n }\n await bios.seedPhraseStore.set(walletKind, seedPhrase)\n }\n return assertEx(await bios.seedPhraseStore.get(walletKind), () => 'Unable to acquire mnemonic from bios')\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type {\n AttachableArchivistInstance, AttachableModuleInstance, BridgeInstance, ModuleIdentifier,\n} from '@xyo-network/sdk-js'\nimport { asAttachableArchivistInstance, asAttachableModuleInstance } from '@xyo-network/sdk-js'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\ntype ModuleDictionary = Record<ModuleIdentifier, AttachableModuleInstance | undefined>\ntype BridgedModuleDictionary = Record<Address, ModuleDictionary | undefined>\nconst bridgedModuleDictionary: BridgedModuleDictionary = {}\n\nexport async function initBridgedModule({ bridge, moduleName }: { bridge: BridgeInstance; moduleName: ModuleIdentifier }): Promise<AttachableModuleInstance> {\n return await initMutex.runExclusive(async () => {\n const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName]\n if (existing) return existing\n const mod = assertEx(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`)\n const moduleInstance = assertEx(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`)\n // Initialize the nested dictionary if needed\n let moduleMap = bridgedModuleDictionary[bridge.address]\n if (moduleMap === undefined) {\n moduleMap = {}\n bridgedModuleDictionary[bridge.address] = moduleMap\n }\n // Store and return the module instance\n moduleMap[moduleName] = moduleInstance\n return moduleInstance\n })\n}\n\nexport async function initBridgedArchivistModule({ bridge, moduleName }: {\n bridge: BridgeInstance\n moduleName: ModuleIdentifier\n}): Promise<AttachableArchivistInstance> {\n return assertEx(\n asAttachableArchivistInstance(await initBridgedModule({ bridge, moduleName })),\n () => `Could not convert ${moduleName} to attachable archivist instance`,\n )\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { RuntimeStatusMonitor } from '@xyo-network/xl1-sdk'\n\nexport function initStatusReporter({ logger }: { logger: Logger }) {\n const statusReporter = new RuntimeStatusMonitor(logger)\n statusReporter.onGlobalTransition({ to: 'started' }, () => {\n logger.log('All services started.')\n })\n statusReporter.onGlobalTransition({ to: 'error' }, () => {\n logger.error('Producer encountered an unhandled error!')\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n })\n return statusReporter\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport { boot } from '@xyo-network/bios'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\n\nimport { initActorSeedPhrase } from './initActorSeedPhrase.ts'\n\nexport async function initActorWallet(context: ActorConfigContext, mnemonic?: string) {\n const bios = await boot()\n const seedPhrase = isDefined(mnemonic)\n ? mnemonic\n : await initActorSeedPhrase(context, bios)\n return await HDWallet.fromPhrase(seedPhrase)\n}\n\n// export async function initApiWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.api\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initBridgeWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.bridge\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initMempoolWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.mempool\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initProducerWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.producer\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initRewardsRedemptionApiWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.rewardRedemption\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initValidatorWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.mempool\n// return await initWallet({ config, logger }, mnemonic)\n// }\n","import type { CreatableInstance } from '@xylabs/sdk-js'\nimport { AbstractCreatable, creatable } from '@xylabs/sdk-js'\nimport { ActorInstanceV3 } from '@xyo-network/xl1-sdk'\n\nexport interface OrchestratorInstance extends CreatableInstance {\n registerActor(actor: ActorInstanceV3): Promise<void>\n}\n\n@creatable()\nexport class Orchestrator extends AbstractCreatable implements OrchestratorInstance {\n protected actors: (ActorInstanceV3)[] = []\n protected keepAliveHandle: NodeJS.Timeout | null = null\n protected running = false\n\n /**\n * Registers an actor.\n * (We won't activate the actor until `start()` is called.)\n */\n async registerActor(actor: ActorInstanceV3) {\n if (this.running) {\n // If the orchestrator is already running, activate the actor immediately\n await actor.start()\n }\n this.actors.push(actor)\n }\n\n /**\n * Starts the orchestrator: activates all actors.\n */\n override async startHandler() {\n await super.startHandler()\n if (this.running) {\n this.logger?.warn('[Orchestrator] Already started.')\n return\n }\n\n this.logger?.log('[Orchestrator] Starting...')\n this.running = true\n for (const actor of this.actors) {\n await actor.start()\n }\n // This interval will fire every 24.8 days (2^31 - 1 ms), effectively never finishing\n this.keepAliveHandle = setInterval(() => {\n // No-op\n }, 2_147_483_647)\n }\n\n /**\n * Stops the orchestrator: deactivates all actors.\n */\n override async stopHandler() {\n await super.stopHandler()\n if (!this.running) {\n this.logger?.log('[Orchestrator] Already stopped.')\n return\n }\n\n this.logger?.log('[Orchestrator] Stopping...')\n for (const actor of this.actors) {\n await actor.stop()\n }\n this.running = false\n if (this.keepAliveHandle) clearInterval(this.keepAliveHandle)\n this.logger?.log('[Orchestrator] Stopped...')\n }\n}\n","import type {\n RemoteConfig, RpcTransport, XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\n\nimport { baseBasicRemoteRunnerLocator } from '../../../shared/index.ts'\n\nexport function basicRemoteRunnerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n signerTransport: RpcTransport<XyoSignerRpcSchemas>,\n dataLakeEndpoint?: string,\n) {\n return baseBasicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint)\n}\n","import type { RemoteConfig } from '@xyo-network/xl1-sdk'\n\nimport { baseBasicRemoteViewerLocator } from '../../../shared/index.ts'\n\nexport function basicRemoteViewerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n dataLakeEndpoint?: string,\n) {\n return baseBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint)\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ActorConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\n\nimport { commonLocatorFromConfig, remoteLocatorFromConfig } from '../../../shared/index.ts'\n\nexport async function rootLocatorFromConfig(\n context: ActorConfigContext,\n validateDepsOnRegister = false,\n): Promise<ProviderFactoryLocatorInstance> {\n const { config } = context\n let locator = await commonLocatorFromConfig(context, validateDepsOnRegister)\n const newLocator = await (config.remote.rpc\n ? remoteLocatorFromConfig(context, validateDepsOnRegister)\n : undefined)\n locator = assertEx(newLocator, () => 'Root locator could not be created from config. No supported configuration found.')\n // locator = await initEvmProvidersIfAvailable(locator)\n locator.freeze()\n return locator\n}\n"],"mappings":"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","names":["creatable","processPendingBlocks","ActorV3","BlockValidationViewerMoniker","BlockViewerMoniker","FinalizationRunnerMoniker","MempoolViewerMoniker","ValidatorActor","ActorV3","_blockValidationViewer","_blockViewer","_finalizationRunner","_lastValidatedBlock","_lastValidatedBlockHash","_mempoolViewer","allowedProducers","params","config","blockValidationViewer","blockViewer","finalizationRunner","mempoolViewer","createHandler","startHandler","locator","getInstance","BlockValidationViewerMoniker","BlockViewerMoniker","FinalizationRunnerMoniker","MempoolViewerMoniker","registerTimer","spanAsync","console","log","processPendingBlocks","context","logger","timeBudgetLimit","buildTelemetryConfig","config","serviceName","serviceVersion","defaultMetricsScrapePort","otlpEndpoint","telemetry","otel","path","endpoint","port","metrics","scrape","telemetryConfig","attributes","metricsConfig","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","globalRegistry","z","ApiConfigZod","extend","object","initRewardsCache","union","number","string","boolean","transform","v","default","register","description","title","type","shape","isApiConfig","asApiConfig","toApiConfig","ApiConfigContext","config","isApiConfigContext","asApiConfigContext","toApiConfigContext","AddressZod","HexZod","toAddress","toHex","zodAsFactory","zodIsFactory","zodToFactory","AttoXL1ConvertFactor","BaseConfigContextZod","HostActorConfigZod","XL1","globalRegistry","z","DEFAULT_FIXED_FEE","xl1","DEFAULT_VARIABLE_FEE_BASIS_POINTS","DEFAULT_HARDHAT_BRIDGE_CONTRACT","DEFAULT_HARDHAT_CHAIN_ID","DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY","DEFAULT_HARDHAT_TOKEN_CONTRACT","DEFAULT_MAX_BRIDGE_AMOUNT","DEFAULT_MIN_BRIDGE_AMOUNT","BasisPointsZod","coerce","number","int","nonnegative","max","BridgeConfigZod","extend","escrowAddress","optional","register","description","title","type","feesAddress","feeFixed","default","feeRateBasisPoints","maxBridgeAmount","minBridgeAmount","redisHost","string","redisPort","positive","remoteBridgeContractAddress","remoteChainId","remoteTokenAddress","remoteChainWalletPrivateKey","xl1ChainId","xl1TokenAddress","BridgeSettingsZod","pick","required","isBridgeConfig","asBridgeConfig","toBridgeConfig","BridgeConfigContext","config","isBridgeConfigContext","asBridgeConfigContext","toBridgeConfigContext","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","globalRegistry","z","MempoolConfigZod","extend","enabled","union","string","boolean","default","transform","val","ctx","normalized","toLowerCase","trim","includes","addIssue","code","expected","message","NEVER","register","description","title","type","isMempoolConfig","asMempoolConfig","toMempoolConfig","MempoolConfigContext","config","isMempoolConfigContext","asMempoolConfigContext","toMempoolConfigContext","AddressZod","asAddress","zodAsFactory","zodIsFactory","zodToFactory","ActorConfigZod","BaseConfigContextZod","globalRegistry","z","ProducerConfigZod","extend","object","allowlist","preprocess","val","split","map","s","trim","array","optional","register","description","title","type","disableIntentRedeclaration","boolean","heartbeatInterval","coerce","number","default","minStake","rewardAddress","string","shape","isProducerConfig","asProducerConfig","toProducerConfig","ProducerConfigContext","config","isProducerConfigContext","asProducerConfigContext","toProducerConfigContext","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","RewardRedemptionConfigZod","extend","isRewardRedemptionConfig","asRewardRedemptionConfig","toRewardRedemptionConfig","RewardRedemptionConfigContext","config","isRewardRedemptionConfigContext","asRewardRedemptionConfigContext","toRewardRedemptionConfigContext","AddressZod","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","z","ValidatorConfigZod","extend","allowedProducers","array","optional","isValidatorConfig","asValidatorConfig","toValidatorConfig","ValidatorConfigContext","config","isValidatorConfigContext","asValidatorConfigContext","toValidatorConfigContext","isDefined","JsonRpcXyoRunner","JsonRpcXyoSigner","ProviderFactoryLocator","RestDataLakeViewer","SimpleXyoConnectionRunner","SimpleXyoGatewayRunner","isDefined","ActorConfigZod","ProviderFactoryLocator","RestDataLakeViewer","SimpleTransactionViewer","SimpleXyoConnectionViewer","SimpleXyoGateway","ProviderFactoryLocator","SimpleBlockRewardViewer","SimpleNetworkStakeViewer","SimpleStepRewardsByPositionViewer","SimpleStepRewardsByStakerViewer","SimpleStepRewardsByStepViewer","SimpleStepRewardsTotalViewer","SimpleStepRewardsViewer","SimpleStepViewer","SimpleTimeSyncViewer","SimpleTransactionValidationViewer","SimpleTransactionViewer","SimpleWindowedBlockViewer","commonLocatorFromConfig","context","validateDepsOnRegister","locator","ProviderFactoryLocator","registerMany","SimpleNetworkStakeViewer","factory","dependencies","SimpleTimeSyncViewer","SimpleStepViewer","SimpleStepRewardsViewer","SimpleStepRewardsByPositionViewer","SimpleStepRewardsByStakerViewer","SimpleStepRewardsByStepViewer","SimpleStepRewardsTotalViewer","SimpleWindowedBlockViewer","maxWindowSize","syncInterval","SimpleBlockRewardViewer","SimpleTransactionViewer","SimpleTransactionValidationViewer","validateHydratedBlock","validateHydratedBlockState","BlockCumulativeBalanceValidatorFactory","JsonRpcAccountBalanceViewer","JsonRpcBlockViewer","JsonRpcFinalizationViewer","JsonRpcMempoolRunner","JsonRpcMempoolViewer","JsonRpcNetworkStakeViewer","JsonRpcStakeViewer","JsonRpcTransactionViewer","JsonRpcXyoViewer","ProviderFactoryLocator","SimpleBlockValidationViewer","SimpleStakeEventsViewer","cumulativeBalanceValidator","BlockCumulativeBalanceValidatorFactory","validateHydratedBlockStateWithCumulativeBalance","context","block","stateErrors","cumulativeErrors","Promise","all","validateHydratedBlockState","remoteLocatorFromConfig","validateDepsOnRegister","locator","ProviderFactoryLocator","registerMany","JsonRpcMempoolViewer","factory","dependencies","JsonRpcMempoolRunner","JsonRpcAccountBalanceViewer","JsonRpcFinalizationViewer","JsonRpcBlockViewer","JsonRpcTransactionViewer","JsonRpcNetworkStakeViewer","JsonRpcStakeViewer","SimpleStakeEventsViewer","positions","JsonRpcXyoViewer","SimpleBlockValidationViewer","state","protocol","validateHydratedBlock","baseBasicRemoteViewerLocator","name","remoteConfig","dataLakeEndpoint","options","config","ActorConfigZod","parse","remote","rootLocator","commonLocatorFromConfig","singletons","caches","remoteLocator","remoteLocatorFromConfig","context","locator","ProviderFactoryLocator","registerMany","SimpleXyoGateway","factory","dependencies","SimpleXyoConnectionViewer","SimpleTransactionViewer","additionalProviders","isDefined","dataLakeViewerParams","endpoint","register","RestDataLakeViewer","freeze","baseBasicRemoteRunnerLocator","name","remoteConfig","signerTransport","dataLakeEndpoint","options","remoteViewerLocator","baseBasicRemoteViewerLocator","locator","ProviderFactoryLocator","context","providers","SimpleXyoConnectionRunner","factory","dependencies","JsonRpcXyoRunner","skipGatewayRunner","push","SimpleXyoGatewayRunner","registerMany","additionalRunnerProviders","signerFactory","register","JsonRpcXyoSigner","transport","isDefined","dataLakeViewerParams","endpoint","RestDataLakeViewer","freeze","deepMerge","mergeConfig","actors","baseConfig","map","actor","deepMerge","buildNextBlock","createDeclarationIntent","createProducerChainStakeIntentBlock","prevBlock","producerAccount","range","producerDeclarationPayload","createDeclarationIntent","address","buildNextBlock","GenericHost","services","start","Promise","resolve","console","log","stop","DefaultServiceProvider","_services","services","getService","serviceIdentifier","ServiceLifetime","Singleton","Transient","isDefined","isUndefined","HDWallet","ADDRESS_INDEX","generateXyoBaseWalletFromPhrase","actorAccountSingletons","initActorAccount","config","logger","actorName","name","isDefined","walletPhrase","mnemonic","isUndefined","warn","randomMnemonic","HDWallet","generateMnemonic","wallet","generateXyoBaseWalletFromPhrase","account","derivePath","ADDRESS_INDEX","XYO","assertEx","isString","HDWallet","initActorSeedPhrase","context","bios","logger","config","walletKind","name","storedSeedPhrase","seedPhraseStore","get","debug","mnemonic","isString","warn","set","seedPhrase","HDWallet","generateMnemonic","log","assertEx","assertEx","asAttachableArchivistInstance","asAttachableModuleInstance","Mutex","initMutex","Mutex","bridgedModuleDictionary","initBridgedModule","bridge","moduleName","runExclusive","existing","address","mod","assertEx","resolve","moduleInstance","asAttachableModuleInstance","moduleMap","undefined","initBridgedArchivistModule","asAttachableArchivistInstance","RuntimeStatusMonitor","initStatusReporter","logger","statusReporter","RuntimeStatusMonitor","onGlobalTransition","to","log","error","process","exit","isDefined","boot","HDWallet","initActorWallet","context","mnemonic","bios","boot","seedPhrase","isDefined","initActorSeedPhrase","HDWallet","fromPhrase","AbstractCreatable","creatable","Orchestrator","AbstractCreatable","actors","keepAliveHandle","running","registerActor","actor","start","push","startHandler","logger","warn","log","setInterval","stopHandler","stop","clearInterval","basicRemoteRunnerLocator","name","remoteConfig","signerTransport","dataLakeEndpoint","baseBasicRemoteRunnerLocator","basicRemoteViewerLocator","name","remoteConfig","dataLakeEndpoint","baseBasicRemoteViewerLocator","assertEx","rootLocatorFromConfig","context","validateDepsOnRegister","config","locator","commonLocatorFromConfig","newLocator","remote","rpc","remoteLocatorFromConfig","undefined","assertEx","freeze"]}
1
+ {"version":3,"sources":["../../src/shared/actor/ValidatorActor.ts","../../src/shared/buildTelemetryConfig.ts","../../src/shared/config/actors/Api.ts","../../src/shared/config/actors/Bridge.ts","../../src/shared/config/actors/Mempool.ts","../../src/shared/config/actors/Producer.ts","../../src/shared/config/actors/RewardRedemption.ts","../../src/shared/config/actors/Validator.ts","../../src/shared/config/mergeConfig.ts","../../src/shared/createDeclarationIntentBlock.ts","../../src/shared/host/implementation/DefaultHost.ts","../../src/shared/host/implementation/DefaultServiceProvider.ts","../../src/shared/host/model/ServiceCollection.ts","../../src/shared/init/initActorAccount.ts","../../src/shared/init/initActorSeedPhrase.ts","../../src/shared/init/initBridgedModule.ts","../../src/shared/init/initStatusReporter.ts","../../src/shared/init/initWallet.ts","../../src/shared/orchestrator/Orchestrator.ts","../../src/neutral/config/locators/basicRemoteRunnerLocator.ts","../../src/neutral/config/locators/basicRemoteViewerLocator.ts","../../src/neutral/config/locators/rootLocatorFromConfig.ts"],"sourcesContent":["import type { Hash } from '@xylabs/sdk-js'\nimport { creatable } from '@xylabs/sdk-js'\nimport { processPendingBlocks } from '@xyo-network/chain-sdk'\nimport type {\n ActorParamsV3, BlockBoundWitness, BlockValidationViewer, BlockViewer,\n FinalizationRunner,\n MempoolViewer,\n} from '@xyo-network/xl1-sdk'\nimport {\n ActorV3, BlockValidationViewerMoniker, BlockViewerMoniker, FinalizationRunnerMoniker,\n MempoolViewerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nimport { ValidatorConfig } from '../config/index.ts'\n\nexport type ValidatorActorParams = ActorParamsV3<\n {\n config: ValidatorConfig\n }>\n\n@creatable()\nexport class ValidatorActor extends ActorV3<ValidatorActorParams> {\n protected _blockValidationViewer!: BlockValidationViewer\n protected _blockViewer!: BlockViewer\n protected _finalizationRunner!: FinalizationRunner\n protected _lastValidatedBlock: BlockBoundWitness | undefined\n protected _lastValidatedBlockHash: Hash | undefined\n protected _mempoolViewer!: MempoolViewer\n\n protected get allowedProducers() {\n return this.params.config.allowedProducers ?? []\n }\n\n protected get blockValidationViewer() {\n return this._blockValidationViewer\n }\n\n protected get blockViewer() {\n return this._blockViewer\n }\n\n protected get finalizationRunner() {\n return this._finalizationRunner\n }\n\n protected get mempoolViewer() {\n return this._mempoolViewer\n }\n\n override async createHandler() {\n await super.startHandler()\n this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker)\n this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)\n this._finalizationRunner = await this.locator.getInstance(FinalizationRunnerMoniker)\n this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker)\n }\n\n override async startHandler(): Promise<void> {\n await super.startHandler()\n this.registerTimer('ValidatorActor', async () => {\n await this.spanAsync('processPendingBlocks', async () => {\n console.log('ValidatorActor: Processing pending blocks...')\n await processPendingBlocks({\n blockValidationViewer: this.blockValidationViewer,\n context: this.context,\n logger: this.logger,\n mempoolViewer: this.mempoolViewer,\n blockViewer: this.blockViewer,\n finalizationRunner: this.finalizationRunner,\n allowedProducers: this.allowedProducers,\n })\n }, { ...this.context, timeBudgetLimit: 1500 })\n }, 2000, 500)\n }\n}\n","import type { Config } from '@xyo-network/xl1-sdk'\n\nexport function buildTelemetryConfig(config: Config, serviceName: string, serviceVersion: string, defaultMetricsScrapePort = 9464) {\n const { otlpEndpoint } = config.telemetry?.otel ?? {}\n const { path: endpoint = '/metrics', port = defaultMetricsScrapePort } = config.telemetry?.metrics?.scrape ?? {}\n const telemetryConfig = {\n attributes: { serviceName, serviceVersion }, otlpEndpoint, metricsConfig: { endpoint, port },\n }\n return telemetryConfig\n}\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const ApiConfigZod = HostActorConfigZod.extend(z.object({\n initRewardsCache: z.union([z.number(), z.string(), z.boolean()]).transform(\n v => v !== '0' && v !== 'false' && v !== false && v != 0,\n ).default(true).register(globalRegistry, {\n description: 'Whether to initialize the rewards cache on startup',\n title: 'api.initRewardsCache',\n type: 'boolean',\n }),\n}).shape)\n\nexport type ApiConfig = z.infer<typeof ApiConfigZod>\n\nexport const isApiConfig = zodIsFactory(ApiConfigZod)\nexport const asApiConfig = zodAsFactory(ApiConfigZod, 'asApiConfig')\nexport const toApiConfig = zodToFactory(ApiConfigZod, 'toApiConfig')\n\nexport interface ApiConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ApiConfig\n}\n\nexport const ApiConfigContext: z.ZodType<ApiConfigContext> = BaseConfigContextZod.extend({ config: ApiConfigZod })\n\nexport const isApiConfigContext: <T>(value: T) => value is T & ApiConfigContext = zodIsFactory(ApiConfigContext)\nexport const asApiConfigContext: ReturnType<typeof zodAsFactory<ApiConfigContext>> = zodAsFactory(ApiConfigContext, 'asApiConfigContext')\nexport const toApiConfigContext: ReturnType<typeof zodToFactory<ApiConfigContext>> = zodToFactory(ApiConfigContext, 'toApiConfigContext')\n","import {\n AddressZod, HexZod, toAddress, toHex, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext, ChainId } from '@xyo-network/xl1-sdk'\nimport {\n AttoXL1ConvertFactor, BaseConfigContextZod, HostActorConfigZod, XL1,\n} from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nconst DEFAULT_FIXED_FEE = toHex(XL1(1000n) * AttoXL1ConvertFactor.xl1)\nconst DEFAULT_VARIABLE_FEE_BASIS_POINTS = 300 // 3%\nconst DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress('2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6')\nconst DEFAULT_HARDHAT_CHAIN_ID: ChainId = toHex('7A69')\nconst DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80')\nconst DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress('5FbDB2315678afecb367f032d93F642f64180aa3')\nconst DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(1_000_000n) * AttoXL1ConvertFactor.xl1)\nconst DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(1500n) * AttoXL1ConvertFactor.xl1)\n\nexport const BasisPointsZod = z.coerce.number().int().nonnegative().max(10_000)\nexport type BasisPoints = z.infer<typeof BasisPointsZod>\n\nexport const BridgeConfigZod = HostActorConfigZod.extend({\n escrowAddress: AddressZod.optional().register(globalRegistry, {\n description: 'Address to which bridge escrow will be sent',\n title: 'bridge.escrowAddress',\n type: 'string',\n }),\n feesAddress: AddressZod.optional().register(globalRegistry, {\n description: 'Address to which bridge fees will be sent',\n title: 'bridge.feesAddress',\n type: 'string',\n }),\n feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry, {\n default: DEFAULT_FIXED_FEE,\n description: 'Fixed fee (in AttoXL1) applied to bridge transfers',\n title: 'bridge.feeFixed',\n type: 'bigint',\n }),\n feeRateBasisPoints: BasisPointsZod.default(DEFAULT_VARIABLE_FEE_BASIS_POINTS).register(globalRegistry, {\n default: DEFAULT_VARIABLE_FEE_BASIS_POINTS,\n description: 'Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers',\n title: 'bridge.feeRateBasisPoints',\n type: 'number',\n }),\n maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry, {\n default: DEFAULT_MAX_BRIDGE_AMOUNT,\n description: 'Maximum amount allowed for a bridge transfer',\n title: 'bridge.maxBridgeAmount',\n type: 'string',\n }),\n minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry, {\n default: DEFAULT_MIN_BRIDGE_AMOUNT,\n description: 'Minimum amount required for a bridge transfer',\n title: 'bridge.minBridgeAmount',\n type: 'string',\n }),\n redisHost: z.string().default('localhost').register(globalRegistry, {\n default: 'localhost',\n description: 'Host for the Bridge Redis instance',\n title: 'bridge.redisHost',\n type: 'string',\n }),\n redisPort: z.coerce.number().int().positive().default(6379).register(globalRegistry, {\n default: 6379,\n description: 'Port for the Bridge Redis instance',\n title: 'bridge.redisPort',\n type: 'number',\n }),\n remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry, {\n default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,\n description: 'Hex representation of remote token address used for bridging',\n title: 'bridge.remoteBridgeContractAddress',\n type: 'string',\n }),\n remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry, {\n default: DEFAULT_HARDHAT_CHAIN_ID,\n description: 'Remote chain ID',\n title: 'bridge.remoteChainId',\n type: 'string',\n }),\n remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry, {\n default: DEFAULT_HARDHAT_TOKEN_CONTRACT,\n description: 'Hex representation of remote token address used for bridging',\n title: 'bridge.remoteTokenAddress',\n type: 'string',\n }),\n remoteChainWalletPrivateKey: HexZod.default(DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY).register(globalRegistry, {\n description: 'Private key for the wallet to use for the remote chain wallet',\n title: 'bridge.remoteChainWalletPrivateKey',\n type: 'string',\n }),\n xl1ChainId: HexZod.optional().register(globalRegistry, {\n description: 'XL1 chain id used for bridging',\n title: 'bridge.xl1ChainId',\n type: 'string',\n }),\n xl1TokenAddress: HexZod.optional().register(globalRegistry, {\n description: 'XL1 token address used for bridging',\n title: 'bridge.xl1TokenAddress',\n type: 'string',\n }),\n})\n\nexport type BridgeConfig = z.infer<typeof BridgeConfigZod>\n\nexport const BridgeSettingsZod = BridgeConfigZod.pick({\n feeFixed: true,\n feeRateBasisPoints: true,\n feesAddress: true,\n escrowAddress: true,\n maxBridgeAmount: true,\n minBridgeAmount: true,\n remoteChainId: true,\n remoteTokenAddress: true,\n xl1TokenAddress: true,\n xl1ChainId: true,\n}).required()\n\nexport type BridgeSettings = z.infer<typeof BridgeSettingsZod>\n\nexport const isBridgeConfig = zodIsFactory(BridgeConfigZod)\nexport const asBridgeConfig = zodAsFactory(BridgeConfigZod, 'asBridgeConfig')\nexport const toBridgeConfig = zodToFactory(BridgeConfigZod, 'toBridgeConfig')\n\nexport interface BridgeConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: BridgeConfig\n}\n\nexport const BridgeConfigContext: z.ZodType<BridgeConfigContext> = BaseConfigContextZod.extend({ config: BridgeConfigZod })\n\nexport const isBridgeConfigContext: <T>(value: T) => value is T & BridgeConfigContext = zodIsFactory(BridgeConfigContext)\nexport const asBridgeConfigContext: ReturnType<typeof zodAsFactory<BridgeConfigContext>> = zodAsFactory(BridgeConfigContext, 'asBridgeConfigContext')\nexport const toBridgeConfigContext: ReturnType<typeof zodToFactory<BridgeConfigContext>> = zodToFactory(BridgeConfigContext, 'toBridgeConfigContext')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const MempoolConfigZod = HostActorConfigZod.extend({\n enabled: z.union([z.string(), z.boolean()]).default('false').transform((val, ctx) => {\n if (typeof val === 'boolean') return val\n const normalized = val.toLowerCase().trim()\n if (['true', '1', 'yes', 'on'].includes(normalized)) return true\n if (['false', '0', 'no', 'off'].includes(normalized)) return false\n ctx.addIssue({\n code: 'invalid_type',\n expected: 'boolean',\n message: `Invalid boolean value: \"${val}\". Use true/false, 1/0, yes/no.`,\n })\n return z.NEVER\n }).register(globalRegistry, {\n default: 'false',\n description: 'Enable the Mempool',\n title: 'mempool.enabled',\n type: 'boolean',\n }),\n})\n\nexport type MempoolConfig = z.infer<typeof MempoolConfigZod>\n\nexport const isMempoolConfig = zodIsFactory(MempoolConfigZod)\nexport const asMempoolConfig = zodAsFactory(MempoolConfigZod, 'asMempoolConfig')\nexport const toMempoolConfig = zodToFactory(MempoolConfigZod, 'toMempoolConfig')\n\nexport interface MempoolConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: MempoolConfig\n}\n\nexport const MempoolConfigContext: z.ZodType<MempoolConfigContext> = BaseConfigContextZod.extend({ config: MempoolConfigZod })\n\nexport const isMempoolConfigContext: <T>(value: T) => value is T & MempoolConfigContext = zodIsFactory(MempoolConfigContext)\nexport const asMempoolConfigContext: ReturnType<typeof zodAsFactory<MempoolConfigContext>> = zodAsFactory(MempoolConfigContext, 'asMempoolConfigContext')\nexport const toMempoolConfigContext: ReturnType<typeof zodToFactory<MempoolConfigContext>> = zodToFactory(MempoolConfigContext, 'toMempoolConfigContext')\n","import {\n AddressZod, asAddress,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { ActorConfigZod, BaseConfigContextZod } from '@xyo-network/xl1-sdk'\nimport { globalRegistry, z } from 'zod'\n\nexport const ProducerConfigZod = ActorConfigZod.extend(z.object({\n allowlist: z.preprocess((val) => {\n if (typeof val === 'string') {\n return val.split(',').map(s => asAddress(s.trim()))\n }\n return val\n }, z.array(AddressZod).optional().register(globalRegistry, {\n description: 'List of allowed producer addresses, if undefined anyone can participate',\n title: 'allowlist',\n type: 'array',\n })),\n\n disableIntentRedeclaration: z.boolean().optional().register(globalRegistry, {\n description: 'Should the producer skip redeclaring their intent to continue producing blocks',\n title: 'producer.disableIntentRedeclaration',\n type: 'boolean',\n }),\n heartbeatInterval: z.coerce.number().default(3_600_000).register(globalRegistry, {\n description: 'The number of milliseconds between heartbeats if no blocks are produced',\n title: 'producer.heartbeatInterval',\n type: 'number',\n }),\n // TODO: BigInt schema\n minStake: z.coerce.number().default(1).register(globalRegistry, {\n description: 'Minimum stake required to be a Producer',\n title: 'producer.minStake',\n type: 'number',\n }),\n // TODO: Address schema\n rewardAddress: z.string().optional().register(globalRegistry, {\n description: 'Address to receive block rewards',\n title: 'producer.rewardAddress',\n type: 'string',\n }),\n}).shape)\n\nexport type ProducerConfig = z.infer<typeof ProducerConfigZod>\n\nexport const isProducerConfig = zodIsFactory(ProducerConfigZod)\nexport const asProducerConfig = zodAsFactory(ProducerConfigZod, 'asProducerConfig')\nexport const toProducerConfig = zodToFactory(ProducerConfigZod, 'toProducerConfig')\n\nexport interface ProducerConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ProducerConfig\n}\n\nexport const ProducerConfigContext: z.ZodType<ProducerConfigContext> = BaseConfigContextZod.extend({ config: ProducerConfigZod })\n\nexport const isProducerConfigContext: <T>(value: T) => value is T & ProducerConfigContext = zodIsFactory(ProducerConfigContext)\nexport const asProducerConfigContext: ReturnType<typeof zodAsFactory<ProducerConfigContext>> = zodAsFactory(ProducerConfigContext, 'asProducerConfigContext')\nexport const toProducerConfigContext: ReturnType<typeof zodToFactory<ProducerConfigContext>> = zodToFactory(ProducerConfigContext, 'toProducerConfigContext')\n","import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport type { z } from 'zod'\n\nexport const RewardRedemptionConfigZod = HostActorConfigZod.extend({})\n\nexport type RewardRedemptionConfig = z.infer<typeof RewardRedemptionConfigZod>\n\nexport const isRewardRedemptionConfig = zodIsFactory(RewardRedemptionConfigZod)\nexport const asRewardRedemptionConfig = zodAsFactory(RewardRedemptionConfigZod, 'asRewardRedemptionConfig')\nexport const toRewardRedemptionConfig = zodToFactory(RewardRedemptionConfigZod, 'toRewardRedemptionConfig')\n\nexport interface RewardRedemptionConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: RewardRedemptionConfig\n}\n\nexport const RewardRedemptionConfigContext: z.ZodType<RewardRedemptionConfigContext> = BaseConfigContextZod.extend({ config: RewardRedemptionConfigZod })\n\nexport const isRewardRedemptionConfigContext: <T>(value: T) => value is T & RewardRedemptionConfigContext = zodIsFactory(RewardRedemptionConfigContext)\nexport const asRewardRedemptionConfigContext: ReturnType<typeof zodAsFactory<RewardRedemptionConfigContext>> = zodAsFactory(RewardRedemptionConfigContext, 'asRewardRedemptionConfigContext')\nexport const toRewardRedemptionConfigContext: ReturnType<typeof zodToFactory<RewardRedemptionConfigContext>> = zodToFactory(RewardRedemptionConfigContext, 'toRewardRedemptionConfigContext')\n","import {\n AddressZod,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { BaseConfigContext } from '@xyo-network/xl1-sdk'\nimport { BaseConfigContextZod, HostActorConfigZod } from '@xyo-network/xl1-sdk'\nimport { z } from 'zod'\n\nexport const ValidatorConfigZod = HostActorConfigZod.extend({ allowedProducers: z.array(AddressZod).optional() })\n\nexport type ValidatorConfig = z.infer<typeof ValidatorConfigZod>\n\nexport const isValidatorConfig = zodIsFactory(ValidatorConfigZod)\nexport const asValidatorConfig = zodAsFactory(ValidatorConfigZod, 'asValidatorConfig')\nexport const toValidatorConfig = zodToFactory(ValidatorConfigZod, 'toValidatorConfig')\n\nexport interface ValidatorConfigContext extends Omit<BaseConfigContext, 'config'> {\n config: ValidatorConfig\n}\n\nexport const ValidatorConfigContext: z.ZodType<ValidatorConfigContext> = BaseConfigContextZod.extend({ config: ValidatorConfigZod })\n\nexport const isValidatorConfigContext: <T>(value: T) => value is T & ValidatorConfigContext = zodIsFactory(ValidatorConfigContext)\nexport const asValidatorConfigContext: ReturnType<typeof zodAsFactory<ValidatorConfigContext>> = zodAsFactory(ValidatorConfigContext, 'asValidatorConfigContext')\nexport const toValidatorConfigContext: ReturnType<typeof zodToFactory<ValidatorConfigContext>> = zodToFactory(ValidatorConfigContext, 'toValidatorConfigContext')\n","import { deepMerge } from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\nexport function mergeConfig({ actors, ...baseConfig }: Config) {\n return {\n ...baseConfig,\n actors: actors.map((actor) => {\n return deepMerge(baseConfig, actor)\n }),\n }\n}\n","import { buildNextBlock } from '@xyo-network/chain-sdk'\nimport type { AccountInstance, WithHashMeta } from '@xyo-network/sdk-js'\nimport type { BlockBoundWitness, XL1BlockRange } from '@xyo-network/xl1-sdk'\nimport { createDeclarationIntent } from '@xyo-network/xl1-sdk'\n\nexport async function createProducerChainStakeIntentBlock(prevBlock: WithHashMeta<BlockBoundWitness>, producerAccount: AccountInstance, range: XL1BlockRange) {\n const producerDeclarationPayload = createDeclarationIntent(\n producerAccount.address,\n 'producer',\n range[0],\n range[1],\n )\n return await buildNextBlock(\n prevBlock,\n [],\n [producerDeclarationPayload],\n [producerAccount],\n )\n}\n","import type { Host, ServiceProvider } from '../model/index.ts'\n\n/**\n * A generic host implementation that can be used as a starting point for\n * more complex host implementations.\n */\nexport class GenericHost implements Host {\n services: ServiceProvider\n\n constructor(services: ServiceProvider) {\n this.services = services\n }\n\n async start(): Promise<void> {\n await Promise.resolve()\n // Initialize or start your services here\n console.log('Host is starting...')\n }\n\n async stop(): Promise<void> {\n await Promise.resolve()\n // Stop or clean up services here\n console.log('Host is stopping...')\n }\n}\n","import type { ServiceProvider } from '../model/index.ts'\n\nexport class DefaultServiceProvider implements ServiceProvider {\n protected _services: Record<string, unknown>\n constructor(services: Record<string, unknown>) {\n this._services = services\n }\n\n getService<T>(serviceIdentifier: string): T | undefined {\n return this._services[serviceIdentifier] as T\n }\n}\n","import type { ServiceProvider } from './ServiceProvider.ts'\n\nexport interface ServiceCollection {\n build(): ServiceProvider\n}\n\n/**\n * Represents the lifetime of a service\n */\nexport const ServiceLifetime = {\n Singleton: 'Singleton',\n Transient: 'Transient',\n} as const\n\n/**\n * Describes a single service registration\n */\nexport interface ServiceDescriptor<T = unknown> {\n identifier: string | symbol\n implementationFactory: () => T\n lifetime: keyof typeof ServiceLifetime\n}\n","import type { Promisable } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { WalletInstance } from '@xyo-network/wallet-model'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\nimport { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from '@xyo-network/xl1-sdk'\n\nconst actorAccountSingletons: Record<string, Promisable<WalletInstance>> = {}\n\nexport async function initActorAccount({ config, logger }: Pick<ActorConfigContext, 'config' | 'logger'>): Promise<WalletInstance> {\n const actorName = config.name\n if (isDefined(actorAccountSingletons[actorName])) return actorAccountSingletons[actorName]\n let walletPhrase = config.mnemonic\n if (isUndefined(walletPhrase)) {\n logger?.warn(`[${actorName}}] No wallet mnemonic specified!`)\n const randomMnemonic = HDWallet.generateMnemonic()\n logger?.warn(`[${actorName}}] Using randomly generated mnemonic:\n \n${randomMnemonic}\n \n `)\n walletPhrase = randomMnemonic\n }\n const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase)\n const account = await wallet.derivePath(ADDRESS_INDEX.XYO)\n actorAccountSingletons[actorName] = account\n return actorAccountSingletons[actorName]\n}\n","import { assertEx, isString } from '@xylabs/sdk-js'\nimport type { BiosExternalInterface } from '@xyo-network/bios-model'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { WalletKind } from '@xyo-network/storage-model'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\n\n// TODO: Make nodejs version of bios support round tripping mnemonic between boots\nexport async function initActorSeedPhrase(context: ActorConfigContext, bios: BiosExternalInterface): Promise<string> {\n const { logger, config } = context\n const walletKind = config.name as WalletKind\n const storedSeedPhrase = await bios.seedPhraseStore.get(walletKind)\n logger?.debug(`[API] Stored mnemonic: ${storedSeedPhrase}`)\n const { mnemonic } = config\n if (isString(storedSeedPhrase) && isString(mnemonic)) {\n logger?.warn('[API] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')\n await bios.seedPhraseStore.set(walletKind, mnemonic)\n } else {\n let seedPhrase: string\n if (isString(mnemonic)) {\n seedPhrase = mnemonic\n } else {\n seedPhrase = HDWallet.generateMnemonic()\n logger?.log('[API] No mnemonic provided, using random mnemonic. This is not recommended for production use.')\n logger?.log(`[API] Mnemonic: ${seedPhrase}`)\n }\n await bios.seedPhraseStore.set(walletKind, seedPhrase)\n }\n return assertEx(await bios.seedPhraseStore.get(walletKind), () => 'Unable to acquire mnemonic from bios')\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type {\n AttachableArchivistInstance, AttachableModuleInstance, BridgeInstance, ModuleIdentifier,\n} from '@xyo-network/sdk-js'\nimport { asAttachableArchivistInstance, asAttachableModuleInstance } from '@xyo-network/sdk-js'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\ntype ModuleDictionary = Record<ModuleIdentifier, AttachableModuleInstance | undefined>\ntype BridgedModuleDictionary = Record<Address, ModuleDictionary | undefined>\nconst bridgedModuleDictionary: BridgedModuleDictionary = {}\n\nexport async function initBridgedModule({ bridge, moduleName }: { bridge: BridgeInstance; moduleName: ModuleIdentifier }): Promise<AttachableModuleInstance> {\n return await initMutex.runExclusive(async () => {\n const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName]\n if (existing) return existing\n const mod = assertEx(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`)\n const moduleInstance = assertEx(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`)\n // Initialize the nested dictionary if needed\n let moduleMap = bridgedModuleDictionary[bridge.address]\n if (moduleMap === undefined) {\n moduleMap = {}\n bridgedModuleDictionary[bridge.address] = moduleMap\n }\n // Store and return the module instance\n moduleMap[moduleName] = moduleInstance\n return moduleInstance\n })\n}\n\nexport async function initBridgedArchivistModule({ bridge, moduleName }: {\n bridge: BridgeInstance\n moduleName: ModuleIdentifier\n}): Promise<AttachableArchivistInstance> {\n return assertEx(\n asAttachableArchivistInstance(await initBridgedModule({ bridge, moduleName })),\n () => `Could not convert ${moduleName} to attachable archivist instance`,\n )\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { RuntimeStatusMonitor } from '@xyo-network/xl1-sdk'\n\nexport function initStatusReporter({ logger }: { logger: Logger }) {\n const statusReporter = new RuntimeStatusMonitor(logger)\n statusReporter.onGlobalTransition({ to: 'started' }, () => {\n logger.log('All services started.')\n })\n statusReporter.onGlobalTransition({ to: 'error' }, () => {\n logger.error('Producer encountered an unhandled error!')\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n })\n return statusReporter\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport { boot } from '@xyo-network/bios'\nimport { HDWallet } from '@xyo-network/sdk-js'\nimport type { ActorConfigContext } from '@xyo-network/xl1-sdk'\n\nimport { initActorSeedPhrase } from './initActorSeedPhrase.ts'\n\nexport async function initActorWallet(context: ActorConfigContext, mnemonic?: string) {\n const bios = await boot()\n const seedPhrase = isDefined(mnemonic)\n ? mnemonic\n : await initActorSeedPhrase(context, bios)\n return await HDWallet.fromPhrase(seedPhrase)\n}\n\n// export async function initApiWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.api\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initBridgeWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.bridge\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initMempoolWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.mempool\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initProducerWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.producer\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initRewardsRedemptionApiWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.rewardRedemption\n// return await initWallet({ config, logger }, mnemonic)\n// }\n\n// export async function initValidatorWallet({ config, logger }: ConfigContext) {\n// const { mnemonic } = config.actors.mempool\n// return await initWallet({ config, logger }, mnemonic)\n// }\n","import type { CreatableInstance } from '@xylabs/sdk-js'\nimport { AbstractCreatable, creatable } from '@xylabs/sdk-js'\nimport { ActorInstanceV3 } from '@xyo-network/xl1-sdk'\n\nexport interface OrchestratorInstance extends CreatableInstance {\n registerActor(actor: ActorInstanceV3): Promise<void>\n}\n\n@creatable()\nexport class Orchestrator extends AbstractCreatable implements OrchestratorInstance {\n protected actors: (ActorInstanceV3)[] = []\n protected keepAliveHandle: NodeJS.Timeout | null = null\n protected running = false\n\n /**\n * Registers an actor.\n * (We won't activate the actor until `start()` is called.)\n */\n async registerActor(actor: ActorInstanceV3) {\n if (this.running) {\n // If the orchestrator is already running, activate the actor immediately\n await actor.start()\n }\n this.actors.push(actor)\n }\n\n /**\n * Starts the orchestrator: activates all actors.\n */\n override async startHandler() {\n await super.startHandler()\n if (this.running) {\n this.logger?.warn('[Orchestrator] Already started.')\n return\n }\n\n this.logger?.log('[Orchestrator] Starting...')\n this.running = true\n for (const actor of this.actors) {\n await actor.start()\n }\n // This interval will fire every 24.8 days (2^31 - 1 ms), effectively never finishing\n this.keepAliveHandle = setInterval(() => {\n // No-op\n }, 2_147_483_647)\n }\n\n /**\n * Stops the orchestrator: deactivates all actors.\n */\n override async stopHandler() {\n await super.stopHandler()\n if (!this.running) {\n this.logger?.log('[Orchestrator] Already stopped.')\n return\n }\n\n this.logger?.log('[Orchestrator] Stopping...')\n for (const actor of this.actors) {\n await actor.stop()\n }\n this.running = false\n if (this.keepAliveHandle) clearInterval(this.keepAliveHandle)\n this.logger?.log('[Orchestrator] Stopped...')\n }\n}\n","import type {\n BlockValidators,\n RemoteConfig, RpcTransport, XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\nimport { basicRemoteRunnerLocator as sdkBasicRemoteRunnerLocator } from '@xyo-network/xl1-sdk'\n\n/** @deprecated Use basicRemoteRunnerLocator from \\@xyo-network/xl1-providers instead */\nexport function basicRemoteRunnerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n signerTransport: RpcTransport<XyoSignerRpcSchemas>,\n dataLakeEndpoint?: string,\n validators?: BlockValidators,\n) {\n return sdkBasicRemoteRunnerLocator(name, remoteConfig, signerTransport, dataLakeEndpoint, { validators })\n}\n","import type { BlockValidators, RemoteConfig } from '@xyo-network/xl1-sdk'\nimport { basicRemoteViewerLocator as sdkBasicRemoteViewerLocator } from '@xyo-network/xl1-sdk'\n\n/** @deprecated Use basicRemoteViewerLocator from \\@xyo-network/xl1-providers instead */\nexport function basicRemoteViewerLocator(\n name: string,\n remoteConfig: RemoteConfig,\n dataLakeEndpoint?: string,\n validators?: BlockValidators,\n) {\n return sdkBasicRemoteViewerLocator(name, remoteConfig, dataLakeEndpoint, { validators })\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport type { ActorConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'\nimport { commonLocatorFromConfig, remoteLocatorFromConfig } from '@xyo-network/xl1-sdk'\n\n/** @deprecated Use rootLocatorFromConfig from \\@xyo-network/xl1-providers instead */\nexport async function rootLocatorFromConfig(\n context: ActorConfigContext,\n validateDepsOnRegister = false,\n): Promise<ProviderFactoryLocatorInstance> {\n const { config } = context\n let locator = await commonLocatorFromConfig(context, validateDepsOnRegister)\n const newLocator = await (config.remote.rpc\n ? remoteLocatorFromConfig(context, validateDepsOnRegister)\n : undefined)\n locator = assertEx(newLocator, () => 'Root locator could not be created from config. No supported configuration found.')\n locator.freeze()\n return locator\n}\n"],"mappings":"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","names":["creatable","processPendingBlocks","ActorV3","BlockValidationViewerMoniker","BlockViewerMoniker","FinalizationRunnerMoniker","MempoolViewerMoniker","ValidatorActor","ActorV3","_blockValidationViewer","_blockViewer","_finalizationRunner","_lastValidatedBlock","_lastValidatedBlockHash","_mempoolViewer","allowedProducers","params","config","blockValidationViewer","blockViewer","finalizationRunner","mempoolViewer","createHandler","startHandler","locator","getInstance","BlockValidationViewerMoniker","BlockViewerMoniker","FinalizationRunnerMoniker","MempoolViewerMoniker","registerTimer","spanAsync","console","log","processPendingBlocks","context","logger","timeBudgetLimit","buildTelemetryConfig","config","serviceName","serviceVersion","defaultMetricsScrapePort","otlpEndpoint","telemetry","otel","path","endpoint","port","metrics","scrape","telemetryConfig","attributes","metricsConfig","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","globalRegistry","z","ApiConfigZod","extend","object","initRewardsCache","union","number","string","boolean","transform","v","default","register","description","title","type","shape","isApiConfig","asApiConfig","toApiConfig","ApiConfigContext","config","isApiConfigContext","asApiConfigContext","toApiConfigContext","AddressZod","HexZod","toAddress","toHex","zodAsFactory","zodIsFactory","zodToFactory","AttoXL1ConvertFactor","BaseConfigContextZod","HostActorConfigZod","XL1","globalRegistry","z","DEFAULT_FIXED_FEE","xl1","DEFAULT_VARIABLE_FEE_BASIS_POINTS","DEFAULT_HARDHAT_BRIDGE_CONTRACT","DEFAULT_HARDHAT_CHAIN_ID","DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY","DEFAULT_HARDHAT_TOKEN_CONTRACT","DEFAULT_MAX_BRIDGE_AMOUNT","DEFAULT_MIN_BRIDGE_AMOUNT","BasisPointsZod","coerce","number","int","nonnegative","max","BridgeConfigZod","extend","escrowAddress","optional","register","description","title","type","feesAddress","feeFixed","default","feeRateBasisPoints","maxBridgeAmount","minBridgeAmount","redisHost","string","redisPort","positive","remoteBridgeContractAddress","remoteChainId","remoteTokenAddress","remoteChainWalletPrivateKey","xl1ChainId","xl1TokenAddress","BridgeSettingsZod","pick","required","isBridgeConfig","asBridgeConfig","toBridgeConfig","BridgeConfigContext","config","isBridgeConfigContext","asBridgeConfigContext","toBridgeConfigContext","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","globalRegistry","z","MempoolConfigZod","extend","enabled","union","string","boolean","default","transform","val","ctx","normalized","toLowerCase","trim","includes","addIssue","code","expected","message","NEVER","register","description","title","type","isMempoolConfig","asMempoolConfig","toMempoolConfig","MempoolConfigContext","config","isMempoolConfigContext","asMempoolConfigContext","toMempoolConfigContext","AddressZod","asAddress","zodAsFactory","zodIsFactory","zodToFactory","ActorConfigZod","BaseConfigContextZod","globalRegistry","z","ProducerConfigZod","extend","object","allowlist","preprocess","val","split","map","s","trim","array","optional","register","description","title","type","disableIntentRedeclaration","boolean","heartbeatInterval","coerce","number","default","minStake","rewardAddress","string","shape","isProducerConfig","asProducerConfig","toProducerConfig","ProducerConfigContext","config","isProducerConfigContext","asProducerConfigContext","toProducerConfigContext","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","RewardRedemptionConfigZod","extend","isRewardRedemptionConfig","asRewardRedemptionConfig","toRewardRedemptionConfig","RewardRedemptionConfigContext","config","isRewardRedemptionConfigContext","asRewardRedemptionConfigContext","toRewardRedemptionConfigContext","AddressZod","zodAsFactory","zodIsFactory","zodToFactory","BaseConfigContextZod","HostActorConfigZod","z","ValidatorConfigZod","extend","allowedProducers","array","optional","isValidatorConfig","asValidatorConfig","toValidatorConfig","ValidatorConfigContext","config","isValidatorConfigContext","asValidatorConfigContext","toValidatorConfigContext","deepMerge","mergeConfig","actors","baseConfig","map","actor","deepMerge","buildNextBlock","createDeclarationIntent","createProducerChainStakeIntentBlock","prevBlock","producerAccount","range","producerDeclarationPayload","createDeclarationIntent","address","buildNextBlock","GenericHost","services","start","Promise","resolve","console","log","stop","DefaultServiceProvider","_services","services","getService","serviceIdentifier","ServiceLifetime","Singleton","Transient","isDefined","isUndefined","HDWallet","ADDRESS_INDEX","generateXyoBaseWalletFromPhrase","actorAccountSingletons","initActorAccount","config","logger","actorName","name","isDefined","walletPhrase","mnemonic","isUndefined","warn","randomMnemonic","HDWallet","generateMnemonic","wallet","generateXyoBaseWalletFromPhrase","account","derivePath","ADDRESS_INDEX","XYO","assertEx","isString","HDWallet","initActorSeedPhrase","context","bios","logger","config","walletKind","name","storedSeedPhrase","seedPhraseStore","get","debug","mnemonic","isString","warn","set","seedPhrase","HDWallet","generateMnemonic","log","assertEx","assertEx","asAttachableArchivistInstance","asAttachableModuleInstance","Mutex","initMutex","Mutex","bridgedModuleDictionary","initBridgedModule","bridge","moduleName","runExclusive","existing","address","mod","assertEx","resolve","moduleInstance","asAttachableModuleInstance","moduleMap","undefined","initBridgedArchivistModule","asAttachableArchivistInstance","RuntimeStatusMonitor","initStatusReporter","logger","statusReporter","RuntimeStatusMonitor","onGlobalTransition","to","log","error","process","exit","isDefined","boot","HDWallet","initActorWallet","context","mnemonic","bios","boot","seedPhrase","isDefined","initActorSeedPhrase","HDWallet","fromPhrase","AbstractCreatable","creatable","Orchestrator","AbstractCreatable","actors","keepAliveHandle","running","registerActor","actor","start","push","startHandler","logger","warn","log","setInterval","stopHandler","stop","clearInterval","basicRemoteRunnerLocator","sdkBasicRemoteRunnerLocator","basicRemoteRunnerLocator","name","remoteConfig","signerTransport","dataLakeEndpoint","validators","sdkBasicRemoteRunnerLocator","basicRemoteViewerLocator","sdkBasicRemoteViewerLocator","basicRemoteViewerLocator","name","remoteConfig","dataLakeEndpoint","validators","sdkBasicRemoteViewerLocator","assertEx","commonLocatorFromConfig","remoteLocatorFromConfig","rootLocatorFromConfig","context","validateDepsOnRegister","config","locator","commonLocatorFromConfig","newLocator","remote","rpc","remoteLocatorFromConfig","undefined","assertEx","freeze"]}
@@ -1,3 +1,4 @@
1
- import type { RemoteConfig, RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-sdk';
2
- export declare function basicRemoteRunnerLocator(name: string, remoteConfig: RemoteConfig, signerTransport: RpcTransport<XyoSignerRpcSchemas>, dataLakeEndpoint?: string): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocatorInstance<import("@xyo-network/xl1-sdk").CreatableProviderContextType>>;
1
+ import type { BlockValidators, RemoteConfig, RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-sdk';
2
+ /** @deprecated Use basicRemoteRunnerLocator from \@xyo-network/xl1-providers instead */
3
+ export declare function basicRemoteRunnerLocator(name: string, remoteConfig: RemoteConfig, signerTransport: RpcTransport<XyoSignerRpcSchemas>, dataLakeEndpoint?: string, validators?: BlockValidators): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocatorInstance<import("@xyo-network/xl1-sdk").CreatableProviderContextType>>;
3
4
  //# sourceMappingURL=basicRemoteRunnerLocator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basicRemoteRunnerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/basicRemoteRunnerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAChD,MAAM,sBAAsB,CAAA;AAI7B,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAClD,gBAAgB,CAAC,EAAE,MAAM,uIAG1B"}
1
+ {"version":3,"file":"basicRemoteRunnerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/basicRemoteRunnerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAChD,MAAM,sBAAsB,CAAA;AAG7B,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAClD,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,CAAC,EAAE,eAAe,uIAG7B"}
@@ -1,3 +1,4 @@
1
- import type { RemoteConfig } from '@xyo-network/xl1-sdk';
2
- export declare function basicRemoteViewerLocator(name: string, remoteConfig: RemoteConfig, dataLakeEndpoint?: string): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocator<import("@xyo-network/xl1-sdk").CreatableProviderContextType, string[]>>;
1
+ import type { BlockValidators, RemoteConfig } from '@xyo-network/xl1-sdk';
2
+ /** @deprecated Use basicRemoteViewerLocator from \@xyo-network/xl1-providers instead */
3
+ export declare function basicRemoteViewerLocator(name: string, remoteConfig: RemoteConfig, dataLakeEndpoint?: string, validators?: BlockValidators): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocator<import("@xyo-network/xl1-sdk").CreatableProviderContextType, string[]>>;
3
4
  //# sourceMappingURL=basicRemoteViewerLocator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basicRemoteViewerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/basicRemoteViewerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,yIAG1B"}
1
+ {"version":3,"file":"basicRemoteViewerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/basicRemoteViewerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGzE,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,CAAC,EAAE,eAAe,yIAG7B"}
@@ -1,3 +1,4 @@
1
1
  import type { ActorConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk';
2
+ /** @deprecated Use rootLocatorFromConfig from \@xyo-network/xl1-providers instead */
2
3
  export declare function rootLocatorFromConfig(context: ActorConfigContext, validateDepsOnRegister?: boolean): Promise<ProviderFactoryLocatorInstance>;
3
4
  //# sourceMappingURL=rootLocatorFromConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rootLocatorFromConfig.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/rootLocatorFromConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAI9F,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,8BAA8B,CAAC,CAUzC"}
1
+ {"version":3,"file":"rootLocatorFromConfig.d.ts","sourceRoot":"","sources":["../../../../../src/neutral/config/locators/rootLocatorFromConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAG9F,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,8BAA8B,CAAC,CASzC"}
@@ -1,4 +1,4 @@
1
1
  import type { AccountInstance } from '@xyo-network/sdk-js';
2
- import type { RemoteConfig, RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-sdk';
3
- export declare function basicRemoteRunnerLocator(name: string, remoteConfig: RemoteConfig, signer: RpcTransport<XyoSignerRpcSchemas> | AccountInstance, dataLakeEndpoint?: string): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocatorInstance<import("@xyo-network/xl1-sdk").CreatableProviderContextType>>;
2
+ import type { BlockValidators, RemoteConfig, RpcTransport, XyoSignerRpcSchemas } from '@xyo-network/xl1-sdk';
3
+ export declare function basicRemoteRunnerLocator(name: string, remoteConfig: RemoteConfig, signer: RpcTransport<XyoSignerRpcSchemas> | AccountInstance, dataLakeEndpoint?: string, validators?: BlockValidators): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocatorInstance<import("@xyo-network/xl1-sdk").CreatableProviderContextType>>;
4
4
  //# sourceMappingURL=basicRemoteRunnerLocator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basicRemoteRunnerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/node/config/locators/basicRemoteRunnerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EACV,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAChD,MAAM,sBAAsB,CAAA;AAgB7B,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,eAAe,EAC3D,gBAAgB,CAAC,EAAE,MAAM,uIAa1B"}
1
+ {"version":3,"file":"basicRemoteRunnerLocator.d.ts","sourceRoot":"","sources":["../../../../../src/node/config/locators/basicRemoteRunnerLocator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAChD,MAAM,sBAAsB,CAAA;AAe7B,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,eAAe,EAC3D,gBAAgB,CAAC,EAAE,MAAM,EACzB,UAAU,CAAC,EAAE,eAAe,uIAc7B"}
@@ -1,3 +1,3 @@
1
- import type { RemoteConfig } from '@xyo-network/xl1-sdk';
2
- export declare function basicRemoteViewerLocator(name: string, remoteConfig: RemoteConfig, dataLakeEndpoint?: string): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocator<import("@xyo-network/xl1-sdk").CreatableProviderContextType, string[]>>;
1
+ import type { BlockValidators, RemoteConfig } from '@xyo-network/xl1-sdk';
2
+ export declare function basicRemoteViewerLocator(name: string, remoteConfig: RemoteConfig, dataLakeEndpoint?: string, validators?: BlockValidators): Promise<import("@xyo-network/xl1-sdk").ProviderFactoryLocator<import("@xyo-network/xl1-sdk").CreatableProviderContextType, string[]>>;
3
3
  //# sourceMappingURL=basicRemoteViewerLocator.d.ts.map