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 },
67 { C::contract_instance_retrieval_nullifier_key_x,
event.contract_instance.public_keys.nullifier_key.x },
68 { C::contract_instance_retrieval_nullifier_key_y,
event.contract_instance.public_keys.nullifier_key.y },
69 { C::contract_instance_retrieval_incoming_viewing_key_x,
70 event.contract_instance.public_keys.incoming_viewing_key.x },
71 { C::contract_instance_retrieval_incoming_viewing_key_y,
72 event.contract_instance.public_keys.incoming_viewing_key.y },
73 { C::contract_instance_retrieval_outgoing_viewing_key_x,
74 event.contract_instance.public_keys.outgoing_viewing_key.x },
75 { C::contract_instance_retrieval_outgoing_viewing_key_y,
76 event.contract_instance.public_keys.outgoing_viewing_key.y },
77 { C::contract_instance_retrieval_tagging_key_x,
event.contract_instance.public_keys.tagging_key.x },
78 { C::contract_instance_retrieval_tagging_key_y,
event.contract_instance.public_keys.tagging_key.y },
81 { C::contract_instance_retrieval_public_data_tree_root,
event.public_data_tree_root },
82 { C::contract_instance_retrieval_nullifier_tree_root,
event.nullifier_tree_root },
85 { C::contract_instance_retrieval_deployer_protocol_contract_address,
89 { C::contract_instance_retrieval_address_sub_one,
event.address - 1 },
91 { C::contract_instance_retrieval_derived_address_pi_index, derived_address_pi_index },
92 { C::contract_instance_retrieval_protocol_contract_derived_address_inv,
93 protocol_contract_derived_address },
94 { C::contract_instance_retrieval_derived_address, derived_address },
95 { C::contract_instance_retrieval_is_protocol_contract,
event.is_protocol_contract ? 1 : 0 },
96 { C::contract_instance_retrieval_should_check_nullifier, !
event.is_protocol_contract ? 1 : 0 },
100 { C::contract_instance_retrieval_should_check_for_update, check_update ? 1 : 0 },
106 trace.invert_columns({ { C::contract_instance_retrieval_protocol_contract_derived_address_inv } });