INNER CODE UNIT · Rust
commutative_keccak256
risc0/risc0-ethereum · crates/aggregation/src/lib.rs:450
fn commutative_keccak256(a: &Digest, b: &Digest) -> Digest {
let mut hasher = Keccak256::new();
if a.as_bytes() < b.as_bytes() {
hasher.update(a.as_bytes());
hasher.update(b.as_bytes());
} else {
hasher.update(b.as_bytes());
hasher.update(a.as_bytes());
}
hasher.finalize().0.into()
}
#[cfg(test)]
mod tests {
use super::*;
use hex::FromHex;
fn assert_merkle_root(digests: &[Digest], expected_root: Digest) {