@aztec/simulator 0.0.0-test.0 → 0.0.1-commit.0208eb9
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 +8 -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 +6 -9
- 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 +15 -7
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +14 -19
- 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 +19 -20
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +32 -24
- 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 +21 -4
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +54 -1
- package/dest/private/acvm_native.d.ts +41 -0
- package/dest/private/acvm_native.d.ts.map +1 -0
- package/dest/private/{providers/acvm_native.js → acvm_native.js} +34 -26
- package/dest/private/acvm_wasm.d.ts +16 -0
- package/dest/private/acvm_wasm.d.ts.map +1 -0
- package/dest/private/acvm_wasm.js +65 -0
- 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 +109 -0
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/circuit_recorder.js +212 -0
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +32 -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 +10 -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} +8 -5
- package/dest/public/avm/avm_context.d.ts +8 -8
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +8 -6
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +12 -8
- package/dest/public/avm/avm_execution_environment.d.ts +9 -6
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +5 -3
- 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 +9 -6
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.js +5 -2
- package/dest/public/avm/avm_memory_types.d.ts +100 -89
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +21 -7
- package/dest/public/avm/avm_simulator.d.ts +8 -7
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +32 -42
- 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/calldata.d.ts +51 -0
- package/dest/public/avm/calldata.d.ts.map +1 -0
- package/dest/public/avm/calldata.js +63 -0
- package/dest/public/avm/errors.d.ts +11 -29
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/errors.js +19 -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 +26 -18
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +8 -6
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +38 -15
- 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 +45 -0
- package/dest/public/avm/fixtures/utils.d.ts +39 -0
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -0
- package/dest/public/avm/fixtures/utils.js +96 -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 +17 -18
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +58 -55
- 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 +14 -2
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +27 -3
- package/dest/public/avm/opcodes/bitwise.d.ts +8 -16
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +22 -29
- package/dest/public/avm/opcodes/comparators.d.ts +1 -1
- 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 +3 -4
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +11 -12
- package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +13 -11
- package/dest/public/avm/opcodes/conversion.d.ts +4 -3
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +270 -6
- package/dest/public/avm/opcodes/ec_add.d.ts +3 -3
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +21 -12
- package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +20 -22
- package/dest/public/avm/opcodes/external_calls.d.ts +14 -13
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +52 -46
- package/dest/public/avm/opcodes/hashing.d.ts +7 -7
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +24 -19
- 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 +4 -4
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction_impl.js +4 -4
- package/dest/public/avm/opcodes/memory.d.ts +15 -15
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +52 -48
- package/dest/public/avm/opcodes/misc.d.ts +4 -3
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +42 -17
- package/dest/public/avm/opcodes/storage.d.ts +14 -13
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +39 -27
- 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 +39 -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 +79 -75
- 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 +12 -15
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +17 -25
- 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 +18 -0
- package/dest/public/debug_fn_name.d.ts.map +1 -0
- package/dest/public/debug_fn_name.js +37 -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 +33 -23
- 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 +262 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +34 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tester.js +53 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +12 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tests.js +174 -0
- package/dest/public/fixtures/index.d.ts +10 -1
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +9 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts +4 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -0
- package/dest/public/fixtures/minimal_public_tx.js +19 -0
- package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
- package/dest/public/fixtures/opcode_spammer.js +1653 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +55 -15
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +138 -72
- package/dest/public/fixtures/simple_contract_data_source.d.ts +36 -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 +12 -0
- package/dest/public/fixtures/token_test.d.ts.map +1 -0
- package/dest/public/fixtures/token_test.js +96 -0
- package/dest/public/fixtures/utils.d.ts +18 -5
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +102 -59
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
- package/dest/public/hinting_db_sources.d.ts +80 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -0
- package/dest/public/hinting_db_sources.js +355 -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 +54 -103
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +222 -195
- 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 +51 -0
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -0
- package/dest/public/public_processor/guarded_merkle_tree.js +113 -0
- package/dest/public/public_processor/public_processor.d.ts +28 -38
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +576 -136
- package/dest/public/public_processor/public_processor_metrics.d.ts +4 -4
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +29 -46
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +19 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +98 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +53 -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 +132 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
- package/dest/public/public_tx_simulator/factories.d.ts +14 -0
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/factories.js +28 -0
- package/dest/public/public_tx_simulator/index.d.ts +8 -0
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/index.js +5 -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 +25 -31
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +75 -95
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +38 -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 +220 -207
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +32 -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 +415 -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 +24 -69
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +74 -124
- package/dest/public/side_effect_trace_interface.d.ts +13 -25
- 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 +4 -7
- 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 +4 -4
- package/dest/public/state_manager/public_storage.d.ts.map +1 -0
- package/dest/public/{avm/journal → state_manager}/public_storage.js +1 -1
- package/dest/public/state_manager/state_manager.d.ts +170 -0
- package/dest/public/state_manager/state_manager.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.js +402 -0
- package/dest/public/test_executor_metrics.d.ts +56 -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 +80 -45
- package/src/common/index.ts +0 -1
- package/src/private/acvm/acvm.ts +21 -35
- package/src/private/acvm/acvm_types.ts +1 -1
- package/src/private/acvm/deserialize.ts +36 -30
- package/src/private/acvm/index.ts +0 -1
- package/src/private/acvm/serialize.ts +64 -1
- package/src/private/{providers/acvm_native.ts → acvm_native.ts} +57 -28
- package/src/private/acvm_wasm.ts +76 -0
- package/src/private/acvm_wasm_with_blobs.ts +54 -0
- package/src/private/circuit_recording/circuit_recorder.ts +263 -0
- package/src/private/circuit_recording/file_circuit_recorder.ts +163 -0
- package/src/private/circuit_recording/memory_circuit_recorder.ts +13 -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} +13 -10
- package/src/public/avm/avm_context.ts +6 -6
- package/src/public/avm/avm_contract_call_result.ts +23 -9
- package/src/public/avm/avm_execution_environment.ts +17 -5
- package/src/public/avm/avm_gas.ts +26 -38
- package/src/public/avm/avm_machine_state.ts +12 -6
- package/src/public/avm/avm_memory_types.ts +24 -7
- package/src/public/avm/avm_simulator.ts +57 -62
- package/src/public/avm/avm_simulator_interface.ts +8 -0
- package/src/public/avm/calldata.ts +100 -0
- package/src/public/avm/errors.ts +20 -75
- package/src/public/avm/fixtures/avm_simulation_tester.ts +41 -24
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +46 -13
- package/src/public/avm/fixtures/initializers.ts +103 -0
- package/src/public/avm/fixtures/utils.ts +151 -0
- package/src/public/avm/index.ts +0 -2
- package/src/public/avm/opcodes/accrued_substate.ts +81 -48
- package/src/public/avm/opcodes/addressing_mode.ts +56 -32
- package/src/public/avm/opcodes/arithmetic.ts +37 -3
- 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 -10
- package/src/public/avm/opcodes/control_flow.ts +19 -10
- package/src/public/avm/opcodes/conversion.ts +29 -5
- package/src/public/avm/opcodes/ec_add.ts +22 -10
- package/src/public/avm/opcodes/environment_getters.ts +28 -23
- package/src/public/avm/opcodes/external_calls.ts +70 -36
- package/src/public/avm/opcodes/hashing.ts +39 -13
- package/src/public/avm/opcodes/instruction.ts +31 -21
- package/src/public/avm/opcodes/instruction_impl.ts +2 -2
- package/src/public/avm/opcodes/memory.ts +81 -42
- package/src/public/avm/opcodes/misc.ts +61 -19
- package/src/public/avm/opcodes/storage.ts +47 -23
- package/src/public/avm/revert_reason.ts +58 -0
- package/src/public/avm/serialization/buffer_cursor.ts +4 -1
- package/src/public/avm/serialization/bytecode_serialization.ts +89 -80
- package/src/public/avm/serialization/instruction_serialization.ts +75 -34
- package/src/public/avm/test_utils.ts +25 -42
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +76 -0
- package/src/public/debug_fn_name.ts +52 -0
- package/src/public/executor_metrics.ts +49 -23
- 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 +83 -0
- package/src/public/fixtures/custom_bytecode_tests.ts +228 -0
- package/src/public/fixtures/index.ts +13 -0
- package/src/public/fixtures/minimal_public_tx.ts +26 -0
- package/src/public/fixtures/opcode_spammer.ts +1721 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +223 -114
- package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +37 -20
- package/src/public/fixtures/token_test.ts +148 -0
- package/src/public/fixtures/utils.ts +141 -69
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
- package/src/public/hinting_db_sources.ts +607 -0
- package/src/public/index.ts +11 -8
- package/src/public/public_db_sources.ts +290 -260
- package/src/public/public_errors.ts +14 -0
- package/src/public/public_processor/guarded_merkle_tree.ts +158 -0
- package/src/public/public_processor/public_processor.ts +257 -179
- package/src/public/public_processor/public_processor_metrics.ts +18 -46
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +124 -0
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +211 -0
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
- package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
- package/src/public/public_tx_simulator/factories.ts +43 -0
- package/src/public/public_tx_simulator/index.ts +7 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +105 -0
- package/src/public/public_tx_simulator/public_tx_context.ts +179 -199
- package/src/public/public_tx_simulator/public_tx_simulator.ts +316 -263
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +33 -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 +99 -322
- package/src/public/side_effect_trace_interface.ts +11 -59
- package/src/public/state_manager/index.ts +1 -0
- package/src/public/{avm/journal → state_manager}/nullifiers.ts +6 -12
- package/src/public/{avm/journal → state_manager}/public_storage.ts +3 -3
- package/src/public/state_manager/state_manager.ts +569 -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.js +0 -62
- 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/debug_fn_name.ts +0 -18
- 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
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
5
3
|
import type { FunctionsOf } from '@aztec/foundation/types';
|
|
6
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -14,6 +12,7 @@ export declare abstract class MemoryValue {
|
|
|
14
12
|
abstract lt(rhs: MemoryValue): boolean;
|
|
15
13
|
abstract build(n: bigint): MemoryValue;
|
|
16
14
|
abstract toBigInt(): bigint;
|
|
15
|
+
getTag(): TypeTag;
|
|
17
16
|
abstract toBuffer(): Buffer;
|
|
18
17
|
toFr(): Fr;
|
|
19
18
|
toAztecAddress(): AztecAddress;
|
|
@@ -32,26 +31,28 @@ export declare abstract class IntegralValue extends MemoryValue {
|
|
|
32
31
|
declare const Uint1_base: {
|
|
33
32
|
new (n: number | bigint): {
|
|
34
33
|
readonly n: bigint;
|
|
35
|
-
build(n: bigint): any;
|
|
36
|
-
add(rhs: any): any;
|
|
37
|
-
sub(rhs: any): any;
|
|
38
|
-
mul(rhs: any): any;
|
|
39
|
-
div(rhs: any): any;
|
|
40
|
-
shr(rhs: any): any;
|
|
41
|
-
shl(rhs: any): any;
|
|
42
|
-
and(rhs: any): any;
|
|
43
|
-
or(rhs: any): any;
|
|
44
|
-
xor(rhs: any): any;
|
|
45
|
-
not(): any;
|
|
46
|
-
equals(rhs: any): boolean;
|
|
47
|
-
lt(rhs: any): boolean;
|
|
34
|
+
build(n: bigint): /*elided*/ any;
|
|
35
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
36
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
37
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
38
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
39
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
40
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
41
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
42
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
43
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
44
|
+
not(): /*elided*/ any;
|
|
45
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
46
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
48
47
|
toBigInt(): bigint;
|
|
49
|
-
toBuffer(): Buffer
|
|
48
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
49
|
+
getTag(): TypeTag;
|
|
50
50
|
toFr(): Fr;
|
|
51
51
|
toAztecAddress(): AztecAddress;
|
|
52
52
|
toNumber(): number;
|
|
53
53
|
toString(): string;
|
|
54
54
|
};
|
|
55
|
+
readonly bits: number;
|
|
55
56
|
readonly mod: bigint;
|
|
56
57
|
readonly bitmask: bigint;
|
|
57
58
|
};
|
|
@@ -60,26 +61,28 @@ export declare class Uint1 extends Uint1_base {
|
|
|
60
61
|
declare const Uint8_base: {
|
|
61
62
|
new (n: number | bigint): {
|
|
62
63
|
readonly n: bigint;
|
|
63
|
-
build(n: bigint): any;
|
|
64
|
-
add(rhs: any): any;
|
|
65
|
-
sub(rhs: any): any;
|
|
66
|
-
mul(rhs: any): any;
|
|
67
|
-
div(rhs: any): any;
|
|
68
|
-
shr(rhs: any): any;
|
|
69
|
-
shl(rhs: any): any;
|
|
70
|
-
and(rhs: any): any;
|
|
71
|
-
or(rhs: any): any;
|
|
72
|
-
xor(rhs: any): any;
|
|
73
|
-
not(): any;
|
|
74
|
-
equals(rhs: any): boolean;
|
|
75
|
-
lt(rhs: any): boolean;
|
|
64
|
+
build(n: bigint): /*elided*/ any;
|
|
65
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
66
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
67
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
68
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
69
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
70
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
71
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
72
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
73
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
74
|
+
not(): /*elided*/ any;
|
|
75
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
76
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
76
77
|
toBigInt(): bigint;
|
|
77
|
-
toBuffer(): Buffer
|
|
78
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
79
|
+
getTag(): TypeTag;
|
|
78
80
|
toFr(): Fr;
|
|
79
81
|
toAztecAddress(): AztecAddress;
|
|
80
82
|
toNumber(): number;
|
|
81
83
|
toString(): string;
|
|
82
84
|
};
|
|
85
|
+
readonly bits: number;
|
|
83
86
|
readonly mod: bigint;
|
|
84
87
|
readonly bitmask: bigint;
|
|
85
88
|
};
|
|
@@ -88,26 +91,28 @@ export declare class Uint8 extends Uint8_base {
|
|
|
88
91
|
declare const Uint16_base: {
|
|
89
92
|
new (n: number | bigint): {
|
|
90
93
|
readonly n: bigint;
|
|
91
|
-
build(n: bigint): any;
|
|
92
|
-
add(rhs: any): any;
|
|
93
|
-
sub(rhs: any): any;
|
|
94
|
-
mul(rhs: any): any;
|
|
95
|
-
div(rhs: any): any;
|
|
96
|
-
shr(rhs: any): any;
|
|
97
|
-
shl(rhs: any): any;
|
|
98
|
-
and(rhs: any): any;
|
|
99
|
-
or(rhs: any): any;
|
|
100
|
-
xor(rhs: any): any;
|
|
101
|
-
not(): any;
|
|
102
|
-
equals(rhs: any): boolean;
|
|
103
|
-
lt(rhs: any): boolean;
|
|
94
|
+
build(n: bigint): /*elided*/ any;
|
|
95
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
96
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
97
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
98
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
99
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
100
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
101
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
102
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
103
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
104
|
+
not(): /*elided*/ any;
|
|
105
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
106
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
104
107
|
toBigInt(): bigint;
|
|
105
|
-
toBuffer(): Buffer
|
|
108
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
109
|
+
getTag(): TypeTag;
|
|
106
110
|
toFr(): Fr;
|
|
107
111
|
toAztecAddress(): AztecAddress;
|
|
108
112
|
toNumber(): number;
|
|
109
113
|
toString(): string;
|
|
110
114
|
};
|
|
115
|
+
readonly bits: number;
|
|
111
116
|
readonly mod: bigint;
|
|
112
117
|
readonly bitmask: bigint;
|
|
113
118
|
};
|
|
@@ -116,26 +121,28 @@ export declare class Uint16 extends Uint16_base {
|
|
|
116
121
|
declare const Uint32_base: {
|
|
117
122
|
new (n: number | bigint): {
|
|
118
123
|
readonly n: bigint;
|
|
119
|
-
build(n: bigint): any;
|
|
120
|
-
add(rhs: any): any;
|
|
121
|
-
sub(rhs: any): any;
|
|
122
|
-
mul(rhs: any): any;
|
|
123
|
-
div(rhs: any): any;
|
|
124
|
-
shr(rhs: any): any;
|
|
125
|
-
shl(rhs: any): any;
|
|
126
|
-
and(rhs: any): any;
|
|
127
|
-
or(rhs: any): any;
|
|
128
|
-
xor(rhs: any): any;
|
|
129
|
-
not(): any;
|
|
130
|
-
equals(rhs: any): boolean;
|
|
131
|
-
lt(rhs: any): boolean;
|
|
124
|
+
build(n: bigint): /*elided*/ any;
|
|
125
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
126
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
127
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
128
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
129
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
130
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
131
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
132
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
133
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
134
|
+
not(): /*elided*/ any;
|
|
135
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
136
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
132
137
|
toBigInt(): bigint;
|
|
133
|
-
toBuffer(): Buffer
|
|
138
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
139
|
+
getTag(): TypeTag;
|
|
134
140
|
toFr(): Fr;
|
|
135
141
|
toAztecAddress(): AztecAddress;
|
|
136
142
|
toNumber(): number;
|
|
137
143
|
toString(): string;
|
|
138
144
|
};
|
|
145
|
+
readonly bits: number;
|
|
139
146
|
readonly mod: bigint;
|
|
140
147
|
readonly bitmask: bigint;
|
|
141
148
|
};
|
|
@@ -144,26 +151,28 @@ export declare class Uint32 extends Uint32_base {
|
|
|
144
151
|
declare const Uint64_base: {
|
|
145
152
|
new (n: number | bigint): {
|
|
146
153
|
readonly n: bigint;
|
|
147
|
-
build(n: bigint): any;
|
|
148
|
-
add(rhs: any): any;
|
|
149
|
-
sub(rhs: any): any;
|
|
150
|
-
mul(rhs: any): any;
|
|
151
|
-
div(rhs: any): any;
|
|
152
|
-
shr(rhs: any): any;
|
|
153
|
-
shl(rhs: any): any;
|
|
154
|
-
and(rhs: any): any;
|
|
155
|
-
or(rhs: any): any;
|
|
156
|
-
xor(rhs: any): any;
|
|
157
|
-
not(): any;
|
|
158
|
-
equals(rhs: any): boolean;
|
|
159
|
-
lt(rhs: any): boolean;
|
|
154
|
+
build(n: bigint): /*elided*/ any;
|
|
155
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
156
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
157
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
158
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
159
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
160
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
161
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
162
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
163
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
164
|
+
not(): /*elided*/ any;
|
|
165
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
166
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
160
167
|
toBigInt(): bigint;
|
|
161
|
-
toBuffer(): Buffer
|
|
168
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
169
|
+
getTag(): TypeTag;
|
|
162
170
|
toFr(): Fr;
|
|
163
171
|
toAztecAddress(): AztecAddress;
|
|
164
172
|
toNumber(): number;
|
|
165
173
|
toString(): string;
|
|
166
174
|
};
|
|
175
|
+
readonly bits: number;
|
|
167
176
|
readonly mod: bigint;
|
|
168
177
|
readonly bitmask: bigint;
|
|
169
178
|
};
|
|
@@ -172,26 +181,28 @@ export declare class Uint64 extends Uint64_base {
|
|
|
172
181
|
declare const Uint128_base: {
|
|
173
182
|
new (n: number | bigint): {
|
|
174
183
|
readonly n: bigint;
|
|
175
|
-
build(n: bigint): any;
|
|
176
|
-
add(rhs: any): any;
|
|
177
|
-
sub(rhs: any): any;
|
|
178
|
-
mul(rhs: any): any;
|
|
179
|
-
div(rhs: any): any;
|
|
180
|
-
shr(rhs: any): any;
|
|
181
|
-
shl(rhs: any): any;
|
|
182
|
-
and(rhs: any): any;
|
|
183
|
-
or(rhs: any): any;
|
|
184
|
-
xor(rhs: any): any;
|
|
185
|
-
not(): any;
|
|
186
|
-
equals(rhs: any): boolean;
|
|
187
|
-
lt(rhs: any): boolean;
|
|
184
|
+
build(n: bigint): /*elided*/ any;
|
|
185
|
+
add(rhs: /*elided*/ any): /*elided*/ any;
|
|
186
|
+
sub(rhs: /*elided*/ any): /*elided*/ any;
|
|
187
|
+
mul(rhs: /*elided*/ any): /*elided*/ any;
|
|
188
|
+
div(rhs: /*elided*/ any): /*elided*/ any;
|
|
189
|
+
shr(rhs: /*elided*/ any): /*elided*/ any;
|
|
190
|
+
shl(rhs: /*elided*/ any): /*elided*/ any;
|
|
191
|
+
and(rhs: /*elided*/ any): /*elided*/ any;
|
|
192
|
+
or(rhs: /*elided*/ any): /*elided*/ any;
|
|
193
|
+
xor(rhs: /*elided*/ any): /*elided*/ any;
|
|
194
|
+
not(): /*elided*/ any;
|
|
195
|
+
equals(rhs: /*elided*/ any): boolean;
|
|
196
|
+
lt(rhs: /*elided*/ any): boolean;
|
|
188
197
|
toBigInt(): bigint;
|
|
189
|
-
toBuffer(): Buffer
|
|
198
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
199
|
+
getTag(): TypeTag;
|
|
190
200
|
toFr(): Fr;
|
|
191
201
|
toAztecAddress(): AztecAddress;
|
|
192
202
|
toNumber(): number;
|
|
193
203
|
toString(): string;
|
|
194
204
|
};
|
|
205
|
+
readonly bits: number;
|
|
195
206
|
readonly mod: bigint;
|
|
196
207
|
readonly bitmask: bigint;
|
|
197
208
|
};
|
|
@@ -242,7 +253,7 @@ export declare class TaggedMemory implements TaggedMemoryInterface {
|
|
|
242
253
|
* Check that the memory at the given offset matches the specified tag.
|
|
243
254
|
*/
|
|
244
255
|
checkTag(tag: TypeTag, offset: number): void;
|
|
245
|
-
|
|
256
|
+
static isValidMemoryAddressTag(tag: TypeTag): tag is TypeTag.UINT32;
|
|
246
257
|
static checkIsIntegralTag(tag: TypeTag): void;
|
|
247
258
|
static checkIsValidTag(tagNumber: number): void;
|
|
248
259
|
/**
|
|
@@ -261,4 +272,4 @@ export declare class TaggedMemory implements TaggedMemoryInterface {
|
|
|
261
272
|
static buildFromTagTruncating(v: bigint | number, tag: TypeTag): MemoryValue;
|
|
262
273
|
}
|
|
263
274
|
export {};
|
|
264
|
-
//# sourceMappingURL=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU0zRCxzRUFBc0U7QUFDdEUsOEJBQXNCLFdBQVc7SUFDL0IsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25ELFNBQWdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuRCxTQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkQsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBRW5ELFNBQWdCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUNsRCxTQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFHOUMsU0FBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBRzlDLFNBQWdCLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDNUIsTUFBTSxJQUFJLE9BQU8sQ0FFdkI7SUFHRCxTQUFnQixRQUFRLElBQUksTUFBTSxDQUFDO0lBRzVCLElBQUksSUFBSSxFQUFFLENBRWhCO0lBRU0sY0FBYyxJQUFJLFlBQVksQ0FFcEM7SUFHTSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVNLFFBQVEsSUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_memory_types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_memory_types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { MEM_TAG_FF, MEM_TAG_U1, MEM_TAG_U8, MEM_TAG_U16, MEM_TAG_U32, MEM_TAG_U64, MEM_TAG_U128 } from '@aztec/constants';
|
|
2
2
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
6
|
import { strict as assert } from 'assert';
|
|
7
7
|
import { InvalidTagValueError, MemorySliceOutOfRangeError, TagCheckError } from './errors.js';
|
|
8
8
|
/** MemoryValue gathers the common operations for all memory types. */ export class MemoryValue {
|
|
9
|
+
getTag() {
|
|
10
|
+
return TaggedMemory.getTag(this);
|
|
11
|
+
}
|
|
9
12
|
// To field
|
|
10
13
|
toFr() {
|
|
11
14
|
return new Fr(this.toBigInt());
|
|
@@ -28,12 +31,14 @@ import { InvalidTagValueError, MemorySliceOutOfRangeError, TagCheckError } from
|
|
|
28
31
|
* In TypeScript terms, it's a class mixin.
|
|
29
32
|
**/ function UnsignedIntegerClassFactory(bits) {
|
|
30
33
|
return class NewUintClass extends IntegralValue {
|
|
34
|
+
static bits = bits;
|
|
31
35
|
static mod = 1n << BigInt(bits);
|
|
32
36
|
static bitmask = this.mod - 1n;
|
|
33
37
|
n;
|
|
34
38
|
constructor(n){
|
|
35
39
|
super();
|
|
36
40
|
this.n = BigInt(n);
|
|
41
|
+
assert(n >= 0n, `${this.constructor.name} cannot handle negative values: ${n}.`);
|
|
37
42
|
assert(n < NewUintClass.mod, `Value ${n} is too large for ${this.constructor.name}.`);
|
|
38
43
|
}
|
|
39
44
|
build(n) {
|
|
@@ -54,11 +59,17 @@ import { InvalidTagValueError, MemorySliceOutOfRangeError, TagCheckError } from
|
|
|
54
59
|
}
|
|
55
60
|
// No sign extension.
|
|
56
61
|
shr(rhs) {
|
|
57
|
-
// Note that this.n is
|
|
62
|
+
// Note that this.n is >= 0 by class invariant.
|
|
58
63
|
return this.build(this.n >> rhs.n);
|
|
59
64
|
}
|
|
60
65
|
shl(rhs) {
|
|
61
|
-
|
|
66
|
+
const shiftAmount = rhs.n;
|
|
67
|
+
const bitSize = BigInt(NewUintClass.bits);
|
|
68
|
+
// Shifting by more than the bit size always results in 0
|
|
69
|
+
if (shiftAmount >= bitSize) {
|
|
70
|
+
return this.build(0n);
|
|
71
|
+
}
|
|
72
|
+
return this.build(this.n << shiftAmount & NewUintClass.bitmask);
|
|
62
73
|
}
|
|
63
74
|
and(rhs) {
|
|
64
75
|
return this.build(this.n & rhs.n);
|
|
@@ -176,7 +187,7 @@ export class TaggedMemory {
|
|
|
176
187
|
getAs(offset) {
|
|
177
188
|
assert(Number.isInteger(offset) && offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
178
189
|
const word = this._mem.get(offset);
|
|
179
|
-
//TaggedMemory.log.trace(`
|
|
190
|
+
//TaggedMemory.log.trace(`Memory read: ${offset} -> ${word}`);
|
|
180
191
|
if (word === undefined) {
|
|
181
192
|
TaggedMemory.log.debug(`WARNING: Memory at offset ${offset} is undefined!`);
|
|
182
193
|
return new Field(0);
|
|
@@ -204,7 +215,7 @@ export class TaggedMemory {
|
|
|
204
215
|
set(offset, v) {
|
|
205
216
|
assert(Number.isInteger(offset) && offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
206
217
|
this._mem.set(offset, v);
|
|
207
|
-
//TaggedMemory.log.trace(`
|
|
218
|
+
//TaggedMemory.log.trace(`Memory write: ${offset} <- ${v}`);
|
|
208
219
|
}
|
|
209
220
|
setSlice(offset, slice) {
|
|
210
221
|
assert(Number.isInteger(offset));
|
|
@@ -228,8 +239,8 @@ export class TaggedMemory {
|
|
|
228
239
|
throw TagCheckError.forOffset(offset, TypeTag[gotTag], TypeTag[tag]);
|
|
229
240
|
}
|
|
230
241
|
}
|
|
231
|
-
|
|
232
|
-
|
|
242
|
+
static isValidMemoryAddressTag(tag) {
|
|
243
|
+
return tag === TypeTag.UINT32;
|
|
233
244
|
}
|
|
234
245
|
static checkIsIntegralTag(tag) {
|
|
235
246
|
if (!INTEGRAL_TAGS.has(tag)) {
|
|
@@ -257,6 +268,9 @@ export class TaggedMemory {
|
|
|
257
268
|
/**
|
|
258
269
|
* Check tags for all memory in the specified range.
|
|
259
270
|
*/ checkTagsRange(tag, startOffset, size) {
|
|
271
|
+
if (startOffset + size > TaggedMemory.MAX_MEMORY_SIZE) {
|
|
272
|
+
throw new MemorySliceOutOfRangeError(startOffset, size);
|
|
273
|
+
}
|
|
260
274
|
for(let offset = startOffset; offset < startOffset + size; offset++){
|
|
261
275
|
this.checkTag(tag, offset);
|
|
262
276
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
4
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
4
|
import type { GlobalVariables } from '@aztec/stdlib/tx';
|
|
5
|
+
import type { PublicPersistableStateManager } from '../state_manager/state_manager.js';
|
|
6
6
|
import { AvmContext } from './avm_context.js';
|
|
7
7
|
import { AvmContractCallResult } from './avm_contract_call_result.js';
|
|
8
8
|
import type { Gas } from './avm_gas.js';
|
|
9
|
-
import type {
|
|
9
|
+
import type { AvmSimulatorInterface } from './avm_simulator_interface.js';
|
|
10
|
+
import { type CallData } from './calldata.js';
|
|
10
11
|
import { type InstructionSet } from './serialization/bytecode_serialization.js';
|
|
11
|
-
export declare class AvmSimulator {
|
|
12
|
+
export declare class AvmSimulator implements AvmSimulatorInterface {
|
|
12
13
|
private context;
|
|
13
14
|
private instructionSet;
|
|
14
15
|
private log;
|
|
@@ -19,7 +20,7 @@ export declare class AvmSimulator {
|
|
|
19
20
|
private tallyInstructionFunction;
|
|
20
21
|
constructor(context: AvmContext, instructionSet?: InstructionSet, enableTallying?: boolean);
|
|
21
22
|
static build(context: AvmContext): Promise<AvmSimulator>;
|
|
22
|
-
static create(stateManager:
|
|
23
|
+
static create(stateManager: PublicPersistableStateManager, address: AztecAddress, sender: AztecAddress, transactionFee: Fr, globals: GlobalVariables, isStaticCall: boolean, calldata: CallData, allocatedGas: Gas, config: PublicSimulatorConfig): Promise<AvmSimulator>;
|
|
23
24
|
/**
|
|
24
25
|
* Fetch the bytecode and execute it in the current context.
|
|
25
26
|
*/
|
|
@@ -37,4 +38,4 @@ export declare class AvmSimulator {
|
|
|
37
38
|
private tallyInstruction;
|
|
38
39
|
private printOpcodeTallies;
|
|
39
40
|
}
|
|
40
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9hdm0vYXZtX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUt4RCxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBSS9ELE9BQU8sRUFFTCxLQUFLLGNBQWMsRUFFcEIsTUFBTSwyQ0FBMkMsQ0FBQztBQU9uRCxxQkFBYSxZQUFhLFlBQVcscUJBQXFCO0lBYXRELE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLGNBQWM7SUFieEIsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUNwQixPQUFPLENBQUMsUUFBUSxDQUFxQjtJQUNyQyxPQUFPLENBQUMsYUFBYSxDQUF1QztJQUU1RCxPQUFPLENBQUMsNkJBQTZCLENBQWlEO0lBRXRGLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBWTtJQUN0QyxPQUFPLENBQUMsd0JBQXdCLENBQStCO0lBSS9ELFlBQ1UsT0FBTyxFQUFFLFVBQVUsRUFDbkIsY0FBYyxHQUFFLGNBQWdDLEVBQ3hELGNBQWMsVUFBUSxFQVd2QjtJQUlELE9BQW9CLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FNcEU7SUFFRCxPQUFvQixNQUFNLENBQ3hCLFlBQVksRUFBRSw2QkFBNkIsRUFDM0MsT0FBTyxFQUFFLFlBQVksRUFDckIsTUFBTSxFQUFFLFlBQVksRUFDcEIsY0FBYyxFQUFFLEVBQUUsRUFDbEIsT0FBTyxFQUFFLGVBQWUsRUFDeEIsWUFBWSxFQUFFLE9BQU8sRUFDckIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsWUFBWSxFQUFFLEdBQUcsRUFDakIsTUFBTSxFQUFFLHFCQUFxQix5QkFnQjlCO0lBRUQ7O09BRUc7SUFDVSxPQUFPLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBWXJEO0lBRUQ7O09BRUc7SUFDSSxXQUFXLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FFdkM7SUFFRDs7O09BR0c7SUFDVSxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0ErRzdFO1lBRWEsK0JBQStCO0lBdUI3QyxPQUFPLENBQUMsZ0JBQWdCO0lBUXhCLE9BQU8sQ0FBQyxrQkFBa0I7Q0FTM0IifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAI/D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAOnD,qBAAa,YAAa,YAAW,qBAAqB;IAatD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,6BAA6B,CAAiD;IAEtF,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,wBAAwB,CAA+B;IAI/D,YACU,OAAO,EAAE,UAAU,EACnB,cAAc,GAAE,cAAgC,EACxD,cAAc,UAAQ,EAWvB;IAID,OAAoB,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAMpE;IAED,OAAoB,MAAM,CACxB,YAAY,EAAE,6BAA6B,EAC3C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,GAAG,EACjB,MAAM,EAAE,qBAAqB,yBAgB9B;IAED;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAYrD;IAED;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+G7E;YAEa,+BAA+B;IAuB7C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;CAS3B"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import { strict as assert } from 'assert';
|
|
5
|
-
import {
|
|
5
|
+
import { CheckedPublicExecutionError } from '../public_errors.js';
|
|
6
6
|
import { AvmContext } from './avm_context.js';
|
|
7
7
|
import { AvmContractCallResult } from './avm_contract_call_result.js';
|
|
8
8
|
import { AvmExecutionEnvironment } from './avm_execution_environment.js';
|
|
9
9
|
import { AvmMachineState } from './avm_machine_state.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { ReturnDataArray } from './calldata.js';
|
|
11
|
+
import { AvmRevertReason, InvalidProgramCounterError } from './errors.js';
|
|
12
|
+
import { revertReasonFromExceptionalHalt, revertReasonFromExplicitRevert } from './revert_reason.js';
|
|
12
13
|
import { INSTRUCTION_SET, decodeInstructionFromBytecode } from './serialization/bytecode_serialization.js';
|
|
13
14
|
export class AvmSimulator {
|
|
14
15
|
context;
|
|
@@ -32,8 +33,7 @@ export class AvmSimulator {
|
|
|
32
33
|
// This will be used by the CALL opcode to create a new simulator. It is required to
|
|
33
34
|
// avoid a dependency cycle.
|
|
34
35
|
context.provideSimulator = AvmSimulator.build;
|
|
35
|
-
|
|
36
|
-
this.log = createLogger(`simulator:avm(calldata[0]: ${context.environment.calldata[0]})`);
|
|
36
|
+
this.log = createLogger(`simulator:avm(calldata[0]: ${context.environment.calldata.read(0)})`);
|
|
37
37
|
// Turn on tallying if explicitly enabled or if trace logging
|
|
38
38
|
if (enableTallying || this.log.isLevelEnabled('trace')) {
|
|
39
39
|
this.tallyPrintFunction = this.printOpcodeTallies;
|
|
@@ -48,8 +48,8 @@ export class AvmSimulator {
|
|
|
48
48
|
simulator.log = createLogger(`simulator:avm(f:${fnName})`);
|
|
49
49
|
return simulator;
|
|
50
50
|
}
|
|
51
|
-
static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas) {
|
|
52
|
-
const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata);
|
|
51
|
+
static async create(stateManager, address, sender, transactionFee, globals, isStaticCall, calldata, allocatedGas, config) {
|
|
52
|
+
const avmExecutionEnv = new AvmExecutionEnvironment(address, sender, /*contractCallDepth=*/ Fr.zero(), transactionFee, globals, isStaticCall, calldata, config);
|
|
53
53
|
const avmMachineState = new AvmMachineState(allocatedGas);
|
|
54
54
|
const avmContext = new AvmContext(stateManager, avmExecutionEnv, avmMachineState);
|
|
55
55
|
return await AvmSimulator.build(avmContext);
|
|
@@ -57,18 +57,11 @@ export class AvmSimulator {
|
|
|
57
57
|
/**
|
|
58
58
|
* Fetch the bytecode and execute it in the current context.
|
|
59
59
|
*/ async execute() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
} catch (err) {
|
|
64
|
-
if (!(err instanceof AvmExecutionError || err instanceof SideEffectLimitReachedError)) {
|
|
65
|
-
this.log.error(`Unknown error thrown by AVM during bytecode retrieval: ${err}`);
|
|
66
|
-
throw err;
|
|
67
|
-
}
|
|
68
|
-
return await this.handleFailureToRetrieveBytecode(`Bytecode retrieval for contract '${this.context.environment.address}' failed with ${err}. Reverting...`);
|
|
69
|
-
}
|
|
60
|
+
const bytecode = await this.context.persistableState.getBytecode(this.context.environment.address);
|
|
61
|
+
// getBytecode returns undefined if bytecode is not found or if the limit of contract calls to unique class IDs is reached.
|
|
62
|
+
// If it throws an error that reaches this point, it is a bug.
|
|
70
63
|
if (!bytecode) {
|
|
71
|
-
return await this.handleFailureToRetrieveBytecode(`No bytecode found
|
|
64
|
+
return await this.handleFailureToRetrieveBytecode(`No bytecode found. Contract is not deployed, or limit encountered for max calls to unique contract class IDs. Contract address: ${this.context.environment.address}. Reverting...`);
|
|
72
65
|
}
|
|
73
66
|
return await this.executeBytecode(bytecode);
|
|
74
67
|
}
|
|
@@ -81,16 +74,15 @@ export class AvmSimulator {
|
|
|
81
74
|
* Executes the provided bytecode in the current context.
|
|
82
75
|
* This method is useful for testing and debugging.
|
|
83
76
|
*/ async executeBytecode(bytecode) {
|
|
84
|
-
const
|
|
85
|
-
assert(isAvmBytecode(bytecode), "AVM simulator can't execute non-AVM bytecode");
|
|
77
|
+
const timer = new Timer();
|
|
86
78
|
assert(bytecode.length > 0, "AVM simulator can't execute empty bytecode");
|
|
87
79
|
this.bytecode = bytecode;
|
|
80
|
+
let instructionName = 'NONE'; // This is used for logging purposes
|
|
88
81
|
const { machineState } = this.context;
|
|
89
82
|
const callStartGas = machineState.gasLeft; // Save gas before executing instruction (for profiling)
|
|
90
83
|
try {
|
|
91
84
|
// Execute instruction pointed to by the current program counter
|
|
92
85
|
// continuing until the machine state signifies a halt
|
|
93
|
-
let instrCounter = 0;
|
|
94
86
|
while(!machineState.getHalted()){
|
|
95
87
|
// Get the instruction from cache, or deserialize for the first time
|
|
96
88
|
let cachedInstruction = this.deserializedInstructionsCache.get(machineState.pc);
|
|
@@ -102,10 +94,10 @@ export class AvmSimulator {
|
|
|
102
94
|
const instrStartGas = machineState.gasLeft; // Save gas before executing instruction (for profiling)
|
|
103
95
|
if (this.log.isLevelEnabled('trace')) {
|
|
104
96
|
// Skip this entirely to avoid toStringing etc if trace is not enabled
|
|
105
|
-
this.log.trace(`[PC:${machineState.pc}] [IC:${instrCounter}] ${instruction.toString()} (gasLeft l2=${machineState.l2GasLeft} da=${machineState.daGasLeft})`);
|
|
97
|
+
this.log.trace(`[PC:${machineState.pc}] [IC:${machineState.instrCounter}] ${instruction.toString()} (gasLeft l2=${machineState.l2GasLeft} da=${machineState.daGasLeft})`);
|
|
106
98
|
}
|
|
107
|
-
instrCounter++;
|
|
108
99
|
machineState.nextPc = machineState.pc + bytesRead;
|
|
100
|
+
instructionName = instruction.constructor.name;
|
|
109
101
|
// Execute the instruction.
|
|
110
102
|
// Normal returns and reverts will return normally here.
|
|
111
103
|
// "Exceptional halts" will throw.
|
|
@@ -114,6 +106,7 @@ export class AvmSimulator {
|
|
|
114
106
|
// Increment PC if the instruction doesn't handle it itself
|
|
115
107
|
machineState.pc += bytesRead;
|
|
116
108
|
}
|
|
109
|
+
machineState.instrCounter++;
|
|
117
110
|
// gas used by this instruction - used for profiling/tallying
|
|
118
111
|
const gasUsed = {
|
|
119
112
|
l2Gas: instrStartGas.l2Gas - machineState.l2GasLeft,
|
|
@@ -122,32 +115,28 @@ export class AvmSimulator {
|
|
|
122
115
|
this.tallyInstructionFunction(instruction.constructor.name, gasUsed);
|
|
123
116
|
if (machineState.pc >= bytecode.length) {
|
|
124
117
|
this.log.warn('Passed end of program');
|
|
125
|
-
throw new InvalidProgramCounterError(machineState.pc, /*max=*/ bytecode.length);
|
|
118
|
+
throw new InvalidProgramCounterError(machineState.pc, /*max=*/ bytecode.length - 1);
|
|
126
119
|
}
|
|
127
120
|
}
|
|
128
121
|
const output = machineState.getOutput();
|
|
129
122
|
const reverted = machineState.getReverted();
|
|
130
|
-
const revertReason = reverted ? await revertReasonFromExplicitRevert(output, this.context) : undefined;
|
|
131
|
-
const results = new AvmContractCallResult(reverted, output, machineState.gasLeft, revertReason);
|
|
123
|
+
const revertReason = reverted ? await revertReasonFromExplicitRevert(output.bestEffortReadAll(), this.context) : undefined;
|
|
124
|
+
const results = new AvmContractCallResult(reverted, output, machineState.gasLeft, revertReason, machineState.instrCounter);
|
|
132
125
|
this.log.debug(`Context execution results: ${results.toString()}`);
|
|
133
126
|
const totalGasUsed = {
|
|
134
127
|
l2Gas: callStartGas.l2Gas - machineState.l2GasLeft,
|
|
135
128
|
daGas: callStartGas.daGas - machineState.daGasLeft
|
|
136
129
|
};
|
|
137
|
-
this.log.debug(`Executed ${instrCounter} instructions and consumed ${totalGasUsed.l2Gas} L2 Gas`);
|
|
130
|
+
this.log.debug(`Executed ${machineState.instrCounter} instructions and consumed ${totalGasUsed.l2Gas} L2 Gas`);
|
|
138
131
|
this.tallyPrintFunction();
|
|
139
|
-
|
|
140
|
-
const totalTime = endTotalTime - startTotalTime;
|
|
141
|
-
this.log.debug(`Core AVM simulation took ${totalTime}ms`);
|
|
132
|
+
this.log.debug(`Core AVM simulation took ${timer.ms()}ms`);
|
|
142
133
|
// Return results for processing by calling context
|
|
143
134
|
return results;
|
|
144
135
|
} catch (err) {
|
|
145
|
-
this.log.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (!(err.constructor.name == 'OutOfGasError' || err instanceof AvmExecutionError || err instanceof SideEffectLimitReachedError)) {
|
|
150
|
-
this.log.error(`Unknown error thrown by AVM: ${err}`);
|
|
136
|
+
this.log.info(`Exceptional halt (revert by something other than REVERT opcode) for instruction
|
|
137
|
+
${instructionName} at pc ${machineState.pc} and instruction counter ${machineState.instrCounter}`);
|
|
138
|
+
if (!(err instanceof CheckedPublicExecutionError)) {
|
|
139
|
+
this.log.error(`Unchecked/unknown error thrown by AVM. This is a bug. Error: ${err}`);
|
|
151
140
|
throw err;
|
|
152
141
|
}
|
|
153
142
|
const revertReason = await revertReasonFromExceptionalHalt(err, this.context);
|
|
@@ -157,7 +146,7 @@ export class AvmSimulator {
|
|
|
157
146
|
daGas: 0
|
|
158
147
|
};
|
|
159
148
|
// Note: "exceptional halts" cannot return data, hence [].
|
|
160
|
-
const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], noGasLeft, revertReason);
|
|
149
|
+
const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ new ReturnDataArray([]), noGasLeft, revertReason, machineState.instrCounter);
|
|
161
150
|
this.log.debug(`Context execution results: ${results.toString()}`);
|
|
162
151
|
this.tallyPrintFunction();
|
|
163
152
|
// Return results for processing by calling context
|
|
@@ -166,13 +155,14 @@ export class AvmSimulator {
|
|
|
166
155
|
}
|
|
167
156
|
async handleFailureToRetrieveBytecode(message) {
|
|
168
157
|
// revert, consuming all gas
|
|
169
|
-
const
|
|
158
|
+
const { functionSelector, functionName } = await this.context.persistableState.getPublicFunctionSelectorAndName(this.context.environment);
|
|
170
159
|
const revertReason = new AvmRevertReason(message, /*failingFunction=*/ {
|
|
171
160
|
contractAddress: this.context.environment.address,
|
|
172
|
-
|
|
161
|
+
functionSelector,
|
|
162
|
+
functionName
|
|
173
163
|
}, /*noirCallStack=*/ []);
|
|
174
164
|
this.log.warn(message);
|
|
175
|
-
return new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], /*gasLeft=*/ {
|
|
165
|
+
return new AvmContractCallResult(/*reverted=*/ true, /*output=*/ new ReturnDataArray([]), /*gasLeft=*/ {
|
|
176
166
|
l2Gas: 0,
|
|
177
167
|
daGas: 0
|
|
178
168
|
}, revertReason);
|