Struct BeaconChainHeader

Source
#[non_exhaustive]
pub struct BeaconChainHeader<'a> { /* private fields */ }
Expand description

Block header that corresponds to the beacon chain

Implementations§

Source§

impl<'a> BeaconChainHeader<'a>

Source

pub fn try_from_bytes(bytes: &'a [u8]) -> Option<(Self, &'a [u8])>

Try to create a new instance from provided bytes.

bytes should be 8-bytes aligned.

Returns an instance and remaining bytes on success, None if too few bytes were given, bytes are not properly aligned or input is otherwise invalid.

Source

pub fn is_internally_consistent(&self) -> bool

Check block header’s internal consistency.

This is usually not necessary to be called explicitly since internal consistency is checked by Self::try_from_bytes() internally.

Source

pub fn try_from_bytes_unchecked(bytes: &'a [u8]) -> Option<(Self, &'a [u8])>

The same as Self::try_from_bytes(), but for trusted input that skips some consistency checks

Source

pub fn to_owned(self) -> OwnedBeaconChainHeader

Create an owned version of this header

Source

pub fn shared(&self) -> &SharedBlockHeader<'a>

Shared block header

Source

pub fn child_shard_blocks(&self) -> &BlockHeaderChildShardBlocks<'a>

Information about child shard blocks

Source

pub fn consensus_parameters(&self) -> &BlockHeaderConsensusParameters<'a>

Consensus parameters (on the beacon chain)

Source

pub fn pre_seal_hash(&self) -> Blake3Hash

Hash of the block before seal is applied to it

Source

pub fn is_sealed_correctly(&self) -> bool

Verify seal against BeaconChainHeader::pre_seal_hash() and check that its public key hash corresponds to the solution

Source

pub fn root(&self) -> impl Deref<Target = BlockRoot>

Compute block root out of this header.

Block root is a Merkle Tree Root. The leaves are derived from individual fields in SharedBlockHeader and other fields of this enum in the declaration order.

Note that this method computes root by doing a bunch of hashing. The result is then cached if alloc feature is enabled or when compiled for OS target that is not none.

Trait Implementations§

Source§

impl<'a> Clone for BeaconChainHeader<'a>

Source§

fn clone(&self) -> BeaconChainHeader<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for BeaconChainHeader<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Deref for BeaconChainHeader<'a>

Source§

type Target = SharedBlockHeader<'a>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'a> From<BeaconChainHeader<'a>> for BlockHeader<'a>

Source§

fn from(value: BeaconChainHeader<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> GenericBlockHeader<'a> for BeaconChainHeader<'a>

Source§

type Owned = OwnedBeaconChainHeader

Owned block header
Source§

fn to_owned(self) -> Self::Owned

Turn into owned version
Source§

fn root(&self) -> impl Deref<Target = BlockRoot>

Compute block root out of this header. Read more
Source§

impl<'a> Yokeable<'a> for BeaconChainHeader<'static>

Source§

type Output = BeaconChainHeader<'a>

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
Source§

fn transform(&'a self) -> &'a Self::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
Source§

fn transform_owned(self) -> Self::Output

This method must cast self between Self<'static> and Self<'a>. Read more
Source§

unsafe fn make(this: Self::Output) -> Self

This method can be used to cast away Self<'a>’s lifetime. Read more
Source§

fn transform_mut<F>(&'a mut self, f: F)
where F: 'static + for<'b> FnOnce(&'b mut Self::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>, and pass it to f. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for BeaconChainHeader<'a>

§

impl<'a> !RefUnwindSafe for BeaconChainHeader<'a>

§

impl<'a> Send for BeaconChainHeader<'a>

§

impl<'a> Sync for BeaconChainHeader<'a>

§

impl<'a> Unpin for BeaconChainHeader<'a>

§

impl<'a> !UnwindSafe for BeaconChainHeader<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> JsonSchemaMaybe for T