pub type NodeHelperType<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> = NodeTestContext<Adapter<N, Provider>, <N as Node<FullNodeTypesAdapter<N, TmpDB, Provider>>>::AddOns>;
Expand description
Type alias for a type of NodeHelper
Aliased Type§
struct NodeHelperType<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> {
pub inner: FullNode<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>, <N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::AddOns>,
pub payload: PayloadTestContext<<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeTypes>::Types as NodeTypesWithEngine>::Engine>,
pub network: NetworkTestContext<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeComponents>::Network>,
pub rpc: RpcTestContext<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::AddOns as RethRpcAddOns<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>>>::EthApi>,
pub canonical_stream: CanonStateNotificationStream<<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeTypes>::Types as NodeTypes>::Primitives>,
}
Fields§
§inner: FullNode<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>, <N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::AddOns>
The core structure representing the full node.
payload: PayloadTestContext<<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeTypes>::Types as NodeTypesWithEngine>::Engine>
Context for testing payload-related features.
network: NetworkTestContext<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeComponents>::Network>
Context for testing network functionalities.
rpc: RpcTestContext<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::AddOns as RethRpcAddOns<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components>>>::EthApi>
Context for testing RPC features.
canonical_stream: CanonStateNotificationStream<<<NodeAdapter<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>, <<N as Node<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<FullNodeTypesAdapter<N, Arc<TempDatabase<DatabaseEnv>>, Provider>>>::Components> as FullNodeTypes>::Types as NodeTypes>::Primitives>
Canonical state events.
Layout§
Note: Encountered an error during type layout; the type failed to be normalized.
Implementations
Source§impl<Node, Engine, AddOns> NodeTestContext<Node, AddOns>where
Engine: EngineTypes,
Node: FullNodeComponents,
Node::Types: NodeTypesWithEngine<ChainSpec: EthereumHardforks, Engine = Engine>,
Node::Network: PeersHandleProvider,
AddOns: RethRpcAddOns<Node>,
impl<Node, Engine, AddOns> NodeTestContext<Node, AddOns>where
Engine: EngineTypes,
Node: FullNodeComponents,
Node::Types: NodeTypesWithEngine<ChainSpec: EthereumHardforks, Engine = Engine>,
Node::Network: PeersHandleProvider,
AddOns: RethRpcAddOns<Node>,
Sourcepub async fn new(
node: FullNode<Node, AddOns>,
attributes_generator: impl Fn(u64) -> Engine::PayloadBuilderAttributes + Send + Sync + 'static,
) -> Result<Self>
pub async fn new( node: FullNode<Node, AddOns>, attributes_generator: impl Fn(u64) -> Engine::PayloadBuilderAttributes + Send + Sync + 'static, ) -> Result<Self>
Creates a new test node
Sourcepub async fn advance(
&mut self,
length: u64,
tx_generator: impl Fn(u64) -> Pin<Box<dyn Future<Output = Bytes>>>,
) -> Result<Vec<Engine::BuiltPayload>>where
AddOns::EthApi: EthApiSpec<Provider: BlockReader<Block = BlockTy<Node::Types>>> + EthTransactions + TraceExt,
pub async fn advance(
&mut self,
length: u64,
tx_generator: impl Fn(u64) -> Pin<Box<dyn Future<Output = Bytes>>>,
) -> Result<Vec<Engine::BuiltPayload>>where
AddOns::EthApi: EthApiSpec<Provider: BlockReader<Block = BlockTy<Node::Types>>> + EthTransactions + TraceExt,
Advances the chain length
blocks.
Returns the added chain as a Vec of block hashes.
Sourcepub async fn new_payload(&mut self) -> Result<Engine::BuiltPayload>
pub async fn new_payload(&mut self) -> Result<Engine::BuiltPayload>
Creates a new payload from given attributes generator expects a payload attribute event and waits until the payload is built.
It triggers the resolve payload via engine api and expects the built payload event.
Sourcepub async fn build_and_submit_payload(&mut self) -> Result<Engine::BuiltPayload>
pub async fn build_and_submit_payload(&mut self) -> Result<Engine::BuiltPayload>
Triggers payload building job and submits it to the engine.
Sourcepub async fn advance_block(&mut self) -> Result<Engine::BuiltPayload>
pub async fn advance_block(&mut self) -> Result<Engine::BuiltPayload>
Advances the node forward one block
Sourcepub async fn wait_block(
&self,
number: BlockNumber,
expected_block_hash: BlockHash,
wait_finish_checkpoint: bool,
) -> Result<()>
pub async fn wait_block( &self, number: BlockNumber, expected_block_hash: BlockHash, wait_finish_checkpoint: bool, ) -> Result<()>
Waits for block to be available on node.
Sourcepub async fn wait_unwind(&self, number: BlockNumber) -> Result<()>
pub async fn wait_unwind(&self, number: BlockNumber) -> Result<()>
Waits for the node to unwind to the given block number
Sourcepub async fn assert_new_block(
&mut self,
tip_tx_hash: B256,
block_hash: B256,
block_number: BlockNumber,
) -> Result<()>
pub async fn assert_new_block( &mut self, tip_tx_hash: B256, block_hash: B256, block_number: BlockNumber, ) -> Result<()>
Asserts that a new block has been added to the blockchain and the tx has been included in the block.
Does NOT work for pipeline since there’s no stream notification!
Sourcepub fn block_hash(&self, number: u64) -> BlockHash
pub fn block_hash(&self, number: u64) -> BlockHash
Gets block hash by number.
Sourcepub async fn sync_to(&self, block: BlockHash) -> Result<()>
pub async fn sync_to(&self, block: BlockHash) -> Result<()>
Sends FCU and waits for the node to sync to the given block.
Sourcepub async fn update_forkchoice(
&self,
current_head: B256,
new_head: B256,
) -> Result<()>
pub async fn update_forkchoice( &self, current_head: B256, new_head: B256, ) -> Result<()>
Sends a forkchoice update message to the engine.
Sourcepub async fn update_optimistic_forkchoice(&self, hash: B256) -> Result<()>
pub async fn update_optimistic_forkchoice(&self, hash: B256) -> Result<()>
Sends forkchoice update to the engine api with a zero finalized hash
Sourcepub async fn submit_payload(
&self,
payload: Engine::BuiltPayload,
) -> Result<B256>
pub async fn submit_payload( &self, payload: Engine::BuiltPayload, ) -> Result<B256>
Submits a payload to the engine.
Sourcepub fn rpc_client(&self) -> Option<HttpClient>
pub fn rpc_client(&self) -> Option<HttpClient>
Returns an RPC client.
Sourcepub fn engine_api_client(&self) -> HttpClient<AuthClientService<HttpBackend>>
pub fn engine_api_client(&self) -> HttpClient<AuthClientService<HttpBackend>>
Returns an Engine API client.