reth_optimism_flashblocks/
lib.rs

1//! A downstream integration of Flashblocks.
2
3#![doc(
4    html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png",
5    html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
6    issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
7)]
8#![cfg_attr(docsrs, feature(doc_cfg))]
9#![cfg_attr(not(test), warn(unused_crate_dependencies))]
10
11pub use payload::{
12    ExecutionPayloadBaseV1, ExecutionPayloadFlashblockDeltaV1, FlashBlock, FlashBlockDecoder,
13    Metadata,
14};
15pub use service::{FlashBlockBuildInfo, FlashBlockService};
16pub use ws::{WsConnect, WsFlashBlockStream};
17
18mod consensus;
19pub use consensus::FlashBlockConsensusClient;
20mod payload;
21pub use payload::PendingFlashBlock;
22mod sequence;
23pub use sequence::{FlashBlockCompleteSequence, FlashBlockPendingSequence};
24
25mod service;
26mod worker;
27mod ws;
28
29/// Receiver of the most recent [`PendingFlashBlock`] built out of [`FlashBlock`]s.
30///
31/// [`FlashBlock`]: crate::FlashBlock
32pub type PendingBlockRx<N> = tokio::sync::watch::Receiver<Option<PendingFlashBlock<N>>>;
33
34/// Receiver of the sequences of [`FlashBlock`]s built.
35///
36/// [`FlashBlock`]: crate::FlashBlock
37pub type FlashBlockCompleteSequenceRx =
38    tokio::sync::broadcast::Receiver<FlashBlockCompleteSequence>;
39
40/// Receiver that signals whether a [`FlashBlock`] is currently being built.
41pub type InProgressFlashBlockRx = tokio::sync::watch::Receiver<Option<FlashBlockBuildInfo>>;