@aztec/simulator 0.55.1 → 0.57.0
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/dest/acvm/oracle/oracle.d.ts +2 -5
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +6 -37
- package/dest/acvm/oracle/typed_oracle.d.ts +3 -6
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +1 -10
- package/dest/avm/avm_execution_environment.d.ts +2 -11
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +3 -22
- package/dest/avm/avm_gas.d.ts +2 -2
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +31 -116
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +6 -6
- package/dest/avm/avm_memory_types.d.ts +38 -9
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +27 -13
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +5 -6
- package/dest/avm/bytecode_utils.d.ts +1 -2
- package/dest/avm/bytecode_utils.d.ts.map +1 -1
- package/dest/avm/bytecode_utils.js +3 -17
- package/dest/avm/errors.d.ts +1 -1
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +12 -3
- package/dest/avm/fixtures/index.d.ts +4 -16
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +11 -27
- package/dest/avm/journal/index.d.ts +0 -1
- package/dest/avm/journal/index.d.ts.map +1 -1
- package/dest/avm/journal/index.js +1 -2
- package/dest/avm/journal/journal.d.ts +6 -5
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +18 -16
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +37 -30
- package/dest/avm/opcodes/addressing_mode.d.ts +3 -2
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/avm/opcodes/addressing_mode.js +25 -21
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +6 -5
- package/dest/avm/opcodes/bitwise.d.ts +10 -4
- package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/avm/opcodes/bitwise.js +26 -18
- package/dest/avm/opcodes/commitment.d.ts.map +1 -1
- package/dest/avm/opcodes/commitment.js +6 -5
- package/dest/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/avm/opcodes/comparators.js +8 -7
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +6 -5
- package/dest/avm/opcodes/control_flow.js +6 -6
- package/dest/avm/opcodes/conversion.d.ts +3 -2
- package/dest/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/avm/opcodes/conversion.js +21 -13
- package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/avm/opcodes/ec_add.js +8 -7
- package/dest/avm/opcodes/environment_getters.d.ts +27 -63
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +76 -80
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +27 -16
- package/dest/avm/opcodes/hashing.d.ts +5 -5
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +47 -40
- package/dest/avm/opcodes/index.d.ts +3 -0
- package/dest/avm/opcodes/index.d.ts.map +1 -1
- package/dest/avm/opcodes/index.js +4 -1
- package/dest/avm/opcodes/instruction.d.ts +2 -6
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +3 -9
- package/dest/avm/opcodes/instruction_impl.d.ts +0 -26
- package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction_impl.js +1 -51
- package/dest/avm/opcodes/memory.d.ts +5 -12
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +40 -53
- package/dest/avm/opcodes/misc.d.ts.map +1 -1
- package/dest/avm/opcodes/misc.js +6 -5
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
- package/dest/avm/opcodes/multi_scalar_mul.js +17 -16
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +11 -9
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +5 -25
- package/dest/avm/serialization/instruction_serialization.d.ts +40 -54
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +41 -57
- package/dest/avm/test_utils.d.ts +8 -8
- package/dest/avm/test_utils.d.ts.map +1 -1
- package/dest/avm/test_utils.js +15 -15
- package/dest/client/client_execution_context.d.ts +6 -30
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +31 -53
- package/dest/client/index.d.ts +0 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +1 -2
- package/dest/client/private_execution.d.ts +2 -2
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +5 -19
- package/dest/client/simulator.d.ts +3 -4
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +1 -1
- package/dest/client/test_utils.d.ts.map +1 -1
- package/dest/client/test_utils.js +12 -6
- package/dest/client/unconstrained_execution.d.ts +2 -2
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +3 -3
- package/dest/common/debug_fn_name.d.ts +4 -0
- package/dest/common/debug_fn_name.d.ts.map +1 -0
- package/dest/common/debug_fn_name.js +15 -0
- package/dest/common/index.d.ts +0 -1
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +1 -2
- package/dest/public/enqueued_call_simulator.d.ts +43 -0
- package/dest/public/enqueued_call_simulator.d.ts.map +1 -0
- package/dest/public/enqueued_call_simulator.js +154 -0
- package/dest/public/enqueued_calls_processor.d.ts +44 -0
- package/dest/public/enqueued_calls_processor.d.ts.map +1 -0
- package/dest/public/enqueued_calls_processor.js +218 -0
- package/dest/public/execution.d.ts +10 -8
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +15 -8
- package/dest/public/executor.d.ts +4 -7
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +10 -14
- package/dest/public/hints_builder.d.ts +4 -3
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +5 -5
- package/dest/public/index.d.ts +3 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +3 -3
- package/dest/public/public_db_sources.d.ts +17 -24
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +58 -65
- package/dest/public/public_kernel.d.ts +3 -9
- package/dest/public/public_kernel.d.ts.map +1 -1
- package/dest/public/public_kernel.js +13 -40
- package/dest/public/public_kernel_circuit_simulator.d.ts +5 -11
- package/dest/public/public_kernel_circuit_simulator.d.ts.map +1 -1
- package/dest/public/public_kernel_tail_simulator.d.ts +19 -0
- package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -0
- package/dest/public/public_kernel_tail_simulator.js +45 -0
- package/dest/public/public_processor.d.ts +9 -5
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +34 -48
- package/dest/public/public_processor_metrics.d.ts +3 -3
- package/dest/public/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor_metrics.js +1 -1
- package/dest/public/side_effect_errors.d.ts +4 -0
- package/dest/public/side_effect_errors.d.ts.map +1 -0
- package/dest/public/side_effect_errors.js +7 -0
- package/dest/public/side_effect_trace.d.ts +2 -2
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +56 -35
- package/dest/public/side_effect_trace_interface.d.ts +1 -1
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/package.json +12 -9
- package/src/acvm/oracle/oracle.ts +7 -85
- package/src/acvm/oracle/typed_oracle.ts +2 -31
- package/src/avm/avm_execution_environment.ts +2 -24
- package/src/avm/avm_gas.ts +30 -115
- package/src/avm/avm_machine_state.ts +5 -5
- package/src/avm/avm_memory_types.ts +41 -14
- package/src/avm/avm_simulator.ts +4 -5
- package/src/avm/bytecode_utils.ts +2 -17
- package/src/avm/errors.ts +11 -3
- package/src/avm/fixtures/index.ts +13 -46
- package/src/avm/journal/index.ts +0 -1
- package/src/avm/journal/journal.ts +22 -22
- package/src/avm/opcodes/accrued_substate.ts +36 -44
- package/src/avm/opcodes/addressing_mode.ts +27 -24
- package/src/avm/opcodes/arithmetic.ts +5 -7
- package/src/avm/opcodes/bitwise.ts +23 -20
- package/src/avm/opcodes/commitment.ts +6 -7
- package/src/avm/opcodes/comparators.ts +7 -9
- package/src/avm/opcodes/contract.ts +5 -7
- package/src/avm/opcodes/control_flow.ts +5 -5
- package/src/avm/opcodes/conversion.ts +19 -12
- package/src/avm/opcodes/ec_add.ts +14 -16
- package/src/avm/opcodes/environment_getters.ts +73 -99
- package/src/avm/opcodes/external_calls.ts +27 -20
- package/src/avm/opcodes/hashing.ts +52 -52
- package/src/avm/opcodes/index.ts +3 -0
- package/src/avm/opcodes/instruction.ts +3 -10
- package/src/avm/opcodes/instruction_impl.ts +0 -62
- package/src/avm/opcodes/memory.ts +37 -67
- package/src/avm/opcodes/misc.ts +5 -7
- package/src/avm/opcodes/multi_scalar_mul.ts +16 -19
- package/src/avm/opcodes/storage.ts +10 -8
- package/src/avm/serialization/bytecode_serialization.ts +11 -35
- package/src/avm/serialization/instruction_serialization.ts +3 -19
- package/src/avm/test_utils.ts +20 -16
- package/src/client/client_execution_context.ts +40 -96
- package/src/client/index.ts +0 -1
- package/src/client/private_execution.ts +9 -9
- package/src/client/simulator.ts +2 -3
- package/src/client/test_utils.ts +36 -9
- package/src/client/unconstrained_execution.ts +3 -8
- package/src/common/debug_fn_name.ts +22 -0
- package/src/common/index.ts +0 -1
- package/src/public/enqueued_call_simulator.ts +335 -0
- package/src/public/enqueued_calls_processor.ts +388 -0
- package/src/public/execution.ts +16 -12
- package/src/public/executor.ts +8 -22
- package/src/public/hints_builder.ts +21 -21
- package/src/public/index.ts +3 -2
- package/src/public/public_db_sources.ts +62 -67
- package/src/public/public_kernel.ts +15 -49
- package/src/public/public_kernel_circuit_simulator.ts +6 -10
- package/src/public/public_kernel_tail_simulator.ts +106 -0
- package/src/public/public_processor.ts +65 -86
- package/src/public/public_processor_metrics.ts +3 -3
- package/src/public/side_effect_errors.ts +6 -0
- package/src/public/side_effect_trace.ts +77 -39
- package/src/public/side_effect_trace_interface.ts +2 -2
- package/dest/avm/journal/host_storage.d.ts +0 -13
- package/dest/avm/journal/host_storage.d.ts.map +0 -1
- package/dest/avm/journal/host_storage.js +0 -13
- package/dest/avm/opcodes/context_getters.d.ts +0 -15
- package/dest/avm/opcodes/context_getters.d.ts.map +0 -1
- package/dest/avm/opcodes/context_getters.js +0 -19
- package/dest/client/execution_result.d.ts +0 -104
- package/dest/client/execution_result.d.ts.map +0 -1
- package/dest/client/execution_result.js +0 -136
- package/dest/common/return_values.d.ts +0 -11
- package/dest/common/return_values.d.ts.map +0 -1
- package/dest/common/return_values.js +0 -13
- package/dest/public/abstract_phase_manager.d.ts +0 -93
- package/dest/public/abstract_phase_manager.d.ts.map +0 -1
- package/dest/public/abstract_phase_manager.js +0 -285
- package/dest/public/app_logic_phase_manager.d.ts +0 -25
- package/dest/public/app_logic_phase_manager.d.ts.map +0 -1
- package/dest/public/app_logic_phase_manager.js +0 -52
- package/dest/public/phase_manager_factory.d.ts +0 -18
- package/dest/public/phase_manager_factory.d.ts.map +0 -1
- package/dest/public/phase_manager_factory.js +0 -56
- package/dest/public/setup_phase_manager.d.ts +0 -25
- package/dest/public/setup_phase_manager.d.ts.map +0 -1
- package/dest/public/setup_phase_manager.js +0 -39
- package/dest/public/tail_phase_manager.d.ts +0 -23
- package/dest/public/tail_phase_manager.d.ts.map +0 -1
- package/dest/public/tail_phase_manager.js +0 -50
- package/dest/public/teardown_phase_manager.d.ts +0 -27
- package/dest/public/teardown_phase_manager.d.ts.map +0 -1
- package/dest/public/teardown_phase_manager.js +0 -56
- package/src/avm/journal/host_storage.ts +0 -14
- package/src/avm/opcodes/context_getters.ts +0 -23
- package/src/client/execution_result.ts +0 -228
- package/src/common/return_values.ts +0 -18
- package/src/public/abstract_phase_manager.ts +0 -522
- package/src/public/app_logic_phase_manager.ts +0 -81
- package/src/public/phase_manager_factory.ts +0 -126
- package/src/public/setup_phase_manager.ts +0 -61
- package/src/public/tail_phase_manager.ts +0 -127
- package/src/public/teardown_phase_manager.ts +0 -86
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { EncryptedFunctionL2Logs, type EncryptedL2Log, type EncryptedL2NoteLog, EncryptedNoteFunctionL2Logs, type Note, PublicExecutionRequest, UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
|
|
3
|
-
import { type IsEmpty, type PrivateCallStackItem } from '@aztec/circuits.js';
|
|
4
|
-
import { type NoteSelector } from '@aztec/foundation/abi';
|
|
5
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
6
|
-
import { type ACVMField } from '../acvm/index.js';
|
|
7
|
-
/**
|
|
8
|
-
* The contents of a new note.
|
|
9
|
-
*/
|
|
10
|
-
export interface NoteAndSlot {
|
|
11
|
-
/** The note. */
|
|
12
|
-
note: Note;
|
|
13
|
-
/** The storage slot of the note. */
|
|
14
|
-
storageSlot: Fr;
|
|
15
|
-
/** The note type identifier. */
|
|
16
|
-
noteTypeId: NoteSelector;
|
|
17
|
-
}
|
|
18
|
-
export declare class CountedLog<TLog extends UnencryptedL2Log | EncryptedL2NoteLog | EncryptedL2Log> implements IsEmpty {
|
|
19
|
-
log: TLog;
|
|
20
|
-
counter: number;
|
|
21
|
-
constructor(log: TLog, counter: number);
|
|
22
|
-
isEmpty(): boolean;
|
|
23
|
-
}
|
|
24
|
-
export declare class CountedNoteLog extends CountedLog<EncryptedL2NoteLog> {
|
|
25
|
-
noteHashCounter: number;
|
|
26
|
-
constructor(log: EncryptedL2NoteLog, counter: number, noteHashCounter: number);
|
|
27
|
-
}
|
|
28
|
-
export declare class CountedPublicExecutionRequest {
|
|
29
|
-
request: PublicExecutionRequest;
|
|
30
|
-
counter: number;
|
|
31
|
-
constructor(request: PublicExecutionRequest, counter: number);
|
|
32
|
-
isEmpty(): boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The result of executing a private function.
|
|
36
|
-
*/
|
|
37
|
-
export interface ExecutionResult {
|
|
38
|
-
/** The ACIR bytecode. */
|
|
39
|
-
acir: Buffer;
|
|
40
|
-
/** The verification key. */
|
|
41
|
-
vk: Buffer;
|
|
42
|
-
/** The partial witness. */
|
|
43
|
-
partialWitness: Map<number, ACVMField>;
|
|
44
|
-
/** The call stack item. */
|
|
45
|
-
callStackItem: PrivateCallStackItem;
|
|
46
|
-
/** Mapping of note hash to its index in the note hash tree. Used for building hints for note hash read requests. */
|
|
47
|
-
noteHashLeafIndexMap: Map<bigint, bigint>;
|
|
48
|
-
/** The notes created in the executed function. */
|
|
49
|
-
newNotes: NoteAndSlot[];
|
|
50
|
-
/** Mapping of note hash counter to the counter of its nullifier. */
|
|
51
|
-
noteHashNullifierCounterMap: Map<number, number>;
|
|
52
|
-
/** The raw return values of the executed function. */
|
|
53
|
-
returnValues: Fr[];
|
|
54
|
-
/** The nested executions. */
|
|
55
|
-
nestedExecutions: this[];
|
|
56
|
-
/** Enqueued public function execution requests to be picked up by the sequencer. */
|
|
57
|
-
enqueuedPublicFunctionCalls: CountedPublicExecutionRequest[];
|
|
58
|
-
/** Public function execution requested for teardown */
|
|
59
|
-
publicTeardownFunctionCall: PublicExecutionRequest;
|
|
60
|
-
/**
|
|
61
|
-
* Encrypted note logs emitted during execution of this function call.
|
|
62
|
-
* Note: These are preimages to `noteEncryptedLogsHashes`.
|
|
63
|
-
*/
|
|
64
|
-
noteEncryptedLogs: CountedNoteLog[];
|
|
65
|
-
/**
|
|
66
|
-
* Encrypted logs emitted during execution of this function call.
|
|
67
|
-
* Note: These are preimages to `encryptedLogsHashes`.
|
|
68
|
-
*/
|
|
69
|
-
encryptedLogs: CountedLog<EncryptedL2Log>[];
|
|
70
|
-
/**
|
|
71
|
-
* Unencrypted logs emitted during execution of this function call.
|
|
72
|
-
* Note: These are preimages to `unencryptedLogsHashes`.
|
|
73
|
-
*/
|
|
74
|
-
unencryptedLogs: CountedLog<UnencryptedL2Log>[];
|
|
75
|
-
}
|
|
76
|
-
export declare function collectNoteHashLeafIndexMap(execResult: ExecutionResult, accum?: Map<bigint, bigint>): Map<bigint, bigint>;
|
|
77
|
-
export declare function collectNoteHashNullifierCounterMap(execResult: ExecutionResult, accum?: Map<number, number>): Map<number, number>;
|
|
78
|
-
/**
|
|
79
|
-
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
80
|
-
* @param execResult - The topmost execution result.
|
|
81
|
-
* @returns All encrypted logs.
|
|
82
|
-
*/
|
|
83
|
-
export declare function collectSortedNoteEncryptedLogs(execResult: ExecutionResult): EncryptedNoteFunctionL2Logs;
|
|
84
|
-
/**
|
|
85
|
-
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
86
|
-
* @param execResult - The topmost execution result.
|
|
87
|
-
* @returns All encrypted logs.
|
|
88
|
-
*/
|
|
89
|
-
export declare function collectSortedEncryptedLogs(execResult: ExecutionResult): EncryptedFunctionL2Logs;
|
|
90
|
-
/**
|
|
91
|
-
* Collect all unencrypted logs across all nested executions and sorts by counter.
|
|
92
|
-
* @param execResult - The topmost execution result.
|
|
93
|
-
* @returns All unencrypted logs.
|
|
94
|
-
*/
|
|
95
|
-
export declare function collectSortedUnencryptedLogs(execResult: ExecutionResult): UnencryptedFunctionL2Logs;
|
|
96
|
-
/**
|
|
97
|
-
* Collect all enqueued public function calls across all nested executions.
|
|
98
|
-
* @param execResult - The topmost execution result.
|
|
99
|
-
* @returns All enqueued public function calls.
|
|
100
|
-
*/
|
|
101
|
-
export declare function collectEnqueuedPublicFunctionCalls(execResult: ExecutionResult): PublicExecutionRequest[];
|
|
102
|
-
export declare function collectPublicTeardownFunctionCall(execResult: ExecutionResult): PublicExecutionRequest;
|
|
103
|
-
export declare function getFinalMinRevertibleSideEffectCounter(execResult: ExecutionResult): number;
|
|
104
|
-
//# sourceMappingURL=execution_result.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution_result.d.ts","sourceRoot":"","sources":["../../src/client/execution_result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { EncryptedFunctionL2Logs, EncryptedNoteFunctionL2Logs, PublicExecutionRequest, UnencryptedFunctionL2Logs, } from '@aztec/circuit-types';
|
|
2
|
-
import { sortByCounter } from '@aztec/circuits.js';
|
|
3
|
-
export class CountedLog {
|
|
4
|
-
constructor(log, counter) {
|
|
5
|
-
this.log = log;
|
|
6
|
-
this.counter = counter;
|
|
7
|
-
}
|
|
8
|
-
isEmpty() {
|
|
9
|
-
return !this.log.data.length && !this.counter;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export class CountedNoteLog extends CountedLog {
|
|
13
|
-
constructor(log, counter, noteHashCounter) {
|
|
14
|
-
super(log, counter);
|
|
15
|
-
this.noteHashCounter = noteHashCounter;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export class CountedPublicExecutionRequest {
|
|
19
|
-
constructor(request, counter) {
|
|
20
|
-
this.request = request;
|
|
21
|
-
this.counter = counter;
|
|
22
|
-
}
|
|
23
|
-
isEmpty() {
|
|
24
|
-
return this.request.isEmpty() && !this.counter;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function collectNoteHashLeafIndexMap(execResult, accum = new Map()) {
|
|
28
|
-
execResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
|
|
29
|
-
execResult.nestedExecutions.forEach(nested => collectNoteHashLeafIndexMap(nested, accum));
|
|
30
|
-
return accum;
|
|
31
|
-
}
|
|
32
|
-
export function collectNoteHashNullifierCounterMap(execResult, accum = new Map()) {
|
|
33
|
-
execResult.noteHashNullifierCounterMap.forEach((value, key) => accum.set(key, value));
|
|
34
|
-
execResult.nestedExecutions.forEach(nested => collectNoteHashNullifierCounterMap(nested, accum));
|
|
35
|
-
return accum;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Collect all encrypted logs across all nested executions.
|
|
39
|
-
* @param execResult - The topmost execution result.
|
|
40
|
-
* @returns All encrypted logs.
|
|
41
|
-
*/
|
|
42
|
-
function collectNoteEncryptedLogs(execResult, noteHashNullifierCounterMap, minRevertibleSideEffectCounter) {
|
|
43
|
-
return [
|
|
44
|
-
execResult.noteEncryptedLogs.filter(noteLog => {
|
|
45
|
-
const nullifierCounter = noteHashNullifierCounterMap.get(noteLog.noteHashCounter);
|
|
46
|
-
return (nullifierCounter === undefined ||
|
|
47
|
-
(noteLog.noteHashCounter < minRevertibleSideEffectCounter && nullifierCounter >= minRevertibleSideEffectCounter));
|
|
48
|
-
}),
|
|
49
|
-
...execResult.nestedExecutions.flatMap(res => collectNoteEncryptedLogs(res, noteHashNullifierCounterMap, minRevertibleSideEffectCounter)),
|
|
50
|
-
].flat();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
54
|
-
* @param execResult - The topmost execution result.
|
|
55
|
-
* @returns All encrypted logs.
|
|
56
|
-
*/
|
|
57
|
-
export function collectSortedNoteEncryptedLogs(execResult) {
|
|
58
|
-
const noteHashNullifierCounterMap = collectNoteHashNullifierCounterMap(execResult);
|
|
59
|
-
const minRevertibleSideEffectCounter = getFinalMinRevertibleSideEffectCounter(execResult);
|
|
60
|
-
const allLogs = collectNoteEncryptedLogs(execResult, noteHashNullifierCounterMap, minRevertibleSideEffectCounter);
|
|
61
|
-
const sortedLogs = sortByCounter(allLogs);
|
|
62
|
-
return new EncryptedNoteFunctionL2Logs(sortedLogs.map(l => l.log));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Collect all encrypted logs across all nested executions.
|
|
66
|
-
* @param execResult - The topmost execution result.
|
|
67
|
-
* @returns All encrypted logs.
|
|
68
|
-
*/
|
|
69
|
-
function collectEncryptedLogs(execResult) {
|
|
70
|
-
return [execResult.encryptedLogs, ...execResult.nestedExecutions.flatMap(collectEncryptedLogs)].flat();
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
74
|
-
* @param execResult - The topmost execution result.
|
|
75
|
-
* @returns All encrypted logs.
|
|
76
|
-
*/
|
|
77
|
-
export function collectSortedEncryptedLogs(execResult) {
|
|
78
|
-
const allLogs = collectEncryptedLogs(execResult);
|
|
79
|
-
const sortedLogs = sortByCounter(allLogs);
|
|
80
|
-
return new EncryptedFunctionL2Logs(sortedLogs.map(l => l.log));
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Collect all unencrypted logs across all nested executions.
|
|
84
|
-
* @param execResult - The topmost execution result.
|
|
85
|
-
* @returns All unencrypted logs.
|
|
86
|
-
*/
|
|
87
|
-
function collectUnencryptedLogs(execResult) {
|
|
88
|
-
return [execResult.unencryptedLogs, ...execResult.nestedExecutions.flatMap(collectUnencryptedLogs)].flat();
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Collect all unencrypted logs across all nested executions and sorts by counter.
|
|
92
|
-
* @param execResult - The topmost execution result.
|
|
93
|
-
* @returns All unencrypted logs.
|
|
94
|
-
*/
|
|
95
|
-
export function collectSortedUnencryptedLogs(execResult) {
|
|
96
|
-
const allLogs = collectUnencryptedLogs(execResult);
|
|
97
|
-
const sortedLogs = sortByCounter(allLogs);
|
|
98
|
-
return new UnencryptedFunctionL2Logs(sortedLogs.map(l => l.log));
|
|
99
|
-
}
|
|
100
|
-
function collectEnqueuedCountedPublicExecutionRequests(execResult) {
|
|
101
|
-
return [
|
|
102
|
-
...execResult.enqueuedPublicFunctionCalls,
|
|
103
|
-
...execResult.nestedExecutions.flatMap(collectEnqueuedCountedPublicExecutionRequests),
|
|
104
|
-
];
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Collect all enqueued public function calls across all nested executions.
|
|
108
|
-
* @param execResult - The topmost execution result.
|
|
109
|
-
* @returns All enqueued public function calls.
|
|
110
|
-
*/
|
|
111
|
-
export function collectEnqueuedPublicFunctionCalls(execResult) {
|
|
112
|
-
const countedRequests = collectEnqueuedCountedPublicExecutionRequests(execResult);
|
|
113
|
-
// without the reverse sort, the logs will be in a queue like fashion which is wrong
|
|
114
|
-
// as the kernel processes it like a stack, popping items off and pushing them to output
|
|
115
|
-
return sortByCounter(countedRequests, false).map(r => r.request);
|
|
116
|
-
}
|
|
117
|
-
export function collectPublicTeardownFunctionCall(execResult) {
|
|
118
|
-
const teardownCalls = [
|
|
119
|
-
execResult.publicTeardownFunctionCall,
|
|
120
|
-
...execResult.nestedExecutions.flatMap(collectPublicTeardownFunctionCall),
|
|
121
|
-
].filter(call => !call.isEmpty());
|
|
122
|
-
if (teardownCalls.length === 1) {
|
|
123
|
-
return teardownCalls[0];
|
|
124
|
-
}
|
|
125
|
-
if (teardownCalls.length > 1) {
|
|
126
|
-
throw new Error('Multiple public teardown calls detected');
|
|
127
|
-
}
|
|
128
|
-
return PublicExecutionRequest.empty();
|
|
129
|
-
}
|
|
130
|
-
export function getFinalMinRevertibleSideEffectCounter(execResult) {
|
|
131
|
-
return execResult.nestedExecutions.reduce((counter, exec) => {
|
|
132
|
-
const nestedCounter = getFinalMinRevertibleSideEffectCounter(exec);
|
|
133
|
-
return nestedCounter ? nestedCounter : counter;
|
|
134
|
-
}, execResult.callStackItem.publicInputs.minRevertibleSideEffectCounter.toNumber());
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvZXhlY3V0aW9uX3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLDJCQUEyQixFQUUzQixzQkFBc0IsRUFDdEIseUJBQXlCLEdBRTFCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUEyQyxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWtCNUYsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBbUIsR0FBUyxFQUFTLE9BQWU7UUFBakMsUUFBRyxHQUFILEdBQUcsQ0FBTTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0lBRXhELE9BQU87UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQThCO0lBQ2hFLFlBQVksR0FBdUIsRUFBRSxPQUFlLEVBQVMsZUFBdUI7UUFDbEYsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUR1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtJQUVwRixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDLFlBQW1CLE9BQStCLEVBQVMsT0FBZTtRQUF2RCxZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0lBRTlFLE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2pELENBQUM7Q0FDRjtBQStDRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsVUFBMkIsRUFBRSxRQUE2QixJQUFJLEdBQUcsRUFBRTtJ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
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { NestedProcessReturnValues } from '@aztec/circuit-types';
|
|
2
|
-
import type { ExecutionResult } from '../client/execution_result.js';
|
|
3
|
-
import type { PublicExecutionResult } from '../public/execution.js';
|
|
4
|
-
/**
|
|
5
|
-
* Recursively accummulate the return values of a call result and its nested executions,
|
|
6
|
-
* so they can be retrieved in order.
|
|
7
|
-
* @param executionResult
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
export declare function accumulateReturnValues(executionResult: PublicExecutionResult | ExecutionResult): NestedProcessReturnValues;
|
|
11
|
-
//# sourceMappingURL=return_values.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"return_values.d.ts","sourceRoot":"","sources":["../../src/common/return_values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,qBAAqB,GAAG,eAAe,GACvD,yBAAyB,CAI3B"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { NestedProcessReturnValues } from '@aztec/circuit-types';
|
|
2
|
-
/**
|
|
3
|
-
* Recursively accummulate the return values of a call result and its nested executions,
|
|
4
|
-
* so they can be retrieved in order.
|
|
5
|
-
* @param executionResult
|
|
6
|
-
* @returns
|
|
7
|
-
*/
|
|
8
|
-
export function accumulateReturnValues(executionResult) {
|
|
9
|
-
const acc = new NestedProcessReturnValues(executionResult.returnValues);
|
|
10
|
-
acc.nested = executionResult.nestedExecutions.map(nestedExecution => accumulateReturnValues(nestedExecution));
|
|
11
|
-
return acc;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuX3ZhbHVlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmV0dXJuX3ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtqRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBd0Q7SUFFeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEUsR0FBRyxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM5RyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMifQ==
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { type AvmProvingRequest, type NestedProcessReturnValues, type PublicExecutionRequest, type PublicKernelNonTailRequest, PublicKernelType, type PublicProvingRequest, type SimulationError, type Tx, type UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
3
|
-
import { type AvmExecutionHints, Fr, Gas, type GlobalVariables, type Header, type KernelCircuitPublicInputs, PublicCallData, PublicCallStackItem, PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, PublicKernelData } from '@aztec/circuits.js';
|
|
4
|
-
import { type DebugLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
6
|
-
import { type PublicExecutionResult, type PublicExecutor } from '@aztec/simulator';
|
|
7
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
8
|
-
import { HintsBuilder } from './hints_builder.js';
|
|
9
|
-
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
10
|
-
export declare const PhaseIsRevertible: Record<PublicKernelType, boolean>;
|
|
11
|
-
export type PublicProvingInformation = {
|
|
12
|
-
functionName: string;
|
|
13
|
-
calldata: Fr[];
|
|
14
|
-
bytecode: Buffer;
|
|
15
|
-
inputs: PublicKernelCircuitPrivateInputs;
|
|
16
|
-
avmHints: AvmExecutionHints;
|
|
17
|
-
};
|
|
18
|
-
export declare function makeAvmProvingRequest(info: PublicProvingInformation, kernelType: PublicKernelNonTailRequest['type']): AvmProvingRequest;
|
|
19
|
-
export type TxPublicCallsResult = {
|
|
20
|
-
/** Inputs to be used for proving */
|
|
21
|
-
publicProvingInformation: PublicProvingInformation[];
|
|
22
|
-
/** The public kernel output at the end of the Tx */
|
|
23
|
-
kernelOutput: PublicKernelCircuitPublicInputs;
|
|
24
|
-
/** The last circuit ran by this phase */
|
|
25
|
-
lastKernelArtifact: ProtocolArtifact;
|
|
26
|
-
/** Unencrypted logs generated during the execution of this Tx */
|
|
27
|
-
newUnencryptedLogs: UnencryptedFunctionL2Logs[];
|
|
28
|
-
/** Revert reason, if any */
|
|
29
|
-
revertReason?: SimulationError;
|
|
30
|
-
/** Return values of simulating complete callstack */
|
|
31
|
-
returnValues: NestedProcessReturnValues[];
|
|
32
|
-
/** Gas used during the execution this Tx */
|
|
33
|
-
gasUsed?: Gas;
|
|
34
|
-
};
|
|
35
|
-
export type PhaseResult = {
|
|
36
|
-
/** The collection of public proving requests */
|
|
37
|
-
publicProvingRequests: PublicProvingRequest[];
|
|
38
|
-
/** The output of the public kernel circuit simulation for this phase */
|
|
39
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
40
|
-
/** The last circuit ran by this phase */
|
|
41
|
-
lastKernelArtifact: ProtocolArtifact;
|
|
42
|
-
/** The final output of the public kernel circuit for this phase */
|
|
43
|
-
finalKernelOutput?: KernelCircuitPublicInputs;
|
|
44
|
-
/** Revert reason, if any */
|
|
45
|
-
revertReason?: SimulationError;
|
|
46
|
-
/** Return values of simulating complete callstack */
|
|
47
|
-
returnValues: NestedProcessReturnValues[];
|
|
48
|
-
/** Gas used during the execution this phase */
|
|
49
|
-
gasUsed?: Gas;
|
|
50
|
-
};
|
|
51
|
-
export declare abstract class AbstractPhaseManager {
|
|
52
|
-
protected db: MerkleTreeOperations;
|
|
53
|
-
protected publicExecutor: PublicExecutor;
|
|
54
|
-
protected publicKernel: PublicKernelCircuitSimulator;
|
|
55
|
-
protected globalVariables: GlobalVariables;
|
|
56
|
-
protected historicalHeader: Header;
|
|
57
|
-
phase: PublicKernelType;
|
|
58
|
-
protected hintsBuilder: HintsBuilder;
|
|
59
|
-
protected log: DebugLogger;
|
|
60
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, phase: PublicKernelType);
|
|
61
|
-
/**
|
|
62
|
-
* @param tx - the tx to be processed
|
|
63
|
-
* @param publicKernelPublicInputs - the output of the public kernel circuit for the previous phase
|
|
64
|
-
*/
|
|
65
|
-
abstract handle(tx: Tx, publicKernelPublicInputs: PublicKernelCircuitPublicInputs, previousKernelArtifact: ProtocolArtifact): Promise<PhaseResult>;
|
|
66
|
-
static extractEnqueuedPublicCallsByPhase(tx: Tx): Record<PublicKernelType, PublicExecutionRequest[]>;
|
|
67
|
-
protected extractEnqueuedPublicCalls(tx: Tx): PublicExecutionRequest[];
|
|
68
|
-
protected processEnqueuedPublicCalls(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousKernelArtifact: ProtocolArtifact): Promise<TxPublicCallsResult>;
|
|
69
|
-
/** Returns all pending private and public nullifiers. */
|
|
70
|
-
private getSiloedPendingNullifiers;
|
|
71
|
-
protected getAvailableGas(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Gas;
|
|
72
|
-
protected getTransactionFee(_tx: Tx, _previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Fr;
|
|
73
|
-
private runKernelCircuit;
|
|
74
|
-
protected getPreviousKernelData(previousOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): PublicKernelData;
|
|
75
|
-
protected getPublicCallStackItem(result: PublicExecutionResult, isExecutionRequest?: boolean): Promise<PublicCallStackItem>;
|
|
76
|
-
/**
|
|
77
|
-
* Looks at the side effects of a transaction and returns the highest counter
|
|
78
|
-
* @param tx - A transaction
|
|
79
|
-
* @returns The highest side effect counter in the transaction so far
|
|
80
|
-
*/
|
|
81
|
-
static getMaxSideEffectCounter(inputs: PublicKernelCircuitPublicInputs): number;
|
|
82
|
-
protected getBytecodeHash(_result: PublicExecutionResult): Promise<Fr>;
|
|
83
|
-
/**
|
|
84
|
-
* Calculates the PublicCircuitOutput for this execution result along with its proof,
|
|
85
|
-
* and assembles a PublicCallData object from it.
|
|
86
|
-
* @param result - The execution result.
|
|
87
|
-
* @param preimages - The preimages of the callstack items.
|
|
88
|
-
* @param isExecutionRequest - Whether the current callstack item should be considered a public fn execution request.
|
|
89
|
-
* @returns A corresponding PublicCallData object.
|
|
90
|
-
*/
|
|
91
|
-
protected getPublicCallData(result: PublicExecutionResult, isExecutionRequest?: boolean): Promise<PublicCallData>;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=abstract_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abstract_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/abstract_phase_manager.ts"],"names":[],"mappings":"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"}
|