24 trace.set(C::contract_instance_retrieval_sel, 0, 0);
27 for (
const auto&
event : events) {
29 FF protocol_contract_derived_address = 0;
30 uint32_t derived_address_pi_index = 0;
32 if (
event.is_protocol_contract) {
34 protocol_contract_derived_address = derived_address;
35 derived_address_pi_index =
40 bool check_update =
event.exists && !
event.is_protocol_contract;
45 { C::contract_instance_retrieval_sel, 1 },
46 { C::contract_instance_retrieval_address,
event.address },
47 { C::contract_instance_retrieval_exists,
event.exists ? 1 : 0 },
50 { C::contract_instance_retrieval_salt,
event.contract_instance.salt },
51 { C::contract_instance_retrieval_deployer_addr,
event.contract_instance.deployer_addr },
52 { C::contract_instance_retrieval_current_class_id,
event.contract_instance.current_class_id },
53 { C::contract_instance_retrieval_original_class_id,
event.contract_instance.original_class_id },
54 { C::contract_instance_retrieval_init_hash,
event.contract_instance.initialisation_hash },
57 { C::contract_instance_retrieval_nullifier_key_x,
event.contract_instance.public_keys.nullifier_key.x },
58 { C::contract_instance_retrieval_nullifier_key_y,
event.contract_instance.public_keys.nullifier_key.y },
59 { C::contract_instance_retrieval_incoming_viewing_key_x,
60 event.contract_instance.public_keys.incoming_viewing_key.x },
61 { C::contract_instance_retrieval_incoming_viewing_key_y,
62 event.contract_instance.public_keys.incoming_viewing_key.y },
63 { C::contract_instance_retrieval_outgoing_viewing_key_x,
64 event.contract_instance.public_keys.outgoing_viewing_key.x },
65 { C::contract_instance_retrieval_outgoing_viewing_key_y,
66 event.contract_instance.public_keys.outgoing_viewing_key.y },
67 { C::contract_instance_retrieval_tagging_key_x,
event.contract_instance.public_keys.tagging_key.x },
68 { C::contract_instance_retrieval_tagging_key_y,
event.contract_instance.public_keys.tagging_key.y },
71 { C::contract_instance_retrieval_public_data_tree_root,
event.public_data_tree_root },
72 { C::contract_instance_retrieval_nullifier_tree_root,
event.nullifier_tree_root },
75 { C::contract_instance_retrieval_deployer_protocol_contract_address,
79 { C::contract_instance_retrieval_address_sub_one,
event.address - 1 },
81 { C::contract_instance_retrieval_derived_address_pi_index, derived_address_pi_index },
82 { C::contract_instance_retrieval_protocol_contract_derived_address_inv,
83 protocol_contract_derived_address },
84 { C::contract_instance_retrieval_derived_address, derived_address },
85 { C::contract_instance_retrieval_is_protocol_contract,
event.is_protocol_contract ? 1 : 0 },
86 { C::contract_instance_retrieval_should_check_nullifier, !
event.is_protocol_contract ? 1 : 0 },
87 { C::contract_instance_retrieval_should_check_for_update, check_update ? 1 : 0 },
93 trace.invert_columns({ { C::contract_instance_retrieval_protocol_contract_derived_address_inv } });