Trait RpcNodeCore
pub trait RpcNodeCore:
Clone
+ Send
+ Sync
+ Unpin
+ 'static {
type Primitives: NodePrimitives;
type Provider: BlockReaderIdExt<Block = <Self::Primitives as NodePrimitives>::Block, Receipt = <Self::Primitives as NodePrimitives>::Receipt, Header = <Self::Primitives as NodePrimitives>::BlockHeader, Transaction = <Self::Primitives as NodePrimitives>::SignedTx> + ChainSpecProvider + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + PruneCheckpointReader + BalProvider + Send + Sync + Clone + Unpin + 'static
where <Self::Provider as ChainSpecProvider>::ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader> + Hardforks + EthereumHardforks;
type Pool: TransactionPool
where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <Self::Primitives as NodePrimitives>::SignedTx>;
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§
type Primitives: NodePrimitives
type Primitives: NodePrimitives
Blockchain data primitives.
type Provider: BlockReaderIdExt<Block = <Self::Primitives as NodePrimitives>::Block, Receipt = <Self::Primitives as NodePrimitives>::Receipt, Header = <Self::Primitives as NodePrimitives>::BlockHeader, Transaction = <Self::Primitives as NodePrimitives>::SignedTx> + ChainSpecProvider + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + PruneCheckpointReader + BalProvider + Send + Sync + Clone + Unpin + 'static
where
<Self::Provider as ChainSpecProvider>::ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader> + Hardforks + EthereumHardforks
type Provider: BlockReaderIdExt<Block = <Self::Primitives as NodePrimitives>::Block, Receipt = <Self::Primitives as NodePrimitives>::Receipt, Header = <Self::Primitives as NodePrimitives>::BlockHeader, Transaction = <Self::Primitives as NodePrimitives>::SignedTx> + ChainSpecProvider + StateProviderFactory + CanonStateSubscriptions<Primitives = Self::Primitives> + StageCheckpointReader + PruneCheckpointReader + BalProvider + Send + Sync + Clone + Unpin + 'static where <Self::Provider as ChainSpecProvider>::ChainSpec: EthChainSpec<Header = <Self::Primitives as NodePrimitives>::BlockHeader> + Hardforks + EthereumHardforks
The provider type used to interact with the node.
type Pool: TransactionPool
where
<Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <Self::Primitives as NodePrimitives>::SignedTx>
type Pool: TransactionPool where <Self::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <Self::Primitives as NodePrimitives>::SignedTx>
The transaction pool of the node.
type 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.
type Network: NetworkInfo + Clone
type Network: NetworkInfo + Clone
Network API.
Required Methods§
fn 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".