Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
side_effect_tracking_db.cpp
Go to the documentation of this file.
2
4
5namespace bb::avm2::simulation {
6
11
16
21
26
27bool SideEffectTrackingDB::note_hash_exists(uint64_t leaf_index, const FF& unique_note_hash) const
28{
29 return merkle_db.note_hash_exists(leaf_index, unique_note_hash);
30}
31
32bool SideEffectTrackingDB::l1_to_l2_msg_exists(uint64_t leaf_index, const FF& msg_hash) const
33{
34 return merkle_db.l1_to_l2_msg_exists(leaf_index, msg_hash);
35}
36
41
46
51
53 const FF& slot,
54 const FF& value,
55 bool is_protocol_write)
56{
60}
61
67
73
75{
78 uint32_t note_hash_counter = static_cast<uint32_t>(tracked_side_effects.get_side_effects().note_hashes.size());
79 FF unique_note_hash = unconstrained_make_unique_note_hash(siloed_note_hash, first_nullifier, note_hash_counter);
80 tracked_side_effects.add_note_hash(unique_note_hash);
81}
82
84{
85 merkle_db.siloed_note_hash_write(siloed_note_hash);
86 uint32_t note_hash_counter = static_cast<uint32_t>(tracked_side_effects.get_side_effects().note_hashes.size());
87 FF unique_note_hash = unconstrained_make_unique_note_hash(siloed_note_hash, first_nullifier, note_hash_counter);
88 tracked_side_effects.add_note_hash(unique_note_hash);
89}
90
92{
93 // The note hash is already siloed and unique.
94 merkle_db.unique_note_hash_write(unique_note_hash);
95 tracked_side_effects.add_note_hash(unique_note_hash);
96}
97
103
109
115
120
121} // namespace bb::avm2::simulation
virtual bool note_hash_exists(uint64_t leaf_index, const FF &unique_note_hash) const =0
virtual void unique_note_hash_write(const FF &note_hash)=0
virtual FF storage_read(const AztecAddress &contract_address, const FF &slot) const =0
virtual uint32_t get_checkpoint_id() const =0
virtual bool was_storage_written(const AztecAddress &contract_address, const FF &slot) const =0
virtual void note_hash_write(const AztecAddress &contract_address, const FF &note_hash)=0
virtual bool nullifier_exists(const AztecAddress &contract_address, const FF &nullifier) const =0
virtual void siloed_note_hash_write(const FF &note_hash)=0
virtual void storage_write(const AztecAddress &contract_address, const FF &slot, const FF &value, bool is_protocol_write)=0
virtual bool siloed_nullifier_exists(const FF &nullifier) const =0
virtual void siloed_nullifier_write(const FF &nullifier)=0
virtual bool l1_to_l2_msg_exists(uint64_t leaf_index, const FF &msg_hash) const =0
virtual void nullifier_write(const AztecAddress &contract_address, const FF &nullifier)=0
virtual TreeStates get_tree_state() const =0
virtual LowLevelMerkleDBInterface & as_unconstrained() const =0
virtual void add_storage_write(const FF &slot, const FF &value)=0
virtual void add_nullifier(const FF &siloed_nullifier)=0
virtual const TrackedSideEffects & get_side_effects() const =0
virtual void add_note_hash(const FF &siloed_unique_note_hash)=0
void unique_note_hash_write(const FF &note_hash) override
bool siloed_nullifier_exists(const FF &nullifier) const override
void nullifier_write(const AztecAddress &contract_address, const FF &nullifier) override
bool note_hash_exists(uint64_t leaf_index, const FF &unique_note_hash) const override
LowLevelMerkleDBInterface & as_unconstrained() const override
FF storage_read(const AztecAddress &contract_address, const FF &slot) const override
bool l1_to_l2_msg_exists(uint64_t leaf_index, const FF &msg_hash) const override
void siloed_nullifier_write(const FF &nullifier) override
void note_hash_write(const AztecAddress &contract_address, const FF &note_hash) override
void siloed_note_hash_write(const FF &note_hash) override
void storage_write(const AztecAddress &contract_address, const FF &slot, const FF &value, bool is_protocol_write) override
bool nullifier_exists(const AztecAddress &contract_address, const FF &nullifier) const override
bool was_storage_written(const AztecAddress &contract_address, const FF &slot) const override
FF unconstrained_make_unique_note_hash(const FF &siloed_note_hash, const FF &first_nullifier, uint64_t note_hash_counter)
Definition merkle.cpp:41
FF unconstrained_compute_leaf_slot(const AztecAddress &contract_address, const FF &slot)
Definition merkle.cpp:26
FF unconstrained_silo_note_hash(const AztecAddress &contract_address, const FF &note_hash)
Definition merkle.cpp:36
FF unconstrained_silo_nullifier(const AztecAddress &contract_address, const FF &nullifier)
Definition merkle.cpp:31
AvmFlavorSettings::FF FF
Definition field.hpp:10