mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-21 05:44:44 +00:00
Merge branch 'remove-into-gossip-verified-block' of https://github.com/realbigsean/lighthouse into merge-unstable-deneb-june-6th
This commit is contained in:
@@ -808,6 +808,15 @@ where
|
||||
state.get_block_root(slot).unwrap() == state.get_block_root(slot - 1).unwrap()
|
||||
}
|
||||
|
||||
pub async fn make_blinded_block(
|
||||
&self,
|
||||
state: BeaconState<E>,
|
||||
slot: Slot,
|
||||
) -> (SignedBlindedBeaconBlock<E>, BeaconState<E>) {
|
||||
let (unblinded, new_state) = self.make_block(state, slot).await;
|
||||
(unblinded.into(), new_state)
|
||||
}
|
||||
|
||||
/// Returns a newly created block, signed by the proposer for the given slot.
|
||||
pub async fn make_block(
|
||||
&self,
|
||||
@@ -820,9 +829,7 @@ where
|
||||
complete_state_advance(&mut state, None, slot, &self.spec)
|
||||
.expect("should be able to advance state to slot");
|
||||
|
||||
state
|
||||
.build_all_caches(&self.spec)
|
||||
.expect("should build caches");
|
||||
state.build_caches(&self.spec).expect("should build caches");
|
||||
|
||||
let proposer_index = state.get_beacon_proposer_index(slot, &self.spec).unwrap();
|
||||
|
||||
@@ -906,9 +913,7 @@ where
|
||||
complete_state_advance(&mut state, None, slot, &self.spec)
|
||||
.expect("should be able to advance state to slot");
|
||||
|
||||
state
|
||||
.build_all_caches(&self.spec)
|
||||
.expect("should build caches");
|
||||
state.build_caches(&self.spec).expect("should build caches");
|
||||
|
||||
let proposer_index = state.get_beacon_proposer_index(slot, &self.spec).unwrap();
|
||||
|
||||
@@ -1626,6 +1631,36 @@ where
|
||||
.sign(sk, &fork, genesis_validators_root, &self.chain.spec)
|
||||
}
|
||||
|
||||
pub fn add_proposer_slashing(&self, validator_index: u64) -> Result<(), String> {
|
||||
let propposer_slashing = self.make_proposer_slashing(validator_index);
|
||||
if let ObservationOutcome::New(verified_proposer_slashing) = self
|
||||
.chain
|
||||
.verify_proposer_slashing_for_gossip(propposer_slashing)
|
||||
.expect("should verify proposer slashing for gossip")
|
||||
{
|
||||
self.chain
|
||||
.import_proposer_slashing(verified_proposer_slashing);
|
||||
Ok(())
|
||||
} else {
|
||||
Err("should observe new proposer slashing".to_string())
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_attester_slashing(&self, validator_indices: Vec<u64>) -> Result<(), String> {
|
||||
let attester_slashing = self.make_attester_slashing(validator_indices);
|
||||
if let ObservationOutcome::New(verified_attester_slashing) = self
|
||||
.chain
|
||||
.verify_attester_slashing_for_gossip(attester_slashing)
|
||||
.expect("should verify attester slashing for gossip")
|
||||
{
|
||||
self.chain
|
||||
.import_attester_slashing(verified_attester_slashing);
|
||||
Ok(())
|
||||
} else {
|
||||
Err("should observe new attester slashing".to_string())
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_bls_to_execution_change(
|
||||
&self,
|
||||
validator_index: u64,
|
||||
@@ -1804,7 +1839,7 @@ where
|
||||
self.set_current_slot(slot);
|
||||
let block_hash: SignedBeaconBlockHash = self
|
||||
.chain
|
||||
.process_block(block_root, block.into(), NotifyExecutionLayer::Yes)
|
||||
.process_block(block_root, block.into(), NotifyExecutionLayer::Yes,|| Ok(()),)
|
||||
.await?
|
||||
.try_into()
|
||||
.unwrap();
|
||||
@@ -1823,6 +1858,7 @@ where
|
||||
wrapped_block.canonical_root(),
|
||||
wrapped_block,
|
||||
NotifyExecutionLayer::Yes,
|
||||
|| Ok(()),
|
||||
)
|
||||
.await?
|
||||
.try_into()
|
||||
|
||||
Reference in New Issue
Block a user