@@ -57,6 +57,30 @@ public class BeaconStateElectra extends BeaconStateAltair {
57
57
@ JsonProperty ("deposit_receipts_start_index" )
58
58
public final UInt64 depositReceiptsStartIndex ;
59
59
60
+ @ JsonProperty ("deposit_balance_to_consume" )
61
+ public final UInt64 depositBalanceToConsume ;
62
+
63
+ @ JsonProperty ("exit_balance_to_consume" )
64
+ public final UInt64 exitBalanceToConsume ;
65
+
66
+ @ JsonProperty ("earliest_exit_epoch" )
67
+ public final UInt64 earliestExitEpoch ;
68
+
69
+ @ JsonProperty ("consolidation_balance_to_consume" )
70
+ public final UInt64 consolidationBalanceToConsume ;
71
+
72
+ @ JsonProperty ("earliest_consolidation_epoch" )
73
+ public final UInt64 earliestConsolidationEpoch ;
74
+
75
+ @ JsonProperty ("pending_balance_deposits" )
76
+ public final List <PendingBalanceDeposit > pendingBalanceDeposits ;
77
+
78
+ @ JsonProperty ("pending_partial_withdrawals" )
79
+ public final List <PendingPartialWithdrawal > pendingPartialWithdrawals ;
80
+
81
+ @ JsonProperty ("pending_consolidations" )
82
+ public final List <PendingConsolidation > pendingConsolidations ;
83
+
60
84
public BeaconStateElectra (
61
85
@ JsonProperty ("genesis_time" ) final UInt64 genesisTime ,
62
86
@ JsonProperty ("genesis_validators_root" ) final Bytes32 genesisValidatorsRoot ,
@@ -87,7 +111,18 @@ public BeaconStateElectra(
87
111
@ JsonProperty ("next_withdrawal_index" ) final UInt64 nextWithdrawalIndex ,
88
112
@ JsonProperty ("next_withdrawal_validator_index" ) final UInt64 nextWithdrawalValidatorIndex ,
89
113
@ JsonProperty ("historical_summaries" ) final List <HistoricalSummary > historicalSummaries ,
90
- @ JsonProperty ("deposit_receipts_start_index" ) final UInt64 depositReceiptsStartIndex ) {
114
+ @ JsonProperty ("deposit_receipts_start_index" ) final UInt64 depositReceiptsStartIndex ,
115
+ @ JsonProperty ("deposit_balance_to_consume" ) final UInt64 depositBalanceToConsume ,
116
+ @ JsonProperty ("exit_balance_to_consume" ) final UInt64 exitBalanceToConsume ,
117
+ @ JsonProperty ("earliest_exit_epoch" ) final UInt64 earliestExitEpoch ,
118
+ @ JsonProperty ("consolidation_balance_to_consume" ) final UInt64 consolidationBalanceToConsume ,
119
+ @ JsonProperty ("earliest_consolidation_epoch" ) final UInt64 earliestConsolidationEpoch ,
120
+ @ JsonProperty ("pending_balance_deposits" )
121
+ final List <PendingBalanceDeposit > pendingBalanceDeposits ,
122
+ @ JsonProperty ("pending_partial_withdrawals" )
123
+ final List <PendingPartialWithdrawal > pendingPartialWithdrawals ,
124
+ @ JsonProperty ("pending_consolidations" )
125
+ final List <PendingConsolidation > pendingConsolidations ) {
91
126
super (
92
127
genesisTime ,
93
128
genesisValidatorsRoot ,
@@ -118,6 +153,14 @@ public BeaconStateElectra(
118
153
this .nextWithdrawalValidatorIndex = nextWithdrawalValidatorIndex ;
119
154
this .historicalSummaries = historicalSummaries ;
120
155
this .depositReceiptsStartIndex = depositReceiptsStartIndex ;
156
+ this .depositBalanceToConsume = depositBalanceToConsume ;
157
+ this .exitBalanceToConsume = exitBalanceToConsume ;
158
+ this .earliestExitEpoch = earliestExitEpoch ;
159
+ this .consolidationBalanceToConsume = consolidationBalanceToConsume ;
160
+ this .earliestConsolidationEpoch = earliestConsolidationEpoch ;
161
+ this .pendingBalanceDeposits = pendingBalanceDeposits ;
162
+ this .pendingPartialWithdrawals = pendingPartialWithdrawals ;
163
+ this .pendingConsolidations = pendingConsolidations ;
121
164
}
122
165
123
166
public BeaconStateElectra (final BeaconState beaconState ) {
@@ -132,6 +175,17 @@ public BeaconStateElectra(final BeaconState beaconState) {
132
175
this .historicalSummaries =
133
176
electra .getHistoricalSummaries ().stream ().map (HistoricalSummary ::new ).toList ();
134
177
this .depositReceiptsStartIndex = electra .getDepositReceiptsStartIndex ();
178
+ this .depositBalanceToConsume = electra .getDepositBalanceToConsume ();
179
+ this .exitBalanceToConsume = electra .getExitBalanceToConsume ();
180
+ this .earliestExitEpoch = electra .getEarliestExitEpoch ();
181
+ this .consolidationBalanceToConsume = electra .getConsolidationBalanceToConsume ();
182
+ this .earliestConsolidationEpoch = electra .getEarliestConsolidationEpoch ();
183
+ this .pendingBalanceDeposits =
184
+ electra .getPendingBalanceDeposits ().stream ().map (PendingBalanceDeposit ::new ).toList ();
185
+ this .pendingPartialWithdrawals =
186
+ electra .getPendingPartialWithdrawals ().stream ().map (PendingPartialWithdrawal ::new ).toList ();
187
+ this .pendingConsolidations =
188
+ electra .getPendingConsolidations ().stream ().map (PendingConsolidation ::new ).toList ();
135
189
}
136
190
137
191
@ Override
@@ -153,6 +207,15 @@ protected void applyAdditionalFields(
153
207
BeaconStateSchemaElectra .required (
154
208
mutableBeaconStateElectra .getBeaconStateSchema ())
155
209
.getHistoricalSummariesSchema (),
210
+ BeaconStateSchemaElectra .required (
211
+ mutableBeaconStateElectra .getBeaconStateSchema ())
212
+ .getPendingBalanceDepositsSchema (),
213
+ BeaconStateSchemaElectra .required (
214
+ mutableBeaconStateElectra .getBeaconStateSchema ())
215
+ .getPendingPartialWithdrawalsSchema (),
216
+ BeaconStateSchemaElectra .required (
217
+ mutableBeaconStateElectra .getBeaconStateSchema ())
218
+ .getPendingConsolidationsSchema (),
156
219
this ));
157
220
}
158
221
@@ -164,6 +227,16 @@ protected static void applyElectraFields(
164
227
final SszListSchema <
165
228
tech .pegasys .teku .spec .datastructures .state .versions .capella .HistoricalSummary , ?>
166
229
historicalSummariesSchema ,
230
+ final SszListSchema <
231
+ tech .pegasys .teku .spec .datastructures .state .versions .electra .PendingBalanceDeposit , ?>
232
+ pendingBalanceDepositsSchema ,
233
+ final SszListSchema <
234
+ tech .pegasys .teku .spec .datastructures .state .versions .electra .PendingPartialWithdrawal ,
235
+ ?>
236
+ pendingPartialWithdrawalsSchema ,
237
+ final SszListSchema <
238
+ tech .pegasys .teku .spec .datastructures .state .versions .electra .PendingConsolidation , ?>
239
+ pendingConsolidationsSchema ,
167
240
final BeaconStateElectra instance ) {
168
241
169
242
BeaconStateAltair .applyAltairFields (state , syncCommitteeSchema , instance );
@@ -181,5 +254,31 @@ protected static void applyElectraFields(
181
254
historicalSummary -> historicalSummary .asInternalHistoricalSummary (specVersion ))
182
255
.toList ()));
183
256
state .setDepositReceiptsStartIndex (instance .depositReceiptsStartIndex );
257
+ state .setDepositBalanceToConsume (instance .depositBalanceToConsume );
258
+ state .setExitBalanceToConsume (instance .exitBalanceToConsume );
259
+ state .setEarliestExitEpoch (instance .earliestExitEpoch );
260
+ state .setConsolidationBalanceToConsume (instance .consolidationBalanceToConsume );
261
+ state .setEarliestConsolidationEpoch (instance .earliestConsolidationEpoch );
262
+ state .setPendingBalanceDeposits (
263
+ pendingBalanceDepositsSchema .createFromElements (
264
+ instance .pendingBalanceDeposits .stream ()
265
+ .map (
266
+ pendingBalanceDeposit ->
267
+ pendingBalanceDeposit .asInternalPendingBalanceDeposit (specVersion ))
268
+ .toList ()));
269
+ state .setPendingPartialWithdrawals (
270
+ pendingPartialWithdrawalsSchema .createFromElements (
271
+ instance .pendingPartialWithdrawals .stream ()
272
+ .map (
273
+ pendingPartialWithdrawal ->
274
+ pendingPartialWithdrawal .asInternalPendingPartialWithdrawal (specVersion ))
275
+ .toList ()));
276
+ state .setPendingConsolidations (
277
+ pendingConsolidationsSchema .createFromElements (
278
+ instance .pendingConsolidations .stream ()
279
+ .map (
280
+ pendingConsolidation ->
281
+ pendingConsolidation .asInternalPendingConsolidation (specVersion ))
282
+ .toList ()));
184
283
}
185
284
}
0 commit comments