@aztec/simulator 0.0.0-test.1 → 0.0.1-commit.5476d83
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 -0
- package/dest/client.d.ts +6 -4
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +4 -2
- package/dest/common/errors.d.ts +5 -14
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +51 -32
- package/dest/common/index.d.ts +1 -2
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +0 -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 +12 -6
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +10 -16
- package/dest/private/acvm/acvm_types.d.ts +2 -2
- package/dest/private/acvm/acvm_types.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.d.ts +18 -19
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +31 -23
- package/dest/private/acvm/index.d.ts +1 -2
- package/dest/private/acvm/index.d.ts.map +1 -1
- package/dest/private/acvm/index.js +0 -1
- package/dest/private/acvm/serialize.d.ts +20 -3
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +53 -0
- package/dest/private/acvm_native.d.ts +39 -0
- package/dest/private/acvm_native.d.ts.map +1 -0
- package/dest/private/{providers/acvm_native.js → acvm_native.js} +26 -20
- package/dest/private/acvm_wasm.d.ts +15 -0
- package/dest/private/acvm_wasm.d.ts.map +1 -0
- package/dest/private/{providers/acvm_wasm.js → acvm_wasm.js} +22 -19
- package/dest/private/acvm_wasm_with_blobs.d.ts +20 -0
- package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -0
- package/dest/private/acvm_wasm_with_blobs.js +35 -0
- package/dest/private/circuit_recording/circuit_recorder.d.ts +108 -0
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/circuit_recorder.js +209 -0
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +31 -0
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/file_circuit_recorder.js +135 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +5 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.js +9 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +21 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.js +44 -0
- package/dest/private/circuit_simulator.d.ts +35 -0
- package/dest/private/circuit_simulator.d.ts.map +1 -0
- package/dest/private/circuit_simulator.js +43 -0
- package/dest/private/factory.d.ts +12 -0
- package/dest/private/factory.d.ts.map +1 -0
- package/dest/private/{providers/factory.js → factory.js} +2 -2
- package/dest/public/avm/avm_context.d.ts +6 -6
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +5 -3
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +11 -7
- package/dest/public/avm/avm_execution_environment.d.ts +4 -2
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +4 -2
- package/dest/public/avm/avm_gas.d.ts +5 -21
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_gas.js +27 -35
- package/dest/public/avm/avm_machine_state.d.ts +3 -1
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.js +2 -0
- package/dest/public/avm/avm_memory_types.d.ts +99 -88
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +17 -6
- package/dest/public/avm/avm_simulator.d.ts +6 -6
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +23 -35
- package/dest/public/avm/avm_simulator_interface.d.ts +9 -0
- package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -0
- package/dest/public/avm/avm_simulator_interface.js +3 -0
- package/dest/public/avm/errors.d.ts +7 -31
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/errors.js +7 -57
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +6 -5
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +22 -15
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +7 -5
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +37 -14
- package/dest/public/avm/fixtures/initializers.d.ts +42 -0
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -0
- package/dest/public/avm/fixtures/initializers.js +44 -0
- package/dest/public/avm/fixtures/utils.d.ts +38 -0
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -0
- package/dest/public/avm/fixtures/utils.js +95 -0
- package/dest/public/avm/index.d.ts +1 -3
- package/dest/public/avm/index.d.ts.map +1 -1
- package/dest/public/avm/index.js +0 -2
- package/dest/public/avm/opcodes/accrued_substate.d.ts +3 -3
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +28 -25
- package/dest/public/avm/opcodes/addressing_mode.d.ts +12 -8
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/public/avm/opcodes/addressing_mode.js +46 -26
- package/dest/public/avm/opcodes/arithmetic.d.ts +17 -7
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +16 -2
- package/dest/public/avm/opcodes/bitwise.d.ts +10 -18
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +19 -26
- package/dest/public/avm/opcodes/comparators.d.ts +4 -4
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +3 -3
- package/dest/public/avm/opcodes/contract.d.ts +2 -3
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +9 -10
- package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +10 -8
- package/dest/public/avm/opcodes/conversion.d.ts +2 -1
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +267 -3
- package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +6 -6
- package/dest/public/avm/opcodes/environment_getters.d.ts +3 -3
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +17 -19
- package/dest/public/avm/opcodes/external_calls.d.ts +9 -8
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +39 -34
- package/dest/public/avm/opcodes/hashing.d.ts +2 -2
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +6 -6
- package/dest/public/avm/opcodes/index.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction.d.ts +15 -11
- package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction.js +23 -19
- package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.d.ts +6 -6
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +37 -33
- package/dest/public/avm/opcodes/misc.d.ts +3 -2
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +41 -16
- package/dest/public/avm/opcodes/storage.d.ts +3 -3
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +7 -5
- package/dest/public/avm/revert_reason.d.ts +18 -0
- package/dest/public/avm/revert_reason.d.ts.map +1 -0
- package/dest/public/avm/revert_reason.js +38 -0
- package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -3
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +3 -7
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +70 -69
- package/dest/public/avm/serialization/instruction_serialization.d.ts +14 -5
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.js +70 -35
- package/dest/public/avm/test_utils.d.ts +11 -14
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +16 -24
- 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 +68 -0
- package/dest/public/db_interfaces.d.ts.map +1 -0
- package/dest/public/db_interfaces.js +3 -0
- package/dest/public/debug_fn_name.d.ts +5 -0
- package/dest/public/debug_fn_name.d.ts.map +1 -0
- package/dest/public/debug_fn_name.js +9 -0
- package/dest/public/executor_metrics.d.ts +12 -4
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +37 -6
- package/dest/public/executor_metrics_interface.d.ts +10 -0
- package/dest/public/executor_metrics_interface.d.ts.map +1 -0
- package/dest/public/executor_metrics_interface.js +1 -0
- package/dest/public/fixtures/amm_test.d.ts +10 -0
- package/dest/public/fixtures/amm_test.d.ts.map +1 -0
- package/dest/public/fixtures/amm_test.js +213 -0
- package/dest/public/fixtures/bulk_test.d.ts +6 -0
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -0
- package/dest/public/fixtures/bulk_test.js +326 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +12 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tester.js +29 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +9 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tests.js +109 -0
- package/dest/public/fixtures/index.d.ts +8 -1
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +7 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts +9 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -0
- package/dest/public/fixtures/minimal_public_tx.js +29 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +35 -14
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +100 -71
- package/dest/public/fixtures/simple_contract_data_source.d.ts +35 -0
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -0
- package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.js +31 -10
- package/dest/public/fixtures/token_test.d.ts +8 -0
- package/dest/public/fixtures/token_test.d.ts.map +1 -0
- package/dest/public/fixtures/token_test.js +94 -0
- package/dest/public/fixtures/utils.d.ts +17 -4
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +100 -58
- package/dest/public/hinting_db_sources.d.ts +78 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -0
- package/dest/public/hinting_db_sources.js +350 -0
- package/dest/public/index.d.ts +6 -9
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +4 -7
- package/dest/public/public_db_sources.d.ts +51 -101
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +219 -192
- package/dest/public/public_errors.d.ts +12 -0
- package/dest/public/public_errors.d.ts.map +1 -0
- package/dest/public/public_errors.js +13 -0
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +49 -0
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -0
- package/dest/public/public_processor/guarded_merkle_tree.js +108 -0
- package/dest/public/public_processor/public_processor.d.ts +25 -37
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +154 -111
- package/dest/public/public_processor/public_processor_metrics.d.ts +3 -3
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +30 -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 +133 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +66 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +210 -0
- package/dest/public/public_tx_simulator/index.d.ts +5 -0
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/index.js +2 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +31 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +51 -0
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +23 -30
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +71 -91
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +36 -58
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +208 -206
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +9 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.js +1 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +21 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +39 -0
- package/dest/public/side_effect_errors.d.ts +42 -2
- package/dest/public/side_effect_errors.d.ts.map +1 -1
- package/dest/public/side_effect_errors.js +70 -1
- package/dest/public/side_effect_trace.d.ts +21 -67
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +71 -121
- package/dest/public/side_effect_trace_interface.d.ts +12 -24
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/index.d.ts +2 -0
- package/dest/public/state_manager/index.d.ts.map +1 -0
- package/dest/public/state_manager/index.js +1 -0
- package/dest/public/{avm/journal → state_manager}/nullifiers.d.ts +3 -6
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -0
- package/dest/public/{avm/journal → state_manager}/nullifiers.js +3 -8
- package/dest/public/{avm/journal → state_manager}/public_storage.d.ts +3 -3
- package/dest/public/state_manager/public_storage.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.d.ts +159 -0
- package/dest/public/state_manager/state_manager.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.js +392 -0
- package/dest/public/test_executor_metrics.d.ts +55 -0
- package/dest/public/test_executor_metrics.d.ts.map +1 -0
- package/dest/public/test_executor_metrics.js +307 -0
- 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 +3 -5
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +4 -21
- package/dest/server.d.ts +7 -4
- package/dest/server.d.ts.map +1 -1
- package/dest/server.js +5 -2
- package/dest/testing.d.ts +2 -0
- package/dest/testing.d.ts.map +1 -0
- package/dest/testing.js +1 -0
- package/package.json +39 -33
- package/src/client.ts +5 -3
- package/src/common/errors.ts +79 -44
- package/src/common/index.ts +0 -1
- package/src/private/acvm/acvm.ts +17 -32
- package/src/private/acvm/acvm_types.ts +1 -1
- package/src/private/acvm/deserialize.ts +35 -29
- package/src/private/acvm/index.ts +0 -1
- package/src/private/acvm/serialize.ts +63 -0
- package/src/private/{providers/acvm_native.ts → acvm_native.ts} +47 -24
- package/src/private/acvm_wasm.ts +72 -0
- package/src/private/acvm_wasm_with_blobs.ts +54 -0
- package/src/private/circuit_recording/circuit_recorder.ts +260 -0
- package/src/private/circuit_recording/file_circuit_recorder.ts +158 -0
- package/src/private/circuit_recording/memory_circuit_recorder.ts +11 -0
- package/src/private/circuit_recording/simulator_recorder_wrapper.ts +91 -0
- package/src/private/circuit_simulator.ts +90 -0
- package/src/private/{providers/factory.ts → factory.ts} +6 -6
- package/src/public/avm/avm_context.ts +4 -4
- package/src/public/avm/avm_contract_call_result.ts +17 -5
- package/src/public/avm/avm_execution_environment.ts +8 -1
- package/src/public/avm/avm_gas.ts +23 -35
- package/src/public/avm/avm_machine_state.ts +5 -0
- package/src/public/avm/avm_memory_types.ts +19 -6
- package/src/public/avm/avm_simulator.ts +43 -54
- package/src/public/avm/avm_simulator_interface.ts +8 -0
- package/src/public/avm/errors.ts +8 -77
- package/src/public/avm/fixtures/avm_simulation_tester.ts +32 -21
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +45 -12
- package/src/public/avm/fixtures/initializers.ts +102 -0
- package/src/public/avm/fixtures/utils.ts +150 -0
- package/src/public/avm/index.ts +0 -2
- package/src/public/avm/opcodes/accrued_substate.ts +64 -29
- package/src/public/avm/opcodes/addressing_mode.ts +56 -32
- package/src/public/avm/opcodes/arithmetic.ts +24 -2
- package/src/public/avm/opcodes/bitwise.ts +33 -29
- package/src/public/avm/opcodes/comparators.ts +6 -3
- package/src/public/avm/opcodes/contract.ts +10 -7
- package/src/public/avm/opcodes/control_flow.ts +19 -10
- package/src/public/avm/opcodes/conversion.ts +27 -3
- package/src/public/avm/opcodes/ec_add.ts +9 -6
- package/src/public/avm/opcodes/environment_getters.ts +27 -22
- package/src/public/avm/opcodes/external_calls.ts +61 -29
- package/src/public/avm/opcodes/hashing.ts +28 -8
- package/src/public/avm/opcodes/instruction.ts +31 -21
- package/src/public/avm/opcodes/memory.ts +71 -32
- package/src/public/avm/opcodes/misc.ts +60 -18
- package/src/public/avm/opcodes/storage.ts +22 -6
- package/src/public/avm/revert_reason.ts +55 -0
- package/src/public/avm/serialization/buffer_cursor.ts +4 -1
- package/src/public/avm/serialization/bytecode_serialization.ts +72 -74
- package/src/public/avm/serialization/instruction_serialization.ts +75 -34
- package/src/public/avm/test_utils.ts +24 -41
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +76 -0
- package/src/{common → public}/debug_fn_name.ts +7 -7
- package/src/public/executor_metrics.ts +56 -6
- package/src/public/executor_metrics_interface.ts +15 -0
- package/src/public/fixtures/amm_test.ts +331 -0
- package/src/public/fixtures/bulk_test.ts +169 -0
- package/src/public/fixtures/custom_bytecode_tester.ts +49 -0
- package/src/public/fixtures/custom_bytecode_tests.ts +135 -0
- package/src/public/fixtures/index.ts +7 -0
- package/src/public/fixtures/minimal_public_tx.ts +35 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +166 -113
- package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +36 -18
- package/src/public/fixtures/token_test.ts +139 -0
- package/src/public/fixtures/utils.ts +141 -68
- package/src/public/hinting_db_sources.ts +602 -0
- package/src/public/index.ts +5 -8
- package/src/public/public_db_sources.ts +278 -258
- package/src/public/public_errors.ts +14 -0
- package/src/public/public_processor/guarded_merkle_tree.ts +153 -0
- package/src/public/public_processor/public_processor.ts +212 -164
- package/src/public/public_processor/public_processor_metrics.ts +2 -2
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +162 -0
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +306 -0
- package/src/public/public_tx_simulator/index.ts +4 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +105 -0
- package/src/public/public_tx_simulator/public_tx_context.ts +167 -194
- package/src/public/public_tx_simulator/public_tx_simulator.ts +292 -265
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +10 -0
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +63 -0
- package/src/public/side_effect_errors.ts +91 -1
- package/src/public/side_effect_trace.ts +94 -320
- package/src/public/side_effect_trace_interface.ts +10 -58
- package/src/public/state_manager/index.ts +1 -0
- package/src/public/{avm/journal → state_manager}/nullifiers.ts +5 -11
- package/src/public/{avm/journal → state_manager}/public_storage.ts +2 -2
- package/src/public/state_manager/state_manager.ts +553 -0
- package/src/public/test_executor_metrics.ts +397 -0
- package/src/public/utils.ts +5 -21
- package/src/server.ts +6 -3
- package/src/testing.ts +1 -0
- package/dest/common/db_interfaces.d.ts +0 -80
- package/dest/common/db_interfaces.d.ts.map +0 -1
- package/dest/common/db_interfaces.js +0 -1
- package/dest/common/debug_fn_name.d.ts +0 -5
- package/dest/common/debug_fn_name.d.ts.map +0 -1
- package/dest/common/debug_fn_name.js +0 -6
- package/dest/common/message_load_oracle_inputs.d.ts +0 -15
- package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
- package/dest/common/message_load_oracle_inputs.js +0 -15
- package/dest/private/acvm/oracle/index.d.ts +0 -14
- package/dest/private/acvm/oracle/index.d.ts.map +0 -1
- package/dest/private/acvm/oracle/index.js +0 -2
- package/dest/private/acvm/oracle/oracle.d.ts +0 -49
- package/dest/private/acvm/oracle/oracle.d.ts.map +0 -1
- package/dest/private/acvm/oracle/oracle.js +0 -263
- package/dest/private/acvm/oracle/typed_oracle.d.ts +0 -83
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/private/acvm/oracle/typed_oracle.js +0 -132
- package/dest/private/execution_data_provider.d.ts +0 -261
- package/dest/private/execution_data_provider.d.ts.map +0 -1
- package/dest/private/execution_data_provider.js +0 -14
- package/dest/private/execution_note_cache.d.ts +0 -93
- package/dest/private/execution_note_cache.d.ts.map +0 -1
- package/dest/private/execution_note_cache.js +0 -180
- package/dest/private/hashed_values_cache.d.ts +0 -28
- package/dest/private/hashed_values_cache.d.ts.map +0 -1
- package/dest/private/hashed_values_cache.js +0 -46
- package/dest/private/index.d.ts +0 -13
- package/dest/private/index.d.ts.map +0 -1
- package/dest/private/index.js +0 -12
- package/dest/private/pick_notes.d.ts +0 -85
- package/dest/private/pick_notes.d.ts.map +0 -1
- package/dest/private/pick_notes.js +0 -51
- package/dest/private/private_execution.d.ts +0 -25
- package/dest/private/private_execution.d.ts.map +0 -1
- package/dest/private/private_execution.js +0 -92
- package/dest/private/private_execution_oracle.d.ts +0 -215
- package/dest/private/private_execution_oracle.d.ts.map +0 -1
- package/dest/private/private_execution_oracle.js +0 -382
- package/dest/private/providers/acvm_native.d.ts +0 -40
- package/dest/private/providers/acvm_native.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm.d.ts +0 -15
- package/dest/private/providers/acvm_wasm.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts +0 -19
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm_with_blobs.js +0 -32
- package/dest/private/providers/factory.d.ts +0 -12
- package/dest/private/providers/factory.d.ts.map +0 -1
- package/dest/private/providers/simulation_provider.d.ts +0 -19
- package/dest/private/providers/simulation_provider.d.ts.map +0 -1
- package/dest/private/providers/simulation_provider.js +0 -24
- package/dest/private/simulator.d.ts +0 -34
- package/dest/private/simulator.d.ts.map +0 -1
- package/dest/private/simulator.js +0 -76
- package/dest/private/unconstrained_execution.d.ts +0 -10
- package/dest/private/unconstrained_execution.d.ts.map +0 -1
- package/dest/private/unconstrained_execution.js +0 -27
- package/dest/private/unconstrained_execution_oracle.d.ts +0 -161
- package/dest/private/unconstrained_execution_oracle.d.ts.map +0 -1
- package/dest/private/unconstrained_execution_oracle.js +0 -258
- package/dest/public/avm/bytecode_utils.d.ts +0 -5
- package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/public/avm/bytecode_utils.js +0 -17
- package/dest/public/avm/fixtures/index.d.ts +0 -84
- package/dest/public/avm/fixtures/index.d.ts.map +0 -1
- package/dest/public/avm/fixtures/index.js +0 -175
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +0 -35
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
- package/dest/public/avm/journal/index.d.ts +0 -2
- package/dest/public/avm/journal/index.d.ts.map +0 -1
- package/dest/public/avm/journal/index.js +0 -1
- package/dest/public/avm/journal/journal.d.ts +0 -209
- package/dest/public/avm/journal/journal.d.ts.map +0 -1
- package/dest/public/avm/journal/journal.js +0 -486
- package/dest/public/avm/journal/nullifiers.d.ts.map +0 -1
- package/dest/public/avm/journal/public_storage.d.ts.map +0 -1
- package/dest/public/bytecode_errors.d.ts +0 -4
- package/dest/public/bytecode_errors.d.ts.map +0 -1
- package/dest/public/bytecode_errors.js +0 -6
- package/dest/public/execution.d.ts +0 -108
- package/dest/public/execution.d.ts.map +0 -1
- package/dest/public/execution.js +0 -9
- 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/dest/test/utils.d.ts +0 -13
- package/dest/test/utils.d.ts.map +0 -1
- package/dest/test/utils.js +0 -22
- package/src/common/db_interfaces.ts +0 -94
- package/src/common/message_load_oracle_inputs.ts +0 -15
- package/src/private/acvm/oracle/index.ts +0 -16
- package/src/private/acvm/oracle/oracle.ts +0 -455
- package/src/private/acvm/oracle/typed_oracle.ts +0 -259
- package/src/private/execution_data_provider.ts +0 -323
- package/src/private/execution_note_cache.ts +0 -217
- package/src/private/hashed_values_cache.ts +0 -55
- package/src/private/index.ts +0 -16
- package/src/private/pick_notes.ts +0 -141
- package/src/private/private_execution.ts +0 -151
- package/src/private/private_execution_oracle.ts +0 -614
- package/src/private/providers/acvm_wasm.ts +0 -63
- package/src/private/providers/acvm_wasm_with_blobs.ts +0 -50
- package/src/private/providers/simulation_provider.ts +0 -45
- package/src/private/simulator.ts +0 -147
- package/src/private/unconstrained_execution.ts +0 -50
- package/src/private/unconstrained_execution_oracle.ts +0 -373
- package/src/public/avm/bytecode_utils.ts +0 -17
- package/src/public/avm/fixtures/index.ts +0 -296
- package/src/public/avm/journal/index.ts +0 -1
- package/src/public/avm/journal/journal.ts +0 -742
- package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
- package/src/public/bytecode_errors.ts +0 -6
- package/src/public/execution.ts +0 -140
- package/src/public/tx_contract_cache.ts +0 -69
- package/src/test/utils.ts +0 -36
- /package/dest/public/{avm/journal → state_manager}/public_storage.js +0 -0
|
@@ -1,78 +1,44 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
MAX_ENQUEUED_CALLS_PER_TX,
|
|
2
|
+
FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH,
|
|
4
3
|
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
5
4
|
MAX_NOTE_HASHES_PER_TX,
|
|
6
5
|
MAX_NULLIFIERS_PER_TX,
|
|
7
6
|
MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS,
|
|
8
7
|
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
9
|
-
MAX_PUBLIC_LOGS_PER_TX,
|
|
10
|
-
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
11
|
-
NOTE_HASH_TREE_HEIGHT,
|
|
12
|
-
NULLIFIER_TREE_HEIGHT,
|
|
13
8
|
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
14
|
-
PUBLIC_DATA_TREE_HEIGHT,
|
|
15
|
-
PUBLIC_LOG_DATA_SIZE_IN_FIELDS,
|
|
16
9
|
} from '@aztec/constants';
|
|
17
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
18
10
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
19
11
|
import { Fr } from '@aztec/foundation/fields';
|
|
20
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
21
|
-
import {
|
|
22
|
-
AvmAccumulatedData,
|
|
23
|
-
AvmAppendTreeHint,
|
|
24
|
-
AvmCircuitPublicInputs,
|
|
25
|
-
AvmContractClassHint,
|
|
26
|
-
AvmContractInstanceHint,
|
|
27
|
-
AvmEnqueuedCallHint,
|
|
28
|
-
AvmExecutionHints,
|
|
29
|
-
AvmNullifierReadTreeHint,
|
|
30
|
-
AvmNullifierWriteTreeHint,
|
|
31
|
-
AvmPublicDataReadTreeHint,
|
|
32
|
-
AvmPublicDataWriteTreeHint,
|
|
33
|
-
PublicDataUpdateRequest,
|
|
34
|
-
PublicDataWrite,
|
|
35
|
-
} from '@aztec/stdlib/avm';
|
|
12
|
+
import { type LogLevel, createLogger } from '@aztec/foundation/log';
|
|
13
|
+
import { PublicDataUpdateRequest } from '@aztec/stdlib/avm';
|
|
36
14
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
37
|
-
import { type ContractClassWithCommitment, SerializableContractInstance } from '@aztec/stdlib/contract';
|
|
38
|
-
import type { Gas, GasSettings } from '@aztec/stdlib/gas';
|
|
39
15
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
40
|
-
import {
|
|
41
|
-
|
|
42
|
-
Nullifier,
|
|
43
|
-
PrivateToAvmAccumulatedData,
|
|
44
|
-
PrivateToAvmAccumulatedDataArrayLengths,
|
|
45
|
-
PublicCallRequest,
|
|
46
|
-
} from '@aztec/stdlib/kernel';
|
|
47
|
-
import { PublicLog } from '@aztec/stdlib/logs';
|
|
16
|
+
import { NoteHash, Nullifier } from '@aztec/stdlib/kernel';
|
|
17
|
+
import { DebugLog, PublicLog } from '@aztec/stdlib/logs';
|
|
48
18
|
import { L2ToL1Message, ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
49
|
-
import { NullifierLeafPreimage, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
|
|
50
|
-
import type { GlobalVariables, TreeSnapshots } from '@aztec/stdlib/tx';
|
|
51
19
|
|
|
52
20
|
import { strict as assert } from 'assert';
|
|
53
21
|
|
|
54
|
-
import {
|
|
22
|
+
import {
|
|
23
|
+
L2ToL1MessageLimitReachedError,
|
|
24
|
+
MaxCallsToUniqueContractClassIdsError,
|
|
25
|
+
NoteHashLimitReachedError,
|
|
26
|
+
NullifierLimitReachedError,
|
|
27
|
+
SideEffectLimitReachedError,
|
|
28
|
+
} from './side_effect_errors.js';
|
|
55
29
|
import type { PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
|
|
56
30
|
import { UniqueClassIds } from './unique_class_ids.js';
|
|
57
31
|
|
|
58
|
-
const emptyPublicDataPath = () => new Array(PUBLIC_DATA_TREE_HEIGHT).fill(Fr.zero());
|
|
59
|
-
const emptyNoteHashPath = () => new Array(NOTE_HASH_TREE_HEIGHT).fill(Fr.zero());
|
|
60
|
-
const emptyNullifierPath = () => new Array(NULLIFIER_TREE_HEIGHT).fill(Fr.zero());
|
|
61
|
-
const emptyL1ToL2MessagePath = () => new Array(L1_TO_L2_MSG_TREE_HEIGHT).fill(Fr.zero());
|
|
62
|
-
|
|
63
32
|
/**
|
|
64
33
|
* A struct containing just the side effects as regular arrays
|
|
65
34
|
* as opposed to "Tuple" arrays used by circuit public inputs.
|
|
66
35
|
* This struct is helpful for testing and checking array lengths.
|
|
67
36
|
**/
|
|
68
37
|
export type SideEffects = {
|
|
69
|
-
enqueuedCalls: PublicCallRequest[];
|
|
70
|
-
|
|
71
38
|
publicDataWrites: PublicDataUpdateRequest[];
|
|
72
39
|
noteHashes: NoteHash[];
|
|
73
40
|
nullifiers: Nullifier[];
|
|
74
41
|
l2ToL1Msgs: ScopedL2ToL1Message[];
|
|
75
|
-
|
|
76
42
|
publicLogs: PublicLog[];
|
|
77
43
|
};
|
|
78
44
|
|
|
@@ -83,7 +49,7 @@ export class SideEffectArrayLengths {
|
|
|
83
49
|
public readonly noteHashes: number,
|
|
84
50
|
public readonly nullifiers: number,
|
|
85
51
|
public readonly l2ToL1Msgs: number,
|
|
86
|
-
public readonly
|
|
52
|
+
public readonly publicLogFields: number,
|
|
87
53
|
) {}
|
|
88
54
|
|
|
89
55
|
static empty() {
|
|
@@ -100,8 +66,6 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
100
66
|
/** The side effect counter increments with every call to the trace. */
|
|
101
67
|
private sideEffectCounter: number;
|
|
102
68
|
|
|
103
|
-
private enqueuedCalls: PublicCallRequest[] = [];
|
|
104
|
-
|
|
105
69
|
private publicDataWrites: PublicDataUpdateRequest[] = [];
|
|
106
70
|
private protocolPublicDataWritesLength: number = 0;
|
|
107
71
|
private userPublicDataWritesLength: number = 0;
|
|
@@ -109,9 +73,6 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
109
73
|
private nullifiers: Nullifier[] = [];
|
|
110
74
|
private l2ToL1Messages: ScopedL2ToL1Message[] = [];
|
|
111
75
|
private publicLogs: PublicLog[] = [];
|
|
112
|
-
|
|
113
|
-
private avmCircuitHints: AvmExecutionHints;
|
|
114
|
-
|
|
115
76
|
/** Make sure a forked trace is never merged twice. */
|
|
116
77
|
private alreadyMergedIntoParent = false;
|
|
117
78
|
|
|
@@ -124,9 +85,11 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
124
85
|
private readonly previousSideEffectArrayLengths: SideEffectArrayLengths = SideEffectArrayLengths.empty(),
|
|
125
86
|
/** We need to track the set of class IDs used, to enforce limits. */
|
|
126
87
|
private uniqueClassIds: UniqueClassIds = new UniqueClassIds(),
|
|
88
|
+
private writtenPublicDataSlots: Set<string> = new Set(),
|
|
89
|
+
private debugLogs: DebugLog[] = [],
|
|
90
|
+
private debugLogMemoryReads: number = 0,
|
|
127
91
|
) {
|
|
128
92
|
this.sideEffectCounter = startSideEffectCounter;
|
|
129
|
-
this.avmCircuitHints = AvmExecutionHints.empty();
|
|
130
93
|
}
|
|
131
94
|
|
|
132
95
|
public fork() {
|
|
@@ -138,9 +101,13 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
138
101
|
this.previousSideEffectArrayLengths.noteHashes + this.noteHashes.length,
|
|
139
102
|
this.previousSideEffectArrayLengths.nullifiers + this.nullifiers.length,
|
|
140
103
|
this.previousSideEffectArrayLengths.l2ToL1Msgs + this.l2ToL1Messages.length,
|
|
141
|
-
this.previousSideEffectArrayLengths.
|
|
104
|
+
this.previousSideEffectArrayLengths.publicLogFields +
|
|
105
|
+
this.publicLogs.reduce((acc, log) => acc + log.sizeInFields(), 0),
|
|
142
106
|
),
|
|
143
107
|
this.uniqueClassIds.fork(),
|
|
108
|
+
new Set(this.writtenPublicDataSlots),
|
|
109
|
+
this.debugLogs.slice(),
|
|
110
|
+
this.debugLogMemoryReads,
|
|
144
111
|
);
|
|
145
112
|
}
|
|
146
113
|
|
|
@@ -153,7 +120,9 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
153
120
|
forkedTrace.alreadyMergedIntoParent = true;
|
|
154
121
|
|
|
155
122
|
this.sideEffectCounter = forkedTrace.sideEffectCounter;
|
|
156
|
-
this.
|
|
123
|
+
this.uniqueClassIds.acceptAndMerge(forkedTrace.uniqueClassIds);
|
|
124
|
+
this.debugLogs = forkedTrace.debugLogs;
|
|
125
|
+
this.debugLogMemoryReads = forkedTrace.debugLogMemoryReads;
|
|
157
126
|
|
|
158
127
|
if (!reverted) {
|
|
159
128
|
this.publicDataWrites.push(...forkedTrace.publicDataWrites);
|
|
@@ -161,22 +130,12 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
161
130
|
this.nullifiers.push(...forkedTrace.nullifiers);
|
|
162
131
|
this.l2ToL1Messages.push(...forkedTrace.l2ToL1Messages);
|
|
163
132
|
this.publicLogs.push(...forkedTrace.publicLogs);
|
|
133
|
+
this.userPublicDataWritesLength += forkedTrace.userPublicDataWritesLength;
|
|
134
|
+
this.protocolPublicDataWritesLength += forkedTrace.protocolPublicDataWritesLength;
|
|
135
|
+
for (const slot of forkedTrace.writtenPublicDataSlots) {
|
|
136
|
+
this.writtenPublicDataSlots.add(slot);
|
|
137
|
+
}
|
|
164
138
|
}
|
|
165
|
-
this.mergeHints(forkedTrace);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
private mergeHints(forkedTrace: this) {
|
|
169
|
-
this.uniqueClassIds.acceptAndMerge(forkedTrace.uniqueClassIds);
|
|
170
|
-
this.avmCircuitHints.enqueuedCalls.push(...forkedTrace.avmCircuitHints.enqueuedCalls);
|
|
171
|
-
this.avmCircuitHints.contractInstances.push(...forkedTrace.avmCircuitHints.contractInstances);
|
|
172
|
-
this.avmCircuitHints.contractClasses.push(...forkedTrace.avmCircuitHints.contractClasses);
|
|
173
|
-
this.avmCircuitHints.publicDataReads.push(...forkedTrace.avmCircuitHints.publicDataReads);
|
|
174
|
-
this.avmCircuitHints.publicDataWrites.push(...forkedTrace.avmCircuitHints.publicDataWrites);
|
|
175
|
-
this.avmCircuitHints.nullifierReads.push(...forkedTrace.avmCircuitHints.nullifierReads);
|
|
176
|
-
this.avmCircuitHints.nullifierWrites.push(...forkedTrace.avmCircuitHints.nullifierWrites);
|
|
177
|
-
this.avmCircuitHints.noteHashReads.push(...forkedTrace.avmCircuitHints.noteHashReads);
|
|
178
|
-
this.avmCircuitHints.noteHashWrites.push(...forkedTrace.avmCircuitHints.noteHashWrites);
|
|
179
|
-
this.avmCircuitHints.l1ToL2MessageReads.push(...forkedTrace.avmCircuitHints.l1ToL2MessageReads);
|
|
180
139
|
}
|
|
181
140
|
|
|
182
141
|
public getCounter() {
|
|
@@ -191,241 +150,136 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
191
150
|
return this.previousSideEffectArrayLengths.noteHashes + this.noteHashes.length;
|
|
192
151
|
}
|
|
193
152
|
|
|
194
|
-
public tracePublicStorageRead(
|
|
195
|
-
contractAddress: AztecAddress,
|
|
196
|
-
slot: Fr,
|
|
197
|
-
value: Fr,
|
|
198
|
-
leafPreimage: PublicDataTreeLeafPreimage = PublicDataTreeLeafPreimage.empty(),
|
|
199
|
-
leafIndex: Fr = Fr.zero(),
|
|
200
|
-
path: Fr[] = emptyPublicDataPath(),
|
|
201
|
-
) {
|
|
202
|
-
this.avmCircuitHints.publicDataReads.push(new AvmPublicDataReadTreeHint(leafPreimage, leafIndex, path));
|
|
203
|
-
this.log.trace(
|
|
204
|
-
`Tracing storage read (address=${contractAddress}, slot=${slot}): value=${value} (counter=${this.sideEffectCounter})`,
|
|
205
|
-
);
|
|
206
|
-
this.incrementSideEffectCounter();
|
|
207
|
-
}
|
|
208
|
-
|
|
209
153
|
public async tracePublicStorageWrite(
|
|
210
154
|
contractAddress: AztecAddress,
|
|
211
155
|
slot: Fr,
|
|
212
156
|
value: Fr,
|
|
213
157
|
protocolWrite: boolean,
|
|
214
|
-
lowLeafPreimage: PublicDataTreeLeafPreimage = PublicDataTreeLeafPreimage.empty(),
|
|
215
|
-
lowLeafIndex: Fr = Fr.zero(),
|
|
216
|
-
lowLeafPath: Fr[] = emptyPublicDataPath(),
|
|
217
|
-
newLeafPreimage: PublicDataTreeLeafPreimage = PublicDataTreeLeafPreimage.empty(),
|
|
218
|
-
insertionPath: Fr[] = emptyPublicDataPath(),
|
|
219
158
|
): Promise<void> {
|
|
220
|
-
if
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
159
|
+
// Only increment counts if the storage slot has not been written to before.
|
|
160
|
+
if (this.isStorageCold(contractAddress, slot)) {
|
|
161
|
+
if (protocolWrite) {
|
|
162
|
+
if (
|
|
163
|
+
this.protocolPublicDataWritesLength + this.previousSideEffectArrayLengths.protocolPublicDataWrites >=
|
|
164
|
+
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
165
|
+
) {
|
|
166
|
+
throw new SideEffectLimitReachedError(
|
|
167
|
+
'protocol public data (contract storage) write',
|
|
168
|
+
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
this.protocolPublicDataWritesLength++;
|
|
172
|
+
} else {
|
|
173
|
+
if (
|
|
174
|
+
this.userPublicDataWritesLength + this.previousSideEffectArrayLengths.publicDataWrites >=
|
|
175
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
176
|
+
) {
|
|
177
|
+
throw new SideEffectLimitReachedError(
|
|
178
|
+
'public data (contract storage) write',
|
|
179
|
+
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
this.userPublicDataWritesLength++;
|
|
229
183
|
}
|
|
230
|
-
this.protocolPublicDataWritesLength++;
|
|
231
|
-
} else {
|
|
232
|
-
if (
|
|
233
|
-
this.userPublicDataWritesLength + this.previousSideEffectArrayLengths.publicDataWrites >=
|
|
234
|
-
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
235
|
-
) {
|
|
236
|
-
throw new SideEffectLimitReachedError(
|
|
237
|
-
'public data (contract storage) write',
|
|
238
|
-
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
239
|
-
);
|
|
240
|
-
}
|
|
241
|
-
this.userPublicDataWritesLength++;
|
|
242
184
|
}
|
|
243
185
|
|
|
244
186
|
const leafSlot = await computePublicDataTreeLeafSlot(contractAddress, slot);
|
|
245
187
|
this.publicDataWrites.push(new PublicDataUpdateRequest(leafSlot, value, this.sideEffectCounter));
|
|
246
188
|
|
|
247
|
-
// New hinting
|
|
248
|
-
const readHint = new AvmPublicDataReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
|
|
249
|
-
this.avmCircuitHints.publicDataWrites.push(
|
|
250
|
-
new AvmPublicDataWriteTreeHint(readHint, newLeafPreimage, insertionPath),
|
|
251
|
-
);
|
|
252
|
-
|
|
253
189
|
this.log.trace(
|
|
254
190
|
`Traced public data write (address=${contractAddress}, slot=${slot}): value=${value} (counter=${this.sideEffectCounter}, isProtocol:${protocolWrite})`,
|
|
255
191
|
);
|
|
256
192
|
this.incrementSideEffectCounter();
|
|
193
|
+
this.writtenPublicDataSlots.add(this.computePublicDataSlotKey(contractAddress, slot));
|
|
257
194
|
}
|
|
258
195
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
_contractAddress: AztecAddress,
|
|
262
|
-
noteHash: Fr,
|
|
263
|
-
leafIndex: Fr,
|
|
264
|
-
_exists: boolean,
|
|
265
|
-
path: Fr[] = emptyNoteHashPath(),
|
|
266
|
-
) {
|
|
267
|
-
// New Hinting
|
|
268
|
-
this.avmCircuitHints.noteHashReads.push(new AvmAppendTreeHint(leafIndex, noteHash, path));
|
|
269
|
-
// NOTE: counter does not increment for note hash checks (because it doesn't rely on pending note hashes)
|
|
270
|
-
this.log.trace(`Tracing note hash check (counter=${this.sideEffectCounter})`);
|
|
196
|
+
private computePublicDataSlotKey(contractAddress: AztecAddress, slot: Fr): string {
|
|
197
|
+
return `${contractAddress.toString()}:${slot.toString()}`;
|
|
271
198
|
}
|
|
272
199
|
|
|
273
|
-
public
|
|
200
|
+
public isStorageCold(contractAddress: AztecAddress, slot: Fr): boolean {
|
|
201
|
+
return !this.writtenPublicDataSlots.has(this.computePublicDataSlotKey(contractAddress, slot));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
public traceNewNoteHash(noteHash: Fr) {
|
|
274
205
|
if (this.noteHashes.length + this.previousSideEffectArrayLengths.noteHashes >= MAX_NOTE_HASHES_PER_TX) {
|
|
275
|
-
throw new
|
|
206
|
+
throw new NoteHashLimitReachedError();
|
|
276
207
|
}
|
|
277
208
|
|
|
278
209
|
this.noteHashes.push(new NoteHash(noteHash, this.sideEffectCounter));
|
|
279
|
-
this.avmCircuitHints.noteHashWrites.push(new AvmAppendTreeHint(leafIndex, noteHash, path));
|
|
280
210
|
this.log.trace(`Tracing new note hash (counter=${this.sideEffectCounter})`);
|
|
281
211
|
this.incrementSideEffectCounter();
|
|
282
212
|
}
|
|
283
213
|
|
|
284
|
-
public
|
|
285
|
-
_siloedNullifier: Fr,
|
|
286
|
-
_exists: boolean,
|
|
287
|
-
lowLeafPreimage: NullifierLeafPreimage = NullifierLeafPreimage.empty(),
|
|
288
|
-
lowLeafIndex: Fr = Fr.zero(),
|
|
289
|
-
lowLeafPath: Fr[] = emptyNullifierPath(),
|
|
290
|
-
) {
|
|
291
|
-
this.avmCircuitHints.nullifierReads.push(new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath));
|
|
292
|
-
this.log.trace(`Tracing nullifier check (counter=${this.sideEffectCounter})`);
|
|
293
|
-
this.incrementSideEffectCounter();
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
public traceNewNullifier(
|
|
297
|
-
siloedNullifier: Fr,
|
|
298
|
-
lowLeafPreimage: NullifierLeafPreimage = NullifierLeafPreimage.empty(),
|
|
299
|
-
lowLeafIndex: Fr = Fr.zero(),
|
|
300
|
-
lowLeafPath: Fr[] = emptyNullifierPath(),
|
|
301
|
-
insertionPath: Fr[] = emptyNullifierPath(),
|
|
302
|
-
) {
|
|
214
|
+
public traceNewNullifier(siloedNullifier: Fr) {
|
|
303
215
|
if (this.nullifiers.length + this.previousSideEffectArrayLengths.nullifiers >= MAX_NULLIFIERS_PER_TX) {
|
|
304
|
-
throw new
|
|
216
|
+
throw new NullifierLimitReachedError();
|
|
305
217
|
}
|
|
306
218
|
|
|
307
|
-
this.nullifiers.push(new Nullifier(siloedNullifier,
|
|
219
|
+
this.nullifiers.push(new Nullifier(siloedNullifier, /*noteHash=*/ Fr.ZERO, this.sideEffectCounter));
|
|
308
220
|
|
|
309
|
-
const lowLeafReadHint = new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafPath);
|
|
310
|
-
this.avmCircuitHints.nullifierWrites.push(new AvmNullifierWriteTreeHint(lowLeafReadHint, insertionPath));
|
|
311
221
|
this.log.trace(`Tracing new nullifier (counter=${this.sideEffectCounter})`);
|
|
312
222
|
this.incrementSideEffectCounter();
|
|
313
223
|
}
|
|
314
224
|
|
|
315
|
-
// TODO(8287): _exists can be removed once we have the vm properly handling the equality check
|
|
316
|
-
public traceL1ToL2MessageCheck(
|
|
317
|
-
_contractAddress: AztecAddress,
|
|
318
|
-
msgHash: Fr,
|
|
319
|
-
msgLeafIndex: Fr,
|
|
320
|
-
_exists: boolean,
|
|
321
|
-
path: Fr[] = emptyL1ToL2MessagePath(),
|
|
322
|
-
) {
|
|
323
|
-
this.avmCircuitHints.l1ToL2MessageReads.push(new AvmAppendTreeHint(msgLeafIndex, msgHash, path));
|
|
324
|
-
this.log.trace(`Tracing l1 to l2 message check (counter=${this.sideEffectCounter})`);
|
|
325
|
-
}
|
|
326
|
-
|
|
327
225
|
public traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr) {
|
|
328
226
|
if (this.l2ToL1Messages.length + this.previousSideEffectArrayLengths.l2ToL1Msgs >= MAX_L2_TO_L1_MSGS_PER_TX) {
|
|
329
|
-
throw new
|
|
227
|
+
throw new L2ToL1MessageLimitReachedError();
|
|
330
228
|
}
|
|
331
229
|
|
|
332
230
|
const recipientAddress = EthAddress.fromField(recipient);
|
|
333
|
-
this.l2ToL1Messages.push(
|
|
334
|
-
new L2ToL1Message(recipientAddress, content, this.sideEffectCounter).scope(contractAddress),
|
|
335
|
-
);
|
|
231
|
+
this.l2ToL1Messages.push(new L2ToL1Message(recipientAddress, content).scope(contractAddress));
|
|
336
232
|
this.log.trace(`Tracing new l2 to l1 message (counter=${this.sideEffectCounter})`);
|
|
337
233
|
this.incrementSideEffectCounter();
|
|
338
234
|
}
|
|
339
235
|
|
|
340
236
|
public tracePublicLog(contractAddress: AztecAddress, log: Fr[]) {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
237
|
+
const previouslyEmittedPublicLogFieldsCount =
|
|
238
|
+
this.previousSideEffectArrayLengths.publicLogFields +
|
|
239
|
+
this.publicLogs.reduce((acc, log) => acc + log.sizeInFields(), 0);
|
|
344
240
|
|
|
345
|
-
|
|
346
|
-
|
|
241
|
+
const publicLog = new PublicLog(contractAddress, log);
|
|
242
|
+
|
|
243
|
+
if (previouslyEmittedPublicLogFieldsCount + publicLog.sizeInFields() > FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH) {
|
|
244
|
+
throw new SideEffectLimitReachedError('public log fields', FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH);
|
|
347
245
|
}
|
|
348
|
-
|
|
246
|
+
|
|
349
247
|
this.publicLogs.push(publicLog);
|
|
350
248
|
this.log.trace(`Tracing new public log (counter=${this.sideEffectCounter})`);
|
|
351
249
|
this.incrementSideEffectCounter();
|
|
352
250
|
}
|
|
353
251
|
|
|
354
|
-
public
|
|
355
|
-
contractAddress
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
exists,
|
|
365
|
-
instance.salt,
|
|
366
|
-
instance.deployer,
|
|
367
|
-
instance.currentContractClassId,
|
|
368
|
-
instance.originalContractClassId,
|
|
369
|
-
instance.initializationHash,
|
|
370
|
-
instance.publicKeys,
|
|
371
|
-
updateMembershipHint,
|
|
372
|
-
updatePreimage,
|
|
373
|
-
),
|
|
374
|
-
);
|
|
375
|
-
this.log.trace(`Tracing contract instance retrieval (counter=${this.sideEffectCounter})`);
|
|
376
|
-
this.incrementSideEffectCounter();
|
|
252
|
+
public traceDebugLog(contractAddress: AztecAddress, level: LogLevel, message: string, fields: Fr[]) {
|
|
253
|
+
this.debugLogs.push(new DebugLog(contractAddress, level, message, fields));
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
public getDebugLogs() {
|
|
257
|
+
return this.debugLogs;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
public getDebugLogMemoryReads() {
|
|
261
|
+
return this.debugLogMemoryReads;
|
|
377
262
|
}
|
|
378
263
|
|
|
379
|
-
public
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
264
|
+
public traceDebugLogMemoryReads(memoryReads: number) {
|
|
265
|
+
this.debugLogMemoryReads += memoryReads;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
public traceGetContractClass(contractClassId: Fr, exists: boolean) {
|
|
269
|
+
// We limit the number of unique contract class IDs due to hashing and the trace length limit.
|
|
270
|
+
if (exists && !this.uniqueClassIds.has(contractClassId.toString())) {
|
|
385
271
|
if (this.uniqueClassIds.size() >= MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS) {
|
|
386
272
|
this.log.debug(`Bytecode retrieval failure for contract class ID ${contractClassId} (limit reached)`);
|
|
387
|
-
throw new
|
|
388
|
-
'contract calls to unique class IDs',
|
|
389
|
-
MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS,
|
|
390
|
-
);
|
|
273
|
+
throw new MaxCallsToUniqueContractClassIdsError();
|
|
391
274
|
}
|
|
392
|
-
|
|
275
|
+
this.log.trace(`Adding contract class ID ${contractClassId} (counter=${this.sideEffectCounter})`);
|
|
393
276
|
this.uniqueClassIds.add(contractClassId.toString());
|
|
394
|
-
this.avmCircuitHints.contractClasses.push(
|
|
395
|
-
new AvmContractClassHint(
|
|
396
|
-
contractClassId,
|
|
397
|
-
exists,
|
|
398
|
-
contractClass!.artifactHash,
|
|
399
|
-
contractClass!.privateFunctionsRoot,
|
|
400
|
-
contractClass!.publicBytecodeCommitment,
|
|
401
|
-
contractClass!.packedBytecode,
|
|
402
|
-
),
|
|
403
|
-
);
|
|
404
|
-
|
|
405
277
|
this.incrementSideEffectCounter();
|
|
406
278
|
}
|
|
407
279
|
}
|
|
408
280
|
|
|
409
|
-
/**
|
|
410
|
-
* Trace an enqueued call.
|
|
411
|
-
* Accept some results from a finished call's trace into this one.
|
|
412
|
-
*/
|
|
413
|
-
public traceEnqueuedCall(
|
|
414
|
-
/** The call request from private that enqueued this call. */
|
|
415
|
-
publicCallRequest: PublicCallRequest,
|
|
416
|
-
/** The call's calldata */
|
|
417
|
-
calldata: Fr[],
|
|
418
|
-
/** Did the call revert? */
|
|
419
|
-
_reverted: boolean,
|
|
420
|
-
) {
|
|
421
|
-
// TODO(4805): check if some threshold is reached for max enqueued or nested calls (to unique contracts?)
|
|
422
|
-
this.enqueuedCalls.push(publicCallRequest);
|
|
423
|
-
this.avmCircuitHints.enqueuedCalls.push(new AvmEnqueuedCallHint(publicCallRequest.contractAddress, calldata));
|
|
424
|
-
}
|
|
425
|
-
|
|
426
281
|
public getSideEffects(): SideEffects {
|
|
427
282
|
return {
|
|
428
|
-
enqueuedCalls: this.enqueuedCalls,
|
|
429
283
|
publicDataWrites: this.publicDataWrites,
|
|
430
284
|
noteHashes: this.noteHashes,
|
|
431
285
|
nullifiers: this.nullifiers,
|
|
@@ -433,84 +287,4 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
433
287
|
publicLogs: this.publicLogs,
|
|
434
288
|
};
|
|
435
289
|
}
|
|
436
|
-
|
|
437
|
-
public toAvmCircuitPublicInputs(
|
|
438
|
-
/** Globals. */
|
|
439
|
-
globalVariables: GlobalVariables,
|
|
440
|
-
/** Start tree snapshots. */
|
|
441
|
-
startTreeSnapshots: TreeSnapshots,
|
|
442
|
-
/** Gas used at start of TX. */
|
|
443
|
-
startGasUsed: Gas,
|
|
444
|
-
/** How much gas was available for this public execution. */
|
|
445
|
-
gasLimits: GasSettings,
|
|
446
|
-
/** Address of the fee payer. */
|
|
447
|
-
feePayer: AztecAddress,
|
|
448
|
-
/** Call requests for setup phase. */
|
|
449
|
-
publicSetupCallRequests: PublicCallRequest[],
|
|
450
|
-
/** Call requests for app logic phase. */
|
|
451
|
-
publicAppLogicCallRequests: PublicCallRequest[],
|
|
452
|
-
/** Call request for teardown phase. */
|
|
453
|
-
publicTeardownCallRequest: PublicCallRequest,
|
|
454
|
-
/** End tree snapshots. */
|
|
455
|
-
endTreeSnapshots: TreeSnapshots,
|
|
456
|
-
/**
|
|
457
|
-
* Gas used by the whole transaction, assuming entire teardown limit is used.
|
|
458
|
-
* This is the gas used when computing transaction fee.
|
|
459
|
-
*/
|
|
460
|
-
endGasUsed: Gas,
|
|
461
|
-
/** Transaction fee. */
|
|
462
|
-
transactionFee: Fr,
|
|
463
|
-
/** The call's results */
|
|
464
|
-
reverted: boolean,
|
|
465
|
-
): AvmCircuitPublicInputs {
|
|
466
|
-
return new AvmCircuitPublicInputs(
|
|
467
|
-
globalVariables,
|
|
468
|
-
startTreeSnapshots,
|
|
469
|
-
startGasUsed,
|
|
470
|
-
gasLimits,
|
|
471
|
-
feePayer,
|
|
472
|
-
padArrayEnd(publicSetupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX),
|
|
473
|
-
padArrayEnd(publicAppLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX),
|
|
474
|
-
publicTeardownCallRequest,
|
|
475
|
-
/*previousNonRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
476
|
-
/*previousRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
477
|
-
/*previousNonRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(),
|
|
478
|
-
/*previousRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(),
|
|
479
|
-
endTreeSnapshots,
|
|
480
|
-
endGasUsed,
|
|
481
|
-
/*accumulatedData=*/ this.getAvmAccumulatedData(),
|
|
482
|
-
transactionFee,
|
|
483
|
-
reverted,
|
|
484
|
-
);
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
public getPublicLogs() {
|
|
488
|
-
return this.publicLogs;
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
public getAvmCircuitHints() {
|
|
492
|
-
return this.avmCircuitHints;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
private getAvmAccumulatedData() {
|
|
496
|
-
return new AvmAccumulatedData(
|
|
497
|
-
padArrayEnd(
|
|
498
|
-
this.noteHashes.map(n => n.value),
|
|
499
|
-
Fr.zero(),
|
|
500
|
-
MAX_NOTE_HASHES_PER_TX,
|
|
501
|
-
),
|
|
502
|
-
padArrayEnd(
|
|
503
|
-
this.nullifiers.map(n => n.value),
|
|
504
|
-
Fr.zero(),
|
|
505
|
-
MAX_NULLIFIERS_PER_TX,
|
|
506
|
-
),
|
|
507
|
-
padArrayEnd(this.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX),
|
|
508
|
-
padArrayEnd(this.publicLogs, PublicLog.empty(), MAX_PUBLIC_LOGS_PER_TX),
|
|
509
|
-
padArrayEnd(
|
|
510
|
-
this.publicDataWrites.map(w => new PublicDataWrite(w.leafSlot, w.newValue)),
|
|
511
|
-
PublicDataWrite.empty(),
|
|
512
|
-
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
513
|
-
),
|
|
514
|
-
);
|
|
515
|
-
}
|
|
516
290
|
}
|
|
@@ -1,76 +1,28 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import type {
|
|
2
|
+
import type { LogLevel } from '@aztec/foundation/log';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import type {
|
|
5
|
-
import type { PublicCallRequest } from '@aztec/stdlib/kernel';
|
|
6
|
-
import type { PublicLog } from '@aztec/stdlib/logs';
|
|
7
|
-
import type { NullifierLeafPreimage, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
|
|
4
|
+
import type { DebugLog } from '@aztec/stdlib/logs';
|
|
8
5
|
|
|
9
6
|
export interface PublicSideEffectTraceInterface {
|
|
10
7
|
fork(): PublicSideEffectTraceInterface;
|
|
11
8
|
merge(nestedTrace: PublicSideEffectTraceInterface, reverted?: boolean): void;
|
|
12
9
|
getCounter(): number;
|
|
13
10
|
// all "trace*" functions can throw SideEffectLimitReachedError
|
|
14
|
-
tracePublicStorageRead(
|
|
15
|
-
contractAddress: AztecAddress,
|
|
16
|
-
slot: Fr,
|
|
17
|
-
value: Fr,
|
|
18
|
-
leafPreimage?: PublicDataTreeLeafPreimage,
|
|
19
|
-
leafIndex?: Fr,
|
|
20
|
-
path?: Fr[],
|
|
21
|
-
): void;
|
|
22
11
|
tracePublicStorageWrite(
|
|
23
12
|
contractAddress: AztecAddress,
|
|
24
13
|
slot: Fr, // This is the storage slot not the computed leaf slot
|
|
25
14
|
value: Fr,
|
|
26
15
|
protocolWrite: boolean,
|
|
27
|
-
lowLeafPreimage?: PublicDataTreeLeafPreimage,
|
|
28
|
-
lowLeafIndex?: Fr,
|
|
29
|
-
lowLeafPath?: Fr[],
|
|
30
|
-
newLeafPreimage?: PublicDataTreeLeafPreimage,
|
|
31
|
-
insertionPath?: Fr[],
|
|
32
16
|
): Promise<void>;
|
|
33
|
-
|
|
34
|
-
traceNewNoteHash(uniqueNoteHash: Fr
|
|
17
|
+
isStorageCold(contractAddress: AztecAddress, slot: Fr): boolean;
|
|
18
|
+
traceNewNoteHash(uniqueNoteHash: Fr): void;
|
|
35
19
|
getNoteHashCount(): number;
|
|
36
|
-
|
|
37
|
-
siloedNullifier: Fr,
|
|
38
|
-
exists: boolean,
|
|
39
|
-
lowLeafPreimage?: NullifierLeafPreimage,
|
|
40
|
-
lowLeafIndex?: Fr,
|
|
41
|
-
lowLeafPath?: Fr[],
|
|
42
|
-
): void;
|
|
43
|
-
traceNewNullifier(
|
|
44
|
-
siloedNullifier: Fr,
|
|
45
|
-
lowLeafPreimage?: NullifierLeafPreimage,
|
|
46
|
-
lowLeafIndex?: Fr,
|
|
47
|
-
lowLeafPath?: Fr[],
|
|
48
|
-
insertionPath?: Fr[],
|
|
49
|
-
): void;
|
|
50
|
-
traceL1ToL2MessageCheck(
|
|
51
|
-
contractAddress: AztecAddress,
|
|
52
|
-
msgHash: Fr,
|
|
53
|
-
msgLeafIndex: Fr,
|
|
54
|
-
exists: boolean,
|
|
55
|
-
path?: Fr[],
|
|
56
|
-
): void;
|
|
20
|
+
traceNewNullifier(siloedNullifier: Fr): void;
|
|
57
21
|
traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
|
|
58
22
|
tracePublicLog(contractAddress: AztecAddress, log: Fr[]): void;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
updatePreimage?: Fr[],
|
|
65
|
-
): void;
|
|
66
|
-
traceGetContractClass(contractClassId: Fr, exists: boolean, contractClass?: ContractClassWithCommitment): void;
|
|
67
|
-
traceEnqueuedCall(
|
|
68
|
-
/** The call request from private that enqueued this call. */
|
|
69
|
-
publicCallRequest: PublicCallRequest,
|
|
70
|
-
/** The call's calldata */
|
|
71
|
-
calldata: Fr[],
|
|
72
|
-
/** Did the call revert? */
|
|
73
|
-
reverted: boolean,
|
|
74
|
-
): void;
|
|
75
|
-
getPublicLogs(): PublicLog[];
|
|
23
|
+
traceDebugLog(contractAddress: AztecAddress, level: LogLevel, message: string, fields: Fr[]): void;
|
|
24
|
+
getDebugLogs(): DebugLog[];
|
|
25
|
+
getDebugLogMemoryReads(): number;
|
|
26
|
+
traceDebugLogMemoryReads(memoryReads: number): void;
|
|
27
|
+
traceGetContractClass(contractClassId: Fr, exists: boolean): void;
|
|
76
28
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './state_manager.js';
|