mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: Add --hl-node-compliant
This commit is contained in:
@ -34,6 +34,9 @@ pub struct HlNodeArgs {
|
||||
|
||||
#[arg(long, env = "UPSTREAM_RPC_URL")]
|
||||
pub upstream_rpc_url: Option<String>,
|
||||
|
||||
#[arg(long, env = "HL_NODE_COMPLIANT")]
|
||||
pub hl_node_compliant: bool,
|
||||
}
|
||||
|
||||
/// The main reth_hl cli interface.
|
||||
|
||||
@ -51,14 +51,23 @@ pub struct HlNode {
|
||||
engine_handle_rx:
|
||||
Arc<Mutex<Option<oneshot::Receiver<BeaconConsensusEngineHandle<HlPayloadTypes>>>>>,
|
||||
block_source_config: BlockSourceConfig,
|
||||
hl_node_compliant: bool,
|
||||
}
|
||||
|
||||
impl HlNode {
|
||||
pub fn new(
|
||||
block_source_config: BlockSourceConfig,
|
||||
hl_node_compliant: bool,
|
||||
) -> (Self, oneshot::Sender<BeaconConsensusEngineHandle<HlPayloadTypes>>) {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
(Self { engine_handle_rx: Arc::new(Mutex::new(Some(rx))), block_source_config }, tx)
|
||||
(
|
||||
Self {
|
||||
engine_handle_rx: Arc::new(Mutex::new(Some(rx))),
|
||||
block_source_config,
|
||||
hl_node_compliant,
|
||||
},
|
||||
tx,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,7 +130,12 @@ where
|
||||
}
|
||||
|
||||
fn add_ons(&self) -> Self::AddOns {
|
||||
HlNodeAddOns::default()
|
||||
HlNodeAddOns::new(
|
||||
HlEthApiBuilder { hl_node_compliant: self.hl_node_compliant },
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -250,9 +250,18 @@ where
|
||||
}
|
||||
|
||||
/// Builds [`HlEthApi`] for HL.
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug)]
|
||||
#[non_exhaustive]
|
||||
pub struct HlEthApiBuilder;
|
||||
pub struct HlEthApiBuilder {
|
||||
/// Whether the node is in HL node compliant mode.
|
||||
pub(crate) hl_node_compliant: bool,
|
||||
}
|
||||
|
||||
impl Default for HlEthApiBuilder {
|
||||
fn default() -> Self {
|
||||
Self { hl_node_compliant: false }
|
||||
}
|
||||
}
|
||||
|
||||
impl<N> EthApiBuilder<N> for HlEthApiBuilder
|
||||
where
|
||||
@ -280,6 +289,7 @@ where
|
||||
Ok(HlEthApi {
|
||||
inner: Arc::new(HlEthApiInner { eth_api }),
|
||||
tx_resp_builder: Default::default(),
|
||||
hl_node_compliant: self.hl_node_compliant,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user