@aztec/simulator 0.0.1-commit.96bb3f7 → 0.0.1-commit.9d2bcf6d
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 +2 -0
- package/dest/common/errors.d.ts +7 -1
- 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_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 +5 -3
- 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 +6 -5
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/public/avm/avm_machine_state.d.ts +6 -5
- 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 +1 -1
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/public/avm/avm_memory_types.js +3 -0
- package/dest/public/avm/avm_simulator.d.ts +3 -2
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +5 -4
- 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/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 +3 -2
- package/dest/public/avm/fixtures/initializers.d.ts +1 -1
- package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
- package/dest/public/avm/fixtures/initializers.js +2 -1
- package/dest/public/avm/opcodes/accrued_substate.d.ts +16 -17
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +38 -38
- package/dest/public/avm/opcodes/arithmetic.d.ts +8 -8
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/public/avm/opcodes/arithmetic.js +1 -1
- 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 +15 -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 +4 -4
- 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 -23
- 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 +12 -12
- 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 +25 -25
- 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 +4 -4
- 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/debug_fn_name.d.ts +4 -4
- package/dest/public/debug_fn_name.d.ts.map +1 -1
- package/dest/public/debug_fn_name.js +7 -5
- 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 +7 -2
- 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/custom_bytecode_tests.d.ts +11 -11
- package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
- package/dest/public/fixtures/custom_bytecode_tests.js +18 -18
- package/dest/public/fixtures/minimal_public_tx.js +2 -2
- package/dest/public/fixtures/opcode_spammer.d.ts +3 -4
- package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
- package/dest/public/fixtures/opcode_spammer.js +95 -123
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +21 -7
- package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
- package/dest/public/fuzzing/avm_fuzzer_simulator.js +42 -10
- package/dest/public/fuzzing/avm_simulator_bin.js +15 -8
- package/dest/public/public_db_sources.d.ts +4 -3
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +4 -4
- package/dest/public/public_processor/public_processor.d.ts +6 -4
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +11 -6
- 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 +20 -4
- package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
- 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 +2 -2
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
- 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 +10 -9
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +5 -5
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
- package/dest/public/public_tx_simulator/factories.d.ts +3 -2
- package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/factories.js +3 -3
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +4 -3
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +8 -8
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +6 -4
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +12 -7
- package/dest/public/side_effect_trace.d.ts +5 -4
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +3 -3
- package/dest/public/state_manager/state_manager.d.ts +10 -4
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +14 -7
- package/dest/public/test_executor_metrics.d.ts +3 -2
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +2 -2
- package/package.json +17 -17
- package/src/private/acvm/acvm.ts +4 -3
- package/src/private/acvm_native.ts +11 -5
- package/src/private/acvm_wasm.ts +7 -3
- package/src/private/circuit_recording/circuit_recorder.ts +5 -3
- 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 +9 -4
- package/src/public/avm/avm_machine_state.ts +6 -5
- package/src/public/avm/avm_memory_types.ts +4 -0
- package/src/public/avm/avm_simulator.ts +8 -5
- package/src/public/avm/calldata.ts +100 -0
- package/src/public/avm/fixtures/avm_simulation_tester.ts +8 -2
- package/src/public/avm/fixtures/initializers.ts +2 -1
- package/src/public/avm/opcodes/accrued_substate.ts +27 -29
- package/src/public/avm/opcodes/arithmetic.ts +1 -1
- 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 +13 -4
- package/src/public/avm/opcodes/environment_getters.ts +3 -3
- package/src/public/avm/opcodes/external_calls.ts +17 -16
- package/src/public/avm/opcodes/hashing.ts +6 -6
- package/src/public/avm/opcodes/instruction_impl.ts +2 -2
- package/src/public/avm/opcodes/memory.ts +19 -19
- package/src/public/avm/opcodes/misc.ts +2 -2
- package/src/public/avm/opcodes/storage.ts +30 -22
- package/src/public/debug_fn_name.ts +10 -8
- package/src/public/executor_metrics.ts +4 -1
- package/src/public/fixtures/custom_bytecode_tests.ts +27 -18
- package/src/public/fixtures/minimal_public_tx.ts +2 -2
- package/src/public/fixtures/opcode_spammer.ts +196 -113
- package/src/public/fuzzing/avm_fuzzer_simulator.ts +60 -12
- package/src/public/fuzzing/avm_simulator_bin.ts +26 -4
- package/src/public/public_db_sources.ts +15 -5
- package/src/public/public_processor/public_processor.ts +21 -7
- package/src/public/public_processor/public_processor_metrics.ts +10 -4
- package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +6 -3
- package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +11 -7
- package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +6 -4
- package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
- package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
- package/src/public/public_tx_simulator/factories.ts +4 -2
- package/src/public/public_tx_simulator/public_tx_context.ts +13 -6
- package/src/public/public_tx_simulator/public_tx_simulator.ts +18 -7
- package/src/public/side_effect_trace.ts +5 -2
- package/src/public/state_manager/state_manager.ts +29 -20
- package/src/public/test_executor_metrics.ts +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AvmTxHint, type PublicTxResult } from '@aztec/stdlib/avm';
|
|
2
|
-
import type
|
|
3
|
-
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
2
|
+
import { type MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
|
|
3
|
+
import { GlobalVariables, ProtocolContracts } from '@aztec/stdlib/tx';
|
|
4
4
|
import type { NativeWorldStateService } from '@aztec/world-state';
|
|
5
5
|
import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
|
|
6
6
|
import { SimpleContractDataSource } from '../fixtures/simple_contract_data_source.js';
|
|
@@ -15,7 +15,10 @@ export declare class FuzzerSimulationRequest {
|
|
|
15
15
|
readonly globals: GlobalVariables;
|
|
16
16
|
readonly contractClasses: any[];
|
|
17
17
|
readonly contractInstances: [any, any][];
|
|
18
|
-
|
|
18
|
+
readonly publicDataWrites: any[];
|
|
19
|
+
readonly noteHashes: any[];
|
|
20
|
+
readonly protocolContracts: ProtocolContracts;
|
|
21
|
+
constructor(wsDataDir: string, wsMapSizeKb: number, tx: AvmTxHint, globals: GlobalVariables, contractClasses: any[], contractInstances: [any, any][], publicDataWrites: any[], noteHashes: any[], protocolContracts: ProtocolContracts);
|
|
19
22
|
static fromPlainObject(obj: any): FuzzerSimulationRequest;
|
|
20
23
|
}
|
|
21
24
|
/**
|
|
@@ -24,11 +27,11 @@ export declare class FuzzerSimulationRequest {
|
|
|
24
27
|
*/
|
|
25
28
|
export declare class AvmFuzzerSimulator extends BaseAvmSimulationTester {
|
|
26
29
|
private simulator;
|
|
27
|
-
constructor(merkleTrees: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource, globals: GlobalVariables);
|
|
30
|
+
constructor(merkleTrees: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource, globals: GlobalVariables, protocolContracts: ProtocolContracts);
|
|
28
31
|
/**
|
|
29
32
|
* Static factory method to create an AvmFuzzerSimulator.
|
|
30
33
|
*/
|
|
31
|
-
static create(worldStateService: NativeWorldStateService, globals: GlobalVariables): Promise<AvmFuzzerSimulator>;
|
|
34
|
+
static create(worldStateService: NativeWorldStateService, globals: GlobalVariables, protocolContracts: ProtocolContracts): Promise<AvmFuzzerSimulator>;
|
|
32
35
|
/**
|
|
33
36
|
* Simulate a transaction from a C++ AvmTxHint.
|
|
34
37
|
*/
|
|
@@ -39,8 +42,19 @@ export declare class AvmFuzzerSimulator extends BaseAvmSimulationTester {
|
|
|
39
42
|
addContractClassFromCpp(rawClass: any): Promise<void>;
|
|
40
43
|
/**
|
|
41
44
|
* Add a contract instance from C++ raw msgpack data.
|
|
42
|
-
* This also inserts the contract address nullifier into the nullifier tree
|
|
45
|
+
* This also inserts the contract address nullifier into the nullifier tree,
|
|
46
|
+
* unless the address is a protocol canonical address (1-11).
|
|
43
47
|
*/
|
|
44
48
|
addContractInstanceFromCpp(rawAddress: any, rawInstance: any): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Apply public data tree writes from C++ raw msgpack data.
|
|
51
|
+
* This is used to pre-populate the public data tree before simulation (e.g., for bytecode upgrades).
|
|
52
|
+
*/
|
|
53
|
+
applyPublicDataWrites(rawWrites: any[]): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Apply note hashes from C++ raw msgpack data.
|
|
56
|
+
* This is used to pre-populate the note hash tree before simulation.
|
|
57
|
+
*/
|
|
58
|
+
applyNoteHashes(rawNoteHashes: any[]): Promise<void>;
|
|
45
59
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2Z1enplcl9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvZnV6emluZy9hdm1fZnV6emVyX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFZbkUsT0FBTyxFQUFnQixLQUFLLHlCQUF5QixFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBQ3ZHLE9BQU8sRUFFTCxlQUFlLEVBRWYsaUJBQWlCLEVBS2xCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUl0Rjs7O0dBR0c7QUFDSCxxQkFBYSx1QkFBdUI7YUFFaEIsU0FBUyxFQUFFLE1BQU07YUFDakIsV0FBVyxFQUFFLE1BQU07YUFDbkIsRUFBRSxFQUFFLFNBQVM7YUFDYixPQUFPLEVBQUUsZUFBZTthQUN4QixlQUFlLEVBQUUsR0FBRyxFQUFFO2FBQ3RCLGlCQUFpQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2FBQy9CLGdCQUFnQixFQUFFLEdBQUcsRUFBRTthQUN2QixVQUFVLEVBQUUsR0FBRyxFQUFFO2FBQ2pCLGlCQUFpQixFQUFFLGlCQUFpQjtJQVR0RCxZQUNrQixTQUFTLEVBQUUsTUFBTSxFQUNqQixXQUFXLEVBQUUsTUFBTSxFQUNuQixFQUFFLEVBQUUsU0FBUyxFQUNiLE9BQU8sRUFBRSxlQUFlLEVBQ3hCLGVBQWUsRUFBRSxHQUFHLEVBQUUsRUFDdEIsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFDL0IsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLEVBQ3ZCLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFDakIsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ2xEO0lBRUosTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLHVCQUF1QixDQWV4RDtDQUNGO0FBbUhEOzs7R0FHRztBQUNILHFCQUFhLGtCQUFtQixTQUFRLHVCQUF1QjtJQUM3RCxPQUFPLENBQUMsU0FBUyxDQUFvQjtJQUVyQyxZQUNFLFdBQVcsRUFBRSx5QkFBeUIsRUFDdEMsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQ3hCLGlCQUFpQixFQUFFLGlCQUFpQixFQWlCckM7SUFFRDs7T0FFRztJQUNILE9BQW9CLE1BQU0sQ0FDeEIsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQ3hCLGlCQUFpQixFQUFFLGlCQUFpQixHQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FJN0I7SUFFRDs7T0FFRztJQUNVLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FVaEU7SUFFRDs7T0FFRztJQUNVLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdqRTtJQUVEOzs7O09BSUc7SUFDVSwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU14RjtJQUVEOzs7T0FHRztJQUNVLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2xFO0lBRUQ7OztPQUdHO0lBQ1UsZUFBZSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSWhFO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_fuzzer_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/fuzzing/avm_fuzzer_simulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_fuzzer_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/fuzzing/avm_fuzzer_simulator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnE,OAAO,EAAgB,KAAK,yBAAyB,EAAsB,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAEL,eAAe,EAEf,iBAAiB,EAKlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAItF;;;GAGG;AACH,qBAAa,uBAAuB;aAEhB,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;aACnB,EAAE,EAAE,SAAS;aACb,OAAO,EAAE,eAAe;aACxB,eAAe,EAAE,GAAG,EAAE;aACtB,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;aAC/B,gBAAgB,EAAE,GAAG,EAAE;aACvB,UAAU,EAAE,GAAG,EAAE;aACjB,iBAAiB,EAAE,iBAAiB;IATtD,YACkB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,GAAG,EAAE,EACtB,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC/B,gBAAgB,EAAE,GAAG,EAAE,EACvB,UAAU,EAAE,GAAG,EAAE,EACjB,iBAAiB,EAAE,iBAAiB,EAClD;IAEJ,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,uBAAuB,CAexD;CACF;AAmHD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAAuB;IAC7D,OAAO,CAAC,SAAS,CAAoB;IAErC,YACE,WAAW,EAAE,yBAAyB,EACtC,kBAAkB,EAAE,wBAAwB,EAC5C,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,iBAAiB,EAiBrC;IAED;;OAEG;IACH,OAAoB,MAAM,CACxB,iBAAiB,EAAE,uBAAuB,EAC1C,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAI7B;IAED;;OAEG;IACU,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAUhE;IAED;;OAEG;IACU,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;IAED;;;;OAIG;IACU,0BAA0B,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxF;IAED;;;OAGG;IACU,qBAAqB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;IAED;;;OAGG;IACU,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhE;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX } from '@aztec/constants';
|
|
1
|
+
import { MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
|
|
2
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { AvmTxHint } from '@aztec/stdlib/avm';
|
|
@@ -8,7 +8,8 @@ import { PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublic
|
|
|
8
8
|
import { PrivateLog } from '@aztec/stdlib/logs';
|
|
9
9
|
import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
10
10
|
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
11
|
-
import {
|
|
11
|
+
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
12
|
+
import { BlockHeader, GlobalVariables, HashedValues, ProtocolContracts, Tx, TxConstantData, TxContext, TxHash } from '@aztec/stdlib/tx';
|
|
12
13
|
import { BaseAvmSimulationTester } from '../avm/fixtures/base_avm_simulation_tester.js';
|
|
13
14
|
import { SimpleContractDataSource } from '../fixtures/simple_contract_data_source.js';
|
|
14
15
|
import { PublicContractsDB } from '../public_db_sources.js';
|
|
@@ -23,19 +24,25 @@ import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js
|
|
|
23
24
|
globals;
|
|
24
25
|
contractClasses;
|
|
25
26
|
contractInstances;
|
|
26
|
-
|
|
27
|
+
publicDataWrites;
|
|
28
|
+
noteHashes;
|
|
29
|
+
protocolContracts;
|
|
30
|
+
constructor(wsDataDir, wsMapSizeKb, tx, globals, contractClasses, contractInstances, publicDataWrites, noteHashes, protocolContracts){
|
|
27
31
|
this.wsDataDir = wsDataDir;
|
|
28
32
|
this.wsMapSizeKb = wsMapSizeKb;
|
|
29
33
|
this.tx = tx;
|
|
30
34
|
this.globals = globals;
|
|
31
35
|
this.contractClasses = contractClasses;
|
|
32
36
|
this.contractInstances = contractInstances;
|
|
37
|
+
this.publicDataWrites = publicDataWrites;
|
|
38
|
+
this.noteHashes = noteHashes;
|
|
39
|
+
this.protocolContracts = protocolContracts;
|
|
33
40
|
}
|
|
34
41
|
static fromPlainObject(obj) {
|
|
35
42
|
if (obj instanceof FuzzerSimulationRequest) {
|
|
36
43
|
return obj;
|
|
37
44
|
}
|
|
38
|
-
return new FuzzerSimulationRequest(obj.wsDataDir, obj.wsMapSizeKb, AvmTxHint.fromPlainObject(obj.tx), GlobalVariables.fromPlainObject(obj.globals), obj.contractClasses, obj.contractInstances);
|
|
45
|
+
return new FuzzerSimulationRequest(obj.wsDataDir, obj.wsMapSizeKb, AvmTxHint.fromPlainObject(obj.tx), GlobalVariables.fromPlainObject(obj.globals), obj.contractClasses, obj.contractInstances, obj.publicDataWrites ?? [], obj.noteHashes ?? [], ProtocolContracts.fromPlainObject(obj.protocolContracts));
|
|
39
46
|
}
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
@@ -95,7 +102,7 @@ import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js
|
|
|
95
102
|
* It provides methods for registering contracts from C++ msgpack data and simulating transactions.
|
|
96
103
|
*/ export class AvmFuzzerSimulator extends BaseAvmSimulationTester {
|
|
97
104
|
simulator;
|
|
98
|
-
constructor(merkleTrees, contractDataSource, globals){
|
|
105
|
+
constructor(merkleTrees, contractDataSource, globals, protocolContracts){
|
|
99
106
|
super(contractDataSource, merkleTrees);
|
|
100
107
|
const contractsDb = new PublicContractsDB(contractDataSource);
|
|
101
108
|
this.simulator = new PublicTxSimulator(merkleTrees, contractsDb, globals, {
|
|
@@ -104,14 +111,14 @@ import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js
|
|
|
104
111
|
collectHints: false,
|
|
105
112
|
collectStatistics: false,
|
|
106
113
|
collectCallMetadata: false
|
|
107
|
-
});
|
|
114
|
+
}, protocolContracts);
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* Static factory method to create an AvmFuzzerSimulator.
|
|
111
|
-
*/ static async create(worldStateService, globals) {
|
|
118
|
+
*/ static async create(worldStateService, globals, protocolContracts) {
|
|
112
119
|
const contractDataSource = new SimpleContractDataSource();
|
|
113
120
|
const merkleTrees = await worldStateService.fork();
|
|
114
|
-
return new AvmFuzzerSimulator(merkleTrees, contractDataSource, globals);
|
|
121
|
+
return new AvmFuzzerSimulator(merkleTrees, contractDataSource, globals, protocolContracts);
|
|
115
122
|
}
|
|
116
123
|
/**
|
|
117
124
|
* Simulate a transaction from a C++ AvmTxHint.
|
|
@@ -130,10 +137,35 @@ import { PublicTxSimulator } from '../public_tx_simulator/public_tx_simulator.js
|
|
|
130
137
|
}
|
|
131
138
|
/**
|
|
132
139
|
* Add a contract instance from C++ raw msgpack data.
|
|
133
|
-
* This also inserts the contract address nullifier into the nullifier tree
|
|
140
|
+
* This also inserts the contract address nullifier into the nullifier tree,
|
|
141
|
+
* unless the address is a protocol canonical address (1-11).
|
|
134
142
|
*/ async addContractInstanceFromCpp(rawAddress, rawInstance) {
|
|
135
143
|
const address = AztecAddress.fromPlainObject(rawAddress);
|
|
136
144
|
const instance = contractInstanceWithAddressFromPlainObject(address, rawInstance);
|
|
137
|
-
|
|
145
|
+
// Protocol canonical addresses (1-11) should not have nullifiers inserted
|
|
146
|
+
const isProtocolCanonicalAddress = address.toBigInt() <= MAX_PROTOCOL_CONTRACTS && address.toBigInt() >= 1n;
|
|
147
|
+
await this.addContractInstance(instance, /* skipNullifierInsertion */ isProtocolCanonicalAddress);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Apply public data tree writes from C++ raw msgpack data.
|
|
151
|
+
* This is used to pre-populate the public data tree before simulation (e.g., for bytecode upgrades).
|
|
152
|
+
*/ async applyPublicDataWrites(rawWrites) {
|
|
153
|
+
for (const rawWrite of rawWrites){
|
|
154
|
+
const leaf = PublicDataTreeLeaf.fromPlainObject(rawWrite);
|
|
155
|
+
await this.merkleTrees.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, [
|
|
156
|
+
leaf.toBuffer()
|
|
157
|
+
]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Apply note hashes from C++ raw msgpack data.
|
|
162
|
+
* This is used to pre-populate the note hash tree before simulation.
|
|
163
|
+
*/ async applyNoteHashes(rawNoteHashes) {
|
|
164
|
+
const paddingLeaves = MAX_NOTE_HASHES_PER_TX - rawNoteHashes.length % MAX_NOTE_HASHES_PER_TX;
|
|
165
|
+
const paddedNoteHashes = [
|
|
166
|
+
...rawNoteHashes,
|
|
167
|
+
...Array(paddingLeaves).fill(Fr.ZERO)
|
|
168
|
+
];
|
|
169
|
+
await this.merkleTrees.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, paddedNoteHashes);
|
|
138
170
|
}
|
|
139
171
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
|
|
2
|
+
import { PublicTxEffect, deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
|
|
3
3
|
import { TreeSnapshots } from '@aztec/stdlib/tx';
|
|
4
4
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
5
5
|
import { createInterface } from 'readline';
|
|
@@ -33,10 +33,11 @@ async function openExistingWorldState(dataDir, mapSizeKb) {
|
|
|
33
33
|
worldStateCache.set(dataDir, ws);
|
|
34
34
|
return ws;
|
|
35
35
|
}
|
|
36
|
-
async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContractClasses, rawContractInstances) {
|
|
36
|
+
async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContractClasses, rawContractInstances, rawPublicDataWrites, rawNoteHashes, protocolContracts) {
|
|
37
37
|
const worldStateService = await openExistingWorldState(dataDir, mapSizeKb);
|
|
38
|
-
const simulator = await AvmFuzzerSimulator.create(worldStateService, globals);
|
|
39
|
-
|
|
38
|
+
const simulator = await AvmFuzzerSimulator.create(worldStateService, globals, protocolContracts);
|
|
39
|
+
await simulator.applyNoteHashes(rawNoteHashes);
|
|
40
|
+
// Register contract classes from C++ (must happen before public data writes to match C++ order)
|
|
40
41
|
for (const rawClass of rawContractClasses){
|
|
41
42
|
await simulator.addContractClassFromCpp(rawClass);
|
|
42
43
|
}
|
|
@@ -44,13 +45,17 @@ async function simulateWithFuzzer(dataDir, mapSizeKb, txHint, globals, rawContra
|
|
|
44
45
|
for (const [rawAddress, rawInstance] of rawContractInstances){
|
|
45
46
|
await simulator.addContractInstanceFromCpp(rawAddress, rawInstance);
|
|
46
47
|
}
|
|
48
|
+
// Apply public data writes after contract registration (e.g., for bytecode upgrades)
|
|
49
|
+
// This must happen last to match C++ setup_fuzzer_state ordering
|
|
50
|
+
await simulator.applyPublicDataWrites(rawPublicDataWrites);
|
|
47
51
|
const result = await simulator.simulate(txHint);
|
|
48
52
|
const output = result.getAppLogicReturnValues().flatMap((rv)=>rv?.values?.filter((v)=>v != null) ?? []);
|
|
49
53
|
return {
|
|
50
54
|
reverted: !result.revertCode.isOK(),
|
|
51
55
|
output,
|
|
52
56
|
revertReason: result.findRevertReason()?.message,
|
|
53
|
-
publicInputs: result.publicInputs
|
|
57
|
+
publicInputs: result.publicInputs,
|
|
58
|
+
publicTxEffect: result.publicTxEffect
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
61
|
async function execute(base64Line) {
|
|
@@ -60,13 +65,14 @@ async function execute(base64Line) {
|
|
|
60
65
|
const rawRequest = deserializeFromMessagePack(buffer);
|
|
61
66
|
const request = FuzzerSimulationRequest.fromPlainObject(rawRequest);
|
|
62
67
|
// Run the TS simulation
|
|
63
|
-
const result = await simulateWithFuzzer(request.wsDataDir, request.wsMapSizeKb, request.tx, request.globals, request.contractClasses, request.contractInstances);
|
|
68
|
+
const result = await simulateWithFuzzer(request.wsDataDir, request.wsMapSizeKb, request.tx, request.globals, request.contractClasses, request.contractInstances, request.publicDataWrites, request.noteHashes, request.protocolContracts);
|
|
64
69
|
// Serialize the result to msgpack and encode it in base64 for output
|
|
65
70
|
const resultBuffer = serializeWithMessagePack({
|
|
66
71
|
reverted: result.reverted,
|
|
67
72
|
output: result.output,
|
|
68
73
|
revertReason: result.revertReason ?? '',
|
|
69
|
-
endTreeSnapshots: result.publicInputs.endTreeSnapshots
|
|
74
|
+
endTreeSnapshots: result.publicInputs.endTreeSnapshots,
|
|
75
|
+
publicTxEffect: result.publicTxEffect
|
|
70
76
|
});
|
|
71
77
|
const base64Response = resultBuffer.toString('base64') + '\n';
|
|
72
78
|
await writeOutput(base64Response);
|
|
@@ -76,7 +82,8 @@ async function execute(base64Line) {
|
|
|
76
82
|
reverted: true,
|
|
77
83
|
output: [],
|
|
78
84
|
revertReason: `Unexpected Error ${error.message}`,
|
|
79
|
-
endTreeSnapshots: TreeSnapshots.empty()
|
|
85
|
+
endTreeSnapshots: TreeSnapshots.empty(),
|
|
86
|
+
publicTxEffect: PublicTxEffect.empty()
|
|
80
87
|
});
|
|
81
88
|
await writeOutput(errorResult.toString('base64') + '\n');
|
|
82
89
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
2
3
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import { type ContractClassPublic, type ContractDataSource, type ContractDeploymentData, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
@@ -15,7 +16,7 @@ export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
15
16
|
private dataSource;
|
|
16
17
|
private contractStateStack;
|
|
17
18
|
private log;
|
|
18
|
-
constructor(dataSource: ContractDataSource);
|
|
19
|
+
constructor(dataSource: ContractDataSource, bindings?: LoggerBindings);
|
|
19
20
|
addContracts(contractDeploymentData: ContractDeploymentData): Promise<void>;
|
|
20
21
|
addNewContracts(tx: Tx): Promise<void>;
|
|
21
22
|
/**
|
|
@@ -62,7 +63,7 @@ export declare class PublicContractsDB implements PublicContractsDBInterface {
|
|
|
62
63
|
export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
63
64
|
private readonly db;
|
|
64
65
|
private logger;
|
|
65
|
-
constructor(db: MerkleTreeWriteOperations);
|
|
66
|
+
constructor(db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
|
|
66
67
|
storageRead(contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
67
68
|
storageWrite(contract: AztecAddress, slot: Fr, newValue: Fr): Promise<void>;
|
|
68
69
|
getL1ToL2LeafValue(leafIndex: bigint): Promise<Fr>;
|
|
@@ -76,4 +77,4 @@ export declare class PublicTreesDB implements PublicStateDBInterface {
|
|
|
76
77
|
revertCheckpoint(): Promise<void>;
|
|
77
78
|
getTreeSnapshots(): Promise<TreeSnapshots>;
|
|
78
79
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2RiX3NvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxLQUFLLG1CQUFtQixFQUN4QixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHNCQUFzQixFQUMzQixLQUFLLDJCQUEyQixFQUVqQyxNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUNMLFlBQVksRUFLYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtsRCxPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzdGOzs7R0FHRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLDBCQUEwQjtJQU1oRSxPQUFPLENBQUMsVUFBVTtJQUxwQixPQUFPLENBQUMsa0JBQWtCLENBQTBEO0lBRXBGLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxVQUFVLEVBQUUsa0JBQWtCLEVBQ3RDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFWSxZQUFZLENBQUMsc0JBQXNCLEVBQUUsc0JB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
|
|
@@ -1 +1 @@
|
|
|
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,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,12 +19,12 @@ import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from
|
|
|
19
19
|
dataSource;
|
|
20
20
|
contractStateStack;
|
|
21
21
|
log;
|
|
22
|
-
constructor(dataSource){
|
|
22
|
+
constructor(dataSource, bindings){
|
|
23
23
|
this.dataSource = dataSource;
|
|
24
24
|
this.contractStateStack = [
|
|
25
25
|
new ContractsDbCheckpoint()
|
|
26
26
|
];
|
|
27
|
-
this.log = createLogger('simulator:contracts-data-source');
|
|
27
|
+
this.log = createLogger('simulator:contracts-data-source', bindings);
|
|
28
28
|
}
|
|
29
29
|
async addContracts(contractDeploymentData) {
|
|
30
30
|
const currentState = this.getCurrentState();
|
|
@@ -143,9 +143,9 @@ import { L1ToL2MessageIndexOutOfRangeError, NoteHashIndexOutOfRangeError } from
|
|
|
143
143
|
*/ export class PublicTreesDB {
|
|
144
144
|
db;
|
|
145
145
|
logger;
|
|
146
|
-
constructor(db){
|
|
146
|
+
constructor(db, bindings){
|
|
147
147
|
this.db = db;
|
|
148
|
-
this.logger = createLogger('simulator:public-trees-db');
|
|
148
|
+
this.logger = createLogger('simulator:public-trees-db', bindings);
|
|
149
149
|
}
|
|
150
150
|
async storageRead(contract, slot) {
|
|
151
151
|
const timer = new Timer();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
|
|
1
2
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
2
3
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
3
4
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
@@ -14,7 +15,8 @@ export declare class PublicProcessorFactory {
|
|
|
14
15
|
private contractDataSource;
|
|
15
16
|
private dateProvider;
|
|
16
17
|
protected telemetryClient: TelemetryClient;
|
|
17
|
-
|
|
18
|
+
private log;
|
|
19
|
+
constructor(contractDataSource: ContractDataSource, dateProvider?: DateProvider, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
|
|
18
20
|
/**
|
|
19
21
|
* Creates a new instance of a PublicProcessor.
|
|
20
22
|
* @param globalVariables - The global variables for the block being processed.
|
|
@@ -37,7 +39,7 @@ export declare class PublicProcessor implements Traceable {
|
|
|
37
39
|
private log;
|
|
38
40
|
private opts;
|
|
39
41
|
private metrics;
|
|
40
|
-
constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulatorInterface, dateProvider: DateProvider, telemetryClient
|
|
42
|
+
constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulatorInterface, dateProvider: DateProvider, telemetryClient: TelemetryClient | undefined, log: Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount'>);
|
|
41
43
|
get tracer(): Tracer;
|
|
42
44
|
/**
|
|
43
45
|
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
@@ -46,7 +48,7 @@ export declare class PublicProcessor implements Traceable {
|
|
|
46
48
|
* @param validator - Pre-process validator and nullifier cache to use for processing the txs.
|
|
47
49
|
* @returns The list of processed txs with their circuit simulation outputs.
|
|
48
50
|
*/
|
|
49
|
-
process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[]]>;
|
|
51
|
+
process(txs: Iterable<Tx> | AsyncIterable<Tx>, limits?: PublicProcessorLimits, validator?: PublicProcessorValidator): Promise<[ProcessedTx[], FailedTx[], Tx[], NestedProcessReturnValues[], number]>;
|
|
50
52
|
private checkWorldStateUnchanged;
|
|
51
53
|
private processTx;
|
|
52
54
|
private doTreeInsertionsForPrivateOnlyTx;
|
|
@@ -59,4 +61,4 @@ export declare class PublicProcessor implements Traceable {
|
|
|
59
61
|
*/
|
|
60
62
|
private static generateProvingRequest;
|
|
61
63
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxZQUFZLEVBQWtDLE1BQU0seUJBQXlCLENBQUM7QUFJdkYsT0FBTyxFQU1MLHFCQUFxQixFQUN0QixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHakUsT0FBTyxLQUFLLEVBQ1YseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZUFBZSxFQUNoQixNQUFNLGlDQUFpQyxDQUFDO0FBR3pDLE9BQU8sRUFDTCxLQUFLLFFBQVEsRUFDYixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLEtBQUssV0FBVyxFQUVoQixFQUFFLEVBR0gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBRUwsS0FBSyxlQUFlLEVBQ3BCLEtBQUssU0FBUyxFQUNkLEtBQUssTUFBTSxFQUdaLE1BQU0seUJBQXlCLENBQUM7QUFLakMsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQzNFLE9BQU8sRUFDTCxLQUFLLHVCQUF1QixFQUM1QixLQUFLLDBCQUEwQixFQUVoQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3ZFOztHQUVHO0FBQ0gscUJBQWEsc0JBQXNCO0lBRy9CLE9BQU8sQ0FBQyxrQkFBa0I7SUFDMUIsT0FBTyxDQUFDLFlBQVk7SUFDcEIsU0FBUyxDQUFDLGVBQWUsRUFBRSxlQUFlO0lBSjVDLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFDcEIsWUFDVSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsWUFBWSxHQUFFLFlBQWlDLEVBQzdDLGVBQWUsR0FBRSxlQUFzQyxFQUNqRSxRQUFRLENBQUMsRUFBRSxjQUFjLEVBRzFCO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQ1gsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxlQUFlLEVBQUUsZUFBZSxFQUNoQyxNQUFNLEVBQUUscUJBQXFCLEdBQzVCLGVBQWUsQ0FnQmpCO0lBRUQsU0FBUyxDQUFDLHVCQUF1QixDQUMvQixVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQ3hDLDBCQUEwQixDQVM1QjtDQUNGO0FBU0Q7OztHQUdHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxTQUFTO0lBSTdDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZUFBZTtJQUMxQyxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCO0lBQ3hDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDdkQsT0FBTyxDQUFDLFlBQVk7SUFFcEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsSUFBSTtJQVZkLE9BQU8sQ0FBQyxPQUFPLENBQXlCO0lBRXhDLFlBQ1ksZUFBZSxFQUFFLGVBQWUsRUFDbEMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQzVDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQy9DLFlBQVksRUFBRSxZQUFZLEVBQ2xDLGVBQWUsNkJBQXdDLEVBQy9DLEdBQUcsRUFBRSxNQUFNLEVBQ1gsSUFBSSxHQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsNEJBQTRCLEdBQUcsaUNBQWlDLENBQU0sRUFHM0c7SUFFRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBRW5CO0lBRUQ7Ozs7OztPQU1HO0lBQ1UsT0FBTyxDQUNsQixHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFDckMsTUFBTSxHQUFFLHFCQUEwQixFQUNsQyxTQUFTLEdBQUUsd0JBQTZCLEdBQ3ZDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0E2TWpGO1lBRWEsd0JBQXdCO1lBaUJ4QixTQUFTO1lBMkJULGdDQUFnQztZQTRCaEMsdUJBQXVCO1lBZ0R2QixnQ0FBZ0M7WUEwQmhDLG9CQUFvQjtZQStCcEIsd0JBQXdCO0lBeUN0Qzs7T0FFRztJQUNILE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCO0NBU3RDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -399,10 +399,12 @@ import { PublicProcessorMetrics } from './public_processor_metrics.js';
|
|
|
399
399
|
contractDataSource;
|
|
400
400
|
dateProvider;
|
|
401
401
|
telemetryClient;
|
|
402
|
-
|
|
402
|
+
log;
|
|
403
|
+
constructor(contractDataSource, dateProvider = new DateProvider(), telemetryClient = getTelemetryClient(), bindings){
|
|
403
404
|
this.contractDataSource = contractDataSource;
|
|
404
405
|
this.dateProvider = dateProvider;
|
|
405
406
|
this.telemetryClient = telemetryClient;
|
|
407
|
+
this.log = createLogger('simulator:public-processor-factory', bindings);
|
|
406
408
|
}
|
|
407
409
|
/**
|
|
408
410
|
* Creates a new instance of a PublicProcessor.
|
|
@@ -410,13 +412,14 @@ import { PublicProcessorMetrics } from './public_processor_metrics.js';
|
|
|
410
412
|
* @param skipFeeEnforcement - Allows disabling balance checks for fee estimations.
|
|
411
413
|
* @returns A new instance of a PublicProcessor.
|
|
412
414
|
*/ create(merkleTree, globalVariables, config) {
|
|
413
|
-
const
|
|
415
|
+
const bindings = this.log.getBindings();
|
|
416
|
+
const contractsDB = new PublicContractsDB(this.contractDataSource, bindings);
|
|
414
417
|
const guardedFork = new GuardedMerkleTreeOperations(merkleTree);
|
|
415
418
|
const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, config);
|
|
416
|
-
return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient);
|
|
419
|
+
return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient, createLogger('simulator:public-processor', bindings));
|
|
417
420
|
}
|
|
418
421
|
createPublicTxSimulator(merkleTree, contractsDB, globalVariables, config) {
|
|
419
|
-
return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
|
|
422
|
+
return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config, this.log.getBindings());
|
|
420
423
|
}
|
|
421
424
|
}
|
|
422
425
|
class PublicProcessorTimeoutError extends Error {
|
|
@@ -463,7 +466,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
|
|
|
463
466
|
], []));
|
|
464
467
|
}
|
|
465
468
|
metrics;
|
|
466
|
-
constructor(globalVariables, guardedMerkleTree, contractsDB, publicTxSimulator, dateProvider, telemetryClient = getTelemetryClient(), log
|
|
469
|
+
constructor(globalVariables, guardedMerkleTree, contractsDB, publicTxSimulator, dateProvider, telemetryClient = getTelemetryClient(), log, opts = {}){
|
|
467
470
|
this.globalVariables = globalVariables;
|
|
468
471
|
this.guardedMerkleTree = guardedMerkleTree;
|
|
469
472
|
this.contractsDB = contractsDB;
|
|
@@ -582,6 +585,7 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
|
|
|
582
585
|
continue;
|
|
583
586
|
}
|
|
584
587
|
// If the actual blob fields of this tx would exceed the limit, skip it
|
|
588
|
+
// Note: maxBlobFields already accounts for block end blob fields and previous blocks in checkpoint.
|
|
585
589
|
if (maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
|
|
586
590
|
this.log.debug(`Skipping processed tx ${txHash} with ${txBlobFields} blob fields due to max blob fields limit.`, {
|
|
587
591
|
txHash,
|
|
@@ -666,7 +670,8 @@ _dec = trackSpan('PublicProcessor.processTx', (tx)=>({
|
|
|
666
670
|
result,
|
|
667
671
|
failed,
|
|
668
672
|
usedTxs,
|
|
669
|
-
returns
|
|
673
|
+
returns,
|
|
674
|
+
totalBlobFields
|
|
670
675
|
];
|
|
671
676
|
}
|
|
672
677
|
async checkWorldStateUnchanged(startStateReference, txHash, cause) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
2
2
|
import type { Gas } from '@aztec/stdlib/gas';
|
|
3
|
-
import
|
|
3
|
+
import { TxExecutionPhase } from '@aztec/stdlib/tx';
|
|
4
4
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
5
5
|
export declare class PublicProcessorMetrics {
|
|
6
6
|
readonly tracer: Tracer;
|
|
@@ -24,4 +24,4 @@ export declare class PublicProcessorMetrics {
|
|
|
24
24
|
recordClassPublication(...events: ContractClassPublishedEvent[]): void;
|
|
25
25
|
recordTreeInsertions(durationUs: number): void;
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY19wcm9jZXNzb3IvcHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUtMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFHWixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLHFCQUFhLHNCQUFzQjtJQUNqQyxTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLE9BQU8sQ0FBQyxVQUFVLENBQVk7SUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBZ0I7SUFDL0IsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFFcEMsT0FBTyxDQUFDLGFBQWEsQ0FBWTtJQUNqQyxPQUFPLENBQUMsVUFBVSxDQUFnQjtJQUVsQyxPQUFPLENBQUMsZ0JBQWdCLENBQVk7SUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBUTtJQUN4QixPQUFPLENBQUMsaUJBQWlCLENBQVk7SUFDckMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsS0FBSyxDQUFZO0lBRXpCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBWTtJQUV6QyxZQUFZLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxTQUFvQixFQThCNUQ7SUFFRCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFHbEU7SUFFRCxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBWTVEO0lBRUQsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFnQjFDO0lBRUQsY0FBYyxTQUliO0lBRUQsbUJBQW1CLENBQUMsU0FBUyxFQUFFLGdCQUFnQixRQUU5QztJQUVELHNCQUFzQixDQUFDLEdBQUcsTUFBTSxFQUFFLDJCQUEyQixFQUFFLFFBUzlEO0lBRUQsb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sUUFFdEM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;IAEzC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB,EA8B5D;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAGlE;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAY5D;IAED,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAgB1C;IAED,cAAc,SAIb;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,QAE9C;IAED,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE,QAS9D;IAED,oBAAoB,CAAC,UAAU,EAAE,MAAM,QAEtC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TxExecutionPhase } from '@aztec/stdlib/tx';
|
|
2
|
+
import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
|
|
2
3
|
export class PublicProcessorMetrics {
|
|
3
4
|
tracer;
|
|
4
5
|
txDuration;
|
|
@@ -16,10 +17,25 @@ export class PublicProcessorMetrics {
|
|
|
16
17
|
this.tracer = client.getTracer(name);
|
|
17
18
|
const meter = client.getMeter(name);
|
|
18
19
|
this.txDuration = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_TX_DURATION);
|
|
19
|
-
this.txCount = meter
|
|
20
|
-
|
|
20
|
+
this.txCount = createUpDownCounterWithDefault(meter, Metrics.PUBLIC_PROCESSOR_TX_COUNT, {
|
|
21
|
+
[Attributes.OK]: [
|
|
22
|
+
true,
|
|
23
|
+
false
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
this.txPhaseCount = createUpDownCounterWithDefault(meter, Metrics.PUBLIC_PROCESSOR_TX_PHASE_COUNT);
|
|
21
27
|
this.phaseDuration = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_PHASE_DURATION);
|
|
22
|
-
this.phaseCount = meter
|
|
28
|
+
this.phaseCount = createUpDownCounterWithDefault(meter, Metrics.PUBLIC_PROCESSOR_PHASE_COUNT, {
|
|
29
|
+
[Attributes.TX_PHASE_NAME]: [
|
|
30
|
+
TxExecutionPhase.SETUP,
|
|
31
|
+
TxExecutionPhase.APP_LOGIC,
|
|
32
|
+
TxExecutionPhase.TEARDOWN
|
|
33
|
+
],
|
|
34
|
+
[Attributes.OK]: [
|
|
35
|
+
true,
|
|
36
|
+
false
|
|
37
|
+
]
|
|
38
|
+
});
|
|
23
39
|
this.bytecodeDeployed = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_DEPLOY_BYTECODE_SIZE);
|
|
24
40
|
this.totalGas = meter.createGauge(Metrics.PUBLIC_PROCESSOR_TOTAL_GAS);
|
|
25
41
|
this.totalGasHistogram = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_TOTAL_GAS_HISTOGRAM);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
1
2
|
import type { ContractProvider } from '@aztec/native';
|
|
2
3
|
import type { GlobalVariables } from '@aztec/stdlib/tx';
|
|
3
4
|
import type { PublicContractsDB } from '../public_db_sources.js';
|
|
@@ -5,7 +6,7 @@ export declare class ContractProviderForCpp implements ContractProvider {
|
|
|
5
6
|
private contractsDB;
|
|
6
7
|
private globalVariables;
|
|
7
8
|
private log;
|
|
8
|
-
constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables);
|
|
9
|
+
constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables, bindings?: LoggerBindings);
|
|
9
10
|
getContractInstance: (address: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
|
|
10
11
|
getContractClass: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
|
|
11
12
|
addContracts: (contractDeploymentDataBuffer: Buffer<ArrayBufferLike>) => Promise<void>;
|
|
@@ -15,4 +16,4 @@ export declare class ContractProviderForCpp implements ContractProvider {
|
|
|
15
16
|
commitCheckpoint: () => Promise<void>;
|
|
16
17
|
revertCheckpoint: () => Promise<void>;
|
|
17
18
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfcHJvdmlkZXJfZm9yX2NwcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2NvbnRyYWN0X3Byb3ZpZGVyX2Zvcl9jcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3RELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUscUJBQWEsc0JBQXVCLFlBQVcsZ0JBQWdCO0lBSTNELE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxlQUFlO0lBSnpCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ3hDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFTSxtQkFBbUIsb0VBYXhCO0lBRUssZ0JBQWdCLG9FQWVyQjtJQUVLLFlBQVksMkVBV2pCO0lBRUsscUJBQXFCLG9FQWdCMUI7SUFFSyxvQkFBb0IscUVBc0J6QjtJQUVLLGdCQUFnQixzQkFHckI7SUFFSyxnQkFBZ0Isc0JBR3JCO0lBRUssZ0JBQWdCLHNCQUdyQjtDQUNIIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_provider_for_cpp.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/contract_provider_for_cpp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract_provider_for_cpp.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/contract_provider_for_cpp.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,sBAAuB,YAAW,gBAAgB;IAI3D,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,eAAe;IAJzB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACxC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEM,mBAAmB,oEAaxB;IAEK,gBAAgB,oEAerB;IAEK,YAAY,2EAWjB;IAEK,qBAAqB,oEAgB1B;IAEK,oBAAoB,qEAsBzB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;CACH"}
|
|
@@ -8,10 +8,9 @@ export class ContractProviderForCpp {
|
|
|
8
8
|
contractsDB;
|
|
9
9
|
globalVariables;
|
|
10
10
|
log;
|
|
11
|
-
constructor(contractsDB, globalVariables){
|
|
11
|
+
constructor(contractsDB, globalVariables, bindings){
|
|
12
12
|
this.contractsDB = contractsDB;
|
|
13
13
|
this.globalVariables = globalVariables;
|
|
14
|
-
this.log = createLogger('simulator:contract_provider_for_cpp');
|
|
15
14
|
this.getContractInstance = async (address)=>{
|
|
16
15
|
this.log.trace(`Contract provider callback: getContractInstance(${address})`);
|
|
17
16
|
const aztecAddr = AztecAddress.fromString(address);
|
|
@@ -86,6 +85,7 @@ export class ContractProviderForCpp {
|
|
|
86
85
|
this.log.trace(`Contract provider callback: revertCheckpoint`);
|
|
87
86
|
return Promise.resolve(this.contractsDB.revertCheckpoint());
|
|
88
87
|
};
|
|
88
|
+
this.log = createLogger('simulator:contract_provider_for_cpp', bindings);
|
|
89
89
|
}
|
|
90
90
|
getContractInstance;
|
|
91
91
|
getContractClass;
|