53 bool is_protocol_write)
58 if (!is_protocol_write) {
85 auto [present, low_leaf_index_] =
110 auto [present, low_leaf_index_] =
124 return (unique_note_hash == leaf_value);
156 return (msg_hash == leaf_value);
174 listener->on_checkpoint_created();
186 listener->on_checkpoint_committed();
196 listener->on_checkpoint_reverted();
#define MAX_NOTE_HASHES_PER_TX
#define MAX_NULLIFIERS_PER_TX
virtual std::optional< ContractInstance > get_contract_instance(const AztecAddress &address) const =0
virtual std::optional< ContractClass > get_contract_class(const ContractClassId &class_id) const =0
virtual IndexedLeaf< PublicDataLeafValue > get_leaf_preimage_public_data_tree(index_t leaf_index) const =0
virtual void revert_checkpoint()=0
virtual void commit_checkpoint()=0
virtual void create_checkpoint()=0
virtual std::vector< AppendLeafResult > append_leaves(MerkleTreeId tree_id, std::span< const FF > leaves)=0
virtual void pad_tree(MerkleTreeId tree_id, size_t num_leaves)=0
virtual SequentialInsertionResult< NullifierLeafValue > insert_indexed_leaves_nullifier_tree(const NullifierLeafValue &leaf_value)=0
virtual GetLowIndexedLeafResponse get_low_indexed_leaf(MerkleTreeId tree_id, const FF &value) const =0
virtual uint32_t get_checkpoint_id() const =0
virtual SequentialInsertionResult< PublicDataLeafValue > insert_indexed_leaves_public_data_tree(const PublicDataLeafValue &leaf_value)=0
virtual const TreeSnapshots & get_tree_roots() const =0
virtual FF get_leaf_value(MerkleTreeId tree_id, index_t leaf_index) const =0
std::optional< ContractInstance > get_contract_instance(const AztecAddress &address) const override
ContractDBInterface & raw_contract_db
std::optional< ContractClass > get_contract_class(const ContractClassId &class_id) const override
WrittenPublicDataSlotsInterface & written_public_data_slots
void nullifier_write(const AztecAddress &contract_address, const FF &nullifier) override
FF storage_read(const AztecAddress &contract_address, const FF &slot) const override
void storage_write(const AztecAddress &contract_address, const FF &slot, const FF &value, bool is_protocol_write) override
std::stack< TreeCounters > tree_counters_stack
TreeStates get_tree_state() const override
bool nullifier_exists_internal(std::optional< AztecAddress > contract_address, const FF &nullifier) const
void siloed_note_hash_write(const FF ¬e_hash) override
void pad_trees() override
void siloed_nullifier_write(const FF &nullifier) override
bool note_hash_exists(uint64_t leaf_index, const FF &unique_note_hash) const override
std::vector< CheckpointNotifiable * > checkpoint_listeners
bool nullifier_exists(const AztecAddress &contract_address, const FF &nullifier) const override
void note_hash_write(const AztecAddress &contract_address, const FF ¬e_hash) override
void nullifier_write_internal(std::optional< AztecAddress > contract_address, const FF &nullifier)
void revert_checkpoint() override
bool l1_to_l2_msg_exists(uint64_t leaf_index, const FF &msg_hash) const override
bool was_storage_written(const AztecAddress &contract_address, const FF &slot) const override
void commit_checkpoint() override
void unique_note_hash_write(const FF ¬e_hash) override
void create_checkpoint() override
bool siloed_nullifier_exists(const FF &nullifier) const override
LowLevelMerkleDBInterface & raw_merkle_db
uint32_t get_checkpoint_id() const override
virtual void revert_checkpoint()=0
virtual bool contains(const AztecAddress &contract_address, const FF &slot)=0
virtual void commit_checkpoint()=0
virtual void insert(const AztecAddress &contract_address, const FF &slot)=0
virtual uint32_t size() const =0
virtual void create_checkpoint()=0
std::string format(Args... args)
AztecAddress contract_address
FF unconstrained_make_unique_note_hash(const FF &siloed_note_hash, const FF &first_nullifier, uint64_t note_hash_counter)
::bb::crypto::merkle_tree::PublicDataLeafValue PublicDataLeafValue
FF unconstrained_compute_leaf_slot(const AztecAddress &contract_address, const FF &slot)
FF unconstrained_silo_note_hash(const AztecAddress &contract_address, const FF ¬e_hash)
FF unconstrained_silo_nullifier(const AztecAddress &contract_address, const FF &nullifier)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
AppendOnlyTreeSnapshot noteHashTree
AppendOnlyTreeSnapshot nullifierTree
AppendOnlyTreeSnapshot l1ToL2MessageTree
AppendOnlyTreeSnapshot publicDataTree
uint32_t nullifier_counter
uint32_t l2_to_l1_msg_counter
uint32_t note_hash_counter