@@ -68,34 +68,15 @@ pub const MAX_EXTRA_DATA_BYTES: usize = 32;
68
68
pub const DEPOSIT_PROOF_LENGTH : usize = 33 ;
69
69
70
70
pub const DOMAIN_SYNC_COMMITTEE : DomainType = DomainType :: SyncCommittee ;
71
- # [ cfg ( not ( feature = "electra" ) ) ]
71
+
72
72
pub const FINALIZED_ROOT_INDEX : u64 = 52 ;
73
- #[ cfg( not( feature = "electra" ) ) ]
74
73
pub const EXECUTION_PAYLOAD_INDEX : u64 = 56 ;
75
- #[ cfg( not( feature = "electra" ) ) ]
76
74
pub const NEXT_SYNC_COMMITTEE_INDEX : u64 = 55 ;
77
75
78
- #[ cfg( feature = "electra" ) ]
79
- pub const FINALIZED_ROOT_INDEX : u64 = 84 ;
80
- #[ cfg( feature = "electra" ) ]
81
- pub const EXECUTION_PAYLOAD_INDEX : u64 = 88 ;
82
- #[ cfg( feature = "electra" ) ]
83
- pub const NEXT_SYNC_COMMITTEE_INDEX : u64 = 87 ;
84
-
85
- #[ cfg( not( feature = "electra" ) ) ]
86
76
pub const FINALIZED_ROOT_INDEX_LOG2 : u64 = 5 ;
87
- #[ cfg( not( feature = "electra" ) ) ]
88
77
pub const EXECUTION_PAYLOAD_INDEX_LOG2 : u64 = 5 ;
89
- #[ cfg( not( feature = "electra" ) ) ]
90
78
pub const NEXT_SYNC_COMMITTEE_INDEX_LOG2 : u64 = 5 ;
91
79
92
- #[ cfg( feature = "electra" ) ]
93
- pub const FINALIZED_ROOT_INDEX_LOG2 : u64 = 6 ;
94
- #[ cfg( feature = "electra" ) ]
95
- pub const EXECUTION_PAYLOAD_INDEX_LOG2 : u64 = 6 ;
96
- #[ cfg( feature = "electra" ) ]
97
- pub const NEXT_SYNC_COMMITTEE_INDEX_LOG2 : u64 = 6 ;
98
-
99
80
pub const ETH1_DATA_VOTES_BOUND_ETH : usize = ( EPOCHS_PER_ETH1_VOTING_PERIOD * 32 ) as usize ;
100
81
pub const ETH1_DATA_VOTES_BOUND_GNO : usize = ( EPOCHS_PER_ETH1_VOTING_PERIOD * 16 ) as usize ;
101
82
@@ -126,9 +107,13 @@ pub trait Config {
126
107
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 ;
127
108
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 ;
128
109
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 ;
129
- #[ cfg( feature = "electra" ) ]
110
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 ;
111
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 ;
112
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 ;
113
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 ;
114
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 ;
115
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 ;
130
116
const ELECTRA_FORK_VERSION : Version ;
131
- #[ cfg( feature = "electra" ) ]
132
117
const ELECTRA_FORK_EPOCH : Epoch ;
133
118
const ID : [ u8 ; 4 ] ;
134
119
}
@@ -159,10 +144,14 @@ pub mod sepolia {
159
144
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
160
145
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
161
146
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
162
- #[ cfg( feature = "electra" ) ]
147
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
148
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
149
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
150
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
151
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
152
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
163
153
const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "90000074" ) ;
164
- #[ cfg( feature = "electra" ) ]
165
- const ELECTRA_FORK_EPOCH : Epoch = Epoch :: MAX ;
154
+ const ELECTRA_FORK_EPOCH : Epoch = 222464 ;
166
155
const ID : [ u8 ; 4 ] = BEACON_CONSENSUS_ID ;
167
156
}
168
157
}
@@ -190,9 +179,13 @@ pub mod mainnet {
190
179
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
191
180
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
192
181
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
193
- #[ cfg( feature = "electra" ) ]
182
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
183
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
184
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
185
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
186
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
187
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
194
188
const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "05000000" ) ;
195
- #[ cfg( feature = "electra" ) ]
196
189
const ELECTRA_FORK_EPOCH : Epoch = Epoch :: MAX ;
197
190
const ID : [ u8 ; 4 ] = BEACON_CONSENSUS_ID ;
198
191
}
@@ -221,9 +214,13 @@ pub mod gnosis {
221
214
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
222
215
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
223
216
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
224
- #[ cfg( feature = "electra" ) ]
217
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
218
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
219
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
220
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
221
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
222
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
225
223
const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "05000064" ) ;
226
- #[ cfg( feature = "electra" ) ]
227
224
const ELECTRA_FORK_EPOCH : Epoch = Epoch :: MAX ;
228
225
const ID : [ u8 ; 4 ] = GNOSIS_CONSENSUS_ID ;
229
226
}
@@ -248,9 +245,13 @@ pub mod gnosis {
248
245
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
249
246
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
250
247
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
251
- #[ cfg( feature = "electra" ) ]
248
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
249
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
250
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
251
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
252
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
253
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
252
254
const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "0500006f" ) ;
253
- #[ cfg( feature = "electra" ) ]
254
255
const ELECTRA_FORK_EPOCH : Epoch = Epoch :: MAX ;
255
256
const ID : [ u8 ; 4 ] = GNOSIS_CONSENSUS_ID ;
256
257
}
@@ -262,6 +263,8 @@ pub mod devnet {
262
263
263
264
#[ derive( Default ) ]
264
265
pub struct Devnet ;
266
+ #[ derive( Default ) ]
267
+ pub struct ElectraDevnet ;
265
268
266
269
impl Config for Devnet {
267
270
const SLOTS_PER_EPOCH : Slot = 32 ;
@@ -280,9 +283,41 @@ pub mod devnet {
280
283
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
281
284
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
282
285
const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
283
- #[ cfg( feature = "electra" ) ]
286
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
287
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
288
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
289
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
290
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
291
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
292
+ const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "52525505" ) ;
293
+ const ELECTRA_FORK_EPOCH : Epoch = Epoch :: MAX ;
294
+ const ID : [ u8 ; 4 ] = BEACON_CONSENSUS_ID ;
295
+ }
296
+
297
+ impl Config for ElectraDevnet {
298
+ const SLOTS_PER_EPOCH : Slot = 32 ;
299
+ const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
300
+ hex_literal:: hex!( "83431ec7fcf92cfc44947fc0418e831c25e1d0806590231c439830db7ad54fda" ) ;
301
+ const BELLATRIX_FORK_VERSION : Version = hex ! ( "52525502" ) ;
302
+ const ALTAIR_FORK_VERSION : Version = hex ! ( "52525501" ) ;
303
+ const GENESIS_FORK_VERSION : Version = hex ! ( "52525500" ) ;
304
+ const ALTAIR_FORK_EPOCH : Epoch = 0 ;
305
+ const BELLATRIX_FORK_EPOCH : Epoch = 0 ;
306
+ const CAPELLA_FORK_EPOCH : Epoch = 0 ;
307
+ const CAPELLA_FORK_VERSION : Version = hex ! ( "52525503" ) ;
308
+ const DENEB_FORK_EPOCH : Epoch = 0 ;
309
+ const DENEB_FORK_VERSION : Version = hex ! ( "52525504" ) ;
310
+ const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 4 ;
311
+ const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 34 ;
312
+ const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX : u64 = 38 ;
313
+ const EXECUTION_PAYLOAD_TIMESTAMP_INDEX : u64 = 41 ;
314
+ const EXECUTION_PAYLOAD_INDEX_ELECTRA : u64 = 88 ;
315
+ const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA : u64 = 87 ;
316
+ const FINALIZED_ROOT_INDEX_ELECTRA : u64 = 84 ;
317
+ const FINALIZED_ROOT_INDEX_LOG2_ELECTRA : u64 = 6 ;
318
+ const EXECUTION_PAYLOAD_INDEX_LOG2_ELECTRA : u64 = 6 ;
319
+ const NEXT_SYNC_COMMITTEE_INDEX_LOG2_ELECTRA : u64 = 6 ;
284
320
const ELECTRA_FORK_VERSION : Version = hex_literal:: hex!( "52525505" ) ;
285
- #[ cfg( feature = "electra" ) ]
286
321
const ELECTRA_FORK_EPOCH : Epoch = 0 ;
287
322
const ID : [ u8 ; 4 ] = BEACON_CONSENSUS_ID ;
288
323
}
0 commit comments