pub struct ProposedBlock {
pub chain_id: ChainId,
pub epoch: Epoch,
pub transactions: Vec<Transaction>,
pub height: BlockHeight,
pub timestamp: Timestamp,
pub authenticated_signer: Option<AccountOwner>,
pub previous_block_hash: Option<CryptoHash>,
}Expand description
A block containing operations to apply on a given chain, as well as the acknowledgment of a number of incoming messages from other chains.
- Incoming messages must be selected in the order they were produced by the sending chain, but can be skipped.
- When a block is proposed to a validator, all cross-chain messages must have been received ahead of time in the inbox of the chain.
- This constraint does not apply to the execution of confirmed blocks.
Fields§
§chain_id: ChainIdThe chain to which this block belongs.
epoch: EpochThe number identifying the current configuration.
transactions: Vec<Transaction>The transactions to execute in this block. Each transaction can be either incoming messages or an operation.
height: BlockHeightThe block height.
timestamp: TimestampThe timestamp when this block was created. This must be later than all messages received in this block, but no later than the current time.
authenticated_signer: Option<AccountOwner>The user signing for the operations in the block and paying for their execution
fees. If set, this must be the owner in the block proposal. None means that
the default account of the chain is used. This value is also used as recipient of
potential refunds for the message grants created by the operations.
previous_block_hash: Option<CryptoHash>Certified hash (see Certificate below) of the previous block in the
chain, if any.
Implementations§
Source§impl ProposedBlock
impl ProposedBlock
pub async fn chain_id(&self, ctx: &Context<'_>) -> Result<&ChainId>
pub async fn epoch(&self, ctx: &Context<'_>) -> Result<&Epoch>
pub async fn height(&self, ctx: &Context<'_>) -> Result<&BlockHeight>
pub async fn timestamp(&self, ctx: &Context<'_>) -> Result<&Timestamp>
pub async fn authenticated_signer( &self, ctx: &Context<'_>, ) -> Result<&Option<AccountOwner>>
pub async fn previous_block_hash( &self, ctx: &Context<'_>, ) -> Result<&Option<CryptoHash>>
Source§impl ProposedBlock
impl ProposedBlock
Sourcepub fn published_blob_ids(&self) -> BTreeSet<BlobId>
pub fn published_blob_ids(&self) -> BTreeSet<BlobId>
Returns all the published blob IDs in this block’s operations.
Sourcepub fn has_only_rejected_messages(&self) -> bool
pub fn has_only_rejected_messages(&self) -> bool
Returns whether the block contains only rejected incoming messages, which makes it admissible even on closed chains.
Sourcepub fn incoming_messages(&self) -> impl Iterator<Item = &PostedMessage>
pub fn incoming_messages(&self) -> impl Iterator<Item = &PostedMessage>
Returns an iterator over all incoming PostedMessages in this block.
Sourcepub fn message_count(&self) -> usize
pub fn message_count(&self) -> usize
Returns the number of incoming messages.
Sourcepub fn transaction_refs(&self) -> impl Iterator<Item = &Transaction>
pub fn transaction_refs(&self) -> impl Iterator<Item = &Transaction>
Returns an iterator over all transactions as references.
Sourcepub fn operations(&self) -> impl Iterator<Item = &Operation>
pub fn operations(&self) -> impl Iterator<Item = &Operation>
Returns all operations in this block.
Sourcepub fn incoming_bundles(&self) -> impl Iterator<Item = &IncomingBundle>
pub fn incoming_bundles(&self) -> impl Iterator<Item = &IncomingBundle>
Returns all incoming bundles in this block.
pub fn check_proposal_size( &self, maximum_block_proposal_size: u64, ) -> Result<(), ChainError>
Trait Implementations§
Source§impl Allocative for ProposedBlock
impl Allocative for ProposedBlock
Source§impl Clone for ProposedBlock
impl Clone for ProposedBlock
Source§fn clone(&self) -> ProposedBlock
fn clone(&self) -> ProposedBlock
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ContainerType for ProposedBlock
impl ContainerType for ProposedBlock
Source§async fn resolve_field(&self, ctx: &Context<'_>) -> ServerResult<Option<Value>>
async fn resolve_field(&self, ctx: &Context<'_>) -> ServerResult<Option<Value>>
async_graphql::Value. Read moreSource§fn collect_all_fields<'a>(
&'a self,
ctx: &ContextBase<'a, &'a Positioned<SelectionSet>>,
fields: &mut Fields<'a>,
) -> Result<(), ServerError>
fn collect_all_fields<'a>( &'a self, ctx: &ContextBase<'a, &'a Positioned<SelectionSet>>, fields: &mut Fields<'a>, ) -> Result<(), ServerError>
Source§fn find_entity(
&self,
_: &ContextBase<'_, &Positioned<Field>>,
_params: &ConstValue,
) -> impl Future<Output = Result<Option<ConstValue>, ServerError>> + Send
fn find_entity( &self, _: &ContextBase<'_, &Positioned<Field>>, _params: &ConstValue, ) -> impl Future<Output = Result<Option<ConstValue>, ServerError>> + Send
Source§impl Debug for ProposedBlock
impl Debug for ProposedBlock
Source§impl<'de> Deserialize<'de> for ProposedBlock
impl<'de> Deserialize<'de> for ProposedBlock
Source§fn 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>,
Source§impl Hash for ProposedBlock
impl Hash for ProposedBlock
Source§impl OutputType for ProposedBlock
impl OutputType for ProposedBlock
Source§fn create_type_info(registry: &mut Registry) -> String
fn create_type_info(registry: &mut Registry) -> String
Source§async fn resolve(
&self,
ctx: &ContextSelectionSet<'_>,
_field: &Positioned<Field>,
) -> ServerResult<Value>
async fn resolve( &self, ctx: &ContextSelectionSet<'_>, _field: &Positioned<Field>, ) -> ServerResult<Value>
async_graphql::Value.Source§fn qualified_type_name() -> String
fn qualified_type_name() -> String
Source§impl PartialEq for ProposedBlock
impl PartialEq for ProposedBlock
Source§impl Serialize for ProposedBlock
impl Serialize for ProposedBlock
impl Eq for ProposedBlock
impl ObjectType for ProposedBlock
impl StructuralPartialEq for ProposedBlock
Auto Trait Implementations§
impl Freeze for ProposedBlock
impl RefUnwindSafe for ProposedBlock
impl Send for ProposedBlock
impl Sync for ProposedBlock
impl Unpin for ProposedBlock
impl UnwindSafe for ProposedBlock
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
Source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length bytes from memory from the provided location.
Source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes to memory at the provided location.