@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97
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 -1
- package/dest/common/errors.d.ts +2 -2
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/index.d.ts +1 -1
- package/dest/common/stats/index.d.ts +1 -1
- package/dest/common/stats/stats.d.ts +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/acvm_types.d.ts +1 -1
- 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/index.d.ts +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/acvm_wasm_with_blobs.d.ts +1 -1
- package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
- 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 +23 -20
- 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/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_simulator.d.ts +1 -1
- 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 +18 -3
- package/dest/public/avm/{fixtures → testing}/utils.d.ts +4 -10
- package/dest/public/avm/testing/utils.d.ts.map +1 -0
- package/dest/public/avm/{fixtures → testing}/utils.js +6 -35
- package/dest/public/contracts_db_checkpoint.d.ts +16 -0
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
- package/dest/public/contracts_db_checkpoint.js +30 -0
- package/dest/public/db_interfaces.d.ts +14 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/executor_metrics.d.ts +3 -2
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +13 -34
- package/dest/public/executor_metrics_interface.d.ts +3 -2
- package/dest/public/executor_metrics_interface.d.ts.map +1 -1
- package/dest/public/fixtures/amm_test.d.ts +1 -1
- 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 +36 -73
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
- 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 +2 -3
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +1 -2
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +30 -11
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +98 -31
- 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 +5 -5
- 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 -12
- 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 +23 -23
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +62 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +176 -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 +3 -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 +29 -66
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +83 -134
- package/dest/public/public_errors.d.ts +1 -1
- package/dest/public/public_errors.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -5
- 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 +19 -21
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +553 -123
- 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/contract_provider_for_cpp.d.ts +19 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +99 -0
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -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 +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 +5 -3
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +3 -2
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -89
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +101 -334
- package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -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 +28 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
- package/dest/public/side_effect_errors.d.ts +1 -1
- package/dest/public/side_effect_errors.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.d.ts +11 -4
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +29 -6
- package/dest/public/unique_class_ids.d.ts +1 -1
- package/dest/public/unique_class_ids.d.ts.map +1 -1
- package/dest/public/utils.d.ts +1 -1
- package/dest/server.d.ts +1 -1
- package/dest/testing.d.ts +1 -1
- package/package.json +22 -22
- 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 +24 -21
- 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/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 +23 -3
- package/src/public/avm/{fixtures → testing}/utils.ts +6 -41
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +16 -1
- package/src/public/executor_metrics.ts +11 -34
- package/src/public/executor_metrics_interface.ts +2 -1
- package/src/public/fixtures/amm_test.ts +4 -4
- package/src/public/fixtures/bulk_test.ts +38 -13
- package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
- package/src/public/fixtures/index.ts +5 -2
- package/src/public/fixtures/public_tx_simulation_tester.ts +129 -27
- package/src/public/fixtures/simple_contract_data_source.ts +9 -10
- package/src/public/fixtures/token_test.ts +18 -10
- package/src/public/fixtures/utils.ts +28 -25
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +285 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +173 -0
- package/src/public/index.ts +4 -2
- package/src/public/public_db_sources.ts +112 -174
- package/src/public/public_processor/guarded_merkle_tree.ts +14 -6
- package/src/public/public_processor/public_processor.ts +225 -136
- package/src/public/public_processor/public_processor_metrics.ts +28 -44
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +125 -0
- package/src/public/public_tx_simulator/dumping_public_tx_simulator.ts +83 -0
- package/src/public/public_tx_simulator/factories.ts +44 -0
- package/src/public/public_tx_simulator/index.ts +4 -2
- package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -500
- package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
- package/src/public/test_executor_metrics.ts +34 -8
- 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 -36
- 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 -39
- package/dest/public/avm/avm_simulator.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator.js +0 -190
- 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 -98
- package/dest/public/avm/errors.d.ts.map +0 -1
- package/dest/public/avm/errors.js +0 -129
- 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 -74
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.d.ts +0 -43
- package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.js +0 -42
- 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 -38
- 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 -333
- 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 -5
- package/dest/public/debug_fn_name.d.ts.map +0 -1
- package/dest/public/debug_fn_name.js +0 -9
- 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 -10
- 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 -70
- package/dest/public/hinting_db_sources.d.ts.map +0 -1
- package/dest/public/hinting_db_sources.js +0 -297
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -41
- 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 -89
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -24
- 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 -127
- 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 -292
- 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 -87
- 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 -23
- 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 -166
- package/dest/public/state_manager/state_manager.d.ts.map +0 -1
- package/dest/public/state_manager/state_manager.js +0 -391
- package/dest/public/tx_contract_cache.d.ts +0 -41
- package/dest/public/tx_contract_cache.d.ts.map +0 -1
- package/dest/public/tx_contract_cache.js +0 -49
- 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 -48
- 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 -274
- package/src/public/avm/avm_simulator_interface.ts +0 -8
- package/src/public/avm/errors.ts +0 -163
- package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -108
- package/src/public/avm/fixtures/initializers.ts +0 -104
- 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 -55
- package/src/public/avm/serialization/buffer_cursor.ts +0 -118
- package/src/public/avm/serialization/bytecode_serialization.ts +0 -204
- 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 -18
- package/src/public/fixtures/custom_bytecode_tests.ts +0 -135
- package/src/public/fixtures/minimal_public_tx.ts +0 -36
- package/src/public/hinting_db_sources.ts +0 -505
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -128
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -109
- package/src/public/public_tx_simulator/public_tx_context.ts +0 -471
- 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
- package/src/public/tx_contract_cache.ts +0 -69
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
|
|
2
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { AvmTxHint } from '@aztec/stdlib/avm';
|
|
5
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import { contractClassPublicFromPlainObject, contractInstanceWithAddressFromPlainObject } from '@aztec/stdlib/contract';
|
|
7
|
+
import { PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PublicCallRequest } from '@aztec/stdlib/kernel';
|
|
8
|
+
import { PrivateLog } from '@aztec/stdlib/logs';
|
|
9
|
+
import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
10
|
+
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
11
|
+
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
12
|
+
import { BlockHeader, GlobalVariables, HashedValues, ProtocolContracts, Tx, TxConstantData, TxContext, TxHash } from '@aztec/stdlib/tx';
|
|
13
|
+
import { BaseAvmSimulationTester } from '../avm/testing/base_avm_simulation_tester.js';
|
|
14
|
+
import { SimpleContractDataSource } from '../fixtures/simple_contract_data_source.js';
|
|
15
|
+
import { PublicContractsDB } from '../public_db_sources.js';
|
|
16
|
+
import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js';
|
|
17
|
+
/**
|
|
18
|
+
* Request structure for fuzzer simulation communication from C++.
|
|
19
|
+
* Matches the C++ FuzzerSimulationRequest struct
|
|
20
|
+
*/ export class FuzzerSimulationRequest {
|
|
21
|
+
wsDataDir;
|
|
22
|
+
wsMapSizeKb;
|
|
23
|
+
tx;
|
|
24
|
+
globals;
|
|
25
|
+
contractClasses;
|
|
26
|
+
contractInstances;
|
|
27
|
+
publicDataWrites;
|
|
28
|
+
noteHashes;
|
|
29
|
+
protocolContracts;
|
|
30
|
+
constructor(wsDataDir, wsMapSizeKb, tx, globals, contractClasses, contractInstances, publicDataWrites, noteHashes, protocolContracts){
|
|
31
|
+
this.wsDataDir = wsDataDir;
|
|
32
|
+
this.wsMapSizeKb = wsMapSizeKb;
|
|
33
|
+
this.tx = tx;
|
|
34
|
+
this.globals = globals;
|
|
35
|
+
this.contractClasses = contractClasses;
|
|
36
|
+
this.contractInstances = contractInstances;
|
|
37
|
+
this.publicDataWrites = publicDataWrites;
|
|
38
|
+
this.noteHashes = noteHashes;
|
|
39
|
+
this.protocolContracts = protocolContracts;
|
|
40
|
+
}
|
|
41
|
+
static fromPlainObject(obj) {
|
|
42
|
+
if (obj instanceof FuzzerSimulationRequest) {
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
return new FuzzerSimulationRequest(obj.wsDataDir, obj.wsMapSizeKb, AvmTxHint.fromPlainObject(obj.tx), GlobalVariables.fromPlainObject(obj.globals), obj.contractClasses, obj.contractInstances, obj.publicDataWrites ?? [], obj.noteHashes ?? [], ProtocolContracts.fromPlainObject(obj.protocolContracts));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates a TypeScript Tx object from a deserialized C++ Tx (AvmTxHint-like structure).
|
|
50
|
+
* This allows simulating fuzzer-generated transactions with the C++ public tx simulator.
|
|
51
|
+
*/ async function createTxFromHint(cppTx) {
|
|
52
|
+
// Create TxHash from the C++ tx hash string
|
|
53
|
+
if (!cppTx.hash) {
|
|
54
|
+
throw new Error(`cppTx.hash is undefined. Keys: ${Object.keys(cppTx || {}).join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
const txHash = TxHash.fromString(cppTx.hash);
|
|
57
|
+
// Extract PublicCallRequest instances from enqueued calls
|
|
58
|
+
const setupCallRequests = cppTx.setupEnqueuedCalls.map((call)=>call.request);
|
|
59
|
+
const paddedSetupCalls = padArrayEnd(setupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX);
|
|
60
|
+
const appLogicCallRequests = cppTx.appLogicEnqueuedCalls.map((call)=>call.request);
|
|
61
|
+
const paddedAppLogicCalls = padArrayEnd(appLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX);
|
|
62
|
+
// Build non-revertible accumulated data from C++ tx
|
|
63
|
+
const emptyNonRevertible = PrivateToPublicAccumulatedData.empty();
|
|
64
|
+
const nonRevertibleAccumulatedData = new PrivateToPublicAccumulatedData(padArrayEnd(cppTx.nonRevertibleAccumulatedData.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(cppTx.nonRevertibleAccumulatedData.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(cppTx.nonRevertibleAccumulatedData.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(cppTx.nonRevertibleContractDeploymentData.privateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), emptyNonRevertible.contractClassLogsHashes, paddedSetupCalls);
|
|
65
|
+
// Build revertible accumulated data from C++ tx
|
|
66
|
+
const emptyRevertible = PrivateToPublicAccumulatedData.empty();
|
|
67
|
+
const revertibleAccumulatedData = new PrivateToPublicAccumulatedData(padArrayEnd(cppTx.revertibleAccumulatedData.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(cppTx.revertibleAccumulatedData.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(cppTx.revertibleAccumulatedData.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(cppTx.revertibleContractDeploymentData.privateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), emptyRevertible.contractClassLogsHashes, paddedAppLogicCalls);
|
|
68
|
+
// Build teardown call request (if exists)
|
|
69
|
+
const teardownCallRequest = cppTx.teardownEnqueuedCall?.request ?? PublicCallRequest.empty();
|
|
70
|
+
// Create forPublic structure
|
|
71
|
+
const forPublic = new PartialPrivateTailPublicInputsForPublic(nonRevertibleAccumulatedData, revertibleAccumulatedData, teardownCallRequest);
|
|
72
|
+
// Build TxContext - gasSettings is already a proper GasSettings after AvmTxHint.fromPlainObject
|
|
73
|
+
const txContext = new TxContext(Fr.ZERO, Fr.ZERO, cppTx.gasSettings);
|
|
74
|
+
// Build TxConstantData
|
|
75
|
+
const constants = new TxConstantData(BlockHeader.empty(), txContext, Fr.ZERO, Fr.ZERO);
|
|
76
|
+
const data = new PrivateKernelTailCircuitPublicInputs(constants, cppTx.gasUsedByPrivate, cppTx.feePayer, 0n, forPublic, undefined);
|
|
77
|
+
// Build publicFunctionCalldata from all enqueued calls
|
|
78
|
+
// Calldata is already Fr[] after AvmTxHint.fromPlainObject
|
|
79
|
+
const publicFunctionCalldata = [];
|
|
80
|
+
// Add setup calls
|
|
81
|
+
for (const call of cppTx.setupEnqueuedCalls || []){
|
|
82
|
+
publicFunctionCalldata.push(await HashedValues.fromCalldata(call.calldata));
|
|
83
|
+
}
|
|
84
|
+
// Add app logic calls
|
|
85
|
+
for (const call of cppTx.appLogicEnqueuedCalls || []){
|
|
86
|
+
publicFunctionCalldata.push(await HashedValues.fromCalldata(call.calldata));
|
|
87
|
+
}
|
|
88
|
+
// Add teardown call if present
|
|
89
|
+
if (cppTx.teardownEnqueuedCall) {
|
|
90
|
+
publicFunctionCalldata.push(await HashedValues.fromCalldata(cppTx.teardownEnqueuedCall.calldata));
|
|
91
|
+
}
|
|
92
|
+
// Extract contract class log fields from ContractDeploymentData
|
|
93
|
+
const contractClassLogFields = [
|
|
94
|
+
...cppTx.nonRevertibleContractDeploymentData.contractClassLogs.map((log)=>log.fields),
|
|
95
|
+
...cppTx.revertibleContractDeploymentData.contractClassLogs.map((log)=>log.fields)
|
|
96
|
+
];
|
|
97
|
+
// Create the Tx
|
|
98
|
+
return new Tx(txHash, data, ChonkProof.empty(), contractClassLogFields, publicFunctionCalldata);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A simulator class for the AVM fuzzer that extends BaseAvmSimulationTester.
|
|
102
|
+
* It provides methods for registering contracts from C++ msgpack data and simulating transactions.
|
|
103
|
+
* The simulation itself runs on the production C++ AVM simulator, so the fuzzer compares brillig
|
|
104
|
+
* execution against the real AVM rather than a TS reference.
|
|
105
|
+
*/ export class AvmFuzzerSimulator extends BaseAvmSimulationTester {
|
|
106
|
+
simulator;
|
|
107
|
+
constructor(merkleTrees, contractDataSource, globals){
|
|
108
|
+
super(contractDataSource, merkleTrees);
|
|
109
|
+
const contractsDb = new PublicContractsDB(contractDataSource);
|
|
110
|
+
// collectPublicInputs and collectCallMetadata are required so the C++ result carries the end
|
|
111
|
+
// tree snapshots and app-logic return values that the fuzzer bin reports back to the harness.
|
|
112
|
+
this.simulator = new PublicTxSimulator(merkleTrees, contractsDb, globals, {
|
|
113
|
+
skipFeeEnforcement: false,
|
|
114
|
+
collectDebugLogs: false,
|
|
115
|
+
collectHints: false,
|
|
116
|
+
collectPublicInputs: true,
|
|
117
|
+
collectStatistics: false,
|
|
118
|
+
collectCallMetadata: true
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Static factory method to create an AvmFuzzerSimulator.
|
|
123
|
+
*/ static async create(worldStateService, globals) {
|
|
124
|
+
const contractDataSource = new SimpleContractDataSource();
|
|
125
|
+
const merkleTrees = await worldStateService.fork();
|
|
126
|
+
return new AvmFuzzerSimulator(merkleTrees, contractDataSource, globals);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Simulate a transaction from a C++ AvmTxHint.
|
|
130
|
+
*/ async simulate(txHint) {
|
|
131
|
+
// Compute fee from gas limits and max fees per gas (upper bound on fee)
|
|
132
|
+
const totalFee = BigInt(txHint.gasSettings.gasLimits.daGas) * txHint.gasSettings.maxFeesPerGas.feePerDaGas + BigInt(txHint.gasSettings.gasLimits.l2Gas) * txHint.gasSettings.maxFeesPerGas.feePerL2Gas;
|
|
133
|
+
await this.setFeePayerBalance(txHint.feePayer, new Fr(totalFee));
|
|
134
|
+
const tx = await createTxFromHint(txHint);
|
|
135
|
+
return await this.simulator.simulate(tx);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Add a contract class from C++ raw msgpack data.
|
|
139
|
+
*/ async addContractClassFromCpp(rawClass) {
|
|
140
|
+
const contractClass = contractClassPublicFromPlainObject(rawClass);
|
|
141
|
+
await this.contractDataSource.addContractClass(contractClass);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Add a contract instance from C++ raw msgpack data.
|
|
145
|
+
* This also inserts the contract address nullifier into the nullifier tree,
|
|
146
|
+
* unless the address is a protocol canonical address (1-11).
|
|
147
|
+
*/ async addContractInstanceFromCpp(rawAddress, rawInstance) {
|
|
148
|
+
const address = AztecAddress.fromPlainObject(rawAddress);
|
|
149
|
+
const instance = contractInstanceWithAddressFromPlainObject(address, rawInstance);
|
|
150
|
+
// Protocol canonical addresses (1-11) should not have nullifiers inserted
|
|
151
|
+
const isProtocolCanonicalAddress = address.toBigInt() <= MAX_PROTOCOL_CONTRACTS && address.toBigInt() >= 1n;
|
|
152
|
+
await this.addContractInstance(instance, /* skipNullifierInsertion */ isProtocolCanonicalAddress);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Apply public data tree writes from C++ raw msgpack data.
|
|
156
|
+
* This is used to pre-populate the public data tree before simulation (e.g., for bytecode upgrades).
|
|
157
|
+
*/ async applyPublicDataWrites(rawWrites) {
|
|
158
|
+
for (const rawWrite of rawWrites){
|
|
159
|
+
const leaf = PublicDataTreeLeaf.fromPlainObject(rawWrite);
|
|
160
|
+
await this.merkleTrees.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, [
|
|
161
|
+
leaf.toBuffer()
|
|
162
|
+
]);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Apply note hashes from C++ raw msgpack data.
|
|
167
|
+
* This is used to pre-populate the note hash tree before simulation.
|
|
168
|
+
*/ async applyNoteHashes(rawNoteHashes) {
|
|
169
|
+
const paddingLeaves = MAX_NOTE_HASHES_PER_TX - rawNoteHashes.length % MAX_NOTE_HASHES_PER_TX;
|
|
170
|
+
const paddedNoteHashes = [
|
|
171
|
+
...rawNoteHashes,
|
|
172
|
+
...Array(paddingLeaves).fill(Fr.ZERO)
|
|
173
|
+
];
|
|
174
|
+
await this.merkleTrees.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, paddedNoteHashes);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avm_simulator_bin.d.ts","sourceRoot":"","sources":["../../../src/public/fuzzing/avm_simulator_bin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { PublicTxEffect, deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
|
|
3
|
+
import { TreeSnapshots } from '@aztec/stdlib/tx';
|
|
4
|
+
import { NativeWorldStateService } from '@aztec/world-state';
|
|
5
|
+
import { createInterface } from 'readline';
|
|
6
|
+
import { AvmFuzzerSimulator, FuzzerSimulationRequest } from './avm_fuzzer_simulator.js';
|
|
7
|
+
/** Write data to stdout, letting Node handle buffering. */ function writeOutput(data) {
|
|
8
|
+
return new Promise((resolve, reject)=>{
|
|
9
|
+
process.stdout.write(data, (err)=>{
|
|
10
|
+
if (err) {
|
|
11
|
+
reject(err);
|
|
12
|
+
} else {
|
|
13
|
+
resolve();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// This cache holds opened world states to avoid reopening them for each invocation.
|
|
19
|
+
// It's a map so that in the future we could support multiple world states (if we had multiple fuzzers).
|
|
20
|
+
const worldStateCache = new Map();
|
|
21
|
+
async function openExistingWorldState(dataDir, mapSizeKb) {
|
|
22
|
+
const cached = worldStateCache.get(dataDir);
|
|
23
|
+
if (cached) {
|
|
24
|
+
return cached;
|
|
25
|
+
}
|
|
26
|
+
const ws = await NativeWorldStateService.new(EthAddress.ZERO, dataDir, {
|
|
27
|
+
archiveTreeMapSizeKb: mapSizeKb,
|
|
28
|
+
nullifierTreeMapSizeKb: mapSizeKb,
|
|
29
|
+
noteHashTreeMapSizeKb: mapSizeKb,
|
|
30
|
+
messageTreeMapSizeKb: mapSizeKb,
|
|
31
|
+
publicDataTreeMapSizeKb: mapSizeKb
|
|
32
|
+
});
|
|
33
|
+
worldStateCache.set(dataDir, ws);
|
|
34
|
+
return ws;
|
|
35
|
+
}
|
|
36
|
+
async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContractClasses, rawContractInstances, rawPublicDataWrites, rawNoteHashes) {
|
|
37
|
+
const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
|
|
38
|
+
const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
|
|
39
|
+
await simulator.applyNoteHashes(rawNoteHashes);
|
|
40
|
+
// Register contract classes from C++ (must happen before public data writes to match C++ order)
|
|
41
|
+
for (const rawClass of rawContractClasses){
|
|
42
|
+
await simulator.addContractClassFromCpp(rawClass);
|
|
43
|
+
}
|
|
44
|
+
// Register contract instances from C++
|
|
45
|
+
for (const [rawAddress, rawInstance] of rawContractInstances){
|
|
46
|
+
await simulator.addContractInstanceFromCpp(rawAddress, rawInstance);
|
|
47
|
+
}
|
|
48
|
+
// Apply public data writes after contract registration (e.g., for bytecode upgrades)
|
|
49
|
+
// This must happen last to match C++ setup_fuzzer_state ordering
|
|
50
|
+
await simulator.applyPublicDataWrites(rawPublicDataWrites);
|
|
51
|
+
const result = await simulator.simulate(txHint);
|
|
52
|
+
const output = result.getAppLogicReturnValues().flatMap((rv)=>rv?.values?.filter((v)=>v != null) ?? []);
|
|
53
|
+
return {
|
|
54
|
+
reverted: !result.revertCode.isOK(),
|
|
55
|
+
output,
|
|
56
|
+
revertReason: result.findRevertReason()?.message,
|
|
57
|
+
publicInputs: result.publicInputs,
|
|
58
|
+
publicTxEffect: result.publicTxEffect
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async function execute(base64Line) {
|
|
62
|
+
try {
|
|
63
|
+
// Decode base64 and deserialize the entire request from msgpack
|
|
64
|
+
const buffer = Buffer.from(base64Line.trim(), 'base64');
|
|
65
|
+
const rawRequest = deserializeFromMessagePack(buffer);
|
|
66
|
+
const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
|
|
67
|
+
// Run the simulation on the C++ AVM simulator
|
|
68
|
+
const result = await simulateWithFuzzer(request.wsDataDir, request.wsMapSizeKb, request.tx, request.globals, request.contractClasses, request.contractInstances, request.publicDataWrites, request.noteHashes);
|
|
69
|
+
// Serialize the result to msgpack and encode it in base64 for output
|
|
70
|
+
const resultBuffer = serializeWithMessagePack({
|
|
71
|
+
reverted: result.reverted,
|
|
72
|
+
output: result.output,
|
|
73
|
+
revertReason: result.revertReason ?? '',
|
|
74
|
+
endTreeSnapshots: result.publicInputs.endTreeSnapshots,
|
|
75
|
+
publicTxEffect: result.publicTxEffect
|
|
76
|
+
});
|
|
77
|
+
const base64Response = resultBuffer.toString('base64') + '\n';
|
|
78
|
+
await writeOutput(base64Response);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
// If we error, treat as reverted
|
|
81
|
+
const errorResult = serializeWithMessagePack({
|
|
82
|
+
reverted: true,
|
|
83
|
+
output: [],
|
|
84
|
+
revertReason: `Unexpected Error ${error.message}`,
|
|
85
|
+
endTreeSnapshots: TreeSnapshots.empty(),
|
|
86
|
+
publicTxEffect: PublicTxEffect.empty()
|
|
87
|
+
});
|
|
88
|
+
await writeOutput(errorResult.toString('base64') + '\n');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function mainLoop() {
|
|
92
|
+
const rl = createInterface({
|
|
93
|
+
input: process.stdin,
|
|
94
|
+
terminal: false
|
|
95
|
+
});
|
|
96
|
+
// Process lines sequentially to avoid race conditions in responses
|
|
97
|
+
const lineQueue = [];
|
|
98
|
+
let processing = false;
|
|
99
|
+
async function processQueue() {
|
|
100
|
+
if (processing || lineQueue.length === 0) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
processing = true;
|
|
104
|
+
while(lineQueue.length > 0){
|
|
105
|
+
const line = lineQueue.shift();
|
|
106
|
+
await execute(line);
|
|
107
|
+
}
|
|
108
|
+
processing = false;
|
|
109
|
+
}
|
|
110
|
+
rl.on('line', (line)=>{
|
|
111
|
+
if (line.trim()) {
|
|
112
|
+
lineQueue.push(line);
|
|
113
|
+
void processQueue();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
rl.on('close', ()=>process.exit(0));
|
|
117
|
+
}
|
|
118
|
+
void mainLoop();
|
package/dest/public/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { PublicContractsDB } from './public_db_sources.js';
|
|
2
2
|
export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
|
|
3
3
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
4
|
-
export { PublicTxSimulator,
|
|
4
|
+
export { PublicTxSimulator, createPublicTxSimulatorForBlockBuilding, DumpingPublicTxSimulator, type PublicTxSimulatorInterface, TelemetryPublicTxSimulator, } from './public_tx_simulator/index.js';
|
|
5
|
+
export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
|
|
5
6
|
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
6
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pHLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUNBQXVDLEVBQ3ZDLHdCQUF3QixFQUN4QixLQUFLLDBCQUEwQixFQUMvQiwwQkFBMEIsR0FDM0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxZQUFZLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixJQUFJLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sWUFBWSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,uCAAuC,EACvC,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC"}
|
package/dest/public/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { PublicContractsDB } from './public_db_sources.js';
|
|
2
2
|
export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
|
|
3
3
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
4
|
-
export { PublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator/index.js';
|
|
4
|
+
export { PublicTxSimulator, createPublicTxSimulatorForBlockBuilding, DumpingPublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator/index.js';
|
|
5
5
|
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
2
3
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import { type ContractClassPublic, type ContractDataSource, type ContractDeploymentData, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
6
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
6
7
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
7
8
|
import { TreeSnapshots, type Tx } from '@aztec/stdlib/tx';
|
|
@@ -9,84 +10,46 @@ import type { UInt64 } from '@aztec/stdlib/types';
|
|
|
9
10
|
import type { PublicContractsDBInterface, PublicStateDBInterface } from './db_interfaces.js';
|
|
10
11
|
/**
|
|
11
12
|
* Implements the PublicContractsDBInterface using a ContractDataSource.
|
|
12
|
-
*
|
|
13
|
-
* Separates block-level contract information (from processed/included txs) from the
|
|
14
|
-
* current tx's contract information (which may be cleared on tx revert/death).
|
|
13
|
+
* Uses a stack-based checkpoint model for managing contract state.
|
|
15
14
|
*/
|
|
16
15
|
export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
17
16
|
private dataSource;
|
|
18
|
-
private
|
|
19
|
-
private currentTxRevertibleCache;
|
|
20
|
-
private blockCache;
|
|
21
|
-
private bytecodeCommitmentCache;
|
|
17
|
+
private contractStateStack;
|
|
22
18
|
private log;
|
|
23
|
-
constructor(dataSource: ContractDataSource);
|
|
19
|
+
constructor(dataSource: ContractDataSource, bindings?: LoggerBindings);
|
|
20
|
+
/** Parses raw log data from the C++/NAPI bridge and inserts the resulting contracts into the current checkpoint. */
|
|
21
|
+
addContractsFromLogs(contractDeploymentData: ContractDeploymentData): void;
|
|
22
|
+
addNewContracts(tx: Tx): void;
|
|
23
|
+
/** Inserts typed contract instances directly into the current checkpoint. */
|
|
24
|
+
addContracts(contractInstances?: ContractInstanceWithAddress[]): void;
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
26
|
+
* Creates a new checkpoint, copying the current state for upcoming modifications,
|
|
27
|
+
* and enabling rollbacks to current state in case of a revert.
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
+
createCheckpoint(): void;
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
-
* @param tx - The transaction to add non revertible contracts from.
|
|
31
|
+
* Commits the current checkpoint, accepting its state latest.
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
commitCheckpoint(): void;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* Commits the current checkpoint, not erroring if there is no checkpoint
|
|
36
|
+
* to commit. This is useful to do a sanity commit at the end of tx execution,
|
|
37
|
+
* doing nothing if the checkpoint was already reverted, but truly committing
|
|
38
|
+
* otherwise.
|
|
37
39
|
*/
|
|
38
|
-
|
|
40
|
+
commitCheckpointOkIfNone(): void;
|
|
39
41
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* @param tx - The transaction to add non-revertible contract classes from.
|
|
42
|
+
* Reverts the current checkpoint, discarding its state and rolling back
|
|
43
|
+
* to the state as of the latest checkpoint.
|
|
43
44
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* Add revertible contract classes from a transaction
|
|
47
|
-
* None for private-only txs.
|
|
48
|
-
* @param tx - The transaction to add revertible contract classes from.
|
|
49
|
-
*/
|
|
50
|
-
private addRevertibleContractClasses;
|
|
51
|
-
/**
|
|
52
|
-
* Add non-revertible contract instances from a transaction
|
|
53
|
-
* For private-only txs, this will be all contract instances (found in tx.data.forRollup)
|
|
54
|
-
* @param tx - The transaction to add non-revertible contract instances from.
|
|
55
|
-
*/
|
|
56
|
-
private addNonRevertibleContractInstances;
|
|
57
|
-
/**
|
|
58
|
-
* Add revertible contract instances from a transaction
|
|
59
|
-
* None for private-only txs.
|
|
60
|
-
* @param tx - The transaction to add revertible contract instances from.
|
|
61
|
-
*/
|
|
62
|
-
private addRevertibleContractInstances;
|
|
63
|
-
/**
|
|
64
|
-
* Given a tx's siloed contract class logs, add the contract classes to the cache
|
|
65
|
-
* @param siloedContractClassLogs - Contract class logs to process
|
|
66
|
-
* @param cache - The cache to store the contract classes in
|
|
67
|
-
* @param cacheType - Type of cache (for logging)
|
|
68
|
-
*/
|
|
69
|
-
private addContractClassesFromLogs;
|
|
70
|
-
/**
|
|
71
|
-
* Given a tx's contract instance logs, add the contract instances to the cache
|
|
72
|
-
* @param contractInstanceLogs - Contract instance logs to process
|
|
73
|
-
* @param cache - The cache to store the contract instances in
|
|
74
|
-
* @param cacheType - Type of cache (for logging)
|
|
75
|
-
*/
|
|
76
|
-
private addContractInstancesFromLogs;
|
|
77
|
-
/**
|
|
78
|
-
* Clear new contracts from the current tx's cache
|
|
79
|
-
*/
|
|
80
|
-
clearContractsForTx(): void;
|
|
81
|
-
/**
|
|
82
|
-
* Commits the current transaction's cached contracts to the block-level cache.
|
|
83
|
-
* Then, clears the tx cache.
|
|
84
|
-
*/
|
|
85
|
-
commitContractsForTx(onlyNonRevertibles?: boolean): void;
|
|
45
|
+
revertCheckpoint(): void;
|
|
46
|
+
private getCurrentState;
|
|
86
47
|
getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
87
48
|
getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined>;
|
|
88
49
|
getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
|
|
89
50
|
getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
51
|
+
private addContractClassesFromEvents;
|
|
52
|
+
private addContractInstancesFromEvents;
|
|
90
53
|
}
|
|
91
54
|
/**
|
|
92
55
|
* A high-level class that provides access to the merkle trees.
|
|
@@ -103,7 +66,7 @@ export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
103
66
|
export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
104
67
|
private readonly db;
|
|
105
68
|
private logger;
|
|
106
|
-
constructor(db: MerkleTreeWriteOperations);
|
|
69
|
+
constructor(db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
|
|
107
70
|
storageRead(contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
108
71
|
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
109
72
|
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr>;
|
|
@@ -117,4 +80,4 @@ export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
|
117
80
|
revertCheckpoint(): Promise<void>;
|
|
118
81
|
getTreeSnapshots(): Promise<TreeSnapshots>;
|
|
119
82
|
}
|
|
120
|
-
//# sourceMappingURL=
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2RiX3NvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxLQUFLLG1CQUFtQixFQUN4QixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHNCQUFzQixFQUMzQixLQUFLLDJCQUEyQixFQUVqQyxNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUNMLFlBQVksRUFLYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtsRCxPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzdGOzs7R0FHRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLDBCQUEwQjtJQU1oRSxPQUFPLENBQUMsVUFBVTtJQUxwQixPQUFPLENBQUMsa0JBQWtCLENBQTBEO0lBRXBGLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxVQUFVLEVBQUUsa0JBQWtCLEVBQ3RDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFRCxvSEFBb0g7SUFDN0csb0JBQW9CLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAIvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAEjC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EACL,YAAY,EAKb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG7F;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,0BAA0B;IAMhE,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,kBAAkB,CAA0D;IAEpF,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,UAAU,EAAE,kBAAkB,EACtC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,oHAAoH;IAC7G,oBAAoB,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAYhF;IAEM,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAInC;IAED,6EAA6E;IACtE,YAAY,CAAC,iBAAiB,CAAC,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAK3E;IAED;;;OAGG;IACI,gBAAgB,IAAI,IAAI,CAI9B;IAED;;OAEG;IACI,gBAAgB,IAAI,IAAI,CAM9B;IAED;;;;;OAKG;IACI,wBAAwB,IAAI,IAAI,CAMtC;IAED;;;OAGG;IACI,gBAAgB,IAAI,IAAI,CAK9B;IAED,OAAO,CAAC,eAAe;IAaV,mBAAmB,CAC9B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAGlD;IAEY,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAG3F;IAEY,qBAAqB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAqB/E;IAEY,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEhH;IAED,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,8BAA8B;CAWvC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,sBAAsB;IAIxD,OAAO,CAAC,QAAQ,CAAC,EAAE;IAHrB,OAAO,CAAC,MAAM,CAAS;IAEvB,YACmB,EAAE,EAAE,yBAAyB,EAC9C,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEY,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAyBtE;IAEY,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvF;IAEY,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAgB9D;IAEY,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAgBvD;IAEY,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAStD;IAEY,oBAAoB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBjE;IAEY,cAAc,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;IAEY,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChF;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQtD;CACF"}
|