@aztec/simulator 0.0.0-test.1 → 0.0.1-commit.5daedc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dest/client.d.ts +6 -4
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +4 -2
- package/dest/common/errors.d.ts +5 -14
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +51 -32
- package/dest/common/index.d.ts +1 -2
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +0 -1
- package/dest/common/stats/index.d.ts +1 -1
- package/dest/common/stats/stats.d.ts +1 -1
- package/dest/private/acvm/acvm.d.ts +12 -6
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +10 -16
- package/dest/private/acvm/acvm_types.d.ts +2 -2
- package/dest/private/acvm/acvm_types.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.d.ts +18 -19
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +31 -23
- package/dest/private/acvm/index.d.ts +1 -2
- package/dest/private/acvm/index.d.ts.map +1 -1
- package/dest/private/acvm/index.js +0 -1
- package/dest/private/acvm/serialize.d.ts +20 -3
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +53 -0
- package/dest/private/acvm_native.d.ts +39 -0
- package/dest/private/acvm_native.d.ts.map +1 -0
- package/dest/private/{providers/acvm_native.js → acvm_native.js} +26 -20
- package/dest/private/acvm_wasm.d.ts +15 -0
- package/dest/private/acvm_wasm.d.ts.map +1 -0
- package/dest/private/{providers/acvm_wasm.js → acvm_wasm.js} +22 -19
- package/dest/private/acvm_wasm_with_blobs.d.ts +20 -0
- package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -0
- package/dest/private/acvm_wasm_with_blobs.js +35 -0
- package/dest/private/circuit_recording/circuit_recorder.d.ts +108 -0
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/circuit_recorder.js +209 -0
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +31 -0
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/file_circuit_recorder.js +135 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +5 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
- package/dest/private/circuit_recording/memory_circuit_recorder.js +9 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +21 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
- package/dest/private/circuit_recording/simulator_recorder_wrapper.js +44 -0
- package/dest/private/circuit_simulator.d.ts +35 -0
- package/dest/private/circuit_simulator.d.ts.map +1 -0
- package/dest/private/circuit_simulator.js +43 -0
- package/dest/private/factory.d.ts +12 -0
- package/dest/private/factory.d.ts.map +1 -0
- package/dest/private/{providers/factory.js → factory.js} +2 -2
- package/dest/public/avm/avm_context.d.ts +6 -6
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +5 -3
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +11 -7
- package/dest/public/avm/avm_execution_environment.d.ts +4 -2
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +4 -2
- package/dest/public/avm/avm_gas.d.ts +5 -21
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_gas.js +27 -35
- package/dest/public/avm/avm_machine_state.d.ts +3 -1
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.js +2 -0
- package/dest/public/avm/avm_memory_types.d.ts +99 -88
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +17 -6
- package/dest/public/avm/avm_simulator.d.ts +6 -6
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +23 -35
- package/dest/public/avm/avm_simulator_interface.d.ts +9 -0
- package/dest/public/avm/avm_simulator_interface.d.ts.map +1 -0
- package/dest/public/avm/avm_simulator_interface.js +3 -0
- package/dest/public/avm/errors.d.ts +7 -31
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/errors.js +7 -57
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +6 -5
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +22 -15
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +7 -5
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +37 -14
- package/dest/public/avm/fixtures/initializers.d.ts +42 -0
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -0
- package/dest/public/avm/fixtures/initializers.js +44 -0
- package/dest/public/avm/fixtures/utils.d.ts +38 -0
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -0
- package/dest/public/avm/fixtures/utils.js +95 -0
- package/dest/public/avm/index.d.ts +1 -3
- package/dest/public/avm/index.d.ts.map +1 -1
- package/dest/public/avm/index.js +0 -2
- package/dest/public/avm/opcodes/accrued_substate.d.ts +3 -3
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +28 -25
- package/dest/public/avm/opcodes/addressing_mode.d.ts +12 -8
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/public/avm/opcodes/addressing_mode.js +46 -26
- package/dest/public/avm/opcodes/arithmetic.d.ts +17 -7
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +16 -2
- package/dest/public/avm/opcodes/bitwise.d.ts +10 -18
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +19 -26
- package/dest/public/avm/opcodes/comparators.d.ts +4 -4
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/public/avm/opcodes/comparators.js +3 -3
- package/dest/public/avm/opcodes/contract.d.ts +2 -3
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +9 -10
- package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +10 -8
- package/dest/public/avm/opcodes/conversion.d.ts +2 -1
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +267 -3
- package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +6 -6
- package/dest/public/avm/opcodes/environment_getters.d.ts +3 -3
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +17 -19
- package/dest/public/avm/opcodes/external_calls.d.ts +9 -8
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +39 -34
- package/dest/public/avm/opcodes/hashing.d.ts +2 -2
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +6 -6
- package/dest/public/avm/opcodes/index.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction.d.ts +15 -11
- package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction.js +23 -19
- package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.d.ts +6 -6
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +37 -33
- package/dest/public/avm/opcodes/misc.d.ts +3 -2
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +41 -16
- package/dest/public/avm/opcodes/storage.d.ts +3 -3
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +7 -5
- package/dest/public/avm/revert_reason.d.ts +18 -0
- package/dest/public/avm/revert_reason.d.ts.map +1 -0
- package/dest/public/avm/revert_reason.js +38 -0
- package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -3
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +3 -7
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +70 -69
- package/dest/public/avm/serialization/instruction_serialization.d.ts +14 -5
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.js +70 -35
- package/dest/public/avm/test_utils.d.ts +11 -14
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +16 -24
- package/dest/public/contracts_db_checkpoint.d.ts +16 -0
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
- package/dest/public/contracts_db_checkpoint.js +30 -0
- package/dest/public/db_interfaces.d.ts +68 -0
- package/dest/public/db_interfaces.d.ts.map +1 -0
- package/dest/public/db_interfaces.js +3 -0
- package/dest/public/debug_fn_name.d.ts +5 -0
- package/dest/public/debug_fn_name.d.ts.map +1 -0
- package/dest/public/debug_fn_name.js +9 -0
- package/dest/public/executor_metrics.d.ts +12 -4
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +37 -6
- package/dest/public/executor_metrics_interface.d.ts +10 -0
- package/dest/public/executor_metrics_interface.d.ts.map +1 -0
- package/dest/public/executor_metrics_interface.js +1 -0
- package/dest/public/fixtures/amm_test.d.ts +10 -0
- package/dest/public/fixtures/amm_test.d.ts.map +1 -0
- package/dest/public/fixtures/amm_test.js +213 -0
- package/dest/public/fixtures/bulk_test.d.ts +6 -0
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -0
- package/dest/public/fixtures/bulk_test.js +326 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +12 -0
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tester.js +29 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +9 -0
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -0
- package/dest/public/fixtures/custom_bytecode_tests.js +109 -0
- package/dest/public/fixtures/index.d.ts +8 -1
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +7 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts +9 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -0
- package/dest/public/fixtures/minimal_public_tx.js +29 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +35 -14
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +100 -71
- package/dest/public/fixtures/simple_contract_data_source.d.ts +35 -0
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -0
- package/dest/public/{avm/fixtures → fixtures}/simple_contract_data_source.js +31 -10
- package/dest/public/fixtures/token_test.d.ts +8 -0
- package/dest/public/fixtures/token_test.d.ts.map +1 -0
- package/dest/public/fixtures/token_test.js +94 -0
- package/dest/public/fixtures/utils.d.ts +17 -4
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +100 -58
- package/dest/public/hinting_db_sources.d.ts +78 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -0
- package/dest/public/hinting_db_sources.js +350 -0
- package/dest/public/index.d.ts +6 -9
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +4 -7
- package/dest/public/public_db_sources.d.ts +51 -101
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +219 -192
- package/dest/public/public_errors.d.ts +12 -0
- package/dest/public/public_errors.d.ts.map +1 -0
- package/dest/public/public_errors.js +13 -0
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +49 -0
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -0
- package/dest/public/public_processor/guarded_merkle_tree.js +108 -0
- package/dest/public/public_processor/public_processor.d.ts +25 -37
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +154 -111
- package/dest/public/public_processor/public_processor_metrics.d.ts +3 -3
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +30 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +133 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +66 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +210 -0
- package/dest/public/public_tx_simulator/index.d.ts +5 -0
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/index.js +2 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +31 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +51 -0
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +23 -30
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +71 -91
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +36 -58
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +208 -206
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +9 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.js +1 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +21 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +39 -0
- package/dest/public/side_effect_errors.d.ts +42 -2
- package/dest/public/side_effect_errors.d.ts.map +1 -1
- package/dest/public/side_effect_errors.js +70 -1
- package/dest/public/side_effect_trace.d.ts +21 -67
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +71 -121
- package/dest/public/side_effect_trace_interface.d.ts +12 -24
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/index.d.ts +2 -0
- package/dest/public/state_manager/index.d.ts.map +1 -0
- package/dest/public/state_manager/index.js +1 -0
- package/dest/public/{avm/journal → state_manager}/nullifiers.d.ts +3 -6
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -0
- package/dest/public/{avm/journal → state_manager}/nullifiers.js +3 -8
- package/dest/public/{avm/journal → state_manager}/public_storage.d.ts +3 -3
- package/dest/public/state_manager/public_storage.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.d.ts +159 -0
- package/dest/public/state_manager/state_manager.d.ts.map +1 -0
- package/dest/public/state_manager/state_manager.js +392 -0
- package/dest/public/test_executor_metrics.d.ts +55 -0
- package/dest/public/test_executor_metrics.d.ts.map +1 -0
- package/dest/public/test_executor_metrics.js +307 -0
- package/dest/public/unique_class_ids.d.ts +1 -1
- package/dest/public/unique_class_ids.d.ts.map +1 -1
- package/dest/public/utils.d.ts +3 -5
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +4 -21
- package/dest/server.d.ts +7 -4
- package/dest/server.d.ts.map +1 -1
- package/dest/server.js +5 -2
- package/dest/testing.d.ts +2 -0
- package/dest/testing.d.ts.map +1 -0
- package/dest/testing.js +1 -0
- package/package.json +39 -33
- package/src/client.ts +5 -3
- package/src/common/errors.ts +79 -44
- package/src/common/index.ts +0 -1
- package/src/private/acvm/acvm.ts +17 -32
- package/src/private/acvm/acvm_types.ts +1 -1
- package/src/private/acvm/deserialize.ts +35 -29
- package/src/private/acvm/index.ts +0 -1
- package/src/private/acvm/serialize.ts +63 -0
- package/src/private/{providers/acvm_native.ts → acvm_native.ts} +47 -24
- package/src/private/acvm_wasm.ts +72 -0
- package/src/private/acvm_wasm_with_blobs.ts +54 -0
- package/src/private/circuit_recording/circuit_recorder.ts +260 -0
- package/src/private/circuit_recording/file_circuit_recorder.ts +158 -0
- package/src/private/circuit_recording/memory_circuit_recorder.ts +11 -0
- package/src/private/circuit_recording/simulator_recorder_wrapper.ts +91 -0
- package/src/private/circuit_simulator.ts +90 -0
- package/src/private/{providers/factory.ts → factory.ts} +6 -6
- package/src/public/avm/avm_context.ts +4 -4
- package/src/public/avm/avm_contract_call_result.ts +17 -5
- package/src/public/avm/avm_execution_environment.ts +8 -1
- package/src/public/avm/avm_gas.ts +23 -35
- package/src/public/avm/avm_machine_state.ts +5 -0
- package/src/public/avm/avm_memory_types.ts +19 -6
- package/src/public/avm/avm_simulator.ts +43 -54
- package/src/public/avm/avm_simulator_interface.ts +8 -0
- package/src/public/avm/errors.ts +8 -77
- package/src/public/avm/fixtures/avm_simulation_tester.ts +32 -21
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +45 -12
- package/src/public/avm/fixtures/initializers.ts +102 -0
- package/src/public/avm/fixtures/utils.ts +150 -0
- package/src/public/avm/index.ts +0 -2
- package/src/public/avm/opcodes/accrued_substate.ts +64 -29
- package/src/public/avm/opcodes/addressing_mode.ts +56 -32
- package/src/public/avm/opcodes/arithmetic.ts +24 -2
- package/src/public/avm/opcodes/bitwise.ts +33 -29
- package/src/public/avm/opcodes/comparators.ts +6 -3
- package/src/public/avm/opcodes/contract.ts +10 -7
- package/src/public/avm/opcodes/control_flow.ts +19 -10
- package/src/public/avm/opcodes/conversion.ts +27 -3
- package/src/public/avm/opcodes/ec_add.ts +9 -6
- package/src/public/avm/opcodes/environment_getters.ts +27 -22
- package/src/public/avm/opcodes/external_calls.ts +61 -29
- package/src/public/avm/opcodes/hashing.ts +28 -8
- package/src/public/avm/opcodes/instruction.ts +31 -21
- package/src/public/avm/opcodes/memory.ts +71 -32
- package/src/public/avm/opcodes/misc.ts +60 -18
- package/src/public/avm/opcodes/storage.ts +22 -6
- package/src/public/avm/revert_reason.ts +55 -0
- package/src/public/avm/serialization/buffer_cursor.ts +4 -1
- package/src/public/avm/serialization/bytecode_serialization.ts +72 -74
- package/src/public/avm/serialization/instruction_serialization.ts +75 -34
- package/src/public/avm/test_utils.ts +24 -41
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +76 -0
- package/src/{common → public}/debug_fn_name.ts +7 -7
- package/src/public/executor_metrics.ts +56 -6
- package/src/public/executor_metrics_interface.ts +15 -0
- package/src/public/fixtures/amm_test.ts +331 -0
- package/src/public/fixtures/bulk_test.ts +169 -0
- package/src/public/fixtures/custom_bytecode_tester.ts +49 -0
- package/src/public/fixtures/custom_bytecode_tests.ts +135 -0
- package/src/public/fixtures/index.ts +7 -0
- package/src/public/fixtures/minimal_public_tx.ts +35 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +166 -113
- package/src/public/{avm/fixtures → fixtures}/simple_contract_data_source.ts +36 -18
- package/src/public/fixtures/token_test.ts +139 -0
- package/src/public/fixtures/utils.ts +141 -68
- package/src/public/hinting_db_sources.ts +602 -0
- package/src/public/index.ts +5 -8
- package/src/public/public_db_sources.ts +278 -258
- package/src/public/public_errors.ts +14 -0
- package/src/public/public_processor/guarded_merkle_tree.ts +153 -0
- package/src/public/public_processor/public_processor.ts +212 -164
- package/src/public/public_processor/public_processor_metrics.ts +2 -2
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +162 -0
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +306 -0
- package/src/public/public_tx_simulator/index.ts +4 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +105 -0
- package/src/public/public_tx_simulator/public_tx_context.ts +167 -194
- package/src/public/public_tx_simulator/public_tx_simulator.ts +292 -265
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +10 -0
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +63 -0
- package/src/public/side_effect_errors.ts +91 -1
- package/src/public/side_effect_trace.ts +94 -320
- package/src/public/side_effect_trace_interface.ts +10 -58
- package/src/public/state_manager/index.ts +1 -0
- package/src/public/{avm/journal → state_manager}/nullifiers.ts +5 -11
- package/src/public/{avm/journal → state_manager}/public_storage.ts +2 -2
- package/src/public/state_manager/state_manager.ts +553 -0
- package/src/public/test_executor_metrics.ts +397 -0
- package/src/public/utils.ts +5 -21
- package/src/server.ts +6 -3
- package/src/testing.ts +1 -0
- package/dest/common/db_interfaces.d.ts +0 -80
- package/dest/common/db_interfaces.d.ts.map +0 -1
- package/dest/common/db_interfaces.js +0 -1
- package/dest/common/debug_fn_name.d.ts +0 -5
- package/dest/common/debug_fn_name.d.ts.map +0 -1
- package/dest/common/debug_fn_name.js +0 -6
- package/dest/common/message_load_oracle_inputs.d.ts +0 -15
- package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
- package/dest/common/message_load_oracle_inputs.js +0 -15
- package/dest/private/acvm/oracle/index.d.ts +0 -14
- package/dest/private/acvm/oracle/index.d.ts.map +0 -1
- package/dest/private/acvm/oracle/index.js +0 -2
- package/dest/private/acvm/oracle/oracle.d.ts +0 -49
- package/dest/private/acvm/oracle/oracle.d.ts.map +0 -1
- package/dest/private/acvm/oracle/oracle.js +0 -263
- package/dest/private/acvm/oracle/typed_oracle.d.ts +0 -83
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/private/acvm/oracle/typed_oracle.js +0 -132
- package/dest/private/execution_data_provider.d.ts +0 -261
- package/dest/private/execution_data_provider.d.ts.map +0 -1
- package/dest/private/execution_data_provider.js +0 -14
- package/dest/private/execution_note_cache.d.ts +0 -93
- package/dest/private/execution_note_cache.d.ts.map +0 -1
- package/dest/private/execution_note_cache.js +0 -180
- package/dest/private/hashed_values_cache.d.ts +0 -28
- package/dest/private/hashed_values_cache.d.ts.map +0 -1
- package/dest/private/hashed_values_cache.js +0 -46
- package/dest/private/index.d.ts +0 -13
- package/dest/private/index.d.ts.map +0 -1
- package/dest/private/index.js +0 -12
- package/dest/private/pick_notes.d.ts +0 -85
- package/dest/private/pick_notes.d.ts.map +0 -1
- package/dest/private/pick_notes.js +0 -51
- package/dest/private/private_execution.d.ts +0 -25
- package/dest/private/private_execution.d.ts.map +0 -1
- package/dest/private/private_execution.js +0 -92
- package/dest/private/private_execution_oracle.d.ts +0 -215
- package/dest/private/private_execution_oracle.d.ts.map +0 -1
- package/dest/private/private_execution_oracle.js +0 -382
- package/dest/private/providers/acvm_native.d.ts +0 -40
- package/dest/private/providers/acvm_native.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm.d.ts +0 -15
- package/dest/private/providers/acvm_wasm.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts +0 -19
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
- package/dest/private/providers/acvm_wasm_with_blobs.js +0 -32
- package/dest/private/providers/factory.d.ts +0 -12
- package/dest/private/providers/factory.d.ts.map +0 -1
- package/dest/private/providers/simulation_provider.d.ts +0 -19
- package/dest/private/providers/simulation_provider.d.ts.map +0 -1
- package/dest/private/providers/simulation_provider.js +0 -24
- package/dest/private/simulator.d.ts +0 -34
- package/dest/private/simulator.d.ts.map +0 -1
- package/dest/private/simulator.js +0 -76
- package/dest/private/unconstrained_execution.d.ts +0 -10
- package/dest/private/unconstrained_execution.d.ts.map +0 -1
- package/dest/private/unconstrained_execution.js +0 -27
- package/dest/private/unconstrained_execution_oracle.d.ts +0 -161
- package/dest/private/unconstrained_execution_oracle.d.ts.map +0 -1
- package/dest/private/unconstrained_execution_oracle.js +0 -258
- package/dest/public/avm/bytecode_utils.d.ts +0 -5
- package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/public/avm/bytecode_utils.js +0 -17
- package/dest/public/avm/fixtures/index.d.ts +0 -84
- package/dest/public/avm/fixtures/index.d.ts.map +0 -1
- package/dest/public/avm/fixtures/index.js +0 -175
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +0 -35
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
- package/dest/public/avm/journal/index.d.ts +0 -2
- package/dest/public/avm/journal/index.d.ts.map +0 -1
- package/dest/public/avm/journal/index.js +0 -1
- package/dest/public/avm/journal/journal.d.ts +0 -209
- package/dest/public/avm/journal/journal.d.ts.map +0 -1
- package/dest/public/avm/journal/journal.js +0 -486
- package/dest/public/avm/journal/nullifiers.d.ts.map +0 -1
- package/dest/public/avm/journal/public_storage.d.ts.map +0 -1
- package/dest/public/bytecode_errors.d.ts +0 -4
- package/dest/public/bytecode_errors.d.ts.map +0 -1
- package/dest/public/bytecode_errors.js +0 -6
- package/dest/public/execution.d.ts +0 -108
- package/dest/public/execution.d.ts.map +0 -1
- package/dest/public/execution.js +0 -9
- package/dest/public/tx_contract_cache.d.ts +0 -41
- package/dest/public/tx_contract_cache.d.ts.map +0 -1
- package/dest/public/tx_contract_cache.js +0 -49
- package/dest/test/utils.d.ts +0 -13
- package/dest/test/utils.d.ts.map +0 -1
- package/dest/test/utils.js +0 -22
- package/src/common/db_interfaces.ts +0 -94
- package/src/common/message_load_oracle_inputs.ts +0 -15
- package/src/private/acvm/oracle/index.ts +0 -16
- package/src/private/acvm/oracle/oracle.ts +0 -455
- package/src/private/acvm/oracle/typed_oracle.ts +0 -259
- package/src/private/execution_data_provider.ts +0 -323
- package/src/private/execution_note_cache.ts +0 -217
- package/src/private/hashed_values_cache.ts +0 -55
- package/src/private/index.ts +0 -16
- package/src/private/pick_notes.ts +0 -141
- package/src/private/private_execution.ts +0 -151
- package/src/private/private_execution_oracle.ts +0 -614
- package/src/private/providers/acvm_wasm.ts +0 -63
- package/src/private/providers/acvm_wasm_with_blobs.ts +0 -50
- package/src/private/providers/simulation_provider.ts +0 -45
- package/src/private/simulator.ts +0 -147
- package/src/private/unconstrained_execution.ts +0 -50
- package/src/private/unconstrained_execution_oracle.ts +0 -373
- package/src/public/avm/bytecode_utils.ts +0 -17
- package/src/public/avm/fixtures/index.ts +0 -296
- package/src/public/avm/journal/index.ts +0 -1
- package/src/public/avm/journal/journal.ts +0 -742
- package/src/public/avm/opcodes/.eslintrc.cjs +0 -8
- package/src/public/bytecode_errors.ts +0 -6
- package/src/public/execution.ts +0 -140
- package/src/public/tx_contract_cache.ts +0 -69
- package/src/test/utils.ts +0 -36
- /package/dest/public/{avm/journal → state_manager}/public_storage.js +0 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractDbCommitCheckpointHint, AvmContractDbCreateCheckpointHint, AvmContractDbRevertCheckpointHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmDebugFunctionNameHint, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree } from '@aztec/stdlib/avm';
|
|
5
|
+
import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf, getTreeName, merkleTreeIds } from '@aztec/stdlib/trees';
|
|
6
|
+
import { TreeSnapshots } from '@aztec/stdlib/tx';
|
|
7
|
+
import { strict as assert } from 'assert';
|
|
8
|
+
/**
|
|
9
|
+
* A public contracts database that forwards requests and collects AVM hints.
|
|
10
|
+
*/ export class HintingPublicContractsDB {
|
|
11
|
+
db;
|
|
12
|
+
hints;
|
|
13
|
+
static log = createLogger('simulator:hinting-public-contracts-db');
|
|
14
|
+
checkpointActionCounter;
|
|
15
|
+
nextCheckpointId;
|
|
16
|
+
checkpointStack;
|
|
17
|
+
constructor(db, hints){
|
|
18
|
+
this.db = db;
|
|
19
|
+
this.hints = hints;
|
|
20
|
+
this.checkpointActionCounter = 0;
|
|
21
|
+
this.nextCheckpointId = 1;
|
|
22
|
+
this.checkpointStack = [
|
|
23
|
+
0
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
async getContractInstance(address, timestamp) {
|
|
27
|
+
const instance = await this.db.getContractInstance(address, timestamp);
|
|
28
|
+
if (instance) {
|
|
29
|
+
const hintKey = this.getHintKey();
|
|
30
|
+
this.hints.contractInstances.push(new AvmContractInstanceHint(hintKey, instance.address, instance.salt, instance.deployer, instance.currentContractClassId, instance.originalContractClassId, instance.initializationHash, instance.publicKeys));
|
|
31
|
+
HintingPublicContractsDB.log.trace(`[getContractInstance:${hintKey}] Added contract instance ${instance.address.toString()} to hints.`);
|
|
32
|
+
}
|
|
33
|
+
return instance;
|
|
34
|
+
}
|
|
35
|
+
async getContractClass(contractClassId) {
|
|
36
|
+
const contractClass = await this.db.getContractClass(contractClassId);
|
|
37
|
+
if (contractClass) {
|
|
38
|
+
const hintKey = this.getHintKey();
|
|
39
|
+
this.hints.contractClasses.push(new AvmContractClassHint(hintKey, contractClass.id, contractClass.artifactHash, contractClass.privateFunctionsRoot, contractClass.packedBytecode));
|
|
40
|
+
HintingPublicContractsDB.log.trace(`[getContractClass:${hintKey}] Added contract class ${contractClassId.toString()} to hints.`);
|
|
41
|
+
}
|
|
42
|
+
return contractClass;
|
|
43
|
+
}
|
|
44
|
+
async getBytecodeCommitment(contractClassId) {
|
|
45
|
+
const commitment = await this.db.getBytecodeCommitment(contractClassId);
|
|
46
|
+
if (commitment) {
|
|
47
|
+
const hintKey = this.getHintKey();
|
|
48
|
+
this.hints.bytecodeCommitments.push(new AvmBytecodeCommitmentHint(hintKey, contractClassId, commitment));
|
|
49
|
+
HintingPublicContractsDB.log.trace(`[getBytecodeCommitment:${hintKey}] Added bytecode commitment ${commitment.toString()} to hints for contract class ${contractClassId.toString()}.`);
|
|
50
|
+
}
|
|
51
|
+
return commitment;
|
|
52
|
+
}
|
|
53
|
+
async getDebugFunctionName(contractAddress, selector) {
|
|
54
|
+
const name = await this.db.getDebugFunctionName(contractAddress, selector);
|
|
55
|
+
if (name) {
|
|
56
|
+
HintingPublicContractsDB.log.debug(`[getDebugFunctionName] Adding debug function name ${name} to hints for contract ${contractAddress.toString()} and selector ${selector.toString()}.`);
|
|
57
|
+
// We hint selector as a field to make things way simpler in C++.
|
|
58
|
+
this.hints.debugFunctionNames.push(new AvmDebugFunctionNameHint(contractAddress, selector.toField(), name));
|
|
59
|
+
}
|
|
60
|
+
return name;
|
|
61
|
+
}
|
|
62
|
+
createCheckpoint() {
|
|
63
|
+
const hintKey = this.getHintKey();
|
|
64
|
+
this.checkpointActionCounter++;
|
|
65
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
66
|
+
this.db.createCheckpoint();
|
|
67
|
+
const newCheckpointId = this.nextCheckpointId++;
|
|
68
|
+
this.checkpointStack.push(newCheckpointId);
|
|
69
|
+
this.hints.contractDbCreateCheckpointHints.push(new AvmContractDbCreateCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
|
|
70
|
+
HintingPublicContractsDB.log.trace(`[createCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
|
|
71
|
+
}
|
|
72
|
+
commitCheckpoint() {
|
|
73
|
+
const hintKey = this.getHintKey();
|
|
74
|
+
this.checkpointActionCounter++;
|
|
75
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
76
|
+
this.db.commitCheckpoint();
|
|
77
|
+
this.checkpointStack.pop();
|
|
78
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
79
|
+
this.hints.contractDbCommitCheckpointHints.push(new AvmContractDbCommitCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
|
|
80
|
+
HintingPublicContractsDB.log.trace(`[commitCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
|
|
81
|
+
}
|
|
82
|
+
revertCheckpoint() {
|
|
83
|
+
const hintKey = this.getHintKey();
|
|
84
|
+
this.checkpointActionCounter++;
|
|
85
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
86
|
+
this.db.revertCheckpoint();
|
|
87
|
+
this.checkpointStack.pop();
|
|
88
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
89
|
+
this.hints.contractDbRevertCheckpointHints.push(new AvmContractDbRevertCheckpointHint(hintKey, oldCheckpointId, newCheckpointId));
|
|
90
|
+
HintingPublicContractsDB.log.trace(`[revertCheckpoint:${hintKey}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId}.`);
|
|
91
|
+
}
|
|
92
|
+
// Private methods.
|
|
93
|
+
getHintKey() {
|
|
94
|
+
return this.checkpointActionCounter;
|
|
95
|
+
}
|
|
96
|
+
getCurrentCheckpointId() {
|
|
97
|
+
return this.checkpointStack[this.checkpointStack.length - 1];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A low-level merkle DB that collects hints.
|
|
102
|
+
*/ export class HintingMerkleWriteOperations {
|
|
103
|
+
db;
|
|
104
|
+
hints;
|
|
105
|
+
static log = createLogger('simulator:hinting-merkle-db');
|
|
106
|
+
// This stack is only for debugging purposes.
|
|
107
|
+
// The top of the stack is the current checkpoint id.
|
|
108
|
+
// We need the stack to be non-empty and use 0 as an arbitrary initial checkpoint id.
|
|
109
|
+
// This is not necessarily a checkpoint that happened, but whatever tree state we start with.
|
|
110
|
+
checkpointStack;
|
|
111
|
+
nextCheckpointId;
|
|
112
|
+
checkpointActionCounter;
|
|
113
|
+
static async create(db, hints) {
|
|
114
|
+
const hintingTreesDB = new HintingMerkleWriteOperations(db, hints);
|
|
115
|
+
const startStateReference = await db.getStateReference();
|
|
116
|
+
hints.startingTreeRoots = new TreeSnapshots(startStateReference.l1ToL2MessageTree, startStateReference.partial.noteHashTree, startStateReference.partial.nullifierTree, startStateReference.partial.publicDataTree);
|
|
117
|
+
return hintingTreesDB;
|
|
118
|
+
}
|
|
119
|
+
// Use create() to instantiate.
|
|
120
|
+
constructor(db, hints){
|
|
121
|
+
this.db = db;
|
|
122
|
+
this.hints = hints;
|
|
123
|
+
this.checkpointStack = [
|
|
124
|
+
0
|
|
125
|
+
];
|
|
126
|
+
this.nextCheckpointId = 1;
|
|
127
|
+
this.checkpointActionCounter = 0;
|
|
128
|
+
}
|
|
129
|
+
// Getters.
|
|
130
|
+
async getSiblingPath(treeId, index) {
|
|
131
|
+
const path = await this.db.getSiblingPath(treeId, index);
|
|
132
|
+
const key = await this.getHintKey(treeId);
|
|
133
|
+
this.hints.getSiblingPathHints.push(new AvmGetSiblingPathHint(key, treeId, index, path.toFields()));
|
|
134
|
+
return Promise.resolve(path);
|
|
135
|
+
}
|
|
136
|
+
async getPreviousValueIndex(treeId, value) {
|
|
137
|
+
const result = await this.db.getPreviousValueIndex(treeId, value);
|
|
138
|
+
if (result === undefined) {
|
|
139
|
+
throw new Error(`getPreviousValueIndex(${getTreeName(treeId)}, ${value}}) returned undefined. Possible wrong tree setup or corrupted state.`);
|
|
140
|
+
}
|
|
141
|
+
const key = await this.getHintKey(treeId);
|
|
142
|
+
this.hints.getPreviousValueIndexHints.push(new AvmGetPreviousValueIndexHint(key, treeId, new Fr(value), result.index, result.alreadyPresent));
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
async getLeafPreimage(treeId, index) {
|
|
146
|
+
const preimage = await this.db.getLeafPreimage(treeId, index);
|
|
147
|
+
if (preimage) {
|
|
148
|
+
const key = await this.getHintKey(treeId);
|
|
149
|
+
switch(treeId){
|
|
150
|
+
case MerkleTreeId.PUBLIC_DATA_TREE:
|
|
151
|
+
this.hints.getLeafPreimageHintsPublicDataTree.push(new AvmGetLeafPreimageHintPublicDataTree(key, index, preimage));
|
|
152
|
+
break;
|
|
153
|
+
case MerkleTreeId.NULLIFIER_TREE:
|
|
154
|
+
this.hints.getLeafPreimageHintsNullifierTree.push(new AvmGetLeafPreimageHintNullifierTree(key, index, preimage));
|
|
155
|
+
break;
|
|
156
|
+
default:
|
|
157
|
+
// Use getLeafValue for the other trees.
|
|
158
|
+
throw new Error('getLeafPreimage only supported for PublicDataTree and NullifierTree!');
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return preimage;
|
|
163
|
+
}
|
|
164
|
+
async getLeafValue(treeId, index) {
|
|
165
|
+
// Use getLeafPreimage for PublicDataTree and NullifierTree.
|
|
166
|
+
assert(treeId == MerkleTreeId.NOTE_HASH_TREE || treeId == MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
|
|
167
|
+
const value = await this.db.getLeafValue(treeId, index);
|
|
168
|
+
if (value) {
|
|
169
|
+
const key = await this.getHintKey(treeId);
|
|
170
|
+
// We can cast to Fr because we know the type of the tree.
|
|
171
|
+
this.hints.getLeafValueHints.push(new AvmGetLeafValueHint(key, treeId, index, value));
|
|
172
|
+
}
|
|
173
|
+
return value;
|
|
174
|
+
}
|
|
175
|
+
// State modification.
|
|
176
|
+
// FIXME(fcarreiro): This is a horrible interface (in the merkle ops). It's receiving the leaves as buffers,
|
|
177
|
+
// from a leaf class that is NOT the one that will be used to write. Make this type safe.
|
|
178
|
+
async sequentialInsert(treeId, leaves) {
|
|
179
|
+
// Use appendLeaf for NoteHashTree and L1ToL2MessageTree.
|
|
180
|
+
assert(treeId == MerkleTreeId.PUBLIC_DATA_TREE || treeId == MerkleTreeId.NULLIFIER_TREE);
|
|
181
|
+
// We only support 1 leaf at a time for now. Can easily be extended.
|
|
182
|
+
assert(leaves.length === 1, 'sequentialInsert supports only one leaf at a time!');
|
|
183
|
+
const beforeState = await this.getHintKey(treeId);
|
|
184
|
+
const result = await this.db.sequentialInsert(treeId, leaves);
|
|
185
|
+
const afterState = await this.getHintKey(treeId);
|
|
186
|
+
HintingMerkleWriteOperations.logTreeChange('sequentialInsert', beforeState, afterState, treeId);
|
|
187
|
+
switch(treeId){
|
|
188
|
+
case MerkleTreeId.PUBLIC_DATA_TREE:
|
|
189
|
+
this.hints.sequentialInsertHintsPublicDataTree.push(new AvmSequentialInsertHintPublicDataTree(beforeState, afterState, treeId, PublicDataTreeLeaf.fromBuffer(leaves[0]), {
|
|
190
|
+
leaf: result.lowLeavesWitnessData[0].leafPreimage,
|
|
191
|
+
index: result.lowLeavesWitnessData[0].index,
|
|
192
|
+
path: result.lowLeavesWitnessData[0].siblingPath.toFields()
|
|
193
|
+
}, {
|
|
194
|
+
leaf: result.insertionWitnessData[0].leafPreimage,
|
|
195
|
+
index: result.insertionWitnessData[0].index,
|
|
196
|
+
path: result.insertionWitnessData[0].siblingPath.toFields()
|
|
197
|
+
}));
|
|
198
|
+
break;
|
|
199
|
+
case MerkleTreeId.NULLIFIER_TREE:
|
|
200
|
+
this.hints.sequentialInsertHintsNullifierTree.push(new AvmSequentialInsertHintNullifierTree(beforeState, afterState, treeId, NullifierLeaf.fromBuffer(leaves[0]), {
|
|
201
|
+
leaf: result.lowLeavesWitnessData[0].leafPreimage,
|
|
202
|
+
index: result.lowLeavesWitnessData[0].index,
|
|
203
|
+
path: result.lowLeavesWitnessData[0].siblingPath.toFields()
|
|
204
|
+
}, {
|
|
205
|
+
leaf: result.insertionWitnessData[0].leafPreimage,
|
|
206
|
+
index: result.insertionWitnessData[0].index,
|
|
207
|
+
path: result.insertionWitnessData[0].siblingPath.toFields()
|
|
208
|
+
}));
|
|
209
|
+
break;
|
|
210
|
+
default:
|
|
211
|
+
throw new Error('sequentialInsert only supported for PublicDataTree and NullifierTree!');
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
async appendLeaves(treeId, leaves) {
|
|
217
|
+
// Use sequentialInsert for PublicDataTree and NullifierTree.
|
|
218
|
+
assert(treeId == MerkleTreeId.NOTE_HASH_TREE || treeId == MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
|
|
219
|
+
// We need to process each leaf individually because we need the sibling path after insertion, to be able to constraint the insertion.
|
|
220
|
+
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/13380): This can be changed if the world state appendLeaves returns the sibling paths.
|
|
221
|
+
if (leaves.length === 1) {
|
|
222
|
+
await this.appendLeafInternal(treeId, leaves[0]);
|
|
223
|
+
return;
|
|
224
|
+
} else {
|
|
225
|
+
// TODO(dbanks12): NON-HINTING! We skip hinting here for now because:
|
|
226
|
+
// 1. We only ever append multiple leaves (for now) when padding (all empty leaves).
|
|
227
|
+
// 2. We don't need hints per-item when padding.
|
|
228
|
+
// 3. In order to get per-item hints today, you need to append one-at-a-time (mentioned above), which is VERY slow.
|
|
229
|
+
await this.db.appendLeaves(treeId, leaves);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async createCheckpoint() {
|
|
233
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
234
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
235
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
236
|
+
await this.db.createCheckpoint();
|
|
237
|
+
this.checkpointStack.push(this.nextCheckpointId++);
|
|
238
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
239
|
+
this.hints.createCheckpointHints.push(new AvmCreateCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
240
|
+
HintingMerkleWriteOperations.log.trace(`[createCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
241
|
+
}
|
|
242
|
+
commitAllCheckpoints() {
|
|
243
|
+
throw new Error('commitAllCheckpoints is not supported in HintingMerkleWriteOperations.');
|
|
244
|
+
}
|
|
245
|
+
revertAllCheckpoints() {
|
|
246
|
+
throw new Error('revertAllCheckpoints is not supported in HintingMerkleWriteOperations.');
|
|
247
|
+
}
|
|
248
|
+
async commitCheckpoint() {
|
|
249
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
250
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
251
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
252
|
+
await this.db.commitCheckpoint();
|
|
253
|
+
this.checkpointStack.pop();
|
|
254
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
255
|
+
this.hints.commitCheckpointHints.push(new AvmCommitCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
256
|
+
HintingMerkleWriteOperations.log.trace(`[commitCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
257
|
+
}
|
|
258
|
+
async revertCheckpoint() {
|
|
259
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
260
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
261
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
262
|
+
const beforeState = {
|
|
263
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
264
|
+
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
265
|
+
[MerkleTreeId.NOTE_HASH_TREE]: await this.getHintKey(MerkleTreeId.NOTE_HASH_TREE),
|
|
266
|
+
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: await this.getHintKey(MerkleTreeId.L1_TO_L2_MESSAGE_TREE),
|
|
267
|
+
[MerkleTreeId.ARCHIVE]: await this.getHintKey(MerkleTreeId.ARCHIVE)
|
|
268
|
+
};
|
|
269
|
+
await this.db.revertCheckpoint();
|
|
270
|
+
this.checkpointStack.pop();
|
|
271
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
272
|
+
const afterState = {
|
|
273
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
274
|
+
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
275
|
+
[MerkleTreeId.NOTE_HASH_TREE]: await this.getHintKey(MerkleTreeId.NOTE_HASH_TREE),
|
|
276
|
+
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: await this.getHintKey(MerkleTreeId.L1_TO_L2_MESSAGE_TREE),
|
|
277
|
+
[MerkleTreeId.ARCHIVE]: await this.getHintKey(MerkleTreeId.ARCHIVE)
|
|
278
|
+
};
|
|
279
|
+
this.hints.revertCheckpointHints.push(AvmRevertCheckpointHint.create(actionCounter, oldCheckpointId, newCheckpointId, beforeState, afterState));
|
|
280
|
+
HintingMerkleWriteOperations.log.trace(`[revertCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
281
|
+
for (const treeId of merkleTreeIds()){
|
|
282
|
+
HintingMerkleWriteOperations.logTreeChange('revertCheckpoint', beforeState[treeId], afterState[treeId], treeId);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
// Private methods.
|
|
286
|
+
async getHintKey(treeId) {
|
|
287
|
+
const treeInfo = await this.db.getTreeInfo(treeId);
|
|
288
|
+
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
289
|
+
}
|
|
290
|
+
getCurrentCheckpointId() {
|
|
291
|
+
return this.checkpointStack[this.checkpointStack.length - 1];
|
|
292
|
+
}
|
|
293
|
+
// For logging/debugging purposes.
|
|
294
|
+
async getTreesStateHash() {
|
|
295
|
+
const stateReferenceFields = (await this.db.getStateReference()).toFields();
|
|
296
|
+
return Fr.fromBuffer(sha256Trunc(Buffer.concat(stateReferenceFields.map((field)=>field.toBuffer()))));
|
|
297
|
+
}
|
|
298
|
+
static logTreeChange(action, beforeState, afterState, treeId) {
|
|
299
|
+
const treeName = getTreeName(treeId);
|
|
300
|
+
HintingMerkleWriteOperations.log.trace(`[${action}] ${treeName} tree state: ${beforeState.root}, ${beforeState.nextAvailableLeafIndex} -> ${afterState.root}, ${afterState.nextAvailableLeafIndex}.`);
|
|
301
|
+
}
|
|
302
|
+
async appendLeafInternal(treeId, leaf) {
|
|
303
|
+
// Use sequentialInsert for PublicDataTree and NullifierTree.
|
|
304
|
+
assert(treeId == MerkleTreeId.NOTE_HASH_TREE || treeId == MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
|
|
305
|
+
const beforeState = await this.getHintKey(treeId);
|
|
306
|
+
await this.db.appendLeaves(treeId, [
|
|
307
|
+
leaf
|
|
308
|
+
]);
|
|
309
|
+
const afterState = await this.getHintKey(treeId);
|
|
310
|
+
HintingMerkleWriteOperations.logTreeChange('appendLeaves', beforeState, afterState, treeId);
|
|
311
|
+
this.hints.appendLeavesHints.push(new AvmAppendLeavesHint(beforeState, afterState, treeId, [
|
|
312
|
+
leaf
|
|
313
|
+
]));
|
|
314
|
+
return await this.getSiblingPath(treeId, BigInt(beforeState.nextAvailableLeafIndex));
|
|
315
|
+
}
|
|
316
|
+
// Non-hinted required methods from MerkleTreeWriteOperations interface
|
|
317
|
+
async getTreeInfo(treeId) {
|
|
318
|
+
return await this.db.getTreeInfo(treeId);
|
|
319
|
+
}
|
|
320
|
+
async getStateReference() {
|
|
321
|
+
return await this.db.getStateReference();
|
|
322
|
+
}
|
|
323
|
+
getInitialHeader() {
|
|
324
|
+
return this.db.getInitialHeader();
|
|
325
|
+
}
|
|
326
|
+
getRevision() {
|
|
327
|
+
return this.db.getRevision();
|
|
328
|
+
}
|
|
329
|
+
async updateArchive(header) {
|
|
330
|
+
return await this.db.updateArchive(header);
|
|
331
|
+
}
|
|
332
|
+
async batchInsert(treeId, leaves, subtreeHeight) {
|
|
333
|
+
return await this.db.batchInsert(treeId, leaves, subtreeHeight);
|
|
334
|
+
}
|
|
335
|
+
async close() {
|
|
336
|
+
return await this.db.close();
|
|
337
|
+
}
|
|
338
|
+
async findLeafIndices(treeId, values) {
|
|
339
|
+
return await this.db.findLeafIndices(treeId, values);
|
|
340
|
+
}
|
|
341
|
+
findSiblingPaths(treeId, values) {
|
|
342
|
+
return this.db.findSiblingPaths(treeId, values);
|
|
343
|
+
}
|
|
344
|
+
async findLeafIndicesAfter(treeId, values, startIndex) {
|
|
345
|
+
return await this.db.findLeafIndicesAfter(treeId, values, startIndex);
|
|
346
|
+
}
|
|
347
|
+
async getBlockNumbersForLeafIndices(treeId, leafIndices) {
|
|
348
|
+
return await this.db.getBlockNumbersForLeafIndices(treeId, leafIndices);
|
|
349
|
+
}
|
|
350
|
+
}
|
package/dest/public/index.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export { type EnqueuedPublicCallExecutionResult, type PublicFunctionCallResult } from './execution.js';
|
|
4
|
-
export * from './public_db_sources.js';
|
|
1
|
+
export { PublicContractsDB } from './public_db_sources.js';
|
|
2
|
+
export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
|
|
5
3
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
4
|
+
export { PublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator/index.js';
|
|
5
|
+
export type { PublicTxResult, PublicSimulatorConfig as PublicTxSimulatorConfig } from '@aztec/stdlib/avm';
|
|
6
|
+
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9GLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxZQUFZLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC/F,YAAY,EAAE,cAAc,EAAE,qBAAqB,IAAI,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC"}
|
package/dest/public/index.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './public_db_sources.js';
|
|
1
|
+
export { PublicContractsDB } from './public_db_sources.js';
|
|
2
|
+
export { GuardedMerkleTreeOperations } from './public_processor/guarded_merkle_tree.js';
|
|
4
3
|
export { PublicProcessor, PublicProcessorFactory } from './public_processor/public_processor.js';
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export { PublicTxSimulationTester } from './fixtures/index.js';
|
|
8
|
-
export * from './avm/index.js';
|
|
4
|
+
export { PublicTxSimulator, TelemetryPublicTxSimulator } from './public_tx_simulator/index.js';
|
|
5
|
+
export { getCallRequestsWithCalldataByPhase } from './utils.js';
|
|
@@ -1,129 +1,79 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
-
import type {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
4
|
+
import { type ContractClassPublic, type ContractDataSource, type ContractDeploymentData, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
6
|
+
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
7
|
+
import { TreeSnapshots, type Tx } from '@aztec/stdlib/tx';
|
|
8
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
9
|
+
import type { PublicContractsDBInterface, PublicStateDBInterface } from './db_interfaces.js';
|
|
8
10
|
/**
|
|
9
|
-
* Implements the
|
|
10
|
-
*
|
|
11
|
-
* Separates block-level contract information (from processed/included txs) from the
|
|
12
|
-
* current tx's contract information (which may be cleared on tx revert/death).
|
|
11
|
+
* Implements the PublicContractsDBInterface using a ContractDataSource.
|
|
12
|
+
* Uses a stack-based checkpoint model for managing contract state.
|
|
13
13
|
*/
|
|
14
|
-
export declare class
|
|
14
|
+
export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
15
15
|
private dataSource;
|
|
16
|
-
private
|
|
17
|
-
private currentTxRevertibleCache;
|
|
18
|
-
private blockCache;
|
|
19
|
-
private bytecodeCommitmentCache;
|
|
16
|
+
private contractStateStack;
|
|
20
17
|
private log;
|
|
21
18
|
constructor(dataSource: ContractDataSource);
|
|
22
|
-
|
|
23
|
-
* Add new contracts from a transaction
|
|
24
|
-
* @param tx - The transaction to add contracts from.
|
|
25
|
-
*/
|
|
19
|
+
addContracts(contractDeploymentData: ContractDeploymentData): Promise<void>;
|
|
26
20
|
addNewContracts(tx: Tx): Promise<void>;
|
|
27
21
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
addNewNonRevertibleContracts(tx: Tx): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Add revertible contracts from a transaction
|
|
34
|
-
* @param tx - The transaction to add revertible contracts from.
|
|
35
|
-
*/
|
|
36
|
-
addNewRevertibleContracts(tx: Tx): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Add non-revertible contract classes from a transaction
|
|
39
|
-
* For private-only txs, this will be all contract classes (found in tx.data.forPublic)
|
|
40
|
-
* @param tx - The transaction to add non-revertible contract classes from.
|
|
41
|
-
*/
|
|
42
|
-
private addNonRevertibleContractClasses;
|
|
43
|
-
/**
|
|
44
|
-
* Add revertible contract classes from a transaction
|
|
45
|
-
* None for private-only txs.
|
|
46
|
-
* @param tx - The transaction to add revertible contract classes from.
|
|
47
|
-
*/
|
|
48
|
-
private addRevertibleContractClasses;
|
|
49
|
-
/**
|
|
50
|
-
* Add non-revertible contract instances from a transaction
|
|
51
|
-
* For private-only txs, this will be all contract instances (found in tx.data.forRollup)
|
|
52
|
-
* @param tx - The transaction to add non-revertible contract instances from.
|
|
53
|
-
*/
|
|
54
|
-
private addNonRevertibleContractInstances;
|
|
55
|
-
/**
|
|
56
|
-
* Add revertible contract instances from a transaction
|
|
57
|
-
* None for private-only txs.
|
|
58
|
-
* @param tx - The transaction to add revertible contract instances from.
|
|
59
|
-
*/
|
|
60
|
-
private addRevertibleContractInstances;
|
|
61
|
-
/**
|
|
62
|
-
* Given a tx's siloed contract class logs, add the contract classes to the cache
|
|
63
|
-
* @param siloedContractClassLogs - Contract class logs to process
|
|
64
|
-
* @param cache - The cache to store the contract classes in
|
|
65
|
-
* @param cacheType - Type of cache (for logging)
|
|
22
|
+
* Creates a new checkpoint, copying the current state for upcoming modifications,
|
|
23
|
+
* and enabling rollbacks to current state in case of a revert.
|
|
66
24
|
*/
|
|
67
|
-
|
|
25
|
+
createCheckpoint(): void;
|
|
68
26
|
/**
|
|
69
|
-
*
|
|
70
|
-
* @param contractInstanceLogs - Contract instance logs to process
|
|
71
|
-
* @param cache - The cache to store the contract instances in
|
|
72
|
-
* @param cacheType - Type of cache (for logging)
|
|
27
|
+
* Commits the current checkpoint, accepting its state latest.
|
|
73
28
|
*/
|
|
74
|
-
|
|
29
|
+
commitCheckpoint(): void;
|
|
75
30
|
/**
|
|
76
|
-
*
|
|
31
|
+
* Commits the current checkpoint, not erroring if there is no checkpoint
|
|
32
|
+
* to commit. This is useful to do a sanity commit at the end of tx execution,
|
|
33
|
+
* doing nothing if the checkpoint was already reverted, but truly committing
|
|
34
|
+
* otherwise.
|
|
77
35
|
*/
|
|
78
|
-
|
|
36
|
+
commitCheckpointOkIfNone(): void;
|
|
79
37
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
38
|
+
* Reverts the current checkpoint, discarding its state and rolling back
|
|
39
|
+
* to the state as of the latest checkpoint.
|
|
82
40
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
41
|
+
revertCheckpoint(): void;
|
|
42
|
+
private getCurrentState;
|
|
43
|
+
getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
85
44
|
getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined>;
|
|
86
45
|
getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
|
|
87
46
|
getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
47
|
+
private addContractClassesFromEvents;
|
|
48
|
+
private addContractInstancesFromEvents;
|
|
88
49
|
}
|
|
89
50
|
/**
|
|
90
|
-
* A
|
|
51
|
+
* A high-level class that provides access to the merkle trees.
|
|
52
|
+
*
|
|
53
|
+
* This class is just a helper wrapper around a merkle db. Anything that you can do with it
|
|
54
|
+
* can also be done directly with the merkle db. This class should NOT be exposed or used
|
|
55
|
+
* outside of `simulator/src/public`.
|
|
56
|
+
*
|
|
57
|
+
* NOTE: This class is currently written in such a way that it would generate the
|
|
58
|
+
* necessary hints if used with a hinting merkle db. This is a bit of a leak of concepts.
|
|
59
|
+
* Eventually we can have everything depend on a config/factory at the TxSimulator level
|
|
60
|
+
* to decide whether to use hints or not (same with tracing, etc).
|
|
91
61
|
*/
|
|
92
|
-
export declare class
|
|
93
|
-
db
|
|
62
|
+
export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
63
|
+
private readonly db;
|
|
94
64
|
private logger;
|
|
95
|
-
constructor(db: MerkleTreeWriteOperations
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
65
|
+
constructor(db: MerkleTreeWriteOperations);
|
|
66
|
+
storageRead(contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
67
|
+
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
68
|
+
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr>;
|
|
69
|
+
getNoteHash(leafIndex: bigint): Promise<Fr>;
|
|
70
|
+
writeNoteHash(noteHash: Fr): Promise<void>;
|
|
71
|
+
checkNullifierExists(nullifier: Fr): Promise<boolean>;
|
|
72
|
+
writeNullifier(siloedNullifier: Fr): Promise<void>;
|
|
73
|
+
padTree(treeId: MerkleTreeId, leavesToInsert: number): Promise<void>;
|
|
99
74
|
createCheckpoint(): Promise<void>;
|
|
100
|
-
/**
|
|
101
|
-
* Commits the current checkpoint
|
|
102
|
-
*/
|
|
103
75
|
commitCheckpoint(): Promise<void>;
|
|
104
|
-
/**
|
|
105
|
-
* Reverts the current checkpoint
|
|
106
|
-
*/
|
|
107
76
|
revertCheckpoint(): Promise<void>;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Reads a value from public storage, returning zero if none.
|
|
111
|
-
* @param contract - Owner of the storage.
|
|
112
|
-
* @param slot - Slot to read in the contract storage.
|
|
113
|
-
* @returns The current value in the storage slot.
|
|
114
|
-
*/
|
|
115
|
-
storageRead(contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
116
|
-
/**
|
|
117
|
-
* Records a write to public storage.
|
|
118
|
-
* @param contract - Owner of the storage.
|
|
119
|
-
* @param slot - Slot to read in the contract storage.
|
|
120
|
-
* @param newValue - The new value to store.
|
|
121
|
-
* @returns The slot of the written leaf in the public data tree.
|
|
122
|
-
*/
|
|
123
|
-
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
124
|
-
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr | undefined>;
|
|
125
|
-
getCommitmentValue(leafIndex: bigint): Promise<Fr | undefined>;
|
|
126
|
-
getNullifierIndex(nullifier: Fr): Promise<bigint | undefined>;
|
|
77
|
+
getTreeSnapshots(): Promise<TreeSnapshots>;
|
|
127
78
|
}
|
|
128
|
-
|
|
129
|
-
//# sourceMappingURL=public_db_sources.d.ts.map
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2RiX3NvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSzlDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssc0JBQXNCLEVBQzNCLEtBQUssMkJBQTJCLEVBRWpDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQ0wsWUFBWSxFQUtiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS2xELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHN0Y7OztHQUdHO0FBQ0gscUJBQWEsaUJBQWtCLFlBQVcsMEJBQTBCO0lBS3RELE9BQU8sQ0FBQyxVQUFVO0lBSjlCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBMEQ7SUFFcEYsT0FBTyxDQUFDLEdBQUcsQ0FBbUQ7SUFFOUQsWUFBb0IsVUFBVSxFQUFFLGtCQUFrQixFQUFJO0lBRXpDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWXZGO0lBRVksZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlsRDtJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixJQUFJLElBQUksQ0FJOUI7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixJQUFJLElBQUksQ0FNOUI7SUFFRDs7Ozs7T0FLRztJQUNJLHdCQUF3QixJQUFJLElBQUksQ0FNdEM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsSUFBSSxJQUFJLENBSzlCO0lBRUQsT0FBTyxDQUFDLGVBQWU7SUFhVixtQkFBbUIsQ0FDOUIsT0FBTyxFQUFFLFlBQVksRUFDckIsU0FBUyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQyxDQUdsRDtJQUVZLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUczRjtJQUVZLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FxQi9FO0lBRVksb0JBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FFaEg7WUFFYSw0QkFBNEI7SUFhMUMsT0FBTyxDQUFDLDhCQUE4QjtDQVd2QztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsYUFBYyxZQUFXLHNCQUFzQjtJQUc5QyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFGL0IsT0FBTyxDQUFDLE1BQU0sQ0FBNkM7SUFFM0QsWUFBNkIsRUFBRSxFQUFFLHlCQUF5QixFQUFJO0lBRWpELFdBQVcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQXlCdEU7SUFFWSxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVd2RjtJQUVZLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQWdCOUQ7SUFFWSxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBZ0J2RDtJQUVZLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTdEQ7SUFFWSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FrQmpFO0lBRVksY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVM5RDtJQUVZLE9BQU8sQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWlDaEY7SUFFWSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTdDO0lBRVksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU3QztJQUVZLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFN0M7SUFFWSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBUXREO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAEjC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EACL,YAAY,EAKb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG7F;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,0BAA0B;IAKtD,OAAO,CAAC,UAAU;IAJ9B,OAAO,CAAC,kBAAkB,CAA0D;IAEpF,OAAO,CAAC,GAAG,CAAmD;IAE9D,YAAoB,UAAU,EAAE,kBAAkB,EAAI;IAEzC,YAAY,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvF;IAEY,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlD;IAED;;;OAGG;IACI,gBAAgB,IAAI,IAAI,CAI9B;IAED;;OAEG;IACI,gBAAgB,IAAI,IAAI,CAM9B;IAED;;;;;OAKG;IACI,wBAAwB,IAAI,IAAI,CAMtC;IAED;;;OAGG;IACI,gBAAgB,IAAI,IAAI,CAK9B;IAED,OAAO,CAAC,eAAe;IAaV,mBAAmB,CAC9B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAGlD;IAEY,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAG3F;IAEY,qBAAqB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAqB/E;IAEY,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEhH;YAEa,4BAA4B;IAa1C,OAAO,CAAC,8BAA8B;CAWvC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,sBAAsB;IAG9C,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,MAAM,CAA6C;IAE3D,YAA6B,EAAE,EAAE,yBAAyB,EAAI;IAEjD,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAyBtE;IAEY,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvF;IAEY,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAgB9D;IAEY,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAgBvD;IAEY,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAStD;IAEY,oBAAoB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBjE;IAEY,cAAc,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;IAEY,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChF;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEY,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQtD;CACF"}
|