Struct aptos_types::block_metadata::BlockMetadata
source · [−]pub struct BlockMetadata { /* private fields */ }Expand description
Struct that will be persisted on chain to store the information of the current block.
The flow will look like following:
- The executor will pass this struct to VM at the end of a block proposal.
- The VM will use this struct to create a special system transaction that will emit an event represents the information of the current block. This transaction can’t be emitted by regular users and is generated by each of the validators on the fly. Such transaction will be executed before all of the user-submitted transactions in the blocks.
- Once that special resource is modified, the other user transactions can read the consensus info by calling into the read method of that resource, which would thus give users the information such as the current leader.
Implementations
sourceimpl BlockMetadata
impl BlockMetadata
pub fn new(
id: HashValue,
epoch: u64,
round: u64,
proposer: AccountAddress,
proposer_index: Option<u32>,
previous_block_votes: Vec<bool>,
failed_proposer_indices: Vec<u32>,
timestamp_usecs: u64
) -> Self
pub fn id(&self) -> HashValue
pub fn get_prologue_move_args(self, signer: AccountAddress) -> Vec<MoveValue>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn timestamp_usecs(&self) -> u64
pub fn proposer(&self) -> AccountAddress
pub fn proposer_index(&self) -> Option<u32>
pub fn previous_block_votes(&self) -> &Vec<bool>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn failed_proposer_indices(&self) -> &Vec<u32>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn epoch(&self) -> u64
pub fn round(&self) -> u64
Trait Implementations
sourceimpl Clone for BlockMetadata
impl Clone for BlockMetadata
sourcefn clone(&self) -> BlockMetadata
fn clone(&self) -> BlockMetadata
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for BlockMetadata
impl Debug for BlockMetadata
sourceimpl<'de> Deserialize<'de> for BlockMetadata
impl<'de> Deserialize<'de> for BlockMetadata
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<BlockMetadata> for BlockMetadata
impl PartialEq<BlockMetadata> for BlockMetadata
sourcefn eq(&self, other: &BlockMetadata) -> bool
fn eq(&self, other: &BlockMetadata) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &BlockMetadata) -> bool
fn ne(&self, other: &BlockMetadata) -> bool
This method tests for !=.
sourceimpl Serialize for BlockMetadata
impl Serialize for BlockMetadata
impl Eq for BlockMetadata
impl StructuralEq for BlockMetadata
impl StructuralPartialEq for BlockMetadata
Auto Trait Implementations
impl RefUnwindSafe for BlockMetadata
impl Send for BlockMetadata
impl Sync for BlockMetadata
impl Unpin for BlockMetadata
impl UnwindSafe for BlockMetadata
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key and return true if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
sourcefn test_only_hash(&self) -> HashValue
fn test_only_hash(&self) -> HashValue
Generates a hash used only for tests.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more