diff --git a/bitcoin/src/blockdata/script/mod.rs b/bitcoin/src/blockdata/script/mod.rs index 4b2530598..c0df71c0b 100644 --- a/bitcoin/src/blockdata/script/mod.rs +++ b/bitcoin/src/blockdata/script/mod.rs @@ -616,14 +616,14 @@ impl<'de> serde::Deserialize<'de> for ScriptBuf { impl Encodable for Script { #[inline] fn consensus_encode(&self, w: &mut W) -> Result { - crate::consensus::encode::consensus_encode_with_size(&self.0, w) + crate::consensus::encode::consensus_encode_with_size(self.as_bytes(), w) } } impl Encodable for ScriptBuf { #[inline] fn consensus_encode(&self, w: &mut W) -> Result { - self.0.consensus_encode(w) + self.as_script().consensus_encode(w) } } @@ -632,7 +632,8 @@ impl Decodable for ScriptBuf { fn consensus_decode_from_finite_reader( r: &mut R, ) -> Result { - Ok(ScriptBuf(Decodable::consensus_decode_from_finite_reader(r)?)) + let v: Vec = Decodable::consensus_decode_from_finite_reader(r)?; + Ok(ScriptBuf::from_bytes(v)) } }