Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
contract_instance_retrieval_trace.cpp
Go to the documentation of this file.
2
3#include <memory>
4
13
14namespace bb::avm2::tracegen {
15
19{
20 using C = Column;
21
22 // Set the selector to 0 at row 0 to enable skippable gadget
23 trace.set(C::contract_instance_retrieval_sel, 0, 0);
24
25 uint32_t row = 1;
26 for (const auto& event : events) {
27 trace.set(
28 row,
29 { {
30 { C::contract_instance_retrieval_sel, 1 },
31 { C::contract_instance_retrieval_address, event.address },
32 { C::contract_instance_retrieval_exists, event.nullifier_exists ? 1 : 0 },
33
34 // Contract instance members
35 { C::contract_instance_retrieval_salt, event.contract_instance.salt },
36 { C::contract_instance_retrieval_deployer_addr, event.contract_instance.deployer_addr },
37 { C::contract_instance_retrieval_current_class_id, event.contract_instance.current_class_id },
38 { C::contract_instance_retrieval_original_class_id, event.contract_instance.original_class_id },
39 { C::contract_instance_retrieval_init_hash, event.contract_instance.initialisation_hash },
40
41 // Public keys (hinted)
42 { C::contract_instance_retrieval_nullifier_key_x, event.contract_instance.public_keys.nullifier_key.x },
43 { C::contract_instance_retrieval_nullifier_key_y, event.contract_instance.public_keys.nullifier_key.y },
44 { C::contract_instance_retrieval_incoming_viewing_key_x,
45 event.contract_instance.public_keys.incoming_viewing_key.x },
46 { C::contract_instance_retrieval_incoming_viewing_key_y,
47 event.contract_instance.public_keys.incoming_viewing_key.y },
48 { C::contract_instance_retrieval_outgoing_viewing_key_x,
49 event.contract_instance.public_keys.outgoing_viewing_key.x },
50 { C::contract_instance_retrieval_outgoing_viewing_key_y,
51 event.contract_instance.public_keys.outgoing_viewing_key.y },
52 { C::contract_instance_retrieval_tagging_key_x, event.contract_instance.public_keys.tagging_key.x },
53 { C::contract_instance_retrieval_tagging_key_y, event.contract_instance.public_keys.tagging_key.y },
54
55 // Tree context
56 { C::contract_instance_retrieval_public_data_tree_root, event.public_data_tree_root },
57 { C::contract_instance_retrieval_nullifier_tree_root, event.nullifier_tree_root },
58
59 // Deployer protocol contract address constant
60 { C::contract_instance_retrieval_deployer_protocol_contract_address,
61 event.deployer_protocol_contract_address },
62 } });
63 row++;
64 }
65}
66
70 .add<lookup_contract_instance_retrieval_address_derivation_settings, InteractionType::LookupGeneric>()
72
73} // namespace bb::avm2::tracegen
void process(const simulation::EventEmitterInterface< simulation::ContractInstanceRetrievalEvent >::Container &events, TraceContainer &trace)
InteractionDefinition & add(auto &&... args)
TestTraceContainer trace
lookup_settings< lookup_contract_instance_retrieval_update_check_settings_ > lookup_contract_instance_retrieval_update_check_settings
lookup_settings< lookup_contract_instance_retrieval_deployment_nullifier_read_settings_ > lookup_contract_instance_retrieval_deployment_nullifier_read_settings
simulation::PublicDataTreeReadWriteEvent event