mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-11 18:04:18 +00:00
fix blob validation for empty blobs
This commit is contained in:
@@ -51,16 +51,14 @@ impl<T: EthSpec> BlockBlobRequestInfo<T> {
|
||||
{
|
||||
let blobs_sidecar =
|
||||
accumulated_sidecars.pop_front().ok_or("missing sidecar")?;
|
||||
Ok(BlockWrapper::BlockAndBlob {
|
||||
block_sidecar_pair: SignedBeaconBlockAndBlobsSidecar {
|
||||
Ok(BlockWrapper::BlockAndBlob(
|
||||
SignedBeaconBlockAndBlobsSidecar {
|
||||
beacon_block,
|
||||
blobs_sidecar,
|
||||
},
|
||||
})
|
||||
))
|
||||
} else {
|
||||
Ok(BlockWrapper::Block {
|
||||
block: beacon_block,
|
||||
})
|
||||
Ok(BlockWrapper::Block(beacon_block))
|
||||
}
|
||||
})
|
||||
.collect::<Result<Vec<_>, _>>();
|
||||
|
||||
@@ -734,14 +734,14 @@ impl<T: BeaconChainTypes> SyncManager<T> {
|
||||
RequestId::SingleBlock { id } => self.block_lookups.single_block_lookup_response(
|
||||
id,
|
||||
peer_id,
|
||||
beacon_block.map(|block| BlockWrapper::Block { block }),
|
||||
beacon_block.map(|block| BlockWrapper::Block(block)),
|
||||
seen_timestamp,
|
||||
&mut self.network,
|
||||
),
|
||||
RequestId::ParentLookup { id } => self.block_lookups.parent_lookup_response(
|
||||
id,
|
||||
peer_id,
|
||||
beacon_block.map(|block| BlockWrapper::Block { block }),
|
||||
beacon_block.map(|block| BlockWrapper::Block(block)),
|
||||
seen_timestamp,
|
||||
&mut self.network,
|
||||
),
|
||||
@@ -756,7 +756,7 @@ impl<T: BeaconChainTypes> SyncManager<T> {
|
||||
batch_id,
|
||||
&peer_id,
|
||||
id,
|
||||
beacon_block.map(|block| BlockWrapper::Block { block }),
|
||||
beacon_block.map(|block| BlockWrapper::Block(block)),
|
||||
) {
|
||||
Ok(ProcessResult::SyncCompleted) => self.update_sync_state(),
|
||||
Ok(ProcessResult::Successful) => {}
|
||||
@@ -780,7 +780,7 @@ impl<T: BeaconChainTypes> SyncManager<T> {
|
||||
chain_id,
|
||||
batch_id,
|
||||
id,
|
||||
beacon_block.map(|block| BlockWrapper::Block { block }),
|
||||
beacon_block.map(|block| BlockWrapper::Block(block)),
|
||||
);
|
||||
self.update_sync_state();
|
||||
}
|
||||
@@ -930,9 +930,11 @@ impl<T: BeaconChainTypes> SyncManager<T> {
|
||||
RequestId::SingleBlock { id } => self.block_lookups.single_block_lookup_response(
|
||||
id,
|
||||
peer_id,
|
||||
block_sidecar_pair.map(|block_sidecar_pair| BlockWrapper::BlockAndBlob {
|
||||
// TODO: why is this in an arc
|
||||
block_sidecar_pair: (*block_sidecar_pair).clone(),
|
||||
block_sidecar_pair.map(|block_sidecar_pair| {
|
||||
BlockWrapper::BlockAndBlob(
|
||||
// TODO: why is this in an arc
|
||||
(*block_sidecar_pair).clone(),
|
||||
)
|
||||
}),
|
||||
seen_timestamp,
|
||||
&mut self.network,
|
||||
@@ -940,9 +942,11 @@ impl<T: BeaconChainTypes> SyncManager<T> {
|
||||
RequestId::ParentLookup { id } => self.block_lookups.parent_lookup_response(
|
||||
id,
|
||||
peer_id,
|
||||
block_sidecar_pair.map(|block_sidecar_pair| BlockWrapper::BlockAndBlob {
|
||||
// TODO: why is this in an arc
|
||||
block_sidecar_pair: (*block_sidecar_pair).clone(),
|
||||
block_sidecar_pair.map(|block_sidecar_pair| {
|
||||
BlockWrapper::BlockAndBlob(
|
||||
// TODO: why is this in an arc
|
||||
(*block_sidecar_pair).clone(),
|
||||
)
|
||||
}),
|
||||
seen_timestamp,
|
||||
&mut self.network,
|
||||
|
||||
@@ -25,11 +25,11 @@ impl<T: EthSpec> BatchTy<T> {
|
||||
match self {
|
||||
BatchTy::Blocks(blocks) => blocks
|
||||
.into_iter()
|
||||
.map(|block| BlockWrapper::Block { block })
|
||||
.map(|block| BlockWrapper::Block(block))
|
||||
.collect(),
|
||||
BatchTy::BlocksAndBlobs(block_sidecar_pair) => block_sidecar_pair
|
||||
.into_iter()
|
||||
.map(|block_sidecar_pair| BlockWrapper::BlockAndBlob { block_sidecar_pair })
|
||||
.map(|block_sidecar_pair| BlockWrapper::BlockAndBlob(block_sidecar_pair))
|
||||
.collect(),
|
||||
}
|
||||
}
|
||||
@@ -413,7 +413,7 @@ impl<T: EthSpec, B: BatchConfig> BatchInfo<T, B> {
|
||||
match self.batch_type {
|
||||
ExpectedBatchTy::OnlyBlockBlobs => {
|
||||
let blocks = blocks.into_iter().map(|block| {
|
||||
let BlockWrapper::BlockAndBlob { block_sidecar_pair: block_and_blob } = block else {
|
||||
let BlockWrapper::BlockAndBlob(block_and_blob) = block else {
|
||||
panic!("Batches should never have a mixed type. This is a bug. Contact D")
|
||||
};
|
||||
block_and_blob
|
||||
@@ -422,7 +422,7 @@ impl<T: EthSpec, B: BatchConfig> BatchInfo<T, B> {
|
||||
}
|
||||
ExpectedBatchTy::OnlyBlock => {
|
||||
let blocks = blocks.into_iter().map(|block| {
|
||||
let BlockWrapper::Block { block } = block else {
|
||||
let BlockWrapper::Block(block) = block else {
|
||||
panic!("Batches should never have a mixed type. This is a bug. Contact D")
|
||||
};
|
||||
block
|
||||
|
||||
Reference in New Issue
Block a user