diff --git a/crates/net/src/discovery/builder.rs b/crates/net/src/discovery/builder.rs index 8074f13..47eea12 100644 --- a/crates/net/src/discovery/builder.rs +++ b/crates/net/src/discovery/builder.rs @@ -40,7 +40,7 @@ impl DiscoveryBuilder { } /// Builds a [DiscoveryDriver]. - pub fn build(self) -> Result { + pub fn build(&mut self) -> Result { let addr = self.address.ok_or_else(|| eyre::eyre!("address not set"))?; let chain_id = self.chain_id.ok_or_else(|| eyre::eyre!("chain ID not set"))?; let opstack = OpStackEnr::new(chain_id, 0); diff --git a/crates/net/src/discovery/driver.rs b/crates/net/src/discovery/driver.rs index 33b34bc..d4dd37c 100644 --- a/crates/net/src/discovery/driver.rs +++ b/crates/net/src/discovery/driver.rs @@ -11,7 +11,7 @@ use tracing::{trace, warn}; use discv5::{enr::NodeId, Discv5}; use crate::{ - discovery::bootnodes::BOOTNODES, + discovery::{bootnodes::BOOTNODES, builder::DiscoveryBuilder}, types::{address::Peer, enr::OpStackEnr}, }; @@ -27,6 +27,11 @@ pub struct DiscoveryDriver { } impl DiscoveryDriver { + /// Returns a new [DiscoveryBuilder] instance. + pub fn builder() -> DiscoveryBuilder { + DiscoveryBuilder::new() + } + /// Instantiates a new [DiscoveryDriver]. pub fn new(disc: Discv5, chain_id: u64) -> Self { Self { disc, chain_id }