Type Alias TransactionExtension
pub type TransactionExtension = GenericTransactionExtension<((GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Era, <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Compact<u32>, ()>, GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<Compact<u128>, ()>), ())>;
Expand description
Signed extension that is used by most chains.
Aliased Type§
struct TransactionExtension {
pub payload: (((), (), (), (), Era, Compact<u32>, (), Compact<u128>), ()),
/* private fields */
}
Fields§
§payload: (((), (), (), (), Era, Compact<u32>, (), Compact<u128>), ())
A payload that is included in the transaction.
Implementations
Trait Implementations
§impl<S> Decode for GenericTransactionExtension<S>
impl<S> Decode for GenericTransactionExtension<S>
§fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<GenericTransactionExtension<S>, Error>where
__CodecInputEdqy: Input,
fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<GenericTransactionExtension<S>, Error>where
__CodecInputEdqy: Input,
Attempt to deserialise the value from input.
§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,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
Attempt to skip the encoded value from input. Read more
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
§impl<S> Encode for GenericTransactionExtension<S>where
S: TransactionExtensionSchema,
<S as TransactionExtensionSchema>::Payload: Encode,
impl<S> Encode for GenericTransactionExtension<S>where
S: TransactionExtensionSchema,
<S as TransactionExtensionSchema>::Payload: Encode,
§fn encode_to<__CodecOutputEdqy>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)where
__CodecOutputEdqy: Output + ?Sized,
fn encode_to<__CodecOutputEdqy>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)where
__CodecOutputEdqy: Output + ?Sized,
Convert self to a slice and append it to the destination.
§fn using_encoded<__CodecOutputReturn, __CodecUsingEncodedCallback>(
&self,
f: __CodecUsingEncodedCallback,
) -> __CodecOutputReturn
fn using_encoded<__CodecOutputReturn, __CodecUsingEncodedCallback>( &self, f: __CodecUsingEncodedCallback, ) -> __CodecOutputReturn
Convert self to a slice and then invoke the given closure with it.
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
§impl<Suffix> SuffixedCommonTransactionExtensionExt<Suffix> for GenericTransactionExtension<((GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Era, <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Compact<u32>, ()>, GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<Compact<u128>, ()>), Suffix)>where
Suffix: TransactionExtensionSchema,
impl<Suffix> SuffixedCommonTransactionExtensionExt<Suffix> for GenericTransactionExtension<((GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Era, <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Compact<u32>, ()>, GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<Compact<u128>, ()>), Suffix)>where
Suffix: TransactionExtensionSchema,
§fn from_params(
spec_version: u32,
transaction_version: u32,
era: TransactionEra<u32, <BlakeTwo256 as Hasher>::Out>,
genesis_hash: <BlakeTwo256 as Hasher>::Out,
nonce: u32,
tip: u128,
extra: (<Suffix as TransactionExtensionSchema>::Payload, <Suffix as TransactionExtensionSchema>::Implicit),
) -> GenericTransactionExtension<((GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Era, <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Compact<u32>, ()>, GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<Compact<u128>, ()>), Suffix)>
fn from_params( spec_version: u32, transaction_version: u32, era: TransactionEra<u32, <BlakeTwo256 as Hasher>::Out>, genesis_hash: <BlakeTwo256 as Hasher>::Out, nonce: u32, tip: u128, extra: (<Suffix as TransactionExtensionSchema>::Payload, <Suffix as TransactionExtensionSchema>::Implicit), ) -> GenericTransactionExtension<((GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), u32>, GenericTransactionExtensionSchema<(), <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Era, <BlakeTwo256 as Hasher>::Out>, GenericTransactionExtensionSchema<Compact<u32>, ()>, GenericTransactionExtensionSchema<(), ()>, GenericTransactionExtensionSchema<Compact<u128>, ()>), Suffix)>
Create signed extension from its components.
§impl<S, C> TransactionExtension<C> for GenericTransactionExtension<S>
impl<S, C> TransactionExtension<C> for GenericTransactionExtension<S>
§const IDENTIFIER: &'static str = "Not needed."
const IDENTIFIER: &'static str = "Not needed."
Unique identifier of this signed extension. Read more
§type Implicit = <S as TransactionExtensionSchema>::Implicit
type Implicit = <S as TransactionExtensionSchema>::Implicit
Any additional data which was known at the time of transaction construction and can be
useful in authenticating the transaction. This is determined dynamically in part from the
on-chain environment using the
implicit
function and not directly contained in the
transaction itself and therefore is considered “implicit”.§fn implicit(
&self,
) -> Result<<GenericTransactionExtension<S> as TransactionExtension<C>>::Implicit, TransactionValidityError>
fn implicit( &self, ) -> Result<<GenericTransactionExtension<S> as TransactionExtension<C>>::Implicit, TransactionValidityError>
Determine any additional data which was known at the time of transaction construction and
can be useful in authenticating the transaction. The expected usage of this is to include in
any data which is signed and verified as part of transaction validation. Also perform any
pre-signature-verification checks and return an error if needed.
§fn weight(&self, _call: &C) -> Weight
fn weight(&self, _call: &C) -> Weight
The weight consumed by executing this extension instance fully during transaction dispatch.
§fn validate(
&self,
origin: <C as Dispatchable>::RuntimeOrigin,
_call: &C,
_info: &<C as Dispatchable>::Info,
_len: usize,
_self_implicit: <GenericTransactionExtension<S> as TransactionExtension<C>>::Implicit,
_inherited_implication: &impl Encode,
_source: TransactionSource,
) -> Result<(ValidTransaction, <GenericTransactionExtension<S> as TransactionExtension<C>>::Val, <C as Dispatchable>::RuntimeOrigin), TransactionValidityError>
fn validate( &self, origin: <C as Dispatchable>::RuntimeOrigin, _call: &C, _info: &<C as Dispatchable>::Info, _len: usize, _self_implicit: <GenericTransactionExtension<S> as TransactionExtension<C>>::Implicit, _inherited_implication: &impl Encode, _source: TransactionSource, ) -> Result<(ValidTransaction, <GenericTransactionExtension<S> as TransactionExtension<C>>::Val, <C as Dispatchable>::RuntimeOrigin), TransactionValidityError>
Validate a transaction for the transaction queue. Read more
§fn prepare(
self,
_val: <GenericTransactionExtension<S> as TransactionExtension<C>>::Val,
_origin: &<C as Dispatchable>::RuntimeOrigin,
_call: &C,
_info: &<C as Dispatchable>::Info,
_len: usize,
) -> Result<<GenericTransactionExtension<S> as TransactionExtension<C>>::Pre, TransactionValidityError>
fn prepare( self, _val: <GenericTransactionExtension<S> as TransactionExtension<C>>::Val, _origin: &<C as Dispatchable>::RuntimeOrigin, _call: &C, _info: &<C as Dispatchable>::Info, _len: usize, ) -> Result<<GenericTransactionExtension<S> as TransactionExtension<C>>::Pre, TransactionValidityError>
Do any pre-flight stuff for a transaction after validation. Read more
§fn metadata() -> Vec<TransactionExtensionMetadata>
fn metadata() -> Vec<TransactionExtensionMetadata>
Returns the metadata for this extension. Read more
§fn post_dispatch_details(
_pre: Self::Pre,
_info: &<Call as Dispatchable>::Info,
_post_info: &<Call as Dispatchable>::PostInfo,
_len: usize,
_result: &Result<(), DispatchError>,
) -> Result<Weight, TransactionValidityError>
fn post_dispatch_details( _pre: Self::Pre, _info: &<Call as Dispatchable>::Info, _post_info: &<Call as Dispatchable>::PostInfo, _len: usize, _result: &Result<(), DispatchError>, ) -> Result<Weight, TransactionValidityError>
Do any post-flight stuff for an extrinsic. Read more
§fn post_dispatch(
pre: Self::Pre,
info: &<Call as Dispatchable>::Info,
post_info: &mut <Call as Dispatchable>::PostInfo,
len: usize,
result: &Result<(), DispatchError>,
) -> Result<(), TransactionValidityError>
fn post_dispatch( pre: Self::Pre, info: &<Call as Dispatchable>::Info, post_info: &mut <Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError>, ) -> Result<(), TransactionValidityError>
A wrapper for
post_dispatch_details
that
refunds the unspent weight consumed by this extension into the post dispatch information. Read more§fn bare_validate(
_call: &Call,
_info: &<Call as Dispatchable>::Info,
_len: usize,
) -> Result<ValidTransaction, TransactionValidityError>
fn bare_validate( _call: &Call, _info: &<Call as Dispatchable>::Info, _len: usize, ) -> Result<ValidTransaction, TransactionValidityError>
Validation logic for bare extrinsics. Read more