pub struct ProposedBlock {
pub chain_id: ChainId,
pub epoch: Epoch,
pub incoming_bundles: Vec<IncomingBundle>,
pub operations: Vec<Operation>,
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: ChainId
The chain to which this block belongs.
epoch: Epoch
The number identifying the current configuration.
incoming_bundles: Vec<IncomingBundle>
A selection of incoming messages to be executed first. Successive messages of same sender and height are grouped together for conciseness.
operations: Vec<Operation>
The operations to execute.
height: BlockHeight
The block height.
timestamp: Timestamp
The 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 incoming_bundles( &self, ctx: &Context<'_>, ) -> Result<&Vec<IncomingBundle>>
pub async fn operations(&self, ctx: &Context<'_>) -> Result<&Vec<Operation>>
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 PostedMessage
s in this block.
Sourcepub fn message_count(&self) -> usize
pub fn message_count(&self) -> usize
Returns the number of incoming messages.
Sourcepub fn transactions(&self) -> impl Iterator<Item = (u32, Transaction<'_>)>
pub fn transactions(&self) -> impl Iterator<Item = (u32, Transaction<'_>)>
Returns an iterator over all transactions, by index.
pub fn check_proposal_size( &self, maximum_block_proposal_size: u64, ) -> Result<(), ChainError>
Sourcepub fn message_id(&self, index: u32) -> MessageId
pub fn message_id(&self, index: u32) -> MessageId
Returns the message ID belonging to the index
th outgoing message in this block.
Trait Implementations§
Source§impl Clone for ProposedBlock
impl Clone for ProposedBlock
Source§fn clone(&self) -> ProposedBlock
fn clone(&self) -> ProposedBlock
1.0.0 · Source§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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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
.