referrerpolicy=no-referrer-when-downgrade

Pipeline

Trait Pipeline 

Source
pub trait Pipeline<Call: Dispatchable>:
    Encode
    + DecodeWithVersion
    + DecodeWithVersionWithMemTracking
    + Debug
    + StaticTypeInfo
    + Send
    + Sync
    + Clone
    + PipelineVersion {
    // Required methods
    fn build_metadata(builder: &mut PipelineMetadataBuilder);
    fn validate_only(
        &self,
        origin: DispatchOriginOf<Call>,
        call: &Call,
        info: &DispatchInfoOf<Call>,
        len: usize,
        source: TransactionSource,
    ) -> Result<ValidTransaction, TransactionValidityError>;
    fn dispatch_transaction(
        self,
        origin: DispatchOriginOf<Call>,
        call: Call,
        info: &DispatchInfoOf<Call>,
        len: usize,
    ) -> ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Call>>;
    fn weight(&self, call: &Call) -> Weight;
}
Expand description

A versioned transaction extension pipeline.

This defines multiple version of a transaction extensions pipeline.

(type name is short for versioned (Vers) Pipeline).

Required Methods§

Source

fn build_metadata(builder: &mut PipelineMetadataBuilder)

Build the metadata for the versioned transaction extension pipeline.

Source

fn validate_only( &self, origin: DispatchOriginOf<Call>, call: &Call, info: &DispatchInfoOf<Call>, len: usize, source: TransactionSource, ) -> Result<ValidTransaction, TransactionValidityError>

Validate a transaction.

Source

fn dispatch_transaction( self, origin: DispatchOriginOf<Call>, call: Call, info: &DispatchInfoOf<Call>, len: usize, ) -> ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Call>>

Dispatch a transaction.

Source

fn weight(&self, call: &Call) -> Weight

Return the pre dispatch weight for the given versioned transaction extension pipeline and call.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<A: Pipeline<Call> + MultiVersionItem, B: Pipeline<Call> + MultiVersionItem, C: Pipeline<Call> + MultiVersionItem, D: Pipeline<Call> + MultiVersionItem, E: Pipeline<Call> + MultiVersionItem, F: Pipeline<Call> + MultiVersionItem, G: Pipeline<Call> + MultiVersionItem, H: Pipeline<Call> + MultiVersionItem, I: Pipeline<Call> + MultiVersionItem, J: Pipeline<Call> + MultiVersionItem, K: Pipeline<Call> + MultiVersionItem, L: Pipeline<Call> + MultiVersionItem, M: Pipeline<Call> + MultiVersionItem, N: Pipeline<Call> + MultiVersionItem, O: Pipeline<Call> + MultiVersionItem, P: Pipeline<Call> + MultiVersionItem, Q: Pipeline<Call> + MultiVersionItem, R: Pipeline<Call> + MultiVersionItem, S: Pipeline<Call> + MultiVersionItem, T: Pipeline<Call> + MultiVersionItem, U: Pipeline<Call> + MultiVersionItem, V: Pipeline<Call> + MultiVersionItem, W: Pipeline<Call> + MultiVersionItem, X: Pipeline<Call> + MultiVersionItem, Y: Pipeline<Call> + MultiVersionItem, Z: Pipeline<Call> + MultiVersionItem, Call: Dispatchable> Pipeline<Call> for MultiVersion<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z>

Source§

impl<Call: Dispatchable + Encode, ExtensionV0: TransactionExtension<Call>, ExtensionOtherVersions: Pipeline<Call>> Pipeline<Call> for ExtensionVariant<ExtensionV0, ExtensionOtherVersions>

Source§

impl<Call: Dispatchable> Pipeline<Call> for InvalidVersion

Source§

impl<const VERSION: u8, Call, Extension> Pipeline<Call> for PipelineAtVers<VERSION, Extension>
where Call: Dispatchable<RuntimeOrigin: AsTransactionAuthorizedOrigin> + Encode, Extension: TransactionExtension<Call>,