Skip to content

Commit a5cf26b

Browse files
committed
Remove uneeded match
1 parent 30a51a1 commit a5cf26b

File tree

1 file changed

+23
-31
lines changed

1 file changed

+23
-31
lines changed

beacon_node/beacon_chain/src/block_verification.rs

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -646,44 +646,36 @@ pub fn signature_verify_chain_segment<T: BeaconChainTypes>(
646646
&chain.spec,
647647
)?;
648648

649-
// Filter `chain_segment` for `RpcBlock::FullyAvailable` and verify KZG.
650-
let available_blocks = chain_segment
651-
.iter()
652-
.map(|(_, block)| match block {
653-
RpcBlock::FullyAvailable(available_block) => Ok(available_block.clone()),
654-
// RangeSync and BackfillSync already ensure that the chain segment is fully available
655-
// so this shouldn't be possible in practice.
656-
RpcBlock::BlockOnly { .. } => Err(BlockError::InternalError(
657-
"Chain segment is not fully available".to_string(),
658-
)),
659-
})
660-
.collect::<Result<_, _>>()?;
649+
let mut available_blocks = Vec::with_capacity(chain_segment.len());
650+
let mut signature_verified_blocks = Vec::with_capacity(chain_segment.len());
661651

662-
chain
663-
.data_availability_checker
664-
.batch_verify_kzg_for_available_blocks(&available_blocks)?;
652+
for (block_root, block) in chain_segment {
653+
let consensus_context =
654+
ConsensusContext::new(block.slot()).set_current_block_root(block_root);
665655

666-
let mut signature_verified_blocks = chain_segment
667-
.into_iter()
668-
.map(|(block_root, block)| {
669-
let consensus_context =
670-
ConsensusContext::new(block.slot()).set_current_block_root(block_root);
671-
match block {
672-
RpcBlock::FullyAvailable(available_block) => SignatureVerifiedBlock {
656+
match block {
657+
RpcBlock::FullyAvailable(available_block) => {
658+
available_blocks.push(available_block.clone());
659+
signature_verified_blocks.push(SignatureVerifiedBlock {
673660
block: MaybeAvailableBlock::Available(available_block),
674661
block_root,
675662
parent: None,
676663
consensus_context,
677-
},
678-
RpcBlock::BlockOnly { block, block_root } => SignatureVerifiedBlock {
679-
block: MaybeAvailableBlock::AvailabilityPending { block_root, block },
680-
block_root,
681-
parent: None,
682-
consensus_context,
683-
},
664+
});
684665
}
685-
})
686-
.collect::<Vec<_>>();
666+
RpcBlock::BlockOnly { .. } => {
667+
// RangeSync and BackfillSync already ensure that the chain segment is fully available
668+
// so this shouldn't be possible in practice.
669+
return Err(BlockError::InternalError(
670+
"Chain segment is not fully available".to_string(),
671+
));
672+
}
673+
}
674+
}
675+
676+
chain
677+
.data_availability_checker
678+
.batch_verify_kzg_for_available_blocks(&available_blocks)?;
687679

688680
// verify signatures
689681
let pubkey_cache = get_validator_pubkey_cache(chain)?;

0 commit comments

Comments
 (0)