pub trait FullNodeComponents:
FullNodeTypes
+ Clone
+ 'static {
type Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Types>>> + Unpin;
type Evm: ConfigureEvm<Primitives = <Self::Types as NodeTypes>::Primitives>;
type Consensus: FullConsensus<<Self::Types as NodeTypes>::Primitives, Error = ConsensusError> + Clone + Unpin + 'static;
type Network: FullNetwork;
// Required methods
fn pool(&self) -> &Self::Pool;
fn evm_config(&self) -> &Self::Evm;
fn consensus(&self) -> &Self::Consensus;
fn network(&self) -> &Self::Network;
fn payload_builder_handle(
&self,
) -> &PayloadBuilderHandle<<Self::Types as NodeTypes>::Payload>;
fn provider(&self) -> &Self::Provider;
fn task_executor(&self) -> &TaskExecutor;
}
Expand description
Encapsulates all types and components of the node.
Required Associated Types§
Sourcetype Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Types>>> + Unpin
type Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Types>>> + Unpin
The transaction pool of the node.
Sourcetype Evm: ConfigureEvm<Primitives = <Self::Types as NodeTypes>::Primitives>
type Evm: ConfigureEvm<Primitives = <Self::Types as NodeTypes>::Primitives>
The node’s EVM configuration, defining settings for the Ethereum Virtual Machine.
Required Methods§
Sourcefn evm_config(&self) -> &Self::Evm
fn evm_config(&self) -> &Self::Evm
Returns the node’s evm config.
Sourcefn payload_builder_handle(
&self,
) -> &PayloadBuilderHandle<<Self::Types as NodeTypes>::Payload>
fn payload_builder_handle( &self, ) -> &PayloadBuilderHandle<<Self::Types as NodeTypes>::Payload>
Returns the handle to the payload builder service handling payload building requests from the engine.
Sourcefn task_executor(&self) -> &TaskExecutor
fn task_executor(&self) -> &TaskExecutor
Returns an executor handle to spawn tasks.
This can be used to spawn critical, blocking tasks or register tasks that should be
terminated gracefully. See also TaskSpawner
.
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.