libzeropool_zkbob/native/
tree.rs1use crate::{
2 fawkes_crypto::{
3 native::poseidon::MerkleProof,
4 ff_uint::{Num, PrimeField},
5 borsh::{self, BorshSerialize, BorshDeserialize},
6 },
7 constants::{HEIGHT, OUTPLUSONELOG}
8};
9
10
11use std::fmt::Debug;
12
13
14#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize)]
15#[serde(bound(serialize = "", deserialize = ""))]
16pub struct TreePub<Fr:PrimeField> {
17 pub root_before: Num<Fr>,
18 pub root_after: Num<Fr>,
19 pub leaf: Num<Fr>
20}
21
22#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize)]
23#[serde(bound(serialize = "", deserialize = ""))]
24pub struct TreeSec<Fr:PrimeField> {
25 pub proof_filled:MerkleProof<Fr, {HEIGHT - OUTPLUSONELOG}>,
26 pub proof_free:MerkleProof<Fr, {HEIGHT - OUTPLUSONELOG}>,
27 pub prev_leaf:Num<Fr>
28}