135 BB_BENCH_NAME(
"AvmSimulationHelper::simulate_for_witgen_internal");
137 DefaultEventEmitter<ExecutionEvent> execution_emitter;
138 DefaultDeduplicatingEventEmitter<AluEvent>
alu_emitter;
139 DefaultDeduplicatingEventEmitter<BitwiseEvent> bitwise_emitter;
140 DefaultEventEmitter<DataCopyEvent> data_copy_emitter;
141 DefaultEventEmitter<MemoryEvent> memory_emitter;
142 DefaultEventEmitter<BytecodeRetrievalEvent> bytecode_retrieval_emitter;
143 DefaultEventEmitter<BytecodeHashingEvent> bytecode_hashing_emitter;
144 DefaultEventEmitter<BytecodeDecompositionEvent> bytecode_decomposition_emitter;
145 DefaultDeduplicatingEventEmitter<InstructionFetchingEvent> instruction_fetching_emitter;
146 DefaultEventEmitter<AddressDerivationEvent> address_derivation_emitter;
147 DefaultEventEmitter<ClassIdDerivationEvent> class_id_derivation_emitter;
148 DefaultEventEmitter<SiloingEvent> siloing_emitter;
149 DefaultEventEmitter<Sha256CompressionEvent> sha256_compression_emitter;
150 DefaultEventEmitter<EccAddEvent> ecc_add_emitter;
151 DefaultEventEmitter<ScalarMulEvent> scalar_mul_emitter;
152 DefaultEventEmitter<EccAddMemoryEvent> ecc_add_memory_emitter;
153 DefaultEventEmitter<Poseidon2HashEvent> poseidon2_hash_emitter;
154 DefaultEventEmitter<Poseidon2PermutationEvent> poseidon2_perm_emitter;
155 DefaultEventEmitter<Poseidon2PermutationMemoryEvent> poseidon2_perm_mem_emitter;
156 DefaultEventEmitter<KeccakF1600Event> keccakf1600_emitter;
157 DefaultEventEmitter<ToRadixEvent> to_radix_emitter;
158 DefaultEventEmitter<ToRadixMemoryEvent> to_radix_memory_emitter;
160 DefaultEventEmitter<MerkleCheckEvent> merkle_check_emitter;
162 DefaultEventEmitter<ContextStackEvent> context_stack_emitter;
163 DefaultEventEmitter<PublicDataTreeCheckEvent> public_data_tree_check_emitter;
164 DefaultEventEmitter<UpdateCheckEvent> update_check_emitter;
165 DefaultEventEmitter<NullifierTreeCheckEvent> nullifier_tree_check_emitter;
167 DefaultEventEmitter<CalldataEvent> calldata_emitter;
168 DefaultEventEmitter<InternalCallStackEvent> internal_call_stack_emitter;
169 DefaultEventEmitter<NoteHashTreeCheckEvent> note_hash_tree_check_emitter;
170 DefaultEventEmitter<WrittenPublicDataSlotsTreeCheckEvent> written_public_data_slots_tree_check_emitter;
171 DefaultDeduplicatingEventEmitter<GreaterThanEvent> greater_than_emitter;
172 DefaultEventEmitter<ContractInstanceRetrievalEvent> contract_instance_retrieval_emitter;
173 DefaultEventEmitter<GetContractInstanceEvent> get_contract_instance_emitter;
174 DefaultEventEmitter<L1ToL2MessageTreeCheckEvent> l1_to_l2_msg_tree_check_emitter;
175 DefaultEventEmitter<EmitUnencryptedLogEvent> emit_unencrypted_log_emitter;
176 DefaultEventEmitter<RetrievedBytecodesTreeCheckEvent> retrieved_bytecodes_tree_check_emitter;
192 written_public_data_slots_tree_check_emitter);
199 if (
tx.non_revertible_accumulated_data.nullifiers.empty()) {
200 throw std::runtime_error(
"Non-revertible nullifiers are empty in the transaction.");
219 public_data_tree_check,
220 nullifier_tree_check,
223 l1_to_l2_msg_tree_check);
228 base_merkle_db.add_checkpoint_listener(emit_unencrypted_log_component);
239 Siloing siloing(siloing_emitter);
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_unencrypted_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 siloing_emitter.dump_events(),
343 sha256_compression_emitter.dump_events(),
344 ecc_add_emitter.dump_events(),
345 scalar_mul_emitter.dump_events(),
346 ecc_add_memory_emitter.dump_events(),
347 poseidon2_hash_emitter.dump_events(),
348 poseidon2_perm_emitter.dump_events(),
349 poseidon2_perm_mem_emitter.dump_events(),
350 keccakf1600_emitter.dump_events(),
351 to_radix_emitter.dump_events(),
352 to_radix_memory_emitter.dump_events(),
354 greater_than_emitter.dump_events(),
355 merkle_check_emitter.dump_events(),
357 context_stack_emitter.dump_events(),
358 public_data_tree_check_emitter.dump_events(),
359 update_check_emitter.dump_events(),
360 nullifier_tree_check_emitter.dump_events(),
361 data_copy_emitter.dump_events(),
362 calldata_emitter.dump_events(),
363 internal_call_stack_emitter.dump_events(),
364 note_hash_tree_check_emitter.dump_events(),
365 written_public_data_slots_tree_check_emitter.dump_events(),
366 contract_instance_retrieval_emitter.dump_events(),
367 get_contract_instance_emitter.dump_events(),
368 l1_to_l2_msg_tree_check_emitter.dump_events(),
369 emit_unencrypted_log_emitter.dump_events(),
370 retrieved_bytecodes_tree_check_emitter.dump_events(),