@aztec/simulator 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0
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/client.d.ts +1 -3
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +0 -2
- 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 +7 -5
- package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.js +71 -72
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
- 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/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
- package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
- 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/testing/account_proof_fetcher.d.ts +2 -0
- package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
- package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
- package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +3 -2
- package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
- package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +19 -4
- package/dest/public/avm/testing/utils.d.ts +32 -0
- package/dest/public/avm/testing/utils.d.ts.map +1 -0
- package/dest/public/avm/{fixtures → testing}/utils.js +5 -35
- package/dest/public/avm_simulator.d.ts +28 -0
- package/dest/public/avm_simulator.d.ts.map +1 -0
- package/dest/public/avm_simulator.js +4 -0
- package/dest/public/avm_simulator_pool.d.ts +45 -0
- package/dest/public/avm_simulator_pool.d.ts.map +1 -0
- package/dest/public/avm_simulator_pool.js +197 -0
- package/dest/public/cdb/generated/api_types.d.ts +171 -0
- package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
- package/dest/public/cdb/generated/api_types.js +314 -0
- package/dest/public/cdb/generated/server.d.ts +26 -0
- package/dest/public/cdb/generated/server.d.ts.map +1 -0
- package/dest/public/cdb/generated/server.js +135 -0
- package/dest/public/cdb_ipc_server.d.ts +33 -0
- package/dest/public/cdb_ipc_server.d.ts.map +1 -0
- package/dest/public/cdb_ipc_server.js +153 -0
- package/dest/public/contracts_db_checkpoint.d.ts +3 -3
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
- package/dest/public/contracts_db_checkpoint.js +1 -1
- package/dest/public/db_interfaces.d.ts +2 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- 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 +6 -6
- 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 +38 -75
- 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/index.d.ts +3 -3
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +2 -2
- package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
- package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
- package/dest/public/fixtures/public_processor_test_env.js +73 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +24 -6
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +66 -21
- package/dest/public/fixtures/simple_contract_data_source.d.ts +2 -2
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/fixtures/simple_contract_data_source.js +1 -1
- package/dest/public/fixtures/token_test.js +4 -4
- package/dest/public/fixtures/utils.d.ts +3 -3
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +25 -23
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +67 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +185 -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/index.d.ts +5 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +2 -1
- package/dest/public/public_db_sources.d.ts +10 -6
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +21 -15
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -6
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +12 -4
- package/dest/public/public_processor/public_processor.d.ts +17 -8
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +535 -100
- package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +36 -45
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.js +39 -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 +5 -5
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +3 -3
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +43 -70
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +99 -312
- package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
- 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/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 +23 -20
- package/src/client.ts +0 -2
- 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 +11 -4
- package/src/private/circuit_recording/circuit_recorder.ts +90 -81
- package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
- package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
- package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
- package/src/private/factory.ts +7 -4
- package/src/public/avm/testing/account_proof.json +553 -0
- package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
- package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +24 -4
- package/src/public/avm/{fixtures → testing}/utils.ts +5 -41
- package/src/public/avm_simulator.ts +29 -0
- package/src/public/avm_simulator_pool.ts +226 -0
- package/src/public/cdb/generated/api_types.ts +457 -0
- package/src/public/cdb/generated/server.ts +109 -0
- package/src/public/cdb_ipc_server.ts +197 -0
- package/src/public/contracts_db_checkpoint.ts +2 -2
- package/src/public/db_interfaces.ts +1 -1
- package/src/public/executor_metrics.ts +9 -33
- package/src/public/fixtures/amm_test.ts +6 -6
- package/src/public/fixtures/bulk_test.ts +40 -15
- package/src/public/fixtures/custom_bytecode_tester.ts +53 -19
- package/src/public/fixtures/index.ts +6 -2
- package/src/public/fixtures/public_processor_test_env.ts +88 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +82 -21
- package/src/public/fixtures/simple_contract_data_source.ts +2 -2
- package/src/public/fixtures/token_test.ts +4 -4
- package/src/public/fixtures/utils.ts +25 -27
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +303 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +173 -0
- package/src/public/index.ts +8 -2
- package/src/public/public_db_sources.ts +37 -20
- package/src/public/public_processor/guarded_merkle_tree.ts +14 -7
- package/src/public/public_processor/public_processor.ts +188 -102
- package/src/public/public_processor/public_processor_metrics.ts +28 -44
- package/src/public/public_tx_simulator/dumping_public_tx_simulator.ts +67 -0
- package/src/public/public_tx_simulator/factories.ts +61 -0
- package/src/public/public_tx_simulator/index.ts +7 -4
- package/src/public/public_tx_simulator/public_tx_simulator.ts +143 -458
- package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +23 -0
- package/src/public/test_executor_metrics.ts +3 -3
- package/dest/public/avm/avm_context.d.ts +0 -41
- package/dest/public/avm/avm_context.d.ts.map +0 -1
- package/dest/public/avm/avm_context.js +0 -44
- package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
- package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
- package/dest/public/avm/avm_contract_call_result.js +0 -54
- package/dest/public/avm/avm_execution_environment.d.ts +0 -23
- package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
- package/dest/public/avm/avm_execution_environment.js +0 -33
- package/dest/public/avm/avm_gas.d.ts +0 -44
- package/dest/public/avm/avm_gas.d.ts.map +0 -1
- package/dest/public/avm/avm_gas.js +0 -195
- package/dest/public/avm/avm_machine_state.d.ts +0 -97
- package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/public/avm/avm_machine_state.js +0 -109
- package/dest/public/avm/avm_memory_types.d.ts +0 -275
- package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
- package/dest/public/avm/avm_memory_types.js +0 -351
- package/dest/public/avm/avm_simulator.d.ts +0 -40
- package/dest/public/avm/avm_simulator.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator.js +0 -191
- package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
- package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator_interface.js +0 -3
- package/dest/public/avm/errors.d.ts +0 -104
- package/dest/public/avm/errors.d.ts.map +0 -1
- package/dest/public/avm/errors.js +0 -141
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -83
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.d.ts +0 -42
- package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.js +0 -44
- package/dest/public/avm/fixtures/utils.d.ts +0 -39
- package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
- package/dest/public/avm/index.d.ts +0 -2
- package/dest/public/avm/index.d.ts.map +0 -1
- package/dest/public/avm/index.js +0 -1
- package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/public/avm/opcodes/accrued_substate.js +0 -255
- package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
- package/dest/public/avm/opcodes/addressing_mode.js +0 -94
- package/dest/public/avm/opcodes/arithmetic.d.ts +0 -47
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/public/avm/opcodes/arithmetic.js +0 -87
- package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
- package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
- package/dest/public/avm/opcodes/bitwise.js +0 -99
- package/dest/public/avm/opcodes/comparators.d.ts +0 -25
- package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
- package/dest/public/avm/opcodes/comparators.js +0 -43
- package/dest/public/avm/opcodes/contract.d.ts +0 -20
- package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/public/avm/opcodes/contract.js +0 -65
- package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
- package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
- package/dest/public/avm/opcodes/control_flow.js +0 -107
- package/dest/public/avm/opcodes/conversion.d.ts +0 -18
- package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
- package/dest/public/avm/opcodes/conversion.js +0 -333
- package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
- package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/public/avm/opcodes/ec_add.js +0 -84
- package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
- package/dest/public/avm/opcodes/environment_getters.js +0 -77
- package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
- package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
- package/dest/public/avm/opcodes/external_calls.js +0 -209
- package/dest/public/avm/opcodes/hashing.d.ts +0 -36
- package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
- package/dest/public/avm/opcodes/hashing.js +0 -114
- package/dest/public/avm/opcodes/index.d.ts +0 -16
- package/dest/public/avm/opcodes/index.d.ts.map +0 -1
- package/dest/public/avm/opcodes/index.js +0 -15
- package/dest/public/avm/opcodes/instruction.d.ts +0 -74
- package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
- package/dest/public/avm/opcodes/instruction.js +0 -95
- package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
- package/dest/public/avm/opcodes/instruction_impl.js +0 -30
- package/dest/public/avm/opcodes/memory.d.ts +0 -74
- package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
- package/dest/public/avm/opcodes/memory.js +0 -257
- package/dest/public/avm/opcodes/misc.d.ts +0 -18
- package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
- package/dest/public/avm/opcodes/misc.js +0 -73
- package/dest/public/avm/opcodes/storage.d.ts +0 -24
- package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/public/avm/opcodes/storage.js +0 -68
- package/dest/public/avm/revert_reason.d.ts +0 -18
- package/dest/public/avm/revert_reason.d.ts.map +0 -1
- package/dest/public/avm/revert_reason.js +0 -39
- package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
- package/dest/public/avm/serialization/buffer_cursor.js +0 -99
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
- package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
- package/dest/public/avm/serialization/instruction_serialization.js +0 -261
- package/dest/public/avm/test_utils.d.ts +0 -15
- package/dest/public/avm/test_utils.d.ts.map +0 -1
- package/dest/public/avm/test_utils.js +0 -44
- package/dest/public/debug_fn_name.d.ts +0 -18
- package/dest/public/debug_fn_name.d.ts.map +0 -1
- package/dest/public/debug_fn_name.js +0 -28
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -9
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +0 -109
- package/dest/public/fixtures/minimal_public_tx.d.ts +0 -9
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
- package/dest/public/fixtures/minimal_public_tx.js +0 -29
- package/dest/public/hinting_db_sources.d.ts +0 -79
- package/dest/public/hinting_db_sources.d.ts.map +0 -1
- package/dest/public/hinting_db_sources.js +0 -350
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -30
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -133
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -38
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -93
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -170
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -130
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -39
- package/dest/public/side_effect_trace.d.ts +0 -86
- package/dest/public/side_effect_trace.d.ts.map +0 -1
- package/dest/public/side_effect_trace.js +0 -199
- package/dest/public/side_effect_trace_interface.d.ts +0 -22
- package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
- package/dest/public/side_effect_trace_interface.js +0 -1
- package/dest/public/state_manager/index.d.ts +0 -2
- package/dest/public/state_manager/index.d.ts.map +0 -1
- package/dest/public/state_manager/index.js +0 -1
- package/dest/public/state_manager/nullifiers.d.ts +0 -61
- package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
- package/dest/public/state_manager/nullifiers.js +0 -92
- package/dest/public/state_manager/public_storage.d.ts +0 -66
- package/dest/public/state_manager/public_storage.d.ts.map +0 -1
- package/dest/public/state_manager/public_storage.js +0 -145
- package/dest/public/state_manager/state_manager.d.ts +0 -164
- package/dest/public/state_manager/state_manager.d.ts.map +0 -1
- package/dest/public/state_manager/state_manager.js +0 -395
- package/src/public/avm/avm_context.ts +0 -61
- package/src/public/avm/avm_contract_call_result.ts +0 -67
- package/src/public/avm/avm_execution_environment.ts +0 -46
- package/src/public/avm/avm_gas.ts +0 -183
- package/src/public/avm/avm_machine_state.ts +0 -169
- package/src/public/avm/avm_memory_types.ts +0 -436
- package/src/public/avm/avm_simulator.ts +0 -276
- package/src/public/avm/avm_simulator_interface.ts +0 -8
- package/src/public/avm/errors.ts +0 -177
- package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -116
- package/src/public/avm/fixtures/initializers.ts +0 -102
- package/src/public/avm/index.ts +0 -1
- package/src/public/avm/opcodes/accrued_substate.ts +0 -288
- package/src/public/avm/opcodes/addressing_mode.ts +0 -111
- package/src/public/avm/opcodes/arithmetic.ts +0 -117
- package/src/public/avm/opcodes/bitwise.ts +0 -113
- package/src/public/avm/opcodes/comparators.ts +0 -55
- package/src/public/avm/opcodes/contract.ts +0 -75
- package/src/public/avm/opcodes/control_flow.ts +0 -123
- package/src/public/avm/opcodes/conversion.ts +0 -104
- package/src/public/avm/opcodes/ec_add.ts +0 -96
- package/src/public/avm/opcodes/environment_getters.ts +0 -87
- package/src/public/avm/opcodes/external_calls.ts +0 -260
- package/src/public/avm/opcodes/hashing.ts +0 -145
- package/src/public/avm/opcodes/index.ts +0 -15
- package/src/public/avm/opcodes/instruction.ts +0 -136
- package/src/public/avm/opcodes/instruction_impl.ts +0 -36
- package/src/public/avm/opcodes/memory.ts +0 -293
- package/src/public/avm/opcodes/misc.ts +0 -102
- package/src/public/avm/opcodes/storage.ts +0 -87
- package/src/public/avm/revert_reason.ts +0 -58
- package/src/public/avm/serialization/buffer_cursor.ts +0 -118
- package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
- package/src/public/avm/serialization/instruction_serialization.ts +0 -249
- package/src/public/avm/test_utils.ts +0 -64
- package/src/public/debug_fn_name.ts +0 -43
- package/src/public/fixtures/custom_bytecode_tests.ts +0 -135
- package/src/public/fixtures/minimal_public_tx.ts +0 -35
- package/src/public/hinting_db_sources.ts +0 -603
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -162
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -155
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -132
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -240
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
- package/src/public/public_tx_simulator/public_tx_context.ts +0 -477
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
- package/src/public/side_effect_trace.ts +0 -290
- package/src/public/side_effect_trace_interface.ts +0 -28
- package/src/public/state_manager/index.ts +0 -1
- package/src/public/state_manager/nullifiers.ts +0 -103
- package/src/public/state_manager/public_storage.ts +0 -174
- package/src/public/state_manager/state_manager.ts +0 -560
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import {
|
|
4
|
+
AvmCircuitPublicInputs,
|
|
5
|
+
type AvmTxHint,
|
|
6
|
+
PublicTxEffect,
|
|
7
|
+
deserializeFromMessagePack,
|
|
8
|
+
serializeWithMessagePack,
|
|
9
|
+
} from '@aztec/stdlib/avm';
|
|
10
|
+
import { GlobalVariables, TreeSnapshots } from '@aztec/stdlib/tx';
|
|
11
|
+
import { NativeWorldStateService } from '@aztec/world-state';
|
|
12
|
+
|
|
13
|
+
import { createInterface } from 'readline';
|
|
14
|
+
|
|
15
|
+
import { AvmFuzzerSimulator, FuzzerSimulationRequest } from './avm_fuzzer_simulator.js';
|
|
16
|
+
|
|
17
|
+
/** Write data to stdout, letting Node handle buffering. */
|
|
18
|
+
function writeOutput(data: string): Promise<void> {
|
|
19
|
+
return new Promise<void>((resolve, reject) => {
|
|
20
|
+
process.stdout.write(data, err => {
|
|
21
|
+
if (err) {
|
|
22
|
+
reject(err);
|
|
23
|
+
} else {
|
|
24
|
+
resolve();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// This cache holds opened world states to avoid reopening them for each invocation.
|
|
31
|
+
// It's a map so that in the future we could support multiple world states (if we had multiple fuzzers).
|
|
32
|
+
const worldStateCache = new Map<string, NativeWorldStateService>();
|
|
33
|
+
|
|
34
|
+
async function openExistingWorldState(dataDir: string, mapSizeKb: number): Promise<NativeWorldStateService> {
|
|
35
|
+
const cached = worldStateCache.get(dataDir);
|
|
36
|
+
if (cached) {
|
|
37
|
+
return cached;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const ws = await NativeWorldStateService.new(EthAddress.ZERO, dataDir, {
|
|
41
|
+
archiveTreeMapSizeKb: mapSizeKb,
|
|
42
|
+
nullifierTreeMapSizeKb: mapSizeKb,
|
|
43
|
+
noteHashTreeMapSizeKb: mapSizeKb,
|
|
44
|
+
messageTreeMapSizeKb: mapSizeKb,
|
|
45
|
+
publicDataTreeMapSizeKb: mapSizeKb,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
worldStateCache.set(dataDir, ws);
|
|
49
|
+
return ws;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async function simulateWithFuzzer(
|
|
53
|
+
dataDir: string,
|
|
54
|
+
mapSizeKb: number,
|
|
55
|
+
txHint: AvmTxHint,
|
|
56
|
+
globals: GlobalVariables,
|
|
57
|
+
rawContractClasses: any[], // Replace these when we are moving contract classes to TS
|
|
58
|
+
rawContractInstances: [any, any][], // Replace these when we are moving contract instances to TS
|
|
59
|
+
rawPublicDataWrites: any[], // Public data tree writes to apply before simulation
|
|
60
|
+
rawNoteHashes: any[], // Note hashes to apply before simulation
|
|
61
|
+
): Promise<{
|
|
62
|
+
reverted: boolean;
|
|
63
|
+
output: Fr[];
|
|
64
|
+
revertReason?: string;
|
|
65
|
+
publicInputs: AvmCircuitPublicInputs;
|
|
66
|
+
publicTxEffect: PublicTxEffect;
|
|
67
|
+
}> {
|
|
68
|
+
const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
|
|
69
|
+
|
|
70
|
+
const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
|
|
71
|
+
|
|
72
|
+
await simulator.applyNoteHashes(rawNoteHashes);
|
|
73
|
+
|
|
74
|
+
// Register contract classes from C++ (must happen before public data writes to match C++ order)
|
|
75
|
+
for (const rawClass of rawContractClasses) {
|
|
76
|
+
await simulator.addContractClassFromCpp(rawClass);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Register contract instances from C++
|
|
80
|
+
for (const [rawAddress, rawInstance] of rawContractInstances) {
|
|
81
|
+
await simulator.addContractInstanceFromCpp(rawAddress, rawInstance);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Apply public data writes after contract registration (e.g., for bytecode upgrades)
|
|
85
|
+
// This must happen last to match C++ setup_fuzzer_state ordering
|
|
86
|
+
await simulator.applyPublicDataWrites(rawPublicDataWrites);
|
|
87
|
+
|
|
88
|
+
const result = await simulator.simulate(txHint);
|
|
89
|
+
|
|
90
|
+
const output = result
|
|
91
|
+
.getAppLogicReturnValues()
|
|
92
|
+
.flatMap((rv: { values?: Fr[] } | undefined) => rv?.values?.filter((v: Fr | null | undefined) => v != null) ?? []);
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
reverted: !result.revertCode.isOK(),
|
|
96
|
+
output,
|
|
97
|
+
revertReason: result.findRevertReason()?.message,
|
|
98
|
+
publicInputs: result.publicInputs!,
|
|
99
|
+
publicTxEffect: result.publicTxEffect,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function execute(base64Line: string): Promise<void> {
|
|
104
|
+
try {
|
|
105
|
+
// Decode base64 and deserialize the entire request from msgpack
|
|
106
|
+
const buffer = Buffer.from(base64Line.trim(), 'base64');
|
|
107
|
+
const rawRequest = deserializeFromMessagePack(buffer);
|
|
108
|
+
const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
|
|
109
|
+
|
|
110
|
+
// Run the simulation on the C++ AVM simulator
|
|
111
|
+
const result = await simulateWithFuzzer(
|
|
112
|
+
request.wsDataDir,
|
|
113
|
+
request.wsMapSizeKb,
|
|
114
|
+
request.tx,
|
|
115
|
+
request.globals,
|
|
116
|
+
request.contractClasses,
|
|
117
|
+
request.contractInstances,
|
|
118
|
+
request.publicDataWrites,
|
|
119
|
+
request.noteHashes,
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
// Serialize the result to msgpack and encode it in base64 for output
|
|
123
|
+
const resultBuffer = serializeWithMessagePack({
|
|
124
|
+
reverted: result.reverted,
|
|
125
|
+
output: result.output,
|
|
126
|
+
revertReason: result.revertReason ?? '',
|
|
127
|
+
endTreeSnapshots: result.publicInputs.endTreeSnapshots,
|
|
128
|
+
publicTxEffect: result.publicTxEffect,
|
|
129
|
+
});
|
|
130
|
+
const base64Response = resultBuffer.toString('base64') + '\n';
|
|
131
|
+
await writeOutput(base64Response);
|
|
132
|
+
} catch (error: any) {
|
|
133
|
+
// If we error, treat as reverted
|
|
134
|
+
const errorResult = serializeWithMessagePack({
|
|
135
|
+
reverted: true,
|
|
136
|
+
output: [] as Fr[],
|
|
137
|
+
revertReason: `Unexpected Error ${error.message}`,
|
|
138
|
+
endTreeSnapshots: TreeSnapshots.empty(),
|
|
139
|
+
publicTxEffect: PublicTxEffect.empty(),
|
|
140
|
+
});
|
|
141
|
+
await writeOutput(errorResult.toString('base64') + '\n');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function mainLoop() {
|
|
146
|
+
const rl = createInterface({ input: process.stdin, terminal: false });
|
|
147
|
+
|
|
148
|
+
// Process lines sequentially to avoid race conditions in responses
|
|
149
|
+
const lineQueue: string[] = [];
|
|
150
|
+
let processing = false;
|
|
151
|
+
|
|
152
|
+
async function processQueue() {
|
|
153
|
+
if (processing || lineQueue.length === 0) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
processing = true;
|
|
157
|
+
while (lineQueue.length > 0) {
|
|
158
|
+
const line = lineQueue.shift()!;
|
|
159
|
+
await execute(line);
|
|
160
|
+
}
|
|
161
|
+
processing = false;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
rl.on('line', (line: string) => {
|
|
165
|
+
if (line.trim()) {
|
|
166
|
+
lineQueue.push(line);
|
|
167
|
+
void processQueue();
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
rl.on('close', () => process.exit(0));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
void mainLoop();
|
package/src/public/index.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
export { AvmSimulatorPool, type AvmSimulatorPoolOptions } from './avm_simulator_pool.js';
|
|
2
|
+
export type { PublicContractsDBInterface } from './db_interfaces.js';
|
|
1
3
|
export { PublicContractsDB } from './public_db_sources.js';
|
|
2
4
|
export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
|
|
3
5
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
6
|
+
export type { AvmContractsDBContext, AvmSimulator } from './avm_simulator.js';
|
|
4
7
|
export {
|
|
5
|
-
|
|
8
|
+
PublicTxSimulator,
|
|
9
|
+
MeasuredPublicTxSimulator,
|
|
10
|
+
createPublicTxSimulatorForBlockBuilding,
|
|
11
|
+
DumpingPublicTxSimulator,
|
|
6
12
|
type PublicTxSimulatorInterface,
|
|
7
|
-
|
|
13
|
+
TelemetryPublicTxSimulator,
|
|
8
14
|
} from './public_tx_simulator/index.js';
|
|
9
15
|
export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
|
|
10
16
|
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
NULLIFIER_SUBTREE_HEIGHT,
|
|
5
5
|
PUBLIC_DATA_SUBTREE_HEIGHT,
|
|
6
6
|
} from '@aztec/constants';
|
|
7
|
-
import { Fr } from '@aztec/foundation/
|
|
8
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
7
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
8
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
9
9
|
import { Timer } from '@aztec/foundation/timer';
|
|
10
10
|
import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
11
11
|
import { ContractInstancePublishedEvent } from '@aztec/protocol-contracts/instance-registry';
|
|
@@ -46,14 +46,20 @@ import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from
|
|
|
46
46
|
export class PublicContractsDB implements PublicContractsDBInterface {
|
|
47
47
|
private contractStateStack: ContractsDbCheckpoint[] = [new ContractsDbCheckpoint()];
|
|
48
48
|
|
|
49
|
-
private log
|
|
49
|
+
private log: Logger;
|
|
50
50
|
|
|
51
|
-
constructor(
|
|
51
|
+
constructor(
|
|
52
|
+
private dataSource: ContractDataSource,
|
|
53
|
+
bindings?: LoggerBindings,
|
|
54
|
+
) {
|
|
55
|
+
this.log = createLogger('simulator:contracts-data-source', bindings);
|
|
56
|
+
}
|
|
52
57
|
|
|
53
|
-
|
|
58
|
+
/** Parses raw contract deployment data and inserts the resulting contracts into the current checkpoint. */
|
|
59
|
+
public addContractsFromLogs(contractDeploymentData: ContractDeploymentData): void {
|
|
54
60
|
const currentState = this.getCurrentState();
|
|
55
61
|
|
|
56
|
-
|
|
62
|
+
this.addContractClassesFromEvents(
|
|
57
63
|
ContractClassPublishedEvent.extractContractClassEvents(contractDeploymentData.getContractClassLogs()),
|
|
58
64
|
currentState,
|
|
59
65
|
);
|
|
@@ -64,10 +70,18 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
64
70
|
);
|
|
65
71
|
}
|
|
66
72
|
|
|
67
|
-
public
|
|
73
|
+
public addNewContracts(tx: Tx): void {
|
|
68
74
|
const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
this.addContractsFromLogs(contractDeploymentData.getNonRevertibleContractDeploymentData());
|
|
76
|
+
this.addContractsFromLogs(contractDeploymentData.getRevertibleContractDeploymentData());
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Inserts typed contract instances directly into the current checkpoint. */
|
|
80
|
+
public addContracts(contractInstances?: ContractInstanceWithAddress[]): void {
|
|
81
|
+
const currentState = this.getCurrentState();
|
|
82
|
+
for (const instance of contractInstances ?? []) {
|
|
83
|
+
currentState.addInstance(instance.address, instance);
|
|
84
|
+
}
|
|
71
85
|
}
|
|
72
86
|
|
|
73
87
|
/**
|
|
@@ -76,7 +90,7 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
76
90
|
*/
|
|
77
91
|
public createCheckpoint(): void {
|
|
78
92
|
const currentState = this.getCurrentState();
|
|
79
|
-
const newState = currentState.
|
|
93
|
+
const newState = currentState.fork();
|
|
80
94
|
this.contractStateStack.push(newState);
|
|
81
95
|
}
|
|
82
96
|
|
|
@@ -169,17 +183,15 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
169
183
|
return await this.dataSource.getDebugFunctionName(address, selector);
|
|
170
184
|
}
|
|
171
185
|
|
|
172
|
-
private
|
|
186
|
+
private addContractClassesFromEvents(
|
|
173
187
|
contractClassEvents: ContractClassPublishedEvent[],
|
|
174
188
|
state: ContractsDbCheckpoint,
|
|
175
189
|
) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}),
|
|
182
|
-
);
|
|
190
|
+
for (const event of contractClassEvents) {
|
|
191
|
+
this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
|
|
192
|
+
const contractClass = event.toContractClassPublic();
|
|
193
|
+
state.addClass(event.contractClassId, contractClass);
|
|
194
|
+
}
|
|
183
195
|
}
|
|
184
196
|
|
|
185
197
|
private addContractInstancesFromEvents(
|
|
@@ -208,9 +220,14 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
208
220
|
* to decide whether to use hints or not (same with tracing, etc).
|
|
209
221
|
*/
|
|
210
222
|
export class PublicTreesDB implements PublicStateDBInterface {
|
|
211
|
-
private logger
|
|
223
|
+
private logger: Logger;
|
|
212
224
|
|
|
213
|
-
constructor(
|
|
225
|
+
constructor(
|
|
226
|
+
private readonly db: MerkleTreeWriteOperations,
|
|
227
|
+
bindings?: LoggerBindings,
|
|
228
|
+
) {
|
|
229
|
+
this.logger = createLogger('simulator:public-trees-db', bindings);
|
|
230
|
+
}
|
|
214
231
|
|
|
215
232
|
public async storageRead(contract: AztecAddress, slot: Fr): Promise<Fr> {
|
|
216
233
|
const timer = new Timer();
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
TreeInfo,
|
|
13
13
|
} from '@aztec/stdlib/trees';
|
|
14
14
|
import type { BlockHeader, StateReference } from '@aztec/stdlib/tx';
|
|
15
|
-
import type { WorldStateRevision
|
|
15
|
+
import type { WorldStateRevision } from '@aztec/stdlib/world-state';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Wraps an instance of `MerkleTreeWriteOperations` to allow the sequencer to gate access.
|
|
@@ -81,6 +81,10 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
81
81
|
close(): Promise<void> {
|
|
82
82
|
return this.guardAndPush(() => this.target.close());
|
|
83
83
|
}
|
|
84
|
+
|
|
85
|
+
async [Symbol.asyncDispose](): Promise<void> {
|
|
86
|
+
await this.close();
|
|
87
|
+
}
|
|
84
88
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo> {
|
|
85
89
|
return this.guardAndPush(() => this.target.getTreeInfo(treeId));
|
|
86
90
|
}
|
|
@@ -90,9 +94,12 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
90
94
|
getInitialHeader(): BlockHeader {
|
|
91
95
|
return this.target.getInitialHeader();
|
|
92
96
|
}
|
|
93
|
-
public getRevision(): WorldStateRevision
|
|
97
|
+
public getRevision(): WorldStateRevision {
|
|
94
98
|
return this.target.getRevision();
|
|
95
99
|
}
|
|
100
|
+
public getIpcPath(): string {
|
|
101
|
+
return this.target.getIpcPath();
|
|
102
|
+
}
|
|
96
103
|
getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>> {
|
|
97
104
|
return this.guardAndPush(() => this.target.getSiblingPath(treeId, index));
|
|
98
105
|
}
|
|
@@ -130,7 +137,7 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
130
137
|
): Promise<(BlockNumber | undefined)[]> {
|
|
131
138
|
return this.guardAndPush(() => this.target.getBlockNumbersForLeafIndices(treeId, leafIndices));
|
|
132
139
|
}
|
|
133
|
-
createCheckpoint(): Promise<
|
|
140
|
+
createCheckpoint(): Promise<number> {
|
|
134
141
|
return this.guardAndPush(() => this.target.createCheckpoint());
|
|
135
142
|
}
|
|
136
143
|
commitCheckpoint(): Promise<void> {
|
|
@@ -139,11 +146,11 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
139
146
|
revertCheckpoint(): Promise<void> {
|
|
140
147
|
return this.guardAndPush(() => this.target.revertCheckpoint());
|
|
141
148
|
}
|
|
142
|
-
|
|
143
|
-
return this.guardAndPush(() => this.target.
|
|
149
|
+
commitAllCheckpointsTo(depth: number): Promise<void> {
|
|
150
|
+
return this.guardAndPush(() => this.target.commitAllCheckpointsTo(depth));
|
|
144
151
|
}
|
|
145
|
-
|
|
146
|
-
return this.guardAndPush(() => this.target.
|
|
152
|
+
revertAllCheckpointsTo(depth: number): Promise<void> {
|
|
153
|
+
return this.guardAndPush(() => this.target.revertAllCheckpointsTo(depth));
|
|
147
154
|
}
|
|
148
155
|
findSiblingPaths<ID extends MerkleTreeId>(
|
|
149
156
|
treeId: ID,
|