27 trace.set(C::get_contract_instance_sel, 0, 0);
30 for (
const auto&
event : events) {
37 bool is_valid_member_enum =
false;
38 bool is_deployer =
false;
39 bool is_class_id =
false;
40 bool is_init_hash =
false;
42 if (writes_are_in_bounds) {
46 is_valid_member_enum = spec.is_valid_member_enum;
47 is_deployer = spec.is_deployer;
48 is_class_id = spec.is_class_id;
49 is_init_hash = spec.is_init_hash;
52 bool has_error = !(writes_are_in_bounds && is_valid_member_enum);
54 FF selected_member = is_deployer ?
event.retrieved_deployer_addr
55 : is_class_id ?
event.retrieved_class_id
56 : is_init_hash ?
event.retrieved_init_hash
63 { C::get_contract_instance_sel, 1 },
64 { C::get_contract_instance_clk,
event.execution_clk },
65 { C::get_contract_instance_contract_address,
event.contract_address },
66 { C::get_contract_instance_dst_offset,
event.dst_offset },
67 { C::get_contract_instance_member_enum,
event.member_enum },
68 { C::get_contract_instance_space_id,
event.space_id },
69 { C::get_contract_instance_public_data_tree_root,
event.public_data_tree_root },
70 { C::get_contract_instance_nullifier_tree_root,
event.nullifier_tree_root },
71 { C::get_contract_instance_sel_error, has_error ? 1 : 0 },
74 { C::get_contract_instance_is_valid_writes_in_bounds, writes_are_in_bounds ? 1 : 0 },
75 { C::get_contract_instance_dst_offset_diff_max_inv, dst_offset_diff_max },
78 { C::get_contract_instance_is_valid_member_enum, is_valid_member_enum ? 1 : 0 },
79 { C::get_contract_instance_is_deployer, is_deployer ? 1 : 0 },
80 { C::get_contract_instance_is_class_id, is_class_id ? 1 : 0 },
81 { C::get_contract_instance_is_init_hash, is_init_hash ? 1 : 0 },
83 { C::get_contract_instance_instance_exists,
event.instance_exists ? 1 : 0 },
84 { C::get_contract_instance_retrieved_deployer_addr,
event.retrieved_deployer_addr },
85 { C::get_contract_instance_retrieved_class_id,
event.retrieved_class_id },
86 { C::get_contract_instance_retrieved_init_hash,
event.retrieved_init_hash },
87 { C::get_contract_instance_selected_member, selected_member },
89 { C::get_contract_instance_member_write_offset,
event.dst_offset + 1 },
90 { C::get_contract_instance_exists_tag, writes_are_in_bounds ?
static_cast<uint8_t
>(
ValueTag::U1) : 0 },
91 { C::get_contract_instance_member_tag, writes_are_in_bounds ?
static_cast<uint8_t
>(
ValueTag::FF) : 0 },
98 trace.invert_columns({ { C::get_contract_instance_dst_offset_diff_max_inv } });