From 90b6d6748b1a49fb45ebc80e8069ba909182b2cb Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Sun, 16 Jun 2024 15:11:52 +0000 Subject: [PATCH] merkle_tree: remove some now-redundant code from block.rs --- bitcoin/src/merkle_tree/block.rs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/bitcoin/src/merkle_tree/block.rs b/bitcoin/src/merkle_tree/block.rs index 6ba5218ec..13c59ef1e 100644 --- a/bitcoin/src/merkle_tree/block.rs +++ b/bitcoin/src/merkle_tree/block.rs @@ -18,7 +18,7 @@ use crate::blockdata::block::{self, Block}; use crate::blockdata::transaction::{Transaction, Txid}; use crate::blockdata::weight::Weight; use crate::consensus::encode::{self, Decodable, Encodable, MAX_VEC_SIZE}; -use crate::merkle_tree::TxMerkleNode; +use crate::merkle_tree::{MerkleNode as _, TxMerkleNode}; use crate::prelude::*; /// Data structure that represents a block header paired to a partial merkle tree. @@ -273,7 +273,7 @@ impl PartialMerkleTree { if hash_used != self.hashes.len() as u32 { return Err(NotAllHashesConsumed); } - Ok(TxMerkleNode::from_byte_array(hash_merkle_root.to_byte_array())) + Ok(hash_merkle_root) } /// Calculates the height of the tree. @@ -307,7 +307,7 @@ impl PartialMerkleTree { left }; // Combine subhashes - PartialMerkleTree::parent_hash(left, right) + left.combine(&right) } } @@ -394,17 +394,9 @@ impl PartialMerkleTree { right = left; } // and combine them before returning - Ok(PartialMerkleTree::parent_hash(left, right)) + Ok(left.combine(&right)) } } - - /// Helper method to produce SHA256D(left + right) - fn parent_hash(left: TxMerkleNode, right: TxMerkleNode) -> TxMerkleNode { - let mut encoder = TxMerkleNode::engine(); - left.consensus_encode(&mut encoder).expect("engines don't error"); - right.consensus_encode(&mut encoder).expect("engines don't error"); - TxMerkleNode::from_engine(encoder) - } } impl Encodable for PartialMerkleTree { @@ -515,7 +507,7 @@ impl std::error::Error for MerkleBlockError { #[cfg(test)] mod tests { #[cfg(feature = "rand-std")] - use {crate::merkle_tree::MerkleNode as _, core::cmp, secp256k1::rand::prelude::*}; + use {core::cmp, secp256k1::rand::prelude::*}; use super::*; use crate::consensus::encode;