@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97
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 -4
- package/dest/client.d.ts +1 -1
- package/dest/common/errors.d.ts +2 -2
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/index.d.ts +1 -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 +4 -2
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +4 -3
- package/dest/private/acvm/acvm_types.d.ts +1 -1
- package/dest/private/acvm/deserialize.d.ts +2 -2
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +1 -1
- package/dest/private/acvm/index.d.ts +1 -1
- package/dest/private/acvm/serialize.d.ts +2 -2
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +1 -1
- package/dest/private/acvm_native.d.ts +5 -3
- package/dest/private/acvm_native.d.ts.map +1 -1
- package/dest/private/acvm_native.js +8 -6
- package/dest/private/acvm_wasm.d.ts +4 -3
- package/dest/private/acvm_wasm.d.ts.map +1 -1
- package/dest/private/acvm_wasm.js +7 -5
- package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
- package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
- package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/circuit_recorder.js +23 -20
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
- package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
- package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
- package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
- package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
- package/dest/private/circuit_simulator.d.ts +1 -1
- package/dest/private/factory.d.ts +3 -3
- package/dest/private/factory.d.ts.map +1 -1
- package/dest/private/factory.js +7 -4
- package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
- package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
- package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
- package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +3 -2
- package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
- package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
- package/dest/public/avm/{fixtures → testing}/utils.d.ts +4 -10
- package/dest/public/avm/testing/utils.d.ts.map +1 -0
- package/dest/public/avm/{fixtures → testing}/utils.js +6 -35
- 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 +14 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/executor_metrics.d.ts +3 -2
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +13 -34
- package/dest/public/executor_metrics_interface.d.ts +3 -2
- package/dest/public/executor_metrics_interface.d.ts.map +1 -1
- package/dest/public/fixtures/amm_test.d.ts +1 -1
- package/dest/public/fixtures/amm_test.js +4 -4
- package/dest/public/fixtures/bulk_test.d.ts +3 -3
- package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
- package/dest/public/fixtures/bulk_test.js +36 -73
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +29 -7
- package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tester.js +36 -12
- package/dest/public/fixtures/index.d.ts +2 -3
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +1 -2
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +30 -11
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +98 -31
- package/dest/public/fixtures/simple_contract_data_source.d.ts +5 -4
- package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/fixtures/simple_contract_data_source.js +5 -5
- package/dest/public/fixtures/token_test.d.ts +6 -2
- package/dest/public/fixtures/token_test.d.ts.map +1 -1
- package/dest/public/fixtures/token_test.js +13 -12
- package/dest/public/fixtures/utils.d.ts +3 -3
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +23 -23
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +62 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +176 -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/index.d.ts +3 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +1 -1
- package/dest/public/public_db_sources.d.ts +29 -66
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +83 -134
- package/dest/public/public_errors.d.ts +1 -1
- package/dest/public/public_errors.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -5
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +12 -4
- package/dest/public/public_processor/public_processor.d.ts +19 -21
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +553 -123
- package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +36 -45
- 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 +99 -0
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
- package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/dumping_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 +5 -3
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +3 -2
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -89
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +101 -334
- package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +25 -2
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
- package/dest/public/side_effect_errors.d.ts +1 -1
- package/dest/public/side_effect_errors.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.d.ts +11 -4
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +29 -6
- 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 +1 -1
- package/dest/server.d.ts +1 -1
- package/dest/testing.d.ts +1 -1
- package/package.json +22 -22
- package/src/common/errors.ts +1 -1
- package/src/private/acvm/acvm.ts +4 -3
- package/src/private/acvm/deserialize.ts +1 -1
- package/src/private/acvm/serialize.ts +1 -1
- package/src/private/acvm_native.ts +11 -5
- package/src/private/acvm_wasm.ts +11 -4
- package/src/private/circuit_recording/circuit_recorder.ts +24 -21
- package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
- package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
- package/src/private/factory.ts +7 -4
- package/src/public/avm/testing/account_proof.json +553 -0
- package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
- package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
- package/src/public/avm/{fixtures → testing}/utils.ts +6 -41
- package/src/public/contracts_db_checkpoint.ts +41 -0
- package/src/public/db_interfaces.ts +16 -1
- package/src/public/executor_metrics.ts +11 -34
- package/src/public/executor_metrics_interface.ts +2 -1
- package/src/public/fixtures/amm_test.ts +4 -4
- package/src/public/fixtures/bulk_test.ts +38 -13
- package/src/public/fixtures/custom_bytecode_tester.ts +54 -20
- package/src/public/fixtures/index.ts +5 -2
- package/src/public/fixtures/public_tx_simulation_tester.ts +129 -27
- package/src/public/fixtures/simple_contract_data_source.ts +9 -10
- package/src/public/fixtures/token_test.ts +18 -10
- package/src/public/fixtures/utils.ts +28 -25
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +285 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +173 -0
- package/src/public/index.ts +4 -2
- package/src/public/public_db_sources.ts +112 -174
- package/src/public/public_processor/guarded_merkle_tree.ts +14 -6
- package/src/public/public_processor/public_processor.ts +225 -136
- package/src/public/public_processor/public_processor_metrics.ts +28 -44
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +125 -0
- package/src/public/public_tx_simulator/dumping_public_tx_simulator.ts +83 -0
- package/src/public/public_tx_simulator/factories.ts +44 -0
- package/src/public/public_tx_simulator/index.ts +4 -2
- package/src/public/public_tx_simulator/public_tx_simulator.ts +153 -500
- package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +24 -2
- package/src/public/test_executor_metrics.ts +34 -8
- package/dest/public/avm/avm_context.d.ts +0 -41
- package/dest/public/avm/avm_context.d.ts.map +0 -1
- package/dest/public/avm/avm_context.js +0 -44
- package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
- package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
- package/dest/public/avm/avm_contract_call_result.js +0 -54
- package/dest/public/avm/avm_execution_environment.d.ts +0 -23
- package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
- package/dest/public/avm/avm_execution_environment.js +0 -36
- package/dest/public/avm/avm_gas.d.ts +0 -44
- package/dest/public/avm/avm_gas.d.ts.map +0 -1
- package/dest/public/avm/avm_gas.js +0 -195
- package/dest/public/avm/avm_machine_state.d.ts +0 -97
- package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/public/avm/avm_machine_state.js +0 -109
- package/dest/public/avm/avm_memory_types.d.ts +0 -275
- package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
- package/dest/public/avm/avm_memory_types.js +0 -351
- package/dest/public/avm/avm_simulator.d.ts +0 -39
- package/dest/public/avm/avm_simulator.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator.js +0 -190
- package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
- package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
- package/dest/public/avm/avm_simulator_interface.js +0 -3
- package/dest/public/avm/errors.d.ts +0 -98
- package/dest/public/avm/errors.d.ts.map +0 -1
- package/dest/public/avm/errors.js +0 -129
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -74
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.d.ts +0 -43
- package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
- package/dest/public/avm/fixtures/initializers.js +0 -42
- package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
- package/dest/public/avm/index.d.ts +0 -2
- package/dest/public/avm/index.d.ts.map +0 -1
- package/dest/public/avm/index.js +0 -1
- package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -75
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/public/avm/opcodes/accrued_substate.js +0 -255
- package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
- package/dest/public/avm/opcodes/addressing_mode.js +0 -94
- package/dest/public/avm/opcodes/arithmetic.d.ts +0 -47
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/public/avm/opcodes/arithmetic.js +0 -87
- package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
- package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
- package/dest/public/avm/opcodes/bitwise.js +0 -99
- package/dest/public/avm/opcodes/comparators.d.ts +0 -25
- package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
- package/dest/public/avm/opcodes/comparators.js +0 -43
- package/dest/public/avm/opcodes/contract.d.ts +0 -20
- package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/public/avm/opcodes/contract.js +0 -65
- package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
- package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
- package/dest/public/avm/opcodes/control_flow.js +0 -107
- package/dest/public/avm/opcodes/conversion.d.ts +0 -18
- package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
- package/dest/public/avm/opcodes/conversion.js +0 -333
- package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
- package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/public/avm/opcodes/ec_add.js +0 -84
- package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
- package/dest/public/avm/opcodes/environment_getters.js +0 -77
- package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
- package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
- package/dest/public/avm/opcodes/external_calls.js +0 -209
- package/dest/public/avm/opcodes/hashing.d.ts +0 -36
- package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
- package/dest/public/avm/opcodes/hashing.js +0 -114
- package/dest/public/avm/opcodes/index.d.ts +0 -16
- package/dest/public/avm/opcodes/index.d.ts.map +0 -1
- package/dest/public/avm/opcodes/index.js +0 -15
- package/dest/public/avm/opcodes/instruction.d.ts +0 -74
- package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
- package/dest/public/avm/opcodes/instruction.js +0 -95
- package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
- package/dest/public/avm/opcodes/instruction_impl.js +0 -30
- package/dest/public/avm/opcodes/memory.d.ts +0 -74
- package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
- package/dest/public/avm/opcodes/memory.js +0 -257
- package/dest/public/avm/opcodes/misc.d.ts +0 -18
- package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
- package/dest/public/avm/opcodes/misc.js +0 -73
- package/dest/public/avm/opcodes/storage.d.ts +0 -24
- package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/public/avm/opcodes/storage.js +0 -68
- package/dest/public/avm/revert_reason.d.ts +0 -18
- package/dest/public/avm/revert_reason.d.ts.map +0 -1
- package/dest/public/avm/revert_reason.js +0 -38
- package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
- package/dest/public/avm/serialization/buffer_cursor.js +0 -99
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +0 -333
- package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
- package/dest/public/avm/serialization/instruction_serialization.js +0 -261
- package/dest/public/avm/test_utils.d.ts +0 -15
- package/dest/public/avm/test_utils.d.ts.map +0 -1
- package/dest/public/avm/test_utils.js +0 -44
- package/dest/public/debug_fn_name.d.ts +0 -5
- package/dest/public/debug_fn_name.d.ts.map +0 -1
- package/dest/public/debug_fn_name.js +0 -9
- package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -9
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +0 -109
- package/dest/public/fixtures/minimal_public_tx.d.ts +0 -10
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
- package/dest/public/fixtures/minimal_public_tx.js +0 -29
- package/dest/public/hinting_db_sources.d.ts +0 -70
- package/dest/public/hinting_db_sources.d.ts.map +0 -1
- package/dest/public/hinting_db_sources.js +0 -297
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -41
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -89
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -24
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -127
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +0 -292
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -39
- package/dest/public/side_effect_trace.d.ts +0 -87
- package/dest/public/side_effect_trace.d.ts.map +0 -1
- package/dest/public/side_effect_trace.js +0 -199
- package/dest/public/side_effect_trace_interface.d.ts +0 -23
- package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
- package/dest/public/side_effect_trace_interface.js +0 -1
- package/dest/public/state_manager/index.d.ts +0 -2
- package/dest/public/state_manager/index.d.ts.map +0 -1
- package/dest/public/state_manager/index.js +0 -1
- package/dest/public/state_manager/nullifiers.d.ts +0 -61
- package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
- package/dest/public/state_manager/nullifiers.js +0 -92
- package/dest/public/state_manager/public_storage.d.ts +0 -66
- package/dest/public/state_manager/public_storage.d.ts.map +0 -1
- package/dest/public/state_manager/public_storage.js +0 -145
- package/dest/public/state_manager/state_manager.d.ts +0 -166
- package/dest/public/state_manager/state_manager.d.ts.map +0 -1
- package/dest/public/state_manager/state_manager.js +0 -391
- 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/src/public/avm/avm_context.ts +0 -61
- package/src/public/avm/avm_contract_call_result.ts +0 -67
- package/src/public/avm/avm_execution_environment.ts +0 -48
- package/src/public/avm/avm_gas.ts +0 -183
- package/src/public/avm/avm_machine_state.ts +0 -169
- package/src/public/avm/avm_memory_types.ts +0 -436
- package/src/public/avm/avm_simulator.ts +0 -274
- package/src/public/avm/avm_simulator_interface.ts +0 -8
- package/src/public/avm/errors.ts +0 -163
- package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -108
- package/src/public/avm/fixtures/initializers.ts +0 -104
- package/src/public/avm/index.ts +0 -1
- package/src/public/avm/opcodes/accrued_substate.ts +0 -288
- package/src/public/avm/opcodes/addressing_mode.ts +0 -111
- package/src/public/avm/opcodes/arithmetic.ts +0 -117
- package/src/public/avm/opcodes/bitwise.ts +0 -113
- package/src/public/avm/opcodes/comparators.ts +0 -55
- package/src/public/avm/opcodes/contract.ts +0 -75
- package/src/public/avm/opcodes/control_flow.ts +0 -123
- package/src/public/avm/opcodes/conversion.ts +0 -104
- package/src/public/avm/opcodes/ec_add.ts +0 -96
- package/src/public/avm/opcodes/environment_getters.ts +0 -87
- package/src/public/avm/opcodes/external_calls.ts +0 -260
- package/src/public/avm/opcodes/hashing.ts +0 -145
- package/src/public/avm/opcodes/index.ts +0 -15
- package/src/public/avm/opcodes/instruction.ts +0 -136
- package/src/public/avm/opcodes/instruction_impl.ts +0 -36
- package/src/public/avm/opcodes/memory.ts +0 -293
- package/src/public/avm/opcodes/misc.ts +0 -102
- package/src/public/avm/opcodes/storage.ts +0 -87
- package/src/public/avm/revert_reason.ts +0 -55
- package/src/public/avm/serialization/buffer_cursor.ts +0 -118
- package/src/public/avm/serialization/bytecode_serialization.ts +0 -204
- package/src/public/avm/serialization/instruction_serialization.ts +0 -249
- package/src/public/avm/test_utils.ts +0 -64
- package/src/public/debug_fn_name.ts +0 -18
- package/src/public/fixtures/custom_bytecode_tests.ts +0 -135
- package/src/public/fixtures/minimal_public_tx.ts +0 -36
- package/src/public/hinting_db_sources.ts +0 -505
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -128
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -109
- package/src/public/public_tx_simulator/public_tx_context.ts +0 -471
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
- package/src/public/side_effect_trace.ts +0 -290
- package/src/public/side_effect_trace_interface.ts +0 -28
- package/src/public/state_manager/index.ts +0 -1
- package/src/public/state_manager/nullifiers.ts +0 -103
- package/src/public/state_manager/public_storage.ts +0 -174
- package/src/public/state_manager/state_manager.ts +0 -560
- package/src/public/tx_contract_cache.ts +0 -69
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
NULLIFIER_SUBTREE_HEIGHT,
|
|
5
5
|
PUBLIC_DATA_SUBTREE_HEIGHT,
|
|
6
6
|
} from '@aztec/constants';
|
|
7
|
-
import { Fr } from '@aztec/foundation/
|
|
8
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
7
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
8
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
9
9
|
import { Timer } from '@aztec/foundation/timer';
|
|
10
10
|
import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
11
11
|
import { ContractInstancePublishedEvent } from '@aztec/protocol-contracts/instance-registry';
|
|
@@ -13,14 +13,15 @@ import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
|
13
13
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
14
14
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
15
|
import {
|
|
16
|
+
AllContractDeploymentData,
|
|
16
17
|
type ContractClassPublic,
|
|
17
18
|
type ContractDataSource,
|
|
19
|
+
type ContractDeploymentData,
|
|
18
20
|
type ContractInstanceWithAddress,
|
|
19
21
|
computePublicBytecodeCommitment,
|
|
20
22
|
} from '@aztec/stdlib/contract';
|
|
21
23
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
22
24
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
23
|
-
import { ContractClassLog, PrivateLog } from '@aztec/stdlib/logs';
|
|
24
25
|
import type { PublicDBAccessStats } from '@aztec/stdlib/stats';
|
|
25
26
|
import {
|
|
26
27
|
MerkleTreeId,
|
|
@@ -34,182 +35,103 @@ import type { UInt64 } from '@aztec/stdlib/types';
|
|
|
34
35
|
|
|
35
36
|
import { strict as assert } from 'assert';
|
|
36
37
|
|
|
38
|
+
import { ContractsDbCheckpoint } from './contracts_db_checkpoint.js';
|
|
37
39
|
import type { PublicContractsDBInterface, PublicStateDBInterface } from './db_interfaces.js';
|
|
38
40
|
import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from './side_effect_errors.js';
|
|
39
|
-
import { TxContractCache } from './tx_contract_cache.js';
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
43
|
* Implements the PublicContractsDBInterface using a ContractDataSource.
|
|
43
|
-
*
|
|
44
|
-
* Separates block-level contract information (from processed/included txs) from the
|
|
45
|
-
* current tx's contract information (which may be cleared on tx revert/death).
|
|
44
|
+
* Uses a stack-based checkpoint model for managing contract state.
|
|
46
45
|
*/
|
|
47
46
|
export class PublicContractsDB implements PublicContractsDBInterface {
|
|
48
|
-
|
|
49
|
-
// Tx-level cache:
|
|
50
|
-
// - The current tx's new contract information is cached
|
|
51
|
-
// in currentTxNonRevertibleCache and currentTxRevertibleCache.
|
|
52
|
-
// Block-level cache:
|
|
53
|
-
// - Contract information from earlier in the block, usable by later txs.
|
|
54
|
-
// When a tx succeeds, that tx's caches are merged into the block cache and cleared.
|
|
55
|
-
private currentTxNonRevertibleCache = new TxContractCache();
|
|
56
|
-
private currentTxRevertibleCache = new TxContractCache();
|
|
57
|
-
private blockCache = new TxContractCache();
|
|
58
|
-
// Separate flat cache for bytecode commitments.
|
|
59
|
-
private bytecodeCommitmentCache = new Map<string, Fr>();
|
|
60
|
-
|
|
61
|
-
private log = createLogger('simulator:contracts-data-source');
|
|
62
|
-
|
|
63
|
-
constructor(private dataSource: ContractDataSource) {}
|
|
47
|
+
private contractStateStack: ContractsDbCheckpoint[] = [new ContractsDbCheckpoint()];
|
|
64
48
|
|
|
65
|
-
|
|
66
|
-
* Add new contracts from a transaction
|
|
67
|
-
* @param tx - The transaction to add contracts from.
|
|
68
|
-
*/
|
|
69
|
-
public async addNewContracts(tx: Tx): Promise<void> {
|
|
70
|
-
await this.addNonRevertibleContractClasses(tx);
|
|
71
|
-
await this.addRevertibleContractClasses(tx);
|
|
72
|
-
this.addNonRevertibleContractInstances(tx);
|
|
73
|
-
this.addRevertibleContractInstances(tx);
|
|
74
|
-
}
|
|
49
|
+
private log: Logger;
|
|
75
50
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
await this.addNonRevertibleContractClasses(tx);
|
|
82
|
-
this.addNonRevertibleContractInstances(tx);
|
|
51
|
+
constructor(
|
|
52
|
+
private dataSource: ContractDataSource,
|
|
53
|
+
bindings?: LoggerBindings,
|
|
54
|
+
) {
|
|
55
|
+
this.log = createLogger('simulator:contracts-data-source', bindings);
|
|
83
56
|
}
|
|
84
57
|
|
|
85
|
-
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
public async addNewRevertibleContracts(tx: Tx) {
|
|
90
|
-
await this.addRevertibleContractClasses(tx);
|
|
91
|
-
this.addRevertibleContractInstances(tx);
|
|
92
|
-
}
|
|
58
|
+
/** Parses raw log data from the C++/NAPI bridge and inserts the resulting contracts into the current checkpoint. */
|
|
59
|
+
public addContractsFromLogs(contractDeploymentData: ContractDeploymentData): void {
|
|
60
|
+
const currentState = this.getCurrentState();
|
|
93
61
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
*/
|
|
99
|
-
private async addNonRevertibleContractClasses(tx: Tx) {
|
|
100
|
-
const siloedContractClassLogs = tx.data.forPublic
|
|
101
|
-
? tx.getSplitContractClassLogs(false /* revertible */)
|
|
102
|
-
: tx.getContractClassLogs();
|
|
103
|
-
await this.addContractClassesFromLogs(siloedContractClassLogs, this.currentTxNonRevertibleCache, 'non-revertible');
|
|
104
|
-
}
|
|
62
|
+
this.addContractClassesFromEvents(
|
|
63
|
+
ContractClassPublishedEvent.extractContractClassEvents(contractDeploymentData.getContractClassLogs()),
|
|
64
|
+
currentState,
|
|
65
|
+
);
|
|
105
66
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*/
|
|
111
|
-
private async addRevertibleContractClasses(tx: Tx) {
|
|
112
|
-
const siloedContractClassLogs = tx.data.forPublic ? tx.getSplitContractClassLogs(true /* revertible */) : [];
|
|
113
|
-
await this.addContractClassesFromLogs(siloedContractClassLogs, this.currentTxRevertibleCache, 'revertible');
|
|
67
|
+
this.addContractInstancesFromEvents(
|
|
68
|
+
ContractInstancePublishedEvent.extractContractInstanceEvents(contractDeploymentData.getPrivateLogs()),
|
|
69
|
+
currentState,
|
|
70
|
+
);
|
|
114
71
|
}
|
|
115
72
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*/
|
|
121
|
-
private addNonRevertibleContractInstances(tx: Tx) {
|
|
122
|
-
const contractInstanceLogs = tx.data.forPublic
|
|
123
|
-
? tx.data.forPublic!.nonRevertibleAccumulatedData.privateLogs.filter(l => !l.isEmpty())
|
|
124
|
-
: tx.data.forRollup!.end.privateLogs.filter(l => !l.isEmpty());
|
|
125
|
-
|
|
126
|
-
this.addContractInstancesFromLogs(contractInstanceLogs, this.currentTxNonRevertibleCache, 'non-revertible');
|
|
73
|
+
public addNewContracts(tx: Tx): void {
|
|
74
|
+
const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
|
|
75
|
+
this.addContractsFromLogs(contractDeploymentData.getNonRevertibleContractDeploymentData());
|
|
76
|
+
this.addContractsFromLogs(contractDeploymentData.getRevertibleContractDeploymentData());
|
|
127
77
|
}
|
|
128
78
|
|
|
129
|
-
/**
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const contractInstanceLogs = tx.data.forPublic
|
|
136
|
-
? tx.data.forPublic!.revertibleAccumulatedData.privateLogs.filter(l => !l.isEmpty())
|
|
137
|
-
: [];
|
|
138
|
-
|
|
139
|
-
this.addContractInstancesFromLogs(contractInstanceLogs, this.currentTxRevertibleCache, 'revertible');
|
|
79
|
+
/** Inserts typed contract instances directly into the current checkpoint. */
|
|
80
|
+
public addContracts(contractInstances?: ContractInstanceWithAddress[]): void {
|
|
81
|
+
const currentState = this.getCurrentState();
|
|
82
|
+
for (const instance of contractInstances ?? []) {
|
|
83
|
+
currentState.addInstance(instance.address, instance);
|
|
84
|
+
}
|
|
140
85
|
}
|
|
141
86
|
|
|
142
87
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* @param cache - The cache to store the contract classes in
|
|
146
|
-
* @param cacheType - Type of cache (for logging)
|
|
88
|
+
* Creates a new checkpoint, copying the current state for upcoming modifications,
|
|
89
|
+
* and enabling rollbacks to current state in case of a revert.
|
|
147
90
|
*/
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
) {
|
|
153
|
-
const contractClassEvents = siloedContractClassLogs
|
|
154
|
-
.filter((log: ContractClassLog) => ContractClassPublishedEvent.isContractClassPublishedEvent(log))
|
|
155
|
-
.map((log: ContractClassLog) => ContractClassPublishedEvent.fromLog(log));
|
|
156
|
-
|
|
157
|
-
// Cache contract classes
|
|
158
|
-
await Promise.all(
|
|
159
|
-
contractClassEvents.map(async (event: ContractClassPublishedEvent) => {
|
|
160
|
-
this.log.debug(`Adding class ${event.contractClassId.toString()} to contract's ${cacheType} tx cache`);
|
|
161
|
-
const contractClass = await event.toContractClassPublic();
|
|
162
|
-
|
|
163
|
-
cache.addClass(event.contractClassId, contractClass);
|
|
164
|
-
}),
|
|
165
|
-
);
|
|
91
|
+
public createCheckpoint(): void {
|
|
92
|
+
const currentState = this.getCurrentState();
|
|
93
|
+
const newState = currentState.fork();
|
|
94
|
+
this.contractStateStack.push(newState);
|
|
166
95
|
}
|
|
167
96
|
|
|
168
97
|
/**
|
|
169
|
-
*
|
|
170
|
-
* @param contractInstanceLogs - Contract instance logs to process
|
|
171
|
-
* @param cache - The cache to store the contract instances in
|
|
172
|
-
* @param cacheType - Type of cache (for logging)
|
|
98
|
+
* Commits the current checkpoint, accepting its state latest.
|
|
173
99
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
contractInstanceEvents.forEach(e => {
|
|
181
|
-
this.log.debug(
|
|
182
|
-
`Adding instance ${e.address.toString()} with class ${e.contractClassId.toString()} to ${cacheType} tx contract cache`,
|
|
183
|
-
);
|
|
184
|
-
cache.addInstance(e.address, e.toContractInstance());
|
|
185
|
-
});
|
|
100
|
+
public commitCheckpoint(): void {
|
|
101
|
+
if (this.contractStateStack.length <= 1) {
|
|
102
|
+
throw new Error('No checkpoint to commit');
|
|
103
|
+
}
|
|
104
|
+
const topState = this.contractStateStack.pop()!;
|
|
105
|
+
this.contractStateStack[this.contractStateStack.length - 1] = topState;
|
|
186
106
|
}
|
|
187
107
|
|
|
188
108
|
/**
|
|
189
|
-
*
|
|
109
|
+
* Commits the current checkpoint, not erroring if there is no checkpoint
|
|
110
|
+
* to commit. This is useful to do a sanity commit at the end of tx execution,
|
|
111
|
+
* doing nothing if the checkpoint was already reverted, but truly committing
|
|
112
|
+
* otherwise.
|
|
190
113
|
*/
|
|
191
|
-
public
|
|
192
|
-
this.
|
|
193
|
-
|
|
194
|
-
|
|
114
|
+
public commitCheckpointOkIfNone(): void {
|
|
115
|
+
if (this.contractStateStack.length <= 1) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const topState = this.contractStateStack.pop()!;
|
|
119
|
+
this.contractStateStack[this.contractStateStack.length - 1] = topState;
|
|
195
120
|
}
|
|
196
121
|
|
|
197
122
|
/**
|
|
198
|
-
*
|
|
199
|
-
*
|
|
123
|
+
* Reverts the current checkpoint, discarding its state and rolling back
|
|
124
|
+
* to the state as of the latest checkpoint.
|
|
200
125
|
*/
|
|
201
|
-
public
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (!onlyNonRevertibles) {
|
|
206
|
-
// Merge revertible tx cache into block cache
|
|
207
|
-
this.blockCache.mergeFrom(this.currentTxRevertibleCache);
|
|
126
|
+
public revertCheckpoint(): void {
|
|
127
|
+
if (this.contractStateStack.length <= 1) {
|
|
128
|
+
throw new Error('No checkpoint to revert');
|
|
208
129
|
}
|
|
130
|
+
this.contractStateStack.pop();
|
|
131
|
+
}
|
|
209
132
|
|
|
210
|
-
|
|
211
|
-
this.
|
|
212
|
-
this.currentTxRevertibleCache.clear();
|
|
133
|
+
private getCurrentState(): ContractsDbCheckpoint {
|
|
134
|
+
return this.contractStateStack[this.contractStateStack.length - 1];
|
|
213
135
|
}
|
|
214
136
|
|
|
215
137
|
// TODO(fcarreiro/alvaro): This method currently needs a blockNumber. Since this class
|
|
@@ -225,53 +147,64 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
225
147
|
address: AztecAddress,
|
|
226
148
|
timestamp: UInt64,
|
|
227
149
|
): Promise<ContractInstanceWithAddress | undefined> {
|
|
228
|
-
|
|
229
|
-
return (
|
|
230
|
-
this.currentTxRevertibleCache.getInstance(address) ??
|
|
231
|
-
this.currentTxNonRevertibleCache.getInstance(address) ??
|
|
232
|
-
this.blockCache.getInstance(address) ??
|
|
233
|
-
(await this.dataSource.getContract(address, timestamp))
|
|
234
|
-
);
|
|
150
|
+
const currentState = this.getCurrentState();
|
|
151
|
+
return currentState.getInstance(address) ?? (await this.dataSource.getContract(address, timestamp));
|
|
235
152
|
}
|
|
236
153
|
|
|
237
154
|
public async getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined> {
|
|
238
|
-
|
|
239
|
-
return (
|
|
240
|
-
this.currentTxRevertibleCache.getClass(contractClassId) ??
|
|
241
|
-
this.currentTxNonRevertibleCache.getClass(contractClassId) ??
|
|
242
|
-
this.blockCache.getClass(contractClassId) ??
|
|
243
|
-
(await this.dataSource.getContractClass(contractClassId))
|
|
244
|
-
);
|
|
155
|
+
const currentState = this.getCurrentState();
|
|
156
|
+
return currentState.getClass(contractClassId) ?? (await this.dataSource.getContractClass(contractClassId));
|
|
245
157
|
}
|
|
246
158
|
|
|
247
159
|
public async getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined> {
|
|
248
|
-
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
160
|
+
const currentState = this.getCurrentState();
|
|
161
|
+
const commitment =
|
|
162
|
+
currentState.getBytecodeCommitment(contractClassId) ??
|
|
163
|
+
(await this.dataSource.getBytecodeCommitment(contractClassId));
|
|
164
|
+
if (commitment !== undefined) {
|
|
165
|
+
return commitment;
|
|
253
166
|
}
|
|
254
|
-
//
|
|
255
|
-
|
|
256
|
-
if (fromStore !== undefined) {
|
|
257
|
-
this.bytecodeCommitmentCache.set(key, fromStore);
|
|
258
|
-
return fromStore;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// Not in either the store or the cache, build it here and cache
|
|
167
|
+
// Not in the current state or the store, compute it here
|
|
168
|
+
// Get the contract class
|
|
262
169
|
const contractClass = await this.getContractClass(contractClassId);
|
|
170
|
+
|
|
263
171
|
if (contractClass === undefined) {
|
|
172
|
+
// cannot compute bytecode commitment if contract class is not found
|
|
264
173
|
return undefined;
|
|
265
174
|
}
|
|
266
175
|
|
|
267
176
|
const value = await computePublicBytecodeCommitment(contractClass.packedBytecode);
|
|
268
|
-
|
|
177
|
+
// Add to cache (current checkpoint state) so we don't compute again
|
|
178
|
+
currentState.addBytecodeCommitment(contractClassId, value);
|
|
269
179
|
return value;
|
|
270
180
|
}
|
|
271
181
|
|
|
272
182
|
public async getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined> {
|
|
273
183
|
return await this.dataSource.getDebugFunctionName(address, selector);
|
|
274
184
|
}
|
|
185
|
+
|
|
186
|
+
private addContractClassesFromEvents(
|
|
187
|
+
contractClassEvents: ContractClassPublishedEvent[],
|
|
188
|
+
state: ContractsDbCheckpoint,
|
|
189
|
+
) {
|
|
190
|
+
for (const event of contractClassEvents) {
|
|
191
|
+
this.log.debug(`Adding class ${event.contractClassId.toString()} to contract state`);
|
|
192
|
+
const contractClass = event.toContractClassPublic();
|
|
193
|
+
state.addClass(event.contractClassId, contractClass);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
private addContractInstancesFromEvents(
|
|
198
|
+
contractInstanceEvents: ContractInstancePublishedEvent[],
|
|
199
|
+
state: ContractsDbCheckpoint,
|
|
200
|
+
) {
|
|
201
|
+
contractInstanceEvents.forEach(e => {
|
|
202
|
+
this.log.debug(
|
|
203
|
+
`Adding instance ${e.address.toString()} with class ${e.contractClassId.toString()} to contract state`,
|
|
204
|
+
);
|
|
205
|
+
state.addInstance(e.address, e.toContractInstance());
|
|
206
|
+
});
|
|
207
|
+
}
|
|
275
208
|
}
|
|
276
209
|
|
|
277
210
|
/**
|
|
@@ -287,9 +220,14 @@ export class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
287
220
|
* to decide whether to use hints or not (same with tracing, etc).
|
|
288
221
|
*/
|
|
289
222
|
export class PublicTreesDB implements PublicStateDBInterface {
|
|
290
|
-
private logger
|
|
223
|
+
private logger: Logger;
|
|
291
224
|
|
|
292
|
-
constructor(
|
|
225
|
+
constructor(
|
|
226
|
+
private readonly db: MerkleTreeWriteOperations,
|
|
227
|
+
bindings?: LoggerBindings,
|
|
228
|
+
) {
|
|
229
|
+
this.logger = createLogger('simulator:public-trees-db', bindings);
|
|
230
|
+
}
|
|
293
231
|
|
|
294
232
|
public async storageRead(contract: AztecAddress, slot: Fr): Promise<Fr> {
|
|
295
233
|
const timer = new Timer();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { SerialQueue } from '@aztec/foundation/queue';
|
|
2
3
|
import type { IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
|
|
3
4
|
import type {
|
|
@@ -80,6 +81,10 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
80
81
|
close(): Promise<void> {
|
|
81
82
|
return this.guardAndPush(() => this.target.close());
|
|
82
83
|
}
|
|
84
|
+
|
|
85
|
+
async [Symbol.asyncDispose](): Promise<void> {
|
|
86
|
+
await this.close();
|
|
87
|
+
}
|
|
83
88
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo> {
|
|
84
89
|
return this.guardAndPush(() => this.target.getTreeInfo(treeId));
|
|
85
90
|
}
|
|
@@ -92,6 +97,9 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
92
97
|
public getRevision(): WorldStateRevision {
|
|
93
98
|
return this.target.getRevision();
|
|
94
99
|
}
|
|
100
|
+
public getIpcPath(): string {
|
|
101
|
+
return this.target.getIpcPath();
|
|
102
|
+
}
|
|
95
103
|
getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>> {
|
|
96
104
|
return this.guardAndPush(() => this.target.getSiblingPath(treeId, index));
|
|
97
105
|
}
|
|
@@ -126,10 +134,10 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
126
134
|
getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(
|
|
127
135
|
treeId: ID,
|
|
128
136
|
leafIndices: bigint[],
|
|
129
|
-
): Promise<(
|
|
137
|
+
): Promise<(BlockNumber | undefined)[]> {
|
|
130
138
|
return this.guardAndPush(() => this.target.getBlockNumbersForLeafIndices(treeId, leafIndices));
|
|
131
139
|
}
|
|
132
|
-
createCheckpoint(): Promise<
|
|
140
|
+
createCheckpoint(): Promise<number> {
|
|
133
141
|
return this.guardAndPush(() => this.target.createCheckpoint());
|
|
134
142
|
}
|
|
135
143
|
commitCheckpoint(): Promise<void> {
|
|
@@ -138,11 +146,11 @@ export class GuardedMerkleTreeOperations implements MerkleTreeWriteOperations {
|
|
|
138
146
|
revertCheckpoint(): Promise<void> {
|
|
139
147
|
return this.guardAndPush(() => this.target.revertCheckpoint());
|
|
140
148
|
}
|
|
141
|
-
|
|
142
|
-
return this.guardAndPush(() => this.target.
|
|
149
|
+
commitAllCheckpointsTo(depth: number): Promise<void> {
|
|
150
|
+
return this.guardAndPush(() => this.target.commitAllCheckpointsTo(depth));
|
|
143
151
|
}
|
|
144
|
-
|
|
145
|
-
return this.guardAndPush(() => this.target.
|
|
152
|
+
revertAllCheckpointsTo(depth: number): Promise<void> {
|
|
153
|
+
return this.guardAndPush(() => this.target.revertAllCheckpointsTo(depth));
|
|
146
154
|
}
|
|
147
155
|
findSiblingPaths<ID extends MerkleTreeId>(
|
|
148
156
|
treeId: ID,
|