Trait hotshot_types::traits::block_contents::BlockHeader

source ·
pub trait BlockHeader<TYPES: NodeType>:
    Serialize
    + Clone
    + Debug
    + Hash
    + PartialEq
    + Eq
    + Send
    + Sync
    + DeserializeOwned
    + Committable {
    type Error: Error + Debug + Send + Sync;

    // Required methods
    fn new_legacy(
        parent_state: &TYPES::ValidatedState,
        instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance,
        parent_leaf: &Leaf2<TYPES>,
        payload_commitment: VidCommitment,
        builder_commitment: BuilderCommitment,
        metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata,
        builder_fee: BuilderFee<TYPES>,
        vid_common: VidCommon,
        version: Version,
    ) -> impl Future<Output = Result<Self, Self::Error>> + Send;
    fn new_marketplace(
        parent_state: &TYPES::ValidatedState,
        instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance,
        parent_leaf: &Leaf2<TYPES>,
        payload_commitment: VidCommitment,
        builder_commitment: BuilderCommitment,
        metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata,
        builder_fee: Vec<BuilderFee<TYPES>>,
        view_number: u64,
        vid_common: VidCommon,
        auction_results: Option<TYPES::AuctionResult>,
        version: Version,
    ) -> impl Future<Output = Result<Self, Self::Error>> + Send;
    fn genesis(
        instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance,
        payload_commitment: VidCommitment,
        builder_commitment: BuilderCommitment,
        metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata,
    ) -> Self;
    fn block_number(&self) -> u64;
    fn payload_commitment(&self) -> VidCommitment;
    fn metadata(
        &self,
    ) -> &<TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata;
    fn builder_commitment(&self) -> BuilderCommitment;
    fn get_auction_results(&self) -> Option<TYPES::AuctionResult>;
}
Expand description

Header of a block, which commits to a BlockPayload.

Required Associated Types§

source

type Error: Error + Debug + Send + Sync

Error type for this type of block header

Required Methods§

source

fn new_legacy( parent_state: &TYPES::ValidatedState, instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance, parent_leaf: &Leaf2<TYPES>, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata, builder_fee: BuilderFee<TYPES>, vid_common: VidCommon, version: Version, ) -> impl Future<Output = Result<Self, Self::Error>> + Send

Build a header with the parent validate state, instance-level state, parent leaf, payload and builder commitments, and metadata. This is only used in pre-marketplace versions

source

fn new_marketplace( parent_state: &TYPES::ValidatedState, instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance, parent_leaf: &Leaf2<TYPES>, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata, builder_fee: Vec<BuilderFee<TYPES>>, view_number: u64, vid_common: VidCommon, auction_results: Option<TYPES::AuctionResult>, version: Version, ) -> impl Future<Output = Result<Self, Self::Error>> + Send

Build a header with the parent validate state, instance-level state, parent leaf, payload and builder commitments, metadata, and auction results. This is only used in post-marketplace versions

source

fn genesis( instance_state: &<TYPES::ValidatedState as ValidatedState<TYPES>>::Instance, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata, ) -> Self

Build the genesis header, payload, and metadata.

source

fn block_number(&self) -> u64

Get the block number.

source

fn payload_commitment(&self) -> VidCommitment

Get the payload commitment.

source

fn metadata(&self) -> &<TYPES::BlockPayload as BlockPayload<TYPES>>::Metadata

Get the metadata.

source

fn builder_commitment(&self) -> BuilderCommitment

Get the builder commitment

source

fn get_auction_results(&self) -> Option<TYPES::AuctionResult>

Get the results of the auction for this Header. Only used in post-marketplace versions

Object Safety§

This trait is not object safe.

Implementors§