reth_node_builder/builder/
add_ons.rs

1//! Node add-ons. Depend on core [`NodeComponents`](crate::NodeComponents).
2
3use reth_node_api::{FullNodeComponents, NodeAddOns};
4
5use crate::{exex::BoxedLaunchExEx, hooks::NodeHooks};
6
7/// Additional node extensions.
8///
9/// At this point we consider all necessary components defined.
10pub struct AddOns<Node: FullNodeComponents, AddOns: NodeAddOns<Node>> {
11    /// Additional `NodeHooks` that are called at specific points in the node's launch lifecycle.
12    pub hooks: NodeHooks<Node, AddOns>,
13    /// The `ExExs` (execution extensions) of the node.
14    pub exexs: Vec<(String, Box<dyn BoxedLaunchExEx<Node>>)>,
15    /// Additional captured addons.
16    pub add_ons: AddOns,
17}