From 5d827206ac7cdc0ec51265b0411b87ab8fbdc57c Mon Sep 17 00:00:00 2001 From: Ammar Arif Date: Thu, 31 Oct 2024 16:59:07 -0400 Subject: [PATCH] merkle tree tests --- crates/katana/trie/src/lib.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/crates/katana/trie/src/lib.rs b/crates/katana/trie/src/lib.rs index 35685a3084..2d3394547a 100644 --- a/crates/katana/trie/src/lib.rs +++ b/crates/katana/trie/src/lib.rs @@ -41,3 +41,26 @@ where Ok(bs.root_hash(IDENTIFIER).unwrap()) } + +#[cfg(test)] +mod tests { + + use katana_primitives::felt; + use starknet_types_core::hash; + + use super::*; + + // Taken from Pathfinder: https://github.com/eqlabs/pathfinder/blob/29f93d0d6ad8758fdcf5ae3a8bd2faad2a3bc92b/crates/merkle-tree/src/transaction.rs#L70-L88 + #[test] + fn test_commitment_merkle_tree() { + let hashes = vec![Felt::from(1), Felt::from(2), Felt::from(3), Felt::from(4)]; + + // Produced by the cairo-lang Python implementation: + // `hex(asyncio.run(calculate_patricia_root([1, 2, 3, 4], height=64, ffc=ffc))))` + let expected_root_hash = + felt!("0x1a0e579b6b444769e4626331230b5ae39bd880f47e703b73fa56bf77e52e461"); + let computed_root_hash = compute_merkle_root::(&hashes).unwrap(); + + assert_eq!(expected_root_hash, computed_root_hash); + } +}