@aztec/simulator 0.0.1-commit.fce3e4f → 0.0.1-commit.ff7989d6c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dest/common/errors.d.ts +8 -2
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/private/acvm/acvm.d.ts +4 -2
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +4 -3
- package/dest/private/acvm/deserialize.d.ts +2 -2
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +1 -1
- package/dest/private/acvm/serialize.d.ts +2 -2
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +1 -1
- package/dest/private/acvm_native.d.ts +5 -3
- package/dest/private/acvm_native.d.ts.map +1 -1
- package/dest/private/acvm_native.js +8 -6
- package/dest/private/acvm_wasm.d.ts +4 -3
- package/dest/private/acvm_wasm.d.ts.map +1 -1
- package/dest/private/acvm_wasm.js +4 -4
- package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.js +21 -18
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
- package/dest/private/factory.d.ts +3 -3
- package/dest/private/factory.d.ts.map +1 -1
- package/dest/private/factory.js +7 -4
- package/dest/public/avm/avm_context.d.ts +3 -3
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +3 -3
- package/dest/public/avm/avm_execution_environment.d.ts +7 -6
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +1 -1
- package/dest/public/avm/avm_gas.d.ts +1 -1
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_gas.js +3 -3
- package/dest/public/avm/avm_machine_state.d.ts +7 -6
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.js +3 -2
- package/dest/public/avm/avm_memory_types.d.ts +2 -2
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +4 -1
- package/dest/public/avm/avm_simulator.d.ts +4 -3
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +11 -9
- package/dest/public/avm/calldata.d.ts +51 -0
- package/dest/public/avm/calldata.d.ts.map +1 -0
- package/dest/public/avm/calldata.js +63 -0
- package/dest/public/avm/errors.d.ts +8 -2
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/errors.js +14 -2
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +4 -3
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
- package/dest/public/avm/fixtures/initializers.d.ts +2 -2
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.js +5 -4
- package/dest/public/avm/fixtures/utils.d.ts +4 -3
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
- package/dest/public/avm/fixtures/utils.js +3 -2
- package/dest/public/avm/opcodes/accrued_substate.d.ts +17 -18
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +42 -43
- package/dest/public/avm/opcodes/addressing_mode.js +2 -2
- package/dest/public/avm/opcodes/arithmetic.d.ts +10 -8
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +12 -2
- package/dest/public/avm/opcodes/bitwise.d.ts +7 -7
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +5 -5
- package/dest/public/avm/opcodes/comparators.d.ts +4 -4
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +1 -1
- package/dest/public/avm/opcodes/contract.d.ts +3 -3
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +8 -8
- package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +4 -4
- package/dest/public/avm/opcodes/conversion.d.ts +3 -3
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +17 -8
- package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +6 -6
- package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +23 -22
- package/dest/public/avm/opcodes/hashing.d.ts +8 -8
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +21 -16
- package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction_impl.js +4 -4
- package/dest/public/avm/opcodes/memory.d.ts +14 -14
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +26 -26
- package/dest/public/avm/opcodes/misc.d.ts +3 -3
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +6 -6
- package/dest/public/avm/opcodes/storage.d.ts +16 -15
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +34 -24
- package/dest/public/avm/revert_reason.d.ts +2 -2
- package/dest/public/avm/revert_reason.d.ts.map +1 -1
- package/dest/public/avm/revert_reason.js +3 -2
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +12 -9
- package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.js +2 -2
- package/dest/public/avm/test_utils.d.ts +2 -2
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +1 -1
- package/dest/public/contracts_db_checkpoint.d.ts +2 -2
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
- package/dest/public/db_interfaces.d.ts +2 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/debug_fn_name.d.ts +16 -3
- package/dest/public/debug_fn_name.d.ts.map +1 -1
- package/dest/public/debug_fn_name.js +31 -3
- package/dest/public/executor_metrics.d.ts +1 -1
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +12 -33
- package/dest/public/fixtures/amm_test.js +4 -4
- package/dest/public/fixtures/bulk_test.d.ts +3 -3
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
- package/dest/public/fixtures/bulk_test.js +5 -69
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +28 -6
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +11 -8
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
- package/dest/public/fixtures/index.d.ts +4 -2
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +3 -1
- package/dest/public/fixtures/minimal_public_tx.d.ts +2 -7
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
- package/dest/public/fixtures/minimal_public_tx.js +4 -14
- package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
- package/dest/public/fixtures/opcode_spammer.js +1653 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +22 -3
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +50 -13
- package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/fixtures/simple_contract_data_source.js +4 -4
- package/dest/public/fixtures/token_test.d.ts +6 -2
- package/dest/public/fixtures/token_test.d.ts.map +1 -1
- package/dest/public/fixtures/token_test.js +13 -11
- package/dest/public/fixtures/utils.d.ts +2 -2
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +8 -7
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
- package/dest/public/hinting_db_sources.d.ts +5 -3
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +7 -2
- package/dest/public/index.d.ts +2 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +1 -1
- package/dest/public/public_db_sources.d.ts +5 -4
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +5 -5
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -2
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
- package/dest/public/public_processor/public_processor.d.ts +10 -7
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +454 -51
- package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +28 -45
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -14
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +20 -55
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +24 -37
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +67 -145
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
- package/dest/public/public_tx_simulator/factories.d.ts +14 -0
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/factories.js +28 -0
- package/dest/public/public_tx_simulator/index.d.ts +4 -1
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +3 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +3 -3
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +5 -4
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +9 -9
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +8 -6
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +23 -12
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +24 -1
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +2 -2
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
- package/dest/public/side_effect_trace.d.ts +6 -5
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +4 -4
- package/dest/public/side_effect_trace_interface.d.ts +2 -2
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/nullifiers.d.ts +2 -2
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.d.ts +2 -2
- package/dest/public/state_manager/public_storage.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.js +1 -1
- package/dest/public/state_manager/state_manager.d.ts +16 -5
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +19 -9
- package/dest/public/test_executor_metrics.d.ts +3 -2
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +2 -2
- package/package.json +20 -20
- package/src/common/errors.ts +1 -1
- package/src/private/acvm/acvm.ts +4 -3
- package/src/private/acvm/deserialize.ts +1 -1
- package/src/private/acvm/serialize.ts +1 -1
- package/src/private/acvm_native.ts +11 -5
- package/src/private/acvm_wasm.ts +7 -3
- package/src/private/circuit_recording/circuit_recorder.ts +22 -19
- package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
- package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
- package/src/private/factory.ts +7 -4
- package/src/public/avm/avm_context.ts +2 -2
- package/src/public/avm/avm_contract_call_result.ts +8 -6
- package/src/public/avm/avm_execution_environment.ts +10 -5
- package/src/public/avm/avm_gas.ts +5 -5
- package/src/public/avm/avm_machine_state.ts +7 -6
- package/src/public/avm/avm_memory_types.ts +5 -1
- package/src/public/avm/avm_simulator.ts +16 -10
- package/src/public/avm/calldata.ts +100 -0
- package/src/public/avm/errors.ts +17 -3
- package/src/public/avm/fixtures/account_proof.json +553 -0
- package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
- package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -3
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
- package/src/public/avm/fixtures/initializers.ts +5 -4
- package/src/public/avm/fixtures/utils.ts +3 -2
- package/src/public/avm/opcodes/accrued_substate.ts +31 -34
- package/src/public/avm/opcodes/addressing_mode.ts +2 -2
- package/src/public/avm/opcodes/arithmetic.ts +14 -2
- package/src/public/avm/opcodes/bitwise.ts +3 -3
- package/src/public/avm/opcodes/comparators.ts +1 -1
- package/src/public/avm/opcodes/contract.ts +4 -7
- package/src/public/avm/opcodes/control_flow.ts +2 -2
- package/src/public/avm/opcodes/conversion.ts +3 -3
- package/src/public/avm/opcodes/ec_add.ts +15 -6
- package/src/public/avm/opcodes/environment_getters.ts +7 -7
- package/src/public/avm/opcodes/external_calls.ts +17 -15
- package/src/public/avm/opcodes/hashing.ts +16 -10
- package/src/public/avm/opcodes/instruction_impl.ts +2 -2
- package/src/public/avm/opcodes/memory.ts +20 -20
- package/src/public/avm/opcodes/misc.ts +4 -4
- package/src/public/avm/opcodes/storage.ts +30 -22
- package/src/public/avm/revert_reason.ts +6 -3
- package/src/public/avm/serialization/bytecode_serialization.ts +19 -8
- package/src/public/avm/serialization/instruction_serialization.ts +2 -2
- package/src/public/avm/test_utils.ts +1 -1
- package/src/public/contracts_db_checkpoint.ts +1 -1
- package/src/public/db_interfaces.ts +1 -1
- package/src/public/debug_fn_name.ts +39 -5
- package/src/public/executor_metrics.ts +9 -33
- package/src/public/fixtures/amm_test.ts +4 -4
- package/src/public/fixtures/bulk_test.ts +9 -9
- package/src/public/fixtures/custom_bytecode_tester.ts +53 -19
- package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
- package/src/public/fixtures/index.ts +7 -1
- package/src/public/fixtures/minimal_public_tx.ts +6 -15
- package/src/public/fixtures/opcode_spammer.ts +1717 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +69 -13
- package/src/public/fixtures/simple_contract_data_source.ts +8 -9
- package/src/public/fixtures/token_test.ts +18 -9
- package/src/public/fixtures/utils.ts +6 -7
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
- package/src/public/hinting_db_sources.ts +8 -3
- package/src/public/index.ts +7 -1
- package/src/public/public_db_sources.ts +16 -6
- package/src/public/public_processor/guarded_merkle_tree.ts +6 -1
- package/src/public/public_processor/public_processor.ts +81 -45
- package/src/public/public_processor/public_processor_metrics.ts +16 -44
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +25 -63
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +83 -178
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
- package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
- package/src/public/public_tx_simulator/factories.ts +43 -0
- package/src/public/public_tx_simulator/index.ts +3 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +1 -1
- package/src/public/public_tx_simulator/public_tx_context.ts +14 -7
- package/src/public/public_tx_simulator/public_tx_simulator.ts +42 -16
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +23 -0
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +1 -1
- package/src/public/side_effect_trace.ts +6 -3
- package/src/public/side_effect_trace_interface.ts +1 -1
- package/src/public/state_manager/nullifiers.ts +1 -1
- package/src/public/state_manager/public_storage.ts +1 -1
- package/src/public/state_manager/state_manager.ts +39 -23
- package/src/public/test_executor_metrics.ts +3 -3
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { AVM_MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
-
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { ProtocolContractAddress, ProtocolContractsList } from '@aztec/protocol-contracts';
|
|
5
5
|
import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
6
|
-
import { AvmExecutionHints, AvmTxHint, PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
|
|
6
|
+
import { AvmExecutionHints, AvmTxHint, PublicSimulatorConfig, PublicTxEffect, PublicTxResult } from '@aztec/stdlib/avm';
|
|
7
7
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
8
|
-
import
|
|
8
|
+
import { Gas } from '@aztec/stdlib/gas';
|
|
9
9
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
10
10
|
import {
|
|
11
11
|
type GlobalVariables,
|
|
12
12
|
NestedProcessReturnValues,
|
|
13
|
+
ProtocolContracts,
|
|
13
14
|
PublicCallRequestWithCalldata,
|
|
14
15
|
Tx,
|
|
15
16
|
TxExecutionPhase,
|
|
@@ -18,6 +19,7 @@ import {
|
|
|
18
19
|
import { strict as assert } from 'assert';
|
|
19
20
|
|
|
20
21
|
import type { AvmFinalizedCallResult } from '../avm/avm_contract_call_result.js';
|
|
22
|
+
import { CallDataArray } from '../avm/calldata.js';
|
|
21
23
|
import { AvmSimulator } from '../avm/index.js';
|
|
22
24
|
import { getPublicFunctionDebugName } from '../debug_fn_name.js';
|
|
23
25
|
import { HintingMerkleWriteOperations, HintingPublicContractsDB } from '../hinting_db_sources.js';
|
|
@@ -79,15 +81,19 @@ type ProcessedPhase = {
|
|
|
79
81
|
export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
80
82
|
protected log: Logger;
|
|
81
83
|
protected readonly config: PublicSimulatorConfig;
|
|
84
|
+
protected readonly bindings?: LoggerBindings;
|
|
82
85
|
|
|
83
86
|
constructor(
|
|
84
87
|
protected merkleTree: MerkleTreeWriteOperations,
|
|
85
88
|
protected contractsDB: PublicContractsDB,
|
|
86
89
|
protected globalVariables: GlobalVariables,
|
|
87
90
|
config?: Partial<PublicSimulatorConfig>,
|
|
91
|
+
protected protocolContracts: ProtocolContracts = ProtocolContractsList,
|
|
92
|
+
bindings?: LoggerBindings,
|
|
88
93
|
) {
|
|
89
94
|
this.config = PublicSimulatorConfig.from(config ?? {});
|
|
90
|
-
this.
|
|
95
|
+
this.bindings = bindings;
|
|
96
|
+
this.log = createLogger(`simulator:public_tx_simulator`, bindings);
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
/**
|
|
@@ -103,7 +109,7 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
103
109
|
const hints = new AvmExecutionHints(
|
|
104
110
|
this.globalVariables,
|
|
105
111
|
AvmTxHint.fromTx(tx, this.globalVariables.gasFees),
|
|
106
|
-
|
|
112
|
+
this.protocolContracts,
|
|
107
113
|
);
|
|
108
114
|
const hintingMerkleTree = await HintingMerkleWriteOperations.create(this.merkleTree, hints);
|
|
109
115
|
const hintingTreesDB = new PublicTreesDB(hintingMerkleTree);
|
|
@@ -114,8 +120,9 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
114
120
|
hintingContractsDB,
|
|
115
121
|
tx,
|
|
116
122
|
this.globalVariables,
|
|
117
|
-
|
|
123
|
+
this.protocolContracts,
|
|
118
124
|
this.config.proverId,
|
|
125
|
+
this.bindings,
|
|
119
126
|
);
|
|
120
127
|
|
|
121
128
|
// This will throw if there is a nullifier collision.
|
|
@@ -129,7 +136,7 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
129
136
|
const setupResult = await this.simulatePhase(TxExecutionPhase.SETUP, context);
|
|
130
137
|
if (setupResult.reverted) {
|
|
131
138
|
throw new Error(
|
|
132
|
-
`
|
|
139
|
+
`[SETUP] UNRECOVERABLE ERROR! The transaction will be thrown out. ${setupResult.revertReason?.message}`,
|
|
133
140
|
);
|
|
134
141
|
}
|
|
135
142
|
processedPhases.push(setupResult);
|
|
@@ -200,10 +207,25 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
200
207
|
const publicInputs = await context.generateAvmCircuitPublicInputs();
|
|
201
208
|
const revertCode = context.getFinalRevertCode();
|
|
202
209
|
|
|
203
|
-
// We only return the app logic phase information.
|
|
204
|
-
const appLogicReturnValues =
|
|
210
|
+
// We only return the app logic phase information, and only 1 per phase.
|
|
211
|
+
const appLogicReturnValues: NestedProcessReturnValues[] =
|
|
205
212
|
processedPhases.find(({ phase }) => phase === TxExecutionPhase.APP_LOGIC)?.returnValues ?? [];
|
|
206
213
|
|
|
214
|
+
// TODO(fcarreiro): This is a temporary backwards compatibility layer until we migrate to the C++ simulator.
|
|
215
|
+
if (context.revertReason !== undefined) {
|
|
216
|
+
(appLogicReturnValues as any).revertReason = context.revertReason;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Create PublicTxEffect from PublicInputs.
|
|
220
|
+
const publicTxEffect = new PublicTxEffect(
|
|
221
|
+
publicInputs.transactionFee,
|
|
222
|
+
publicInputs.accumulatedData.noteHashes.filter(h => !h.isEmpty()),
|
|
223
|
+
publicInputs.accumulatedData.nullifiers.filter(n => !n.isEmpty()),
|
|
224
|
+
publicInputs.accumulatedData.l2ToL1Msgs.filter(m => !m.isEmpty()),
|
|
225
|
+
publicInputs.accumulatedData.publicLogs.toLogs(),
|
|
226
|
+
publicInputs.accumulatedData.publicDataWrites.filter(w => !w.isEmpty()),
|
|
227
|
+
);
|
|
228
|
+
|
|
207
229
|
return new PublicTxResult(
|
|
208
230
|
/*gasUsed=*/ {
|
|
209
231
|
totalGas: context.getActualGasUsed(),
|
|
@@ -212,8 +234,8 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
212
234
|
billedGas: context.getTotalGasUsed(),
|
|
213
235
|
},
|
|
214
236
|
/*revertCode=*/ revertCode,
|
|
215
|
-
/*
|
|
216
|
-
/*
|
|
237
|
+
/*publicTxEffect=*/ publicTxEffect,
|
|
238
|
+
/*callStackMetadata=*/ appLogicReturnValues,
|
|
217
239
|
/*logs=*/ context.state.getActiveStateManager().getLogs(),
|
|
218
240
|
/*hints=*/ hints,
|
|
219
241
|
/*publicInputs=*/ publicInputs,
|
|
@@ -250,7 +272,7 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
250
272
|
|
|
251
273
|
const enqueuedCallResult = await this.simulateEnqueuedCall(phase, context, callRequest);
|
|
252
274
|
|
|
253
|
-
returnValues.push(new NestedProcessReturnValues(enqueuedCallResult.output));
|
|
275
|
+
returnValues.push(new NestedProcessReturnValues(enqueuedCallResult.output.bestEffortReadAll()));
|
|
254
276
|
|
|
255
277
|
if (enqueuedCallResult.reverted) {
|
|
256
278
|
reverted = true;
|
|
@@ -280,7 +302,11 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
280
302
|
): Promise<AvmFinalizedCallResult> {
|
|
281
303
|
const stateManager = context.state.getActiveStateManager();
|
|
282
304
|
const contractAddress = callRequest.request.contractAddress;
|
|
283
|
-
const fnName = await getPublicFunctionDebugName(
|
|
305
|
+
const fnName = await getPublicFunctionDebugName(
|
|
306
|
+
this.contractsDB,
|
|
307
|
+
contractAddress,
|
|
308
|
+
new CallDataArray(callRequest.calldata),
|
|
309
|
+
);
|
|
284
310
|
|
|
285
311
|
const allocatedGas = context.getGasLeftAtPhase(phase);
|
|
286
312
|
|
|
@@ -299,7 +325,7 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
299
325
|
);
|
|
300
326
|
|
|
301
327
|
if (result.reverted) {
|
|
302
|
-
const culprit = `${contractAddress}:${
|
|
328
|
+
const culprit = `${contractAddress}:${fnName}`;
|
|
303
329
|
context.revert(phase, result.revertReason, culprit);
|
|
304
330
|
}
|
|
305
331
|
|
|
@@ -340,7 +366,7 @@ export class PublicTxSimulator implements PublicTxSimulatorInterface {
|
|
|
340
366
|
transactionFee,
|
|
341
367
|
this.globalVariables,
|
|
342
368
|
request.isStaticCall,
|
|
343
|
-
calldata,
|
|
369
|
+
new CallDataArray(calldata),
|
|
344
370
|
allocatedGas,
|
|
345
371
|
this.config,
|
|
346
372
|
);
|
|
@@ -3,8 +3,31 @@ import type { Tx } from '@aztec/stdlib/tx';
|
|
|
3
3
|
|
|
4
4
|
export interface PublicTxSimulatorInterface {
|
|
5
5
|
simulate(tx: Tx): Promise<PublicTxResult>;
|
|
6
|
+
/**
|
|
7
|
+
* Cancel the current simulation if one is in progress.
|
|
8
|
+
* This signals the underlying simulator (e.g., C++) to stop at the next safe point.
|
|
9
|
+
* Safe to call even if no simulation is in progress.
|
|
10
|
+
* Optional - not all implementations support cancellation.
|
|
11
|
+
*
|
|
12
|
+
* @param waitTimeoutMs - If provided, wait up to this many ms for the simulation to actually stop.
|
|
13
|
+
* This is important because signaling cancellation doesn't immediately stop C++ -
|
|
14
|
+
* it only sets a flag that C++ checks at certain points. If C++ is in the middle
|
|
15
|
+
* of a slow operation (e.g., pad_trees), it won't stop until that completes.
|
|
16
|
+
* @returns Promise that resolves when cancellation is signaled (and optionally when simulation stops)
|
|
17
|
+
*/
|
|
18
|
+
cancel?(waitTimeoutMs?: number): Promise<void>;
|
|
6
19
|
}
|
|
7
20
|
|
|
8
21
|
export interface MeasuredPublicTxSimulatorInterface {
|
|
9
22
|
simulate(tx: Tx, txLabel: string): Promise<PublicTxResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Cancel the current simulation if one is in progress.
|
|
25
|
+
* This signals the underlying simulator (e.g., C++) to stop at the next safe point.
|
|
26
|
+
* Safe to call even if no simulation is in progress.
|
|
27
|
+
* Optional - not all implementations support cancellation.
|
|
28
|
+
*
|
|
29
|
+
* @param waitTimeoutMs - If provided, wait up to this many ms for the simulation to actually stop.
|
|
30
|
+
* @returns Promise that resolves when cancellation is signaled (and optionally when simulation stops)
|
|
31
|
+
*/
|
|
32
|
+
cancel?(waitTimeoutMs?: number): Promise<void>;
|
|
10
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
3
3
|
import type { Gas } from '@aztec/stdlib/gas';
|
|
4
4
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
8
|
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
9
9
|
} from '@aztec/constants';
|
|
10
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
10
11
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
|
-
import {
|
|
12
|
-
import { type LogLevel, createLogger } from '@aztec/foundation/log';
|
|
12
|
+
import { type LogLevel, type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
13
13
|
import { PublicDataUpdateRequest } from '@aztec/stdlib/avm';
|
|
14
14
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
15
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
@@ -61,7 +61,7 @@ export class SideEffectArrayLengths {
|
|
|
61
61
|
* Trace side effects for an enqueued public call's execution.
|
|
62
62
|
*/
|
|
63
63
|
export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
64
|
-
public log
|
|
64
|
+
public log: Logger;
|
|
65
65
|
|
|
66
66
|
/** The side effect counter increments with every call to the trace. */
|
|
67
67
|
private sideEffectCounter: number;
|
|
@@ -79,6 +79,7 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
79
79
|
constructor(
|
|
80
80
|
/** The counter of this trace's first side effect. */
|
|
81
81
|
public readonly startSideEffectCounter: number = 0,
|
|
82
|
+
bindings?: LoggerBindings,
|
|
82
83
|
/** Track parent's (or previous kernel's) lengths so the AVM can properly enforce TX-wide limits,
|
|
83
84
|
* otherwise the public kernel can fail to prove because TX limits are breached.
|
|
84
85
|
*/
|
|
@@ -90,11 +91,13 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
90
91
|
private debugLogMemoryReads: number = 0,
|
|
91
92
|
) {
|
|
92
93
|
this.sideEffectCounter = startSideEffectCounter;
|
|
94
|
+
this.log = createLogger('simulator:side_effect_trace', bindings);
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
public fork() {
|
|
96
98
|
return new SideEffectTrace(
|
|
97
99
|
this.sideEffectCounter,
|
|
100
|
+
this.log.getBindings(),
|
|
98
101
|
new SideEffectArrayLengths(
|
|
99
102
|
this.previousSideEffectArrayLengths.publicDataWrites + this.userPublicDataWritesLength,
|
|
100
103
|
this.previousSideEffectArrayLengths.protocolPublicDataWrites + this.protocolPublicDataWritesLength,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { LogLevel } from '@aztec/foundation/log';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { DebugLog } from '@aztec/stdlib/logs';
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
|
|
5
|
-
FEE_JUICE_ADDRESS,
|
|
6
|
-
MULTI_CALL_ENTRYPOINT_ADDRESS,
|
|
7
|
-
ROUTER_ADDRESS,
|
|
8
|
-
} from '@aztec/constants';
|
|
9
|
-
import { poseidon2Hash } from '@aztec/foundation/crypto';
|
|
10
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
4
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
12
|
-
import { type LogLevel, createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { type LogLevel, type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
13
6
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
7
|
+
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
14
8
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
9
|
import type { ContractClassPublicWithCommitment, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
16
10
|
import { SerializableContractInstance } from '@aztec/stdlib/contract';
|
|
@@ -26,7 +20,7 @@ import { strict as assert } from 'assert';
|
|
|
26
20
|
|
|
27
21
|
import type { AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
28
22
|
import type { PublicContractsDBInterface } from '../db_interfaces.js';
|
|
29
|
-
import { getPublicFunctionDebugName } from '../debug_fn_name.js';
|
|
23
|
+
import { getPublicFunctionDebugName, getPublicFunctionSelectorAndName } from '../debug_fn_name.js';
|
|
30
24
|
import type { PublicTreesDB } from '../public_db_sources.js';
|
|
31
25
|
import {
|
|
32
26
|
L1ToL2MessageIndexOutOfRangeError,
|
|
@@ -48,7 +42,7 @@ import { PublicStorage } from './public_storage.js';
|
|
|
48
42
|
* Manages merging of successful/reverted child state into current state.
|
|
49
43
|
*/
|
|
50
44
|
export class PublicPersistableStateManager {
|
|
51
|
-
private readonly log
|
|
45
|
+
private readonly log: Logger;
|
|
52
46
|
|
|
53
47
|
/** Make sure a forked state is never merged twice. */
|
|
54
48
|
private alreadyMergedIntoParent = false;
|
|
@@ -62,7 +56,10 @@ export class PublicPersistableStateManager {
|
|
|
62
56
|
private readonly doMerkleOperations: boolean = true,
|
|
63
57
|
private readonly publicStorage: PublicStorage = new PublicStorage(treesDB),
|
|
64
58
|
private readonly nullifiers: NullifierManager = new NullifierManager(treesDB),
|
|
65
|
-
|
|
59
|
+
bindings?: LoggerBindings,
|
|
60
|
+
) {
|
|
61
|
+
this.log = createLogger('simulator:state_manager', bindings);
|
|
62
|
+
}
|
|
66
63
|
|
|
67
64
|
/**
|
|
68
65
|
* Create a new state manager
|
|
@@ -73,8 +70,19 @@ export class PublicPersistableStateManager {
|
|
|
73
70
|
trace: PublicSideEffectTraceInterface,
|
|
74
71
|
firstNullifier: Fr,
|
|
75
72
|
timestamp: UInt64,
|
|
73
|
+
bindings?: LoggerBindings,
|
|
76
74
|
): PublicPersistableStateManager {
|
|
77
|
-
return new PublicPersistableStateManager(
|
|
75
|
+
return new PublicPersistableStateManager(
|
|
76
|
+
treesDB,
|
|
77
|
+
contractsDB,
|
|
78
|
+
trace,
|
|
79
|
+
firstNullifier,
|
|
80
|
+
timestamp,
|
|
81
|
+
undefined,
|
|
82
|
+
undefined,
|
|
83
|
+
undefined,
|
|
84
|
+
bindings,
|
|
85
|
+
);
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
/**
|
|
@@ -91,6 +99,7 @@ export class PublicPersistableStateManager {
|
|
|
91
99
|
this.doMerkleOperations,
|
|
92
100
|
this.publicStorage.fork(),
|
|
93
101
|
this.nullifiers.fork(),
|
|
102
|
+
this.log.getBindings(),
|
|
94
103
|
);
|
|
95
104
|
}
|
|
96
105
|
|
|
@@ -239,7 +248,15 @@ export class PublicPersistableStateManager {
|
|
|
239
248
|
public async checkNullifierExists(contractAddress: AztecAddress, nullifier: Fr): Promise<boolean> {
|
|
240
249
|
this.log.trace(`Checking existence of nullifier (address=${contractAddress}, nullifier=${nullifier})`);
|
|
241
250
|
const siloedNullifier = await siloNullifier(contractAddress, nullifier);
|
|
251
|
+
return this.checkSiloedNullifierExists(siloedNullifier);
|
|
252
|
+
}
|
|
242
253
|
|
|
254
|
+
/**
|
|
255
|
+
* Check if a siloed nullifier exists.
|
|
256
|
+
* @param siloedNullifier - the siloed nullifier to check
|
|
257
|
+
* @returns exists - whether the nullifier exists in the nullifier set
|
|
258
|
+
*/
|
|
259
|
+
public async checkSiloedNullifierExists(siloedNullifier: Fr): Promise<boolean> {
|
|
243
260
|
if (this.doMerkleOperations) {
|
|
244
261
|
const exists = await this.treesDB.checkNullifierExists(siloedNullifier);
|
|
245
262
|
this.log.trace(`Checked siloed nullifier ${siloedNullifier} (exists=${exists})`);
|
|
@@ -532,6 +549,12 @@ export class PublicPersistableStateManager {
|
|
|
532
549
|
return await getPublicFunctionDebugName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
|
|
533
550
|
}
|
|
534
551
|
|
|
552
|
+
public async getPublicFunctionSelectorAndName(
|
|
553
|
+
avmEnvironment: AvmExecutionEnvironment,
|
|
554
|
+
): Promise<{ functionSelector?: FunctionSelector; functionName?: string }> {
|
|
555
|
+
return await getPublicFunctionSelectorAndName(this.contractsDB, avmEnvironment.address, avmEnvironment.calldata);
|
|
556
|
+
}
|
|
557
|
+
|
|
535
558
|
public async padTree(treeId: MerkleTreeId, leavesToInsert: number): Promise<void> {
|
|
536
559
|
await this.treesDB.padTree(treeId, leavesToInsert);
|
|
537
560
|
}
|
|
@@ -542,12 +565,5 @@ export class PublicPersistableStateManager {
|
|
|
542
565
|
}
|
|
543
566
|
|
|
544
567
|
function contractAddressIsCanonical(contractAddress: AztecAddress): boolean {
|
|
545
|
-
return (
|
|
546
|
-
contractAddress.equals(AztecAddress.fromNumber(CANONICAL_AUTH_REGISTRY_ADDRESS)) ||
|
|
547
|
-
contractAddress.equals(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS)) ||
|
|
548
|
-
contractAddress.equals(AztecAddress.fromNumber(CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS)) ||
|
|
549
|
-
contractAddress.equals(AztecAddress.fromNumber(MULTI_CALL_ENTRYPOINT_ADDRESS)) ||
|
|
550
|
-
contractAddress.equals(AztecAddress.fromNumber(FEE_JUICE_ADDRESS)) ||
|
|
551
|
-
contractAddress.equals(AztecAddress.fromNumber(ROUTER_ADDRESS))
|
|
552
|
-
);
|
|
568
|
+
return contractAddress.toBigInt() >= 1 && contractAddress.toBigInt() <= MAX_PROTOCOL_CONTRACTS;
|
|
553
569
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sum } from '@aztec/foundation/collection';
|
|
2
|
-
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import type { RevertCode } from '@aztec/stdlib/avm';
|
|
5
5
|
import type { GasUsed } from '@aztec/stdlib/gas';
|
|
@@ -88,8 +88,8 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
88
88
|
private currentTxLabel: string | undefined;
|
|
89
89
|
private txTimer: Timer | undefined;
|
|
90
90
|
|
|
91
|
-
constructor() {
|
|
92
|
-
this.logger = createLogger(`simulator:test_executor_metrics
|
|
91
|
+
constructor(bindings?: LoggerBindings) {
|
|
92
|
+
this.logger = createLogger(`simulator:test_executor_metrics`, bindings);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
startRecordingTxSimulation(txLabel: string) {
|