diff --git a/src/blockdata/witness.rs b/src/blockdata/witness.rs index c1fa40f47a..a5b55a9c94 100644 --- a/src/blockdata/witness.rs +++ b/src/blockdata/witness.rs @@ -282,8 +282,13 @@ impl serde::Serialize for Witness { where S: serde::Serializer, { - let vec: Vec<_> = self.to_vec(); - serde::Serialize::serialize(&vec, serializer) + let mut seq = serializer.serialize_seq(Some(self.witness_elements))?; + + for elem in self.iter() { + seq.serialize_element(&elem)?; + } + + seq.end() } } #[cfg(feature = "serde")]