@xyo-network/xl1-protocol 5.0.2 → 5.0.5

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 (35) hide show
  1. package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts +2 -0
  2. package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts.map +1 -1
  3. package/dist/neutral/modules/network-model/staticRest/layout/networkStakeRewardsIndex.d.ts +191 -0
  4. package/dist/neutral/modules/network-model/staticRest/layout/networkStakeRewardsIndex.d.ts.map +1 -0
  5. package/dist/neutral/modules/network-model/staticRest/layout/transactionInclusionIndex.d.ts +100 -0
  6. package/dist/neutral/modules/network-model/staticRest/layout/transactionInclusionIndex.d.ts.map +1 -0
  7. package/dist/neutral/modules/network-model/staticRest/paths/index.d.ts +2 -0
  8. package/dist/neutral/modules/network-model/staticRest/paths/index.d.ts.map +1 -1
  9. package/dist/neutral/modules/network-model/staticRest/paths/networkStakeRewardsIndex.d.ts +10 -0
  10. package/dist/neutral/modules/network-model/staticRest/paths/networkStakeRewardsIndex.d.ts.map +1 -0
  11. package/dist/neutral/modules/network-model/staticRest/paths/transactionInclusionIndex.d.ts +8 -0
  12. package/dist/neutral/modules/network-model/staticRest/paths/transactionInclusionIndex.d.ts.map +1 -0
  13. package/dist/neutral/modules/network-model/staticRest/templates.d.ts +2 -0
  14. package/dist/neutral/modules/network-model/staticRest/templates.d.ts.map +1 -1
  15. package/dist/neutral/modules/protocol-lib/runners/NetworkStakeRewardsIndexPublish.d.ts +26 -0
  16. package/dist/neutral/modules/protocol-lib/runners/NetworkStakeRewardsIndexPublish.d.ts.map +1 -0
  17. package/dist/neutral/modules/protocol-lib/runners/index.d.ts +1 -0
  18. package/dist/neutral/modules/protocol-lib/runners/index.d.ts.map +1 -1
  19. package/dist/neutral/modules/protocol-lib/viewers/Block.d.ts +2 -0
  20. package/dist/neutral/modules/protocol-lib/viewers/Block.d.ts.map +1 -1
  21. package/dist/neutral/modules/protocol-lib/viewers/IndexViewer.d.ts +5 -3
  22. package/dist/neutral/modules/protocol-lib/viewers/IndexViewer.d.ts.map +1 -1
  23. package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts +1 -1
  24. package/dist/neutral/modules/protocol-lib/viewers/WindowedBlock.d.ts.map +1 -1
  25. package/dist/neutral/modules/protocol-model/model/TransactionInclusion.d.ts +48 -0
  26. package/dist/neutral/modules/protocol-model/model/TransactionInclusion.d.ts.map +1 -0
  27. package/dist/neutral/modules/protocol-model/model/index.d.ts +1 -0
  28. package/dist/neutral/modules/protocol-model/model/index.d.ts.map +1 -1
  29. package/dist/neutral/network-model.mjs +209 -2
  30. package/dist/neutral/network-model.mjs.map +4 -4
  31. package/dist/neutral/protocol-lib.mjs +4 -0
  32. package/dist/neutral/protocol-lib.mjs.map +3 -3
  33. package/dist/neutral/protocol-model.mjs +44 -18
  34. package/dist/neutral/protocol-model.mjs.map +4 -4
  35. package/package.json +1 -1
@@ -151,6 +151,9 @@ import {
151
151
  } from "@ariestools/sdk";
152
152
  import { z as z2 } from "zod";
153
153
 
154
+ // src/modules/network-model/staticRest/templates.ts
155
+ import { asHash } from "@ariestools/sdk";
156
+
154
157
  // src/modules/network-model/staticRest/paths/chainState.ts
155
158
  var headPath = () => "chain/head.json";
156
159
  var chainContractByIdPath = (chainId) => `chain/contracts/${chainId.toLowerCase()}.json`;
@@ -166,10 +169,22 @@ var indexSummaryPath = (family, stepLevel, stepIndex) => `${family}/${stepLevel}
166
169
  var indexManifestPath = () => "manifest.json";
167
170
  var indexHeadPath = () => "head.json";
168
171
 
172
+ // src/modules/network-model/staticRest/paths/transactionInclusionIndex.ts
173
+ var TRANSACTION_INCLUSION_ROOT = "transactions";
174
+ function transactionInclusionPath(transactionHash) {
175
+ return `${TRANSACTION_INCLUSION_ROOT}/by-hash/${transactionHash}.json`;
176
+ }
177
+ function transactionInclusionHeadPath() {
178
+ return `${TRANSACTION_INCLUSION_ROOT}/head.json`;
179
+ }
180
+ function transactionInclusionManifestPath() {
181
+ return `${TRANSACTION_INCLUSION_ROOT}/manifest.json`;
182
+ }
183
+
169
184
  // src/modules/network-model/staticRest/templates.ts
170
185
  var TEMPLATE_SLOTS = {
171
186
  block: 0,
172
- hash: "0".repeat(64),
187
+ hash: asHash("0".repeat(64), true),
173
188
  index: 99,
174
189
  level: 42
175
190
  };
@@ -208,6 +223,11 @@ function indexSummaryPathTemplate(family) {
208
223
  { literal: String(TEMPLATE_SLOTS.index), name: "index" }
209
224
  ]);
210
225
  }
226
+ function transactionInclusionPathTemplate() {
227
+ return toPathTemplate(transactionInclusionPath(TEMPLATE_SLOTS.hash), [
228
+ { literal: TEMPLATE_SLOTS.hash, name: "hash" }
229
+ ]);
230
+ }
211
231
 
212
232
  // src/modules/network-model/staticRest/layout/chainManifest.ts
213
233
  var CHAIN_LAYOUT_VERSION = 1;
@@ -360,6 +380,145 @@ function createIndexHead(watermark, updatedAt) {
360
380
  }, true);
361
381
  }
362
382
 
383
+ // src/modules/network-model/staticRest/layout/networkStakeRewardsIndex.ts
384
+ import { zodAsFactory as zodAsFactory5, zodIsFactory as zodIsFactory4 } from "@ariestools/sdk";
385
+ import { z as z5 } from "zod";
386
+ var NETWORK_STAKE_REWARDS_INDEX_LAYOUT = "network-stake-rewards-v1";
387
+ var NETWORK_STAKE_REWARDS_BASE_POLICY = "base-v1";
388
+ var DecimalBigIntZod = z5.string().regex(/^(?:0|[1-9]\d*)$/);
389
+ var NetworkStakeRewardsPolicyIdZod = z5.string().regex(/^[a-z0-9][a-z0-9._-]*$/);
390
+ var PositionRewardsZod = z5.record(z5.string().regex(/^(?:0|[1-9]\d*)$/), DecimalBigIntZod);
391
+ var BlockRangeZod = z5.tuple([z5.number().int().nonnegative(), z5.number().int().nonnegative()]);
392
+ var StepIdentityJsonZod = z5.object({
393
+ block: z5.number().int().nonnegative(),
394
+ step: z5.number().int().nonnegative()
395
+ });
396
+ var NetworkStakeRewardsIndexManifestZod = z5.object({
397
+ evmAddress: z5.string(),
398
+ evmChainId: z5.string(),
399
+ layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
400
+ policyId: NetworkStakeRewardsPolicyIdZod,
401
+ stepLevels: z5.array(z5.number().int().nonnegative()),
402
+ timeAnchor: z5.object({
403
+ externalGenesisTime: z5.number().optional(),
404
+ maxScanBlocks: z5.number().optional()
405
+ }).optional()
406
+ });
407
+ var NetworkStakeRewardsIndexStepZod = z5.object({
408
+ denominator: DecimalBigIntZod,
409
+ externalRange: BlockRangeZod,
410
+ layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
411
+ policyId: NetworkStakeRewardsPolicyIdZod,
412
+ positionRewards: PositionRewardsZod,
413
+ step: StepIdentityJsonZod,
414
+ totalReward: DecimalBigIntZod,
415
+ xl1Range: BlockRangeZod
416
+ });
417
+ var NetworkStakeRewardsIndexSnapshotZod = z5.object({
418
+ layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
419
+ policyId: NetworkStakeRewardsPolicyIdZod,
420
+ positionRewards: PositionRewardsZod,
421
+ stepCount: z5.number().int().nonnegative(),
422
+ totalReward: DecimalBigIntZod
423
+ });
424
+ var NetworkStakeRewardsIndexHeadZod = z5.object({
425
+ layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
426
+ policyId: NetworkStakeRewardsPolicyIdZod,
427
+ positionCount: z5.number().int().nonnegative(),
428
+ processedThroughBlock: z5.number().int().nonnegative(),
429
+ snapshot: z5.string(),
430
+ source: z5.object({
431
+ evm: z5.object({
432
+ block: z5.number().int().nonnegative(),
433
+ hash: z5.string()
434
+ }),
435
+ xl1: z5.object({
436
+ block: z5.number().int().nonnegative(),
437
+ hash: z5.string()
438
+ })
439
+ }),
440
+ stepCount: z5.number().int().nonnegative()
441
+ });
442
+ var isNetworkStakeRewardsIndexManifest = zodIsFactory4(NetworkStakeRewardsIndexManifestZod);
443
+ var asNetworkStakeRewardsIndexManifest = zodAsFactory5(
444
+ NetworkStakeRewardsIndexManifestZod,
445
+ "asNetworkStakeRewardsIndexManifest"
446
+ );
447
+ var asNetworkStakeRewardsIndexStep = zodAsFactory5(
448
+ NetworkStakeRewardsIndexStepZod,
449
+ "asNetworkStakeRewardsIndexStep"
450
+ );
451
+ var asNetworkStakeRewardsIndexSnapshot = zodAsFactory5(
452
+ NetworkStakeRewardsIndexSnapshotZod,
453
+ "asNetworkStakeRewardsIndexSnapshot"
454
+ );
455
+ var asNetworkStakeRewardsIndexHead = zodAsFactory5(
456
+ NetworkStakeRewardsIndexHeadZod,
457
+ "asNetworkStakeRewardsIndexHead"
458
+ );
459
+
460
+ // src/modules/network-model/staticRest/layout/transactionInclusionIndex.ts
461
+ import {
462
+ HashZod,
463
+ zodAsFactory as zodAsFactory6,
464
+ zodIsFactory as zodIsFactory5,
465
+ zodToFactory as zodToFactory4
466
+ } from "@ariestools/sdk";
467
+ import { z as z6 } from "zod";
468
+ import { ChainIdZod as ChainIdZod2, XL1BlockNumberZod } from "#protocol-model";
469
+ var TRANSACTION_INCLUSION_INDEX_LAYOUT = "transaction-inclusions-v1";
470
+ var TransactionInclusionManifestZod = z6.object({
471
+ /** XL1 chain whose finalized transactions are indexed. */
472
+ chain: ChainIdZod2,
473
+ /** Versioned layout identifier. */
474
+ layout: z6.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),
475
+ /** Hash-addressed path template, for example `transactions/by-hash/{hash}.json`. */
476
+ path: z6.string()
477
+ });
478
+ var TransactionInclusionHeadZod = z6.object({
479
+ /** Highest finalized block fully represented by the lookup. */
480
+ block: XL1BlockNumberZod,
481
+ /** Hash of the highest finalized block fully represented by the lookup. */
482
+ blockHash: HashZod,
483
+ /** XL1 chain whose finalized transactions are indexed. */
484
+ chain: ChainIdZod2,
485
+ /** Number of transaction-inclusion records represented through `block`. */
486
+ entries: z6.int().nonnegative(),
487
+ /** Versioned layout identifier. */
488
+ layout: z6.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT)
489
+ });
490
+ var isTransactionInclusionManifest = zodIsFactory5(TransactionInclusionManifestZod);
491
+ var asTransactionInclusionManifest = zodAsFactory6(
492
+ TransactionInclusionManifestZod,
493
+ "asTransactionInclusionManifest"
494
+ );
495
+ var toTransactionInclusionManifest = zodToFactory4(
496
+ TransactionInclusionManifestZod,
497
+ "toTransactionInclusionManifest"
498
+ );
499
+ var isTransactionInclusionHead = zodIsFactory5(TransactionInclusionHeadZod);
500
+ var asTransactionInclusionHead = zodAsFactory6(
501
+ TransactionInclusionHeadZod,
502
+ "asTransactionInclusionHead"
503
+ );
504
+ var toTransactionInclusionHead = zodToFactory4(
505
+ TransactionInclusionHeadZod,
506
+ "toTransactionInclusionHead"
507
+ );
508
+ function createTransactionInclusionManifest(chain) {
509
+ return asTransactionInclusionManifest({
510
+ chain,
511
+ layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,
512
+ path: transactionInclusionPathTemplate()
513
+ }, true);
514
+ }
515
+ function createTransactionInclusionHead(head) {
516
+ return asTransactionInclusionHead({
517
+ ...head,
518
+ layout: TRANSACTION_INCLUSION_INDEX_LAYOUT
519
+ }, true);
520
+ }
521
+
363
522
  // src/modules/network-model/staticRest/paths/evmEventIndex.ts
364
523
  function root(address) {
365
524
  return `evm/events/${address.toLowerCase()}`;
@@ -377,6 +536,23 @@ function evmEventIndexTailPath(address) {
377
536
  return `${root(address)}/tail.json`;
378
537
  }
379
538
 
539
+ // src/modules/network-model/staticRest/paths/networkStakeRewardsIndex.ts
540
+ function root2(policyId) {
541
+ return `rewards/network-stake/v1/${policyId}`;
542
+ }
543
+ function networkStakeRewardsIndexHeadPath(policyId) {
544
+ return `${root2(policyId)}/head.json`;
545
+ }
546
+ function networkStakeRewardsIndexManifestPath(policyId) {
547
+ return `${root2(policyId)}/manifest.json`;
548
+ }
549
+ function networkStakeRewardsIndexSnapshotPath(policyId, stepCount) {
550
+ return `${root2(policyId)}/positions/${stepCount}.json`;
551
+ }
552
+ function networkStakeRewardsIndexStepPath(policyId, step) {
553
+ return `${root2(policyId)}/steps/${step.step}/${step.block}.json`;
554
+ }
555
+
380
556
  // src/modules/network-model/utils/ExplorerLinks.ts
381
557
  var ExplorerLinks = class {
382
558
  /** Explorer origin with trailing slashes removed. */
@@ -461,10 +637,20 @@ export {
461
637
  local_default as LocalNetworkIconString,
462
638
  MainNetwork,
463
639
  mainnet_default as MainNetworkIconString,
640
+ NETWORK_STAKE_REWARDS_BASE_POLICY,
641
+ NETWORK_STAKE_REWARDS_INDEX_LAYOUT,
464
642
  NetworkBootstrapSchema,
465
643
  NetworkDataLakeUrls,
644
+ NetworkStakeRewardsIndexHeadZod,
645
+ NetworkStakeRewardsIndexManifestZod,
646
+ NetworkStakeRewardsIndexSnapshotZod,
647
+ NetworkStakeRewardsIndexStepZod,
648
+ NetworkStakeRewardsPolicyIdZod,
466
649
  SequenceNetwork,
467
650
  testnet_default as SequenceNetworkIconString,
651
+ TRANSACTION_INCLUSION_INDEX_LAYOUT,
652
+ TransactionInclusionHeadZod,
653
+ TransactionInclusionManifestZod,
468
654
  asChainContractManifest,
469
655
  asChainManifest,
470
656
  asEvmEventIndexFrame,
@@ -472,7 +658,13 @@ export {
472
658
  asEvmEventIndexManifest,
473
659
  asIndexHead,
474
660
  asIndexManifest,
661
+ asNetworkStakeRewardsIndexHead,
662
+ asNetworkStakeRewardsIndexManifest,
663
+ asNetworkStakeRewardsIndexSnapshot,
664
+ asNetworkStakeRewardsIndexStep,
475
665
  asOptionalNetwork,
666
+ asTransactionInclusionHead,
667
+ asTransactionInclusionManifest,
476
668
  blockHashPath,
477
669
  blockHashPathTemplate,
478
670
  blockNumberPath,
@@ -484,6 +676,8 @@ export {
484
676
  createIndexHead,
485
677
  createIndexManifest,
486
678
  createIndexManifestFamilies,
679
+ createTransactionInclusionHead,
680
+ createTransactionInclusionManifest,
487
681
  evmEventIndexFramePath,
488
682
  evmEventIndexHeadPath,
489
683
  evmEventIndexManifestPath,
@@ -502,13 +696,26 @@ export {
502
696
  isIndexHead,
503
697
  isIndexManifest,
504
698
  isNetworkBootstrap,
699
+ isNetworkStakeRewardsIndexManifest,
700
+ isTransactionInclusionHead,
701
+ isTransactionInclusionManifest,
505
702
  manifestPath,
703
+ networkStakeRewardsIndexHeadPath,
704
+ networkStakeRewardsIndexManifestPath,
705
+ networkStakeRewardsIndexSnapshotPath,
706
+ networkStakeRewardsIndexStepPath,
506
707
  payloadPath,
507
708
  payloadPathTemplate,
508
709
  toChainContractManifest,
509
710
  toChainManifest,
510
711
  toIndexHead,
511
712
  toIndexManifest,
512
- toPathTemplate
713
+ toPathTemplate,
714
+ toTransactionInclusionHead,
715
+ toTransactionInclusionManifest,
716
+ transactionInclusionHeadPath,
717
+ transactionInclusionManifestPath,
718
+ transactionInclusionPath,
719
+ transactionInclusionPathTemplate
513
720
  };
514
721
  //# sourceMappingURL=network-model.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/modules/network-model/icons/local/local.svg", "../../src/modules/network-model/icons/mainnet/mainnet.svg", "../../src/modules/network-model/icons/sequence/testnet.svg", "../../src/modules/network-model/lib/Networks.ts", "../../src/modules/network-model/models/Bootstrap.ts", "../../src/modules/network-model/lib/NetworkDataLakeUrls.ts", "../../src/modules/network-model/modules/node/getNetworkNode.ts", "../../src/modules/network-model/manifest/network.json", "../../src/modules/network-model/manifest/networkManifest.ts", "../../src/modules/network-model/modules/node/getNetworkNodes.ts", "../../src/modules/network-model/modules/node/initNetworkNode.ts", "../../src/modules/network-model/staticRest/layout/chainContractManifest.ts", "../../src/modules/network-model/staticRest/layout/chainManifest.ts", "../../src/modules/network-model/staticRest/paths/chainState.ts", "../../src/modules/network-model/staticRest/paths/finalized.ts", "../../src/modules/network-model/staticRest/paths/indexPaths.ts", "../../src/modules/network-model/staticRest/templates.ts", "../../src/modules/network-model/staticRest/layout/evmEventIndex.ts", "../../src/modules/network-model/staticRest/layout/indexManifest.ts", "../../src/modules/network-model/staticRest/paths/evmEventIndex.ts", "../../src/modules/network-model/utils/ExplorerLinks.ts"],
4
- "sourcesContent": ["<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#f47f00;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f47f00;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#f47f00;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#579fd6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#579fd6;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#579fd6;\"/></svg>", "import { asHex } from '@ariestools/sdk'\n\nimport {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} from '../icons/index.ts'\nimport type { NetworkBootstrap, NetworkId } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\n/** Bootstrap configuration for the XYO Layer 1 mainnet. */\nexport const MainNetwork: NetworkBootstrap = {\n chain: asHex('319e667ced10452a117472811130444ded357f26', true),\n description: 'Main Network for XYO Layer 1',\n icon: MainNetworkIconString,\n id: 'mainnet' as NetworkId,\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://api.chain.xyo.network',\n explorerUrl: 'https://explore.xyo.network',\n}\n\n/** Bootstrap configuration for the XYO Layer 1 sequence (test) network. */\nexport const SequenceNetwork: NetworkBootstrap = {\n chain: asHex('4b43a753c8024c0e5000e8ac948ac0063ac624bc', true),\n description: 'Test Network for XYO Layer 1',\n icon: SequenceNetworkIconString,\n id: 'sequence' as NetworkId,\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://beta.api.chain.xyo.network',\n explorerUrl: 'https://beta.explore.xyo.network',\n}\n\n/** Bootstrap configuration for a local development network. */\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local' as NetworkId,\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'http://localhost:8080',\n explorerUrl: 'http://localhost:3000',\n}\n\n/** Default set of available XYO Layer 1 networks (mainnet, sequence, local). */\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\n", "import type { Address } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\n\nimport type { ChainId } from '#protocol-lib'\n\nimport type { NetworkId } from './NetworkId.ts'\n\n/** Connection details for accessing a chain endpoint. */\nexport interface ChainConnection {\n /** Chain Identifier - can be a hex (eth contract address) or a string */\n chain?: ChainId\n /** Name of the chain */\n name: string\n /** URL for accessing the network */\n url: string\n}\n\n/** Schema identifier for network bootstrap payloads. */\nexport const NetworkBootstrapSchema = asSchema('network.xyo.network.bootstrap', true)\n/** Schema type for network bootstrap payloads. */\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\n/** Fields describing a chain fork origin. */\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\n/** Core fields describing an XYO network. */\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** URL for accessing the network explorer */\n explorerUrl?: string\n /** string representation of the icon (SVG) */\n icon?: string\n /** Machine-readable identifier */\n id: NetworkId\n /** Schema identifier for this configuration or payload. */\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\n\n/** A network bootstrap extended with a flag indicating whether it is a custom network. */\nexport interface Network extends NetworkBootstrap {\n /** Application-defined bootstrap configuration passed through unchanged. */\n custom: boolean\n}\n\n/** Payload type containing all network bootstrap configuration fields. */\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\n/** Type guard that checks whether a payload is a NetworkBootstrap. */\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\n/** Optionally casts a value to a Network if it is a valid NetworkBootstrap. */\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n", "import type { GatewayName } from '#protocol-lib'\n\nimport {\n LocalNetwork, MainNetwork, SequenceNetwork,\n} from './Networks.ts'\n\n/** Map of network IDs to their corresponding Data Lake API URLs. */\nexport const NetworkDataLakeUrls = {\n [MainNetwork.id]: 'https://api.archivist.xyo.network/dataLake',\n [SequenceNetwork.id]: 'https://beta.api.archivist.xyo.network/dataLake',\n [LocalNetwork.id]: 'http://localhost:8080/dataLake',\n} as const satisfies Record<GatewayName, string>\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\nimport { ManifestWrapper, ModuleFactoryLocator } from '@xyo-network/sdk'\n\nimport { NetworkNodeManifest } from '../../manifest/index.ts'\n\n/**\n * Creates a network node from the network manifest using the provided wallet.\n *\n * @deprecated Bootstrapping an XYO `NodeInstance` via manifest is no longer supported.\n * Use `connectArchivist` from `@xyo-network/xl1-protocol-sdk` for co-located archivist\n * access, or `GatewayBuilder` from `@xyo-network/xl1-gateway` for remote RPC access.\n */\nexport async function getNetworkNode(wallet: WalletInstance): Promise<AttachableNodeInstance> {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, wallet, new ModuleFactoryLocator())\n const [node] = await wrapper.loadNodes()\n return node\n}\n", "{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}", "import type { PackageManifestPayload } from '@xyo-network/sdk'\n\nimport node from './network.json' with { type: 'json' }\n\n/** @deprecated XYO Node manifest bootstrap is no longer used; wire providers via archivist bindings or JsonRpc instead. */\nexport const NetworkNodeManifest = node as unknown as PackageManifestPayload\n", "import type { AttachableNodeInstance } from '@xyo-network/sdk'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\n/** @deprecated Internal cache for deprecated `initNetworkNode`; do not use. */\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\nimport { getNetworkNodes } from './getNetworkNodes.ts'\n\n/** @deprecated Use `connectArchivist` archivist bindings (`@xyo-network/xl1-protocol-sdk`) or `GatewayBuilder` (`@xyo-network/xl1-gateway`) instead of bootstrapping an XYO NodeInstance. */\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap, wallet: WalletInstance): Promise<AttachableNodeInstance> => {\n const networkNodeMap = getNetworkNodes()\n if (networkNodeMap.has(activeNetwork.url)) return networkNodeMap.get(activeNetwork.url)!\n\n const activeNetworkNode = await getNetworkNode(wallet)\n networkNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport {\n ChainIdZod, NumberishZod, type XL1BlockNumber,\n} from '#protocol-lib'\n\nconst ChainContractBlockNumberZod = NumberishZod\n .pipe(z.int().nonnegative())\n .transform(value => value as XL1BlockNumber)\n\n/** Schema id for the chain-contract manifest document. */\nexport const ChainContractManifestSchema = 'network.xyo.s3.chain.contract' as const\n/** Type literal for the chain-contract manifest schema. */\nexport type ChainContractManifestSchema = typeof ChainContractManifestSchema\n\n/** Bumped when the manifest shape changes, so readers can detect a mismatch. */\nexport const CHAIN_CONTRACT_MANIFEST_VERSION = 1\n\n/**\n * Zod schema for the static per-chain config at `chainContractByIdPath(chainId)`: the reward\n * contract, staking token, minimum withdrawal window, and (optional) fork edge. Immutable\n * once published \u2014 does not change per block, unlike `chain/head.json`.\n */\nexport const ChainContractManifestZod = z.object({\n /** Self-identifying chain id (matches the path key). Optional for older fixtures. */\n chainId: z.optional(ChainIdZod),\n forkedAtBlockNumber: ChainContractBlockNumberZod.nullable().optional(),\n forkedAtHash: z.string().nullable().optional(),\n forkedChainId: z.nullable(ChainIdZod).optional(),\n minWithdrawalBlocks: NumberishZod.pipe(z.int().nonnegative()),\n rewardsContract: z.string(),\n schema: z.literal(ChainContractManifestSchema),\n stakingTokenAddress: z.string(),\n version: z.int().positive(),\n})\n\n/** The static per-chain contract config at `chainContractByIdPath(chainId)`. */\nexport type ChainContractManifest = z.infer<typeof ChainContractManifestZod>\n\n/** Numeric-input-tolerant shape accepted when creating a chain-contract manifest. */\nexport type ChainContractManifestInput = z.input<typeof ChainContractManifestZod>\n\n/** Type guard that checks if a value is a valid ChainContractManifest. */\nexport const isChainContractManifest = zodIsFactory(ChainContractManifestZod)\n/** Converts a value to ChainContractManifest, throwing if invalid. */\nexport const asChainContractManifest = zodAsFactory(ChainContractManifestZod, 'asChainContractManifest')\n/** Non-validating cast to ChainContractManifest. */\nexport const toChainContractManifest = zodToFactory(ChainContractManifestZod, 'toChainContractManifest')\n\n/** Builds a validated chain-contract manifest. */\nexport function createChainContractManifest(\n config: Omit<ChainContractManifestInput, 'schema' | 'version'>,\n): ChainContractManifest {\n return ChainContractManifestZod.parse({\n ...config,\n schema: ChainContractManifestSchema,\n version: CHAIN_CONTRACT_MANIFEST_VERSION,\n })\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { chainManifestPathTemplates } from '../templates.ts'\n\n/** Bumped when the finalized layout changes shape, so readers can detect a mismatch. */\nexport const CHAIN_LAYOUT_VERSION = 1\n\n/** Schema id for the finalized layout manifest document. */\nexport const ChainManifestSchema = 'network.xyo.s3.chain.manifest' as const\n/** Type literal for the chain manifest schema. */\nexport type ChainManifestSchema = typeof ChainManifestSchema\n\n/** Path templates for the finalized + chain-state files. */\nexport const ChainManifestPathsZod = z.object({\n blockByHash: z.string(),\n blockByNumber: z.string(),\n head: z.string(),\n payload: z.string(),\n})\n\n/** Type for chain manifest path templates. */\nexport type ChainManifestPaths = z.infer<typeof ChainManifestPathsZod>\n\n/** Zod schema for the finalized layout descriptor at `manifestPath()`. */\nexport const ChainManifestZod = z.object({\n /** Lowest block number available in the bucket (genesis until pruning exists). */\n earliestBlock: z.int().nonnegative(),\n /** Storage/wire encoding of the published files (also on each object's Content-Encoding). */\n encoding: z.string(),\n paths: ChainManifestPathsZod,\n schema: z.literal(ChainManifestSchema),\n version: z.int().positive(),\n})\n\n/** The finalized layout descriptor at `manifestPath()`. */\nexport type ChainManifest = z.infer<typeof ChainManifestZod>\n\n/** Type guard that checks if a value is a valid ChainManifest. */\nexport const isChainManifest = zodIsFactory(ChainManifestZod)\n/** Converts a value to ChainManifest, throwing if invalid. */\nexport const asChainManifest = zodAsFactory(ChainManifestZod, 'asChainManifest')\n/** Non-validating cast to ChainManifest. */\nexport const toChainManifest = zodToFactory(ChainManifestZod, 'toChainManifest')\n\n/** Builds a validated chain manifest with path templates derived from the path builders. */\nexport function createChainManifest(encoding: string, earliestBlock = 0): ChainManifest {\n return asChainManifest({\n earliestBlock,\n encoding,\n paths: chainManifestPathTemplates(),\n schema: ChainManifestSchema,\n version: CHAIN_LAYOUT_VERSION,\n }, true)\n}\n", "/**\n * Path builders for the chain-state (mutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The mutable head pointer: the current head SignedHydratedBlockWithHashMeta. */\nexport const headPath = (): string => 'chain/head.json'\n\n/**\n * Immutable per-chain contract config (rewards contract, staking token, fork edge).\n * Sparse map keyed by chain id \u2014 the current chain's file is the entry point; fork\n * ancestors are sibling files under the same folder. `chainId` is normalized to lowercase.\n */\nexport const chainContractByIdPath = (chainId: string): string => `chain/contracts/${chainId.toLowerCase()}.json`\n", "/**\n * Path builders for the finalized (immutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The finalized layout descriptor (path templates, encoding, version, earliest block). */\nexport const manifestPath = (): string => 'manifest.json'\n\n/** A block by number: SignedHydratedBlockWithHashMeta. */\nexport const blockNumberPath = (block: number): string => `block/number/${block}.json`\n\n/** A block by hash: the same content as its by-number twin. */\nexport const blockHashPath = (hash: string): string => `block/hash/${hash}.json`\n\n/** A payload by hash: WithHashMeta<Payload>. */\nexport const payloadPath = (hash: string): string => `payload/${hash}.json`\n", "import type { IndexSummaryFamily } from '#protocol-lib'\n\n/**\n * Path builders for the index bucket.\n *\n * The index is a separate, single-writer bucket holding completed step summaries for several\n * families. Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** A completed frame's summary for a family, e.g. `blocks/2/5.json`. Immutable once written. */\nexport const indexSummaryPath = (family: IndexSummaryFamily, stepLevel: number, stepIndex: number): string =>\n `${family}/${stepLevel}/${stepIndex}.json`\n\n/** The index layout descriptor (families, max step, encoding, version). */\nexport const indexManifestPath = (): string => 'manifest.json'\n\n/** The indexer's progress watermark (highest block the index is complete through). */\nexport const indexHeadPath = (): string => 'head.json'\n", "import type { IndexSummaryFamily } from '#protocol-lib'\n\nimport { headPath } from './paths/chainState.ts'\nimport {\n blockHashPath, blockNumberPath, payloadPath,\n} from './paths/finalized.ts'\nimport { indexSummaryPath } from './paths/indexPaths.ts'\n\n/** Sentinel values used when deriving self-describing path templates from concrete builders. */\nconst TEMPLATE_SLOTS = {\n block: 0,\n hash: '0'.repeat(64),\n index: 99,\n level: 42,\n} as const\n\n/**\n * Replaces concrete slot literals in a path with named `{placeholder}` segments.\n * Used to derive manifest path templates from the path builders so the two cannot drift.\n */\nexport function toPathTemplate(path: string, slots: { literal: string; name: string }[]): string {\n let result = path\n for (const { literal, name } of slots) {\n if (!result.includes(literal)) {\n throw new Error(`Template slot \"${literal}\" not found in path \"${path}\"`)\n }\n result = result.split(literal).join(`{${name}}`)\n }\n return result\n}\n\n/** Fills `{placeholder}` segments in a manifest path template. Used in conformance tests. */\nexport function interpolatePathTemplate(template: string, values: Record<string, string | number>): string {\n let result = template\n for (const [key, value] of Object.entries(values)) {\n result = result.split(`{${key}}`).join(String(value))\n }\n return result\n}\n\n/** Self-describing template for `blockNumberPath`. */\nexport const blockNumberPathTemplate = (): string =>\n toPathTemplate(blockNumberPath(TEMPLATE_SLOTS.block), [{ literal: String(TEMPLATE_SLOTS.block), name: 'block' }])\n\n/** Self-describing template for `blockHashPath`. */\nexport const blockHashPathTemplate = (): string =>\n toPathTemplate(blockHashPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing template for `payloadPath`. */\nexport const payloadPathTemplate = (): string =>\n toPathTemplate(payloadPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing templates for finalized + chain-state files carried in the chain manifest. */\nexport function chainManifestPathTemplates(): {\n blockByHash: string\n blockByNumber: string\n head: string\n payload: string\n} {\n return {\n blockByHash: blockHashPathTemplate(),\n blockByNumber: blockNumberPathTemplate(),\n head: headPath(),\n payload: payloadPathTemplate(),\n }\n}\n\n/** Self-describing template for one index summary family, e.g. `blocks/{level}/{index}.json`. */\nexport function indexSummaryPathTemplate(family: IndexSummaryFamily): string {\n const path = indexSummaryPath(family, TEMPLATE_SLOTS.level, TEMPLATE_SLOTS.index)\n return toPathTemplate(path, [\n { literal: String(TEMPLATE_SLOTS.level), name: 'level' },\n { literal: String(TEMPLATE_SLOTS.index), name: 'index' },\n ])\n}\n", "import {\n EthAddressZod, HexRegExMinMaxMixedCaseWithPrefix,\n zodAsFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod/mini'\n\nconst EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)))\nconst EvmDataZod = z.string().check(z.regex(/^0x[\\dA-Fa-f]*$/))\n\n/** JSON-safe representation of one raw EVM contract log. */\nexport const EvmEventIndexLogZod = z.object({\n address: EthAddressZod,\n blockHash: EvmHashZod,\n blockNumber: z.number(),\n data: EvmDataZod,\n index: z.number(),\n topics: z.array(EvmHashZod),\n transactionHash: EvmHashZod,\n transactionIndex: z.number(),\n})\n\n/** Type for one raw EVM contract log in the event index. */\nexport type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>\n\n/** One immutable, address-scoped range of finalized EVM logs. */\nexport const EvmEventIndexFrameZod = z.object({\n fromBlock: z.number(),\n logs: z.array(EvmEventIndexLogZod),\n toBlock: z.number(),\n})\n\n/** Type for one immutable event-index frame. */\nexport type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>\n\n/** Static description of one contract event index. */\nexport const EvmEventIndexManifestZod = z.object({\n address: EthAddressZod,\n chainId: z.string(),\n deploymentBlock: z.number(),\n frameSize: z.number(),\n layout: z.literal('evm-contract-events-v1'),\n})\n\n/** Type for the event-index manifest document. */\nexport type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>\n\n/**\n * Mutable pointer written after all frames through `block` are durable.\n * Wire schema for the `EvmEventIndexHead` runner contract in `#protocol-lib`.\n */\nexport const EvmEventIndexHeadZod = z.object({\n address: EthAddressZod,\n block: z.number(),\n chainId: z.string(),\n hash: EvmHashZod,\n})\n\n/** Converts a value to EvmEventIndexFrame, throwing if invalid. */\nexport const asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, 'asEvmEventIndexFrame')\n/** Converts a value to EvmEventIndexHead, throwing if invalid. */\nexport const asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, 'asEvmEventIndexHead')\n/** Converts a value to EvmEventIndexManifest, throwing if invalid. */\nexport const asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, 'asEvmEventIndexManifest')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport type { IndexSummaryFamily, IndexWatermark } from '#protocol-lib'\n\nimport { indexSummaryPathTemplate } from '../templates.ts'\n\n/** Bumped when the on-disk index layout changes shape, so readers can detect a mismatch. */\nexport const INDEX_LAYOUT_VERSION = 1\n\n/** Schema id for the index manifest document (the static layout descriptor). */\nexport const IndexManifestSchema = 'network.xyo.s3.index.manifest' as const\n/** Type literal for the index manifest schema. */\nexport type IndexManifestSchema = typeof IndexManifestSchema\n\n/** Schema id for the index head document (the progress watermark). */\nexport const IndexHeadSchema = 'network.xyo.s3.index.head' as const\n/** Type literal for the index head schema. */\nexport type IndexHeadSchema = typeof IndexHeadSchema\n\n/** Per-family descriptor carried in the manifest. */\nexport const IndexManifestFamilyZod = z.object({\n /** Highest step level published for this family. */\n maxStep: z.int().nonnegative(),\n /** Path template for the family's frames, e.g. `blocks/{level}/{index}.json`. */\n path: z.string(),\n})\n\n/** Type for one index manifest family descriptor. */\nexport type IndexManifestFamily = z.infer<typeof IndexManifestFamilyZod>\n\nconst indexFamiliesZod = z.object({\n balances: IndexManifestFamilyZod,\n blocks: IndexManifestFamilyZod,\n schemas: IndexManifestFamilyZod,\n transfers: IndexManifestFamilyZod,\n})\n\n/** Zod schema for the static index layout descriptor at `indexManifestPath()`. */\nexport const IndexManifestZod = z.object({\n families: indexFamiliesZod,\n schema: z.literal(IndexManifestSchema),\n version: z.int().positive(),\n})\n\n/** The static index layout descriptor at `indexManifestPath()`. */\nexport type IndexManifest = z.infer<typeof IndexManifestZod>\n\n/** Type guard that checks if a value is a valid IndexManifest. */\nexport const isIndexManifest = zodIsFactory(IndexManifestZod)\n/** Converts a value to IndexManifest, throwing if invalid. */\nexport const asIndexManifest = zodAsFactory(IndexManifestZod, 'asIndexManifest')\n/** Non-validating cast to IndexManifest. */\nexport const toIndexManifest = zodToFactory(IndexManifestZod, 'toIndexManifest')\n\n/** Completed frame counts per family in the index head watermark. */\nexport const IndexHeadFamiliesZod = z.object({\n balances: z.int().nonnegative(),\n blocks: z.int().nonnegative(),\n schemas: z.int().nonnegative(),\n transfers: z.int().nonnegative(),\n})\n\n/** Zod schema for the index progress watermark at `indexHeadPath()`. */\nexport const IndexHeadZod = z.object({\n /** Highest block the index is complete through. */\n block: z.int().nonnegative(),\n /** Completed frame counts per family. */\n families: IndexHeadFamiliesZod,\n /** Hash of that block. */\n hash: z.string(),\n schema: z.literal(IndexHeadSchema),\n /** ISO-8601 timestamp of the last update. */\n updatedAt: z.string(),\n version: z.int().positive(),\n})\n\n/** The index progress watermark at `indexHeadPath()`. */\nexport type IndexHead = z.infer<typeof IndexHeadZod>\n\n/** Type guard that checks if a value is a valid IndexHead. */\nexport const isIndexHead = zodIsFactory(IndexHeadZod)\n/** Converts a value to IndexHead, throwing if invalid. */\nexport const asIndexHead = zodAsFactory(IndexHeadZod, 'asIndexHead')\n/** Non-validating cast to IndexHead. */\nexport const toIndexHead = zodToFactory(IndexHeadZod, 'toIndexHead')\n\n/** Builds per-family manifest descriptors with path templates derived from the path builders. */\nexport function createIndexManifestFamilies(\n maxSteps: Record<IndexSummaryFamily, number>,\n): Record<IndexSummaryFamily, IndexManifestFamily> {\n return {\n balances: { maxStep: maxSteps.balances, path: indexSummaryPathTemplate('balances') },\n blocks: { maxStep: maxSteps.blocks, path: indexSummaryPathTemplate('blocks') },\n schemas: { maxStep: maxSteps.schemas, path: indexSummaryPathTemplate('schemas') },\n transfers: { maxStep: maxSteps.transfers, path: indexSummaryPathTemplate('transfers') },\n }\n}\n\n/** Builds a validated index manifest with path templates derived from the path builders. */\nexport function createIndexManifest(maxSteps: Record<IndexSummaryFamily, number>): IndexManifest {\n return asIndexManifest({\n families: createIndexManifestFamilies(maxSteps),\n schema: IndexManifestSchema,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n\n/** Builds a validated index head watermark from an indexer progress snapshot. */\nexport function createIndexHead(watermark: IndexWatermark, updatedAt?: string): IndexHead {\n const now = new Date()\n const resolvedUpdatedAt = updatedAt ?? now.toISOString()\n return asIndexHead({\n block: watermark.block,\n families: watermark.families,\n hash: watermark.hash,\n schema: IndexHeadSchema,\n updatedAt: resolvedUpdatedAt,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n", "import type { EthAddress } from '@ariestools/sdk'\n\nfunction root(address: EthAddress): string {\n return `evm/events/${address.toLowerCase()}`\n}\n\n/** Path of one immutable event-index frame within the index bucket. */\nexport function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string {\n return `${root(address)}/frames/${frameIndex}.json`\n}\n\n/** Path of the mutable event-index head pointer within the index bucket. */\nexport function evmEventIndexHeadPath(address: EthAddress): string {\n return `${root(address)}/head.json`\n}\n\n/** Path of the event-index manifest within the index bucket. */\nexport function evmEventIndexManifestPath(address: EthAddress): string {\n return `${root(address)}/manifest.json`\n}\n\n/** Path of the mutable partial-frame tail within the index bucket. */\nexport function evmEventIndexTailPath(address: EthAddress): string {\n return `${root(address)}/tail.json`\n}\n", "import type { NetworkId } from '../models/index.ts'\n\n/** Builds URLs to pages on an XL1 chain explorer for a specific network. */\nexport class ExplorerLinks {\n /** Explorer origin with trailing slashes removed. */\n readonly explorerUrl: string\n /** Network identifier included in generated links. */\n readonly networkId: NetworkId\n\n /**\n * Creates a link builder for one explorer deployment and network.\n *\n * @param explorerUrl Base explorer URL, with or without trailing slashes.\n * @param networkId Network segment included in every generated URL.\n */\n constructor(explorerUrl: string, networkId: NetworkId) {\n this.explorerUrl = explorerUrl.replace(/\\/+$/, '')\n this.networkId = networkId\n }\n\n /** `{explorerUrl}/xl1/{networkId}/address/{address}` */\n address(address: string): string {\n return `${this.network()}/address/${address}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/addresses` */\n addresses(): string {\n return `${this.network()}/addresses`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}` */\n block(blockHash: string): string {\n return `${this.network()}/block/${blockHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/number/{blockNumber}` */\n blockByNumber(blockNumber: number | string): string {\n return `${this.network()}/block/number/${blockNumber}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}/payload/{payloadHash}[/{render}]` */\n blockPayload(blockHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/block/${blockHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/blocks` */\n blocks(): string {\n return `${this.network()}/blocks`\n }\n\n /** `{explorerUrl}/xl1/{networkId}` */\n network(): string {\n return `${this.explorerUrl}/xl1/${this.networkId}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}` */\n transaction(txHash: string): string {\n return `${this.network()}/transaction/${txHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}/payload/{payloadHash}[/{render}]` */\n transactionPayload(txHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/transaction/${txHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transactions` */\n transactions(): string {\n return `${this.network()}/transactions`\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["networkNodeMap", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory"]
3
+ "sources": ["../../src/modules/network-model/icons/local/local.svg", "../../src/modules/network-model/icons/mainnet/mainnet.svg", "../../src/modules/network-model/icons/sequence/testnet.svg", "../../src/modules/network-model/lib/Networks.ts", "../../src/modules/network-model/models/Bootstrap.ts", "../../src/modules/network-model/lib/NetworkDataLakeUrls.ts", "../../src/modules/network-model/modules/node/getNetworkNode.ts", "../../src/modules/network-model/manifest/network.json", "../../src/modules/network-model/manifest/networkManifest.ts", "../../src/modules/network-model/modules/node/getNetworkNodes.ts", "../../src/modules/network-model/modules/node/initNetworkNode.ts", "../../src/modules/network-model/staticRest/layout/chainContractManifest.ts", "../../src/modules/network-model/staticRest/layout/chainManifest.ts", "../../src/modules/network-model/staticRest/templates.ts", "../../src/modules/network-model/staticRest/paths/chainState.ts", "../../src/modules/network-model/staticRest/paths/finalized.ts", "../../src/modules/network-model/staticRest/paths/indexPaths.ts", "../../src/modules/network-model/staticRest/paths/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/layout/evmEventIndex.ts", "../../src/modules/network-model/staticRest/layout/indexManifest.ts", "../../src/modules/network-model/staticRest/layout/networkStakeRewardsIndex.ts", "../../src/modules/network-model/staticRest/layout/transactionInclusionIndex.ts", "../../src/modules/network-model/staticRest/paths/evmEventIndex.ts", "../../src/modules/network-model/staticRest/paths/networkStakeRewardsIndex.ts", "../../src/modules/network-model/utils/ExplorerLinks.ts"],
4
+ "sourcesContent": ["<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#f47f00;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f47f00;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#f47f00;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/></svg>", "<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#579fd6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#579fd6;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#579fd6;\"/></svg>", "import { asHex } from '@ariestools/sdk'\n\nimport {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} from '../icons/index.ts'\nimport type { NetworkBootstrap, NetworkId } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\n/** Bootstrap configuration for the XYO Layer 1 mainnet. */\nexport const MainNetwork: NetworkBootstrap = {\n chain: asHex('319e667ced10452a117472811130444ded357f26', true),\n description: 'Main Network for XYO Layer 1',\n icon: MainNetworkIconString,\n id: 'mainnet' as NetworkId,\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://api.chain.xyo.network',\n explorerUrl: 'https://explore.xyo.network',\n}\n\n/** Bootstrap configuration for the XYO Layer 1 sequence (test) network. */\nexport const SequenceNetwork: NetworkBootstrap = {\n chain: asHex('4b43a753c8024c0e5000e8ac948ac0063ac624bc', true),\n description: 'Test Network for XYO Layer 1',\n icon: SequenceNetworkIconString,\n id: 'sequence' as NetworkId,\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://beta.api.chain.xyo.network',\n explorerUrl: 'https://beta.explore.xyo.network',\n}\n\n/** Bootstrap configuration for a local development network. */\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local' as NetworkId,\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'http://localhost:8080',\n explorerUrl: 'http://localhost:3000',\n}\n\n/** Default set of available XYO Layer 1 networks (mainnet, sequence, local). */\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\n", "import type { Address } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\n\nimport type { ChainId } from '#protocol-lib'\n\nimport type { NetworkId } from './NetworkId.ts'\n\n/** Connection details for accessing a chain endpoint. */\nexport interface ChainConnection {\n /** Chain Identifier - can be a hex (eth contract address) or a string */\n chain?: ChainId\n /** Name of the chain */\n name: string\n /** URL for accessing the network */\n url: string\n}\n\n/** Schema identifier for network bootstrap payloads. */\nexport const NetworkBootstrapSchema = asSchema('network.xyo.network.bootstrap', true)\n/** Schema type for network bootstrap payloads. */\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\n/** Fields describing a chain fork origin. */\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\n/** Core fields describing an XYO network. */\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** URL for accessing the network explorer */\n explorerUrl?: string\n /** string representation of the icon (SVG) */\n icon?: string\n /** Machine-readable identifier */\n id: NetworkId\n /** Schema identifier for this configuration or payload. */\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\n\n/** A network bootstrap extended with a flag indicating whether it is a custom network. */\nexport interface Network extends NetworkBootstrap {\n /** Application-defined bootstrap configuration passed through unchanged. */\n custom: boolean\n}\n\n/** Payload type containing all network bootstrap configuration fields. */\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\n/** Type guard that checks whether a payload is a NetworkBootstrap. */\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\n/** Optionally casts a value to a Network if it is a valid NetworkBootstrap. */\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n", "import type { GatewayName } from '#protocol-lib'\n\nimport {\n LocalNetwork, MainNetwork, SequenceNetwork,\n} from './Networks.ts'\n\n/** Map of network IDs to their corresponding Data Lake API URLs. */\nexport const NetworkDataLakeUrls = {\n [MainNetwork.id]: 'https://api.archivist.xyo.network/dataLake',\n [SequenceNetwork.id]: 'https://beta.api.archivist.xyo.network/dataLake',\n [LocalNetwork.id]: 'http://localhost:8080/dataLake',\n} as const satisfies Record<GatewayName, string>\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\nimport { ManifestWrapper, ModuleFactoryLocator } from '@xyo-network/sdk'\n\nimport { NetworkNodeManifest } from '../../manifest/index.ts'\n\n/**\n * Creates a network node from the network manifest using the provided wallet.\n *\n * @deprecated Bootstrapping an XYO `NodeInstance` via manifest is no longer supported.\n * Use `connectArchivist` from `@xyo-network/xl1-protocol-sdk` for co-located archivist\n * access, or `GatewayBuilder` from `@xyo-network/xl1-gateway` for remote RPC access.\n */\nexport async function getNetworkNode(wallet: WalletInstance): Promise<AttachableNodeInstance> {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, wallet, new ModuleFactoryLocator())\n const [node] = await wrapper.loadNodes()\n return node\n}\n", "{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}", "import type { PackageManifestPayload } from '@xyo-network/sdk'\n\nimport node from './network.json' with { type: 'json' }\n\n/** @deprecated XYO Node manifest bootstrap is no longer used; wire providers via archivist bindings or JsonRpc instead. */\nexport const NetworkNodeManifest = node as unknown as PackageManifestPayload\n", "import type { AttachableNodeInstance } from '@xyo-network/sdk'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\n/** @deprecated Internal cache for deprecated `initNetworkNode`; do not use. */\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\n", "import type { AttachableNodeInstance, WalletInstance } from '@xyo-network/sdk'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\nimport { getNetworkNodes } from './getNetworkNodes.ts'\n\n/** @deprecated Use `connectArchivist` archivist bindings (`@xyo-network/xl1-protocol-sdk`) or `GatewayBuilder` (`@xyo-network/xl1-gateway`) instead of bootstrapping an XYO NodeInstance. */\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap, wallet: WalletInstance): Promise<AttachableNodeInstance> => {\n const networkNodeMap = getNetworkNodes()\n if (networkNodeMap.has(activeNetwork.url)) return networkNodeMap.get(activeNetwork.url)!\n\n const activeNetworkNode = await getNetworkNode(wallet)\n networkNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport {\n ChainIdZod, NumberishZod, type XL1BlockNumber,\n} from '#protocol-lib'\n\nconst ChainContractBlockNumberZod = NumberishZod\n .pipe(z.int().nonnegative())\n .transform(value => value as XL1BlockNumber)\n\n/** Schema id for the chain-contract manifest document. */\nexport const ChainContractManifestSchema = 'network.xyo.s3.chain.contract' as const\n/** Type literal for the chain-contract manifest schema. */\nexport type ChainContractManifestSchema = typeof ChainContractManifestSchema\n\n/** Bumped when the manifest shape changes, so readers can detect a mismatch. */\nexport const CHAIN_CONTRACT_MANIFEST_VERSION = 1\n\n/**\n * Zod schema for the static per-chain config at `chainContractByIdPath(chainId)`: the reward\n * contract, staking token, minimum withdrawal window, and (optional) fork edge. Immutable\n * once published \u2014 does not change per block, unlike `chain/head.json`.\n */\nexport const ChainContractManifestZod = z.object({\n /** Self-identifying chain id (matches the path key). Optional for older fixtures. */\n chainId: z.optional(ChainIdZod),\n forkedAtBlockNumber: ChainContractBlockNumberZod.nullable().optional(),\n forkedAtHash: z.string().nullable().optional(),\n forkedChainId: z.nullable(ChainIdZod).optional(),\n minWithdrawalBlocks: NumberishZod.pipe(z.int().nonnegative()),\n rewardsContract: z.string(),\n schema: z.literal(ChainContractManifestSchema),\n stakingTokenAddress: z.string(),\n version: z.int().positive(),\n})\n\n/** The static per-chain contract config at `chainContractByIdPath(chainId)`. */\nexport type ChainContractManifest = z.infer<typeof ChainContractManifestZod>\n\n/** Numeric-input-tolerant shape accepted when creating a chain-contract manifest. */\nexport type ChainContractManifestInput = z.input<typeof ChainContractManifestZod>\n\n/** Type guard that checks if a value is a valid ChainContractManifest. */\nexport const isChainContractManifest = zodIsFactory(ChainContractManifestZod)\n/** Converts a value to ChainContractManifest, throwing if invalid. */\nexport const asChainContractManifest = zodAsFactory(ChainContractManifestZod, 'asChainContractManifest')\n/** Non-validating cast to ChainContractManifest. */\nexport const toChainContractManifest = zodToFactory(ChainContractManifestZod, 'toChainContractManifest')\n\n/** Builds a validated chain-contract manifest. */\nexport function createChainContractManifest(\n config: Omit<ChainContractManifestInput, 'schema' | 'version'>,\n): ChainContractManifest {\n return ChainContractManifestZod.parse({\n ...config,\n schema: ChainContractManifestSchema,\n version: CHAIN_CONTRACT_MANIFEST_VERSION,\n })\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { chainManifestPathTemplates } from '../templates.ts'\n\n/** Bumped when the finalized layout changes shape, so readers can detect a mismatch. */\nexport const CHAIN_LAYOUT_VERSION = 1\n\n/** Schema id for the finalized layout manifest document. */\nexport const ChainManifestSchema = 'network.xyo.s3.chain.manifest' as const\n/** Type literal for the chain manifest schema. */\nexport type ChainManifestSchema = typeof ChainManifestSchema\n\n/** Path templates for the finalized + chain-state files. */\nexport const ChainManifestPathsZod = z.object({\n blockByHash: z.string(),\n blockByNumber: z.string(),\n head: z.string(),\n payload: z.string(),\n})\n\n/** Type for chain manifest path templates. */\nexport type ChainManifestPaths = z.infer<typeof ChainManifestPathsZod>\n\n/** Zod schema for the finalized layout descriptor at `manifestPath()`. */\nexport const ChainManifestZod = z.object({\n /** Lowest block number available in the bucket (genesis until pruning exists). */\n earliestBlock: z.int().nonnegative(),\n /** Storage/wire encoding of the published files (also on each object's Content-Encoding). */\n encoding: z.string(),\n paths: ChainManifestPathsZod,\n schema: z.literal(ChainManifestSchema),\n version: z.int().positive(),\n})\n\n/** The finalized layout descriptor at `manifestPath()`. */\nexport type ChainManifest = z.infer<typeof ChainManifestZod>\n\n/** Type guard that checks if a value is a valid ChainManifest. */\nexport const isChainManifest = zodIsFactory(ChainManifestZod)\n/** Converts a value to ChainManifest, throwing if invalid. */\nexport const asChainManifest = zodAsFactory(ChainManifestZod, 'asChainManifest')\n/** Non-validating cast to ChainManifest. */\nexport const toChainManifest = zodToFactory(ChainManifestZod, 'toChainManifest')\n\n/** Builds a validated chain manifest with path templates derived from the path builders. */\nexport function createChainManifest(encoding: string, earliestBlock = 0): ChainManifest {\n return asChainManifest({\n earliestBlock,\n encoding,\n paths: chainManifestPathTemplates(),\n schema: ChainManifestSchema,\n version: CHAIN_LAYOUT_VERSION,\n }, true)\n}\n", "import { asHash } from '@ariestools/sdk'\n\nimport type { IndexSummaryFamily } from '#protocol-lib'\n\nimport { headPath } from './paths/chainState.ts'\nimport {\n blockHashPath, blockNumberPath, payloadPath,\n} from './paths/finalized.ts'\nimport { indexSummaryPath } from './paths/indexPaths.ts'\nimport { transactionInclusionPath } from './paths/transactionInclusionIndex.ts'\n\n/** Sentinel values used when deriving self-describing path templates from concrete builders. */\nconst TEMPLATE_SLOTS = {\n block: 0,\n hash: asHash('0'.repeat(64), true),\n index: 99,\n level: 42,\n} as const\n\n/**\n * Replaces concrete slot literals in a path with named `{placeholder}` segments.\n * Used to derive manifest path templates from the path builders so the two cannot drift.\n */\nexport function toPathTemplate(path: string, slots: { literal: string; name: string }[]): string {\n let result = path\n for (const { literal, name } of slots) {\n if (!result.includes(literal)) {\n throw new Error(`Template slot \"${literal}\" not found in path \"${path}\"`)\n }\n result = result.split(literal).join(`{${name}}`)\n }\n return result\n}\n\n/** Fills `{placeholder}` segments in a manifest path template. Used in conformance tests. */\nexport function interpolatePathTemplate(template: string, values: Record<string, string | number>): string {\n let result = template\n for (const [key, value] of Object.entries(values)) {\n result = result.split(`{${key}}`).join(String(value))\n }\n return result\n}\n\n/** Self-describing template for `blockNumberPath`. */\nexport const blockNumberPathTemplate = (): string =>\n toPathTemplate(blockNumberPath(TEMPLATE_SLOTS.block), [{ literal: String(TEMPLATE_SLOTS.block), name: 'block' }])\n\n/** Self-describing template for `blockHashPath`. */\nexport const blockHashPathTemplate = (): string =>\n toPathTemplate(blockHashPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing template for `payloadPath`. */\nexport const payloadPathTemplate = (): string =>\n toPathTemplate(payloadPath(TEMPLATE_SLOTS.hash), [{ literal: TEMPLATE_SLOTS.hash, name: 'hash' }])\n\n/** Self-describing templates for finalized + chain-state files carried in the chain manifest. */\nexport function chainManifestPathTemplates(): {\n blockByHash: string\n blockByNumber: string\n head: string\n payload: string\n} {\n return {\n blockByHash: blockHashPathTemplate(),\n blockByNumber: blockNumberPathTemplate(),\n head: headPath(),\n payload: payloadPathTemplate(),\n }\n}\n\n/** Self-describing template for one index summary family, e.g. `blocks/{level}/{index}.json`. */\nexport function indexSummaryPathTemplate(family: IndexSummaryFamily): string {\n const path = indexSummaryPath(family, TEMPLATE_SLOTS.level, TEMPLATE_SLOTS.index)\n return toPathTemplate(path, [\n { literal: String(TEMPLATE_SLOTS.level), name: 'level' },\n { literal: String(TEMPLATE_SLOTS.index), name: 'index' },\n ])\n}\n\n/** Self-describing template for the hash-addressed transaction-inclusion lookup. */\nexport function transactionInclusionPathTemplate(): string {\n return toPathTemplate(transactionInclusionPath(TEMPLATE_SLOTS.hash), [\n { literal: TEMPLATE_SLOTS.hash, name: 'hash' },\n ])\n}\n", "/**\n * Path builders for the chain-state (mutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The mutable head pointer: the current head SignedHydratedBlockWithHashMeta. */\nexport const headPath = (): string => 'chain/head.json'\n\n/**\n * Immutable per-chain contract config (rewards contract, staking token, fork edge).\n * Sparse map keyed by chain id \u2014 the current chain's file is the entry point; fork\n * ancestors are sibling files under the same folder. `chainId` is normalized to lowercase.\n */\nexport const chainContractByIdPath = (chainId: string): string => `chain/contracts/${chainId.toLowerCase()}.json`\n", "/**\n * Path builders for the finalized (immutable) bucket.\n *\n * Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** The finalized layout descriptor (path templates, encoding, version, earliest block). */\nexport const manifestPath = (): string => 'manifest.json'\n\n/** A block by number: SignedHydratedBlockWithHashMeta. */\nexport const blockNumberPath = (block: number): string => `block/number/${block}.json`\n\n/** A block by hash: the same content as its by-number twin. */\nexport const blockHashPath = (hash: string): string => `block/hash/${hash}.json`\n\n/** A payload by hash: WithHashMeta<Payload>. */\nexport const payloadPath = (hash: string): string => `payload/${hash}.json`\n", "import type { IndexSummaryFamily } from '#protocol-lib'\n\n/**\n * Path builders for the index bucket.\n *\n * The index is a separate, single-writer bucket holding completed step summaries for several\n * families. Paths are relative \u2014 no leading slash \u2014 and joined to a base URL by the consumer.\n */\n\n/** A completed frame's summary for a family, e.g. `blocks/2/5.json`. Immutable once written. */\nexport const indexSummaryPath = (family: IndexSummaryFamily, stepLevel: number, stepIndex: number): string =>\n `${family}/${stepLevel}/${stepIndex}.json`\n\n/** The index layout descriptor (families, max step, encoding, version). */\nexport const indexManifestPath = (): string => 'manifest.json'\n\n/** The indexer's progress watermark (highest block the index is complete through). */\nexport const indexHeadPath = (): string => 'head.json'\n", "import type { Hash } from '@ariestools/sdk'\n\nconst TRANSACTION_INCLUSION_ROOT = 'transactions'\n\n/** Path of one immutable transaction-hash to finalized-block inclusion record. */\nexport function transactionInclusionPath(transactionHash: Hash): string {\n return `${TRANSACTION_INCLUSION_ROOT}/by-hash/${transactionHash}.json`\n}\n\n/** Path of the mutable transaction-inclusion progress pointer. */\nexport function transactionInclusionHeadPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/head.json`\n}\n\n/** Path of the transaction-inclusion layout descriptor. */\nexport function transactionInclusionManifestPath(): string {\n return `${TRANSACTION_INCLUSION_ROOT}/manifest.json`\n}\n", "import {\n EthAddressZod, HexRegExMinMaxMixedCaseWithPrefix,\n zodAsFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod/mini'\n\nconst EvmHashZod = z.string().check(z.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)))\nconst EvmDataZod = z.string().check(z.regex(/^0x[\\dA-Fa-f]*$/))\n\n/** JSON-safe representation of one raw EVM contract log. */\nexport const EvmEventIndexLogZod = z.object({\n address: EthAddressZod,\n blockHash: EvmHashZod,\n blockNumber: z.number(),\n data: EvmDataZod,\n index: z.number(),\n topics: z.array(EvmHashZod),\n transactionHash: EvmHashZod,\n transactionIndex: z.number(),\n})\n\n/** Type for one raw EVM contract log in the event index. */\nexport type EvmEventIndexLog = z.infer<typeof EvmEventIndexLogZod>\n\n/** One immutable, address-scoped range of finalized EVM logs. */\nexport const EvmEventIndexFrameZod = z.object({\n fromBlock: z.number(),\n logs: z.array(EvmEventIndexLogZod),\n toBlock: z.number(),\n})\n\n/** Type for one immutable event-index frame. */\nexport type EvmEventIndexFrame = z.infer<typeof EvmEventIndexFrameZod>\n\n/** Static description of one contract event index. */\nexport const EvmEventIndexManifestZod = z.object({\n address: EthAddressZod,\n chainId: z.string(),\n deploymentBlock: z.number(),\n frameSize: z.number(),\n layout: z.literal('evm-contract-events-v1'),\n})\n\n/** Type for the event-index manifest document. */\nexport type EvmEventIndexManifest = z.infer<typeof EvmEventIndexManifestZod>\n\n/**\n * Mutable pointer written after all frames through `block` are durable.\n * Wire schema for the `EvmEventIndexHead` runner contract in `#protocol-lib`.\n */\nexport const EvmEventIndexHeadZod = z.object({\n address: EthAddressZod,\n block: z.number(),\n chainId: z.string(),\n hash: EvmHashZod,\n})\n\n/** Converts a value to EvmEventIndexFrame, throwing if invalid. */\nexport const asEvmEventIndexFrame = zodAsFactory(EvmEventIndexFrameZod, 'asEvmEventIndexFrame')\n/** Converts a value to EvmEventIndexHead, throwing if invalid. */\nexport const asEvmEventIndexHead = zodAsFactory(EvmEventIndexHeadZod, 'asEvmEventIndexHead')\n/** Converts a value to EvmEventIndexManifest, throwing if invalid. */\nexport const asEvmEventIndexManifest = zodAsFactory(EvmEventIndexManifestZod, 'asEvmEventIndexManifest')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport type { IndexSummaryFamily, IndexWatermark } from '#protocol-lib'\n\nimport { indexSummaryPathTemplate } from '../templates.ts'\n\n/** Bumped when the on-disk index layout changes shape, so readers can detect a mismatch. */\nexport const INDEX_LAYOUT_VERSION = 1\n\n/** Schema id for the index manifest document (the static layout descriptor). */\nexport const IndexManifestSchema = 'network.xyo.s3.index.manifest' as const\n/** Type literal for the index manifest schema. */\nexport type IndexManifestSchema = typeof IndexManifestSchema\n\n/** Schema id for the index head document (the progress watermark). */\nexport const IndexHeadSchema = 'network.xyo.s3.index.head' as const\n/** Type literal for the index head schema. */\nexport type IndexHeadSchema = typeof IndexHeadSchema\n\n/** Per-family descriptor carried in the manifest. */\nexport const IndexManifestFamilyZod = z.object({\n /** Highest step level published for this family. */\n maxStep: z.int().nonnegative(),\n /** Path template for the family's frames, e.g. `blocks/{level}/{index}.json`. */\n path: z.string(),\n})\n\n/** Type for one index manifest family descriptor. */\nexport type IndexManifestFamily = z.infer<typeof IndexManifestFamilyZod>\n\nconst indexFamiliesZod = z.object({\n balances: IndexManifestFamilyZod,\n blocks: IndexManifestFamilyZod,\n schemas: IndexManifestFamilyZod,\n transfers: IndexManifestFamilyZod,\n})\n\n/** Zod schema for the static index layout descriptor at `indexManifestPath()`. */\nexport const IndexManifestZod = z.object({\n families: indexFamiliesZod,\n schema: z.literal(IndexManifestSchema),\n version: z.int().positive(),\n})\n\n/** The static index layout descriptor at `indexManifestPath()`. */\nexport type IndexManifest = z.infer<typeof IndexManifestZod>\n\n/** Type guard that checks if a value is a valid IndexManifest. */\nexport const isIndexManifest = zodIsFactory(IndexManifestZod)\n/** Converts a value to IndexManifest, throwing if invalid. */\nexport const asIndexManifest = zodAsFactory(IndexManifestZod, 'asIndexManifest')\n/** Non-validating cast to IndexManifest. */\nexport const toIndexManifest = zodToFactory(IndexManifestZod, 'toIndexManifest')\n\n/** Completed frame counts per family in the index head watermark. */\nexport const IndexHeadFamiliesZod = z.object({\n balances: z.int().nonnegative(),\n blocks: z.int().nonnegative(),\n schemas: z.int().nonnegative(),\n transfers: z.int().nonnegative(),\n})\n\n/** Zod schema for the index progress watermark at `indexHeadPath()`. */\nexport const IndexHeadZod = z.object({\n /** Highest block the index is complete through. */\n block: z.int().nonnegative(),\n /** Completed frame counts per family. */\n families: IndexHeadFamiliesZod,\n /** Hash of that block. */\n hash: z.string(),\n schema: z.literal(IndexHeadSchema),\n /** ISO-8601 timestamp of the last update. */\n updatedAt: z.string(),\n version: z.int().positive(),\n})\n\n/** The index progress watermark at `indexHeadPath()`. */\nexport type IndexHead = z.infer<typeof IndexHeadZod>\n\n/** Type guard that checks if a value is a valid IndexHead. */\nexport const isIndexHead = zodIsFactory(IndexHeadZod)\n/** Converts a value to IndexHead, throwing if invalid. */\nexport const asIndexHead = zodAsFactory(IndexHeadZod, 'asIndexHead')\n/** Non-validating cast to IndexHead. */\nexport const toIndexHead = zodToFactory(IndexHeadZod, 'toIndexHead')\n\n/** Builds per-family manifest descriptors with path templates derived from the path builders. */\nexport function createIndexManifestFamilies(\n maxSteps: Record<IndexSummaryFamily, number>,\n): Record<IndexSummaryFamily, IndexManifestFamily> {\n return {\n balances: { maxStep: maxSteps.balances, path: indexSummaryPathTemplate('balances') },\n blocks: { maxStep: maxSteps.blocks, path: indexSummaryPathTemplate('blocks') },\n schemas: { maxStep: maxSteps.schemas, path: indexSummaryPathTemplate('schemas') },\n transfers: { maxStep: maxSteps.transfers, path: indexSummaryPathTemplate('transfers') },\n }\n}\n\n/** Builds a validated index manifest with path templates derived from the path builders. */\nexport function createIndexManifest(maxSteps: Record<IndexSummaryFamily, number>): IndexManifest {\n return asIndexManifest({\n families: createIndexManifestFamilies(maxSteps),\n schema: IndexManifestSchema,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n\n/** Builds a validated index head watermark from an indexer progress snapshot. */\nexport function createIndexHead(watermark: IndexWatermark, updatedAt?: string): IndexHead {\n const now = new Date()\n const resolvedUpdatedAt = updatedAt ?? now.toISOString()\n return asIndexHead({\n block: watermark.block,\n families: watermark.families,\n hash: watermark.hash,\n schema: IndexHeadSchema,\n updatedAt: resolvedUpdatedAt,\n version: INDEX_LAYOUT_VERSION,\n }, true)\n}\n", "import { zodAsFactory, zodIsFactory } from '@ariestools/sdk'\nimport { z } from 'zod'\n\n/** Version of the durable network-stake rewards index layout. */\nexport const NETWORK_STAKE_REWARDS_INDEX_LAYOUT = 'network-stake-rewards-v1' as const\n/** Default reward policy identifier for unmultiplied protocol rewards. */\nexport const NETWORK_STAKE_REWARDS_BASE_POLICY = 'base-v1' as const\n\nconst DecimalBigIntZod = z.string().regex(/^(?:0|[1-9]\\d*)$/)\n/** Path-safe identifier for a deterministic reward policy. */\nexport const NetworkStakeRewardsPolicyIdZod = z.string().regex(/^[a-z0-9][a-z0-9._-]*$/)\nconst PositionRewardsZod = z.record(z.string().regex(/^(?:0|[1-9]\\d*)$/), DecimalBigIntZod)\nconst BlockRangeZod = z.tuple([z.number().int().nonnegative(), z.number().int().nonnegative()])\nconst StepIdentityJsonZod = z.object({\n block: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport const NetworkStakeRewardsIndexManifestZod = z.object({\n evmAddress: z.string(),\n evmChainId: z.string(),\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n stepLevels: z.array(z.number().int().nonnegative()),\n timeAnchor: z.object({\n externalGenesisTime: z.number().optional(),\n maxScanBlocks: z.number().optional(),\n }).optional(),\n})\n\n/** Static policy and source description for one rewards index tree. */\nexport type NetworkStakeRewardsIndexManifest = z.infer<typeof NetworkStakeRewardsIndexManifestZod>\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport const NetworkStakeRewardsIndexStepZod = z.object({\n denominator: DecimalBigIntZod,\n externalRange: BlockRangeZod,\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n step: StepIdentityJsonZod,\n totalReward: DecimalBigIntZod,\n xl1Range: BlockRangeZod,\n})\n\n/** Immutable reward allocation for one completed XL1 reward step. */\nexport type NetworkStakeRewardsIndexStep = z.infer<typeof NetworkStakeRewardsIndexStepZod>\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport const NetworkStakeRewardsIndexSnapshotZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionRewards: PositionRewardsZod,\n stepCount: z.number().int().nonnegative(),\n totalReward: DecimalBigIntZod,\n})\n\n/** Immutable cumulative position totals referenced by a mutable head. */\nexport type NetworkStakeRewardsIndexSnapshot = z.infer<typeof NetworkStakeRewardsIndexSnapshotZod>\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport const NetworkStakeRewardsIndexHeadZod = z.object({\n layout: z.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),\n policyId: NetworkStakeRewardsPolicyIdZod,\n positionCount: z.number().int().nonnegative(),\n processedThroughBlock: z.number().int().nonnegative(),\n snapshot: z.string(),\n source: z.object({\n evm: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n xl1: z.object({\n block: z.number().int().nonnegative(),\n hash: z.string(),\n }),\n }),\n stepCount: z.number().int().nonnegative(),\n})\n\n/** Mutable pointer written only after every referenced step and snapshot is durable. */\nexport type NetworkStakeRewardsIndexHead = z.infer<typeof NetworkStakeRewardsIndexHeadZod>\n\n/** Checks whether a value is a valid rewards index manifest. */\nexport const isNetworkStakeRewardsIndexManifest = zodIsFactory(NetworkStakeRewardsIndexManifestZod)\n/** Converts a value to a rewards index manifest, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexManifest = zodAsFactory(\n NetworkStakeRewardsIndexManifestZod,\n 'asNetworkStakeRewardsIndexManifest',\n)\n/** Converts a value to a rewards index step, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexStep = zodAsFactory(\n NetworkStakeRewardsIndexStepZod,\n 'asNetworkStakeRewardsIndexStep',\n)\n/** Converts a value to a rewards index snapshot, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexSnapshot = zodAsFactory(\n NetworkStakeRewardsIndexSnapshotZod,\n 'asNetworkStakeRewardsIndexSnapshot',\n)\n/** Converts a value to a rewards index head, throwing if invalid. */\nexport const asNetworkStakeRewardsIndexHead = zodAsFactory(\n NetworkStakeRewardsIndexHeadZod,\n 'asNetworkStakeRewardsIndexHead',\n)\n", "import {\n HashZod, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { z } from 'zod'\n\nimport { ChainIdZod, XL1BlockNumberZod } from '#protocol-model'\n\nimport { transactionInclusionPathTemplate } from '../templates.ts'\n\n/** Versioned identifier for the finalized transaction-inclusion index layout. */\nexport const TRANSACTION_INCLUSION_INDEX_LAYOUT = 'transaction-inclusions-v1' as const\n\n/** Static descriptor for the transaction-inclusion index. */\nexport const TransactionInclusionManifestZod = z.object({\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n /** Hash-addressed path template, for example `transactions/by-hash/{hash}.json`. */\n path: z.string(),\n})\n\n/** Static descriptor for the transaction-inclusion index. */\nexport type TransactionInclusionManifest = z.infer<typeof TransactionInclusionManifestZod>\n\n/** Mutable pointer written after every transaction inclusion through `block` is durable. */\nexport const TransactionInclusionHeadZod = z.object({\n /** Highest finalized block fully represented by the lookup. */\n block: XL1BlockNumberZod,\n /** Hash of the highest finalized block fully represented by the lookup. */\n blockHash: HashZod,\n /** XL1 chain whose finalized transactions are indexed. */\n chain: ChainIdZod,\n /** Number of transaction-inclusion records represented through `block`. */\n entries: z.int().nonnegative(),\n /** Versioned layout identifier. */\n layout: z.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),\n})\n\n/** Mutable transaction-inclusion progress pointer. */\nexport type TransactionInclusionHead = z.infer<typeof TransactionInclusionHeadZod>\n\n/** Type guard that checks whether a value is a valid transaction-inclusion manifest. */\nexport const isTransactionInclusionManifest = zodIsFactory(TransactionInclusionManifestZod)\n/** Converts a value to a transaction-inclusion manifest, throwing when invalid. */\nexport const asTransactionInclusionManifest = zodAsFactory(\n TransactionInclusionManifestZod,\n 'asTransactionInclusionManifest',\n)\n/** Converts a value to a transaction-inclusion manifest, returning undefined when invalid. */\nexport const toTransactionInclusionManifest = zodToFactory(\n TransactionInclusionManifestZod,\n 'toTransactionInclusionManifest',\n)\n\n/** Type guard that checks whether a value is a valid transaction-inclusion head. */\nexport const isTransactionInclusionHead = zodIsFactory(TransactionInclusionHeadZod)\n/** Converts a value to a transaction-inclusion head, throwing when invalid. */\nexport const asTransactionInclusionHead = zodAsFactory(\n TransactionInclusionHeadZod,\n 'asTransactionInclusionHead',\n)\n/** Converts a value to a transaction-inclusion head, returning undefined when invalid. */\nexport const toTransactionInclusionHead = zodToFactory(\n TransactionInclusionHeadZod,\n 'toTransactionInclusionHead',\n)\n\n/** Builds the static descriptor for a chain's transaction-inclusion index. */\nexport function createTransactionInclusionManifest(\n chain: TransactionInclusionManifest['chain'],\n): TransactionInclusionManifest {\n return asTransactionInclusionManifest({\n chain,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n path: transactionInclusionPathTemplate(),\n }, true)\n}\n\n/** Builds the mutable progress pointer for a transaction-inclusion index. */\nexport function createTransactionInclusionHead(\n head: Omit<TransactionInclusionHead, 'layout'>,\n): TransactionInclusionHead {\n return asTransactionInclusionHead({\n ...head,\n layout: TRANSACTION_INCLUSION_INDEX_LAYOUT,\n }, true)\n}\n", "import type { EthAddress } from '@ariestools/sdk'\n\nfunction root(address: EthAddress): string {\n return `evm/events/${address.toLowerCase()}`\n}\n\n/** Path of one immutable event-index frame within the index bucket. */\nexport function evmEventIndexFramePath(address: EthAddress, frameIndex: number): string {\n return `${root(address)}/frames/${frameIndex}.json`\n}\n\n/** Path of the mutable event-index head pointer within the index bucket. */\nexport function evmEventIndexHeadPath(address: EthAddress): string {\n return `${root(address)}/head.json`\n}\n\n/** Path of the event-index manifest within the index bucket. */\nexport function evmEventIndexManifestPath(address: EthAddress): string {\n return `${root(address)}/manifest.json`\n}\n\n/** Path of the mutable partial-frame tail within the index bucket. */\nexport function evmEventIndexTailPath(address: EthAddress): string {\n return `${root(address)}/tail.json`\n}\n", "import type { StepIdentity } from '#protocol-model'\n\nfunction root(policyId: string): string {\n return `rewards/network-stake/v1/${policyId}`\n}\n\n/** Path of the mutable rewards-index head. */\nexport function networkStakeRewardsIndexHeadPath(policyId: string): string {\n return `${root(policyId)}/head.json`\n}\n\n/** Path of the static rewards-index manifest. */\nexport function networkStakeRewardsIndexManifestPath(policyId: string): string {\n return `${root(policyId)}/manifest.json`\n}\n\n/** Path of one immutable cumulative position snapshot. */\nexport function networkStakeRewardsIndexSnapshotPath(policyId: string, stepCount: number): string {\n return `${root(policyId)}/positions/${stepCount}.json`\n}\n\n/** Path of one immutable completed-step reward allocation. */\nexport function networkStakeRewardsIndexStepPath(policyId: string, step: StepIdentity): string {\n return `${root(policyId)}/steps/${step.step}/${step.block}.json`\n}\n", "import type { NetworkId } from '../models/index.ts'\n\n/** Builds URLs to pages on an XL1 chain explorer for a specific network. */\nexport class ExplorerLinks {\n /** Explorer origin with trailing slashes removed. */\n readonly explorerUrl: string\n /** Network identifier included in generated links. */\n readonly networkId: NetworkId\n\n /**\n * Creates a link builder for one explorer deployment and network.\n *\n * @param explorerUrl Base explorer URL, with or without trailing slashes.\n * @param networkId Network segment included in every generated URL.\n */\n constructor(explorerUrl: string, networkId: NetworkId) {\n this.explorerUrl = explorerUrl.replace(/\\/+$/, '')\n this.networkId = networkId\n }\n\n /** `{explorerUrl}/xl1/{networkId}/address/{address}` */\n address(address: string): string {\n return `${this.network()}/address/${address}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/addresses` */\n addresses(): string {\n return `${this.network()}/addresses`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}` */\n block(blockHash: string): string {\n return `${this.network()}/block/${blockHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/number/{blockNumber}` */\n blockByNumber(blockNumber: number | string): string {\n return `${this.network()}/block/number/${blockNumber}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/block/{blockHash}/payload/{payloadHash}[/{render}]` */\n blockPayload(blockHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/block/${blockHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/blocks` */\n blocks(): string {\n return `${this.network()}/blocks`\n }\n\n /** `{explorerUrl}/xl1/{networkId}` */\n network(): string {\n return `${this.explorerUrl}/xl1/${this.networkId}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}` */\n transaction(txHash: string): string {\n return `${this.network()}/transaction/${txHash}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transaction/{txHash}/payload/{payloadHash}[/{render}]` */\n transactionPayload(txHash: string, payloadHash: string, render?: string): string {\n const base = `${this.network()}/transaction/${txHash}/payload/${payloadHash}`\n return render === undefined ? base : `${base}/${render}`\n }\n\n /** `{explorerUrl}/xl1/{networkId}/transactions` */\n transactions(): string {\n return `${this.network()}/transactions`\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["networkNodeMap", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "z", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "ChainIdZod", "z", "ChainIdZod", "zodIsFactory", "zodAsFactory", "zodToFactory", "root"]
7
7
  }
@@ -101,6 +101,9 @@ var IndexPublishRunnerMoniker = "IndexPublishRunner";
101
101
  var MempoolRunnerMoniker = "MempoolRunner";
102
102
  var DEFAULT_MAX_EXP_AHEAD = 1e3;
103
103
 
104
+ // src/modules/protocol-lib/runners/NetworkStakeRewardsIndexPublish.ts
105
+ var NetworkStakeRewardsIndexPublishRunnerMoniker = "NetworkStakeRewardsIndexPublishRunner";
106
+
104
107
  // src/modules/protocol-lib/status/SystemStatus.ts
105
108
  var SystemStatusRunnerMoniker = "SystemStatusRunner";
106
109
  var SystemStatusViewerMoniker = "SystemStatusViewer";
@@ -538,6 +541,7 @@ export {
538
541
  IndexViewerMoniker,
539
542
  MempoolRunnerMoniker,
540
543
  MempoolViewerMoniker,
544
+ NetworkStakeRewardsIndexPublishRunnerMoniker,
541
545
  NetworkStakeStepRewardViewerMoniker,
542
546
  NetworkStakeStepRewardsByPositionViewerMoniker,
543
547
  NetworkStakeStepRewardsByStakerViewerMoniker,