fix: use enrforkid in dns (#7900)

Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
This commit is contained in:
Matthias Seitz
2024-04-26 11:24:26 +02:00
committed by GitHub
parent 57d09e84be
commit 6425064d07
6 changed files with 45 additions and 33 deletions

View File

@ -22,7 +22,7 @@ use crate::{
pub use config::DnsDiscoveryConfig;
use enr::Enr;
use error::ParseDnsEntryError;
use reth_primitives::{pk2id, ForkId, NodeRecord};
use reth_primitives::{pk2id, EnrForkIdEntry, ForkId, NodeRecord};
use schnellru::{ByLength, LruMap};
use secp256k1::SecretKey;
use std::{
@ -400,7 +400,8 @@ fn convert_enr_node_record(enr: &Enr<SecretKey>) -> Option<DnsNodeRecordUpdate>
}
.into_ipv4_mapped();
let fork_id = enr.get_decodable::<ForkId>(b"eth").transpose().ok()?;
let fork_id =
enr.get_decodable::<EnrForkIdEntry>(b"eth").transpose().ok().flatten().map(Into::into);
Some(DnsNodeRecordUpdate { node_record, fork_id, enr: enr.clone() })
}
@ -423,7 +424,7 @@ mod tests {
.ip("127.0.0.1".parse().unwrap())
.udp4(9000)
.tcp4(30303)
.add_value(b"eth", &MAINNET.latest_fork_id())
.add_value(b"eth", &EnrForkIdEntry::from(MAINNET.latest_fork_id()))
.build(&secret_key)
.unwrap();
@ -446,7 +447,7 @@ mod tests {
.ip("127.0.0.1".parse().unwrap())
.udp4(9000)
.tcp4(30303)
.add_value(b"eth", &MAINNET.latest_fork_id())
.add_value(b"eth", &EnrForkIdEntry::from(MAINNET.latest_fork_id()))
.add_value(b"opstack", &ForkId { hash: ForkHash(rand::random()), next: rand::random() })
.build(&secret_key)
.unwrap();
@ -510,7 +511,11 @@ mod tests {
let mut builder = Enr::builder();
let fork_id = MAINNET.hardfork_fork_id(Hardfork::Frontier).unwrap();
builder.ip4(Ipv4Addr::LOCALHOST).udp4(30303).tcp4(30303).add_value(b"eth", &fork_id);
builder
.ip4(Ipv4Addr::LOCALHOST)
.udp4(30303)
.tcp4(30303)
.add_value(b"eth", &EnrForkIdEntry::from(fork_id));
let enr = builder.build(&secret_key).unwrap();
resolver.insert(format!("{}.{}", root.enr_root.clone(), link.domain), enr.to_base64());