pub struct CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions = InvalidVersion> {
pub format: ExtrinsicFormat<AccountId, ExtensionV0, ExtensionOtherVersions>,
pub function: Call,
}Expand description
Definition of something that the external world might want to say; its existence implies that it has been checked and is good, particularly with regards to the signature.
This is typically passed into traits::Applyable::apply, which should execute
CheckedExtrinsic::function, alongside all other bits and bobs.
Bare extrinsics and signed extrinsics are extended with the transaction extension version 0,
specified by the generic parameter ExtensionV0.
General extrinsics support multiple transaction extension versions, specified by both
ExtensionV0 and ExtensionOtherVersions, by default ExtensionOtherVersions is set to
invalid version, making ExtensionV0 the only supported version. If you want to support more
versions, you need to specify the ExtensionOtherVersions parameter.
Fields§
§format: ExtrinsicFormat<AccountId, ExtensionV0, ExtensionOtherVersions>Who this purports to be from and the number of extrinsics have come before from the same signer, if anyone (note this is not a signature).
function: CallThe function that should be called.
Implementations§
Source§impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
Call: Dispatchable + Encode,
ExtensionV0: TransactionExtension<Call>,
ExtensionOtherVersions: Pipeline<Call>,
<Call as Dispatchable>::RuntimeOrigin: AsTransactionAuthorizedOrigin,
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
Call: Dispatchable + Encode,
ExtensionV0: TransactionExtension<Call>,
ExtensionOtherVersions: Pipeline<Call>,
<Call as Dispatchable>::RuntimeOrigin: AsTransactionAuthorizedOrigin,
Sourcepub fn extension_weight(&self) -> Weight
pub fn extension_weight(&self) -> Weight
Returns the weight of the extension of this transaction, if present. If the transaction doesn’t use any extension, the weight returned is equal to zero.
Trait Implementations§
Source§impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions, RuntimeOrigin> Applyable for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
AccountId: Member + MaybeDisplay,
Call: Member + Dispatchable<RuntimeOrigin = RuntimeOrigin> + Encode,
ExtensionV0: TransactionExtension<Call>,
ExtensionOtherVersions: Pipeline<Call>,
RuntimeOrigin: From<Option<AccountId>> + AsTransactionAuthorizedOrigin,
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions, RuntimeOrigin> Applyable for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
AccountId: Member + MaybeDisplay,
Call: Member + Dispatchable<RuntimeOrigin = RuntimeOrigin> + Encode,
ExtensionV0: TransactionExtension<Call>,
ExtensionOtherVersions: Pipeline<Call>,
RuntimeOrigin: From<Option<AccountId>> + AsTransactionAuthorizedOrigin,
Source§fn validate<I: ValidateUnsigned<Call = Self::Call>>(
&self,
source: TransactionSource,
info: &DispatchInfoOf<Self::Call>,
len: usize,
) -> TransactionValidity
fn validate<I: ValidateUnsigned<Call = Self::Call>>( &self, source: TransactionSource, info: &DispatchInfoOf<Self::Call>, len: usize, ) -> TransactionValidity
Source§fn apply<I: ValidateUnsigned<Call = Self::Call>>(
self,
info: &DispatchInfoOf<Self::Call>,
len: usize,
) -> ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Self::Call>>
fn apply<I: ValidateUnsigned<Call = Self::Call>>( self, info: &DispatchInfoOf<Self::Call>, len: usize, ) -> ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Self::Call>>
Source§impl<AccountId: Clone, Call: Clone, ExtensionV0: Clone, ExtensionOtherVersions: Clone> Clone for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId: Clone, Call: Clone, ExtensionV0: Clone, ExtensionOtherVersions: Clone> Clone for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
Source§fn clone(
&self,
) -> CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
fn clone( &self, ) -> CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<AccountId: Debug, Call: Debug, ExtensionV0: Debug, ExtensionOtherVersions: Debug> Debug for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId: Debug, Call: Debug, ExtensionV0: Debug, ExtensionOtherVersions: Debug> Debug for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
Source§impl<AccountId: PartialEq, Call: PartialEq, ExtensionV0: PartialEq, ExtensionOtherVersions: PartialEq> PartialEq for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId: PartialEq, Call: PartialEq, ExtensionV0: PartialEq, ExtensionOtherVersions: PartialEq> PartialEq for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
Source§fn eq(
&self,
other: &CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>,
) -> bool
fn eq( &self, other: &CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>, ) -> bool
self and other values to be equal, and is used by ==.impl<AccountId: Eq, Call: Eq, ExtensionV0: Eq, ExtensionOtherVersions: Eq> Eq for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> StructuralPartialEq for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
Auto Trait Implementations§
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> Freeze for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> RefUnwindSafe for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
Call: RefUnwindSafe,
AccountId: RefUnwindSafe,
ExtensionV0: RefUnwindSafe,
ExtensionOtherVersions: RefUnwindSafe,
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> Send for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> Sync for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> Unpin for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> UnsafeUnpin for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
Call: UnsafeUnpin,
AccountId: UnsafeUnpin,
ExtensionV0: UnsafeUnpin,
ExtensionOtherVersions: UnsafeUnpin,
impl<AccountId, Call, ExtensionV0, ExtensionOtherVersions> UnwindSafe for CheckedExtrinsic<AccountId, Call, ExtensionV0, ExtensionOtherVersions>where
Call: UnwindSafe,
AccountId: UnwindSafe,
ExtensionV0: UnwindSafe,
ExtensionOtherVersions: UnwindSafe,
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> CheckedConversion for T
impl<T> CheckedConversion for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read moreSource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.