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
8
9namespace bb::avm2::simulation {
10
12 public:
13 virtual ~PublicDataTreeCheckInterface() = default;
14 virtual void assert_read(const FF& slot,
16 const FF& value,
17 const PublicDataTreeLeafPreimage& low_leaf_preimage,
18 uint64_t low_leaf_index,
19 std::span<const FF> sibling_path,
20 const AppendOnlyTreeSnapshot& snapshot) = 0;
23 const FF& value,
24 const PublicDataTreeLeafPreimage& low_leaf_preimage,
25 uint64_t low_leaf_index,
26 std::span<const FF> low_leaf_sibling_path,
27 const AppendOnlyTreeSnapshot& prev_snapshot,
28 std::span<const FF> insertion_sibling_path,
29 bool is_protocol_write) = 0;
30};
31
33 public:
45
46 void assert_read(const FF& slot,
48 const FF& value,
49 const PublicDataTreeLeafPreimage& low_leaf_preimage,
50 uint64_t low_leaf_index,
51 std::span<const FF> sibling_path,
52 const AppendOnlyTreeSnapshot& snapshot) override;
53
56 const FF& value,
57 const PublicDataTreeLeafPreimage& low_leaf_preimage,
58 uint64_t low_leaf_index,
59 std::span<const FF> low_leaf_sibling_path,
60 const AppendOnlyTreeSnapshot& prev_snapshot,
61 std::span<const FF> insertion_sibling_path,
62 bool is_protocol_write) override;
63
64 void on_checkpoint_created() override;
65 void on_checkpoint_committed() override;
66 void on_checkpoint_reverted() override;
67
68 private:
74
75 void validate_low_leaf_jumps_over_slot(const PublicDataTreeLeafPreimage& low_leaf_preimage, const FF& leaf_slot);
77};
78
79} // 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 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)
virtual 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)=0
virtual 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)=0
AvmFlavorSettings::FF FF
Definition field.hpp:10
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13