28 uint64_t low_leaf_index,
35 merkle_check.assert_membership(low_leaf_hash, low_leaf_index, sibling_path, snapshot.
root);
41 throw std::runtime_error(
"Leaf value does not match value");
47 throw std::runtime_error(
"Value is nonzero for a non existing slot");
55 .leaf_slot = leaf_slot,
56 .prev_snapshot = snapshot,
57 .low_leaf_preimage = low_leaf_preimage,
58 .low_leaf_hash = low_leaf_hash,
59 .low_leaf_index = low_leaf_index,
67 uint64_t low_leaf_index,
71 bool is_protocol_write)
90 updated_low_leaf_preimage.
nextKey = leaf_slot;
96 low_leaf_hash, updated_low_leaf_hash, low_leaf_index, low_leaf_sibling_path, prev_snapshot.
root);
99 .
root = intermediate_root,
102 FF new_leaf_hash = 0;
116 uint32_t execution_id =
125 .leaf_slot = leaf_slot,
126 .prev_snapshot = prev_snapshot,
127 .low_leaf_preimage = low_leaf_preimage,
128 .low_leaf_hash = low_leaf_hash,
129 .low_leaf_index = low_leaf_index,
131 .updated_low_leaf_hash = updated_low_leaf_hash,
132 .new_leaf_hash = new_leaf_hash,
133 .intermediate_root = intermediate_root,
134 .next_snapshot = next_snapshot },
135 .execution_id = execution_id,
138 return next_snapshot;
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