From e1dcfb6960ae74f14302ecfbb5075e0963066355 Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 10 May 2024 21:15:21 -0400 Subject: [PATCH 1/6] update committee offset --- .../state_processing/src/common/get_attesting_indices.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/consensus/state_processing/src/common/get_attesting_indices.rs b/consensus/state_processing/src/common/get_attesting_indices.rs index 9848840e96..33249c4941 100644 --- a/consensus/state_processing/src/common/get_attesting_indices.rs +++ b/consensus/state_processing/src/common/get_attesting_indices.rs @@ -106,7 +106,7 @@ pub mod attesting_indices_electra { let committee_indices = get_committee_indices::(committee_bits); - let committee_offset = 0; + let mut committee_offset = 0; let committees_map: HashMap = committees .iter() @@ -138,7 +138,7 @@ pub mod attesting_indices_electra { output.extend(committee_attesters); - committee_offset.safe_add(beacon_committee.committee.len())?; + committee_offset.safe_add_assign(beacon_committee.committee.len())?; } else { return Err(Error::NoCommitteeFound(index)); } From 40c4c00097c2e9cc1d06bfec9a6d8ec374140d5b Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 10 May 2024 21:15:21 -0400 Subject: [PATCH 2/6] update committee offset --- .../state_processing/src/common/get_attesting_indices.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/consensus/state_processing/src/common/get_attesting_indices.rs b/consensus/state_processing/src/common/get_attesting_indices.rs index 9848840e96..33249c4941 100644 --- a/consensus/state_processing/src/common/get_attesting_indices.rs +++ b/consensus/state_processing/src/common/get_attesting_indices.rs @@ -106,7 +106,7 @@ pub mod attesting_indices_electra { let committee_indices = get_committee_indices::(committee_bits); - let committee_offset = 0; + let mut committee_offset = 0; let committees_map: HashMap = committees .iter() @@ -138,7 +138,7 @@ pub mod attesting_indices_electra { output.extend(committee_attesters); - committee_offset.safe_add(beacon_committee.committee.len())?; + committee_offset.safe_add_assign(beacon_committee.committee.len())?; } else { return Err(Error::NoCommitteeFound(index)); } From 5364ba53fa9a9f4bc4955f621bc61718f031a6de Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 10 May 2024 21:15:21 -0400 Subject: [PATCH 3/6] update committee offset --- .../state_processing/src/common/get_attesting_indices.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/consensus/state_processing/src/common/get_attesting_indices.rs b/consensus/state_processing/src/common/get_attesting_indices.rs index 9848840e96..33249c4941 100644 --- a/consensus/state_processing/src/common/get_attesting_indices.rs +++ b/consensus/state_processing/src/common/get_attesting_indices.rs @@ -106,7 +106,7 @@ pub mod attesting_indices_electra { let committee_indices = get_committee_indices::(committee_bits); - let committee_offset = 0; + let mut committee_offset = 0; let committees_map: HashMap = committees .iter() @@ -138,7 +138,7 @@ pub mod attesting_indices_electra { output.extend(committee_attesters); - committee_offset.safe_add(beacon_committee.committee.len())?; + committee_offset.safe_add_assign(beacon_committee.committee.len())?; } else { return Err(Error::NoCommitteeFound(index)); } From 9a22eb8698f8373c1bb002027edb41b300043bd4 Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 10 May 2024 21:15:21 -0400 Subject: [PATCH 4/6] update committee offset --- .../state_processing/src/common/get_attesting_indices.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/consensus/state_processing/src/common/get_attesting_indices.rs b/consensus/state_processing/src/common/get_attesting_indices.rs index 9848840e96..33249c4941 100644 --- a/consensus/state_processing/src/common/get_attesting_indices.rs +++ b/consensus/state_processing/src/common/get_attesting_indices.rs @@ -106,7 +106,7 @@ pub mod attesting_indices_electra { let committee_indices = get_committee_indices::(committee_bits); - let committee_offset = 0; + let mut committee_offset = 0; let committees_map: HashMap = committees .iter() @@ -138,7 +138,7 @@ pub mod attesting_indices_electra { output.extend(committee_attesters); - committee_offset.safe_add(beacon_committee.committee.len())?; + committee_offset.safe_add_assign(beacon_committee.committee.len())?; } else { return Err(Error::NoCommitteeFound(index)); } From 879966e535601c83c6af0fc451388aee3cf0022c Mon Sep 17 00:00:00 2001 From: realbigsean Date: Fri, 10 May 2024 21:15:21 -0400 Subject: [PATCH 5/6] update committee offset --- .../state_processing/src/common/get_attesting_indices.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/consensus/state_processing/src/common/get_attesting_indices.rs b/consensus/state_processing/src/common/get_attesting_indices.rs index 1c59edf20e..803686cbbd 100644 --- a/consensus/state_processing/src/common/get_attesting_indices.rs +++ b/consensus/state_processing/src/common/get_attesting_indices.rs @@ -106,7 +106,7 @@ pub mod attesting_indices_electra { let committee_indices = get_committee_indices::(committee_bits); - let committee_offset = 0; + let mut committee_offset = 0; let committees_map: HashMap = committees .iter() @@ -138,7 +138,7 @@ pub mod attesting_indices_electra { output.extend(committee_attesters); - committee_offset.safe_add(beacon_committee.committee.len())?; + committee_offset.safe_add_assign(beacon_committee.committee.len())?; } else { return Err(Error::NoCommitteeFound(index)); } From a97e86c1a6fb15c9a67a94c5634fc9b9a341e14f Mon Sep 17 00:00:00 2001 From: realbigsean Date: Sat, 11 May 2024 05:07:59 -0400 Subject: [PATCH 6/6] only increment the state deposit index on old deposit flow --- beacon_node/genesis/src/eth1_genesis_service.rs | 2 +- consensus/state_processing/src/genesis.rs | 2 +- .../src/per_block_processing/process_operations.rs | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/beacon_node/genesis/src/eth1_genesis_service.rs b/beacon_node/genesis/src/eth1_genesis_service.rs index 3e91504951..7015705027 100644 --- a/beacon_node/genesis/src/eth1_genesis_service.rs +++ b/beacon_node/genesis/src/eth1_genesis_service.rs @@ -439,7 +439,7 @@ impl Eth1GenesisService { None }; - apply_deposit(&mut state, data, proof, spec) + apply_deposit(&mut state, data, proof, true, spec) .map_err(|e| format!("Error whilst processing deposit: {:?}", e)) })?; diff --git a/consensus/state_processing/src/genesis.rs b/consensus/state_processing/src/genesis.rs index 38006b83ca..c73417077a 100644 --- a/consensus/state_processing/src/genesis.rs +++ b/consensus/state_processing/src/genesis.rs @@ -38,7 +38,7 @@ pub fn initialize_beacon_state_from_eth1( .map_err(BlockProcessingError::MerkleTreeError)?; state.eth1_data_mut().deposit_root = deposit_tree.root(); let Deposit { proof, data } = deposit; - apply_deposit(&mut state, data, Some(proof), spec)?; + apply_deposit(&mut state, data, Some(proof), true, spec)?; } process_activations(&mut state, spec)?; diff --git a/consensus/state_processing/src/per_block_processing/process_operations.rs b/consensus/state_processing/src/per_block_processing/process_operations.rs index 0fbb82ed1d..9d2235e2d4 100644 --- a/consensus/state_processing/src/per_block_processing/process_operations.rs +++ b/consensus/state_processing/src/per_block_processing/process_operations.rs @@ -417,7 +417,7 @@ pub fn process_deposits( // Update the state in series. for deposit in deposits { - apply_deposit(state, deposit.data.clone(), None, spec)?; + apply_deposit(state, deposit.data.clone(), None, true, spec)?; } Ok(()) @@ -428,6 +428,7 @@ pub fn apply_deposit( state: &mut BeaconState, deposit_data: DepositData, proof: Option>, + increment_eth1_deposit_index: bool, spec: &ChainSpec, ) -> Result<(), BlockProcessingError> { let deposit_index = state.eth1_deposit_index() as usize; @@ -440,7 +441,9 @@ pub fn apply_deposit( .map_err(|e| e.into_with_index(deposit_index))?; } - state.eth1_deposit_index_mut().safe_add_assign(1)?; + if increment_eth1_deposit_index { + state.eth1_deposit_index_mut().safe_add_assign(1)?; + } // Get an `Option` where `u64` is the validator index if this deposit public key // already exists in the beacon_state. @@ -641,7 +644,7 @@ pub fn process_deposit_receipts( amount: receipt.amount, signature: receipt.signature.clone().into(), }; - apply_deposit(state, deposit_data, None, spec)? + apply_deposit(state, deposit_data, None, false, spec)? } Ok(())