referrerpolicy=no-referrer-when-downgrade

Pipeline

Trait Pipeline 

pub trait Pipeline<Call>:
    Encode
    + DecodeWithVersion
    + DecodeWithVersionWithMemTracking
    + Debug
    + StaticTypeInfo
    + Send
    + Sync
    + Clone
    + PipelineVersion
where Call: Dispatchable,
{ // Required methods fn build_metadata(builder: &mut PipelineMetadataBuilder); fn validate_only( &self, origin: <Call as Dispatchable>::RuntimeOrigin, call: &Call, info: &<Call as Dispatchable>::Info, len: usize, source: TransactionSource, ) -> Result<ValidTransaction, TransactionValidityError>; fn dispatch_transaction( self, origin: <Call as Dispatchable>::RuntimeOrigin, call: Call, info: &<Call as Dispatchable>::Info, len: usize, ) -> Result<Result<<Call as Dispatchable>::PostInfo, DispatchErrorWithPostInfo<<Call as Dispatchable>::PostInfo>>, TransactionValidityError>; 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§

fn build_metadata(builder: &mut PipelineMetadataBuilder)

Build the metadata for the versioned transaction extension pipeline.

fn validate_only( &self, origin: <Call as Dispatchable>::RuntimeOrigin, call: &Call, info: &<Call as Dispatchable>::Info, len: usize, source: TransactionSource, ) -> Result<ValidTransaction, TransactionValidityError>

Validate a transaction.

fn dispatch_transaction( self, origin: <Call as Dispatchable>::RuntimeOrigin, call: Call, info: &<Call as Dispatchable>::Info, len: usize, ) -> Result<Result<<Call as Dispatchable>::PostInfo, DispatchErrorWithPostInfo<<Call as Dispatchable>::PostInfo>>, TransactionValidityError>

Dispatch a transaction.

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§

§

impl<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, Call> 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>
where 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,

§

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

§

impl<Call, ExtensionV0, ExtensionOtherVersions> Pipeline<Call> for ExtensionVariant<ExtensionV0, ExtensionOtherVersions>
where Call: Dispatchable + Encode, ExtensionV0: TransactionExtension<Call>, ExtensionOtherVersions: Pipeline<Call>, <Call as Dispatchable>::RuntimeOrigin: AsTransactionAuthorizedOrigin,

§

impl<const VERSION: u8, Call, Extension> Pipeline<Call> for PipelineAtVers<VERSION, Extension>