referrerpolicy=no-referrer-when-downgrade

Pipeline

Trait Pipeline 

Source
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§

Source

fn build_metadata(builder: &mut PipelineMetadataBuilder)

Build the metadata for the versioned transaction extension pipeline.

Source

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.

Source

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.

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, 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,

Source§

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

Source§

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,

Source§

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