33 trace.set(C::contract_instance_retrieval_sel, 0, 0);
36 for (
const auto&
event : events) {
38 FF protocol_contract_derived_address = 0;
39 uint32_t derived_address_pi_index = 0;
41 if (
event.is_protocol_contract) {
43 protocol_contract_derived_address = derived_address;
44 derived_address_pi_index =
49 bool check_update =
event.exists && !
event.is_protocol_contract;
54 { C::contract_instance_retrieval_sel, 1 },
55 { C::contract_instance_retrieval_address,
event.address },
56 { C::contract_instance_retrieval_exists,
event.exists ? 1 : 0 },
59 { C::contract_instance_retrieval_salt,
event.contract_instance.salt },
60 { C::contract_instance_retrieval_deployer_addr,
event.contract_instance.deployer },
61 { C::contract_instance_retrieval_current_class_id,
event.contract_instance.current_contract_class_id },
62 { C::contract_instance_retrieval_original_class_id,
63 event.contract_instance.original_contract_class_id },
64 { C::contract_instance_retrieval_init_hash,
event.contract_instance.initialization_hash },
65 { C::contract_instance_retrieval_immutables_hash,
event.contract_instance.immutables_hash },
69 { C::contract_instance_retrieval_nullifier_key_hash,
70 event.contract_instance.public_keys.nullifier_key_hash },
71 { C::contract_instance_retrieval_incoming_viewing_key_x,
72 event.contract_instance.public_keys.incoming_viewing_key.x },
73 { C::contract_instance_retrieval_incoming_viewing_key_y,
74 event.contract_instance.public_keys.incoming_viewing_key.y },
75 { C::contract_instance_retrieval_outgoing_viewing_key_hash,
76 event.contract_instance.public_keys.outgoing_viewing_key_hash },
77 { C::contract_instance_retrieval_tagging_key_hash,
78 event.contract_instance.public_keys.tagging_key_hash },
79 { C::contract_instance_retrieval_message_signing_key_hash,
80 event.contract_instance.public_keys.message_signing_key_hash },
81 { C::contract_instance_retrieval_fallback_key_hash,
82 event.contract_instance.public_keys.fallback_key_hash },
85 { C::contract_instance_retrieval_public_data_tree_root,
event.public_data_tree_root },
86 { C::contract_instance_retrieval_nullifier_tree_root,
event.nullifier_tree_root },
89 { C::contract_instance_retrieval_deployer_protocol_contract_address,
93 { C::contract_instance_retrieval_address_sub_one,
event.address - 1 },
95 { C::contract_instance_retrieval_derived_address_pi_index, derived_address_pi_index },
96 { C::contract_instance_retrieval_protocol_contract_derived_address_inv,
97 protocol_contract_derived_address },
98 { C::contract_instance_retrieval_derived_address, derived_address },
99 { C::contract_instance_retrieval_is_protocol_contract,
event.is_protocol_contract ? 1 : 0 },
100 { C::contract_instance_retrieval_should_check_nullifier, !
event.is_protocol_contract ? 1 : 0 },
104 { C::contract_instance_retrieval_should_check_for_update, check_update ? 1 : 0 },
110 trace.invert_columns({ { C::contract_instance_retrieval_protocol_contract_derived_address_inv } });