Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
nullifier_tree.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3
// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4
// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5
// =====================
6
7
#pragma once
8
#include "../hash.hpp"
9
#include "../merkle_tree.hpp"
10
#include "
nullifier_leaf.hpp
"
11
12
namespace
bb::crypto::merkle_tree
{
13
14
template
<
typename
Store,
typename
HashingPolicy>
class
NullifierTree
:
public
MerkleTree
<Store, HashingPolicy> {
15
public
:
16
typedef
uint256_t
index_t
;
17
18
NullifierTree
(
Store
& store,
size_t
depth
,
size_t
initial_size = 1, uint8_t tree_id = 0);
19
NullifierTree
(
NullifierTree
const
& other) =
delete
;
20
NullifierTree
(
NullifierTree
&& other);
21
~NullifierTree
();
22
23
using
MerkleTree
<
Store
, HashingPolicy>
::get_hash_path
;
24
using
MerkleTree
<
Store
, HashingPolicy>
::root
;
25
using
MerkleTree
<
Store
, HashingPolicy>
::size
;
26
using
MerkleTree
<
Store
, HashingPolicy>
::depth
;
27
28
fr
update_element
(
fr
const
&
value
);
29
30
private
:
31
using
MerkleTree
<
Store
, HashingPolicy>
::update_element
;
32
using
MerkleTree
<
Store
, HashingPolicy>
::get_element
;
33
using
MerkleTree
<
Store
, HashingPolicy>
::compute_zero_path_hash
;
34
35
private
:
36
using
MerkleTree
<
Store
, HashingPolicy>
::store_
;
37
using
MerkleTree
<
Store
, HashingPolicy>
::zero_hashes_
;
38
using
MerkleTree
<
Store
, HashingPolicy>
::depth_
;
39
using
MerkleTree
<
Store
, HashingPolicy>
::tree_id_
;
40
std::vector<WrappedNullifierLeaf<HashingPolicy>
>
leaves
;
41
};
42
43
}
// namespace bb::crypto::merkle_tree
bb::crypto::merkle_tree::MerkleTree
Definition
merkle_tree.hpp:23
bb::crypto::merkle_tree::MerkleTree::tree_id_
uint8_t tree_id_
Definition
merkle_tree.hpp:107
bb::crypto::merkle_tree::MerkleTree::root
fr root() const
Definition
merkle_tree.hpp:147
bb::crypto::merkle_tree::MerkleTree::depth
size_t depth() const
Definition
merkle_tree.hpp:40
bb::crypto::merkle_tree::MerkleTree::store_
Store & store_
Definition
merkle_tree.hpp:104
bb::crypto::merkle_tree::MerkleTree::zero_hashes_
std::vector< fr > zero_hashes_
Definition
merkle_tree.hpp:105
bb::crypto::merkle_tree::MerkleTree::depth_
size_t depth_
Definition
merkle_tree.hpp:106
bb::crypto::merkle_tree::MerkleTree::get_hash_path
fr_hash_path get_hash_path(index_t index)
Definition
merkle_tree.hpp:165
bb::crypto::merkle_tree::MerkleTree::size
index_t size() const
Definition
merkle_tree.hpp:156
bb::crypto::merkle_tree::MerkleTree::compute_zero_path_hash
fr compute_zero_path_hash(size_t height, index_t index, fr const &value)
Definition
merkle_tree.hpp:413
bb::crypto::merkle_tree::MerkleTree::get_element
fr get_element(fr const &root, index_t index, size_t height)
bb::crypto::merkle_tree::NullifierTree
Definition
nullifier_tree.hpp:14
bb::crypto::merkle_tree::NullifierTree::~NullifierTree
~NullifierTree()
Definition
nullifier_tree.cpp:57
bb::crypto::merkle_tree::NullifierTree::update_element
fr update_element(fr const &value)
Definition
nullifier_tree.cpp:60
bb::crypto::merkle_tree::NullifierTree::NullifierTree
NullifierTree(NullifierTree const &other)=delete
bb::crypto::merkle_tree::NullifierTree::leaves
std::vector< WrappedNullifierLeaf< HashingPolicy > > leaves
Definition
nullifier_tree.hpp:40
bb::crypto::merkle_tree::NullifierTree::index_t
uint256_t index_t
Definition
nullifier_tree.hpp:16
bb::numeric::uint256_t
Definition
uint256.hpp:32
Store
ContentAddressedCachedTreeStore< bb::fr > Store
Definition
content_addressed_append_only_tree.test.cpp:34
bb::crypto::merkle_tree
Definition
content_addressed_append_only_tree.hpp:33
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
nullifier_leaf.hpp
value
FF value
Definition
public_data_tree.test.cpp:96
bb::field< Bn254FrParams >
src
barretenberg
crypto
merkle_tree
nullifier_tree
nullifier_tree.hpp
Generated by
1.9.8