migrate types to API crate
This commit is contained in:
parent
b303d2fb7e
commit
fb7d729d92
@ -31,7 +31,8 @@ use beacon_chain::{
|
|||||||
pub use block_id::BlockId;
|
pub use block_id::BlockId;
|
||||||
use directory::DEFAULT_ROOT_DIR;
|
use directory::DEFAULT_ROOT_DIR;
|
||||||
use eth2::types::{
|
use eth2::types::{
|
||||||
self as api_types, EndpointVersion, SkipRandaoVerification, ValidatorId, ValidatorStatus,
|
self as api_types, EndpointVersion, SignedBlockContents, SkipRandaoVerification, ValidatorId,
|
||||||
|
ValidatorStatus,
|
||||||
};
|
};
|
||||||
use lighthouse_network::{types::SyncState, EnrExt, NetworkGlobals, PeerId, PubsubMessage};
|
use lighthouse_network::{types::SyncState, EnrExt, NetworkGlobals, PeerId, PubsubMessage};
|
||||||
use lighthouse_version::version_with_platform;
|
use lighthouse_version::version_with_platform;
|
||||||
@ -57,7 +58,7 @@ use types::{
|
|||||||
Attestation, AttestationData, AttesterSlashing, BeaconStateError, BlindedPayload,
|
Attestation, AttestationData, AttesterSlashing, BeaconStateError, BlindedPayload,
|
||||||
CommitteeCache, ConfigAndPreset, Epoch, EthSpec, ForkName, FullPayload,
|
CommitteeCache, ConfigAndPreset, Epoch, EthSpec, ForkName, FullPayload,
|
||||||
ProposerPreparationData, ProposerSlashing, RelativeEpoch, SignedAggregateAndProof,
|
ProposerPreparationData, ProposerSlashing, RelativeEpoch, SignedAggregateAndProof,
|
||||||
SignedBeaconBlock, SignedBlindedBeaconBlock, SignedBlockContents, SignedBlsToExecutionChange,
|
SignedBeaconBlock, SignedBlindedBeaconBlock, SignedBlsToExecutionChange,
|
||||||
SignedContributionAndProof, SignedValidatorRegistrationData, SignedVoluntaryExit, Slot,
|
SignedContributionAndProof, SignedValidatorRegistrationData, SignedVoluntaryExit, Slot,
|
||||||
SyncCommitteeMessage, SyncContributionData,
|
SyncCommitteeMessage, SyncContributionData,
|
||||||
};
|
};
|
||||||
|
@ -3,6 +3,7 @@ use beacon_chain::blob_verification::{AsBlock, BlockWrapper, IntoAvailableBlock}
|
|||||||
use beacon_chain::validator_monitor::{get_block_delay_ms, timestamp_now};
|
use beacon_chain::validator_monitor::{get_block_delay_ms, timestamp_now};
|
||||||
use beacon_chain::NotifyExecutionLayer;
|
use beacon_chain::NotifyExecutionLayer;
|
||||||
use beacon_chain::{BeaconChain, BeaconChainTypes, BlockError, CountUnrealized};
|
use beacon_chain::{BeaconChain, BeaconChainTypes, BlockError, CountUnrealized};
|
||||||
|
use eth2::types::SignedBlockContents;
|
||||||
use lighthouse_network::PubsubMessage;
|
use lighthouse_network::PubsubMessage;
|
||||||
use network::NetworkMessage;
|
use network::NetworkMessage;
|
||||||
use slog::{debug, error, info, warn, Logger};
|
use slog::{debug, error, info, warn, Logger};
|
||||||
@ -12,7 +13,7 @@ use tokio::sync::mpsc::UnboundedSender;
|
|||||||
use tree_hash::TreeHash;
|
use tree_hash::TreeHash;
|
||||||
use types::{
|
use types::{
|
||||||
AbstractExecPayload, BlindedPayload, EthSpec, ExecPayload, ExecutionBlockHash, FullPayload,
|
AbstractExecPayload, BlindedPayload, EthSpec, ExecPayload, ExecutionBlockHash, FullPayload,
|
||||||
Hash256, SignedBeaconBlock, SignedBlockContents,
|
Hash256, SignedBeaconBlock,
|
||||||
};
|
};
|
||||||
use warp::Rejection;
|
use warp::Rejection;
|
||||||
|
|
||||||
|
@ -513,12 +513,13 @@ pub async fn proposer_boost_re_org_test(
|
|||||||
let randao_reveal = harness
|
let randao_reveal = harness
|
||||||
.sign_randao_reveal(&state_b, proposer_index, slot_c)
|
.sign_randao_reveal(&state_b, proposer_index, slot_c)
|
||||||
.into();
|
.into();
|
||||||
let unsigned_block_c = tester
|
let unsigned_block_contents_c = tester
|
||||||
.client
|
.client
|
||||||
.get_validator_blocks(slot_c, &randao_reveal, None)
|
.get_validator_blocks(slot_c, &randao_reveal, None)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.data;
|
.data;
|
||||||
|
let unsigned_block_c = unsigned_block_contents_c.deconstruct().0;
|
||||||
let block_c = harness.sign_beacon_block(unsigned_block_c, &state_b);
|
let block_c = harness.sign_beacon_block(unsigned_block_c, &state_b);
|
||||||
|
|
||||||
if should_re_org {
|
if should_re_org {
|
||||||
@ -700,7 +701,9 @@ pub async fn fork_choice_before_proposal() {
|
|||||||
.get_validator_blocks::<E, FullPayload<E>>(slot_d, &randao_reveal, None)
|
.get_validator_blocks::<E, FullPayload<E>>(slot_d, &randao_reveal, None)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.data;
|
.data
|
||||||
|
.deconstruct()
|
||||||
|
.0;
|
||||||
|
|
||||||
// Head is now B.
|
// Head is now B.
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
@ -2065,7 +2065,9 @@ impl ApiTester {
|
|||||||
.get_validator_blocks::<E, FullPayload<E>>(slot, &randao_reveal, None)
|
.get_validator_blocks::<E, FullPayload<E>>(slot, &randao_reveal, None)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.data;
|
.data
|
||||||
|
.deconstruct()
|
||||||
|
.0;
|
||||||
|
|
||||||
let signed_block = block.sign(&sk, &fork, genesis_validators_root, &self.chain.spec);
|
let signed_block = block.sign(&sk, &fork, genesis_validators_root, &self.chain.spec);
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ use crate::Error as ServerError;
|
|||||||
use lighthouse_network::{ConnectionDirection, Enr, Multiaddr, PeerConnectionStatus};
|
use lighthouse_network::{ConnectionDirection, Enr, Multiaddr, PeerConnectionStatus};
|
||||||
use mime::{Mime, APPLICATION, JSON, OCTET_STREAM, STAR};
|
use mime::{Mime, APPLICATION, JSON, OCTET_STREAM, STAR};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use ssz_derive::Encode;
|
||||||
use std::cmp::Reverse;
|
use std::cmp::Reverse;
|
||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
@ -1322,3 +1323,53 @@ impl<T: EthSpec, Payload: AbstractExecPayload<T>> Into<BeaconBlock<T, Payload>>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub type BlockContentsTuple<T, Payload> = (
|
||||||
|
SignedBeaconBlock<T, Payload>,
|
||||||
|
Option<VariableList<SignedBlobSidecar<T>, <T as EthSpec>::MaxBlobsPerBlock>>,
|
||||||
|
);
|
||||||
|
|
||||||
|
/// A wrapper over a [`SignedBeaconBlock`] or a [`SignedBeaconBlockAndBlobSidecars`].
|
||||||
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||||
|
#[serde(untagged)]
|
||||||
|
#[serde(bound = "T: EthSpec")]
|
||||||
|
pub enum SignedBlockContents<T: EthSpec, Payload: AbstractExecPayload<T> = FullPayload<T>> {
|
||||||
|
BlockAndBlobSidecars(SignedBeaconBlockAndBlobSidecars<T, Payload>),
|
||||||
|
Block(SignedBeaconBlock<T, Payload>),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: EthSpec, Payload: AbstractExecPayload<T>> SignedBlockContents<T, Payload> {
|
||||||
|
pub fn signed_block(&self) -> &SignedBeaconBlock<T, Payload> {
|
||||||
|
match self {
|
||||||
|
SignedBlockContents::BlockAndBlobSidecars(block_and_sidecars) => {
|
||||||
|
&block_and_sidecars.signed_block
|
||||||
|
}
|
||||||
|
SignedBlockContents::Block(block) => block,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn deconstruct(self) -> BlockContentsTuple<T, Payload> {
|
||||||
|
match self {
|
||||||
|
SignedBlockContents::BlockAndBlobSidecars(block_and_sidecars) => (
|
||||||
|
block_and_sidecars.signed_block,
|
||||||
|
Some(block_and_sidecars.signed_blob_sidecars),
|
||||||
|
),
|
||||||
|
SignedBlockContents::Block(block) => (block, None),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: EthSpec, Payload: AbstractExecPayload<T>> From<SignedBeaconBlock<T, Payload>>
|
||||||
|
for SignedBlockContents<T, Payload>
|
||||||
|
{
|
||||||
|
fn from(block: SignedBeaconBlock<T, Payload>) -> Self {
|
||||||
|
SignedBlockContents::Block(block)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Serialize, Deserialize, Encode)]
|
||||||
|
#[serde(bound = "T: EthSpec")]
|
||||||
|
pub struct SignedBeaconBlockAndBlobSidecars<T: EthSpec, Payload: AbstractExecPayload<T>> {
|
||||||
|
pub signed_block: SignedBeaconBlock<T, Payload>,
|
||||||
|
pub signed_blob_sidecars: VariableList<SignedBlobSidecar<T>, <T as EthSpec>::MaxBlobsPerBlock>,
|
||||||
|
}
|
||||||
|
@ -102,7 +102,6 @@ pub mod blob_sidecar;
|
|||||||
pub mod blobs_sidecar;
|
pub mod blobs_sidecar;
|
||||||
pub mod signed_blob;
|
pub mod signed_blob;
|
||||||
pub mod signed_block_and_blobs;
|
pub mod signed_block_and_blobs;
|
||||||
pub mod signed_block_contents;
|
|
||||||
pub mod transaction;
|
pub mod transaction;
|
||||||
|
|
||||||
use ethereum_types::{H160, H256};
|
use ethereum_types::{H160, H256};
|
||||||
@ -185,10 +184,8 @@ pub use crate::signed_beacon_block::{
|
|||||||
pub use crate::signed_beacon_block_header::SignedBeaconBlockHeader;
|
pub use crate::signed_beacon_block_header::SignedBeaconBlockHeader;
|
||||||
pub use crate::signed_blob::*;
|
pub use crate::signed_blob::*;
|
||||||
pub use crate::signed_block_and_blobs::{
|
pub use crate::signed_block_and_blobs::{
|
||||||
SignedBeaconBlockAndBlobSidecars, SignedBeaconBlockAndBlobsSidecar,
|
SignedBeaconBlockAndBlobsSidecar, SignedBeaconBlockAndBlobsSidecarDecode,
|
||||||
SignedBeaconBlockAndBlobsSidecarDecode,
|
|
||||||
};
|
};
|
||||||
pub use crate::signed_block_contents::SignedBlockContents;
|
|
||||||
pub use crate::signed_bls_to_execution_change::SignedBlsToExecutionChange;
|
pub use crate::signed_bls_to_execution_change::SignedBlsToExecutionChange;
|
||||||
pub use crate::signed_contribution_and_proof::SignedContributionAndProof;
|
pub use crate::signed_contribution_and_proof::SignedContributionAndProof;
|
||||||
pub use crate::signed_voluntary_exit::SignedVoluntaryExit;
|
pub use crate::signed_voluntary_exit::SignedVoluntaryExit;
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
use crate::{
|
use crate::{BlobsSidecar, EthSpec, SignedBeaconBlock, SignedBeaconBlockEip4844};
|
||||||
AbstractExecPayload, BlobsSidecar, EthSpec, SignedBeaconBlock, SignedBeaconBlockEip4844,
|
|
||||||
SignedBlobSidecar,
|
|
||||||
};
|
|
||||||
use derivative::Derivative;
|
use derivative::Derivative;
|
||||||
use serde_derive::{Deserialize, Serialize};
|
use serde_derive::{Deserialize, Serialize};
|
||||||
use ssz::{Decode, DecodeError};
|
use ssz::{Decode, DecodeError};
|
||||||
use ssz_derive::{Decode, Encode};
|
use ssz_derive::{Decode, Encode};
|
||||||
use ssz_types::VariableList;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tree_hash_derive::TreeHash;
|
use tree_hash_derive::TreeHash;
|
||||||
|
|
||||||
@ -37,11 +33,3 @@ impl<T: EthSpec> SignedBeaconBlockAndBlobsSidecar<T> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, Encode, TreeHash, Derivative)]
|
|
||||||
#[derivative(PartialEq, Hash(bound = "T: EthSpec"))]
|
|
||||||
#[serde(bound = "T: EthSpec")]
|
|
||||||
pub struct SignedBeaconBlockAndBlobSidecars<T: EthSpec, Payload: AbstractExecPayload<T>> {
|
|
||||||
pub signed_block: SignedBeaconBlock<T, Payload>,
|
|
||||||
pub signed_blob_sidecars: VariableList<SignedBlobSidecar<T>, <T as EthSpec>::MaxBlobsPerBlock>,
|
|
||||||
}
|
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
use crate::signed_block_and_blobs::SignedBeaconBlockAndBlobSidecars;
|
|
||||||
use crate::{AbstractExecPayload, EthSpec, FullPayload, SignedBeaconBlock, SignedBlobSidecar};
|
|
||||||
use derivative::Derivative;
|
|
||||||
use serde_derive::{Deserialize, Serialize};
|
|
||||||
use ssz_types::VariableList;
|
|
||||||
|
|
||||||
pub type BlockContentsTuple<T, Payload> = (
|
|
||||||
SignedBeaconBlock<T, Payload>,
|
|
||||||
Option<VariableList<SignedBlobSidecar<T>, <T as EthSpec>::MaxBlobsPerBlock>>,
|
|
||||||
);
|
|
||||||
|
|
||||||
/// A wrapper over a [`SignedBeaconBlock`] or a [`SignedBeaconBlockAndBlobSidecars`].
|
|
||||||
#[derive(Clone, Debug, Derivative, Serialize, Deserialize)]
|
|
||||||
#[derivative(PartialEq, Hash(bound = "T: EthSpec"))]
|
|
||||||
#[serde(untagged)]
|
|
||||||
#[serde(bound = "T: EthSpec")]
|
|
||||||
pub enum SignedBlockContents<T: EthSpec, Payload: AbstractExecPayload<T> = FullPayload<T>> {
|
|
||||||
BlockAndBlobSidecars(SignedBeaconBlockAndBlobSidecars<T, Payload>),
|
|
||||||
Block(SignedBeaconBlock<T, Payload>),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: EthSpec, Payload: AbstractExecPayload<T>> SignedBlockContents<T, Payload> {
|
|
||||||
pub fn signed_block(&self) -> &SignedBeaconBlock<T, Payload> {
|
|
||||||
match self {
|
|
||||||
SignedBlockContents::BlockAndBlobSidecars(block_and_sidecars) => {
|
|
||||||
&block_and_sidecars.signed_block
|
|
||||||
}
|
|
||||||
SignedBlockContents::Block(block) => block,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn deconstruct(self) -> BlockContentsTuple<T, Payload> {
|
|
||||||
match self {
|
|
||||||
SignedBlockContents::BlockAndBlobSidecars(block_and_sidecars) => (
|
|
||||||
block_and_sidecars.signed_block,
|
|
||||||
Some(block_and_sidecars.signed_blob_sidecars),
|
|
||||||
),
|
|
||||||
SignedBlockContents::Block(block) => (block, None),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: EthSpec, Payload: AbstractExecPayload<T>> From<SignedBeaconBlock<T, Payload>>
|
|
||||||
for SignedBlockContents<T, Payload>
|
|
||||||
{
|
|
||||||
fn from(block: SignedBeaconBlock<T, Payload>) -> Self {
|
|
||||||
SignedBlockContents::Block(block)
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,6 +7,7 @@ use crate::{
|
|||||||
};
|
};
|
||||||
use crate::{http_metrics::metrics, validator_store::ValidatorStore};
|
use crate::{http_metrics::metrics, validator_store::ValidatorStore};
|
||||||
use environment::RuntimeContext;
|
use environment::RuntimeContext;
|
||||||
|
use eth2::types::SignedBlockContents;
|
||||||
use slog::{crit, debug, error, info, trace, warn};
|
use slog::{crit, debug, error, info, trace, warn};
|
||||||
use slot_clock::SlotClock;
|
use slot_clock::SlotClock;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
@ -16,7 +17,7 @@ use tokio::sync::mpsc;
|
|||||||
use tokio::time::sleep;
|
use tokio::time::sleep;
|
||||||
use types::{
|
use types::{
|
||||||
AbstractExecPayload, BeaconBlock, BlindedPayload, BlockType, EthSpec, FullPayload, Graffiti,
|
AbstractExecPayload, BeaconBlock, BlindedPayload, BlockType, EthSpec, FullPayload, Graffiti,
|
||||||
PublicKeyBytes, SignedBlockContents, Slot,
|
PublicKeyBytes, Slot,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
Loading…
Reference in New Issue
Block a user