pub trait NodeComponents<T>:
Clone
+ Debug
+ Unpin
+ Send
+ Sync
+ 'staticwhere
T: FullNodeTypes,{
type Pool: TransactionPool + Unpin
where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<<T as FullNodeTypes>::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>;
type Evm: ConfigureEvm<Primitives = <<T as FullNodeTypes>::Types as NodeTypes>::Primitives>;
type Consensus: FullConsensus<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives, Error = ConsensusError> + Clone + Unpin + 'static;
type Network: FullNetwork
where <Self::Network as NetworkEventListenerProvider>::Primitives: NetPrimitivesFor<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives>;
// 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<<<T as FullNodeTypes>::Types as NodeTypes>::Payload>;
}
Expand description
An abstraction over the components of a node, consisting of:
- evm and executor
- transaction pool
- network
- payload builder.
Required Associated Types§
Sourcetype Pool: TransactionPool + Unpin
where
<Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<<T as FullNodeTypes>::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
type Pool: TransactionPool + Unpin where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<<T as FullNodeTypes>::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>
The transaction pool of the node.
Sourcetype Evm: ConfigureEvm<Primitives = <<T as FullNodeTypes>::Types as NodeTypes>::Primitives>
type Evm: ConfigureEvm<Primitives = <<T as FullNodeTypes>::Types as NodeTypes>::Primitives>
The node’s EVM configuration, defining settings for the Ethereum Virtual Machine.
Sourcetype Consensus: FullConsensus<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives, Error = ConsensusError> + Clone + Unpin + 'static
type Consensus: FullConsensus<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives, Error = ConsensusError> + Clone + Unpin + 'static
The consensus type of the node.
Sourcetype Network: FullNetwork
where
<Self::Network as NetworkEventListenerProvider>::Primitives: NetPrimitivesFor<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives>
type Network: FullNetwork where <Self::Network as NetworkEventListenerProvider>::Primitives: NetPrimitivesFor<<<T as FullNodeTypes>::Types as NodeTypes>::Primitives>
Network API.
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<<<T as FullNodeTypes>::Types as NodeTypes>::Payload>
fn payload_builder_handle( &self, ) -> &PayloadBuilderHandle<<<T as FullNodeTypes>::Types as NodeTypes>::Payload>
Returns the handle to the payload builder service handling payload building requests from the engine.
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.