From 830a4e9ec3069012ec7e46bc9a5522509d3b4a75 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Wed, 16 Oct 2024 20:17:58 +0200 Subject: [PATCH] chore(trie): use `RlpNode::as_hash` --- crates/trie/sparse/src/trie.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/trie/sparse/src/trie.rs b/crates/trie/sparse/src/trie.rs index 1b83e07e48d6..2edaaf76b274 100644 --- a/crates/trie/sparse/src/trie.rs +++ b/crates/trie/sparse/src/trie.rs @@ -267,8 +267,8 @@ impl RevealedSparseTrie { // take the current prefix set. let mut prefix_set = std::mem::take(&mut self.prefix_set).freeze(); let root_rlp = self.rlp_node(Nibbles::default(), &mut prefix_set); - if root_rlp.len() == B256::len_bytes() + 1 { - B256::from_slice(&root_rlp[1..]) + if let Some(root_hash) = root_rlp.as_hash() { + root_hash } else { keccak256(root_rlp) } @@ -338,8 +338,8 @@ impl RevealedSparseTrie { } else { let value = self.values.get(&path).unwrap(); let rlp_node = LeafNodeRef { key, value }.rlp(&mut self.rlp_buf); - if rlp_node.len() == B256::len_bytes() + 1 { - *hash = Some(B256::from_slice(&rlp_node[1..])); + if let Some(node_hash) = rlp_node.as_hash() { + *hash = Some(node_hash); } rlp_node } @@ -353,8 +353,8 @@ impl RevealedSparseTrie { let (_, child) = rlp_node_stack.pop().unwrap(); self.rlp_buf.clear(); let rlp_node = ExtensionNodeRef::new(key, &child).rlp(&mut self.rlp_buf); - if rlp_node.len() == B256::len_bytes() + 1 { - *hash = Some(B256::from_slice(&rlp_node[1..])); + if let Some(node_hash) = rlp_node.as_hash() { + *hash = Some(node_hash); } rlp_node } else { @@ -393,8 +393,8 @@ impl RevealedSparseTrie { self.rlp_buf.clear(); let rlp_node = BranchNodeRef::new(&branch_value_stack_buf, *state_mask) .rlp(&mut self.rlp_buf); - if rlp_node.len() == B256::len_bytes() + 1 { - *hash = Some(B256::from_slice(&rlp_node[1..])); + if let Some(node_hash) = rlp_node.as_hash() { + *hash = Some(node_hash); } rlp_node }