Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
merkle_check.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
#include <memory>
5
#include <span>
6
7
#include "
barretenberg/vm2/common/field.hpp
"
8
#include "
barretenberg/vm2/common/memory_types.hpp
"
9
#include "
barretenberg/vm2/simulation/events/event_emitter.hpp
"
10
#include "
barretenberg/vm2/simulation/events/merkle_check_event.hpp
"
11
#include "
barretenberg/vm2/simulation/gadgets/memory.hpp
"
12
#include "
barretenberg/vm2/simulation/gadgets/poseidon2.hpp
"
13
#include "
barretenberg/vm2/simulation/interfaces/merkle_check.hpp
"
14
15
namespace
bb::avm2::simulation
{
16
17
class
MerkleCheck
:
public
MerkleCheckInterface
{
18
public
:
19
MerkleCheck
(
Poseidon2Interface
&
poseidon2
,
EventEmitterInterface<MerkleCheckEvent>
&
event_emitter
)
20
:
events
(
event_emitter
)
21
,
poseidon2
(
poseidon2
)
22
{}
23
24
void
assert_membership
(
const
FF
& leaf_value,
25
const
uint64_t leaf_index,
26
std::span<const FF>
sibling_path,
27
const
FF
& root)
override
;
28
29
FF
write
(
const
FF
& current_value,
30
const
FF
& new_value,
31
const
uint64_t leaf_index,
32
std::span<const FF>
sibling_path,
33
const
FF
& current_root)
override
;
34
35
private
:
36
EventEmitterInterface<MerkleCheckEvent>
&
events
;
37
Poseidon2Interface
&
poseidon2
;
38
};
39
40
}
// namespace bb::avm2::simulation
bb::avm2::simulation::EventEmitterInterface
Definition
event_emitter.hpp:10
bb::avm2::simulation::MerkleCheck
Definition
merkle_check.hpp:17
bb::avm2::simulation::MerkleCheck::write
FF write(const FF ¤t_value, const FF &new_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF ¤t_root) override
Definition
merkle_check.cpp:41
bb::avm2::simulation::MerkleCheck::assert_membership
void assert_membership(const FF &leaf_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF &root) override
Definition
merkle_check.cpp:10
bb::avm2::simulation::MerkleCheck::MerkleCheck
MerkleCheck(Poseidon2Interface &poseidon2, EventEmitterInterface< MerkleCheckEvent > &event_emitter)
Definition
merkle_check.hpp:19
bb::avm2::simulation::MerkleCheck::events
EventEmitterInterface< MerkleCheckEvent > & events
Definition
merkle_check.hpp:36
bb::avm2::simulation::MerkleCheck::poseidon2
Poseidon2Interface & poseidon2
Definition
merkle_check.hpp:37
bb::avm2::simulation::MerkleCheckInterface
Definition
merkle_check.hpp:10
bb::avm2::simulation::Poseidon2Interface
Definition
poseidon2.hpp:14
bb::crypto::Poseidon2< crypto::Poseidon2Bn254ScalarFieldParams >
event_emitter
EventEmitter< DataCopyEvent > event_emitter
Definition
data_copy.test.cpp:56
event_emitter.hpp
memory_types.hpp
merkle_check_event.hpp
bb::avm2::simulation
Definition
address_derivation_event.hpp:6
bb::avm2::FF
AvmFlavorSettings::FF FF
Definition
field.hpp:10
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
memory.hpp
merkle_check.hpp
field.hpp
poseidon2.hpp
src
barretenberg
vm2
simulation
gadgets
merkle_check.hpp
Generated by
1.9.8