fix lints

This commit is contained in:
realbigsean
2023-04-25 18:12:16 -04:00
parent b5440f740d
commit 14e5bfae29
4 changed files with 14 additions and 30 deletions

View File

@@ -1,6 +1,5 @@
use derivative::Derivative; use derivative::Derivative;
use slot_clock::SlotClock; use slot_clock::SlotClock;
use ssz_types::FixedVector;
use state_processing::state_advance::partial_state_advance; use state_processing::state_advance::partial_state_advance;
use std::sync::Arc; use std::sync::Arc;
@@ -15,7 +14,7 @@ use crate::kzg_utils::{validate_blob, validate_blobs};
use crate::BeaconChainError; use crate::BeaconChainError;
use kzg::Kzg; use kzg::Kzg;
use std::borrow::Cow; use std::borrow::Cow;
use types::blob_sidecar::BlobIdentifier; use types::blob_sidecar::{BlobIdentifier, FixedBlobSidecarList};
use types::{ use types::{
BeaconBlockRef, BeaconState, BeaconStateError, BlobSidecar, ChainSpec, CloneConfig, Epoch, BeaconBlockRef, BeaconState, BeaconStateError, BlobSidecar, ChainSpec, CloneConfig, Epoch,
EthSpec, Hash256, KzgCommitment, RelativeEpoch, SignedBeaconBlock, SignedBeaconBlockHeader, EthSpec, Hash256, KzgCommitment, RelativeEpoch, SignedBeaconBlock, SignedBeaconBlockHeader,
@@ -588,19 +587,11 @@ impl<E: EthSpec> AsBlock<E> for &MaybeAvailableBlock<E> {
#[derivative(Hash(bound = "E: EthSpec"))] #[derivative(Hash(bound = "E: EthSpec"))]
pub enum BlockWrapper<E: EthSpec> { pub enum BlockWrapper<E: EthSpec> {
Block(Arc<SignedBeaconBlock<E>>), Block(Arc<SignedBeaconBlock<E>>),
BlockAndBlobs( BlockAndBlobs(Arc<SignedBeaconBlock<E>>, FixedBlobSidecarList<E>),
Arc<SignedBeaconBlock<E>>,
FixedVector<Option<Arc<BlobSidecar<E>>>, E::MaxBlobsPerBlock>,
),
} }
impl<E: EthSpec> BlockWrapper<E> { impl<E: EthSpec> BlockWrapper<E> {
pub fn deconstruct( pub fn deconstruct(self) -> (Arc<SignedBeaconBlock<E>>, Option<FixedBlobSidecarList<E>>) {
self,
) -> (
Arc<SignedBeaconBlock<E>>,
Option<FixedVector<Option<Arc<BlobSidecar<E>>>, E::MaxBlobsPerBlock>>,
) {
match self { match self {
BlockWrapper::Block(block) => (block, None), BlockWrapper::Block(block) => (block, None),
BlockWrapper::BlockAndBlobs(block, blobs) => (block, Some(blobs)), BlockWrapper::BlockAndBlobs(block, blobs) => (block, Some(blobs)),

View File

@@ -14,7 +14,7 @@ use std::collections::hash_map::{Entry, OccupiedEntry};
use std::collections::HashMap; use std::collections::HashMap;
use std::sync::Arc; use std::sync::Arc;
use types::beacon_block_body::KzgCommitments; use types::beacon_block_body::KzgCommitments;
use types::blob_sidecar::{BlobIdentifier, BlobSidecar}; use types::blob_sidecar::{BlobIdentifier, BlobSidecar, FixedBlobSidecarList};
use types::consts::deneb::MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS; use types::consts::deneb::MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS;
use types::{ use types::{
BeaconBlockRef, BlobSidecarList, ChainSpec, Epoch, EthSpec, ExecPayload, FullPayload, Hash256, BeaconBlockRef, BlobSidecarList, ChainSpec, Epoch, EthSpec, ExecPayload, FullPayload, Hash256,
@@ -170,7 +170,7 @@ impl<T: EthSpec, S: SlotClock> DataAvailabilityChecker<T, S> {
&self, &self,
block_root: Hash256, block_root: Hash256,
block: Arc<SignedBeaconBlock<T>>, block: Arc<SignedBeaconBlock<T>>,
blobs: FixedVector<Option<Arc<BlobSidecar<T>>>, T::MaxBlobsPerBlock>, blobs: FixedBlobSidecarList<T>,
) -> Result<BlockWrapper<T>, AvailabilityCheckError> { ) -> Result<BlockWrapper<T>, AvailabilityCheckError> {
Ok(match self.get_blob_requirements(&block)? { Ok(match self.get_blob_requirements(&block)? {
BlobRequirements::EmptyBlobs => BlockWrapper::Block(block), BlobRequirements::EmptyBlobs => BlockWrapper::Block(block),
@@ -226,17 +226,15 @@ impl<T: EthSpec, S: SlotClock> DataAvailabilityChecker<T, S> {
pub fn put_rpc_blobs( pub fn put_rpc_blobs(
&self, &self,
block_root: Hash256, block_root: Hash256,
blobs: FixedVector<Option<Arc<BlobSidecar<T>>>, T::MaxBlobsPerBlock>, blobs: FixedBlobSidecarList<T>,
) -> Result<Availability<T>, AvailabilityCheckError> { ) -> Result<Availability<T>, AvailabilityCheckError> {
// TODO(sean) we may duplicated kzg verification on some blobs we already have cached so we could optimize this // TODO(sean) we may duplicated kzg verification on some blobs we already have cached so we could optimize this
let mut verified_blobs = vec![]; let mut verified_blobs = vec![];
if let Some(kzg) = self.kzg.as_ref() { if let Some(kzg) = self.kzg.as_ref() {
for blob_opt in blobs.into_iter() { for blob in blobs.iter().flatten() {
if let Some(blob) = blob_opt {
verified_blobs.push(verify_kzg_for_blob(blob.clone(), kzg)?) verified_blobs.push(verify_kzg_for_blob(blob.clone(), kzg)?)
} }
}
} else { } else {
return Err(AvailabilityCheckError::KzgNotInitialized); return Err(AvailabilityCheckError::KzgNotInitialized);
}; };
@@ -396,11 +394,7 @@ impl<T: EthSpec, S: SlotClock> DataAvailabilityChecker<T, S> {
.kzg .kzg
.as_ref() .as_ref()
.ok_or(AvailabilityCheckError::KzgNotInitialized)?; .ok_or(AvailabilityCheckError::KzgNotInitialized)?;
let filtered_blobs = blob_list let filtered_blobs = blob_list.iter().flatten().cloned().collect();
.to_vec()
.into_iter()
.filter_map(|blob| blob)
.collect();
let verified_blobs = verify_kzg_for_blob_list(filtered_blobs, kzg)?; let verified_blobs = verify_kzg_for_blob_list(filtered_blobs, kzg)?;
Ok(MaybeAvailableBlock::Available( Ok(MaybeAvailableBlock::Available(
@@ -695,11 +689,7 @@ impl<E: EthSpec> AsBlock<E> for AvailableBlock<E> {
fn into_block_wrapper(self) -> BlockWrapper<E> { fn into_block_wrapper(self) -> BlockWrapper<E> {
let (block, blobs_opt) = self.deconstruct(); let (block, blobs_opt) = self.deconstruct();
if let Some(blobs) = blobs_opt { if let Some(blobs) = blobs_opt {
let blobs_vec = blobs let blobs_vec = blobs.iter().cloned().map(Option::Some).collect::<Vec<_>>();
.to_vec()
.into_iter()
.map(Option::Some)
.collect::<Vec<_>>();
BlockWrapper::BlockAndBlobs(block, FixedVector::from(blobs_vec)) BlockWrapper::BlockAndBlobs(block, FixedVector::from(blobs_vec))
} else { } else {
BlockWrapper::Block(block) BlockWrapper::Block(block)

View File

@@ -12,6 +12,7 @@ use beacon_chain::{
test_utils::{build_log, BeaconChainHarness, EphemeralHarnessType}, test_utils::{build_log, BeaconChainHarness, EphemeralHarnessType},
}; };
pub use genesis::{interop_genesis_state, DEFAULT_ETH1_BLOCK_HASH}; pub use genesis::{interop_genesis_state, DEFAULT_ETH1_BLOCK_HASH};
use lighthouse_network::rpc::RPCResponseErrorCode;
use lighthouse_network::{NetworkGlobals, Request}; use lighthouse_network::{NetworkGlobals, Request};
use slot_clock::TestingSlotClock; use slot_clock::TestingSlotClock;
use std::time::Duration; use std::time::Duration;

View File

@@ -5,7 +5,7 @@ use kzg::{KzgCommitment, KzgProof};
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use ssz::Encode; use ssz::Encode;
use ssz_derive::{Decode, Encode}; use ssz_derive::{Decode, Encode};
use ssz_types::VariableList; use ssz_types::{FixedVector, VariableList};
use std::sync::Arc; use std::sync::Arc;
use test_random_derive::TestRandom; use test_random_derive::TestRandom;
use tree_hash_derive::TreeHash; use tree_hash_derive::TreeHash;
@@ -74,6 +74,8 @@ impl<T: EthSpec> Ord for BlobSidecar<T> {
} }
pub type BlobSidecarList<T> = VariableList<Arc<BlobSidecar<T>>, <T as EthSpec>::MaxBlobsPerBlock>; pub type BlobSidecarList<T> = VariableList<Arc<BlobSidecar<T>>, <T as EthSpec>::MaxBlobsPerBlock>;
pub type FixedBlobSidecarList<T> =
FixedVector<Option<Arc<BlobSidecar<T>>>, <T as EthSpec>::MaxBlobsPerBlock>;
pub type Blobs<T> = VariableList<Blob<T>, <T as EthSpec>::MaxExtraDataBytes>; pub type Blobs<T> = VariableList<Blob<T>, <T as EthSpec>::MaxExtraDataBytes>;
impl<T: EthSpec> SignedRoot for BlobSidecar<T> {} impl<T: EthSpec> SignedRoot for BlobSidecar<T> {}