mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-08 03:01:12 -04:00
33 lines
1.3 KiB
Rust
33 lines
1.3 KiB
Rust
use alloy_rpc_types_engine::ForkchoiceState;
|
|
use reth_primitives_traits::SealedHeader;
|
|
use std::time::Instant;
|
|
|
|
/// A type that can track updates related to fork choice updates.
|
|
pub trait CanonChainTracker: Send + Sync {
|
|
/// The header type.
|
|
type Header: Send + Sync;
|
|
|
|
/// Notify the tracker about a received fork choice update.
|
|
fn on_forkchoice_update_received(&self, update: &ForkchoiceState);
|
|
|
|
/// Returns the last time a fork choice update was received from the CL
|
|
/// ([`CanonChainTracker::on_forkchoice_update_received`])
|
|
fn last_received_update_timestamp(&self) -> Option<Instant>;
|
|
|
|
/// Notify the tracker about a transition configuration exchange.
|
|
fn on_transition_configuration_exchanged(&self);
|
|
|
|
/// Returns the last time a transition configuration was exchanged with the CL
|
|
/// ([`CanonChainTracker::on_transition_configuration_exchanged`])
|
|
fn last_exchanged_transition_configuration_timestamp(&self) -> Option<Instant>;
|
|
|
|
/// Sets the canonical head of the chain.
|
|
fn set_canonical_head(&self, header: SealedHeader<Self::Header>);
|
|
|
|
/// Sets the safe block of the chain.
|
|
fn set_safe(&self, header: SealedHeader<Self::Header>);
|
|
|
|
/// Sets the finalized block of the chain.
|
|
fn set_finalized(&self, header: SealedHeader<Self::Header>);
|
|
}
|