pub enum Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions = InvalidVersion> {
Bare(u8),
Signed(Address, Signature, ExtensionV0),
General(ExtensionVariant<ExtensionV0, ExtensionOtherVersions>),
}Expand description
A “header” for extrinsics leading up to the call itself. Determines the type of extrinsic and holds any necessary specialized data.
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 version, 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.
Variants§
Bare(u8)
An extrinsic without a signature or any extension. This means it’s either an inherent or an old-school “Unsigned” (we don’t use that terminology any more since it’s confusable with the general transaction which is without a signature but does have an extension).
NOTE: In the future, once we remove ValidateUnsigned, this will only serve Inherent
extrinsics and thus can be renamed to Inherent.
Signed(Address, Signature, ExtensionV0)
An old-school transaction extrinsic which includes a signature of some hard-coded crypto. Available only on extrinsic version 4.
General(ExtensionVariant<ExtensionV0, ExtensionOtherVersions>)
A new-school transaction extrinsic which does not include a signature by default. The origin authorization, through signatures or other means, is performed by the transaction extension in this extrinsic. Available starting with extrinsic version 5.
Implementations§
Trait Implementations§
Source§impl<Address: Clone, Signature: Clone, ExtensionV0: Clone, ExtensionOtherVersions: Clone> Clone for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address: Clone, Signature: Clone, ExtensionV0: Clone, ExtensionOtherVersions: Clone> Clone for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
Source§impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Debug for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Debug for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
Source§impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Decode for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: Decode,
Signature: Decode,
ExtensionV0: Decode,
ExtensionOtherVersions: DecodeWithVersion,
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Decode for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: Decode,
Signature: Decode,
ExtensionV0: Decode,
ExtensionOtherVersions: DecodeWithVersion,
Source§fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
Source§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,
Source§impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Encode for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: Encode,
Signature: Encode,
ExtensionV0: Encode,
ExtensionOtherVersions: Encode + PipelineVersion,
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Encode for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: Encode,
Signature: Encode,
ExtensionV0: Encode,
ExtensionOtherVersions: Encode + PipelineVersion,
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
Source§fn encode_to<T: Output + ?Sized>(&self, dest: &mut T)
fn encode_to<T: Output + ?Sized>(&self, dest: &mut T)
Source§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
Source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Source§impl<Address: PartialEq, Signature: PartialEq, ExtensionV0: PartialEq, ExtensionOtherVersions: PartialEq> PartialEq for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address: PartialEq, Signature: PartialEq, ExtensionV0: PartialEq, ExtensionOtherVersions: PartialEq> PartialEq for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> DecodeWithMemTracking for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: DecodeWithMemTracking,
Signature: DecodeWithMemTracking,
ExtensionV0: DecodeWithMemTracking,
ExtensionOtherVersions: DecodeWithVersionWithMemTracking,
impl<Address: Eq, Signature: Eq, ExtensionV0: Eq, ExtensionOtherVersions: Eq> Eq for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> StructuralPartialEq for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
Auto Trait Implementations§
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Freeze for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> RefUnwindSafe for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: RefUnwindSafe,
Signature: RefUnwindSafe,
ExtensionV0: RefUnwindSafe,
ExtensionOtherVersions: RefUnwindSafe,
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Send for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Sync for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> Unpin for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> UnsafeUnpin for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: UnsafeUnpin,
Signature: UnsafeUnpin,
ExtensionV0: UnsafeUnpin,
ExtensionOtherVersions: UnsafeUnpin,
impl<Address, Signature, ExtensionV0, ExtensionOtherVersions> UnwindSafe for Preamble<Address, Signature, ExtensionV0, ExtensionOtherVersions>where
Address: UnwindSafe,
Signature: 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<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
Source§impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
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.