mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-30 03:01:58 -04:00
chore(deps): bump enr, discv5, secp256k1 (#7000)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
This commit is contained in:
@@ -392,8 +392,6 @@ pub enum DnsDiscoveryEvent {
|
||||
|
||||
/// Converts an [Enr] into a [NodeRecord]
|
||||
fn convert_enr_node_record(enr: &Enr<SecretKey>) -> Option<DnsNodeRecordUpdate> {
|
||||
use alloy_rlp::Decodable;
|
||||
|
||||
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())?,
|
||||
@@ -402,8 +400,7 @@ fn convert_enr_node_record(enr: &Enr<SecretKey>) -> Option<DnsNodeRecordUpdate>
|
||||
}
|
||||
.into_ipv4_mapped();
|
||||
|
||||
let mut maybe_fork_id = enr.get(b"eth")?;
|
||||
let fork_id = ForkId::decode(&mut maybe_fork_id).ok();
|
||||
let fork_id = enr.get_decodable::<ForkId>(b"eth").transpose().ok()?;
|
||||
|
||||
Some(DnsNodeRecordUpdate { node_record, fork_id, enr: enr.clone() })
|
||||
}
|
||||
@@ -412,12 +409,63 @@ fn convert_enr_node_record(enr: &Enr<SecretKey>) -> Option<DnsNodeRecordUpdate>
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::tree::TreeRootEntry;
|
||||
use alloy_rlp::Encodable;
|
||||
use alloy_rlp::{Decodable, Encodable};
|
||||
use enr::EnrKey;
|
||||
use reth_primitives::{Chain, Hardfork, MAINNET};
|
||||
use reth_primitives::{Chain, ForkHash, Hardfork, MAINNET};
|
||||
use secp256k1::rand::thread_rng;
|
||||
use std::{future::poll_fn, net::Ipv4Addr};
|
||||
|
||||
#[test]
|
||||
fn test_convert_enr_node_record() {
|
||||
// rig
|
||||
let secret_key = SecretKey::new(&mut secp256k1::rand::thread_rng());
|
||||
let enr = Enr::builder()
|
||||
.ip("127.0.0.1".parse().unwrap())
|
||||
.udp4(9000)
|
||||
.tcp4(30303)
|
||||
.add_value(b"eth", &MAINNET.latest_fork_id())
|
||||
.build(&secret_key)
|
||||
.unwrap();
|
||||
|
||||
// test
|
||||
let node_record_update = convert_enr_node_record(&enr).unwrap();
|
||||
|
||||
assert_eq!(node_record_update.node_record.address, "127.0.0.1".parse::<IpAddr>().unwrap());
|
||||
assert_eq!(node_record_update.node_record.tcp_port, 30303);
|
||||
assert_eq!(node_record_update.node_record.udp_port, 9000);
|
||||
assert_eq!(node_record_update.fork_id, Some(MAINNET.latest_fork_id()));
|
||||
assert_eq!(node_record_update.enr, enr);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_decode_and_convert_enr_node_record() {
|
||||
// rig
|
||||
|
||||
let secret_key = SecretKey::new(&mut secp256k1::rand::thread_rng());
|
||||
let enr = Enr::builder()
|
||||
.ip("127.0.0.1".parse().unwrap())
|
||||
.udp4(9000)
|
||||
.tcp4(30303)
|
||||
.add_value(b"eth", &MAINNET.latest_fork_id())
|
||||
.add_value(b"opstack", &ForkId { hash: ForkHash(rand::random()), next: rand::random() })
|
||||
.build(&secret_key)
|
||||
.unwrap();
|
||||
|
||||
let mut encoded_enr = vec![];
|
||||
enr.encode(&mut encoded_enr);
|
||||
|
||||
// test
|
||||
let decoded_enr = Enr::decode(&mut &encoded_enr[..]).unwrap();
|
||||
|
||||
let node_record_update = convert_enr_node_record(&decoded_enr).unwrap();
|
||||
|
||||
assert_eq!(node_record_update.node_record.address, "127.0.0.1".parse::<IpAddr>().unwrap());
|
||||
assert_eq!(node_record_update.node_record.tcp_port, 30303);
|
||||
assert_eq!(node_record_update.node_record.udp_port, 9000);
|
||||
assert_eq!(node_record_update.fork_id, Some(MAINNET.latest_fork_id()));
|
||||
assert_eq!(node_record_update.enr, enr);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_start_root_sync() {
|
||||
reth_tracing::init_test_tracing();
|
||||
@@ -461,10 +509,8 @@ mod tests {
|
||||
resolver.insert(link.domain.clone(), root.to_string());
|
||||
|
||||
let mut builder = Enr::builder();
|
||||
let mut buf = Vec::new();
|
||||
let fork_id = MAINNET.hardfork_fork_id(Hardfork::Frontier).unwrap();
|
||||
fork_id.encode(&mut buf);
|
||||
builder.ip4(Ipv4Addr::LOCALHOST).udp4(30303).tcp4(30303).add_value(b"eth", &buf);
|
||||
builder.ip4(Ipv4Addr::LOCALHOST).udp4(30303).tcp4(30303).add_value(b"eth", &fork_id);
|
||||
let enr = builder.build(&secret_key).unwrap();
|
||||
|
||||
resolver.insert(format!("{}.{}", root.enr_root.clone(), link.domain), enr.to_base64());
|
||||
|
||||
@@ -22,7 +22,7 @@ use crate::error::{
|
||||
ParseEntryResult,
|
||||
};
|
||||
use data_encoding::{BASE32_NOPAD, BASE64URL_NOPAD};
|
||||
use enr::{Enr, EnrError, EnrKey, EnrKeyUnambiguous, EnrPublicKey};
|
||||
use enr::{Enr, EnrKey, EnrKeyUnambiguous, EnrPublicKey, Error as EnrError};
|
||||
use reth_primitives::{hex, Bytes};
|
||||
use secp256k1::SecretKey;
|
||||
#[cfg(feature = "serde")]
|
||||
|
||||
Reference in New Issue
Block a user