pub trait SignedExtension: Codec + Debug + Sync + Send + Clone + Eq + PartialEq + StaticTypeInfo {
    type AccountId;
    type Call: Dispatchable;
    type AdditionalSigned: Encode + TypeInfo;
    type Pre;

    const IDENTIFIER: &'static str;

    // Required methods
    fn additional_signed(
        &self
    ) -> Result<Self::AdditionalSigned, TransactionValidityError>;
    fn pre_dispatch(
        self,
        who: &Self::AccountId,
        call: &Self::Call,
        info: &<Self::Call as Dispatchable>::Info,
        len: usize
    ) -> Result<Self::Pre, TransactionValidityError>;

    // Provided methods
    fn validate(
        &self,
        _who: &Self::AccountId,
        _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> { ... }
    fn pre_dispatch_unsigned(
        call: &Self::Call,
        info: &<Self::Call as Dispatchable>::Info,
        len: usize
    ) -> 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> { ... }
    fn metadata() -> Vec<SignedExtensionMetadata> { ... }
}
Expand description

Means by which a transaction may be extended. This type embodies both the data and the logic that should be additionally associated with the transaction. It should be plain old data.

Required Associated Types§

type AccountId

The type which encodes the sender identity.

type Call: Dispatchable

The type which encodes the call to be dispatched.

type AdditionalSigned: Encode + TypeInfo

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

The type that encodes information that can be passed from pre_dispatch to post-dispatch.

Required Associated Constants§

const IDENTIFIER: &'static str

Unique identifier of this signed extension.

This will be exposed in the metadata to identify the signed extension used in an extrinsic.

Required Methods§

fn additional_signed( &self ) -> Result<Self::AdditionalSigned, 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.

fn pre_dispatch( self, who: &Self::AccountId, call: &Self::Call, info: &<Self::Call as Dispatchable>::Info, len: usize ) -> Result<Self::Pre, TransactionValidityError>

Do any pre-flight stuff for a signed transaction.

Make sure to perform the same checks as in Self::validate.

Provided Methods§

fn validate( &self, _who: &Self::AccountId, _call: &Self::Call, _info: &<Self::Call as Dispatchable>::Info, _len: usize ) -> Result<ValidTransaction, TransactionValidityError>

Validate a signed transaction for the transaction queue.

This function can be called frequently by the transaction queue, to obtain transaction validity against current state. It should perform all checks that determine a valid transaction, that can pay for its execution and quickly eliminate ones that are stale or incorrect.

Make sure to perform the same checks in pre_dispatch function.

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.

This function can be called frequently by the transaction queue to obtain transaction validity against current state. It should perform all checks that determine a valid unsigned transaction, and quickly eliminate ones that are stale or incorrect.

Make sure to perform the same checks in pre_dispatch_unsigned function.

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.

Note this function by default delegates to validate_unsigned, so that all checks performed for the transaction queue are also performed during the dispatch phase (applying the extrinsic).

If you ever override this function, you need to make sure to always perform the same validation as in validate_unsigned.

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.

If the transaction is signed, then _pre will contain the output of pre_dispatch, and None otherwise.

This gets given the DispatchResult _result from the extrinsic and can, if desired, introduce a TransactionValidityError, causing the block to become invalid for including it.

WARNING: It is dangerous to return an error here. To do so will fundamentally invalidate the transaction and any block that it is included in, causing the block author to not be compensated for their work in validating the transaction or producing the block so far.

It can only be used safely when you know that the extrinsic is one that can only be introduced by the current block author; generally this implies that it is an inherent and will come from either an offchain-worker or via InherentData.

fn metadata() -> Vec<SignedExtensionMetadata>

Returns the metadata for this signed extension.

As a SignedExtension can be a tuple of SignedExtensions we need to return a Vec that holds the metadata of each one. Each individual SignedExtension must return exactly one SignedExtensionMetadata.

This method provides a default implementation that returns a vec containing a single SignedExtensionMetadata.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl SignedExtension for ()

Only for bare bone testing when you don’t care about signed extensions at all.

§

type AccountId = u64

§

type AdditionalSigned = ()

§

type Call = ()

§

type Pre = ()

§

const IDENTIFIER: &'static str = "UnitSignedExtension"

§

fn additional_signed(&self) -> Result<(), TransactionValidityError>

§

fn pre_dispatch( self, who: &<() as SignedExtension>::AccountId, call: &<() as SignedExtension>::Call, info: &<<() as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<() as SignedExtension>::Pre, TransactionValidityError>

§

impl<AccountId, Call, TupleElement0> SignedExtension for (TupleElement0,)
where Call: Dispatchable, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned,)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre,)

§

fn additional_signed( &self ) -> Result<<(TupleElement0,) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0,) as SignedExtension>::AccountId, call: &<(TupleElement0,) as SignedExtension>::Call, info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0,) as SignedExtension>::AccountId, call: &<(TupleElement0,) as SignedExtension>::Call, info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0,) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0,) as SignedExtension>::Call, info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0,) as SignedExtension>::Call, info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0,) as SignedExtension>::Pre>, info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0,) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1> SignedExtension for (TupleElement0, TupleElement1)
where Call: Dispatchable, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2> SignedExtension for (TupleElement0, TupleElement1, TupleElement2)
where TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)
where TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)
where TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)
where TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)
where TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)
where TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement7: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned, <TupleElement7 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre, <TupleElement7 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)
where TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement7: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement8: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned, <TupleElement7 as SignedExtension>::AdditionalSigned, <TupleElement8 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre, <TupleElement7 as SignedExtension>::Pre, <TupleElement8 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)
where TupleElement7: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement8: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement9: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned, <TupleElement7 as SignedExtension>::AdditionalSigned, <TupleElement8 as SignedExtension>::AdditionalSigned, <TupleElement9 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre, <TupleElement7 as SignedExtension>::Pre, <TupleElement8 as SignedExtension>::Pre, <TupleElement9 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)
where TupleElement8: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement9: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement10: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable, TupleElement7: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned, <TupleElement7 as SignedExtension>::AdditionalSigned, <TupleElement8 as SignedExtension>::AdditionalSigned, <TupleElement9 as SignedExtension>::AdditionalSigned, <TupleElement10 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre, <TupleElement7 as SignedExtension>::Pre, <TupleElement8 as SignedExtension>::Pre, <TupleElement9 as SignedExtension>::Pre, <TupleElement10 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

§

impl<AccountId, Call, TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> SignedExtension for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)
where TupleElement9: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement10: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement11: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement0: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement1: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement2: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement3: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement4: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement5: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement6: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, TupleElement7: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension, Call: Dispatchable, TupleElement8: SignedExtension<AccountId = AccountId, Call = Call> + SignedExtension,

§

type AccountId = AccountId

§

type Call = Call

§

const IDENTIFIER: &'static str = "You should call `identifier()`!"

§

type AdditionalSigned = (<TupleElement0 as SignedExtension>::AdditionalSigned, <TupleElement1 as SignedExtension>::AdditionalSigned, <TupleElement2 as SignedExtension>::AdditionalSigned, <TupleElement3 as SignedExtension>::AdditionalSigned, <TupleElement4 as SignedExtension>::AdditionalSigned, <TupleElement5 as SignedExtension>::AdditionalSigned, <TupleElement6 as SignedExtension>::AdditionalSigned, <TupleElement7 as SignedExtension>::AdditionalSigned, <TupleElement8 as SignedExtension>::AdditionalSigned, <TupleElement9 as SignedExtension>::AdditionalSigned, <TupleElement10 as SignedExtension>::AdditionalSigned, <TupleElement11 as SignedExtension>::AdditionalSigned)

§

type Pre = (<TupleElement0 as SignedExtension>::Pre, <TupleElement1 as SignedExtension>::Pre, <TupleElement2 as SignedExtension>::Pre, <TupleElement3 as SignedExtension>::Pre, <TupleElement4 as SignedExtension>::Pre, <TupleElement5 as SignedExtension>::Pre, <TupleElement6 as SignedExtension>::Pre, <TupleElement7 as SignedExtension>::Pre, <TupleElement8 as SignedExtension>::Pre, <TupleElement9 as SignedExtension>::Pre, <TupleElement10 as SignedExtension>::Pre, <TupleElement11 as SignedExtension>::Pre)

§

fn additional_signed( &self ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::AdditionalSigned, TransactionValidityError>

§

fn validate( &self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch( self, who: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::AccountId, call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Pre, TransactionValidityError>

§

fn validate_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<ValidTransaction, TransactionValidityError>

§

fn pre_dispatch_unsigned( call: &<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::Info, len: usize ) -> Result<(), TransactionValidityError>

§

fn post_dispatch( pre: Option<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Pre>, info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::Info, post_info: &<<(TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11) as SignedExtension>::Call as Dispatchable>::PostInfo, len: usize, result: &Result<(), DispatchError> ) -> Result<(), TransactionValidityError>

§

fn metadata() -> Vec<SignedExtensionMetadata>

Implementors§