@aztec/simulator 0.0.1-commit.3100065 → 0.0.1-commit.321f6a9
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/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/{fixtures → testing}/base_avm_simulation_tester.d.ts +1 -1
- package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
- 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 +0 -33
- 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/fixtures/index.d.ts +2 -4
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +1 -3
- 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 +11 -7
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +29 -41
- package/dest/public/fixtures/simple_contract_data_source.js +1 -1
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
- package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
- 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 +2 -2
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -3
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +3 -0
- package/dest/public/public_processor/public_processor.d.ts +8 -4
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +19 -34
- 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_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
- package/dest/public/public_tx_simulator/factories.d.ts +8 -8
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/factories.js +8 -8
- package/dest/public/public_tx_simulator/index.d.ts +4 -6
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +2 -4
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -75
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -323
- 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 +5 -5
- package/dest/public/test_executor_metrics.d.ts +1 -6
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +0 -22
- package/package.json +22 -19
- package/src/public/avm/{fixtures → testing}/utils.ts +0 -39
- 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/fixtures/index.ts +1 -3
- package/src/public/fixtures/public_processor_test_env.ts +88 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +37 -50
- package/src/public/fixtures/simple_contract_data_source.ts +1 -1
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +25 -10
- package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
- package/src/public/index.ts +7 -3
- package/src/public/public_db_sources.ts +1 -1
- package/src/public/public_processor/guarded_merkle_tree.ts +5 -2
- package/src/public/public_processor/public_processor.ts +25 -39
- package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +15 -31
- package/src/public/public_tx_simulator/factories.ts +27 -10
- package/src/public/public_tx_simulator/index.ts +6 -5
- package/src/public/public_tx_simulator/public_tx_simulator.ts +139 -480
- package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
- package/src/public/test_executor_metrics.ts +0 -24
- 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 -24
- 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 -98
- package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/public/avm/avm_machine_state.js +0 -110
- 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 -354
- package/dest/public/avm/avm_simulator.d.ts +0 -41
- package/dest/public/avm/avm_simulator.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator.js +0 -192
- 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/calldata.d.ts +0 -51
- package/dest/public/avm/calldata.d.ts.map +0 -1
- package/dest/public/avm/calldata.js +0 -64
- 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/account_proof_fetcher.d.ts +0 -2
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +0 -1
- 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 -84
- 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 -45
- 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 -74
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/public/avm/opcodes/accrued_substate.js +0 -254
- 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 -49
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/public/avm/opcodes/arithmetic.js +0 -97
- 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 -21
- package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/public/avm/opcodes/contract.js +0 -69
- 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 -17
- package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/public/avm/opcodes/ec_add.js +0 -79
- 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 -210
- 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 -119
- 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 -25
- package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/public/avm/opcodes/storage.js +0 -78
- 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 -37
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -19
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +0 -263
- package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
- package/dest/public/fixtures/minimal_public_tx.js +0 -19
- package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
- package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
- package/dest/public/fixtures/opcode_spammer.js +0 -1645
- package/dest/public/hinting_db_sources.d.ts +0 -80
- package/dest/public/hinting_db_sources.d.ts.map +0 -1
- package/dest/public/hinting_db_sources.js +0 -356
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -19
- 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 -99
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
- 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 -131
- 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 -171
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
- 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 -135
- 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 -298
- 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 -415
- 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 -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 -170
- package/dest/public/state_manager/state_manager.d.ts.map +0 -1
- package/dest/public/state_manager/state_manager.js +0 -402
- package/src/public/avm/avm_context.ts +0 -61
- package/src/public/avm/avm_contract_call_result.ts +0 -69
- package/src/public/avm/avm_execution_environment.ts +0 -51
- package/src/public/avm/avm_gas.ts +0 -183
- package/src/public/avm/avm_machine_state.ts +0 -170
- package/src/public/avm/avm_memory_types.ts +0 -440
- package/src/public/avm/avm_simulator.ts +0 -279
- package/src/public/avm/avm_simulator_interface.ts +0 -8
- package/src/public/avm/calldata.ts +0 -101
- package/src/public/avm/errors.ts +0 -177
- package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
- package/src/public/avm/fixtures/initializers.ts +0 -103
- package/src/public/avm/index.ts +0 -1
- package/src/public/avm/opcodes/accrued_substate.ts +0 -285
- package/src/public/avm/opcodes/addressing_mode.ts +0 -111
- package/src/public/avm/opcodes/arithmetic.ts +0 -129
- 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 -76
- 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 -86
- package/src/public/avm/opcodes/environment_getters.ts +0 -87
- package/src/public/avm/opcodes/external_calls.ts +0 -262
- package/src/public/avm/opcodes/hashing.ts +0 -151
- 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 -95
- 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 -52
- package/src/public/fixtures/custom_bytecode_tests.ts +0 -435
- package/src/public/fixtures/minimal_public_tx.ts +0 -26
- package/src/public/fixtures/opcode_spammer.ts +0 -1713
- package/src/public/hinting_db_sources.ts +0 -610
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -125
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -210
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
- package/src/public/public_tx_simulator/public_tx_context.ts +0 -482
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
- package/src/public/side_effect_trace.ts +0 -293
- 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 -569
- /package/dest/public/avm/{fixtures → testing}/account_proof_fetcher.js +0 -0
- /package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +0 -0
- /package/src/public/avm/{fixtures → testing}/account_proof.json +0 -0
- /package/src/public/avm/{fixtures → testing}/account_proof_fetcher.ts +0 -0
- /package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +0 -0
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MAX_NOTE_HASHES_PER_TX,
|
|
3
|
-
MAX_NULLIFIERS_PER_TX,
|
|
4
|
-
MAX_TX_BLOB_DATA_SIZE_IN_FIELDS,
|
|
5
|
-
NULLIFIER_SUBTREE_HEIGHT,
|
|
6
|
-
} from '@aztec/constants';
|
|
1
|
+
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT } from '@aztec/constants';
|
|
7
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
8
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
9
4
|
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
@@ -55,11 +50,12 @@ import { ForkCheckpoint } from '@aztec/world-state/native';
|
|
|
55
50
|
|
|
56
51
|
import { AssertionError } from 'assert';
|
|
57
52
|
|
|
53
|
+
import type { AvmSimulator } from '../avm_simulator.js';
|
|
58
54
|
import { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
|
|
59
55
|
import {
|
|
60
56
|
type PublicTxSimulatorConfig,
|
|
61
57
|
type PublicTxSimulatorInterface,
|
|
62
|
-
|
|
58
|
+
TelemetryPublicTxSimulator,
|
|
63
59
|
} from '../public_tx_simulator/index.js';
|
|
64
60
|
import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
|
|
65
61
|
import { PublicProcessorMetrics } from './public_processor_metrics.js';
|
|
@@ -71,6 +67,7 @@ export class PublicProcessorFactory {
|
|
|
71
67
|
private log: Logger;
|
|
72
68
|
constructor(
|
|
73
69
|
private contractDataSource: ContractDataSource,
|
|
70
|
+
private avmSimulator: AvmSimulator,
|
|
74
71
|
private dateProvider: DateProvider = new DateProvider(),
|
|
75
72
|
protected telemetryClient: TelemetryClient = getTelemetryClient(),
|
|
76
73
|
bindings?: LoggerBindings,
|
|
@@ -79,7 +76,9 @@ export class PublicProcessorFactory {
|
|
|
79
76
|
}
|
|
80
77
|
|
|
81
78
|
/**
|
|
82
|
-
* Creates a new instance of a PublicProcessor.
|
|
79
|
+
* Creates a new instance of a PublicProcessor. The simulator it drives reads contract data from the fork's
|
|
80
|
+
* contracts DB, scoped by the fork id so AVM requests route to the right state.
|
|
81
|
+
*
|
|
83
82
|
* @param globalVariables - The global variables for the block being processed.
|
|
84
83
|
* @param contractsDB - Optional pre-populated contracts DB; a fresh one is constructed if omitted.
|
|
85
84
|
* @returns A new instance of a PublicProcessor.
|
|
@@ -90,8 +89,10 @@ export class PublicProcessorFactory {
|
|
|
90
89
|
config: PublicSimulatorConfig,
|
|
91
90
|
contractsDB: PublicContractsDB = new PublicContractsDB(this.contractDataSource, this.log.getBindings()),
|
|
92
91
|
): PublicProcessor {
|
|
92
|
+
const forkId = merkleTree.getRevision().forkId;
|
|
93
|
+
|
|
93
94
|
const guardedFork = new GuardedMerkleTreeOperations(merkleTree);
|
|
94
|
-
const publicTxSimulator = this.createPublicTxSimulator(
|
|
95
|
+
const publicTxSimulator = this.createPublicTxSimulator(forkId, globalVariables, contractsDB, config);
|
|
95
96
|
|
|
96
97
|
return new PublicProcessor(
|
|
97
98
|
globalVariables,
|
|
@@ -105,15 +106,16 @@ export class PublicProcessorFactory {
|
|
|
105
106
|
}
|
|
106
107
|
|
|
107
108
|
protected createPublicTxSimulator(
|
|
108
|
-
|
|
109
|
-
contractsDB: PublicContractsDB,
|
|
109
|
+
forkId: number,
|
|
110
110
|
globalVariables: GlobalVariables,
|
|
111
|
+
contractsDB: PublicContractsDB,
|
|
111
112
|
config?: Partial<PublicTxSimulatorConfig>,
|
|
112
113
|
): PublicTxSimulatorInterface {
|
|
113
|
-
return new
|
|
114
|
-
|
|
115
|
-
contractsDB,
|
|
114
|
+
return new TelemetryPublicTxSimulator(
|
|
115
|
+
this.avmSimulator,
|
|
116
116
|
globalVariables,
|
|
117
|
+
contractsDB,
|
|
118
|
+
forkId,
|
|
117
119
|
this.telemetryClient,
|
|
118
120
|
config,
|
|
119
121
|
this.log.getBindings(),
|
|
@@ -135,10 +137,6 @@ class PublicProcessorAbortError extends Error {
|
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
|
|
138
|
-
function isPublicProcessorInterruptError(err: any) {
|
|
139
|
-
return err?.name === 'PublicProcessorTimeoutError' || err?.name === 'PublicProcessorAbortError';
|
|
140
|
-
}
|
|
141
|
-
|
|
142
140
|
/**
|
|
143
141
|
* Converts Txs lifted from the P2P module into ProcessedTx objects by executing
|
|
144
142
|
* any public function calls in them. Txs with private calls only are unaffected.
|
|
@@ -272,22 +270,6 @@ export class PublicProcessor implements Traceable {
|
|
|
272
270
|
const txBlobFields = processedTx.txEffect.getNumBlobFields();
|
|
273
271
|
const txSize = txBlobFields * Fr.SIZE_IN_BYTES;
|
|
274
272
|
|
|
275
|
-
// A single tx's effects must fit within the per-tx blob encoding: the rollup circuit encodes each
|
|
276
|
-
// tx into a fixed [Field; MAX_TX_BLOB_DATA_SIZE_IN_FIELDS] array, so a larger tx effect cannot be
|
|
277
|
-
// proven. The per-category side-effect limits already guarantee this upstream, so reaching here means
|
|
278
|
-
// the tx is malformed; reject it as invalid rather than letting it poison proving.
|
|
279
|
-
if (txBlobFields > MAX_TX_BLOB_DATA_SIZE_IN_FIELDS) {
|
|
280
|
-
const error = new Error(
|
|
281
|
-
`Tx ${txHash} produced ${txBlobFields} blob fields, exceeding the per-tx maximum of ${MAX_TX_BLOB_DATA_SIZE_IN_FIELDS}`,
|
|
282
|
-
);
|
|
283
|
-
this.log.error(error.message, { txHash, txBlobFields });
|
|
284
|
-
await checkpoint.revert();
|
|
285
|
-
this.contractsDB.revertCheckpoint();
|
|
286
|
-
failed.push({ tx, error });
|
|
287
|
-
returns.push(new NestedProcessReturnValues([]));
|
|
288
|
-
continue;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
273
|
// If the actual blob fields of this tx would exceed the limit, skip it.
|
|
292
274
|
// Note: maxBlobFields already accounts for block end blob fields and previous blocks in checkpoint.
|
|
293
275
|
if (maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
|
|
@@ -347,11 +329,15 @@ export class PublicProcessor implements Traceable {
|
|
|
347
329
|
// Commit the tx-level contracts checkpoint on success
|
|
348
330
|
this.contractsDB.commitCheckpoint();
|
|
349
331
|
} catch (err: any) {
|
|
350
|
-
if (
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
//
|
|
332
|
+
if (err?.name === 'PublicProcessorTimeoutError' || err?.name === 'PublicProcessorAbortError') {
|
|
333
|
+
this.log.warn(
|
|
334
|
+
`Stopping tx processing due to ${err.name === 'PublicProcessorTimeoutError' ? 'timeout' : 'abort'}.`,
|
|
335
|
+
);
|
|
336
|
+
// We hit the transaction execution deadline or an external abort signal.
|
|
337
|
+
// There may still be a simulation in progress.
|
|
338
|
+
// Signal cancellation AND WAIT for the simulation to actually stop. Cancellation is
|
|
339
|
+
// cooperative: the simulator may be mid slow-operation and won't observe the flag until it
|
|
340
|
+
// completes, and without waiting we'd revert checkpoints while it's still writing to state.
|
|
355
341
|
await this.publicTxSimulator.cancel?.();
|
|
356
342
|
|
|
357
343
|
// Now stop the guarded fork to prevent any further TS-side access to the world state.
|
|
@@ -4,35 +4,36 @@ import {
|
|
|
4
4
|
AvmCircuitPublicInputs,
|
|
5
5
|
AvmExecutionHints,
|
|
6
6
|
type PublicSimulatorConfig,
|
|
7
|
-
PublicTxResult,
|
|
7
|
+
type PublicTxResult,
|
|
8
8
|
serializeWithMessagePack,
|
|
9
9
|
} from '@aztec/stdlib/avm';
|
|
10
|
-
import type {
|
|
11
|
-
import type { GlobalVariables, Tx, TxHash } from '@aztec/stdlib/tx';
|
|
10
|
+
import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
|
|
12
11
|
|
|
13
12
|
import { strict as assert } from 'assert';
|
|
14
13
|
import { mkdirSync, writeFileSync } from 'fs';
|
|
15
14
|
import { join } from 'path';
|
|
16
15
|
|
|
16
|
+
import type { AvmSimulator } from '../avm_simulator.js';
|
|
17
17
|
import type { PublicContractsDB } from '../public_db_sources.js';
|
|
18
|
-
import {
|
|
18
|
+
import { PublicTxSimulator } from './public_tx_simulator.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* A
|
|
22
|
-
* Used during nightly CI runs to collect circuit inputs for
|
|
21
|
+
* A {@link PublicTxSimulator} that dumps AVM circuit inputs to disk after simulation.
|
|
22
|
+
* Used during nightly CI runs to collect circuit inputs for AVM proving benchmarks.
|
|
23
23
|
*/
|
|
24
|
-
export class
|
|
24
|
+
export class DumpingPublicTxSimulator extends PublicTxSimulator {
|
|
25
25
|
private readonly outputDir: string;
|
|
26
26
|
|
|
27
27
|
constructor(
|
|
28
|
-
|
|
29
|
-
contractsDB: PublicContractsDB,
|
|
28
|
+
avmSimulator: AvmSimulator,
|
|
30
29
|
globalVariables: GlobalVariables,
|
|
30
|
+
contractsDB: PublicContractsDB,
|
|
31
|
+
forkId: number,
|
|
31
32
|
config: Partial<PublicSimulatorConfig>,
|
|
32
33
|
outputDir: string,
|
|
33
34
|
bindings?: LoggerBindings,
|
|
34
35
|
) {
|
|
35
|
-
super(
|
|
36
|
+
super(avmSimulator, globalVariables, contractsDB, forkId, config, bindings);
|
|
36
37
|
assert(config.collectHints === true, 'collectHints must be enabled to dump AVM circuit inputs');
|
|
37
38
|
assert(config.collectPublicInputs === true, 'collectPublicInputs must be enabled to dump AVM circuit inputs');
|
|
38
39
|
this.outputDir = outputDir;
|
|
@@ -40,44 +41,27 @@ export class DumpingCppPublicTxSimulator extends CppPublicTxSimulator {
|
|
|
40
41
|
|
|
41
42
|
public override async simulate(tx: Tx): Promise<PublicTxResult> {
|
|
42
43
|
const result = await super.simulate(tx);
|
|
43
|
-
|
|
44
|
-
// Dump the circuit inputs after successful simulation
|
|
45
|
-
const txHash = this.computeTxHash(tx);
|
|
46
|
-
this.dumpAvmCircuitInputs(result, txHash);
|
|
47
|
-
|
|
44
|
+
this.dumpAvmCircuitInputs(result, tx.getTxHash().toString());
|
|
48
45
|
return result;
|
|
49
46
|
}
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
* Dumps AVM circuit inputs to disk.
|
|
53
|
-
*
|
|
54
|
-
* @param result - The simulation result containing hints and public inputs
|
|
55
|
-
* @param txHash - The transaction hash to use in the filename
|
|
56
|
-
*/
|
|
57
|
-
private dumpAvmCircuitInputs(result: PublicTxResult, txHash: TxHash): void {
|
|
48
|
+
private dumpAvmCircuitInputs(result: PublicTxResult, txHash: string): void {
|
|
58
49
|
try {
|
|
59
|
-
// Ensure the output directory exists
|
|
60
50
|
mkdirSync(this.outputDir, { recursive: true });
|
|
61
51
|
|
|
62
|
-
|
|
63
|
-
const filename = `avm-circuit-inputs-tx-${txHash.toString()}.bin`;
|
|
52
|
+
const filename = `avm-circuit-inputs-tx-${txHash}.bin`;
|
|
64
53
|
const filepath = join(this.outputDir, filename);
|
|
65
54
|
|
|
66
|
-
// Create circuit inputs from the result
|
|
67
55
|
const hints = result.hints ?? AvmExecutionHints.empty();
|
|
68
56
|
const publicInputs = result.publicInputs ?? AvmCircuitPublicInputs.empty();
|
|
69
57
|
const avmCircuitInputs = new AvmCircuitInputs(hints, publicInputs);
|
|
70
58
|
|
|
71
|
-
// Serialize the circuit inputs using MessagePack
|
|
72
59
|
const serialized = serializeWithMessagePack(avmCircuitInputs);
|
|
73
|
-
|
|
74
|
-
// Write to disk
|
|
75
60
|
writeFileSync(filepath, serialized);
|
|
76
61
|
|
|
77
62
|
this.log.debug(`Dumped AVM circuit inputs to ${filepath}`);
|
|
78
63
|
} catch (error) {
|
|
79
|
-
|
|
80
|
-
this.log.warn(`Failed to dump AVM circuit inputs for tx ${txHash.toString()}: ${error}`);
|
|
64
|
+
this.log.warn(`Failed to dump AVM circuit inputs for tx ${txHash}: ${error}`);
|
|
81
65
|
}
|
|
82
66
|
}
|
|
83
67
|
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import type { LoggerBindings } from '@aztec/foundation/log';
|
|
2
2
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
3
|
-
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
4
3
|
import type { GlobalVariables } from '@aztec/stdlib/tx';
|
|
5
4
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
6
5
|
|
|
6
|
+
import type { AvmSimulator } from '../avm_simulator.js';
|
|
7
7
|
import type { PublicContractsDB } from '../public_db_sources.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { DumpingPublicTxSimulator } from './dumping_public_tx_simulator.js';
|
|
9
|
+
import { TelemetryPublicTxSimulator } from './public_tx_simulator.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Creates
|
|
13
|
-
* Uses
|
|
14
|
-
* otherwise uses
|
|
12
|
+
* Creates an IPC-based public tx simulator for block building.
|
|
13
|
+
* Uses DumpingPublicTxSimulator if DUMP_AVM_INPUTS_TO_DIR env var is set (for CI/testing the AVM circuit),
|
|
14
|
+
* otherwise uses TelemetryPublicTxSimulator (for production).
|
|
15
15
|
*/
|
|
16
16
|
export function createPublicTxSimulatorForBlockBuilding(
|
|
17
|
-
|
|
18
|
-
contractsDB: PublicContractsDB,
|
|
17
|
+
avmSimulator: AvmSimulator,
|
|
19
18
|
globalVariables: GlobalVariables,
|
|
19
|
+
contractsDB: PublicContractsDB,
|
|
20
|
+
forkId: number,
|
|
20
21
|
telemetryClient: TelemetryClient,
|
|
21
22
|
bindings?: LoggerBindings,
|
|
22
23
|
collectDebugLogs = false,
|
|
@@ -38,7 +39,23 @@ export function createPublicTxSimulatorForBlockBuilding(
|
|
|
38
39
|
collectHints: true,
|
|
39
40
|
collectPublicInputs: true,
|
|
40
41
|
};
|
|
41
|
-
return new
|
|
42
|
+
return new DumpingPublicTxSimulator(
|
|
43
|
+
avmSimulator,
|
|
44
|
+
globalVariables,
|
|
45
|
+
contractsDB,
|
|
46
|
+
forkId,
|
|
47
|
+
dumpingConfig,
|
|
48
|
+
dumpDir,
|
|
49
|
+
bindings,
|
|
50
|
+
);
|
|
42
51
|
}
|
|
43
|
-
return new
|
|
52
|
+
return new TelemetryPublicTxSimulator(
|
|
53
|
+
avmSimulator,
|
|
54
|
+
globalVariables,
|
|
55
|
+
contractsDB,
|
|
56
|
+
forkId,
|
|
57
|
+
telemetryClient,
|
|
58
|
+
config,
|
|
59
|
+
bindings,
|
|
60
|
+
);
|
|
44
61
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.js';
|
|
1
|
+
export { PublicTxSimulator, MeasuredPublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator.js';
|
|
2
|
+
export { DumpingPublicTxSimulator } from './dumping_public_tx_simulator.js';
|
|
4
3
|
export { createPublicTxSimulatorForBlockBuilding } from './factories.js';
|
|
5
|
-
export type {
|
|
6
|
-
|
|
4
|
+
export type {
|
|
5
|
+
PublicTxSimulatorInterface,
|
|
6
|
+
MeasuredPublicTxSimulatorInterface,
|
|
7
|
+
} from './public_tx_simulator_interface.js';
|
|
7
8
|
export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
|