diff --git a/src/consensus/encode.rs b/src/consensus/encode.rs index 521cd8e..49d0229 100644 --- a/src/consensus/encode.rs +++ b/src/consensus/encode.rs @@ -43,6 +43,7 @@ use byteorder::{LittleEndian, WriteBytesExt, ReadBytesExt}; use hex::encode as hex_encode; use bitcoin_bech32; +use bitcoin_hashes::{sha256d, Hash as HashTrait}; use util::base58; @@ -678,7 +679,18 @@ impl Decodable for HashMap } } +impl Encodable for sha256d::Hash { + fn consensus_encode(&self, s: &mut S) -> Result<(), self::Error> { + self.into_inner().consensus_encode(s) + } +} +impl Decodable for sha256d::Hash { + fn consensus_decode(d: &mut D) -> Result { + let inner: [u8; 32] = Decodable::consensus_decode(d)?; + Ok(sha256d::Hash::from_slice(&inner).unwrap()) + } +} // Tests #[cfg(test)]