fix: propagate --sequencer-headers to SequencerClient (#16474)

This commit is contained in:
Arsenii Kulikov
2025-05-26 19:32:17 +04:00
committed by GitHub
parent 19306aec68
commit 5c5da0b990
2 changed files with 37 additions and 8 deletions

View File

@@ -314,20 +314,22 @@ pub struct OpEthApiBuilder<NetworkT = Optimism> {
/// Sequencer client, configured to forward submitted transactions to sequencer of given OP
/// network.
sequencer_url: Option<String>,
/// Headers to use for the sequencer client requests.
sequencer_headers: Vec<String>,
/// Marker for network types.
_nt: PhantomData<NetworkT>,
}
impl<NetworkT> Default for OpEthApiBuilder<NetworkT> {
fn default() -> Self {
Self { sequencer_url: None, _nt: PhantomData }
Self { sequencer_url: None, sequencer_headers: Vec::new(), _nt: PhantomData }
}
}
impl<NetworkT> OpEthApiBuilder<NetworkT> {
/// Creates a [`OpEthApiBuilder`] instance from core components.
pub const fn new() -> Self {
Self { sequencer_url: None, _nt: PhantomData }
Self { sequencer_url: None, sequencer_headers: Vec::new(), _nt: PhantomData }
}
/// With a [`SequencerClient`].
@@ -335,6 +337,12 @@ impl<NetworkT> OpEthApiBuilder<NetworkT> {
self.sequencer_url = sequencer_url;
self
}
/// With headers to use for the sequencer client requests.
pub fn with_sequencer_headers(mut self, sequencer_headers: Vec<String>) -> Self {
self.sequencer_headers = sequencer_headers;
self
}
}
impl<N, NetworkT> EthApiBuilder<N> for OpEthApiBuilder<NetworkT>
@@ -346,7 +354,7 @@ where
type EthApi = OpEthApi<N, NetworkT>;
async fn build_eth_api(self, ctx: EthApiCtx<'_, N>) -> eyre::Result<Self::EthApi> {
let Self { sequencer_url, .. } = self;
let Self { sequencer_url, sequencer_headers, .. } = self;
let eth_api = reth_rpc::EthApiBuilder::new(
ctx.components.provider().clone(),
ctx.components.pool().clone(),
@@ -365,7 +373,7 @@ where
let sequencer_client = if let Some(url) = sequencer_url {
Some(
SequencerClient::new(&url)
SequencerClient::new_with_headers(&url, sequencer_headers)
.await
.wrap_err_with(|| "Failed to init sequencer client with: {url}")?,
)