Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
public_data_tree_check.hpp
Go to the documentation of this file.
1#pragma once
2
10
11namespace bb::avm2::simulation {
12
14 public:
26
27 void assert_read(const FF& slot,
29 const FF& value,
30 const PublicDataTreeLeafPreimage& low_leaf_preimage,
31 uint64_t low_leaf_index,
32 std::span<const FF> sibling_path,
33 const AppendOnlyTreeSnapshot& snapshot) override;
34
37 const FF& value,
38 const PublicDataTreeLeafPreimage& low_leaf_preimage,
39 uint64_t low_leaf_index,
40 std::span<const FF> low_leaf_sibling_path,
41 const AppendOnlyTreeSnapshot& prev_snapshot,
42 std::span<const FF> insertion_sibling_path,
43 bool is_protocol_write) override;
44
45 void on_checkpoint_created() override;
46 void on_checkpoint_committed() override;
47 void on_checkpoint_reverted() override;
48
49 // Sort public data writes by leaf slot between index 0 and of size publicDataWritesLength.
51
52 private:
58
59 void validate_low_leaf_jumps_over_slot(const PublicDataTreeLeafPreimage& low_leaf_preimage, const FF& leaf_slot);
61};
62
63} // namespace bb::avm2::simulation
FF compute_leaf_slot(const AztecAddress &contract_address, const FF &slot)
void validate_low_leaf_jumps_over_slot(const PublicDataTreeLeafPreimage &low_leaf_preimage, const FF &leaf_slot)
AppendOnlyTreeSnapshot write(const FF &slot, const AztecAddress &contract_address, const FF &value, const PublicDataTreeLeafPreimage &low_leaf_preimage, uint64_t low_leaf_index, std::span< const FF > low_leaf_sibling_path, const AppendOnlyTreeSnapshot &prev_snapshot, std::span< const FF > insertion_sibling_path, bool is_protocol_write) override
void generate_ff_gt_events_for_squashing(std::vector< PublicDataWrite > &public_data_writes)
void assert_read(const FF &slot, const AztecAddress &contract_address, const FF &value, const PublicDataTreeLeafPreimage &low_leaf_preimage, uint64_t low_leaf_index, std::span< const FF > sibling_path, const AppendOnlyTreeSnapshot &snapshot) override
EventEmitterInterface< PublicDataTreeCheckEvent > & events
PublicDataTreeCheck(Poseidon2Interface &poseidon2, MerkleCheckInterface &merkle_check, FieldGreaterThanInterface &field_gt, ExecutionIdGetterInterface &execution_id_manager, EventEmitterInterface< PublicDataTreeCheckEvent > &read_event_emitter)
AvmFlavorSettings::FF FF
Definition field.hpp:10
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13