Skip to content

Commit 857e654

Browse files
committed
remove electra feature flag in verifier
1 parent 88f3c9c commit 857e654

File tree

9 files changed

+367
-62
lines changed

9 files changed

+367
-62
lines changed

.github/workflows/ci.yml

+17-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ on:
44
push:
55
branches:
66
- main
7+
- pectra-updates
8+
79
pull_request_target:
810
types: [opened, synchronize]
911

@@ -80,7 +82,7 @@ jobs:
8082

8183
- name: check no-std
8284
run: |
83-
cargo check -p ${{ matrix.crate }} --no-default-features --target=wasm32-unknown-unknown --locked
85+
cargo check -p ${{ matrix.crate }} --no-default-features --target=wasm32-unknown-unknown --locked
8486
8587
check-workspace:
8688
name: Check Workspace
@@ -349,9 +351,23 @@ jobs:
349351
- name: sync-committee integration tests
350352
run: |
351353
cargo test -p sync-committee-prover -- --nocapture --ignored
354+
docker-compose -f ./eth-pos-devnet/docker-compose.yml down
355+
sudo rm -rf ./eth-pos-devnet
356+
357+
- name: Run Eth POS Devnet Electra
358+
run: |
359+
git clone --branch david/electra https://github.com/polytope-labs/eth-pos-devnet.git
360+
DOCKER_CLIENT_TIMEOUT=300 COMPOSE_HTTP_TIMEOUT=300 docker-compose -f ./eth-pos-devnet/docker-compose.yml up -d
361+
./scripts/wait_for_tcp_port_opening.sh localhost 3500
362+
./scripts/wait_for_tcp_port_opening.sh localhost 8545
363+
364+
- name: sync-committee electra integration tests
365+
run: |
366+
cargo test -p sync-committee-prover --features electra -- --nocapture --ignored
352367
353368
# - name: polygon pos integration tests
354369
# run: |
370+
#
355371
# cargo test -p polygon-pos-prover -- --nocapture --ignored
356372

357373
- name: Binance Smart Chain integration tests

modules/consensus/sync-committee/primitives/src/constants.rs

+68-33
Original file line numberDiff line numberDiff line change
@@ -68,34 +68,15 @@ pub const MAX_EXTRA_DATA_BYTES: usize = 32;
6868
pub const DEPOSIT_PROOF_LENGTH: usize = 33;
6969

7070
pub const DOMAIN_SYNC_COMMITTEE: DomainType = DomainType::SyncCommittee;
71-
#[cfg(not(feature = "electra"))]
71+
7272
pub const FINALIZED_ROOT_INDEX: u64 = 52;
73-
#[cfg(not(feature = "electra"))]
7473
pub const EXECUTION_PAYLOAD_INDEX: u64 = 56;
75-
#[cfg(not(feature = "electra"))]
7674
pub const NEXT_SYNC_COMMITTEE_INDEX: u64 = 55;
7775

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"))]
8676
pub const FINALIZED_ROOT_INDEX_LOG2: u64 = 5;
87-
#[cfg(not(feature = "electra"))]
8877
pub const EXECUTION_PAYLOAD_INDEX_LOG2: u64 = 5;
89-
#[cfg(not(feature = "electra"))]
9078
pub const NEXT_SYNC_COMMITTEE_INDEX_LOG2: u64 = 5;
9179

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-
9980
pub const ETH1_DATA_VOTES_BOUND_ETH: usize = (EPOCHS_PER_ETH1_VOTING_PERIOD * 32) as usize;
10081
pub const ETH1_DATA_VOTES_BOUND_GNO: usize = (EPOCHS_PER_ETH1_VOTING_PERIOD * 16) as usize;
10182

@@ -126,9 +107,13 @@ pub trait Config {
126107
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64;
127108
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64;
128109
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;
130116
const ELECTRA_FORK_VERSION: Version;
131-
#[cfg(feature = "electra")]
132117
const ELECTRA_FORK_EPOCH: Epoch;
133118
const ID: [u8; 4];
134119
}
@@ -159,10 +144,14 @@ pub mod sepolia {
159144
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64 = 34;
160145
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64 = 38;
161146
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;
163153
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;
166155
const ID: [u8; 4] = BEACON_CONSENSUS_ID;
167156
}
168157
}
@@ -190,9 +179,13 @@ pub mod mainnet {
190179
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64 = 34;
191180
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64 = 38;
192181
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;
194188
const ELECTRA_FORK_VERSION: Version = hex_literal::hex!("05000000");
195-
#[cfg(feature = "electra")]
196189
const ELECTRA_FORK_EPOCH: Epoch = Epoch::MAX;
197190
const ID: [u8; 4] = BEACON_CONSENSUS_ID;
198191
}
@@ -221,9 +214,13 @@ pub mod gnosis {
221214
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64 = 34;
222215
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64 = 38;
223216
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;
225223
const ELECTRA_FORK_VERSION: Version = hex_literal::hex!("05000064");
226-
#[cfg(feature = "electra")]
227224
const ELECTRA_FORK_EPOCH: Epoch = Epoch::MAX;
228225
const ID: [u8; 4] = GNOSIS_CONSENSUS_ID;
229226
}
@@ -248,9 +245,13 @@ pub mod gnosis {
248245
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64 = 34;
249246
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64 = 38;
250247
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;
252254
const ELECTRA_FORK_VERSION: Version = hex_literal::hex!("0500006f");
253-
#[cfg(feature = "electra")]
254255
const ELECTRA_FORK_EPOCH: Epoch = Epoch::MAX;
255256
const ID: [u8; 4] = GNOSIS_CONSENSUS_ID;
256257
}
@@ -262,6 +263,8 @@ pub mod devnet {
262263

263264
#[derive(Default)]
264265
pub struct Devnet;
266+
#[derive(Default)]
267+
pub struct ElectraDevnet;
265268

266269
impl Config for Devnet {
267270
const SLOTS_PER_EPOCH: Slot = 32;
@@ -280,9 +283,41 @@ pub mod devnet {
280283
const EXECUTION_PAYLOAD_STATE_ROOT_INDEX: u64 = 34;
281284
const EXECUTION_PAYLOAD_BLOCK_NUMBER_INDEX: u64 = 38;
282285
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;
284320
const ELECTRA_FORK_VERSION: Version = hex_literal::hex!("52525505");
285-
#[cfg(feature = "electra")]
286321
const ELECTRA_FORK_EPOCH: Epoch = 0;
287322
const ID: [u8; 4] = BEACON_CONSENSUS_ID;
288323
}

modules/consensus/sync-committee/primitives/src/electra.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::constants::{
22
BlsPublicKey, BlsSignature, Bytes32, Epoch, ExecutionAddress, Gwei, Slot, ValidatorIndex,
33
};
4+
use alloc::{vec, vec::Vec};
45
use ssz_rs::{prelude::*, Deserialize};
56

67
#[derive(Default, Debug, SimpleSerialize, codec::Encode, codec::Decode, Clone, PartialEq, Eq)]

modules/consensus/sync-committee/primitives/src/util.rs

-17
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,6 @@ pub fn compute_epoch_at_slot<C: Config>(slot: u64) -> u64 {
2222
slot / C::SLOTS_PER_EPOCH
2323
}
2424

25-
#[cfg(not(feature = "electra"))]
26-
/// Return the fork version at the given ``epoch``.
27-
pub fn compute_fork_version<C: Config>(epoch: u64) -> [u8; 4] {
28-
if epoch >= C::DENEB_FORK_EPOCH {
29-
C::DENEB_FORK_VERSION
30-
} else if epoch >= C::CAPELLA_FORK_EPOCH {
31-
C::CAPELLA_FORK_VERSION
32-
} else if epoch >= C::BELLATRIX_FORK_EPOCH {
33-
C::BELLATRIX_FORK_VERSION
34-
} else if epoch >= C::ALTAIR_FORK_EPOCH {
35-
C::ALTAIR_FORK_VERSION
36-
} else {
37-
C::GENESIS_FORK_VERSION
38-
}
39-
}
40-
41-
#[cfg(feature = "electra")]
4225
/// Return the fork version at the given ``epoch``.
4326
pub fn compute_fork_version<C: Config>(epoch: u64) -> [u8; 4] {
4427
if epoch >= C::ELECTRA_FORK_EPOCH {

0 commit comments

Comments
 (0)