Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
l1_to_l2_message_tree_trace.cpp
Go to the documentation of this file.
2
3#include <cstdint>
4
10
11namespace bb::avm2::tracegen {
12
23 TraceContainer& trace)
24{
25 using C = Column;
26
27 uint32_t row = 0;
28 for (const auto& event : events) {
29 bool exists = event.leaf_value == event.msg_hash;
30 FF leaf_value_msg_hash_diff = event.leaf_value - event.msg_hash;
31
32 trace.set(row,
33 { { { C::l1_to_l2_message_tree_check_sel, 1 },
34 { C::l1_to_l2_message_tree_check_exists, exists },
35 { C::l1_to_l2_message_tree_check_msg_hash, event.msg_hash },
36 { C::l1_to_l2_message_tree_check_leaf_index, event.leaf_index },
37 { C::l1_to_l2_message_tree_check_root, event.snapshot.root },
38 { C::l1_to_l2_message_tree_check_leaf_value, event.leaf_value },
39 { C::l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv,
40 leaf_value_msg_hash_diff }, // Will be inverted in batch later
41 { C::l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, L1_TO_L2_MSG_TREE_HEIGHT } } });
42 row++;
43 }
44
45 // Batch invert the columns.
46 trace.invert_columns({ { C::l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv } });
47}
48
52
53} // namespace bb::avm2::tracegen
#define L1_TO_L2_MSG_TREE_HEIGHT
InteractionDefinition & add(auto &&... args)
void process(const simulation::EventEmitterInterface< simulation::L1ToL2MessageTreeCheckEvent >::Container &events, TraceContainer &trace)
Process the L1-to-L2 message tree check events and populate the relevant columns in the trace.
TestTraceContainer trace
AvmFlavorSettings::FF FF
Definition field.hpp:10
lookup_settings< lookup_l1_to_l2_message_tree_check_merkle_check_settings_ > lookup_l1_to_l2_message_tree_check_merkle_check_settings
simulation::PublicDataTreeReadWriteEvent event