pub fn merkle_root_and_path(&self, index: usize) -> (H256, Vec<H256>) {
        assert!(index < self.hashes.len(), "leaf index out of bounds");
        let mut end_path = vec![];
        let root_hash = self.compute_merkle_root_and_path(index, Some(&mut end_path), None);
        (
            root_hash,
            end_path.into_iter().map(Option::unwrap).collect(),
        )
    }
Returns the root hash and the Merkle proof for a leaf with the specified 0-based `index`.
`index` is relative to the leftmost uncached leaf.
# Panics
Panics if `index` is >= than the number of uncached leaves in the tree.
core/lib/mini_merkle_tree/src/lib.rs