From 47e458b286781c8f2eb7ddff2a309b13e9eb8da4 Mon Sep 17 00:00:00 2001 From: Csongor Kiss Date: Sat, 27 Jan 2024 16:45:25 +0000 Subject: [PATCH] fix: print actual length in bytes in `trimmed_hex` (#6919) --- crates/evm/core/src/decode.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/crates/evm/core/src/decode.rs b/crates/evm/core/src/decode.rs index ff28631fbeb2..d4b889779859 100644 --- a/crates/evm/core/src/decode.rs +++ b/crates/evm/core/src/decode.rs @@ -124,11 +124,28 @@ pub fn maybe_decode_revert( } fn trimmed_hex(s: &[u8]) -> String { - let s = hex::encode(s); - let n = 32 * 2; + let n = 32; if s.len() <= n { - s + hex::encode(s) } else { - format!("{}…{} ({} bytes)", &s[..n / 2], &s[s.len() - n / 2..], s.len()) + format!( + "{}…{} ({} bytes)", + &hex::encode(&s[..n / 2]), + &hex::encode(&s[s.len() - n / 2..]), + s.len() + ) + } +} + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn test_trimmed_hex() { + assert_eq!(trimmed_hex(&hex::decode("1234567890").unwrap()), "1234567890"); + assert_eq!( + trimmed_hex(&hex::decode("492077697368207275737420737570706F72746564206869676865722D6B696E646564207479706573").unwrap()), + "49207769736820727573742073757070…6865722d6b696e646564207479706573 (41 bytes)" + ); } }