137 BB_BENCH_NAME(
"AvmSimulationHelper::simulate_for_witgen_internal");
139 DefaultEventEmitter<ExecutionEvent> execution_emitter;
140 DefaultDeduplicatingEventEmitter<AluEvent>
alu_emitter;
141 DefaultDeduplicatingEventEmitter<BitwiseEvent> bitwise_emitter;
142 DefaultEventEmitter<DataCopyEvent> data_copy_emitter;
143 DefaultEventEmitter<MemoryEvent> memory_emitter;
144 DefaultEventEmitter<BytecodeRetrievalEvent> bytecode_retrieval_emitter;
145 DefaultEventEmitter<BytecodeHashingEvent> bytecode_hashing_emitter;
146 DefaultEventEmitter<BytecodeDecompositionEvent> bytecode_decomposition_emitter;
147 DefaultDeduplicatingEventEmitter<InstructionFetchingEvent> instruction_fetching_emitter;
148 DefaultEventEmitter<AddressDerivationEvent> address_derivation_emitter;
149 DefaultEventEmitter<ClassIdDerivationEvent> class_id_derivation_emitter;
150 DefaultEventEmitter<Sha256CompressionEvent> sha256_compression_emitter;
151 DefaultEventEmitter<EccAddEvent> ecc_add_emitter;
152 DefaultEventEmitter<ScalarMulEvent> scalar_mul_emitter;
153 DefaultEventEmitter<EccAddMemoryEvent> ecc_add_memory_emitter;
154 DefaultEventEmitter<Poseidon2HashEvent> poseidon2_hash_emitter;
155 DefaultEventEmitter<Poseidon2PermutationEvent> poseidon2_perm_emitter;
156 DefaultEventEmitter<Poseidon2PermutationMemoryEvent> poseidon2_perm_mem_emitter;
157 DefaultEventEmitter<KeccakF1600Event> keccakf1600_emitter;
158 DefaultEventEmitter<ToRadixEvent> to_radix_emitter;
159 DefaultEventEmitter<ToRadixMemoryEvent> to_radix_memory_emitter;
163 DefaultEventEmitter<ContextStackEvent> context_stack_emitter;
164 DefaultEventEmitter<PublicDataTreeCheckEvent> public_data_tree_check_emitter;
165 DefaultEventEmitter<UpdateCheckEvent> update_check_emitter;
166 DefaultEventEmitter<NullifierTreeCheckEvent> nullifier_tree_check_emitter;
168 DefaultEventEmitter<CalldataEvent> calldata_emitter;
169 DefaultEventEmitter<InternalCallStackEvent> internal_call_stack_emitter;
170 DefaultEventEmitter<NoteHashTreeCheckEvent> note_hash_tree_check_emitter;
171 DefaultEventEmitter<WrittenPublicDataSlotsTreeCheckEvent> written_public_data_slots_tree_check_emitter;
172 DefaultDeduplicatingEventEmitter<GreaterThanEvent> greater_than_emitter;
173 DefaultEventEmitter<ContractInstanceRetrievalEvent> contract_instance_retrieval_emitter;
174 DefaultEventEmitter<GetContractInstanceEvent> get_contract_instance_emitter;
175 DefaultEventEmitter<L1ToL2MessageTreeCheckEvent> l1_to_l2_msg_tree_check_emitter;
176 DefaultEventEmitter<EmitPublicLogEvent> emit_public_log_emitter;
193 written_public_data_slots_tree_check_emitter);
200 if (
tx.non_revertible_accumulated_data.nullifiers.empty()) {
201 throw std::runtime_error(
"Non-revertible nullifiers are empty in the transaction.");
220 public_data_tree_check,
221 nullifier_tree_check,
224 l1_to_l2_msg_tree_check);
229 base_merkle_db.add_checkpoint_listener(emit_public_log_component);
251 bytecode_retrieval_emitter,
252 bytecode_decomposition_emitter,
253 instruction_fetching_emitter);
261 calldata_hashing_provider,
262 internal_call_stack_manager_provider,
288 execution_components,
293 context_stack_emitter,
297 emit_public_log_component,
332 execution_emitter.dump_events(),
334 bitwise_emitter.dump_events(),
335 memory_emitter.dump_events(),
336 bytecode_retrieval_emitter.dump_events(),
337 bytecode_hashing_emitter.dump_events(),
338 bytecode_decomposition_emitter.dump_events(),
339 instruction_fetching_emitter.dump_events(),
340 address_derivation_emitter.dump_events(),
341 class_id_derivation_emitter.dump_events(),
342 sha256_compression_emitter.dump_events(),
343 ecc_add_emitter.dump_events(),
344 scalar_mul_emitter.dump_events(),
345 ecc_add_memory_emitter.dump_events(),
346 poseidon2_hash_emitter.dump_events(),
347 poseidon2_perm_emitter.dump_events(),
348 poseidon2_perm_mem_emitter.dump_events(),
349 keccakf1600_emitter.dump_events(),
350 to_radix_emitter.dump_events(),
351 to_radix_memory_emitter.dump_events(),
353 greater_than_emitter.dump_events(),
356 context_stack_emitter.dump_events(),
357 public_data_tree_check_emitter.dump_events(),
358 update_check_emitter.dump_events(),
359 nullifier_tree_check_emitter.dump_events(),
360 data_copy_emitter.dump_events(),
361 calldata_emitter.dump_events(),
362 internal_call_stack_emitter.dump_events(),
363 note_hash_tree_check_emitter.dump_events(),
364 written_public_data_slots_tree_check_emitter.dump_events(),
365 contract_instance_retrieval_emitter.dump_events(),
366 get_contract_instance_emitter.dump_events(),
367 l1_to_l2_msg_tree_check_emitter.dump_events(),
368 emit_public_log_emitter.dump_events(),