@aztec/simulator 0.0.0-test.0 → 0.0.1-commit.24de95ac
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 +5 -3
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +4 -2
- package/dest/common/errors.d.ts +4 -7
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +51 -32
- package/dest/common/index.d.ts +0 -1
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +0 -1
- package/dest/private/acvm/acvm.d.ts +11 -5
- 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 +1 -1
- package/dest/private/acvm/acvm_types.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.d.ts +17 -18
- 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 +0 -1
- 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 +19 -2
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +53 -0
- package/dest/private/{providers/acvm_native.d.ts → acvm_native.d.ts} +9 -10
- 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 +5 -5
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +4 -2
- 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 +3 -1
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +7 -2
- package/dest/public/avm/avm_gas.d.ts +4 -20
- 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 +2 -0
- 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 +98 -87
- 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 +4 -5
- 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 +6 -30
- 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 +5 -4
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +12 -14
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +6 -4
- 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 +43 -0
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -0
- package/dest/public/avm/fixtures/initializers.js +42 -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 +0 -2
- 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 +2 -2
- 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 +11 -7
- 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 +11 -1
- 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 +5 -13
- 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.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +3 -3
- package/dest/public/avm/opcodes/contract.d.ts +1 -2
- 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.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +10 -8
- package/dest/public/avm/opcodes/conversion.d.ts +1 -0
- 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.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +6 -6
- package/dest/public/avm/opcodes/environment_getters.d.ts +2 -2
- 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 +8 -7
- 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.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +6 -6
- package/dest/public/avm/opcodes/instruction.d.ts +14 -10
- 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/memory.d.ts +4 -4
- 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 +2 -1
- 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.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 +0 -2
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +2 -6
- 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 +13 -4
- 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 +10 -13
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +16 -24
- package/dest/public/db_interfaces.d.ts +56 -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 +10 -3
- 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 +9 -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 +7 -0
- 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 +10 -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 -13
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +96 -71
- package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.d.ts +6 -6
- 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 +95 -0
- package/dest/public/fixtures/utils.d.ts +16 -3
- 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 +70 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -0
- package/dest/public/hinting_db_sources.js +297 -0
- package/dest/public/index.d.ts +4 -8
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +4 -7
- package/dest/public/public_db_sources.d.ts +30 -39
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +151 -67
- 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 -30
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +141 -96
- package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +41 -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 +89 -0
- package/dest/public/public_tx_simulator/index.d.ts +4 -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 +24 -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 +19 -29
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +63 -91
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +45 -47
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +209 -184
- 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 +41 -1
- 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 +20 -65
- 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 +11 -22
- 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 +2 -5
- 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 +2 -2
- package/dest/public/state_manager/public_storage.d.ts.map +1 -0
- package/dest/public/{avm/journal/journal.d.ts → state_manager/state_manager.d.ts} +42 -85
- package/dest/public/state_manager/state_manager.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.js +391 -0
- package/dest/public/test_executor_metrics.d.ts +54 -0
- package/dest/public/test_executor_metrics.d.ts.map +1 -0
- package/dest/public/test_executor_metrics.js +306 -0
- package/dest/public/unique_class_ids.d.ts.map +1 -1
- package/dest/public/utils.d.ts +2 -4
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +4 -21
- package/dest/server.d.ts +6 -3
- 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 +36 -31
- 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 +10 -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 +44 -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 +23 -20
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +45 -12
- package/src/public/avm/fixtures/initializers.ts +104 -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/db_interfaces.ts +61 -0
- package/src/{common → public}/debug_fn_name.ts +7 -7
- package/src/public/executor_metrics.ts +55 -6
- package/src/public/executor_metrics_interface.ts +14 -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 +36 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +158 -113
- package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +36 -18
- package/src/public/fixtures/token_test.ts +140 -0
- package/src/public/fixtures/utils.ts +141 -68
- package/src/public/hinting_db_sources.ts +505 -0
- package/src/public/index.ts +9 -8
- package/src/public/public_db_sources.ts +196 -97
- 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 +191 -153
- package/src/public/public_processor/public_processor_metrics.ts +2 -2
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +128 -0
- package/src/public/public_tx_simulator/index.ts +3 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +109 -0
- package/src/public/public_tx_simulator/public_tx_context.ts +160 -193
- package/src/public/public_tx_simulator/public_tx_simulator.ts +294 -220
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +11 -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 +560 -0
- package/src/public/test_executor_metrics.ts +395 -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.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.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.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/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/test/utils.ts +0 -36
- /package/dest/public/{avm/journal → state_manager}/public_storage.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { strict as assert } from 'assert';
|
|
1
3
|
import { Field, TaggedMemory, TypeTag, Uint32 } from '../avm_memory_types.js';
|
|
2
4
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
5
|
import { Addressing } from './addressing_mode.js';
|
|
@@ -14,57 +16,58 @@ export class Set extends Instruction {
|
|
|
14
16
|
OperandType.UINT8,
|
|
15
17
|
OperandType.UINT8,
|
|
16
18
|
OperandType.UINT8,
|
|
17
|
-
OperandType.
|
|
19
|
+
OperandType.TAG,
|
|
18
20
|
OperandType.UINT8
|
|
19
21
|
];
|
|
20
22
|
static wireFormat16 = [
|
|
21
23
|
OperandType.UINT8,
|
|
22
24
|
OperandType.UINT8,
|
|
23
25
|
OperandType.UINT16,
|
|
24
|
-
OperandType.
|
|
26
|
+
OperandType.TAG,
|
|
25
27
|
OperandType.UINT16
|
|
26
28
|
];
|
|
27
29
|
static wireFormat32 = [
|
|
28
30
|
OperandType.UINT8,
|
|
29
31
|
OperandType.UINT8,
|
|
30
32
|
OperandType.UINT16,
|
|
31
|
-
OperandType.
|
|
33
|
+
OperandType.TAG,
|
|
32
34
|
OperandType.UINT32
|
|
33
35
|
];
|
|
34
36
|
static wireFormat64 = [
|
|
35
37
|
OperandType.UINT8,
|
|
36
38
|
OperandType.UINT8,
|
|
37
39
|
OperandType.UINT16,
|
|
38
|
-
OperandType.
|
|
40
|
+
OperandType.TAG,
|
|
39
41
|
OperandType.UINT64
|
|
40
42
|
];
|
|
41
43
|
static wireFormat128 = [
|
|
42
44
|
OperandType.UINT8,
|
|
43
45
|
OperandType.UINT8,
|
|
44
46
|
OperandType.UINT16,
|
|
45
|
-
OperandType.
|
|
47
|
+
OperandType.TAG,
|
|
46
48
|
OperandType.UINT128
|
|
47
49
|
];
|
|
48
50
|
static wireFormatFF = [
|
|
49
51
|
OperandType.UINT8,
|
|
50
52
|
OperandType.UINT8,
|
|
51
53
|
OperandType.UINT16,
|
|
52
|
-
OperandType.
|
|
54
|
+
OperandType.TAG,
|
|
53
55
|
OperandType.FF
|
|
54
56
|
];
|
|
55
57
|
constructor(indirect, dstOffset, inTag, value){
|
|
56
58
|
super(), this.indirect = indirect, this.dstOffset = dstOffset, this.inTag = inTag, this.value = value;
|
|
57
|
-
|
|
59
|
+
assert(this.value >= 0, `Value ${this.value} is negative`);
|
|
60
|
+
assert(this.value < Fr.MODULUS, `Value ${this.value} is larger than Fr.MODULUS`);
|
|
58
61
|
}
|
|
59
62
|
async execute(context) {
|
|
60
63
|
// Constructor ensured that this.inTag is a valid tag
|
|
61
64
|
const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
|
|
62
65
|
const memory = context.machineState.memory;
|
|
63
|
-
|
|
66
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
67
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
64
68
|
const operands = [
|
|
65
69
|
this.dstOffset
|
|
66
70
|
];
|
|
67
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
68
71
|
const [dstOffset] = addressing.resolve(operands, memory);
|
|
69
72
|
memory.set(dstOffset, res);
|
|
70
73
|
}
|
|
@@ -81,27 +84,26 @@ export class Cast extends Instruction {
|
|
|
81
84
|
OperandType.UINT8,
|
|
82
85
|
OperandType.UINT8,
|
|
83
86
|
OperandType.UINT8,
|
|
84
|
-
OperandType.
|
|
87
|
+
OperandType.TAG
|
|
85
88
|
];
|
|
86
89
|
static wireFormat16 = [
|
|
87
90
|
OperandType.UINT8,
|
|
88
91
|
OperandType.UINT8,
|
|
89
92
|
OperandType.UINT16,
|
|
90
93
|
OperandType.UINT16,
|
|
91
|
-
OperandType.
|
|
94
|
+
OperandType.TAG
|
|
92
95
|
];
|
|
93
96
|
constructor(indirect, srcOffset, dstOffset, dstTag){
|
|
94
97
|
super(), this.indirect = indirect, this.srcOffset = srcOffset, this.dstOffset = dstOffset, this.dstTag = dstTag;
|
|
95
|
-
TaggedMemory.checkIsValidTag(dstTag);
|
|
96
98
|
}
|
|
97
99
|
async execute(context) {
|
|
98
100
|
const memory = context.machineState.memory;
|
|
99
|
-
|
|
101
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
102
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
100
103
|
const operands = [
|
|
101
104
|
this.srcOffset,
|
|
102
105
|
this.dstOffset
|
|
103
106
|
];
|
|
104
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
105
107
|
const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
106
108
|
const a = memory.get(srcOffset);
|
|
107
109
|
// Constructor ensured that this.dstTag is a valid tag
|
|
@@ -133,12 +135,12 @@ export class Mov extends Instruction {
|
|
|
133
135
|
}
|
|
134
136
|
async execute(context) {
|
|
135
137
|
const memory = context.machineState.memory;
|
|
136
|
-
|
|
138
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
139
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
137
140
|
const operands = [
|
|
138
141
|
this.srcOffset,
|
|
139
142
|
this.dstOffset
|
|
140
143
|
];
|
|
141
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
142
144
|
const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
143
145
|
const a = memory.get(srcOffset);
|
|
144
146
|
memory.set(dstOffset, a);
|
|
@@ -146,8 +148,8 @@ export class Mov extends Instruction {
|
|
|
146
148
|
}
|
|
147
149
|
export class CalldataCopy extends Instruction {
|
|
148
150
|
indirect;
|
|
149
|
-
cdStartOffset;
|
|
150
151
|
copySizeOffset;
|
|
152
|
+
cdStartOffset;
|
|
151
153
|
dstOffset;
|
|
152
154
|
static type = 'CALLDATACOPY';
|
|
153
155
|
static opcode = Opcode.CALLDATACOPY;
|
|
@@ -159,22 +161,23 @@ export class CalldataCopy extends Instruction {
|
|
|
159
161
|
OperandType.UINT16,
|
|
160
162
|
OperandType.UINT16
|
|
161
163
|
];
|
|
162
|
-
constructor(indirect,
|
|
163
|
-
super(), this.indirect = indirect, this.
|
|
164
|
+
constructor(indirect, copySizeOffset, cdStartOffset, dstOffset){
|
|
165
|
+
super(), this.indirect = indirect, this.copySizeOffset = copySizeOffset, this.cdStartOffset = cdStartOffset, this.dstOffset = dstOffset;
|
|
164
166
|
}
|
|
165
167
|
async execute(context) {
|
|
166
168
|
const memory = context.machineState.memory;
|
|
169
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
170
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
167
171
|
const operands = [
|
|
168
|
-
this.cdStartOffset,
|
|
169
172
|
this.copySizeOffset,
|
|
173
|
+
this.cdStartOffset,
|
|
170
174
|
this.dstOffset
|
|
171
175
|
];
|
|
172
|
-
const
|
|
173
|
-
const [cdStartOffset, copySizeOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
176
|
+
const [copySizeOffset, cdStartOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
174
177
|
memory.checkTags(TypeTag.UINT32, cdStartOffset, copySizeOffset);
|
|
175
178
|
const cdStart = memory.get(cdStartOffset).toNumber();
|
|
176
179
|
const copySize = memory.get(copySizeOffset).toNumber();
|
|
177
|
-
context.machineState.consumeGas(this.
|
|
180
|
+
context.machineState.consumeGas(this.dynamicGasCost(copySize));
|
|
178
181
|
// Values which are out-of-range of the calldata array will be set with Field(0);
|
|
179
182
|
const slice = context.environment.calldata.slice(cdStart, cdStart + copySize).map((f)=>new Field(f));
|
|
180
183
|
// slice has size = MIN(copySize, calldata.length - cdStart) as TS truncates out-of-range portion
|
|
@@ -201,19 +204,19 @@ export class ReturndataSize extends Instruction {
|
|
|
201
204
|
}
|
|
202
205
|
async execute(context) {
|
|
203
206
|
const memory = context.machineState.memory;
|
|
207
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
208
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
204
209
|
const operands = [
|
|
205
210
|
this.dstOffset
|
|
206
211
|
];
|
|
207
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
208
212
|
const [dstOffset] = addressing.resolve(operands, memory);
|
|
209
|
-
context.machineState.consumeGas(this.gasCost());
|
|
210
213
|
memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length));
|
|
211
214
|
}
|
|
212
215
|
}
|
|
213
216
|
export class ReturndataCopy extends Instruction {
|
|
214
217
|
indirect;
|
|
215
|
-
rdStartOffset;
|
|
216
218
|
copySizeOffset;
|
|
219
|
+
rdStartOffset;
|
|
217
220
|
dstOffset;
|
|
218
221
|
static type = 'RETURNDATACOPY';
|
|
219
222
|
static opcode = Opcode.RETURNDATACOPY;
|
|
@@ -225,22 +228,23 @@ export class ReturndataCopy extends Instruction {
|
|
|
225
228
|
OperandType.UINT16,
|
|
226
229
|
OperandType.UINT16
|
|
227
230
|
];
|
|
228
|
-
constructor(indirect,
|
|
229
|
-
super(), this.indirect = indirect, this.
|
|
231
|
+
constructor(indirect, copySizeOffset, rdStartOffset, dstOffset){
|
|
232
|
+
super(), this.indirect = indirect, this.copySizeOffset = copySizeOffset, this.rdStartOffset = rdStartOffset, this.dstOffset = dstOffset;
|
|
230
233
|
}
|
|
231
234
|
async execute(context) {
|
|
232
235
|
const memory = context.machineState.memory;
|
|
236
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
237
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
233
238
|
const operands = [
|
|
234
|
-
this.rdStartOffset,
|
|
235
239
|
this.copySizeOffset,
|
|
240
|
+
this.rdStartOffset,
|
|
236
241
|
this.dstOffset
|
|
237
242
|
];
|
|
238
|
-
const
|
|
239
|
-
const [rdStartOffset, copySizeOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
243
|
+
const [copySizeOffset, rdStartOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
240
244
|
memory.checkTags(TypeTag.UINT32, rdStartOffset, copySizeOffset);
|
|
241
|
-
const rdStart = memory.get(rdStartOffset).toNumber();
|
|
242
245
|
const copySize = memory.get(copySizeOffset).toNumber();
|
|
243
|
-
|
|
246
|
+
const rdStart = memory.get(rdStartOffset).toNumber();
|
|
247
|
+
context.machineState.consumeGas(this.dynamicGasCost(copySize));
|
|
244
248
|
// Values which are out-of-range of the returndata array will be set with Field(0);
|
|
245
249
|
const slice = context.machineState.nestedReturndata.slice(rdStart, rdStart + copySize).map((f)=>new Field(f));
|
|
246
250
|
// slice has size = MIN(copySize, returndata.length - rdStart) as TS truncates out-of-range portion
|
|
@@ -3,6 +3,7 @@ import { Opcode, OperandType } from '../serialization/instruction_serialization.
|
|
|
3
3
|
import { Instruction } from './instruction.js';
|
|
4
4
|
export declare class DebugLog extends Instruction {
|
|
5
5
|
private indirect;
|
|
6
|
+
private levelOffset;
|
|
6
7
|
private messageOffset;
|
|
7
8
|
private fieldsOffset;
|
|
8
9
|
private fieldsSizeOffset;
|
|
@@ -11,7 +12,7 @@ export declare class DebugLog extends Instruction {
|
|
|
11
12
|
static readonly opcode: Opcode;
|
|
12
13
|
static readonly logger: import("@aztec/foundation/log").Logger;
|
|
13
14
|
static readonly wireFormat: OperandType[];
|
|
14
|
-
constructor(indirect: number, messageOffset: number, fieldsOffset: number, fieldsSizeOffset: number, messageSize: number);
|
|
15
|
+
constructor(indirect: number, levelOffset: number, messageOffset: number, fieldsOffset: number, fieldsSizeOffset: number, messageSize: number);
|
|
15
16
|
execute(context: AvmContext): Promise<void>;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/misc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,WAAW;IAiBrC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IArBrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAc;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,yCAA2C;IAGjE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAQvC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM;IAKhB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAkEzD"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { applyStringFormatting, createLogger } from '@aztec/foundation/log';
|
|
1
|
+
import { LogLevels, applyStringFormatting, createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { TypeTag } from '../avm_memory_types.js';
|
|
3
3
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
4
4
|
import { Addressing } from './addressing_mode.js';
|
|
5
5
|
import { Instruction } from './instruction.js';
|
|
6
6
|
export class DebugLog extends Instruction {
|
|
7
7
|
indirect;
|
|
8
|
+
levelOffset;
|
|
8
9
|
messageOffset;
|
|
9
10
|
fieldsOffset;
|
|
10
11
|
fieldsSizeOffset;
|
|
@@ -19,30 +20,54 @@ export class DebugLog extends Instruction {
|
|
|
19
20
|
OperandType.UINT16,
|
|
20
21
|
OperandType.UINT16,
|
|
21
22
|
OperandType.UINT16,
|
|
23
|
+
OperandType.UINT16,
|
|
22
24
|
OperandType.UINT16
|
|
23
25
|
];
|
|
24
|
-
constructor(indirect, messageOffset, fieldsOffset, fieldsSizeOffset, messageSize){
|
|
25
|
-
super(), this.indirect = indirect, this.messageOffset = messageOffset, this.fieldsOffset = fieldsOffset, this.fieldsSizeOffset = fieldsSizeOffset, this.messageSize = messageSize;
|
|
26
|
+
constructor(indirect, levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset, messageSize){
|
|
27
|
+
super(), this.indirect = indirect, this.levelOffset = levelOffset, this.messageOffset = messageOffset, this.fieldsOffset = fieldsOffset, this.fieldsSizeOffset = fieldsSizeOffset, this.messageSize = messageSize;
|
|
26
28
|
}
|
|
27
29
|
async execute(context) {
|
|
28
30
|
const memory = context.machineState.memory;
|
|
31
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
32
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
29
33
|
const operands = [
|
|
34
|
+
this.levelOffset,
|
|
30
35
|
this.messageOffset,
|
|
31
36
|
this.fieldsOffset,
|
|
32
37
|
this.fieldsSizeOffset
|
|
33
38
|
];
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const [levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
|
|
40
|
+
// DebugLog is a no-op except when doing client-initiated simulation.
|
|
41
|
+
// Note that we still do address resolution and basic tag-checking (above)
|
|
42
|
+
// To avoid a special-case in the witness generator and circuit.
|
|
43
|
+
if (context.environment.clientInitiatedSimulation) {
|
|
44
|
+
memory.checkTag(TypeTag.UINT8, levelOffset);
|
|
45
|
+
const levelNumber = memory.get(levelOffset).toNumber();
|
|
46
|
+
memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
|
|
47
|
+
const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
|
|
48
|
+
const memoryReads = 1 /* level */ + 1 /* fieldsSize */ + this.messageSize /* message */ + fieldsSize; /* fields */
|
|
49
|
+
if (context.persistableState.getDebugLogMemoryReads() + memoryReads > context.environment.maxDebugLogMemoryReads) {
|
|
50
|
+
// Regular error on purpose: this is not a recoverable error.
|
|
51
|
+
throw new Error(`Max debug log memory reads exceeded: ${context.persistableState.getDebugLogMemoryReads() + memoryReads} > ${context.environment.maxDebugLogMemoryReads}`);
|
|
52
|
+
}
|
|
53
|
+
context.persistableState.writeDebugLogMemoryReads(memoryReads);
|
|
54
|
+
const rawMessage = memory.getSlice(messageOffset, this.messageSize);
|
|
55
|
+
const fields = memory.getSlice(fieldsOffset, fieldsSize);
|
|
56
|
+
memory.checkTagsRange(TypeTag.UINT8, messageOffset, this.messageSize);
|
|
57
|
+
memory.checkTagsRange(TypeTag.FIELD, fieldsOffset, fieldsSize);
|
|
58
|
+
// Interpret str<N> = [u8; N] to string.
|
|
59
|
+
const messageAsStr = rawMessage.map((field)=>String.fromCharCode(field.toNumber())).join('');
|
|
60
|
+
if (!LogLevels[levelNumber]) {
|
|
61
|
+
// Regular error on purpose: this is not a recoverable error.
|
|
62
|
+
throw new Error(`Invalid debug log level: ${levelNumber}`);
|
|
63
|
+
}
|
|
64
|
+
const level = LogLevels[levelNumber];
|
|
65
|
+
context.persistableState.writeDebugLog(context.environment.address, level, messageAsStr, fields.map((field)=>field.toFr()));
|
|
66
|
+
// Skips string formatting if the level is disabled.
|
|
67
|
+
if (DebugLog.logger.isLevelEnabled(level)) {
|
|
68
|
+
const formattedStr = applyStringFormatting(messageAsStr, fields.map((field)=>field.toFr()));
|
|
69
|
+
DebugLog.logger[level](formattedStr);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
47
72
|
}
|
|
48
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,uBAAe,sBAAuB,SAAQ,WAAW;IAUrD,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM;IAV3B,gBAAuB,UAAU,EAAE,WAAW,EAAE,CAK9C;gBAGU,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,MAAO,SAAQ,sBAAsB;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,iBAAiB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzD;AAED,qBAAa,KAAM,SAAQ,sBAAsB;IAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;gBAE1B,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAItD,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBzD"}
|
|
@@ -29,16 +29,18 @@ export class SStore extends BaseStorageInstruction {
|
|
|
29
29
|
throw new StaticCallAlterationError();
|
|
30
30
|
}
|
|
31
31
|
const memory = context.machineState.memory;
|
|
32
|
-
|
|
32
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
33
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
33
34
|
const operands = [
|
|
34
35
|
this.aOffset,
|
|
35
36
|
this.bOffset
|
|
36
37
|
];
|
|
37
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
38
38
|
const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
|
|
39
|
+
// We read before tag checking since it's needed for gas cost calculation
|
|
40
|
+
const slot = memory.get(slotOffset).toFr();
|
|
41
|
+
context.machineState.consumeGas(this.dynamicGasCost(Number(context.persistableState.isStorageCold(context.environment.address, slot))));
|
|
39
42
|
memory.checkTag(TypeTag.FIELD, slotOffset);
|
|
40
43
|
memory.checkTag(TypeTag.FIELD, srcOffset);
|
|
41
|
-
const slot = memory.get(slotOffset).toFr();
|
|
42
44
|
const value = memory.get(srcOffset).toFr();
|
|
43
45
|
await context.persistableState.writeStorage(context.environment.address, slot, value);
|
|
44
46
|
}
|
|
@@ -51,12 +53,12 @@ export class SLoad extends BaseStorageInstruction {
|
|
|
51
53
|
}
|
|
52
54
|
async execute(context) {
|
|
53
55
|
const memory = context.machineState.memory;
|
|
54
|
-
|
|
56
|
+
const addressing = Addressing.fromWire(this.indirect);
|
|
57
|
+
context.machineState.consumeGas(this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()));
|
|
55
58
|
const operands = [
|
|
56
59
|
this.aOffset,
|
|
57
60
|
this.bOffset
|
|
58
61
|
];
|
|
59
|
-
const addressing = Addressing.fromWire(this.indirect, operands.length);
|
|
60
62
|
const [slotOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
61
63
|
memory.checkTag(TypeTag.FIELD, slotOffset);
|
|
62
64
|
const slot = memory.get(slotOffset).toFr();
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { AvmContext } from './avm_context.js';
|
|
3
|
+
import { type AvmExecutionError, AvmRevertReason } from './errors.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create a "revert reason" error for an exceptional halt.
|
|
6
|
+
*
|
|
7
|
+
* @param haltingError - the lower-level error causing the exceptional halt
|
|
8
|
+
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
9
|
+
*/
|
|
10
|
+
export declare function revertReasonFromExceptionalHalt(haltingError: AvmExecutionError, context: AvmContext): Promise<AvmRevertReason>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a "revert reason" error for an explicit revert (a root cause).
|
|
13
|
+
*
|
|
14
|
+
* @param revertData - output data of the explicit REVERT instruction
|
|
15
|
+
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
16
|
+
*/
|
|
17
|
+
export declare function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): Promise<AvmRevertReason>;
|
|
18
|
+
//# sourceMappingURL=revert_reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revert_reason.d.ts","sourceRoot":"","sources":["../../../src/public/avm/revert_reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA8BtE;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpH"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AvmRevertReason } from './errors.js';
|
|
2
|
+
async function createRevertReason(message, revertData, context) {
|
|
3
|
+
// We drop the returnPc information.
|
|
4
|
+
const internalCallStack = context.machineState.internalCallStack.map((entry)=>entry.callPc);
|
|
5
|
+
// If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
|
|
6
|
+
let nestedError = undefined;
|
|
7
|
+
const revertDataEquals = (a, b)=>a.length === b.length && a.every((v, i)=>v.equals(b[i]));
|
|
8
|
+
if (context.machineState.collectedRevertInfo && revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)) {
|
|
9
|
+
nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
|
|
10
|
+
message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
|
|
11
|
+
}
|
|
12
|
+
const fnName = await context.persistableState.getPublicFunctionDebugName(context.environment);
|
|
13
|
+
return new AvmRevertReason(message, /*failingFunction=*/ {
|
|
14
|
+
contractAddress: context.environment.address,
|
|
15
|
+
functionName: fnName
|
|
16
|
+
}, /*noirCallStack=*/ [
|
|
17
|
+
...internalCallStack,
|
|
18
|
+
context.machineState.pc
|
|
19
|
+
].map((pc)=>`0.${pc}`), /*options=*/ {
|
|
20
|
+
cause: nestedError
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a "revert reason" error for an exceptional halt.
|
|
25
|
+
*
|
|
26
|
+
* @param haltingError - the lower-level error causing the exceptional halt
|
|
27
|
+
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
28
|
+
*/ export async function revertReasonFromExceptionalHalt(haltingError, context) {
|
|
29
|
+
return await createRevertReason(haltingError.message, [], context);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a "revert reason" error for an explicit revert (a root cause).
|
|
33
|
+
*
|
|
34
|
+
* @param revertData - output data of the explicit REVERT instruction
|
|
35
|
+
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
36
|
+
*/ export async function revertReasonFromExplicitRevert(revertData, context) {
|
|
37
|
+
return await createRevertReason('Assertion failed: ', revertData, context);
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer_cursor.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/buffer_cursor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer_cursor.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/buffer_cursor.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;gBADT,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAU;IAGxB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,GAAG,IAAI,OAAO;IAId,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxB,SAAS,IAAI,MAAM;IAKnB,SAAS,IAAI,MAAM;IAMnB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,YAAY,IAAI,MAAM;IAMtB,cAAc,IAAI,MAAM;IAMxB,cAAc,IAAI,MAAM;IAMxB,UAAU,CAAC,CAAC,EAAE,MAAM;IAMpB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,aAAa,CAAC,CAAC,EAAE,MAAM;IAMvB,eAAe,CAAC,CAAC,EAAE,MAAM;IAMzB,eAAe,CAAC,CAAC,EAAE,MAAM;CAKjC"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
1
|
+
import { type Bufferable } from '@aztec/foundation/serialize';
|
|
3
2
|
import { Instruction } from '../opcodes/index.js';
|
|
4
3
|
import { BufferCursor } from './buffer_cursor.js';
|
|
5
4
|
import { Opcode } from './instruction_serialization.js';
|
|
6
5
|
export type InstructionDeserializer = (buf: BufferCursor | Buffer) => Instruction;
|
|
7
|
-
export interface Serializable {
|
|
8
|
-
serialize(): Buffer;
|
|
9
|
-
}
|
|
10
6
|
export interface Deserializable {
|
|
11
7
|
deserialize: InstructionDeserializer;
|
|
12
8
|
}
|
|
@@ -15,7 +11,7 @@ export declare const INSTRUCTION_SET: Map<Opcode, InstructionDeserializer>;
|
|
|
15
11
|
/**
|
|
16
12
|
* Serializes an array of instructions to bytecode.
|
|
17
13
|
*/
|
|
18
|
-
export declare function encodeToBytecode(instructions:
|
|
14
|
+
export declare function encodeToBytecode(instructions: Bufferable[]): Buffer;
|
|
19
15
|
export declare function decodeFromBytecode(bytecode: Buffer, instructionSet?: InstructionSet): Instruction[];
|
|
20
16
|
export declare function decodeInstructionFromBytecode(bytecode: Buffer, pc: number, instructionSet?: InstructionSet): [Instruction, number];
|
|
21
17
|
//# sourceMappingURL=bytecode_serialization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bytecode_serialization.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/serialization/bytecode_serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAGjF,OAAO,EAgBL,WAAW,EAgCZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAoB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,KAAK,WAAW,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAClE,eAAO,MAAM,eAAe,sCAoF1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAEnE;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,cAAgC,GAAG,WAAW,EAAE,CASpH;AAGD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,cAAc,GAAE,cAAgC,GAC/C,CAAC,WAAW,EAAE,MAAM,CAAC,CA+BvB"}
|