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 + PruneCheckpointReader + BalProvider + 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 + PruneCheckpointReader + BalProvider + 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 + PruneCheckpointReader + BalProvider + 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.
Sourcetype Network: NetworkInfo + Clone
type Network: NetworkInfo + Clone
Network API.
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".