pub struct ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance> {
pub domain_block_number: DomainNumber,
pub domain_block_hash: DomainHash,
pub domain_block_extrinsic_root: DomainHash,
pub parent_domain_block_receipt_hash: DomainHash,
pub consensus_block_number: Number,
pub consensus_block_hash: Hash,
pub inboxed_bundles: Vec<InboxedBundle<DomainHash>>,
pub final_state_root: DomainHash,
pub execution_trace: Vec<DomainHash>,
pub execution_trace_root: H256,
pub block_fees: BlockFees<Balance>,
pub transfers: Transfers<Balance>,
}
Expand description
Receipt of a domain block execution.
Fields§
§domain_block_number: DomainNumber
The index of the current domain block that forms the basis of this ER.
domain_block_hash: DomainHash
The block hash corresponding to domain_block_number
.
domain_block_extrinsic_root: DomainHash
Extrinsic root field of the header of domain block referenced by this ER.
parent_domain_block_receipt_hash: DomainHash
The hash of the ER for the last domain block.
consensus_block_number: Number
A pointer to the consensus block index which contains all of the bundles that were used to derive and order all extrinsics executed by the current domain block for this ER.
consensus_block_hash: Hash
The block hash corresponding to consensus_block_number
.
inboxed_bundles: Vec<InboxedBundle<DomainHash>>
All the bundles that being included in the consensus block.
final_state_root: DomainHash
The final state root for the current domain block reflected by this ER.
Used for verifying storage proofs for domains.
execution_trace: Vec<DomainHash>
List of storage roots collected during the domain block execution.
execution_trace_root: H256
The Merkle root of the execution trace for the current domain block.
Used for verifying fraud proofs.
block_fees: BlockFees<Balance>
Compute and Domain storage fees are shared across operators and Consensus storage fees are given to the consensus block author.
transfers: Transfers<Balance>
List of transfers from this Domain to other chains
Implementations§
source§impl<Number, Hash, DomainNumber, DomainHash, Balance> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
pub fn bundles_extrinsics_roots(&self) -> Vec<&DomainHash>
pub fn valid_bundle_digest_at(&self, index: usize) -> Option<DomainHash>where
DomainHash: Copy,
pub fn valid_bundle_digests(&self) -> Vec<DomainHash>where
DomainHash: Copy,
pub fn valid_bundle_indexes(&self) -> Vec<u32>
source§impl<Number: Encode + Zero, Hash: Encode + Default, DomainNumber: Encode + Zero, DomainHash: Clone + Encode + Default, Balance: Encode + Zero + Default> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number: Encode + Zero, Hash: Encode + Default, DomainNumber: Encode + Zero, DomainHash: Clone + Encode + Default, Balance: Encode + Zero + Default> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
sourcepub fn hash<DomainHashing: HashT<Output = DomainHash>>(&self) -> DomainHash
pub fn hash<DomainHashing: HashT<Output = DomainHash>>(&self) -> DomainHash
Returns the hash of this execution receipt.
pub fn genesis( genesis_state_root: DomainHash, genesis_extrinsic_root: DomainHash, genesis_domain_block_hash: DomainHash, ) -> Self
pub fn dummy<DomainHashing>(
consensus_block_number: Number,
consensus_block_hash: Hash,
domain_block_number: DomainNumber,
parent_domain_block_receipt_hash: DomainHash,
) -> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainHashing: HashT<Output = DomainHash>,
Trait Implementations§
source§impl<Number: Clone, Hash: Clone, DomainNumber: Clone, DomainHash: Clone, Balance: Clone> Clone for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number: Clone, Hash: Clone, DomainNumber: Clone, DomainHash: Clone, Balance: Clone> Clone for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
source§fn clone(
&self,
) -> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
fn clone( &self, ) -> ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<Number: Debug, Hash: Debug, DomainNumber: Debug, DomainHash: Debug, Balance: Debug> Debug for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number: Debug, Hash: Debug, DomainNumber: Debug, DomainHash: Debug, Balance: Debug> Debug for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
source§impl<Number, Hash, DomainNumber, DomainHash, Balance> Decode for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: Decode,
DomainHash: Decode,
Number: Decode,
Hash: Decode,
Vec<InboxedBundle<DomainHash>>: Decode,
Vec<DomainHash>: Decode,
BlockFees<Balance>: Decode,
Transfers<Balance>: Decode,
impl<Number, Hash, DomainNumber, DomainHash, Balance> Decode for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: Decode,
DomainHash: Decode,
Number: Decode,
Hash: Decode,
Vec<InboxedBundle<DomainHash>>: Decode,
Vec<DomainHash>: Decode,
BlockFees<Balance>: Decode,
Transfers<Balance>: Decode,
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<Number, Hash, DomainNumber, DomainHash, Balance> Encode for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: Encode,
DomainHash: Encode,
Number: Encode,
Hash: Encode,
Vec<InboxedBundle<DomainHash>>: Encode,
Vec<DomainHash>: Encode,
BlockFees<Balance>: Encode,
Transfers<Balance>: Encode,
impl<Number, Hash, DomainNumber, DomainHash, Balance> Encode for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: Encode,
DomainHash: Encode,
Number: Encode,
Hash: Encode,
Vec<InboxedBundle<DomainHash>>: Encode,
Vec<DomainHash>: Encode,
BlockFees<Balance>: Encode,
Transfers<Balance>: Encode,
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<Number: PartialEq, Hash: PartialEq, DomainNumber: PartialEq, DomainHash: PartialEq, Balance: PartialEq> PartialEq for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number: PartialEq, Hash: PartialEq, DomainNumber: PartialEq, DomainHash: PartialEq, Balance: PartialEq> PartialEq for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
source§fn eq(
&self,
other: &ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>,
) -> bool
fn eq( &self, other: &ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>, ) -> bool
self
and other
values to be equal, and is used by ==
.source§impl<Number, Hash, DomainNumber, DomainHash, Balance> TypeInfo for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: TypeInfo + 'static,
DomainHash: TypeInfo + 'static,
Number: TypeInfo + 'static,
Hash: TypeInfo + 'static,
Vec<InboxedBundle<DomainHash>>: TypeInfo + 'static,
Vec<DomainHash>: TypeInfo + 'static,
BlockFees<Balance>: TypeInfo + 'static,
Transfers<Balance>: TypeInfo + 'static,
Balance: TypeInfo + 'static,
impl<Number, Hash, DomainNumber, DomainHash, Balance> TypeInfo for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: TypeInfo + 'static,
DomainHash: TypeInfo + 'static,
Number: TypeInfo + 'static,
Hash: TypeInfo + 'static,
Vec<InboxedBundle<DomainHash>>: TypeInfo + 'static,
Vec<DomainHash>: TypeInfo + 'static,
BlockFees<Balance>: TypeInfo + 'static,
Transfers<Balance>: TypeInfo + 'static,
Balance: TypeInfo + 'static,
impl<Number, Hash, DomainNumber, DomainHash, Balance> EncodeLike for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: Encode,
DomainHash: Encode,
Number: Encode,
Hash: Encode,
Vec<InboxedBundle<DomainHash>>: Encode,
Vec<DomainHash>: Encode,
BlockFees<Balance>: Encode,
Transfers<Balance>: Encode,
impl<Number: Eq, Hash: Eq, DomainNumber: Eq, DomainHash: Eq, Balance: Eq> Eq for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> StructuralPartialEq for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
Auto Trait Implementations§
impl<Number, Hash, DomainNumber, DomainHash, Balance> Freeze for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> RefUnwindSafe for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: RefUnwindSafe,
DomainHash: RefUnwindSafe,
Number: RefUnwindSafe,
Hash: RefUnwindSafe,
Balance: RefUnwindSafe,
impl<Number, Hash, DomainNumber, DomainHash, Balance> Send for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> Sync for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> Unpin for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>
impl<Number, Hash, DomainNumber, DomainHash, Balance> UnwindSafe for ExecutionReceipt<Number, Hash, DomainNumber, DomainHash, Balance>where
DomainNumber: UnwindSafe,
DomainHash: UnwindSafe,
Number: UnwindSafe,
Hash: UnwindSafe,
Balance: UnwindSafe + RefUnwindSafe,
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
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
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.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.