81 uint64_t low_leaf_index,
87 if (siloing_params.has_value()) {
91 .parameters = siloing_params.value(),
96 merkle_check.assert_membership(low_leaf_hash, low_leaf_index, sibling_path, snapshot.
root);
102 .
value = source_value,
103 .prev_snapshot = snapshot,
104 .next_snapshot = snapshot,
105 .tree_height = sibling_path.size(),
106 .low_leaf_data = low_leaf_preimage,
107 .low_leaf_hash = low_leaf_hash,
108 .low_leaf_index = low_leaf_index,
109 .siloing_data = siloing_data,
141 uint64_t low_leaf_index,
148 if (siloing_params.has_value()) {
152 bool exists = !insertion_sibling_path.has_value();
163 merkle_check.assert_membership(low_leaf_hash, low_leaf_index, low_leaf_sibling_path, prev_snapshot.
root);
172 low_leaf_hash, updated_low_leaf_hash, low_leaf_index, low_leaf_sibling_path, prev_snapshot.
root);
186 insertion_sibling_path.value(),
195 .new_leaf_hash = new_leaf_hash,
196 .intermediate_root = intermediate_root,
201 .prev_snapshot = prev_snapshot,
202 .next_snapshot = next_snapshot,
203 .tree_height = low_leaf_sibling_path.size(),
204 .low_leaf_data = low_leaf_preimage,
205 .low_leaf_hash = low_leaf_hash,
206 .low_leaf_index = low_leaf_index,
208 .siloing_data = siloing_data,
209 .public_inputs_index = public_inputs_index,
210 .append_data = append_data });
212 return next_snapshot;
void assert_read(const FF &value, std::optional< IndexedTreeSiloingParameters > siloing_params, bool exists, const IndexedTreeLeafData &low_leaf_preimage, uint64_t low_leaf_index, std::span< const FF > sibling_path, const AppendOnlyTreeSnapshot &snapshot) override
Performs a membership/non-membership read check on an indexed tree.
AppendOnlyTreeSnapshot write(const FF &value, std::optional< IndexedTreeSiloingParameters > siloing_params, std::optional< uint64_t > public_inputs_index, const IndexedTreeLeafData &low_leaf_preimage, uint64_t low_leaf_index, std::span< const FF > low_leaf_sibling_path, const AppendOnlyTreeSnapshot &prev_snapshot, std::optional< std::span< const FF > > insertion_sibling_path) override
Writes a value into an indexed tree, or validates it already exists.