139 BB_BENCH_NAME(
"AvmSimulationHelper::simulate_for_witgen_internal");
141 DefaultEventEmitter<ExecutionEvent> execution_emitter;
142 DefaultDeduplicatingEventEmitter<AluEvent>
alu_emitter;
143 DefaultDeduplicatingEventEmitter<BitwiseEvent> bitwise_emitter;
144 DefaultEventEmitter<DataCopyEvent> data_copy_emitter;
145 DefaultEventEmitter<MemoryEvent> memory_emitter;
146 DefaultEventEmitter<BytecodeRetrievalEvent> bytecode_retrieval_emitter;
147 DefaultEventEmitter<BytecodeHashingEvent> bytecode_hashing_emitter;
148 DefaultEventEmitter<BytecodeDecompositionEvent> bytecode_decomposition_emitter;
149 DefaultDeduplicatingEventEmitter<InstructionFetchingEvent> instruction_fetching_emitter;
150 DefaultEventEmitter<AddressDerivationEvent> address_derivation_emitter;
151 DefaultEventEmitter<ClassIdDerivationEvent> class_id_derivation_emitter;
152 DefaultEventEmitter<SiloingEvent> siloing_emitter;
153 DefaultEventEmitter<Sha256CompressionEvent> sha256_compression_emitter;
154 DefaultEventEmitter<EccAddEvent> ecc_add_emitter;
155 DefaultEventEmitter<ScalarMulEvent> scalar_mul_emitter;
156 DefaultEventEmitter<EccAddMemoryEvent> ecc_add_memory_emitter;
157 DefaultEventEmitter<Poseidon2HashEvent> poseidon2_hash_emitter;
158 DefaultEventEmitter<Poseidon2PermutationEvent> poseidon2_perm_emitter;
159 DefaultEventEmitter<Poseidon2PermutationMemoryEvent> poseidon2_perm_mem_emitter;
160 DefaultEventEmitter<KeccakF1600Event> keccakf1600_emitter;
161 DefaultEventEmitter<ToRadixEvent> to_radix_emitter;
162 DefaultEventEmitter<ToRadixMemoryEvent> to_radix_memory_emitter;
164 DefaultEventEmitter<MerkleCheckEvent> merkle_check_emitter;
166 DefaultEventEmitter<ContextStackEvent> context_stack_emitter;
167 DefaultEventEmitter<PublicDataTreeCheckEvent> public_data_tree_check_emitter;
168 DefaultEventEmitter<UpdateCheckEvent> update_check_emitter;
169 DefaultEventEmitter<NullifierTreeCheckEvent> nullifier_tree_check_emitter;
171 DefaultEventEmitter<CalldataEvent> calldata_emitter;
172 DefaultEventEmitter<InternalCallStackEvent> internal_call_stack_emitter;
173 DefaultEventEmitter<NoteHashTreeCheckEvent> note_hash_tree_check_emitter;
174 DefaultEventEmitter<WrittenPublicDataSlotsTreeCheckEvent> written_public_data_slots_tree_check_emitter;
175 DefaultDeduplicatingEventEmitter<GreaterThanEvent> greater_than_emitter;
176 DefaultEventEmitter<ContractInstanceRetrievalEvent> contract_instance_retrieval_emitter;
177 DefaultEventEmitter<GetContractInstanceEvent> get_contract_instance_emitter;
178 DefaultEventEmitter<L1ToL2MessageTreeCheckEvent> l1_to_l2_msg_tree_check_emitter;
179 DefaultEventEmitter<EmitUnencryptedLogEvent> emit_unencrypted_log_emitter;
180 DefaultEventEmitter<RetrievedBytecodesTreeCheckEvent> retrieved_bytecodes_tree_check_emitter;
196 written_public_data_slots_tree_check_emitter);
203 if (
tx.non_revertible_accumulated_data.nullifiers.empty()) {
204 throw std::runtime_error(
"Non-revertible nullifiers are empty in the transaction.");
223 public_data_tree_check,
224 nullifier_tree_check,
227 l1_to_l2_msg_tree_check);
232 base_merkle_db.add_checkpoint_listener(emit_unencrypted_log_component);
243 Siloing siloing(siloing_emitter);
255 bytecode_retrieval_emitter,
256 bytecode_decomposition_emitter,
257 instruction_fetching_emitter);
265 calldata_hashing_provider,
266 internal_call_stack_manager_provider,
292 execution_components,
297 context_stack_emitter,
301 emit_unencrypted_log_component,
336 execution_emitter.dump_events(),
338 bitwise_emitter.dump_events(),
339 memory_emitter.dump_events(),
340 bytecode_retrieval_emitter.dump_events(),
341 bytecode_hashing_emitter.dump_events(),
342 bytecode_decomposition_emitter.dump_events(),
343 instruction_fetching_emitter.dump_events(),
344 address_derivation_emitter.dump_events(),
345 class_id_derivation_emitter.dump_events(),
346 siloing_emitter.dump_events(),
347 sha256_compression_emitter.dump_events(),
348 ecc_add_emitter.dump_events(),
349 scalar_mul_emitter.dump_events(),
350 ecc_add_memory_emitter.dump_events(),
351 poseidon2_hash_emitter.dump_events(),
352 poseidon2_perm_emitter.dump_events(),
353 poseidon2_perm_mem_emitter.dump_events(),
354 keccakf1600_emitter.dump_events(),
355 to_radix_emitter.dump_events(),
356 to_radix_memory_emitter.dump_events(),
358 greater_than_emitter.dump_events(),
359 merkle_check_emitter.dump_events(),
361 context_stack_emitter.dump_events(),
362 public_data_tree_check_emitter.dump_events(),
363 update_check_emitter.dump_events(),
364 nullifier_tree_check_emitter.dump_events(),
365 data_copy_emitter.dump_events(),
366 calldata_emitter.dump_events(),
367 internal_call_stack_emitter.dump_events(),
368 note_hash_tree_check_emitter.dump_events(),
369 written_public_data_slots_tree_check_emitter.dump_events(),
370 contract_instance_retrieval_emitter.dump_events(),
371 get_contract_instance_emitter.dump_events(),
372 l1_to_l2_msg_tree_check_emitter.dump_events(),
373 emit_unencrypted_log_emitter.dump_events(),
374 retrieved_bytecodes_tree_check_emitter.dump_events(),