openvm_continuations/circuit/root/
bus.rs

1use openvm_recursion_circuit::define_typed_permutation_bus;
2use openvm_recursion_circuit_derive::AlignedBorrow;
3use openvm_stark_sdk::config::baby_bear_poseidon2::DIGEST_SIZE;
4
5#[repr(C)]
6#[derive(AlignedBorrow, Debug, Clone)]
7pub struct MemoryMerkleCommitMessage<T> {
8    pub merkle_root: [T; DIGEST_SIZE],
9}
10
11define_typed_permutation_bus!(MemoryMerkleCommitBus, MemoryMerkleCommitMessage);
12
13#[repr(C)]
14#[derive(AlignedBorrow, Debug, Clone)]
15pub struct DeferralAccPathMessage<T> {
16    pub initial_acc_hash: [T; DIGEST_SIZE],
17    pub final_acc_hash: [T; DIGEST_SIZE],
18    pub depth: T,
19    pub is_unset: T,
20}
21
22define_typed_permutation_bus!(DeferralAccPathBus, DeferralAccPathMessage);
23
24#[repr(C)]
25#[derive(AlignedBorrow, Debug, Clone)]
26pub struct DeferralMerkleRootsMessage<T> {
27    pub initial_root: [T; DIGEST_SIZE],
28    pub final_root: [T; DIGEST_SIZE],
29}
30
31define_typed_permutation_bus!(DeferralMerkleRootsBus, DeferralMerkleRootsMessage);