Struct ckb_types::core::BlockView

source ·
pub struct BlockView { /* private fields */ }
Expand description

A readonly and immutable struct which includes Block and its associated hashes.

Notice

This struct is not implement the trait Default, use BlockBuilder to construct it.

Implementations§

source§

impl BlockView

source

pub fn new_advanced_builder() -> BlockBuilder

Creates an empty advanced builder.

source

pub fn as_advanced_builder(&self) -> BlockBuilder

Creates an advanced builder base on current data.

source§

impl BlockView

source

pub fn data(&self) -> Block

Gets a clone of packed::Block.

source

pub fn hash(&self) -> Byte32

Gets a clone of hash.

source

pub fn uncle_hashes(&self) -> Byte32Vec

Gets a clone of uncle_hashes.

source

pub fn tx_hashes(&self) -> &[Byte32]

Extracts a slice of tx_hashes.

source

pub fn tx_witness_hashes(&self) -> &[Byte32]

Extracts a slice of tx_witness_hashes.

source

pub fn version(&self) -> Version

Gets header.raw.version.

source

pub fn number(&self) -> BlockNumber

Gets header.raw.number.

source

pub fn compact_target(&self) -> u32

Gets header.raw.compact_target.

source

pub fn timestamp(&self) -> u64

Gets header.raw.timestamp.

source

pub fn epoch(&self) -> EpochNumberWithFraction

Gets header.raw.epoch.

source

pub fn parent_hash(&self) -> Byte32

Gets header.raw.parent_hash.

source

pub fn transactions_root(&self) -> Byte32

Gets header.raw.transactions_root.

source

pub fn proposals_hash(&self) -> Byte32

Gets header.raw.proposals_hash.

source

pub fn extra_hash(&self) -> Byte32

Gets header.raw.extra_hash.

source

pub fn dao(&self) -> Byte32

Gets header.raw.dao.

source

pub fn nonce(&self) -> u128

Gets header.nonce.

source

pub fn difficulty(&self) -> U256

Gets header.difficulty.

source

pub fn header(&self) -> HeaderView

Gets header.

source

pub fn uncles(&self) -> UncleBlockVecView

Gets uncles.

source

pub fn extension(&self) -> Option<Bytes>

Gets extension.

Panics

Panics if the extension exists but not a valid Bytes.

source

pub fn as_uncle(&self) -> UncleBlockView

Converts into an uncle block.

source

pub fn transactions(&self) -> Vec<TransactionView>

Gets transactions.

source

pub fn union_proposal_ids_iter(&self) -> impl Iterator<Item = ProposalShortId>

Creates an iterator from proposals of the block and proposals of uncles.

source

pub fn union_proposal_ids(&self) -> HashSet<ProposalShortId>

Creates a hashset from proposals of the block and proposals of uncles.

source

pub fn transaction(&self, index: usize) -> Option<TransactionView>

Gets a transaction through its index.

source

pub fn output(&self, tx_index: usize, index: usize) -> Option<CellOutput>

Gets an output through its transaction index and its own index.

source

pub fn fake_hash(self, hash: Byte32) -> Self

Sets a fake header hash.

source

pub fn is_genesis(&self) -> bool

Checks whether the block is the genesis block.

source

pub fn calc_uncles_hash(&self) -> Byte32

Calculates the hash for uncle blocks.

source

pub fn calc_extension_hash(&self) -> Option<Byte32>

Calculates the hash for extension.

source

pub fn calc_extra_hash(&self) -> ExtraHashView

Calculates the extra hash.

source

pub fn calc_proposals_hash(&self) -> Byte32

Calculates the hash for proposals.

source

pub fn calc_transactions_root(&self) -> Byte32

Calculates the merkel root for transactions with witnesses.

source

pub fn calc_raw_transactions_root(&self) -> Byte32

Calculates the merkle root for transactions without witnesses.

source

pub fn calc_witnesses_root(&self) -> Byte32

Calculates the merkle root for transaction witnesses.

source§

impl BlockView

source

pub fn new_unchecked( header: HeaderView, uncles: UncleBlockVecView, body: Vec<TransactionView>, proposals: ProposalShortIdVec ) -> Self

Creates a new BlockView.

Notice

BlockView created by this method could have invalid hashes or invalid merkle roots in the header.

source

pub fn new_unchecked_with_extension( header: HeaderView, uncles: UncleBlockVecView, body: Vec<TransactionView>, proposals: ProposalShortIdVec, extension: Bytes ) -> Self

Creates a new BlockView with a extension.

Notice

BlockView created by this method could have invalid hashes or invalid merkle roots in the header.

source§

impl BlockView

source

pub fn digest(&self) -> HeaderDigest

Get the MMR header digest of the block

Trait Implementations§

source§

impl Clone for BlockView

source§

fn clone(&self) -> BlockView

Returns a copy 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 Debug for BlockView

source§

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

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

impl Display for BlockView

source§

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

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

impl Hash for BlockView

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<BlockView> for BlockView

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for BlockView

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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> ToOwned for Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V