18 for (
const auto&
event : events) {
20 FF leaf_slot =
event.leaf_slot;
21 FF address =
event.contract_address;
23 bool exists =
event.low_leaf_preimage.leaf.slot == leaf_slot;
24 FF slot_low_leaf_slot_diff_inv =
exists ? 0 : (leaf_slot -
event.low_leaf_preimage.leaf.slot).invert();
26 bool next_slot_is_nonzero =
false;
29 next_slot_is_nonzero =
event.low_leaf_preimage.nextKey != 0;
30 next_slot_inv = next_slot_is_nonzero ?
event.low_leaf_preimage.nextKey.invert() : 0;
33 uint64_t updated_low_leaf_next_index = 0;
34 FF updated_low_leaf_next_key = 0;
35 FF updated_low_leaf_hash = 0;
37 FF intermediate_root = 0;
39 bool append =
event.append_data.has_value();
41 updated_low_leaf_next_key = leaf_slot;
42 updated_low_leaf_next_index =
event.prev_snapshot.nextAvailableLeafIndex;
43 updated_low_leaf_hash =
event.append_data->updated_low_leaf_hash;
44 new_leaf_hash =
event.append_data->new_leaf_hash;
45 intermediate_root =
event.append_data->intermediate_root;
51 { C::written_public_data_slots_tree_check_sel, 1 },
52 { C::written_public_data_slots_tree_check_write,
event.write },
53 { C::written_public_data_slots_tree_check_slot,
slot },
54 { C::written_public_data_slots_tree_check_root,
event.prev_snapshot.root },
55 { C::written_public_data_slots_tree_check_write_root,
event.next_snapshot.root },
56 { C::written_public_data_slots_tree_check_tree_size_before_write,
57 event.prev_snapshot.nextAvailableLeafIndex },
58 { C::written_public_data_slots_tree_check_tree_size_after_write,
59 event.next_snapshot.nextAvailableLeafIndex },
60 { C::written_public_data_slots_tree_check_address, address },
61 { C::written_public_data_slots_tree_check_low_leaf_slot,
event.low_leaf_preimage.leaf.slot },
62 { C::written_public_data_slots_tree_check_low_leaf_next_index,
event.low_leaf_preimage.nextIndex },
63 { C::written_public_data_slots_tree_check_low_leaf_next_slot,
event.low_leaf_preimage.nextKey },
64 { C::written_public_data_slots_tree_check_updated_low_leaf_next_index, updated_low_leaf_next_index },
65 { C::written_public_data_slots_tree_check_updated_low_leaf_next_slot, updated_low_leaf_next_key },
66 { C::written_public_data_slots_tree_check_low_leaf_index,
event.low_leaf_index },
67 { C::written_public_data_slots_tree_check_leaf_slot, leaf_slot },
69 { C::written_public_data_slots_tree_check_should_insert, append },
70 { C::written_public_data_slots_tree_check_low_leaf_hash,
event.low_leaf_hash },
71 { C::written_public_data_slots_tree_check_intermediate_root, intermediate_root },
72 { C::written_public_data_slots_tree_check_updated_low_leaf_hash, updated_low_leaf_hash },
74 { C::written_public_data_slots_tree_check_leaf_not_exists, !
exists },
75 { C::written_public_data_slots_tree_check_slot_low_leaf_slot_diff_inv, slot_low_leaf_slot_diff_inv },
76 { C::written_public_data_slots_tree_check_next_slot_is_nonzero, next_slot_is_nonzero },
77 { C::written_public_data_slots_tree_check_next_slot_inv, next_slot_inv },
78 { C::written_public_data_slots_tree_check_new_leaf_hash, new_leaf_hash },