@aztec/simulator 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea
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/common/errors.d.ts +8 -2
- package/dest/common/errors.d.ts.map +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/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/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 +4 -4
- 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/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/avm_context.d.ts +3 -3
- package/dest/public/avm/avm_context.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.d.ts +6 -6
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
- package/dest/public/avm/avm_contract_call_result.js +3 -3
- package/dest/public/avm/avm_execution_environment.d.ts +7 -6
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_execution_environment.js +1 -1
- package/dest/public/avm/avm_gas.d.ts +1 -1
- package/dest/public/avm/avm_gas.d.ts.map +1 -1
- package/dest/public/avm/avm_gas.js +3 -3
- package/dest/public/avm/avm_machine_state.d.ts +7 -6
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.js +3 -2
- package/dest/public/avm/avm_memory_types.d.ts +2 -2
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +4 -1
- package/dest/public/avm/avm_simulator.d.ts +4 -3
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +11 -9
- package/dest/public/avm/calldata.d.ts +51 -0
- package/dest/public/avm/calldata.d.ts.map +1 -0
- package/dest/public/avm/calldata.js +63 -0
- package/dest/public/avm/errors.d.ts +8 -2
- package/dest/public/avm/errors.d.ts.map +1 -1
- package/dest/public/avm/errors.js +14 -2
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
- package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +4 -3
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -2
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +1 -1
- package/dest/public/avm/fixtures/initializers.d.ts +2 -2
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.js +5 -4
- package/dest/public/avm/fixtures/utils.d.ts +4 -3
- package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
- package/dest/public/avm/fixtures/utils.js +3 -2
- package/dest/public/avm/opcodes/accrued_substate.d.ts +17 -18
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +42 -43
- package/dest/public/avm/opcodes/addressing_mode.js +2 -2
- package/dest/public/avm/opcodes/arithmetic.d.ts +10 -8
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +12 -2
- package/dest/public/avm/opcodes/bitwise.d.ts +7 -7
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/public/avm/opcodes/bitwise.js +5 -5
- 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 +1 -1
- package/dest/public/avm/opcodes/contract.d.ts +3 -3
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/public/avm/opcodes/contract.js +8 -8
- package/dest/public/avm/opcodes/control_flow.d.ts +3 -3
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/public/avm/opcodes/control_flow.js +4 -4
- package/dest/public/avm/opcodes/conversion.d.ts +3 -3
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/public/avm/opcodes/conversion.js +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts +4 -4
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/public/avm/opcodes/ec_add.js +17 -8
- package/dest/public/avm/opcodes/environment_getters.d.ts +5 -5
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +6 -6
- package/dest/public/avm/opcodes/external_calls.d.ts +9 -9
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/public/avm/opcodes/external_calls.js +23 -22
- package/dest/public/avm/opcodes/hashing.d.ts +8 -8
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/public/avm/opcodes/hashing.js +21 -16
- package/dest/public/avm/opcodes/instruction_impl.d.ts +4 -4
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/public/avm/opcodes/instruction_impl.js +4 -4
- package/dest/public/avm/opcodes/memory.d.ts +14 -14
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/public/avm/opcodes/memory.js +26 -26
- package/dest/public/avm/opcodes/misc.d.ts +3 -3
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/public/avm/opcodes/misc.js +6 -6
- package/dest/public/avm/opcodes/storage.d.ts +16 -15
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/public/avm/opcodes/storage.js +34 -24
- package/dest/public/avm/revert_reason.d.ts +2 -2
- package/dest/public/avm/revert_reason.d.ts.map +1 -1
- package/dest/public/avm/revert_reason.js +3 -2
- package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.js +12 -9
- package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/public/avm/serialization/instruction_serialization.js +2 -2
- package/dest/public/avm/test_utils.d.ts +2 -2
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +1 -1
- package/dest/public/contracts_db_checkpoint.d.ts +2 -2
- package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
- package/dest/public/db_interfaces.d.ts +2 -2
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/debug_fn_name.d.ts +16 -3
- package/dest/public/debug_fn_name.d.ts.map +1 -1
- package/dest/public/debug_fn_name.js +31 -3
- package/dest/public/executor_metrics.d.ts +1 -1
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +12 -33
- 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 +5 -69
- package/dest/public/fixtures/custom_bytecode_tester.d.ts +28 -6
- 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/custom_bytecode_tests.d.ts +11 -8
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +83 -18
- package/dest/public/fixtures/index.d.ts +4 -2
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +3 -1
- package/dest/public/fixtures/minimal_public_tx.d.ts +2 -7
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
- package/dest/public/fixtures/minimal_public_tx.js +4 -14
- package/dest/public/fixtures/opcode_spammer.d.ts +122 -0
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -0
- package/dest/public/fixtures/opcode_spammer.js +1653 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +27 -7
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +86 -22
- 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 +4 -4
- 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 -11
- 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 +10 -9
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +60 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +171 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts +2 -0
- package/dest/public/fuzzing/avm_simulator_bin.d.ts.map +1 -0
- package/dest/public/fuzzing/avm_simulator_bin.js +118 -0
- package/dest/public/hinting_db_sources.d.ts +5 -3
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +7 -2
- package/dest/public/index.d.ts +2 -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 +5 -4
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +5 -5
- package/dest/public/public_processor/guarded_merkle_tree.d.ts +4 -2
- package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
- package/dest/public/public_processor/guarded_merkle_tree.js +5 -0
- package/dest/public/public_processor/public_processor.d.ts +11 -7
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +483 -74
- package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +28 -45
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -14
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +20 -55
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +24 -37
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +65 -144
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +171 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +23 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +52 -0
- package/dest/public/public_tx_simulator/factories.d.ts +14 -0
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/factories.js +28 -0
- package/dest/public/public_tx_simulator/index.d.ts +4 -1
- package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/index.js +3 -0
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +3 -3
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +5 -4
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +9 -9
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +8 -6
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +25 -14
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +24 -1
- package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +2 -2
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +395 -19
- package/dest/public/side_effect_trace.d.ts +6 -5
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +4 -4
- package/dest/public/side_effect_trace_interface.d.ts +2 -2
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/state_manager/nullifiers.d.ts +2 -2
- package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.d.ts +2 -2
- package/dest/public/state_manager/public_storage.d.ts.map +1 -1
- package/dest/public/state_manager/public_storage.js +1 -1
- package/dest/public/state_manager/state_manager.d.ts +16 -5
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +19 -9
- package/dest/public/test_executor_metrics.d.ts +8 -2
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +24 -2
- package/package.json +20 -20
- 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 +7 -3
- 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/avm_context.ts +2 -2
- package/src/public/avm/avm_contract_call_result.ts +8 -6
- package/src/public/avm/avm_execution_environment.ts +10 -5
- package/src/public/avm/avm_gas.ts +5 -5
- package/src/public/avm/avm_machine_state.ts +7 -6
- package/src/public/avm/avm_memory_types.ts +5 -1
- package/src/public/avm/avm_simulator.ts +16 -10
- package/src/public/avm/calldata.ts +100 -0
- package/src/public/avm/errors.ts +17 -3
- package/src/public/avm/fixtures/account_proof.json +553 -0
- package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
- package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -3
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +1 -1
- package/src/public/avm/fixtures/initializers.ts +5 -4
- package/src/public/avm/fixtures/utils.ts +3 -2
- package/src/public/avm/opcodes/accrued_substate.ts +31 -34
- package/src/public/avm/opcodes/addressing_mode.ts +2 -2
- package/src/public/avm/opcodes/arithmetic.ts +14 -2
- package/src/public/avm/opcodes/bitwise.ts +3 -3
- package/src/public/avm/opcodes/comparators.ts +1 -1
- package/src/public/avm/opcodes/contract.ts +4 -7
- package/src/public/avm/opcodes/control_flow.ts +2 -2
- package/src/public/avm/opcodes/conversion.ts +3 -3
- package/src/public/avm/opcodes/ec_add.ts +15 -6
- package/src/public/avm/opcodes/environment_getters.ts +7 -7
- package/src/public/avm/opcodes/external_calls.ts +17 -15
- package/src/public/avm/opcodes/hashing.ts +16 -10
- package/src/public/avm/opcodes/instruction_impl.ts +2 -2
- package/src/public/avm/opcodes/memory.ts +20 -20
- package/src/public/avm/opcodes/misc.ts +4 -4
- package/src/public/avm/opcodes/storage.ts +30 -22
- package/src/public/avm/revert_reason.ts +6 -3
- package/src/public/avm/serialization/bytecode_serialization.ts +19 -8
- package/src/public/avm/serialization/instruction_serialization.ts +2 -2
- package/src/public/avm/test_utils.ts +1 -1
- package/src/public/contracts_db_checkpoint.ts +1 -1
- package/src/public/db_interfaces.ts +1 -1
- package/src/public/debug_fn_name.ts +39 -5
- package/src/public/executor_metrics.ts +9 -33
- package/src/public/fixtures/amm_test.ts +4 -4
- package/src/public/fixtures/bulk_test.ts +9 -9
- package/src/public/fixtures/custom_bytecode_tester.ts +53 -19
- package/src/public/fixtures/custom_bytecode_tests.ts +111 -18
- package/src/public/fixtures/index.ts +7 -1
- package/src/public/fixtures/minimal_public_tx.ts +6 -15
- package/src/public/fixtures/opcode_spammer.ts +1717 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +120 -18
- package/src/public/fixtures/simple_contract_data_source.ts +8 -9
- package/src/public/fixtures/token_test.ts +18 -9
- package/src/public/fixtures/utils.ts +8 -8
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +288 -0
- package/src/public/fuzzing/avm_simulator_bin.ts +175 -0
- package/src/public/hinting_db_sources.ts +8 -3
- package/src/public/index.ts +7 -1
- package/src/public/public_db_sources.ts +16 -6
- package/src/public/public_processor/guarded_merkle_tree.ts +6 -1
- package/src/public/public_processor/public_processor.ts +116 -71
- package/src/public/public_processor/public_processor_metrics.ts +16 -44
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +25 -63
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +82 -178
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +134 -0
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +239 -0
- package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +83 -0
- package/src/public/public_tx_simulator/factories.ts +44 -0
- package/src/public/public_tx_simulator/index.ts +3 -0
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +1 -1
- package/src/public/public_tx_simulator/public_tx_context.ts +14 -7
- package/src/public/public_tx_simulator/public_tx_simulator.ts +45 -19
- package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +23 -0
- package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +1 -1
- package/src/public/side_effect_trace.ts +6 -3
- package/src/public/side_effect_trace_interface.ts +1 -1
- package/src/public/state_manager/nullifiers.ts +1 -1
- package/src/public/state_manager/public_storage.ts +1 -1
- package/src/public/state_manager/state_manager.ts +39 -23
- package/src/public/test_executor_metrics.ts +27 -3
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_TEARDOWN_DA_GAS_LIMIT,
|
|
3
|
+
DEFAULT_TEARDOWN_L2_GAS_LIMIT,
|
|
4
|
+
PUBLIC_TX_L2_GAS_OVERHEAD,
|
|
5
|
+
TX_DA_GAS_OVERHEAD,
|
|
6
|
+
} from '@aztec/constants';
|
|
2
7
|
import { asyncMap } from '@aztec/foundation/async-map';
|
|
3
|
-
import {
|
|
8
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
9
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
10
|
import { type ContractArtifact, encodeArguments } from '@aztec/stdlib/abi';
|
|
5
11
|
import { PublicSimulatorConfig, type PublicTxResult } from '@aztec/stdlib/avm';
|
|
6
12
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -19,7 +25,7 @@ import {
|
|
|
19
25
|
} from '../avm/fixtures/utils.js';
|
|
20
26
|
import { PublicContractsDB } from '../public_db_sources.js';
|
|
21
27
|
import { MeasuredCppPublicTxSimulator } from '../public_tx_simulator/cpp_public_tx_simulator.js';
|
|
22
|
-
import {
|
|
28
|
+
import { MeasuredCppVsTsPublicTxSimulator } from '../public_tx_simulator/cpp_vs_ts_public_tx_simulator.js';
|
|
23
29
|
import type { MeasuredPublicTxSimulatorInterface } from '../public_tx_simulator/public_tx_simulator_interface.js';
|
|
24
30
|
import { TestExecutorMetrics } from '../test_executor_metrics.js';
|
|
25
31
|
import { SimpleContractDataSource } from './simple_contract_data_source.js';
|
|
@@ -30,7 +36,7 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
|
|
|
30
36
|
export type TestEnqueuedCall = {
|
|
31
37
|
sender?: AztecAddress;
|
|
32
38
|
address: AztecAddress;
|
|
33
|
-
fnName
|
|
39
|
+
fnName?: string;
|
|
34
40
|
args: any[];
|
|
35
41
|
isStaticCall?: boolean;
|
|
36
42
|
contractArtifact?: ContractArtifact;
|
|
@@ -41,9 +47,21 @@ const defaultConfig: PublicSimulatorConfig = PublicSimulatorConfig.from({
|
|
|
41
47
|
collectCallMetadata: true,
|
|
42
48
|
collectDebugLogs: true,
|
|
43
49
|
collectHints: false,
|
|
50
|
+
collectPublicInputs: false,
|
|
44
51
|
collectStatistics: false,
|
|
45
52
|
});
|
|
46
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Factory type for creating a MeasuredPublicTxSimulatorInterface.
|
|
56
|
+
*/
|
|
57
|
+
export type MeasuredSimulatorFactory = (
|
|
58
|
+
merkleTree: MerkleTreeWriteOperations,
|
|
59
|
+
contractsDB: PublicContractsDB,
|
|
60
|
+
globals: GlobalVariables,
|
|
61
|
+
metrics: TestExecutorMetrics,
|
|
62
|
+
config: PublicSimulatorConfig,
|
|
63
|
+
) => MeasuredPublicTxSimulatorInterface;
|
|
64
|
+
|
|
47
65
|
/**
|
|
48
66
|
* A test class that extends the BaseAvmSimulationTester to enable real-app testing of the PublicTxSimulator.
|
|
49
67
|
* It provides an interface for simulating one transaction at a time and maintains state between subsequent
|
|
@@ -59,15 +77,17 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
59
77
|
contractDataSource: SimpleContractDataSource,
|
|
60
78
|
globals: GlobalVariables = defaultGlobals(),
|
|
61
79
|
private metrics: TestExecutorMetrics = new TestExecutorMetrics(),
|
|
62
|
-
|
|
80
|
+
simulatorFactory?: MeasuredSimulatorFactory,
|
|
63
81
|
config: PublicSimulatorConfig = defaultConfig,
|
|
64
82
|
) {
|
|
65
83
|
super(contractDataSource, merkleTree);
|
|
66
84
|
|
|
67
85
|
const contractsDB = new PublicContractsDB(contractDataSource);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
86
|
+
if (simulatorFactory) {
|
|
87
|
+
this.simulator = simulatorFactory(merkleTree, contractsDB, globals, this.metrics, config);
|
|
88
|
+
} else {
|
|
89
|
+
this.simulator = new MeasuredCppPublicTxSimulator(merkleTree, contractsDB, globals, this.metrics, config);
|
|
90
|
+
}
|
|
71
91
|
}
|
|
72
92
|
|
|
73
93
|
public static async create(
|
|
@@ -79,7 +99,10 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
79
99
|
): Promise<PublicTxSimulationTester> {
|
|
80
100
|
const contractDataSource = new SimpleContractDataSource();
|
|
81
101
|
const merkleTree = await worldStateService.fork();
|
|
82
|
-
|
|
102
|
+
const simulatorFactory: MeasuredSimulatorFactory = useCppSimulator
|
|
103
|
+
? (mt, cdb, g, m, c) => new MeasuredCppPublicTxSimulator(mt, cdb, g, m, c)
|
|
104
|
+
: (mt, cdb, g, m, c) => new MeasuredCppVsTsPublicTxSimulator(mt, cdb, g, m, c);
|
|
105
|
+
return new PublicTxSimulationTester(merkleTree, contractDataSource, globals, metrics, simulatorFactory, config);
|
|
83
106
|
}
|
|
84
107
|
|
|
85
108
|
public setMetricsPrefix(prefix: string) {
|
|
@@ -94,6 +117,7 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
94
117
|
feePayer: AztecAddress = sender,
|
|
95
118
|
/* need some unique first nullifier for note-nonce computations */
|
|
96
119
|
privateInsertions: TestPrivateInsertions = { nonRevertible: { nullifiers: [new Fr(420000 + this.txCount)] } },
|
|
120
|
+
gasLimits?: Gas,
|
|
97
121
|
): Promise<Tx> {
|
|
98
122
|
const setupCallRequests = await asyncMap(setupCalls, call =>
|
|
99
123
|
this.#createPubicCallRequestForCall(call, call.sender ?? sender),
|
|
@@ -113,9 +137,13 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
113
137
|
teardownCallRequest,
|
|
114
138
|
feePayer,
|
|
115
139
|
/*gasUsedByPrivate*/ teardownCall
|
|
116
|
-
? new Gas(
|
|
117
|
-
|
|
140
|
+
? new Gas(
|
|
141
|
+
DEFAULT_TEARDOWN_DA_GAS_LIMIT + TX_DA_GAS_OVERHEAD,
|
|
142
|
+
DEFAULT_TEARDOWN_L2_GAS_LIMIT + PUBLIC_TX_L2_GAS_OVERHEAD,
|
|
143
|
+
)
|
|
144
|
+
: new Gas(TX_DA_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD),
|
|
118
145
|
defaultGlobals(),
|
|
146
|
+
gasLimits,
|
|
119
147
|
);
|
|
120
148
|
}
|
|
121
149
|
|
|
@@ -128,16 +156,24 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
128
156
|
/* need some unique first nullifier for note-nonce computations */
|
|
129
157
|
privateInsertions?: TestPrivateInsertions,
|
|
130
158
|
txLabel: string = 'unlabeledTx',
|
|
159
|
+
gasLimits?: Gas,
|
|
131
160
|
): Promise<PublicTxResult> {
|
|
132
|
-
const tx = await this.createTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions);
|
|
161
|
+
const tx = await this.createTx(sender, setupCalls, appCalls, teardownCall, feePayer, privateInsertions, gasLimits);
|
|
133
162
|
|
|
134
163
|
await this.setFeePayerBalance(feePayer);
|
|
135
164
|
|
|
136
165
|
const txLabelWithCount = `${txLabel}/${this.txCount - 1}`;
|
|
137
166
|
const fullTxLabel = this.metricsPrefix ? `${this.metricsPrefix}/${txLabelWithCount}` : txLabelWithCount;
|
|
138
167
|
|
|
168
|
+
if (!this.simulator) {
|
|
169
|
+
throw new Error(
|
|
170
|
+
'No simulator configured. Pass a simulatorFactory to the constructor or use PublicTxSimulationTester.create()',
|
|
171
|
+
);
|
|
172
|
+
}
|
|
139
173
|
const avmResult = await this.simulator.simulate(tx, fullTxLabel);
|
|
140
174
|
|
|
175
|
+
await this.#recordBytecodeSizes(fullTxLabel, [...setupCalls, ...appCalls, ...(teardownCall ? [teardownCall] : [])]);
|
|
176
|
+
|
|
141
177
|
// Something like this is often useful for debugging:
|
|
142
178
|
//if (avmResult.revertReason) {
|
|
143
179
|
// // resolve / enrich revert reason
|
|
@@ -167,8 +203,18 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
167
203
|
teardownCall?: TestEnqueuedCall,
|
|
168
204
|
feePayer?: AztecAddress,
|
|
169
205
|
privateInsertions?: TestPrivateInsertions,
|
|
206
|
+
gasLimits?: Gas,
|
|
170
207
|
): Promise<PublicTxResult> {
|
|
171
|
-
return await this.simulateTx(
|
|
208
|
+
return await this.simulateTx(
|
|
209
|
+
sender,
|
|
210
|
+
setupCalls,
|
|
211
|
+
appCalls,
|
|
212
|
+
teardownCall,
|
|
213
|
+
feePayer,
|
|
214
|
+
privateInsertions,
|
|
215
|
+
txLabel,
|
|
216
|
+
gasLimits,
|
|
217
|
+
);
|
|
172
218
|
}
|
|
173
219
|
|
|
174
220
|
/**
|
|
@@ -186,6 +232,7 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
186
232
|
teardownCall?: TestEnqueuedCall,
|
|
187
233
|
feePayer?: AztecAddress,
|
|
188
234
|
privateInsertions?: TestPrivateInsertions,
|
|
235
|
+
gasLimits?: Gas,
|
|
189
236
|
): Promise<PublicTxResult> {
|
|
190
237
|
return await this.simulateTxWithLabel(
|
|
191
238
|
txLabel,
|
|
@@ -195,6 +242,7 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
195
242
|
teardownCall,
|
|
196
243
|
feePayer,
|
|
197
244
|
privateInsertions,
|
|
245
|
+
gasLimits,
|
|
198
246
|
);
|
|
199
247
|
}
|
|
200
248
|
|
|
@@ -202,6 +250,25 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
202
250
|
this.metrics.prettyPrint();
|
|
203
251
|
}
|
|
204
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Cancel the current simulation if one is in progress.
|
|
255
|
+
* This signals the underlying simulator (e.g., C++) to stop at the next safe point.
|
|
256
|
+
* Safe to call even if no simulation is in progress.
|
|
257
|
+
*
|
|
258
|
+
* @param waitTimeoutMs - If provided, wait up to this many ms for the simulation to actually stop.
|
|
259
|
+
*/
|
|
260
|
+
public async cancel(waitTimeoutMs?: number): Promise<void> {
|
|
261
|
+
await this.simulator.cancel?.(waitTimeoutMs);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Get the underlying simulator for advanced test scenarios.
|
|
266
|
+
* Use this when you need direct control over simulation (e.g., for testing cancellation).
|
|
267
|
+
*/
|
|
268
|
+
public getSimulator(): MeasuredPublicTxSimulatorInterface {
|
|
269
|
+
return this.simulator;
|
|
270
|
+
}
|
|
271
|
+
|
|
205
272
|
async #createPubicCallRequestForCall(
|
|
206
273
|
call: TestEnqueuedCall,
|
|
207
274
|
sender: AztecAddress,
|
|
@@ -212,21 +279,56 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
|
212
279
|
throw new Error(`Contract artifact not found for address: ${address}`);
|
|
213
280
|
}
|
|
214
281
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
282
|
+
let calldata: Fr[] = [];
|
|
283
|
+
if (!call.fnName) {
|
|
284
|
+
this.logger.debug(
|
|
285
|
+
`No function name specified for call to contract ${call.address.toString()}. Assuming this is a custom bytecode with no public_dispatch function.`,
|
|
286
|
+
);
|
|
287
|
+
this.logger.debug(`Not using ABI to encode arguments. Not prepending fn selector to calldata.`);
|
|
288
|
+
try {
|
|
289
|
+
calldata = call.args.map(arg => new Fr(arg));
|
|
290
|
+
} catch (error) {
|
|
291
|
+
this.logger.warn(`Tried assuming that all arguments are Field-like. Failed. Error: ${error}`);
|
|
292
|
+
throw error;
|
|
293
|
+
}
|
|
294
|
+
} else {
|
|
295
|
+
const fnSelector = await getFunctionSelector(call.fnName, contractArtifact);
|
|
296
|
+
const fnAbi = getContractFunctionAbi(call.fnName, contractArtifact)!;
|
|
297
|
+
const encodedArgs = encodeArguments(fnAbi, call.args);
|
|
298
|
+
calldata = [fnSelector.toField(), ...encodedArgs];
|
|
299
|
+
}
|
|
219
300
|
const isStaticCall = call.isStaticCall ?? false;
|
|
220
301
|
const request = await PublicCallRequest.fromCalldata(sender, address, isStaticCall, calldata);
|
|
221
302
|
|
|
222
303
|
return new PublicCallRequestWithCalldata(request, calldata);
|
|
223
304
|
}
|
|
305
|
+
|
|
306
|
+
// WARNING: Deduplicates by artifact name, so two different artifacts with the same name
|
|
307
|
+
// in a single tx would only record the first one's bytecode size.
|
|
308
|
+
async #recordBytecodeSizes(txLabel: string, calls: TestEnqueuedCall[]) {
|
|
309
|
+
const seenArtifactNames = new Set<string>();
|
|
310
|
+
for (const call of calls) {
|
|
311
|
+
const artifact = await this.contractDataSource.getContractArtifact(call.address);
|
|
312
|
+
if (!artifact || seenArtifactNames.has(artifact.name)) {
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
seenArtifactNames.add(artifact.name);
|
|
316
|
+
const instance = await this.contractDataSource.getContract(call.address);
|
|
317
|
+
if (!instance) {
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
const contractClass = await this.contractDataSource.getContractClass(instance.currentContractClassId);
|
|
321
|
+
if (contractClass) {
|
|
322
|
+
this.metrics.recordBytecodeSize(txLabel, artifact.name, contractClass.packedBytecode.length);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
224
326
|
}
|
|
225
327
|
|
|
226
328
|
export function defaultGlobals() {
|
|
227
329
|
const globals = GlobalVariables.empty();
|
|
228
330
|
globals.timestamp = DEFAULT_TIMESTAMP;
|
|
229
331
|
globals.gasFees = DEFAULT_GAS_FEES; // apply some nonzero default gas fees
|
|
230
|
-
globals.blockNumber = DEFAULT_BLOCK_NUMBER;
|
|
332
|
+
globals.blockNumber = BlockNumber(DEFAULT_BLOCK_NUMBER);
|
|
231
333
|
return globals;
|
|
232
334
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import type { ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
5
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -59,7 +60,7 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
59
60
|
|
|
60
61
|
/////////////////////////////////////////////////////////////
|
|
61
62
|
// ContractDataSource function implementations
|
|
62
|
-
getBlockNumber(): Promise<
|
|
63
|
+
getBlockNumber(): Promise<BlockNumber> {
|
|
63
64
|
throw new Error('Method not implemented.');
|
|
64
65
|
}
|
|
65
66
|
|
|
@@ -90,19 +91,17 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
90
91
|
return this.contractArtifacts.get(contractInstance!.currentContractClassId.toString());
|
|
91
92
|
}
|
|
92
93
|
|
|
93
|
-
async getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string> {
|
|
94
|
+
async getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined> {
|
|
94
95
|
const contractInstance = await this.getContract(address);
|
|
95
96
|
if (!contractInstance) {
|
|
96
|
-
this.logger.warn(
|
|
97
|
-
|
|
98
|
-
);
|
|
99
|
-
return `selector:${selector.toString()}`;
|
|
97
|
+
this.logger.warn(`Couldn't get fn name for debugging. Contract not in tester's ContractDataSource.`);
|
|
98
|
+
return undefined;
|
|
100
99
|
}
|
|
101
100
|
const key = `${contractInstance.currentContractClassId.toString()}:${selector.toString()}`;
|
|
102
101
|
const fnName = this.debugFunctionName.get(key);
|
|
103
102
|
if (!fnName) {
|
|
104
|
-
this.logger.warn(`Couldn't get fn name for debugging
|
|
105
|
-
return
|
|
103
|
+
this.logger.warn(`Couldn't get fn name for debugging...`);
|
|
104
|
+
return undefined;
|
|
106
105
|
}
|
|
107
106
|
return fnName;
|
|
108
107
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
@@ -7,11 +7,17 @@ import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
|
7
7
|
|
|
8
8
|
import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
|
|
9
9
|
|
|
10
|
+
export type TokenTestOptions = {
|
|
11
|
+
/** Skip return value assertions in balance checks (useful for benchmarking with collectCallMetadata=false) */
|
|
12
|
+
skipReturnValueAssertions?: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
10
15
|
export async function tokenTest(
|
|
11
16
|
tester: PublicTxSimulationTester,
|
|
12
17
|
logger: Logger,
|
|
13
18
|
tokenArtifact: ContractArtifact,
|
|
14
19
|
expectToBeTrue: (x: boolean) => void,
|
|
20
|
+
options: TokenTestOptions = {},
|
|
15
21
|
) {
|
|
16
22
|
const timer = new Timer();
|
|
17
23
|
|
|
@@ -36,7 +42,7 @@ export async function tokenTest(
|
|
|
36
42
|
],
|
|
37
43
|
);
|
|
38
44
|
expectToBeTrue(mintResult.revertCode.isOK());
|
|
39
|
-
await checkBalance(tester, token, sender, sender, mintAmount, expectToBeTrue);
|
|
45
|
+
await checkBalance(tester, token, sender, sender, mintAmount, expectToBeTrue, options);
|
|
40
46
|
|
|
41
47
|
const authwitNonce = new Fr(0);
|
|
42
48
|
const transferAmount = 50n;
|
|
@@ -54,8 +60,8 @@ export async function tokenTest(
|
|
|
54
60
|
],
|
|
55
61
|
);
|
|
56
62
|
expectToBeTrue(transferResult.revertCode.isOK());
|
|
57
|
-
await checkBalance(tester, token, sender,
|
|
58
|
-
await checkBalance(tester, token, sender, receiver, transferAmount, expectToBeTrue);
|
|
63
|
+
await checkBalance(tester, token, sender, sender, mintAmount - transferAmount, expectToBeTrue, options);
|
|
64
|
+
await checkBalance(tester, token, sender, receiver, transferAmount, expectToBeTrue, options);
|
|
59
65
|
|
|
60
66
|
// EXECUTE! This means that if using AvmProvingTester subclass, it will PROVE the transaction!
|
|
61
67
|
const burnResult = await tester.executeTxWithLabel(
|
|
@@ -71,7 +77,7 @@ export async function tokenTest(
|
|
|
71
77
|
],
|
|
72
78
|
);
|
|
73
79
|
expectToBeTrue(burnResult.revertCode.isOK());
|
|
74
|
-
await checkBalance(tester, token, sender, receiver, 0n, expectToBeTrue);
|
|
80
|
+
await checkBalance(tester, token, sender, receiver, 0n, expectToBeTrue, options);
|
|
75
81
|
|
|
76
82
|
logger.info(`TokenContract test took ${timer.ms()}ms\n`);
|
|
77
83
|
}
|
|
@@ -116,6 +122,7 @@ async function checkBalance(
|
|
|
116
122
|
account: AztecAddress,
|
|
117
123
|
expectedBalance: bigint,
|
|
118
124
|
expectToBeTrue: (x: boolean) => void,
|
|
125
|
+
options: TokenTestOptions = {},
|
|
119
126
|
) {
|
|
120
127
|
// Strictly simulate this! No need to "execute" (aka prove if using AvmProvingTester subclass).
|
|
121
128
|
const balResult = await tester.simulateTxWithLabel(
|
|
@@ -132,8 +139,10 @@ async function checkBalance(
|
|
|
132
139
|
],
|
|
133
140
|
);
|
|
134
141
|
expectToBeTrue(balResult.revertCode.isOK());
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
if (!options.skipReturnValueAssertions) {
|
|
143
|
+
// should be 1 call with 1 return value that is expectedBalance
|
|
144
|
+
const appLogicReturnValues = balResult.getAppLogicReturnValues();
|
|
145
|
+
expectToBeTrue(appLogicReturnValues.length === 1);
|
|
146
|
+
expectToBeTrue(appLogicReturnValues[0].values?.[0]?.toBigInt() === expectedBalance);
|
|
147
|
+
}
|
|
139
148
|
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
PRIVATE_LOG_SIZE_IN_FIELDS,
|
|
10
10
|
} from '@aztec/constants';
|
|
11
11
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
12
|
-
import { Fr } from '@aztec/foundation/
|
|
12
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
13
13
|
import { CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG } from '@aztec/protocol-contracts';
|
|
14
14
|
import { bufferAsFields } from '@aztec/stdlib/abi';
|
|
15
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -62,13 +62,14 @@ export async function createTxForPublicCalls(
|
|
|
62
62
|
feePayer = AztecAddress.zero(),
|
|
63
63
|
gasUsedByPrivate: Gas = Gas.empty(),
|
|
64
64
|
globals: GlobalVariables = GlobalVariables.empty(),
|
|
65
|
+
gasLimits?: Gas,
|
|
65
66
|
): Promise<Tx> {
|
|
66
67
|
assert(
|
|
67
68
|
setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined,
|
|
68
69
|
"Can't create public tx with no enqueued calls",
|
|
69
70
|
);
|
|
70
71
|
// use max limits
|
|
71
|
-
|
|
72
|
+
gasLimits = gasLimits ?? new Gas(DEFAULT_DA_GAS_LIMIT, DEFAULT_L2_GAS_LIMIT);
|
|
72
73
|
|
|
73
74
|
const forPublic = PartialPrivateTailPublicInputsForPublic.empty();
|
|
74
75
|
|
|
@@ -132,16 +133,15 @@ export async function createTxForPublicCalls(
|
|
|
132
133
|
: Gas.empty();
|
|
133
134
|
const gasSettings = new GasSettings(gasLimits, teardownGasLimits, maxFeesPerGas, GasFees.empty());
|
|
134
135
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
135
|
-
const header = BlockHeader.empty();
|
|
136
|
-
header.globalVariables = globals;
|
|
136
|
+
const header = BlockHeader.empty({ globalVariables: globals });
|
|
137
137
|
const constantData = new TxConstantData(header, txContext, Fr.zero(), Fr.zero());
|
|
138
|
-
const
|
|
138
|
+
const expirationTimestamp = 0n; // Not used in the simulator.
|
|
139
139
|
|
|
140
140
|
const txData = new PrivateKernelTailCircuitPublicInputs(
|
|
141
141
|
constantData,
|
|
142
142
|
/*gasUsed=*/ gasUsedByPrivate,
|
|
143
143
|
feePayer,
|
|
144
|
-
|
|
144
|
+
expirationTimestamp,
|
|
145
145
|
forPublic,
|
|
146
146
|
);
|
|
147
147
|
|
|
@@ -172,13 +172,13 @@ export async function createTxForPrivateOnly(
|
|
|
172
172
|
const gasSettings = new GasSettings(gasLimits, Gas.empty(), maxFeesPerGas, GasFees.empty());
|
|
173
173
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
174
174
|
const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
|
|
175
|
-
const
|
|
175
|
+
const expirationTimestamp = 0n; // Not used in the simulator.
|
|
176
176
|
|
|
177
177
|
const txData = new PrivateKernelTailCircuitPublicInputs(
|
|
178
178
|
constantData,
|
|
179
179
|
/*gasUsed=*/ gasUsedByPrivate,
|
|
180
180
|
feePayer,
|
|
181
|
-
|
|
181
|
+
expirationTimestamp,
|
|
182
182
|
/*forPublic=*/ undefined,
|
|
183
183
|
forRollup,
|
|
184
184
|
);
|