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 <cassert>
4#include <memory>
5#include <stack>
6#include <unordered_map>
7
16
17namespace bb::avm2::tracegen {
18
22{
23 using C = Column;
24
25 uint32_t row = 0;
26 for (const auto& event : events) {
27 bool exists = event.leaf_value == event.msg_hash;
28 FF leaf_value_msg_hash_diff = event.leaf_value - event.msg_hash;
29
30 trace.set(row,
31 { { { C::l1_to_l2_message_tree_check_sel, 1 },
32 { C::l1_to_l2_message_tree_check_exists, exists },
33 { C::l1_to_l2_message_tree_check_msg_hash, event.msg_hash },
34 { C::l1_to_l2_message_tree_check_leaf_index, event.leaf_index },
35 { C::l1_to_l2_message_tree_check_root, event.snapshot.root },
36 { C::l1_to_l2_message_tree_check_leaf_value, event.leaf_value },
37 { C::l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv,
38 leaf_value_msg_hash_diff }, // Will be inverted in batch later
39 { C::l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, L1_TO_L2_MSG_TREE_HEIGHT } } });
40 row++;
41 }
42
43 // Batch invert the columns.
44 trace.invert_columns({ { C::l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv } });
45}
46
50
51} // 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)
TestTraceContainer trace
lookup_settings< lookup_l1_to_l2_message_tree_check_merkle_check_settings_ > lookup_l1_to_l2_message_tree_check_merkle_check_settings
AvmFlavorSettings::FF FF
Definition field.hpp:10
simulation::PublicDataTreeReadWriteEvent event