Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions crates/net/discv4/src/test_utils.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
//! Mock discovery support

// TODO(rand): update ::random calls after rand_09 migration

use crate::{
proto::{FindNode, Message, Neighbours, NodeEndpoint, Packet, Ping, Pong},
Expand Down Expand Up @@ -267,26 +266,23 @@ pub fn rng_endpoint(rng: &mut impl Rng) -> NodeEndpoint {
/// Generates a random [`NodeRecord`] using the provided random number generator.
pub fn rng_record(rng: &mut impl RngCore) -> NodeRecord {
let NodeEndpoint { address, udp_port, tcp_port } = rng_endpoint(rng);
// TODO(rand)
NodeRecord { address, tcp_port, udp_port, id: B512::random() }
NodeRecord { address, tcp_port, udp_port, id: rng.gen() }
}

/// Generates a random IPv6 [`NodeRecord`] using the provided random number generator.
pub fn rng_ipv6_record(rng: &mut impl RngCore) -> NodeRecord {
let mut ip = [0u8; 16];
rng.fill_bytes(&mut ip);
let address = IpAddr::V6(ip.into());
// TODO(rand)
NodeRecord { address, tcp_port: rng.r#gen(), udp_port: rng.r#gen(), id: B512::random() }
NodeRecord { address, tcp_port: rng.r#gen(), udp_port: rng.r#gen(), id: rng.gen() }
}

/// Generates a random IPv4 [`NodeRecord`] using the provided random number generator.
pub fn rng_ipv4_record(rng: &mut impl RngCore) -> NodeRecord {
let mut ip = [0u8; 4];
rng.fill_bytes(&mut ip);
let address = IpAddr::V4(ip.into());
// TODO(rand)
NodeRecord { address, tcp_port: rng.r#gen(), udp_port: rng.r#gen(), id: B512::random() }
NodeRecord { address, tcp_port: rng.r#gen(), udp_port: rng.r#gen(), id: rng.gen() }
}

/// Generates a random [`Message`] using the provided random number generator.
Expand All @@ -304,7 +300,7 @@ pub fn rng_message(rng: &mut impl RngCore) -> Message {
expire: rng.r#gen(),
enr_sq: None,
}),
3 => Message::FindNode(FindNode { id: B512::random(), expire: rng.r#gen() }),
3 => Message::FindNode(FindNode { id: rng.gen(), expire: rng.r#gen() }),
4 => {
let num: usize = rng.gen_range(1..=SAFE_MAX_DATAGRAM_NEIGHBOUR_RECORDS);
Message::Neighbours(Neighbours {
Expand Down
27 changes: 20 additions & 7 deletions crates/net/dns/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ impl<R: Resolver> DnsDiscoveryService<R> {
// already resolved
let cached = ResolveEntryResult { entry: Some(Ok(entry)), link, hash, kind };
self.on_resolved_entry(cached);
return
return;
}
self.queries.resolve_entry(link, hash, kind)
}
Expand Down Expand Up @@ -298,7 +298,7 @@ impl<R: Resolver> DnsDiscoveryService<R> {
loop {
// drain buffered events first
if let Some(event) = self.queued_events.pop_front() {
return Poll::Ready(event)
return Poll::Ready(event);
}

// process all incoming commands
Expand Down Expand Up @@ -351,7 +351,7 @@ impl<R: Resolver> DnsDiscoveryService<R> {
}

if !progress && self.queued_events.is_empty() {
return Poll::Pending
return Poll::Pending;
}
}
}
Expand Down Expand Up @@ -393,16 +393,24 @@ pub enum DnsDiscoveryEvent {

/// Converts an [Enr] into a [`NodeRecord`]
fn convert_enr_node_record(enr: &Enr<SecretKey>) -> Option<DnsNodeRecordUpdate> {
let id = pk2id(&enr.public_key());

let node_record = NodeRecord {
address: enr.ip4().map(IpAddr::from).or_else(|| enr.ip6().map(IpAddr::from))?,
tcp_port: enr.tcp4().or_else(|| enr.tcp6())?,
udp_port: enr.udp4().or_else(|| enr.udp6())?,
id: pk2id(&enr.public_key()),
id,
}
.into_ipv4_mapped();

let fork_id =
enr.get_decodable::<EnrForkIdEntry>(b"eth").transpose().ok().flatten().map(Into::into);
let fork_id = match enr.get_decodable::<EnrForkIdEntry>(b"eth").transpose() {
Ok(Some(entry)) => Some(entry.into()),
Ok(None) => None,
Err(err) => {
trace!(?err, ?id, "invalid fork id entry in ENR");
None
}
};

Some(DnsNodeRecordUpdate { node_record, fork_id, enr: enr.clone() })
}
Expand All @@ -414,6 +422,7 @@ mod tests {
use alloy_chains::Chain;
use alloy_rlp::{Decodable, Encodable};
use enr::EnrKey;
use rand::{rngs::StdRng, RngCore, SeedableRng};
use reth_chainspec::MAINNET;
use reth_ethereum_forks::{EthereumHardfork, ForkHash};
use secp256k1::rand::thread_rng;
Expand Down Expand Up @@ -446,12 +455,16 @@ mod tests {
// rig

let secret_key = SecretKey::new(&mut secp256k1::rand::thread_rng());
let mut rng = StdRng::seed_from_u64(1);
let mut fork_hash = [0u8; 4];
rng.fill_bytes(&mut fork_hash);
let next = rng.next_u64();
let enr = Enr::builder()
.ip("127.0.0.1".parse().unwrap())
.udp4(9000)
.tcp4(30303)
.add_value(b"eth", &EnrForkIdEntry::from(MAINNET.latest_fork_id()))
.add_value(b"opstack", &ForkId { hash: ForkHash(rand::random()), next: rand::random() })
.add_value(b"opstack", &ForkId { hash: ForkHash(fork_hash), next })
.build(&secret_key)
.unwrap();

Expand Down
5 changes: 2 additions & 3 deletions crates/net/ecies/src/algorithm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -312,9 +312,8 @@ impl ECIES {

/// Create a new ECIES client with the given static secret key and remote peer ID.
pub fn new_client(secret_key: SecretKey, remote_id: PeerId) -> Result<Self, ECIESError> {
// TODO(rand): use rng for nonce
let mut rng = rng();
let nonce = B256::random();
let nonce = rng.gen();
let ephemeral_secret_key = SecretKey::new(&mut rng);
Self::new_static_client(secret_key, remote_id, nonce, ephemeral_secret_key)
}
Expand Down Expand Up @@ -356,7 +355,7 @@ impl ECIES {
/// Create a new ECIES server with the given static secret key.
pub fn new_server(secret_key: SecretKey) -> Result<Self, ECIESError> {
let mut rng = rng();
let nonce = B256::random();
let nonce = rng.gen();
let ephemeral_secret_key = SecretKey::new(&mut rng);
Self::new_static_server(secret_key, nonce, ephemeral_secret_key)
}
Expand Down
8 changes: 3 additions & 5 deletions testing/testing-utils/src/generators.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
//! Generators for different data structures like block headers, block bodies and ranges of those.

// TODO(rand): update ::random calls after rand_09 migration

use alloy_consensus::{Header, SignableTransaction, Transaction as _, TxLegacy};
use alloy_eips::{
eip1898::BlockWithParent,
Expand Down Expand Up @@ -345,7 +343,7 @@ where
let old = if entry.value.is_zero() {
let old = storage.remove(&entry.key);
if matches!(old, Some(U256::ZERO)) {
return None
return None;
}
old
} else {
Expand Down Expand Up @@ -442,7 +440,7 @@ pub fn random_contract_account_range<R: Rng>(
for _ in acc_range {
let (address, eoa_account) = random_eoa_account(rng);
// todo: can a non-eoa account have a nonce > 0?
let account = Account { bytecode_hash: Some(B256::random()), ..eoa_account };
let account = Account { bytecode_hash: Some(rng.random()), ..eoa_account };
accounts.push((address, account))
}
accounts
Expand Down Expand Up @@ -477,7 +475,7 @@ pub fn random_log<R: Rng>(rng: &mut R, address: Option<Address>, topics_count: O
let topics_count = topics_count.unwrap_or_else(|| rng.random()) as usize;
Log::new_unchecked(
address.unwrap_or_else(|| Address::random()),
std::iter::repeat_with(|| B256::random()).take(topics_count).collect(),
std::iter::repeat_with(|| rng.random()).take(topics_count).collect(),
std::iter::repeat_with(|| rng.random()).take(data_byte_count).collect::<Vec<_>>().into(),
)
}
Expand Down