libzeropool_zkbob/native/
tree.rs

1use 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}