Struct pallet_example_basic::WatchDummy
source · pub struct WatchDummy<T: Config + Send + Sync>(_);
Expand description
A simple signed extension that checks for the set_dummy
call. In that case, it increases the
priority and prints some log.
Additionally, it drops any transaction with an encoded length higher than 200 bytes. No particular reason why, just to demonstrate the power of signed extensions.
Trait Implementations§
source§impl<T: Clone + Config + Send + Sync> Clone for WatchDummy<T>
impl<T: Clone + Config + Send + Sync> Clone for WatchDummy<T>
source§fn clone(&self) -> WatchDummy<T>
fn clone(&self) -> WatchDummy<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<T: Config + Send + Sync> Decode for WatchDummy<T>where
PhantomData<T>: Decode,
impl<T: Config + Send + Sync> Decode for WatchDummy<T>where
PhantomData<T>: Decode,
source§impl<T: Config + Send + Sync> Encode for WatchDummy<T>where
PhantomData<T>: Encode,
impl<T: Config + Send + Sync> Encode for WatchDummy<T>where
PhantomData<T>: Encode,
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
)
Convert self to a slice and append it to the destination.
source§fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
Convert self to a slice and then invoke the given closure with it.
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl<T: PartialEq + Config + Send + Sync> PartialEq<WatchDummy<T>> for WatchDummy<T>
impl<T: PartialEq + Config + Send + Sync> PartialEq<WatchDummy<T>> for WatchDummy<T>
source§fn eq(&self, other: &WatchDummy<T>) -> bool
fn eq(&self, other: &WatchDummy<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<T: Config + Send + Sync> SignedExtension for WatchDummy<T>where
<T as Config>::RuntimeCall: IsSubType<Call<T>>,
impl<T: Config + Send + Sync> SignedExtension for WatchDummy<T>where
<T as Config>::RuntimeCall: IsSubType<Call<T>>,
source§const IDENTIFIER: &'static str = "WatchDummy"
const IDENTIFIER: &'static str = "WatchDummy"
Unique identifier of this signed extension. Read more
§type Call = <T as Config>::RuntimeCall
type Call = <T as Config>::RuntimeCall
The type which encodes the call to be dispatched.
§type AdditionalSigned = ()
type AdditionalSigned = ()
Any additional data that will go into the signed payload. This may be created dynamically
from the transaction using the
additional_signed
function.§type Pre = ()
type Pre = ()
The type that encodes information that can be passed from pre_dispatch to post-dispatch.
source§fn additional_signed(&self) -> Result<(), TransactionValidityError>
fn additional_signed(&self) -> Result<(), TransactionValidityError>
Construct any additional data that should be in the signed payload of the transaction. Can
also perform any pre-signature-verification checks and return an error if needed.
source§fn pre_dispatch(
self,
who: &Self::AccountId,
call: &Self::Call,
info: &DispatchInfoOf<Self::Call>,
len: usize
) -> Result<Self::Pre, TransactionValidityError>
fn pre_dispatch(
self,
who: &Self::AccountId,
call: &Self::Call,
info: &DispatchInfoOf<Self::Call>,
len: usize
) -> Result<Self::Pre, TransactionValidityError>
Do any pre-flight stuff for a signed transaction. Read more
source§fn validate(
&self,
_who: &Self::AccountId,
call: &Self::Call,
_info: &DispatchInfoOf<Self::Call>,
len: usize
) -> TransactionValidity
fn validate(
&self,
_who: &Self::AccountId,
call: &Self::Call,
_info: &DispatchInfoOf<Self::Call>,
len: usize
) -> TransactionValidity
Validate a signed transaction for the transaction queue. Read more
source§fn validate_unsigned(
_call: &Self::Call,
_info: &<Self::Call as Dispatchable>::Info,
_len: usize
) -> Result<ValidTransaction, TransactionValidityError>
fn validate_unsigned(
_call: &Self::Call,
_info: &<Self::Call as Dispatchable>::Info,
_len: usize
) -> Result<ValidTransaction, TransactionValidityError>
Validate an unsigned transaction for the transaction queue. Read more
source§fn pre_dispatch_unsigned(
call: &Self::Call,
info: &<Self::Call as Dispatchable>::Info,
len: usize
) -> Result<(), TransactionValidityError>
fn pre_dispatch_unsigned(
call: &Self::Call,
info: &<Self::Call as Dispatchable>::Info,
len: usize
) -> Result<(), TransactionValidityError>
Do any pre-flight stuff for a unsigned transaction. Read more
source§fn post_dispatch(
_pre: Option<Self::Pre>,
_info: &<Self::Call as Dispatchable>::Info,
_post_info: &<Self::Call as Dispatchable>::PostInfo,
_len: usize,
_result: &Result<(), DispatchError>
) -> Result<(), TransactionValidityError>
fn post_dispatch(
_pre: Option<Self::Pre>,
_info: &<Self::Call as Dispatchable>::Info,
_post_info: &<Self::Call as Dispatchable>::PostInfo,
_len: usize,
_result: &Result<(), DispatchError>
) -> Result<(), TransactionValidityError>
Do any post-flight stuff for an extrinsic. Read more
source§impl<T> TypeInfo for WatchDummy<T>where
PhantomData<T>: TypeInfo + 'static,
T: Config + Send + Sync + 'static,
impl<T> TypeInfo for WatchDummy<T>where
PhantomData<T>: TypeInfo + 'static,
T: Config + Send + Sync + 'static,
impl<T: Config + Send + Sync> EncodeLike<WatchDummy<T>> for WatchDummy<T>where
PhantomData<T>: Encode,
impl<T: Eq + Config + Send + Sync> Eq for WatchDummy<T>
impl<T: Config + Send + Sync> StructuralEq for WatchDummy<T>
impl<T: Config + Send + Sync> StructuralPartialEq for WatchDummy<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for WatchDummy<T>where
T: RefUnwindSafe,
impl<T> Send for WatchDummy<T>
impl<T> Sync for WatchDummy<T>
impl<T> Unpin for WatchDummy<T>where
T: Unpin,
impl<T> UnwindSafe for WatchDummy<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
fn blake2_128(&self) -> [u8; 16]
fn blake2_256(&self) -> [u8; 32]
fn blake2_128_concat(&self) -> Vec<u8, Global> ⓘ
fn twox_128(&self) -> [u8; 16]
fn twox_256(&self) -> [u8; 32]
fn twox_64_concat(&self) -> Vec<u8, Global> ⓘ
fn identity(&self) -> Vec<u8, Global> ⓘ
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>
§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>,
Consume self to return an equivalent value of
T
. Read more§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
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.