pub trait RpcNodeCore:
Clone
+ Send
+ Sync
+ Unpin
+ 'static {
type Primitives: NodePrimitives;
type Provider: BlockReaderIdExt<Block = BlockTy<Self::Primitives>, Receipt = ReceiptTy<Self::Primitives>, Header = HeaderTy<Self::Primitives>, Transaction = TxTy<Self::Primitives>> + ChainSpecProvider<ChainSpec: EthChainSpec<Header = HeaderTy<Self::Primitives>> + Hardforks + EthereumHardforks> + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + Send + Sync + Clone + Unpin + 'static;
type Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Primitives>>>;
type Evm: ConfigureEvm<Primitives = Self::Primitives> + Send + Sync + 'static;
type Network: NetworkInfo + Clone;
// Required methods
fn pool(&self) -> &Self::Pool;
fn evm_config(&self) -> &Self::Evm;
fn network(&self) -> &Self::Network;
fn provider(&self) -> &Self::Provider;
}
Expand description
Helper trait that provides the same interface as FullNodeComponents
but without requiring
implementation of trait bounds.
This trait is structurally equivalent to FullNodeComponents
, exposing the same associated
types and methods. However, it doesn’t enforce the trait bounds required by
FullNodeComponents
. This makes it useful for RPC types that need access to node components
where the full trait bounds of the components are not necessary.
Every type that is a FullNodeComponents
also implements this trait.
Required Associated Types§
Sourcetype Primitives: NodePrimitives
type Primitives: NodePrimitives
Blockchain data primitives.
Sourcetype Provider: BlockReaderIdExt<Block = BlockTy<Self::Primitives>, Receipt = ReceiptTy<Self::Primitives>, Header = HeaderTy<Self::Primitives>, Transaction = TxTy<Self::Primitives>> + ChainSpecProvider<ChainSpec: EthChainSpec<Header = HeaderTy<Self::Primitives>> + Hardforks + EthereumHardforks> + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + Send + Sync + Clone + Unpin + 'static
type Provider: BlockReaderIdExt<Block = BlockTy<Self::Primitives>, Receipt = ReceiptTy<Self::Primitives>, Header = HeaderTy<Self::Primitives>, Transaction = TxTy<Self::Primitives>> + ChainSpecProvider<ChainSpec: EthChainSpec<Header = HeaderTy<Self::Primitives>> + Hardforks + EthereumHardforks> + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + Send + Sync + Clone + Unpin + 'static
The provider type used to interact with the node.
Sourcetype Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Primitives>>>
type Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Self::Primitives>>>
The transaction pool of the node.
Sourcetype Evm: ConfigureEvm<Primitives = Self::Primitives> + Send + Sync + 'static
type Evm: ConfigureEvm<Primitives = Self::Primitives> + Send + Sync + 'static
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.
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.