Trait NodeAddOns

pub trait NodeAddOns<N>: Send{
    type Handle: Send + Sync + Clone;

    // Required method
    fn launch_add_ons(
        self,
        ctx: AddOnsContext<'_, N>,
    ) -> impl Future<Output = Result<Self::Handle, Report>> + Send;
}
Expand description

Customizable node add-on types.

Required Associated Types§

type Handle: Send + Sync + Clone

Handle to add-ons.

Required Methods§

fn launch_add_ons( self, ctx: AddOnsContext<'_, N>, ) -> impl Future<Output = Result<Self::Handle, Report>> + Send

Configures and launches the add-ons.

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.

Implementations on Foreign Types§

§

impl<N> NodeAddOns<N> for ()

§

type Handle = ()

§

async fn launch_add_ons( self, _components: AddOnsContext<'_, N>, ) -> Result<<() as NodeAddOns<N>>::Handle, Report>

§

impl<N> NodeAddOns<N> for EthereumAddOns<N>
where <N as FullNodeTypes>::Types: NodeTypesWithEngine<ChainSpec = ChainSpec, Primitives = EthPrimitives, Engine = EthEngineTypes>, <N as FullNodeComponents>::Evm: ConfigureEvm<NextBlockEnvCtx = NextBlockEnvAttributes>, EthApiError: FromEvmError<<N as FullNodeComponents>::Evm>, <<<N as FullNodeComponents>::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory: EvmFactory<Tx = TxEnv>, N: FullNodeComponents,

§

type Handle = RpcHandle<N, EthApi<<N as FullNodeTypes>::Provider, <N as FullNodeComponents>::Pool, <N as FullNodeComponents>::Network, <N as FullNodeComponents>::Evm>>

§

async fn launch_add_ons( self, ctx: AddOnsContext<'_, N>, ) -> Result<<EthereumAddOns<N> as NodeAddOns<N>>::Handle, Report>

Implementors§

Source§

impl<N, EthB, EV, EB> NodeAddOns<N> for RpcAddOns<N, EthB, EV, EB>

Source§

type Handle = RpcHandle<N, <EthB as EthApiBuilder<N>>::EthApi>

impl<N> NodeAddOns<N> for OpAddOns<N>
where N: FullNodeComponents<Types: NodeTypesWithEngine<ChainSpec = OpChainSpec, Primitives = OpPrimitives, Storage = OpStorage, Engine = OpEngineTypes>, Evm: ConfigureEvm<NextBlockEnvCtx = OpNextBlockEnvAttributes>>, OpEthApiError: FromEvmError<N::Evm>, <N::Pool as TransactionPool>::Transaction: OpPooledTx, EvmFactoryFor<N::Evm>: EvmFactory<Tx = OpTransaction<TxEnv>>,