diff --git a/zebra-chain/src/transparent.rs b/zebra-chain/src/transparent.rs index 93aacc3e4..97a096830 100644 --- a/zebra-chain/src/transparent.rs +++ b/zebra-chain/src/transparent.rs @@ -23,7 +23,7 @@ use crate::{ }; /// Arbitrary data inserted by miners into a coinbase transaction. -#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Eq, PartialEq, Serialize, Deserialize)] pub struct CoinbaseData( /// Invariant: this vec, together with the coinbase height, must be less than /// 100 bytes. We enforce this by only constructing CoinbaseData fields by @@ -40,6 +40,20 @@ impl AsRef<[u8]> for CoinbaseData { } } +impl std::fmt::Debug for CoinbaseData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let escaped = String::from_utf8( + self.0 + .iter() + .cloned() + .flat_map(std::ascii::escape_default) + .collect(), + ) + .expect("ascii::escape_default produces utf8"); + f.debug_tuple("CoinbaseData").field(&escaped).finish() + } +} + /// OutPoint /// /// A particular transaction output reference.