From cdb8e3a08a0876d663858b52c2865f098189c93f Mon Sep 17 00:00:00 2001 From: Rostyslav Tyshko Date: Fri, 16 May 2025 18:39:24 -0400 Subject: [PATCH] imple`Deserialize` for `HashStorageMerkleTree` --- common/src/merkle_tree_public/merkle_tree.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/src/merkle_tree_public/merkle_tree.rs b/common/src/merkle_tree_public/merkle_tree.rs index 0dc3f6b..d769218 100644 --- a/common/src/merkle_tree_public/merkle_tree.rs +++ b/common/src/merkle_tree_public/merkle_tree.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use rs_merkle::{MerkleProof, MerkleTree}; +use serde::{de::{self, SeqAccess, Visitor}, ser::SerializeSeq, Deserialize, Deserializer, Serialize}; use crate::{transaction::Transaction, utxo_commitment::UTXOCommitment}; @@ -66,7 +67,11 @@ impl<'de, Leav: TreeLeavItem + Clone + Deserialize<'de>> Visitor<'de> for HashSt } } - +impl<'de, Leav: TreeLeavItem + Clone + Deserialize<'de>> serde::Deserialize<'de> for HashStorageMerkleTree { + fn deserialize>(deserializer: D) -> Result { + deserializer.deserialize_seq(HashStorageMerkleTreeDeserializer::new()) + } +} pub type PublicTransactionMerkleTree = HashStorageMerkleTree;