@xyo-network/xl1-protocol 5.1.4 → 5.2.0

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 (74) hide show
  1. package/dist/neutral/modules/network-model/staticRest/layout/chainParams.d.ts +371 -0
  2. package/dist/neutral/modules/network-model/staticRest/layout/chainParams.d.ts.map +1 -0
  3. package/dist/neutral/modules/network-model/staticRest/layout/chainParamsRules.d.ts +36 -0
  4. package/dist/neutral/modules/network-model/staticRest/layout/chainParamsRules.d.ts.map +1 -0
  5. package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts +3 -0
  6. package/dist/neutral/modules/network-model/staticRest/layout/index.d.ts.map +1 -1
  7. package/dist/neutral/modules/network-model/staticRest/layout/trustedPosture.d.ts +81 -0
  8. package/dist/neutral/modules/network-model/staticRest/layout/trustedPosture.d.ts.map +1 -0
  9. package/dist/neutral/modules/network-model/staticRest/paths/chainState.d.ts +7 -0
  10. package/dist/neutral/modules/network-model/staticRest/paths/chainState.d.ts.map +1 -1
  11. package/dist/neutral/modules/protocol-lib/validation/payload/InBlockPayloadValidationFunction.d.ts +37 -3
  12. package/dist/neutral/modules/protocol-lib/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -1
  13. package/dist/neutral/modules/protocol-lib/validation/payload/index.d.ts +1 -0
  14. package/dist/neutral/modules/protocol-lib/validation/payload/index.d.ts.map +1 -1
  15. package/dist/neutral/modules/protocol-lib/validation/payload/ruleGate.d.ts +29 -0
  16. package/dist/neutral/modules/protocol-lib/validation/payload/ruleGate.d.ts.map +1 -0
  17. package/dist/neutral/modules/protocol-lib/viewers/ChainParams.d.ts +26 -0
  18. package/dist/neutral/modules/protocol-lib/viewers/ChainParams.d.ts.map +1 -0
  19. package/dist/neutral/modules/protocol-lib/viewers/index.d.ts +1 -0
  20. package/dist/neutral/modules/protocol-lib/viewers/index.d.ts.map +1 -1
  21. package/dist/neutral/modules/protocol-model/block/AllowedBlockPayload.d.ts +14 -2
  22. package/dist/neutral/modules/protocol-model/block/AllowedBlockPayload.d.ts.map +1 -1
  23. package/dist/neutral/modules/protocol-model/block/BlockBoundWitness.d.ts +19 -0
  24. package/dist/neutral/modules/protocol-model/block/BlockBoundWitness.d.ts.map +1 -1
  25. package/dist/neutral/modules/protocol-model/block/HydratedBlock.d.ts +44 -0
  26. package/dist/neutral/modules/protocol-model/block/HydratedBlock.d.ts.map +1 -1
  27. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitness.d.ts +6 -0
  28. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitness.d.ts.map +1 -1
  29. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts +10 -0
  30. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts.map +1 -1
  31. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts +12 -0
  32. package/dist/neutral/modules/protocol-model/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts.map +1 -1
  33. package/dist/neutral/modules/protocol-model/block/unsigned/UnsignedBlockBoundWitness.d.ts +6 -0
  34. package/dist/neutral/modules/protocol-model/block/unsigned/UnsignedBlockBoundWitness.d.ts.map +1 -1
  35. package/dist/neutral/modules/protocol-model/evidence/EvidenceDisposition.d.ts +1 -1
  36. package/dist/neutral/modules/protocol-model/evidence/EvidenceNotePayload.d.ts +1 -1
  37. package/dist/neutral/modules/protocol-model/model/AccountBalance.d.ts +1 -0
  38. package/dist/neutral/modules/protocol-model/model/AccountBalance.d.ts.map +1 -1
  39. package/dist/neutral/modules/protocol-model/model/Context/ChainContext.zod.d.ts +3 -0
  40. package/dist/neutral/modules/protocol-model/model/Context/ChainContext.zod.d.ts.map +1 -1
  41. package/dist/neutral/modules/protocol-model/model/Context/HeadContext.zod.d.ts +2 -0
  42. package/dist/neutral/modules/protocol-model/model/Context/HeadContext.zod.d.ts.map +1 -1
  43. package/dist/neutral/modules/protocol-model/model/OffenseCode.d.ts +13 -0
  44. package/dist/neutral/modules/protocol-model/model/OffenseCode.d.ts.map +1 -0
  45. package/dist/neutral/modules/protocol-model/model/RuleActivation.d.ts +63 -0
  46. package/dist/neutral/modules/protocol-model/model/RuleActivation.d.ts.map +1 -0
  47. package/dist/neutral/modules/protocol-model/model/SyncStepSummary.d.ts +6 -0
  48. package/dist/neutral/modules/protocol-model/model/SyncStepSummary.d.ts.map +1 -1
  49. package/dist/neutral/modules/protocol-model/model/index.d.ts +2 -0
  50. package/dist/neutral/modules/protocol-model/model/index.d.ts.map +1 -1
  51. package/dist/neutral/modules/protocol-model/model/version.d.ts +2 -2
  52. package/dist/neutral/modules/protocol-model/payload/index.d.ts +1 -0
  53. package/dist/neutral/modules/protocol-model/payload/index.d.ts.map +1 -1
  54. package/dist/neutral/modules/protocol-model/payload/slash/SlashAdjudicationPayload.d.ts +51 -0
  55. package/dist/neutral/modules/protocol-model/payload/slash/SlashAdjudicationPayload.d.ts.map +1 -0
  56. package/dist/neutral/modules/protocol-model/payload/slash/SlashChallengePayload.d.ts +33 -0
  57. package/dist/neutral/modules/protocol-model/payload/slash/SlashChallengePayload.d.ts.map +1 -0
  58. package/dist/neutral/modules/protocol-model/payload/slash/SlashCommitPayload.d.ts +35 -0
  59. package/dist/neutral/modules/protocol-model/payload/slash/SlashCommitPayload.d.ts.map +1 -0
  60. package/dist/neutral/modules/protocol-model/payload/slash/SlashEvidencePayload.d.ts +33 -0
  61. package/dist/neutral/modules/protocol-model/payload/slash/SlashEvidencePayload.d.ts.map +1 -0
  62. package/dist/neutral/modules/protocol-model/payload/slash/SlashRequestPayload.d.ts +46 -0
  63. package/dist/neutral/modules/protocol-model/payload/slash/SlashRequestPayload.d.ts.map +1 -0
  64. package/dist/neutral/modules/protocol-model/payload/slash/index.d.ts +6 -0
  65. package/dist/neutral/modules/protocol-model/payload/slash/index.d.ts.map +1 -0
  66. package/dist/neutral/modules/protocol-model/rejection/BlockRejectionPayload.d.ts +4 -0
  67. package/dist/neutral/modules/protocol-model/rejection/BlockRejectionPayload.d.ts.map +1 -1
  68. package/dist/neutral/network-model.mjs +328 -114
  69. package/dist/neutral/network-model.mjs.map +4 -4
  70. package/dist/neutral/protocol-lib.mjs +19 -0
  71. package/dist/neutral/protocol-lib.mjs.map +3 -3
  72. package/dist/neutral/protocol-model.mjs +505 -296
  73. package/dist/neutral/protocol-model.mjs.map +4 -4
  74. package/package.json +3 -3
@@ -157,6 +157,8 @@ import { asHash } from "@ariestools/sdk";
157
157
  // src/modules/network-model/staticRest/paths/chainState.ts
158
158
  var headPath = () => "chain/head.json";
159
159
  var chainContractByIdPath = (chainId) => `chain/contracts/${chainId.toLowerCase()}.json`;
160
+ var chainParamsVersionPath = (chainId, version) => `chain/params/${chainId.toLowerCase()}/v${version}.json`;
161
+ var chainParamsHeadPath = (chainId) => `chain/params/${chainId.toLowerCase()}/head.json`;
160
162
 
161
163
  // src/modules/network-model/staticRest/paths/finalized.ts
162
164
  var manifestPath = () => "manifest.json";
@@ -260,98 +262,242 @@ function createChainManifest(encoding, earliestBlock = 0) {
260
262
  }, true);
261
263
  }
262
264
 
265
+ // src/modules/network-model/staticRest/layout/chainParams.ts
266
+ import {
267
+ zodAsFactory as zodAsFactory3,
268
+ zodIsFactory as zodIsFactory3,
269
+ zodToFactory as zodToFactory3
270
+ } from "@ariestools/sdk";
271
+ import { asSchema as asSchema2 } from "@xyo-network/sdk";
272
+ import { z as z3 } from "zod";
273
+ import { ChainIdZod as ChainIdZod2, NumberishZod as NumberishZod2 } from "#protocol-lib";
274
+ import { OffenseCodes, RuleIds } from "#protocol-model";
275
+ var ChainParamsSchema = asSchema2("network.xyo.s3.chain.params", true);
276
+ var CHAIN_PARAMS_VERSION = 1;
277
+ var offenseCodeZod = z3.enum(OffenseCodes);
278
+ var RuleIdZod = z3.enum(RuleIds);
279
+ var HeightZod = NumberishZod2.pipe(z3.int().nonnegative());
280
+ var HexAmountZod = z3.string();
281
+ var ChainParamsZod = z3.object({
282
+ /** Rule id to the height it takes effect. */
283
+ activations: z3.partialRecord(RuleIdZod, HeightZod),
284
+ /** Address whose adjudication records are honored. */
285
+ arbiter: z3.string(),
286
+ /** Share of a step's reward pool paid to attestors, in basis points. */
287
+ attestationRewardBps: z3.int().nonnegative(),
288
+ /** Absolute ceiling on any single bounty, in the smallest unit. */
289
+ bountyCapAtto: HexAmountZod,
290
+ /** Share of a slash offered as a bounty, in basis points. */
291
+ bountyShareBps: z3.int().nonnegative(),
292
+ /** Minimum share of every slash that must be burned, in basis points. */
293
+ burnFloorBps: z3.int().positive(),
294
+ /** Version of the offense catalog these parameters describe. */
295
+ catalogVersion: z3.int().positive(),
296
+ /** Chain these parameters govern. */
297
+ chainId: ChainIdZod2,
298
+ /** Window during which counter-evidence may be filed, in EVM blocks. */
299
+ challengeWindowEvmBlocks: z3.int().positive(),
300
+ /** Rule id to the height it stops taking effect; re-activation needs a later version. */
301
+ deactivations: z3.optional(z3.partialRecord(RuleIdZod, HeightZod)),
302
+ /** Maximum age of an offense at report time, in EVM blocks. */
303
+ evidenceFreshnessEvmBlocks: z3.int().positive(),
304
+ /** Operational floor on how long evidence is kept, in XL1 blocks. */
305
+ evidenceRetentionXl1Blocks: z3.int().positive(),
306
+ /** Delay between a certificate being queued and executable, in EVM blocks. */
307
+ executionDelayEvmBlocks: z3.int().positive(),
308
+ /** How far behind its own anchor a block's stake measurement may sit, in EVM blocks. */
309
+ freshnessBandEvmBlocks: z3.int().positive(),
310
+ /** Blocks after an activation during which the rule is observed but not enforced. */
311
+ graceBandXl1Blocks: z3.int().nonnegative(),
312
+ /** Confirmation depth an anchor must sit behind the EVM head, in EVM blocks. */
313
+ maturityEvmBlocks: z3.int().positive(),
314
+ /** Minimum stake a producer must place on itself, in the smallest unit. */
315
+ minProducerSelfBondAtto: HexAmountZod,
316
+ /** Minimum stake on a producer address, in the smallest unit. */
317
+ minProducerStakeAtto: HexAmountZod,
318
+ /** Minimum age stake must reach before it counts toward participation, in EVM blocks. */
319
+ minStakeAgeEvmBlocks: z3.int().nonnegative(),
320
+ /** Minimum stake a validator must hold, in the smallest unit. */
321
+ minValidatorStakeAtto: HexAmountZod,
322
+ /** Slack the timing budget carries for operations and stalls, in EVM blocks. */
323
+ opsAllowanceEvmBlocks: z3.int().positive(),
324
+ /** Lowest protocol version a block may declare. */
325
+ protocolMin: z3.int().positive(),
326
+ /** Refundable deposit a report must escrow, in the smallest unit. */
327
+ reporterDepositAtto: HexAmountZod,
328
+ /** Blocks a reveal must wait after its commitment. */
329
+ revealDelayEvmBlocks: z3.int().positive(),
330
+ /** Blocks a reveal must wait after its commitment, on the XL1 clock. */
331
+ revealDelayXl1Blocks: z3.int().positive(),
332
+ /** Blocks after which an unrevealed commitment expires. */
333
+ revealWindowEvmBlocks: z3.int().positive(),
334
+ /** Blocks after which an unrevealed commitment expires, on the XL1 clock. */
335
+ revealWindowXl1Blocks: z3.int().positive(),
336
+ /** Where the allowed block reward comes from. */
337
+ rewardSource: z3.enum(["schedule", "contract"]),
338
+ schema: z3.literal(ChainParamsSchema),
339
+ /** Offense code to the share of at-risk stake it slashes, in basis points. */
340
+ slashFractionsBps: z3.partialRecord(offenseCodeZod, z3.int().nonnegative()),
341
+ /** Distinct validator signatures a slash certificate needs. */
342
+ slashQuorumCount: z3.int().positive(),
343
+ /** Version of this register document. */
344
+ version: z3.int().positive()
345
+ });
346
+ var isChainParams = zodIsFactory3(ChainParamsZod);
347
+ var asChainParams = zodAsFactory3(ChainParamsZod, "asChainParams");
348
+ var toChainParams = zodToFactory3(ChainParamsZod, "toChainParams");
349
+ var ChainParamsHeadSchema = asSchema2("network.xyo.s3.chain.params.head", true);
350
+ var ChainParamsHeadZod = z3.object({
351
+ /** Hash of the version document, so a reader can tell it got the one the head meant. */
352
+ hash: z3.string(),
353
+ schema: z3.literal(ChainParamsHeadSchema),
354
+ /** Version number the pointer names. */
355
+ version: z3.int().positive()
356
+ });
357
+ var isChainParamsHead = zodIsFactory3(ChainParamsHeadZod);
358
+ var asChainParamsHead = zodAsFactory3(ChainParamsHeadZod, "asChainParamsHead");
359
+ function createChainParams(config) {
360
+ return ChainParamsZod.parse({ ...config, schema: ChainParamsSchema });
361
+ }
362
+ function createChainParamsHead(version, hash) {
363
+ return ChainParamsHeadZod.parse({
364
+ hash,
365
+ schema: ChainParamsHeadSchema,
366
+ version
367
+ });
368
+ }
369
+
370
+ // src/modules/network-model/staticRest/layout/chainParamsRules.ts
371
+ import {
372
+ adjudicableRuleId,
373
+ isRuleObservedAt,
374
+ reportableRuleId,
375
+ ruleActivationStateAt
376
+ } from "#protocol-model";
377
+ function isOffenseReportableAt(params, offense, height) {
378
+ return isRuleObservedAt(params, reportableRuleId(offense), height);
379
+ }
380
+ function offenseAdjudicationStateAt(params, offense, height) {
381
+ return ruleActivationStateAt(params, adjudicableRuleId(offense), height);
382
+ }
383
+ function protocolMinAt(params, height) {
384
+ return isRuleObservedAt(params, "anchor-rules", height) ? params.protocolMin : void 0;
385
+ }
386
+ function chainParamsSuccessionErrors(previous, next, finalizedHeight) {
387
+ if (previous === void 0) return [];
388
+ const errors = [];
389
+ if (next.version <= previous.version) {
390
+ errors.push(`version must increase: ${previous.version} -> ${next.version}`);
391
+ }
392
+ if (next.chainId !== previous.chainId) {
393
+ errors.push(`chainId must not change: ${previous.chainId} -> ${next.chainId}`);
394
+ }
395
+ for (const [ruleId, height] of Object.entries(previous.activations)) {
396
+ if (height > finalizedHeight) continue;
397
+ if (next.activations[ruleId] !== height) {
398
+ errors.push(`activation for '${ruleId}' is already in force at ${height} and must not move`);
399
+ }
400
+ }
401
+ for (const [ruleId, height] of Object.entries(next.deactivations ?? {})) {
402
+ if (height < finalizedHeight) {
403
+ errors.push(`deactivation for '${ruleId}' at ${height} is in the past`);
404
+ }
405
+ }
406
+ return errors;
407
+ }
408
+
263
409
  // src/modules/network-model/staticRest/layout/evmEventIndex.ts
264
410
  import {
265
411
  EthAddressZod,
266
412
  HexRegExMinMaxMixedCaseWithPrefix,
267
- zodAsFactory as zodAsFactory3
413
+ zodAsFactory as zodAsFactory4
268
414
  } from "@ariestools/sdk";
269
- import { z as z3 } from "zod/mini";
270
- var EvmHashZod = z3.string().check(z3.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)));
271
- var EvmDataZod = z3.string().check(z3.regex(/^0x[\dA-Fa-f]*$/));
272
- var EvmEventIndexLogZod = z3.object({
415
+ import { z as z4 } from "zod/mini";
416
+ var EvmHashZod = z4.string().check(z4.regex(HexRegExMinMaxMixedCaseWithPrefix(32, 32)));
417
+ var EvmDataZod = z4.string().check(z4.regex(/^0x[\dA-Fa-f]*$/));
418
+ var EvmEventIndexLogZod = z4.object({
273
419
  address: EthAddressZod,
274
420
  blockHash: EvmHashZod,
275
- blockNumber: z3.number(),
421
+ blockNumber: z4.number(),
276
422
  data: EvmDataZod,
277
- index: z3.number(),
278
- topics: z3.array(EvmHashZod),
423
+ index: z4.number(),
424
+ topics: z4.array(EvmHashZod),
279
425
  transactionHash: EvmHashZod,
280
- transactionIndex: z3.number()
426
+ transactionIndex: z4.number()
281
427
  });
282
- var EvmEventIndexFrameZod = z3.object({
283
- fromBlock: z3.number(),
284
- logs: z3.array(EvmEventIndexLogZod),
285
- toBlock: z3.number()
428
+ var EvmEventIndexFrameZod = z4.object({
429
+ fromBlock: z4.number(),
430
+ logs: z4.array(EvmEventIndexLogZod),
431
+ toBlock: z4.number()
286
432
  });
287
- var EvmEventIndexManifestZod = z3.object({
433
+ var EvmEventIndexManifestZod = z4.object({
288
434
  address: EthAddressZod,
289
- chainId: z3.string(),
290
- deploymentBlock: z3.number(),
291
- frameSize: z3.number(),
292
- layout: z3.literal("evm-contract-events-v1")
435
+ chainId: z4.string(),
436
+ deploymentBlock: z4.number(),
437
+ frameSize: z4.number(),
438
+ layout: z4.literal("evm-contract-events-v1")
293
439
  });
294
- var EvmEventIndexHeadZod = z3.object({
440
+ var EvmEventIndexHeadZod = z4.object({
295
441
  address: EthAddressZod,
296
- block: z3.number(),
297
- chainId: z3.string(),
442
+ block: z4.number(),
443
+ chainId: z4.string(),
298
444
  hash: EvmHashZod
299
445
  });
300
- var asEvmEventIndexFrame = zodAsFactory3(EvmEventIndexFrameZod, "asEvmEventIndexFrame");
301
- var asEvmEventIndexHead = zodAsFactory3(EvmEventIndexHeadZod, "asEvmEventIndexHead");
302
- var asEvmEventIndexManifest = zodAsFactory3(EvmEventIndexManifestZod, "asEvmEventIndexManifest");
446
+ var asEvmEventIndexFrame = zodAsFactory4(EvmEventIndexFrameZod, "asEvmEventIndexFrame");
447
+ var asEvmEventIndexHead = zodAsFactory4(EvmEventIndexHeadZod, "asEvmEventIndexHead");
448
+ var asEvmEventIndexManifest = zodAsFactory4(EvmEventIndexManifestZod, "asEvmEventIndexManifest");
303
449
 
304
450
  // src/modules/network-model/staticRest/layout/indexManifest.ts
305
451
  import {
306
- zodAsFactory as zodAsFactory4,
307
- zodIsFactory as zodIsFactory3,
308
- zodToFactory as zodToFactory3
452
+ zodAsFactory as zodAsFactory5,
453
+ zodIsFactory as zodIsFactory4,
454
+ zodToFactory as zodToFactory4
309
455
  } from "@ariestools/sdk";
310
- import { z as z4 } from "zod";
456
+ import { z as z5 } from "zod";
311
457
  var INDEX_LAYOUT_VERSION = 1;
312
458
  var IndexManifestSchema = "network.xyo.s3.index.manifest";
313
459
  var IndexHeadSchema = "network.xyo.s3.index.head";
314
- var IndexManifestFamilyZod = z4.object({
460
+ var IndexManifestFamilyZod = z5.object({
315
461
  /** Highest step level published for this family. */
316
- maxStep: z4.int().nonnegative(),
462
+ maxStep: z5.int().nonnegative(),
317
463
  /** Path template for the family's frames, e.g. `blocks/{level}/{index}.json`. */
318
- path: z4.string()
464
+ path: z5.string()
319
465
  });
320
- var indexFamiliesZod = z4.object({
466
+ var indexFamiliesZod = z5.object({
321
467
  balances: IndexManifestFamilyZod,
322
468
  blocks: IndexManifestFamilyZod,
323
469
  schemas: IndexManifestFamilyZod,
324
470
  transfers: IndexManifestFamilyZod
325
471
  });
326
- var IndexManifestZod = z4.object({
472
+ var IndexManifestZod = z5.object({
327
473
  families: indexFamiliesZod,
328
- schema: z4.literal(IndexManifestSchema),
329
- version: z4.int().positive()
474
+ schema: z5.literal(IndexManifestSchema),
475
+ version: z5.int().positive()
330
476
  });
331
- var isIndexManifest = zodIsFactory3(IndexManifestZod);
332
- var asIndexManifest = zodAsFactory4(IndexManifestZod, "asIndexManifest");
333
- var toIndexManifest = zodToFactory3(IndexManifestZod, "toIndexManifest");
334
- var IndexHeadFamiliesZod = z4.object({
335
- balances: z4.int().nonnegative(),
336
- blocks: z4.int().nonnegative(),
337
- schemas: z4.int().nonnegative(),
338
- transfers: z4.int().nonnegative()
477
+ var isIndexManifest = zodIsFactory4(IndexManifestZod);
478
+ var asIndexManifest = zodAsFactory5(IndexManifestZod, "asIndexManifest");
479
+ var toIndexManifest = zodToFactory4(IndexManifestZod, "toIndexManifest");
480
+ var IndexHeadFamiliesZod = z5.object({
481
+ balances: z5.int().nonnegative(),
482
+ blocks: z5.int().nonnegative(),
483
+ schemas: z5.int().nonnegative(),
484
+ transfers: z5.int().nonnegative()
339
485
  });
340
- var IndexHeadZod = z4.object({
486
+ var IndexHeadZod = z5.object({
341
487
  /** Highest block the index is complete through. */
342
- block: z4.int().nonnegative(),
488
+ block: z5.int().nonnegative(),
343
489
  /** Completed frame counts per family. */
344
490
  families: IndexHeadFamiliesZod,
345
491
  /** Hash of that block. */
346
- hash: z4.string(),
347
- schema: z4.literal(IndexHeadSchema),
492
+ hash: z5.string(),
493
+ schema: z5.literal(IndexHeadSchema),
348
494
  /** ISO-8601 timestamp of the last update. */
349
- updatedAt: z4.string(),
350
- version: z4.int().positive()
495
+ updatedAt: z5.string(),
496
+ version: z5.int().positive()
351
497
  });
352
- var isIndexHead = zodIsFactory3(IndexHeadZod);
353
- var asIndexHead = zodAsFactory4(IndexHeadZod, "asIndexHead");
354
- var toIndexHead = zodToFactory3(IndexHeadZod, "toIndexHead");
498
+ var isIndexHead = zodIsFactory4(IndexHeadZod);
499
+ var asIndexHead = zodAsFactory5(IndexHeadZod, "asIndexHead");
500
+ var toIndexHead = zodToFactory4(IndexHeadZod, "toIndexHead");
355
501
  function createIndexManifestFamilies(maxSteps) {
356
502
  return {
357
503
  balances: { maxStep: maxSteps.balances, path: indexSummaryPathTemplate("balances") },
@@ -383,84 +529,84 @@ function createIndexHead(watermark, updatedAt) {
383
529
  // src/modules/network-model/staticRest/layout/networkStakeRewardsIndex.ts
384
530
  import {
385
531
  HashZod,
386
- zodAsFactory as zodAsFactory5,
387
- zodIsFactory as zodIsFactory4
532
+ zodAsFactory as zodAsFactory6,
533
+ zodIsFactory as zodIsFactory5
388
534
  } from "@ariestools/sdk";
389
- import { asSchema as asSchema2 } from "@xyo-network/sdk";
390
- import { z as z5 } from "zod";
535
+ import { asSchema as asSchema3 } from "@xyo-network/sdk";
536
+ import { z as z6 } from "zod";
391
537
  var NETWORK_STAKE_REWARDS_INDEX_LAYOUT = "network-stake-rewards-v1";
392
538
  var NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY = "unmultiplied-v1";
393
539
  var NETWORK_STAKE_REWARDS_BASE_POLICY = NETWORK_STAKE_REWARDS_UNMULTIPLIED_POLICY;
394
- var NetworkStakeRewardsIndexSnapshotSchema = asSchema2("network.xyo.chain.stake.rewards.snapshot", true);
395
- var DecimalBigIntZod = z5.string().regex(/^(?:0|[1-9]\d*)$/);
396
- var NetworkStakeRewardsPolicyIdZod = z5.string().regex(/^[a-z0-9][a-z0-9._-]*$/);
397
- var PositionRewardsZod = z5.record(z5.string().regex(/^(?:0|[1-9]\d*)$/), DecimalBigIntZod);
398
- var BlockRangeZod = z5.tuple([z5.number().int().nonnegative(), z5.number().int().nonnegative()]);
399
- var StepIdentityJsonZod = z5.object({
400
- block: z5.number().int().nonnegative(),
401
- step: z5.number().int().nonnegative()
540
+ var NetworkStakeRewardsIndexSnapshotSchema = asSchema3("network.xyo.chain.stake.rewards.snapshot", true);
541
+ var DecimalBigIntZod = z6.string().regex(/^(?:0|[1-9]\d*)$/);
542
+ var NetworkStakeRewardsPolicyIdZod = z6.string().regex(/^[a-z0-9][a-z0-9._-]*$/);
543
+ var PositionRewardsZod = z6.record(z6.string().regex(/^(?:0|[1-9]\d*)$/), DecimalBigIntZod);
544
+ var BlockRangeZod = z6.tuple([z6.number().int().nonnegative(), z6.number().int().nonnegative()]);
545
+ var StepIdentityJsonZod = z6.object({
546
+ block: z6.number().int().nonnegative(),
547
+ step: z6.number().int().nonnegative()
402
548
  });
403
- var NetworkStakeRewardsIndexManifestZod = z5.object({
404
- evmAddress: z5.string(),
405
- evmChainId: z5.string(),
406
- layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
549
+ var NetworkStakeRewardsIndexManifestZod = z6.object({
550
+ evmAddress: z6.string(),
551
+ evmChainId: z6.string(),
552
+ layout: z6.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
407
553
  policyId: NetworkStakeRewardsPolicyIdZod,
408
- stepLevels: z5.array(z5.number().int().nonnegative()),
409
- timeAnchor: z5.object({
410
- externalGenesisTime: z5.number().optional(),
411
- maxScanBlocks: z5.number().optional()
554
+ stepLevels: z6.array(z6.number().int().nonnegative()),
555
+ timeAnchor: z6.object({
556
+ externalGenesisTime: z6.number().optional(),
557
+ maxScanBlocks: z6.number().optional()
412
558
  }).optional()
413
559
  });
414
- var NetworkStakeRewardsIndexStepZod = z5.object({
560
+ var NetworkStakeRewardsIndexStepZod = z6.object({
415
561
  denominator: DecimalBigIntZod,
416
562
  externalRange: BlockRangeZod,
417
- layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
563
+ layout: z6.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
418
564
  policyId: NetworkStakeRewardsPolicyIdZod,
419
565
  positionRewards: PositionRewardsZod,
420
566
  step: StepIdentityJsonZod,
421
567
  totalReward: DecimalBigIntZod,
422
568
  xl1Range: BlockRangeZod
423
569
  });
424
- var NetworkStakeRewardsIndexSnapshotZod = z5.object({
425
- layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
570
+ var NetworkStakeRewardsIndexSnapshotZod = z6.object({
571
+ layout: z6.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
426
572
  policyId: NetworkStakeRewardsPolicyIdZod,
427
573
  positionRewards: PositionRewardsZod,
428
- schema: z5.literal(NetworkStakeRewardsIndexSnapshotSchema),
429
- stepCount: z5.number().int().nonnegative(),
574
+ schema: z6.literal(NetworkStakeRewardsIndexSnapshotSchema),
575
+ stepCount: z6.number().int().nonnegative(),
430
576
  totalReward: DecimalBigIntZod
431
577
  });
432
- var NetworkStakeRewardsIndexHeadZod = z5.object({
433
- layout: z5.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
578
+ var NetworkStakeRewardsIndexHeadZod = z6.object({
579
+ layout: z6.literal(NETWORK_STAKE_REWARDS_INDEX_LAYOUT),
434
580
  policyId: NetworkStakeRewardsPolicyIdZod,
435
- positionCount: z5.number().int().nonnegative(),
436
- processedThroughBlock: z5.number().int().nonnegative(),
581
+ positionCount: z6.number().int().nonnegative(),
582
+ processedThroughBlock: z6.number().int().nonnegative(),
437
583
  snapshotHash: HashZod,
438
- source: z5.object({
439
- evm: z5.object({
440
- block: z5.number().int().nonnegative(),
441
- hash: z5.string()
584
+ source: z6.object({
585
+ evm: z6.object({
586
+ block: z6.number().int().nonnegative(),
587
+ hash: z6.string()
442
588
  }),
443
- xl1: z5.object({
444
- block: z5.number().int().nonnegative(),
445
- hash: z5.string()
589
+ xl1: z6.object({
590
+ block: z6.number().int().nonnegative(),
591
+ hash: z6.string()
446
592
  })
447
593
  }),
448
- stepCount: z5.number().int().nonnegative()
594
+ stepCount: z6.number().int().nonnegative()
449
595
  });
450
- var isNetworkStakeRewardsIndexManifest = zodIsFactory4(NetworkStakeRewardsIndexManifestZod);
451
- var asNetworkStakeRewardsIndexManifest = zodAsFactory5(
596
+ var isNetworkStakeRewardsIndexManifest = zodIsFactory5(NetworkStakeRewardsIndexManifestZod);
597
+ var asNetworkStakeRewardsIndexManifest = zodAsFactory6(
452
598
  NetworkStakeRewardsIndexManifestZod,
453
599
  "asNetworkStakeRewardsIndexManifest"
454
600
  );
455
- var asNetworkStakeRewardsIndexStep = zodAsFactory5(
601
+ var asNetworkStakeRewardsIndexStep = zodAsFactory6(
456
602
  NetworkStakeRewardsIndexStepZod,
457
603
  "asNetworkStakeRewardsIndexStep"
458
604
  );
459
- var asNetworkStakeRewardsIndexSnapshot = zodAsFactory5(
605
+ var asNetworkStakeRewardsIndexSnapshot = zodAsFactory6(
460
606
  NetworkStakeRewardsIndexSnapshotZod,
461
607
  "asNetworkStakeRewardsIndexSnapshot"
462
608
  );
463
- var asNetworkStakeRewardsIndexHead = zodAsFactory5(
609
+ var asNetworkStakeRewardsIndexHead = zodAsFactory6(
464
610
  NetworkStakeRewardsIndexHeadZod,
465
611
  "asNetworkStakeRewardsIndexHead"
466
612
  );
@@ -468,48 +614,48 @@ var asNetworkStakeRewardsIndexHead = zodAsFactory5(
468
614
  // src/modules/network-model/staticRest/layout/transactionInclusionIndex.ts
469
615
  import {
470
616
  HashZod as HashZod2,
471
- zodAsFactory as zodAsFactory6,
472
- zodIsFactory as zodIsFactory5,
473
- zodToFactory as zodToFactory4
617
+ zodAsFactory as zodAsFactory7,
618
+ zodIsFactory as zodIsFactory6,
619
+ zodToFactory as zodToFactory5
474
620
  } from "@ariestools/sdk";
475
- import { z as z6 } from "zod";
476
- import { ChainIdZod as ChainIdZod2, XL1BlockNumberZod } from "#protocol-model";
621
+ import { z as z7 } from "zod";
622
+ import { ChainIdZod as ChainIdZod3, XL1BlockNumberZod } from "#protocol-model";
477
623
  var TRANSACTION_INCLUSION_INDEX_LAYOUT = "transaction-inclusions-v1";
478
- var TransactionInclusionManifestZod = z6.object({
624
+ var TransactionInclusionManifestZod = z7.object({
479
625
  /** XL1 chain whose finalized transactions are indexed. */
480
- chain: ChainIdZod2,
626
+ chain: ChainIdZod3,
481
627
  /** Versioned layout identifier. */
482
- layout: z6.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),
628
+ layout: z7.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT),
483
629
  /** Hash-addressed path template, for example `transactions/by-hash/{hash}.json`. */
484
- path: z6.string()
630
+ path: z7.string()
485
631
  });
486
- var TransactionInclusionHeadZod = z6.object({
632
+ var TransactionInclusionHeadZod = z7.object({
487
633
  /** Highest finalized block fully represented by the lookup. */
488
634
  block: XL1BlockNumberZod,
489
635
  /** Hash of the highest finalized block fully represented by the lookup. */
490
636
  blockHash: HashZod2,
491
637
  /** XL1 chain whose finalized transactions are indexed. */
492
- chain: ChainIdZod2,
638
+ chain: ChainIdZod3,
493
639
  /** Number of transaction-inclusion records represented through `block`. */
494
- entries: z6.int().nonnegative(),
640
+ entries: z7.int().nonnegative(),
495
641
  /** Versioned layout identifier. */
496
- layout: z6.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT)
642
+ layout: z7.literal(TRANSACTION_INCLUSION_INDEX_LAYOUT)
497
643
  });
498
- var isTransactionInclusionManifest = zodIsFactory5(TransactionInclusionManifestZod);
499
- var asTransactionInclusionManifest = zodAsFactory6(
644
+ var isTransactionInclusionManifest = zodIsFactory6(TransactionInclusionManifestZod);
645
+ var asTransactionInclusionManifest = zodAsFactory7(
500
646
  TransactionInclusionManifestZod,
501
647
  "asTransactionInclusionManifest"
502
648
  );
503
- var toTransactionInclusionManifest = zodToFactory4(
649
+ var toTransactionInclusionManifest = zodToFactory5(
504
650
  TransactionInclusionManifestZod,
505
651
  "toTransactionInclusionManifest"
506
652
  );
507
- var isTransactionInclusionHead = zodIsFactory5(TransactionInclusionHeadZod);
508
- var asTransactionInclusionHead = zodAsFactory6(
653
+ var isTransactionInclusionHead = zodIsFactory6(TransactionInclusionHeadZod);
654
+ var asTransactionInclusionHead = zodAsFactory7(
509
655
  TransactionInclusionHeadZod,
510
656
  "asTransactionInclusionHead"
511
657
  );
512
- var toTransactionInclusionHead = zodToFactory4(
658
+ var toTransactionInclusionHead = zodToFactory5(
513
659
  TransactionInclusionHeadZod,
514
660
  "toTransactionInclusionHead"
515
661
  );
@@ -527,6 +673,53 @@ function createTransactionInclusionHead(head) {
527
673
  }, true);
528
674
  }
529
675
 
676
+ // src/modules/network-model/staticRest/layout/trustedPosture.ts
677
+ var DEFAULT_CHAIN_PARAMS = {
678
+ attestationRewardBps: 1e3,
679
+ bountyShareBps: 1e3,
680
+ burnFloorBps: 9e3,
681
+ catalogVersion: 1,
682
+ challengeWindowEvmBlocks: 14400,
683
+ evidenceFreshnessEvmBlocks: 21600,
684
+ evidenceRetentionXl1Blocks: 6e4,
685
+ executionDelayEvmBlocks: 7200,
686
+ freshnessBandEvmBlocks: 2048,
687
+ graceBandXl1Blocks: 1440,
688
+ maturityEvmBlocks: 32,
689
+ minStakeAgeEvmBlocks: 100800,
690
+ opsAllowanceEvmBlocks: 7200,
691
+ protocolMin: 1003e3,
692
+ revealDelayEvmBlocks: 60,
693
+ revealDelayXl1Blocks: 10,
694
+ revealWindowEvmBlocks: 7200,
695
+ revealWindowXl1Blocks: 1440,
696
+ slashFractionsBps: {
697
+ "equivocation": 1500,
698
+ "false-anchor": 750,
699
+ "false-attestation": 500,
700
+ "ineligible-production": 100,
701
+ "invalid-block": 500,
702
+ "invalid-slash-request": 750,
703
+ "reward-overmint": 1500
704
+ },
705
+ slashQuorumCount: 5
706
+ };
707
+ function createTrustedPostureParams(config) {
708
+ return createChainParams({
709
+ ...DEFAULT_CHAIN_PARAMS,
710
+ activations: {},
711
+ arbiter: config.arbiter,
712
+ bountyCapAtto: config.bountyCapAtto ?? "00",
713
+ chainId: config.chainId,
714
+ minProducerSelfBondAtto: config.minProducerSelfBondAtto ?? "00",
715
+ minProducerStakeAtto: config.minProducerStakeAtto ?? "00",
716
+ minValidatorStakeAtto: config.minValidatorStakeAtto ?? "00",
717
+ reporterDepositAtto: config.reporterDepositAtto ?? "00",
718
+ rewardSource: config.rewardSource ?? "contract",
719
+ version: config.version ?? 1
720
+ });
721
+ }
722
+
530
723
  // src/modules/network-model/staticRest/paths/evmEventIndex.ts
531
724
  function root(address) {
532
725
  return `evm/events/${address.toLowerCase()}`;
@@ -623,11 +816,17 @@ var ExplorerLinks = class {
623
816
  export {
624
817
  CHAIN_CONTRACT_MANIFEST_VERSION,
625
818
  CHAIN_LAYOUT_VERSION,
819
+ CHAIN_PARAMS_VERSION,
626
820
  ChainContractManifestSchema,
627
821
  ChainContractManifestZod,
628
822
  ChainManifestPathsZod,
629
823
  ChainManifestSchema,
630
824
  ChainManifestZod,
825
+ ChainParamsHeadSchema,
826
+ ChainParamsHeadZod,
827
+ ChainParamsSchema,
828
+ ChainParamsZod,
829
+ DEFAULT_CHAIN_PARAMS,
631
830
  DefaultNetworks,
632
831
  EvmEventIndexFrameZod,
633
832
  EvmEventIndexHeadZod,
@@ -656,6 +855,7 @@ export {
656
855
  NetworkStakeRewardsIndexSnapshotZod,
657
856
  NetworkStakeRewardsIndexStepZod,
658
857
  NetworkStakeRewardsPolicyIdZod,
858
+ RuleIdZod,
659
859
  SequenceNetwork,
660
860
  testnet_default as SequenceNetworkIconString,
661
861
  TRANSACTION_INCLUSION_INDEX_LAYOUT,
@@ -663,6 +863,8 @@ export {
663
863
  TransactionInclusionManifestZod,
664
864
  asChainContractManifest,
665
865
  asChainManifest,
866
+ asChainParams,
867
+ asChainParamsHead,
666
868
  asEvmEventIndexFrame,
667
869
  asEvmEventIndexHead,
668
870
  asEvmEventIndexManifest,
@@ -681,13 +883,19 @@ export {
681
883
  blockNumberPathTemplate,
682
884
  chainContractByIdPath,
683
885
  chainManifestPathTemplates,
886
+ chainParamsHeadPath,
887
+ chainParamsSuccessionErrors,
888
+ chainParamsVersionPath,
684
889
  createChainContractManifest,
685
890
  createChainManifest,
891
+ createChainParams,
892
+ createChainParamsHead,
686
893
  createIndexHead,
687
894
  createIndexManifest,
688
895
  createIndexManifestFamilies,
689
896
  createTransactionInclusionHead,
690
897
  createTransactionInclusionManifest,
898
+ createTrustedPostureParams,
691
899
  evmEventIndexFramePath,
692
900
  evmEventIndexHeadPath,
693
901
  evmEventIndexManifestPath,
@@ -703,10 +911,13 @@ export {
703
911
  interpolatePathTemplate,
704
912
  isChainContractManifest,
705
913
  isChainManifest,
914
+ isChainParams,
915
+ isChainParamsHead,
706
916
  isIndexHead,
707
917
  isIndexManifest,
708
918
  isNetworkBootstrap,
709
919
  isNetworkStakeRewardsIndexManifest,
920
+ isOffenseReportableAt,
710
921
  isTransactionInclusionHead,
711
922
  isTransactionInclusionManifest,
712
923
  manifestPath,
@@ -714,10 +925,13 @@ export {
714
925
  networkStakeRewardsIndexManifestPath,
715
926
  networkStakeRewardsIndexSnapshotPath,
716
927
  networkStakeRewardsIndexStepPath,
928
+ offenseAdjudicationStateAt,
717
929
  payloadPath,
718
930
  payloadPathTemplate,
931
+ protocolMinAt,
719
932
  toChainContractManifest,
720
933
  toChainManifest,
934
+ toChainParams,
721
935
  toIndexHead,
722
936
  toIndexManifest,
723
937
  toPathTemplate,