@xyo-network/xl1-protocol 5.2.1 → 5.2.2

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.
@@ -7,14 +7,17 @@ export declare const AdmissionShadowReportSchema: "network.xyo.s3.admission.shad
7
7
  export type AdmissionShadowReportSchema = typeof AdmissionShadowReportSchema;
8
8
  /** What both admission gates concluded about one candidate. */
9
9
  export declare const AdmissionShadowAssessmentZod: z.ZodObject<{
10
+ activeStake: z.ZodOptional<z.ZodString>;
10
11
  admittedByAllowList: z.ZodBoolean;
11
12
  block: z.ZodInt;
12
13
  dataHash: z.ZodString;
13
14
  eStar: z.ZodOptional<z.ZodInt>;
14
15
  eligible: z.ZodOptional<z.ZodBoolean>;
16
+ intentValid: z.ZodOptional<z.ZodBoolean>;
15
17
  producer: z.ZodString;
16
18
  reason: z.ZodOptional<z.ZodString>;
17
19
  resolvable: z.ZodBoolean;
20
+ selfBond: z.ZodOptional<z.ZodString>;
18
21
  }, z.core.$strip>;
19
22
  /** What both admission gates concluded about one candidate. */
20
23
  export type AdmissionShadowAssessment = z.infer<typeof AdmissionShadowAssessmentZod>;
@@ -30,26 +33,36 @@ export type AdmissionShadowAssessment = z.infer<typeof AdmissionShadowAssessment
30
33
  */
31
34
  export declare const AdmissionShadowReportZod: z.ZodObject<{
32
35
  assessments: z.ZodArray<z.ZodObject<{
36
+ activeStake: z.ZodOptional<z.ZodString>;
33
37
  admittedByAllowList: z.ZodBoolean;
34
38
  block: z.ZodInt;
35
39
  dataHash: z.ZodString;
36
40
  eStar: z.ZodOptional<z.ZodInt>;
37
41
  eligible: z.ZodOptional<z.ZodBoolean>;
42
+ intentValid: z.ZodOptional<z.ZodBoolean>;
38
43
  producer: z.ZodString;
39
44
  reason: z.ZodOptional<z.ZodString>;
40
45
  resolvable: z.ZodBoolean;
46
+ selfBond: z.ZodOptional<z.ZodString>;
41
47
  }, z.core.$strip>>;
42
48
  divergent: z.ZodArray<z.ZodObject<{
49
+ activeStake: z.ZodOptional<z.ZodString>;
43
50
  admittedByAllowList: z.ZodBoolean;
44
51
  block: z.ZodInt;
45
52
  dataHash: z.ZodString;
46
53
  eStar: z.ZodOptional<z.ZodInt>;
47
54
  eligible: z.ZodOptional<z.ZodBoolean>;
55
+ intentValid: z.ZodOptional<z.ZodBoolean>;
48
56
  producer: z.ZodString;
49
57
  reason: z.ZodOptional<z.ZodString>;
50
58
  resolvable: z.ZodBoolean;
59
+ selfBond: z.ZodOptional<z.ZodString>;
51
60
  }, z.core.$strip>>;
52
61
  head: z.ZodInt;
62
+ mode: z.ZodOptional<z.ZodEnum<{
63
+ shadow: "shadow";
64
+ enforce: "enforce";
65
+ }>>;
53
66
  previous: z.ZodOptional<z.ZodInt>;
54
67
  schema: z.ZodLiteral<"network.xyo.s3.admission.shadow" & {
55
68
  readonly __schema: true;
@@ -65,9 +78,12 @@ export declare const isAdmissionShadowReport: <T>(value: T) => value is T & {
65
78
  dataHash: string;
66
79
  producer: string;
67
80
  resolvable: boolean;
81
+ activeStake?: string | undefined;
68
82
  eStar?: number | undefined;
69
83
  eligible?: boolean | undefined;
84
+ intentValid?: boolean | undefined;
70
85
  reason?: string | undefined;
86
+ selfBond?: string | undefined;
71
87
  }[];
72
88
  divergent: {
73
89
  admittedByAllowList: boolean;
@@ -75,14 +91,18 @@ export declare const isAdmissionShadowReport: <T>(value: T) => value is T & {
75
91
  dataHash: string;
76
92
  producer: string;
77
93
  resolvable: boolean;
94
+ activeStake?: string | undefined;
78
95
  eStar?: number | undefined;
79
96
  eligible?: boolean | undefined;
97
+ intentValid?: boolean | undefined;
80
98
  reason?: string | undefined;
99
+ selfBond?: string | undefined;
81
100
  }[];
82
101
  head: number;
83
102
  schema: "network.xyo.s3.admission.shadow" & {
84
103
  readonly __schema: true;
85
104
  };
105
+ mode?: "shadow" | "enforce" | undefined;
86
106
  previous?: number | undefined;
87
107
  };
88
108
  /** Converts a value to AdmissionShadowReportDocument, throwing if invalid. */
@@ -94,9 +114,12 @@ export declare const asAdmissionShadowReport: {
94
114
  dataHash: string;
95
115
  producer: string;
96
116
  resolvable: boolean;
117
+ activeStake?: string | undefined;
97
118
  eStar?: number | undefined;
98
119
  eligible?: boolean | undefined;
120
+ intentValid?: boolean | undefined;
99
121
  reason?: string | undefined;
122
+ selfBond?: string | undefined;
100
123
  }[];
101
124
  divergent: {
102
125
  admittedByAllowList: boolean;
@@ -104,14 +127,18 @@ export declare const asAdmissionShadowReport: {
104
127
  dataHash: string;
105
128
  producer: string;
106
129
  resolvable: boolean;
130
+ activeStake?: string | undefined;
107
131
  eStar?: number | undefined;
108
132
  eligible?: boolean | undefined;
133
+ intentValid?: boolean | undefined;
109
134
  reason?: string | undefined;
135
+ selfBond?: string | undefined;
110
136
  }[];
111
137
  head: number;
112
138
  schema: "network.xyo.s3.admission.shadow" & {
113
139
  readonly __schema: true;
114
140
  };
141
+ mode?: "shadow" | "enforce" | undefined;
115
142
  previous?: number | undefined;
116
143
  }) | undefined;
117
144
  <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
@@ -121,9 +148,12 @@ export declare const asAdmissionShadowReport: {
121
148
  dataHash: string;
122
149
  producer: string;
123
150
  resolvable: boolean;
151
+ activeStake?: string | undefined;
124
152
  eStar?: number | undefined;
125
153
  eligible?: boolean | undefined;
154
+ intentValid?: boolean | undefined;
126
155
  reason?: string | undefined;
156
+ selfBond?: string | undefined;
127
157
  }[];
128
158
  divergent: {
129
159
  admittedByAllowList: boolean;
@@ -131,17 +161,21 @@ export declare const asAdmissionShadowReport: {
131
161
  dataHash: string;
132
162
  producer: string;
133
163
  resolvable: boolean;
164
+ activeStake?: string | undefined;
134
165
  eStar?: number | undefined;
135
166
  eligible?: boolean | undefined;
167
+ intentValid?: boolean | undefined;
136
168
  reason?: string | undefined;
169
+ selfBond?: string | undefined;
137
170
  }[];
138
171
  head: number;
139
172
  schema: "network.xyo.s3.admission.shadow" & {
140
173
  readonly __schema: true;
141
174
  };
175
+ mode?: "shadow" | "enforce" | undefined;
142
176
  previous?: number | undefined;
143
177
  };
144
178
  };
145
179
  /** Builds a validated admission shadow report. */
146
- export declare function createAdmissionShadowReport(head: number, assessments: AdmissionShadowAssessment[], divergent: AdmissionShadowAssessment[], previous?: number): AdmissionShadowReportDocument;
180
+ export declare function createAdmissionShadowReport(head: number, assessments: AdmissionShadowAssessment[], divergent: AdmissionShadowAssessment[], previous?: number, mode?: AdmissionShadowReportDocument['mode']): AdmissionShadowReportDocument;
147
181
  //# sourceMappingURL=admissionShadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admissionShadow.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/admissionShadow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,yDAAyD;AACzD,eAAO,MAAM,2BAA2B;;CAAoD,CAAA;AAC5F,2DAA2D;AAC3D,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAA;AAE5E,+DAA+D;AAC/D,eAAO,MAAM,4BAA4B;;;;;;;;;iBAiBvC,CAAA;AAEF,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUnC,CAAA;AAEF,+CAA+C;AAC/C,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEpF,kFAAkF;AAClF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyC,CAAA;AAC7E,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoE,CAAA;AAExG,kDAAkD;AAClD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,yBAAyB,EAAE,EACxC,SAAS,EAAE,yBAAyB,EAAE,EACtC,QAAQ,CAAC,EAAE,MAAM,GAChB,6BAA6B,CAI/B"}
1
+ {"version":3,"file":"admissionShadow.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/admissionShadow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,yDAAyD;AACzD,eAAO,MAAM,2BAA2B;;CAAoD,CAAA;AAC5F,2DAA2D;AAC3D,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAA;AAE5E,+DAA+D;AAC/D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;iBAuBvC,CAAA;AAEF,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYnC,CAAA;AAEF,+CAA+C;AAC/C,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEpF,kFAAkF;AAClF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyC,CAAA;AAC7E,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoE,CAAA;AAExG,kDAAkD;AAClD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,yBAAyB,EAAE,EACxC,SAAS,EAAE,yBAAyB,EAAE,EACtC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC3C,6BAA6B,CAI/B"}
@@ -17,6 +17,8 @@ export declare const RuleIdZod: z.ZodEnum<{
17
17
  "eligibility-admission": "eligibility-admission";
18
18
  "attestation-admission": "attestation-admission";
19
19
  "certificate-execution": "certificate-execution";
20
+ "fork-choice-v2": "fork-choice-v2";
21
+ "bridge-value-ceiling": "bridge-value-ceiling";
20
22
  "equivocation.reportable": "equivocation.reportable";
21
23
  "invalid-block.reportable": "invalid-block.reportable";
22
24
  "reward-overmint.reportable": "reward-overmint.reportable";
@@ -49,6 +51,8 @@ export declare const ChainParamsZod: z.ZodObject<{
49
51
  "eligibility-admission": "eligibility-admission";
50
52
  "attestation-admission": "attestation-admission";
51
53
  "certificate-execution": "certificate-execution";
54
+ "fork-choice-v2": "fork-choice-v2";
55
+ "bridge-value-ceiling": "bridge-value-ceiling";
52
56
  "equivocation.reportable": "equivocation.reportable";
53
57
  "invalid-block.reportable": "invalid-block.reportable";
54
58
  "reward-overmint.reportable": "reward-overmint.reportable";
@@ -81,6 +85,8 @@ export declare const ChainParamsZod: z.ZodObject<{
81
85
  "eligibility-admission": "eligibility-admission";
82
86
  "attestation-admission": "attestation-admission";
83
87
  "certificate-execution": "certificate-execution";
88
+ "fork-choice-v2": "fork-choice-v2";
89
+ "bridge-value-ceiling": "bridge-value-ceiling";
84
90
  "equivocation.reportable": "equivocation.reportable";
85
91
  "invalid-block.reportable": "invalid-block.reportable";
86
92
  "reward-overmint.reportable": "reward-overmint.reportable";
@@ -138,7 +144,7 @@ export type ChainParams = z.infer<typeof ChainParamsZod>;
138
144
  export type ChainParamsInput = z.input<typeof ChainParamsZod>;
139
145
  /** Type guard that checks if a value is a valid ChainParams. */
140
146
  export declare const isChainParams: <T>(value: T) => value is T & {
141
- activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
147
+ activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
142
148
  arbiter: string;
143
149
  attestationRewardBps: number;
144
150
  bountyCapAtto: string;
@@ -171,12 +177,12 @@ export declare const isChainParams: <T>(value: T) => value is T & {
171
177
  slashFractionsBps: Partial<Record<"equivocation" | "invalid-block" | "reward-overmint" | "false-anchor" | "ineligible-production" | "invalid-slash-request" | "false-attestation", number>>;
172
178
  slashQuorumCount: number;
173
179
  version: number;
174
- deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
180
+ deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
175
181
  };
176
182
  /** Converts a value to ChainParams, throwing if invalid. */
177
183
  export declare const asChainParams: {
178
184
  <T>(value: T): (T & {
179
- activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
185
+ activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
180
186
  arbiter: string;
181
187
  attestationRewardBps: number;
182
188
  bountyCapAtto: string;
@@ -209,10 +215,10 @@ export declare const asChainParams: {
209
215
  slashFractionsBps: Partial<Record<"equivocation" | "invalid-block" | "reward-overmint" | "false-anchor" | "ineligible-production" | "invalid-slash-request" | "false-attestation", number>>;
210
216
  slashQuorumCount: number;
211
217
  version: number;
212
- deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
218
+ deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
213
219
  }) | undefined;
214
220
  <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
215
- activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
221
+ activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
216
222
  arbiter: string;
217
223
  attestationRewardBps: number;
218
224
  bountyCapAtto: string;
@@ -245,13 +251,13 @@ export declare const asChainParams: {
245
251
  slashFractionsBps: Partial<Record<"equivocation" | "invalid-block" | "reward-overmint" | "false-anchor" | "ineligible-production" | "invalid-slash-request" | "false-attestation", number>>;
246
252
  slashQuorumCount: number;
247
253
  version: number;
248
- deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
254
+ deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
249
255
  };
250
256
  };
251
257
  /** Non-validating cast to ChainParams. */
252
258
  export declare const toChainParams: {
253
259
  (value: unknown): {
254
- activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
260
+ activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
255
261
  arbiter: string;
256
262
  attestationRewardBps: number;
257
263
  bountyCapAtto: string;
@@ -284,10 +290,10 @@ export declare const toChainParams: {
284
290
  slashFractionsBps: Partial<Record<"equivocation" | "invalid-block" | "reward-overmint" | "false-anchor" | "ineligible-production" | "invalid-slash-request" | "false-attestation", number>>;
285
291
  slashQuorumCount: number;
286
292
  version: number;
287
- deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
293
+ deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
288
294
  } | undefined;
289
295
  (value: unknown, assert: import("@ariestools/sdk").ZodFactoryConfig): {
290
- activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
296
+ activations: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>>;
291
297
  arbiter: string;
292
298
  attestationRewardBps: number;
293
299
  bountyCapAtto: string;
@@ -320,7 +326,7 @@ export declare const toChainParams: {
320
326
  slashFractionsBps: Partial<Record<"equivocation" | "invalid-block" | "reward-overmint" | "false-anchor" | "ineligible-production" | "invalid-slash-request" | "false-attestation", number>>;
321
327
  slashQuorumCount: number;
322
328
  version: number;
323
- deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
329
+ deactivations?: Partial<Record<"intent-binding" | "anchor-rules" | "single-signer" | "supersedes-field" | "slash-payloads" | "eligibility-admission" | "attestation-admission" | "certificate-execution" | "fork-choice-v2" | "bridge-value-ceiling" | "equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable", number>> | undefined;
324
330
  };
325
331
  };
326
332
  /** Schema id for the register head pointer. */
@@ -1 +1 @@
1
- {"version":3,"file":"chainParams.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/chainParams.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB;;CAAgD,CAAA;AAC9E,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAKrC,wCAAwC;AACxC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;EAAkB,CAAA;AAKxC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgEzB,CAAA;AAEF,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAExD,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE7D,gEAAgE;AAChE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA+B,CAAA;AACzD,4DAA4D;AAC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAA;AAC1E,0CAA0C;AAC1C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAA;AAE1E,+CAA+C;AAC/C,eAAO,MAAM,qBAAqB;;CAAqD,CAAA;AACvF,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA;AAEhE,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAA;AAEF,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB;;;;;;CAAmC,CAAA;AACjE,gEAAgE;AAChE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAAwD,CAAA;AAEtF,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,WAAW,CAEvF;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAIpF"}
1
+ {"version":3,"file":"chainParams.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/chainParams.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB;;CAAgD,CAAA;AAC9E,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAKrC,wCAAwC;AACxC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;EAAkB,CAAA;AAKxC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgEzB,CAAA;AAEF,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAExD,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE7D,gEAAgE;AAChE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA+B,CAAA;AACzD,4DAA4D;AAC5D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAA;AAC1E,0CAA0C;AAC1C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAA;AAE1E,+CAA+C;AAC/C,eAAO,MAAM,qBAAqB;;CAAqD,CAAA;AACvF,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA;AAEhE,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAA;AAEF,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB;;;;;;CAAmC,CAAA;AACjE,gEAAgE;AAChE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAAwD,CAAA;AAEtF,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,WAAW,CAEvF;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAIpF"}
@@ -27,10 +27,25 @@ export declare function protocolMinAt(params: ChainParams, height: number): numb
27
27
  * The register is append-only over history: a version may add rules and move future heights, but
28
28
  * never rewrite what was true at a height the chain has already passed. Without that, a rule
29
29
  * could be made retroactive and blocks that were valid when produced would become offenses.
30
+ *
31
+ * The one sanctioned rewrite is re-activation. A rule whose deactivation the chain has passed may
32
+ * return at a new future height, and the spent deactivation is dropped in the same version — the
33
+ * heights between read as unenforced either way, and only-forward moves mean history can never be
34
+ * judged more strictly than it was lived.
30
35
  * @param previous The currently published version, when there is one
31
36
  * @param next The version being published
32
37
  * @param finalizedHeight The current finalized head height
33
38
  * @returns The reasons the version may not be published, empty when it may
34
39
  */
35
40
  export declare function chainParamsSuccessionErrors(previous: ChainParams | undefined, next: ChainParams, finalizedHeight: number): string[];
41
+ /**
42
+ * Checks the relationships a register version's economics must hold on their own (yellow §11.2).
43
+ *
44
+ * Only register-derivable checks live here. The withdrawal-delay inequality needs the staking
45
+ * contract's delay, so it belongs to the governance runbook that sets these numbers, not to a
46
+ * document check every reader can run.
47
+ * @param params The version being judged
48
+ * @returns The reasons the version is internally inconsistent, empty when it is sound
49
+ */
50
+ export declare function chainParamsInvariantErrors(params: ChainParams): string[];
36
51
  //# sourceMappingURL=chainParamsRules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chainParamsRules.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/chainParamsRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAAE,mBAAmB,EACjC,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAExG;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,GACb,mBAAmB,CAErB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,IAAI,EAAE,WAAW,EACjB,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAqBV"}
1
+ {"version":3,"file":"chainParamsRules.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/network-model/staticRest/layout/chainParamsRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAAE,mBAAmB,EACjC,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAExG;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,GACb,mBAAmB,CAErB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,IAAI,EAAE,WAAW,EACjB,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAwCV;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAmBxE"}
@@ -10,7 +10,7 @@ import type { OffenseCode } from './OffenseCode.js';
10
10
  * This list lives beside the offense codes rather than with the register, because in-block
11
11
  * validators have to name rules without depending on the register document's shape.
12
12
  */
13
- export declare const RuleIds: readonly ["intent-binding", "anchor-rules", "single-signer", "supersedes-field", "slash-payloads", "eligibility-admission", "attestation-admission", "certificate-execution", ...("equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable")[]];
13
+ export declare const RuleIds: readonly ["intent-binding", "anchor-rules", "single-signer", "supersedes-field", "slash-payloads", "eligibility-admission", "attestation-admission", "certificate-execution", "fork-choice-v2", "bridge-value-ceiling", ...("equivocation.reportable" | "invalid-block.reportable" | "reward-overmint.reportable" | "false-anchor.reportable" | "ineligible-production.reportable" | "invalid-slash-request.reportable" | "false-attestation.reportable" | "equivocation.adjudicable" | "invalid-block.adjudicable" | "reward-overmint.adjudicable" | "false-anchor.adjudicable" | "ineligible-production.adjudicable" | "invalid-slash-request.adjudicable" | "false-attestation.adjudicable")[]];
14
14
  /** A rule whose activation height the register records. */
15
15
  export type RuleId = typeof RuleIds[number];
16
16
  /** The rule id gating whether reports naming an offense may be recorded. */
@@ -1 +1 @@
1
- {"version":3,"file":"RuleActivation.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol-model/model/RuleActivation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,0nBAWV,CAAA;AAEV,2DAA2D;AAC3D,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AAE3C,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE7D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE9D;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,mBAAmB,CAMrB;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtG"}
1
+ {"version":3,"file":"RuleActivation.d.ts","sourceRoot":"","sources":["../../../../../src/modules/protocol-model/model/RuleActivation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,oqBAcV,CAAA;AAEV,2DAA2D;AAC3D,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AAE3C,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE7D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE9D;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,mBAAmB,CAMrB;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtG"}
@@ -112,6 +112,8 @@ import { asSchema as asSchema2 } from "@xyo-network/sdk";
112
112
  import { z } from "zod";
113
113
  var AdmissionShadowReportSchema = asSchema2("network.xyo.s3.admission.shadow", true);
114
114
  var AdmissionShadowAssessmentZod = z.object({
115
+ /** Seasoned active stake measured at the evaluation point, hex atto, when it could be. */
116
+ activeStake: z.optional(z.string()),
115
117
  /** Whether the allow-list admits it. */
116
118
  admittedByAllowList: z.boolean(),
117
119
  /** The candidate's height. */
@@ -122,12 +124,16 @@ var AdmissionShadowAssessmentZod = z.object({
122
124
  eStar: z.optional(z.int().nonnegative()),
123
125
  /** Whether participation admits it, when that could be established. */
124
126
  eligible: z.optional(z.boolean()),
127
+ /** Whether the address held a current intent, when that could be established. */
128
+ intentValid: z.optional(z.boolean()),
125
129
  /** The producer. */
126
130
  producer: z.string(),
127
131
  /** Why participation refused, when it did. */
128
132
  reason: z.optional(z.string()),
129
133
  /** False when the participation question could not be put at all. */
130
- resolvable: z.boolean()
134
+ resolvable: z.boolean(),
135
+ /** The seasoned portion staked by the address on itself, hex atto, when it could be. */
136
+ selfBond: z.optional(z.string())
131
137
  });
132
138
  var AdmissionShadowReportZod = z.object({
133
139
  /** Every candidate considered this round. */
@@ -136,17 +142,20 @@ var AdmissionShadowReportZod = z.object({
136
142
  divergent: z.array(AdmissionShadowAssessmentZod),
137
143
  /** The finalized height this round was selected against. */
138
144
  head: z.int().nonnegative(),
145
+ /** The admission posture that produced the round; reports keep flowing when gating starts. */
146
+ mode: z.optional(z.enum(["shadow", "enforce"])),
139
147
  /** Height of the previous published report, so the series can be walked backwards. */
140
148
  previous: z.optional(z.int().nonnegative()),
141
149
  schema: z.literal(AdmissionShadowReportSchema)
142
150
  });
143
151
  var isAdmissionShadowReport = zodIsFactory(AdmissionShadowReportZod);
144
152
  var asAdmissionShadowReport = zodAsFactory(AdmissionShadowReportZod, "asAdmissionShadowReport");
145
- function createAdmissionShadowReport(head, assessments, divergent, previous) {
153
+ function createAdmissionShadowReport(head, assessments, divergent, previous, mode) {
146
154
  return AdmissionShadowReportZod.parse({
147
155
  assessments,
148
156
  divergent,
149
157
  head,
158
+ mode,
150
159
  previous,
151
160
  schema: AdmissionShadowReportSchema
152
161
  });
@@ -438,19 +447,62 @@ function chainParamsSuccessionErrors(previous, next, finalizedHeight) {
438
447
  if (next.chainId !== previous.chainId) {
439
448
  errors.push(`chainId must not change: ${previous.chainId} -> ${next.chainId}`);
440
449
  }
450
+ if (next.protocolMin < previous.protocolMin) {
451
+ errors.push(`protocolMin must not lower: ${previous.protocolMin} -> ${next.protocolMin}`);
452
+ }
453
+ const previousDeactivations = previous.deactivations ?? {};
454
+ const nextDeactivations = next.deactivations ?? {};
455
+ const isReactivation = (ruleId) => {
456
+ const deactivation = previousDeactivations[ruleId];
457
+ const nextActivation = next.activations[ruleId];
458
+ return deactivation !== void 0 && deactivation <= finalizedHeight && nextActivation !== void 0 && nextActivation > finalizedHeight && nextDeactivations[ruleId] === void 0;
459
+ };
441
460
  for (const [ruleId, height] of Object.entries(previous.activations)) {
442
461
  if (height > finalizedHeight) continue;
443
- if (next.activations[ruleId] !== height) {
444
- errors.push(`activation for '${ruleId}' is already in force at ${height} and must not move`);
445
- }
462
+ if (next.activations[ruleId] === height) continue;
463
+ if (isReactivation(ruleId)) continue;
464
+ errors.push(`activation for '${ruleId}' is already in force at ${height} and must not move`);
446
465
  }
447
- for (const [ruleId, height] of Object.entries(next.deactivations ?? {})) {
448
- if (height < finalizedHeight) {
466
+ for (const [ruleId, height] of Object.entries(previousDeactivations)) {
467
+ if (height > finalizedHeight) continue;
468
+ if (nextDeactivations[ruleId] === height) continue;
469
+ if (isReactivation(ruleId)) continue;
470
+ errors.push(`deactivation for '${ruleId}' is already in force at ${height} and must not move`);
471
+ }
472
+ for (const [ruleId, height] of Object.entries(nextDeactivations)) {
473
+ if (height < finalizedHeight && previousDeactivations[ruleId] !== height) {
449
474
  errors.push(`deactivation for '${ruleId}' at ${height} is in the past`);
450
475
  }
451
476
  }
452
477
  return errors;
453
478
  }
479
+ function chainParamsInvariantErrors(params) {
480
+ const errors = [];
481
+ if (params.burnFloorBps + params.bountyShareBps > 1e4) {
482
+ errors.push(`burnFloorBps + bountyShareBps must not exceed 10000: ${params.burnFloorBps} + ${params.bountyShareBps}`);
483
+ }
484
+ const minValidatorStake = tryBigInt(params.minValidatorStakeAtto);
485
+ const bountyCap = tryBigInt(params.bountyCapAtto);
486
+ if (minValidatorStake === void 0 || bountyCap === void 0) {
487
+ errors.push("minValidatorStakeAtto and bountyCapAtto must be parseable amounts");
488
+ return errors;
489
+ }
490
+ const counterSlashBps = BigInt(params.slashFractionsBps["invalid-slash-request"] ?? 0);
491
+ const counterSlashMin = minValidatorStake * counterSlashBps / 10000n;
492
+ if (counterSlashMin < bountyCap * 2n) {
493
+ errors.push(
494
+ `the counter-slash at minimum validator stake (${counterSlashMin}) must be at least twice bountyCapAtto (${bountyCap})`
495
+ );
496
+ }
497
+ return errors;
498
+ }
499
+ function tryBigInt(value) {
500
+ try {
501
+ return BigInt(value.startsWith("0x") ? value : `0x${value}`);
502
+ } catch {
503
+ return void 0;
504
+ }
505
+ }
454
506
 
455
507
  // src/modules/network-model/staticRest/layout/evmEventIndex.ts
456
508
  import {
@@ -1034,6 +1086,7 @@ export {
1034
1086
  chainContractByIdPath,
1035
1087
  chainManifestPathTemplates,
1036
1088
  chainParamsHeadPath,
1089
+ chainParamsInvariantErrors,
1037
1090
  chainParamsSuccessionErrors,
1038
1091
  chainParamsVersionPath,
1039
1092
  createAdmissionShadowReport,