diff --git a/crates/ethereum-forks/src/forkid.rs b/crates/ethereum-forks/src/forkid.rs index 40a8281d6..bb163c86e 100644 --- a/crates/ethereum-forks/src/forkid.rs +++ b/crates/ethereum-forks/src/forkid.rs @@ -561,6 +561,25 @@ mod tests { ); } + #[test] + fn fork_id_rlp() { + // + let val = hex!("c6840000000080"); + let id = ForkId::decode(&mut &val[..]).unwrap(); + assert_eq!(id, ForkId { hash: ForkHash(hex!("00000000")), next: 0 }); + assert_eq!(alloy_rlp::encode(id), &val[..]); + + let val = hex!("ca84deadbeef84baddcafe"); + let id = ForkId::decode(&mut &val[..]).unwrap(); + assert_eq!(id, ForkId { hash: ForkHash(hex!("deadbeef")), next: 0xBADDCAFE }); + assert_eq!(alloy_rlp::encode(id), &val[..]); + + let val = hex!("ce84ffffffff88ffffffffffffffff"); + let id = ForkId::decode(&mut &val[..]).unwrap(); + assert_eq!(id, ForkId { hash: ForkHash(u32::MAX.to_be_bytes()), next: u64::MAX }); + assert_eq!(alloy_rlp::encode(id), &val[..]); + } + #[test] fn compute_cache() { let b1 = 1_150_000;