pub struct ExtrinsicDetails<T: Config> { /* private fields */ }Expand description
A single extrinsic in a block.
Implementations§
Source§impl<T> ExtrinsicDetails<T>where
T: Config,
impl<T> ExtrinsicDetails<T>where
T: Config,
Sourcepub fn hash(&self) -> HashFor<T>
pub fn hash(&self) -> HashFor<T>
Calculate and return the hash of the extrinsic, based on the configured hasher.
Sourcepub fn bytes(&self) -> &[u8] ⓘ
pub fn bytes(&self) -> &[u8] ⓘ
Return all of the bytes representing this extrinsic, which include, in order:
- First byte: abbbbbbb (a = 0 for unsigned, 1 for signed, b = version)
- SignatureType (if the payload is signed)
- Address
- Signature
- Extra fields
- Extrinsic call bytes
Sourcepub fn call_bytes(&self) -> &[u8] ⓘ
pub fn call_bytes(&self) -> &[u8] ⓘ
Return only the bytes representing this extrinsic call:
- First byte is the pallet index
- Second byte is the variant (call) index
- Followed by field bytes.
§Note
Please use Self::bytes if you want to get all extrinsic bytes.
Sourcepub fn field_bytes(&self) -> &[u8] ⓘ
pub fn field_bytes(&self) -> &[u8] ⓘ
Return the bytes representing the fields stored in this extrinsic.
§Note
This is a subset of Self::call_bytes that does not include the
first two bytes that denote the pallet index and the variant index.
Sourcepub fn address_bytes(&self) -> Option<&[u8]>
pub fn address_bytes(&self) -> Option<&[u8]>
Return only the bytes of the address that signed this extrinsic.
§Note
Returns None if the extrinsic is not signed.
Sourcepub fn signature_bytes(&self) -> Option<&[u8]>
pub fn signature_bytes(&self) -> Option<&[u8]>
Returns Some(signature_bytes) if the extrinsic was signed otherwise None is returned.
Sourcepub fn transaction_extensions_bytes(&self) -> Option<&[u8]>
pub fn transaction_extensions_bytes(&self) -> Option<&[u8]>
Returns the signed extension extra bytes of the extrinsic.
Each signed extension has an extra type (May be zero-sized).
These bytes are the scale encoded extra fields of each signed extension in order of the signed extensions.
They do not include the additional signed bytes that are used as part of the payload that is signed.
Note: Returns None if the extrinsic is not signed.
Sourcepub fn transaction_extensions(
&self,
) -> Option<ExtrinsicTransactionExtensions<'_, T>>
pub fn transaction_extensions( &self, ) -> Option<ExtrinsicTransactionExtensions<'_, T>>
Returns None if the extrinsic is not signed.
Sourcepub fn pallet_index(&self) -> u8
pub fn pallet_index(&self) -> u8
The index of the pallet that the extrinsic originated from.
Sourcepub fn variant_index(&self) -> u8
pub fn variant_index(&self) -> u8
The index of the extrinsic variant that the extrinsic originated from.
Sourcepub fn pallet_name(&self) -> Result<&str, Error>
pub fn pallet_name(&self) -> Result<&str, Error>
The name of the pallet from whence the extrinsic originated.
Sourcepub fn variant_name(&self) -> Result<&str, Error>
pub fn variant_name(&self) -> Result<&str, Error>
The name of the call (ie the name of the variant that it corresponds to).
Sourcepub fn extrinsic_metadata(&self) -> Result<ExtrinsicMetadataDetails<'_>, Error>
pub fn extrinsic_metadata(&self) -> Result<ExtrinsicMetadataDetails<'_>, Error>
Fetch the metadata for this extrinsic.
Sourcepub fn field_values(&self) -> Result<Composite<u32>, Error>
pub fn field_values(&self) -> Result<Composite<u32>, Error>
Decode and provide the extrinsic fields back in the form of a scale_value::Composite
type which represents the named or unnamed fields that were present in the extrinsic.
Sourcepub fn as_extrinsic<E: StaticExtrinsic>(&self) -> Result<Option<E>, Error>
pub fn as_extrinsic<E: StaticExtrinsic>(&self) -> Result<Option<E>, Error>
Attempt to decode these ExtrinsicDetails into a type representing the extrinsic fields.
Such types are exposed in the codegen as pallet_name::calls::types::CallName types.
Sourcepub fn as_root_extrinsic<E: DecodeAsType>(&self) -> Result<E, Error>
pub fn as_root_extrinsic<E: DecodeAsType>(&self) -> Result<E, Error>
Attempt to decode these ExtrinsicDetails into an outer call enum type (which includes
the pallet and extrinsic enum variants as well as the extrinsic fields). A compatible
type for this is exposed via static codegen as a root level Call type.
Auto Trait Implementations§
impl<T> Freeze for ExtrinsicDetails<T>
impl<T> RefUnwindSafe for ExtrinsicDetails<T>
impl<T> Send for ExtrinsicDetails<T>
impl<T> Sync for ExtrinsicDetails<T>
impl<T> Unpin for ExtrinsicDetails<T>
impl<T> UnwindSafe for ExtrinsicDetails<T>
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.