INNER CODE UNIT · Rust
finalize
risc0/risc0-ethereum · crates/aggregation/src/lib.rs:247
pub fn finalize(&mut self) -> Result<(), Error> {
let root = self.0.iter().rev().fold(None, |root, peak| {
Some(match root {
Some(root) => commutative_keccak256(&root, &peak.digest),
None => peak.digest,
})
});
let Some(root) = root else {
return Err(Error::EmptyError);
};
self.0.clear();
self.0.push(Peak {
digest: root,
max_depth: u8::MAX,
});
Ok(())
}