miden_test_utils/
crypto.rs1use alloc::vec::Vec;
2
3pub use miden_core::crypto::{
6 dsa::*,
7 hash::Poseidon2,
8 merkle::{
9 EmptySubtreeRoots, LeafIndex, MerkleError, MerklePath, MerkleStore, MerkleTree, Mmr,
10 MmrPeaks, NodeIndex, PartialMerkleTree, SimpleSmt, Smt,
11 },
12};
13
14use super::{Felt, Word, ZERO};
15
16pub fn init_merkle_store(values: &[u64]) -> (Vec<Word>, MerkleStore) {
20 let leaves = init_merkle_leaves(values);
21 let merkle_tree = MerkleTree::new(leaves.clone()).unwrap();
22 let store = MerkleStore::from(&merkle_tree);
23 (leaves, store)
24}
25
26pub fn init_merkle_leaves(values: &[u64]) -> Vec<Word> {
27 values.iter().map(|&v| init_merkle_leaf(v)).collect()
28}
29
30pub fn init_merkle_leaf(value: u64) -> Word {
31 [Felt::new(value), ZERO, ZERO, ZERO].into()
32}