138 BB_BENCH_NAME(
"AvmSimulationHelper::simulate_for_witgen_internal");
140 DefaultEventEmitter<ExecutionEvent> execution_emitter;
141 DefaultDeduplicatingEventEmitter<AluEvent>
alu_emitter;
142 DefaultDeduplicatingEventEmitter<BitwiseEvent> bitwise_emitter;
143 DefaultEventEmitter<DataCopyEvent> data_copy_emitter;
144 DefaultEventEmitter<MemoryEvent> memory_emitter;
145 DefaultEventEmitter<BytecodeRetrievalEvent> bytecode_retrieval_emitter;
146 DefaultEventEmitter<BytecodeHashingEvent> bytecode_hashing_emitter;
147 DefaultEventEmitter<BytecodeDecompositionEvent> bytecode_decomposition_emitter;
148 DefaultDeduplicatingEventEmitter<InstructionFetchingEvent> instruction_fetching_emitter;
149 DefaultEventEmitter<AddressDerivationEvent> address_derivation_emitter;
150 DefaultEventEmitter<ClassIdDerivationEvent> class_id_derivation_emitter;
151 DefaultEventEmitter<Sha256CompressionEvent> sha256_compression_emitter;
152 DefaultEventEmitter<EccAddEvent> ecc_add_emitter;
153 DefaultEventEmitter<ScalarMulEvent> scalar_mul_emitter;
154 DefaultEventEmitter<EccAddMemoryEvent> ecc_add_memory_emitter;
155 DefaultEventEmitter<Poseidon2HashEvent> poseidon2_hash_emitter;
156 DefaultEventEmitter<Poseidon2PermutationEvent> poseidon2_perm_emitter;
157 DefaultEventEmitter<Poseidon2PermutationMemoryEvent> poseidon2_perm_mem_emitter;
158 DefaultEventEmitter<KeccakF1600Event> keccakf1600_emitter;
159 DefaultEventEmitter<ToRadixEvent> to_radix_emitter;
160 DefaultEventEmitter<ToRadixMemoryEvent> to_radix_memory_emitter;
164 DefaultEventEmitter<ContextStackEvent> context_stack_emitter;
165 DefaultEventEmitter<PublicDataTreeCheckEvent> public_data_tree_check_emitter;
166 DefaultEventEmitter<UpdateCheckEvent> update_check_emitter;
167 DefaultEventEmitter<IndexedTreeCheckEvent> indexed_tree_check_emitter;
169 DefaultEventEmitter<CalldataEvent> calldata_emitter;
170 DefaultEventEmitter<InternalCallStackEvent> internal_call_stack_emitter;
171 DefaultEventEmitter<NoteHashTreeCheckEvent> note_hash_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;
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,
227 l1_to_l2_msg_tree_check);
232 base_merkle_db.add_checkpoint_listener(emit_public_log_component);
254 bytecode_retrieval_emitter,
255 bytecode_decomposition_emitter,
256 instruction_fetching_emitter);
264 calldata_hashing_provider,
265 internal_call_stack_manager_provider,
291 execution_components,
296 context_stack_emitter,
300 emit_public_log_component,
335 execution_emitter.dump_events(),
337 bitwise_emitter.dump_events(),
338 memory_emitter.dump_events(),
339 bytecode_retrieval_emitter.dump_events(),
340 bytecode_hashing_emitter.dump_events(),
341 bytecode_decomposition_emitter.dump_events(),
342 instruction_fetching_emitter.dump_events(),
343 address_derivation_emitter.dump_events(),
344 class_id_derivation_emitter.dump_events(),
345 sha256_compression_emitter.dump_events(),
346 ecc_add_emitter.dump_events(),
347 scalar_mul_emitter.dump_events(),
348 ecc_add_memory_emitter.dump_events(),
349 poseidon2_hash_emitter.dump_events(),
350 poseidon2_perm_emitter.dump_events(),
351 poseidon2_perm_mem_emitter.dump_events(),
352 keccakf1600_emitter.dump_events(),
353 to_radix_emitter.dump_events(),
354 to_radix_memory_emitter.dump_events(),
356 greater_than_emitter.dump_events(),
359 context_stack_emitter.dump_events(),
360 public_data_tree_check_emitter.dump_events(),
361 update_check_emitter.dump_events(),
362 indexed_tree_check_emitter.dump_events(),
363 data_copy_emitter.dump_events(),
364 calldata_emitter.dump_events(),
365 internal_call_stack_emitter.dump_events(),
366 note_hash_tree_check_emitter.dump_events(),
367 contract_instance_retrieval_emitter.dump_events(),
368 get_contract_instance_emitter.dump_events(),
369 l1_to_l2_msg_tree_check_emitter.dump_events(),
370 emit_public_log_emitter.dump_events(),