State Related Functions
State Model of ZKWASM
extern "C" {
pub fn merkle_setroot(x: u64);
pub fn merkle_address(x: u64);
pub fn merkle_set(x: u64);
pub fn merkle_get() -> u64;
pub fn merkle_getroot() -> u64;
} /// Get the raw leaf data of a merkle subtree
pub fn get_simple(&self, index: u32, data: &mut [u64; 4]) {
unsafe {
merkle_address(index as u64); // build in merkle address has default depth 32
merkle_setroot(self.root[0]);
merkle_setroot(self.root[1]);
merkle_setroot(self.root[2]);
merkle_setroot(self.root[3]);
data[0] = merkle_get();
data[1] = merkle_get();
data[2] = merkle_get();
data[3] = merkle_get();
//enforce root does not change
merkle_getroot();
merkle_getroot();
merkle_getroot();
merkle_getroot();
}
}Last updated