@aztec/simulator 0.45.1 → 0.46.1
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 -2
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +8 -8
- package/dest/acvm/serialize.d.ts.map +1 -1
- package/dest/acvm/serialize.js +2 -1
- package/dest/avm/opcodes/ec_add.js +3 -3
- package/dest/avm/opcodes/multi_scalar_mul.js +3 -3
- package/dest/client/client_execution_context.d.ts +0 -1
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +6 -6
- package/dest/client/execution_result.js +2 -2
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +2 -2
- package/dest/mocks/fixtures.js +2 -2
- package/dest/public/abstract_phase_manager.d.ts +8 -3
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +29 -16
- package/dest/public/app_logic_phase_manager.d.ts +3 -1
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +11 -4
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +2 -3
- package/dest/public/public_kernel.d.ts.map +1 -1
- package/dest/public/public_kernel.js +6 -6
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +4 -2
- package/dest/public/setup_phase_manager.d.ts +3 -1
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +11 -4
- package/dest/public/side_effect_trace.d.ts +1 -3
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +4 -7
- package/dest/public/tail_phase_manager.d.ts +3 -1
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +8 -7
- package/dest/public/teardown_phase_manager.d.ts +3 -1
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +11 -4
- package/dest/rollup/rollup.d.ts.map +1 -1
- package/dest/rollup/rollup.js +7 -7
- package/package.json +9 -9
- package/src/acvm/oracle/oracle.ts +9 -5
- package/src/acvm/serialize.ts +1 -0
- package/src/avm/opcodes/ec_add.ts +2 -2
- package/src/avm/opcodes/multi_scalar_mul.ts +2 -2
- package/src/client/client_execution_context.ts +1 -5
- package/src/client/execution_result.ts +1 -1
- package/src/client/simulator.ts +0 -1
- package/src/mocks/fixtures.ts +1 -1
- package/src/public/abstract_phase_manager.ts +54 -17
- package/src/public/app_logic_phase_manager.ts +29 -10
- package/src/public/executor.ts +0 -3
- package/src/public/public_kernel.ts +5 -8
- package/src/public/public_processor.ts +4 -1
- package/src/public/setup_phase_manager.ts +16 -4
- package/src/public/side_effect_trace.ts +2 -8
- package/src/public/tail_phase_manager.ts +15 -5
- package/src/public/teardown_phase_manager.ts +16 -4
- package/src/rollup/rollup.ts +20 -10
package/dest/mocks/fixtures.js
CHANGED
|
@@ -26,7 +26,7 @@ export class PublicExecutionResultBuilder {
|
|
|
26
26
|
}
|
|
27
27
|
static fromFunctionCall({ from, tx, returnValues = [new Fr(1n)], nestedExecutions = [], contractStorageUpdateRequests = [], contractStorageReads = [], revertReason, }) {
|
|
28
28
|
const builder = new PublicExecutionResultBuilder({
|
|
29
|
-
callContext: new CallContext(from, tx.to, tx.selector, false, false
|
|
29
|
+
callContext: new CallContext(from, tx.to, tx.selector, false, false),
|
|
30
30
|
contractAddress: tx.to,
|
|
31
31
|
functionSelector: tx.selector,
|
|
32
32
|
args: tx.args,
|
|
@@ -93,4 +93,4 @@ export class PublicExecutionResultBuilder {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
export const makeFunctionCall = (name = 'function', to = makeAztecAddress(30), selector = makeSelector(5), type = FunctionType.PUBLIC, args = new Array(ARGS_LENGTH).fill(Fr.ZERO), isStatic = false, returnTypes = []) => ({ name, to, selector, type, args, isStatic, returnTypes });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQyx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFDTCxXQUFXLEVBQ1gsaUJBQWlCLEVBRWpCLFdBQVcsRUFHWCxFQUFFLEVBQ0YsR0FBRyxHQUVKLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUFZLGdCQUF3QztRQVA1QyxzQkFBaUIsR0FBNEIsRUFBRSxDQUFDO1FBQ2hELG1DQUE4QixHQUFtQyxFQUFFLENBQUM7UUFDcEUsMEJBQXFCLEdBQTBCLEVBQUUsQ0FBQztRQUNsRCxrQkFBYSxHQUFTLEVBQUUsQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQWdDLFNBQVMsQ0FBQztRQUc3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUMzQixPQUFPLEVBQ1AsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDM0IsZ0JBQWdCLEdBQUcsRUFBRSxFQUNyQiw2QkFBNkIsR0FBRyxFQUFFLEVBQ2xDLG9CQUFvQixHQUFHLEVBQUUsRUFDekIsWUFBWSxHQUFHLFNBQVMsR0FRekI7UUFDQyxNQUFNLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsNkJBQTZCLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsdUJBQXVCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN0QixJQUFJLEVBQ0osRUFBRSxFQUNGLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzNCLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsNkJBQTZCLEdBQUcsRUFBRSxFQUNsQyxvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLFlBQVksR0FTYjtRQUNDLE1BQU0sT0FBTyxHQUFHLElBQUksNEJBQTRCLENBQUM7WUFDL0MsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNwRSxlQUFlLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDdEIsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFFBQVE7WUFDN0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsZ0NBQWdDLENBQUMsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLENBQUM7UUFDekQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDMUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBRyxNQUErQjtRQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsR0FBRyxPQUF1QztRQUN6RSxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsR0FBRyxLQUE0QjtRQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxNQUFZO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXVCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUE0QyxFQUFFO1FBQ2xELE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDeEMsb0JBQW9CLEVBQUUsRUFBRTtZQUN4QixxQkFBcUIsRUFBRSxFQUFFO1lBQ3pCLGdDQUFnQyxFQUFFLEVBQUU7WUFDcEMscUJBQXFCLEVBQUUsRUFBRTtZQUN6Qiw2QkFBNkIsRUFBRSxJQUFJLENBQUMsOEJBQThCO1lBQ2xFLFlBQVksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLHdEQUF3RDtZQUNuSCxVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsY0FBYyxFQUFFLEVBQUU7WUFDbEIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4QixxQkFBcUIsRUFBRSxFQUFFO1lBQ3pCLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUU7WUFDbEQsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMsS0FBSyxFQUFFO1lBQ3JELHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJO1lBQy9CLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxJQUFJO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDdEIsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJO1lBQ3ZCLFFBQVEsRUFBRSxFQUFFO1lBQ1osZUFBZSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRTtZQUMxQyxZQUFZLEVBQUUsU0FBUztZQUN2QixHQUFHLFNBQVM7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsSUFBSSxHQUFHLFVBQVUsRUFDakIsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUN6QixRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUMxQixJQUFJLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFDMUIsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQzNDLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyJ9
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { type AvmProvingRequest, type NestedProcessReturnValues, type PublicKernelNonTailRequest, PublicKernelType, type PublicProvingRequest, type SimulationError, type Tx, type UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
3
3
|
import { type AvmExecutionHints, Fr, Gas, type GlobalVariables, type Header, type KernelCircuitPublicInputs, PublicCallData, type PublicCallRequest, PublicCallStackItem, PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, PublicKernelData } from '@aztec/circuits.js';
|
|
4
4
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
5
6
|
import { type PublicExecutionResult, type PublicExecutor } from '@aztec/simulator';
|
|
6
7
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
7
8
|
import { HintsBuilder } from './hints_builder.js';
|
|
@@ -20,6 +21,8 @@ export type TxPublicCallsResult = {
|
|
|
20
21
|
publicProvingInformation: PublicProvingInformation[];
|
|
21
22
|
/** The public kernel output at the end of the Tx */
|
|
22
23
|
kernelOutput: PublicKernelCircuitPublicInputs;
|
|
24
|
+
/** The last circuit ran by this phase */
|
|
25
|
+
lastKernelArtifact: ProtocolArtifact;
|
|
23
26
|
/** Unencrypted logs generated during the execution of this Tx */
|
|
24
27
|
newUnencryptedLogs: UnencryptedFunctionL2Logs[];
|
|
25
28
|
/** Revert reason, if any */
|
|
@@ -34,6 +37,8 @@ export type PhaseResult = {
|
|
|
34
37
|
publicProvingRequests: PublicProvingRequest[];
|
|
35
38
|
/** The output of the public kernel circuit simulation for this phase */
|
|
36
39
|
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
40
|
+
/** The last circuit ran by this phase */
|
|
41
|
+
lastKernelArtifact: ProtocolArtifact;
|
|
37
42
|
/** The final output of the public kernel circuit for this phase */
|
|
38
43
|
finalKernelOutput?: KernelCircuitPublicInputs;
|
|
39
44
|
/** Revert reason, if any */
|
|
@@ -57,16 +62,16 @@ export declare abstract class AbstractPhaseManager {
|
|
|
57
62
|
* @param tx - the tx to be processed
|
|
58
63
|
* @param publicKernelPublicInputs - the output of the public kernel circuit for the previous phase
|
|
59
64
|
*/
|
|
60
|
-
abstract handle(tx: Tx, publicKernelPublicInputs: PublicKernelCircuitPublicInputs): Promise<PhaseResult>;
|
|
65
|
+
abstract handle(tx: Tx, publicKernelPublicInputs: PublicKernelCircuitPublicInputs, previousKernelArtifact: ProtocolArtifact): Promise<PhaseResult>;
|
|
61
66
|
static extractEnqueuedPublicCallsByPhase(tx: Tx): Record<PublicKernelType, PublicCallRequest[]>;
|
|
62
67
|
protected extractEnqueuedPublicCalls(tx: Tx): PublicCallRequest[];
|
|
63
|
-
protected processEnqueuedPublicCalls(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Promise<TxPublicCallsResult>;
|
|
68
|
+
protected processEnqueuedPublicCalls(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousKernelArtifact: ProtocolArtifact): Promise<TxPublicCallsResult>;
|
|
64
69
|
/** Returns all pending private and public nullifiers. */
|
|
65
70
|
private getSiloedPendingNullifiers;
|
|
66
71
|
protected getAvailableGas(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Gas;
|
|
67
72
|
protected getTransactionFee(_tx: Tx, _previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Fr;
|
|
68
73
|
private runKernelCircuit;
|
|
69
|
-
protected getPreviousKernelData(previousOutput: PublicKernelCircuitPublicInputs): PublicKernelData;
|
|
74
|
+
protected getPreviousKernelData(previousOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): PublicKernelData;
|
|
70
75
|
protected getPublicCallStackItem(result: PublicExecutionResult, isExecutionRequest?: boolean): Promise<PublicCallStackItem>;
|
|
71
76
|
protected getPublicCallStackPreimages(result: PublicExecutionResult): Promise<PublicCallStackItem[]>;
|
|
72
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/abstract_phase_manager.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,iBAAiB,EAKtB,EAAE,EAEF,GAAG,EACH,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"abstract_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/abstract_phase_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AVM_REQUEST, MerkleTreeId, PublicKernelType, } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecAddress, CallRequest, ContractStorageRead, ContractStorageUpdateRequest, Fr, FunctionData, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,
|
|
2
|
+
import { AztecAddress, CallRequest, ContractStorageRead, ContractStorageUpdateRequest, Fr, FunctionData, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL, NESTED_RECURSIVE_PROOF_LENGTH, NoteHash, Nullifier, PublicCallData, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelCircuitPrivateInputs, PublicKernelData, ReadRequest, RevertCode, makeEmptyProof, makeEmptyRecursiveProof, } from '@aztec/circuits.js';
|
|
3
3
|
import { computeVarArgsHash } from '@aztec/circuits.js/hash';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
6
|
+
import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, getVKIndex, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
|
|
6
7
|
import { accumulateReturnValues, isPublicExecutionResult, } from '@aztec/simulator';
|
|
7
8
|
import { HintsBuilder } from './hints_builder.js';
|
|
8
9
|
export const PhaseIsRevertible = {
|
|
@@ -102,12 +103,13 @@ export class AbstractPhaseManager {
|
|
|
102
103
|
const calls = AbstractPhaseManager.extractEnqueuedPublicCallsByPhase(tx)[this.phase];
|
|
103
104
|
return calls;
|
|
104
105
|
}
|
|
105
|
-
async processEnqueuedPublicCalls(tx, previousPublicKernelOutput) {
|
|
106
|
+
async processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousKernelArtifact) {
|
|
106
107
|
const enqueuedCalls = this.extractEnqueuedPublicCalls(tx);
|
|
107
108
|
if (!enqueuedCalls || !enqueuedCalls.length) {
|
|
108
109
|
return {
|
|
109
110
|
publicProvingInformation: [],
|
|
110
111
|
kernelOutput: previousPublicKernelOutput,
|
|
112
|
+
lastKernelArtifact: previousKernelArtifact,
|
|
111
113
|
newUnencryptedLogs: [],
|
|
112
114
|
returnValues: [],
|
|
113
115
|
gasUsed: Gas.empty(),
|
|
@@ -156,8 +158,9 @@ export class AbstractPhaseManager {
|
|
|
156
158
|
// Simulate the public kernel circuit.
|
|
157
159
|
this.log.debug(`Running public kernel circuit for ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName})`);
|
|
158
160
|
const callData = await this.getPublicCallData(result, isExecutionRequest);
|
|
159
|
-
const [privateInputs, publicInputs] = await this.runKernelCircuit(kernelPublicOutput, callData);
|
|
161
|
+
const [privateInputs, publicInputs, artifact] = await this.runKernelCircuit(kernelPublicOutput, previousKernelArtifact, callData);
|
|
160
162
|
kernelPublicOutput = publicInputs;
|
|
163
|
+
previousKernelArtifact = artifact;
|
|
161
164
|
// Capture the inputs for later proving in the AVM and kernel.
|
|
162
165
|
const publicProvingInformation = {
|
|
163
166
|
functionName: result.functionName,
|
|
@@ -181,6 +184,7 @@ export class AbstractPhaseManager {
|
|
|
181
184
|
return {
|
|
182
185
|
publicProvingInformation: [],
|
|
183
186
|
kernelOutput: kernelPublicOutput,
|
|
187
|
+
lastKernelArtifact: previousKernelArtifact,
|
|
184
188
|
newUnencryptedLogs: [],
|
|
185
189
|
revertReason: result.revertReason,
|
|
186
190
|
returnValues: [],
|
|
@@ -196,6 +200,7 @@ export class AbstractPhaseManager {
|
|
|
196
200
|
return {
|
|
197
201
|
publicProvingInformation: provingInformationList,
|
|
198
202
|
kernelOutput: kernelPublicOutput,
|
|
203
|
+
lastKernelArtifact: previousKernelArtifact,
|
|
199
204
|
newUnencryptedLogs: newUnencryptedFunctionLogs,
|
|
200
205
|
returnValues: enqueuedCallResults,
|
|
201
206
|
gasUsed,
|
|
@@ -214,34 +219,42 @@ export class AbstractPhaseManager {
|
|
|
214
219
|
getTransactionFee(_tx, _previousPublicKernelOutput) {
|
|
215
220
|
return Fr.ZERO;
|
|
216
221
|
}
|
|
217
|
-
async runKernelCircuit(previousOutput, callData) {
|
|
218
|
-
const previousKernel = this.getPreviousKernelData(previousOutput);
|
|
222
|
+
async runKernelCircuit(previousOutput, previousCircuit, callData) {
|
|
223
|
+
const previousKernel = this.getPreviousKernelData(previousOutput, previousCircuit);
|
|
219
224
|
// We take a deep copy (clone) of these inputs to be passed to the prover
|
|
220
225
|
const inputs = new PublicKernelCircuitPrivateInputs(previousKernel, callData);
|
|
221
226
|
switch (this.phase) {
|
|
222
227
|
case PublicKernelType.SETUP:
|
|
223
|
-
return [inputs.clone(), await this.publicKernel.publicKernelCircuitSetup(inputs)];
|
|
228
|
+
return [inputs.clone(), await this.publicKernel.publicKernelCircuitSetup(inputs), 'PublicKernelSetupArtifact'];
|
|
224
229
|
case PublicKernelType.APP_LOGIC:
|
|
225
|
-
return [
|
|
230
|
+
return [
|
|
231
|
+
inputs.clone(),
|
|
232
|
+
await this.publicKernel.publicKernelCircuitAppLogic(inputs),
|
|
233
|
+
'PublicKernelAppLogicArtifact',
|
|
234
|
+
];
|
|
226
235
|
case PublicKernelType.TEARDOWN:
|
|
227
|
-
return [
|
|
236
|
+
return [
|
|
237
|
+
inputs.clone(),
|
|
238
|
+
await this.publicKernel.publicKernelCircuitTeardown(inputs),
|
|
239
|
+
'PublicKernelTeardownArtifact',
|
|
240
|
+
];
|
|
228
241
|
default:
|
|
229
242
|
throw new Error(`No public kernel circuit for inputs`);
|
|
230
243
|
}
|
|
231
244
|
}
|
|
232
|
-
getPreviousKernelData(previousOutput) {
|
|
233
|
-
// The proof
|
|
234
|
-
const vk = VerificationKeyData.makeFake();
|
|
245
|
+
getPreviousKernelData(previousOutput, previousCircuit) {
|
|
246
|
+
// The proof is not used in simulation
|
|
235
247
|
const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
|
|
236
|
-
const
|
|
237
|
-
const
|
|
238
|
-
|
|
248
|
+
const vk = ProtocolCircuitVks[previousCircuit];
|
|
249
|
+
const vkIndex = ProtocolCircuitVkIndexes[previousCircuit];
|
|
250
|
+
const leafIndex = getVKIndex(vk);
|
|
251
|
+
return new PublicKernelData(previousOutput, proof, vk, vkIndex, getVKSiblingPath(leafIndex));
|
|
239
252
|
}
|
|
240
253
|
async getPublicCallStackItem(result, isExecutionRequest = false) {
|
|
241
254
|
const publicDataTreeInfo = await this.db.getTreeInfo(MerkleTreeId.PUBLIC_DATA_TREE);
|
|
242
255
|
this.historicalHeader.state.partial.publicDataTree.root = Fr.fromBuffer(publicDataTreeInfo.root);
|
|
243
256
|
const callStackPreimages = await this.getPublicCallStackPreimages(result);
|
|
244
|
-
const publicCallStackHashes = padArrayEnd(callStackPreimages.map(c => c.hash()), Fr.ZERO, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL);
|
|
257
|
+
const publicCallStackHashes = padArrayEnd(callStackPreimages.map(c => c.getCompressed().hash()), Fr.ZERO, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL);
|
|
245
258
|
const publicCircuitPublicInputs = PublicCircuitPublicInputs.from({
|
|
246
259
|
callContext: result.executionRequest.callContext,
|
|
247
260
|
proverAddress: AztecAddress.ZERO,
|
|
@@ -336,4 +349,4 @@ export class AbstractPhaseManager {
|
|
|
336
349
|
return new PublicCallData(callStackItem, publicCallStack, makeEmptyProof(), bytecodeHash);
|
|
337
350
|
}
|
|
338
351
|
}
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RfcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvYWJzdHJhY3RfcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUVYLFlBQVksRUFHWixnQkFBZ0IsR0FLakIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLEVBQUUsRUFDRixZQUFZLEVBQ1osR0FBRyxFQUlILGFBQWEsRUFDYixPQUFPLEVBQ1AsdUNBQXVDLEVBQ3ZDLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUN2QixpREFBaUQsRUFDakQsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyw4QkFBOEIsRUFDOUIsd0NBQXdDLEVBQ3hDLDZCQUE2QixFQUM3QixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLFFBQVEsRUFDUixTQUFTLEVBQ1QsY0FBYyxFQUVkLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZ0NBQWdDLEVBRWhDLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsVUFBVSxFQUNWLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUlMLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbEQsTUFB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
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RfcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvYWJzdHJhY3RfcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUVYLFlBQVksRUFHWixnQkFBZ0IsR0FLakIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLEVBQUUsRUFDRixZQUFZLEVBQ1osR0FBRyxFQUlILGFBQWEsRUFDYixPQUFPLEVBQ1AsdUNBQXVDLEVBQ3ZDLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUN2QixpREFBaUQsRUFDakQsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyw4QkFBOEIsRUFDOUIsd0NBQXdDLEVBQ3hDLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsUUFBUSxFQUNSLFNBQVMsRUFDVCxjQUFjLEVBRWQsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFFaEMsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFJTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEdBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFHMUIs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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PublicKernelType, type PublicProvingRequest, type Tx } from '@aztec/circuit-types';
|
|
2
2
|
import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
+
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
3
4
|
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
5
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
6
|
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
@@ -12,9 +13,10 @@ export declare class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
|
12
13
|
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
13
14
|
protected publicStateDB: PublicStateDB;
|
|
14
15
|
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelType);
|
|
15
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Promise<{
|
|
16
|
+
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): Promise<{
|
|
16
17
|
publicProvingRequests: PublicProvingRequest[];
|
|
17
18
|
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
19
|
+
lastKernelArtifact: ProtocolArtifact;
|
|
18
20
|
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
19
21
|
returnValues: import("@aztec/circuit-types").NestedProcessReturnValues[];
|
|
20
22
|
gasUsed: import("@aztec/circuits.js").Gas | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_logic_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/app_logic_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAO1D,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;gBANtC,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtC,KAAK,GAAE,gBAA6C;IAKvC,MAAM,
|
|
1
|
+
{"version":3,"file":"app_logic_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/app_logic_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAO1D,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;gBANtC,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtC,KAAK,GAAE,gBAA6C;IAKvC,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,eAAe,EAAE,gBAAgB;;;;;;;;CAkDpC"}
|
|
@@ -9,7 +9,7 @@ export class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
|
9
9
|
this.publicContractsDB = publicContractsDB;
|
|
10
10
|
this.publicStateDB = publicStateDB;
|
|
11
11
|
}
|
|
12
|
-
async handle(tx, previousPublicKernelOutput) {
|
|
12
|
+
async handle(tx, previousPublicKernelOutput, previousCircuit) {
|
|
13
13
|
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
14
14
|
// add new contracts to the contracts db so that their functions may be found and called
|
|
15
15
|
// TODO(#4073): This is catching only private deployments, when we add public ones, we'll
|
|
@@ -18,7 +18,7 @@ export class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
|
18
18
|
// TODO(#6464): Should we allow emitting contracts in the private setup phase?
|
|
19
19
|
// if so, this should only add contracts that were deployed during private app logic.
|
|
20
20
|
await this.publicContractsDB.addNewContracts(tx);
|
|
21
|
-
const { publicProvingInformation, kernelOutput, newUnencryptedLogs, revertReason, returnValues, gasUsed } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput).catch(
|
|
21
|
+
const { publicProvingInformation, kernelOutput, lastKernelArtifact, newUnencryptedLogs, revertReason, returnValues, gasUsed, } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousCircuit).catch(
|
|
22
22
|
// if we throw for any reason other than simulation, we need to rollback and drop the TX
|
|
23
23
|
async (err) => {
|
|
24
24
|
await this.publicStateDB.rollbackToCommit();
|
|
@@ -39,7 +39,14 @@ export class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
|
39
39
|
const publicProvingRequests = publicProvingInformation.map(info => {
|
|
40
40
|
return makeAvmProvingRequest(info, PublicKernelType.APP_LOGIC);
|
|
41
41
|
});
|
|
42
|
-
return {
|
|
42
|
+
return {
|
|
43
|
+
publicProvingRequests,
|
|
44
|
+
publicKernelOutput: kernelOutput,
|
|
45
|
+
lastKernelArtifact,
|
|
46
|
+
revertReason,
|
|
47
|
+
returnValues,
|
|
48
|
+
gasUsed,
|
|
49
|
+
};
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX2xvZ2ljX3BoYXNlX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2FwcF9sb2dpY19waGFzZV9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBc0MsTUFBTSxzQkFBc0IsQ0FBQztBQU01RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMEIsZ0JBQWdCLENBQUMsU0FBUztRQUVwRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEVBQU0sRUFDTiwwQkFBMkQsRUFDM0QsZUFBaUM7UUFFakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsd0ZBQXdGO1FBQ3hGLHlGQUF5RjtRQUN6RiwyREFBMkQ7UUFDM0Qsc0ZBQXNGO1FBQ3RGLDhFQUE4RTtRQUM5RSxxRkFBcUY7UUFDckYsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFDSix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFlBQVksRUFDWixPQUFPLEdBQ1IsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsZUFBZSxDQUFDLENBQUMsS0FBSztRQUM5Rix3RkFBd0Y7UUFDeEYsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsOEVBQThFO1lBQzlFLDhEQUE4RDtZQUM5RCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNoRCxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZELDZGQUE2RjtRQUMvRixDQUFDO1FBRUQsOENBQThDO1FBQzlDLE1BQU0scUJBQXFCLEdBQTJCLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RixPQUFPLHFCQUFxQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxxQkFBcUI7WUFDckIsa0JBQWtCLEVBQUUsWUFBWTtZQUNoQyxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLFlBQVk7WUFDWixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/public/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUhH,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGzF;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,eAAe,EAAE,aAAa,EAC9B,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGjC,MAAM,CAAC,QAAQ,CAAC,GAAG,yCAAwD;IAE3E;;;;;;;;;;OAUG;IACU,QAAQ,CACnB,gBAAgB,EAAE,sBAAsB,EACxC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,GAAG,EACjB,UAAU,EAAE,SAAS,EACrB,uBAAuB,EAAE,SAAS,EAAE,EACpC,cAAc,GAAE,EAAY,EAC5B,sBAAsB,GAAE,MAAU,GACjC,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/public/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUhH,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGzF;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,eAAe,EAAE,aAAa,EAC9B,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGjC,MAAM,CAAC,QAAQ,CAAC,GAAG,yCAAwD;IAE3E;;;;;;;;;;OAUG;IACU,QAAQ,CACnB,gBAAgB,EAAE,sBAAsB,EACxC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,GAAG,EACjB,UAAU,EAAE,SAAS,EACrB,uBAAuB,EAAE,SAAS,EAAE,EACpC,cAAc,GAAE,EAAY,EAC5B,sBAAsB,GAAE,MAAU,GACjC,OAAO,CAAC,qBAAqB,CAAC;CA0DlC"}
|
package/dest/public/executor.js
CHANGED
|
@@ -57,8 +57,7 @@ export class PublicExecutor {
|
|
|
57
57
|
});
|
|
58
58
|
const publicExecutionResult = trace.toPublicExecutionResult(avmExecutionEnv,
|
|
59
59
|
/*startGasLeft=*/ availableGas,
|
|
60
|
-
/*endGasLeft=*/ Gas.from(avmContext.machineState.gasLeft), bytecode, avmResult, fnName
|
|
61
|
-
/*requestSideEffectCounter=*/ executionRequest.callContext.sideEffectCounter);
|
|
60
|
+
/*endGasLeft=*/ Gas.from(avmContext.machineState.gasLeft), bytecode, avmResult, fnName);
|
|
62
61
|
return publicExecutionResult;
|
|
63
62
|
}
|
|
64
63
|
}
|
|
@@ -74,4 +73,4 @@ function createAvmExecutionEnvironment(executionRequest, header, globalVariables
|
|
|
74
73
|
return new AvmExecutionEnvironment(executionRequest.contractAddress, executionRequest.callContext.storageContractAddress, executionRequest.callContext.msgSender, executionRequest.functionSelector,
|
|
75
74
|
/*contractCallDepth=*/ Fr.zero(), transactionFee, header, globalVariables, executionRequest.callContext.isStaticCall, executionRequest.callContext.isDelegateCall, executionRequest.args);
|
|
76
75
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFxRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNtQixlQUE4QixFQUM5QixXQUE4QixFQUM5QixhQUE0QixFQUM1QixNQUFjO1FBSGQsb0JBQWUsR0FBZixlQUFlLENBQWU7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDOUIsQ0FBQztJQUlKOzs7Ozs7Ozs7O09BVUc7SUFDSSxLQUFLLENBQUMsUUFBUSxDQUNuQixnQkFBd0MsRUFDeEMsZUFBZ0MsRUFDaEMsWUFBaUIsRUFDakIsVUFBcUIsRUFDckIsdUJBQW9DLEVBQ3BDLGlCQUFxQixFQUFFLENBQUMsSUFBSSxFQUM1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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EAC1C,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EAC1C,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,gCAAiC,YAAW,4BAA4B;IAMvE,OAAO,CAAC,SAAS;IAL7B,OAAO,CAAC,GAAG,CAAsD;IAGjE,OAAO,CAAC,aAAa,CAAsC;gBAEvC,SAAS,EAAE,kBAAkB;IAEjD;;;;OAIG;IACU,wBAAwB,CACnC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,uBAAuB,CAClC,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,yBAAyB,CAAC;CAetC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { elapsed } from '@aztec/foundation/timer';
|
|
3
|
-
import {
|
|
3
|
+
import { SimulatedServerCircuitArtifacts, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap, convertSimulatedPublicSetupInputsToWitnessMap, convertSimulatedPublicSetupOutputFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, convertSimulatedPublicTeardownInputsToWitnessMap, convertSimulatedPublicTeardownOutputFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
|
|
4
4
|
import { WASMSimulator } from '../providers/acvm_wasm.js';
|
|
5
5
|
/**
|
|
6
6
|
* Implements the PublicKernelCircuitSimulator.
|
|
@@ -22,7 +22,7 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
22
22
|
throw new Error(`Expected previous kernel inputs to need setup`);
|
|
23
23
|
}
|
|
24
24
|
const inputWitness = convertSimulatedPublicSetupInputsToWitnessMap(input);
|
|
25
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness,
|
|
25
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelSetupArtifact));
|
|
26
26
|
const result = convertSimulatedPublicSetupOutputFromWitnessMap(witness);
|
|
27
27
|
this.log.debug(`Simulated public kernel setup circuit`, {
|
|
28
28
|
eventName: 'circuit-simulation',
|
|
@@ -43,7 +43,7 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
43
43
|
throw new Error(`Expected previous kernel inputs to need app logic`);
|
|
44
44
|
}
|
|
45
45
|
const inputWitness = convertSimulatedPublicInnerInputsToWitnessMap(input);
|
|
46
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness,
|
|
46
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelAppLogicArtifact));
|
|
47
47
|
const result = convertSimulatedPublicInnerOutputFromWitnessMap(witness);
|
|
48
48
|
this.log.debug(`Simulated public kernel app logic circuit`, {
|
|
49
49
|
eventName: 'circuit-simulation',
|
|
@@ -64,7 +64,7 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
64
64
|
throw new Error(`Expected previous kernel inputs to need teardown`);
|
|
65
65
|
}
|
|
66
66
|
const inputWitness = convertSimulatedPublicTeardownInputsToWitnessMap(input);
|
|
67
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness,
|
|
67
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelTeardownArtifact));
|
|
68
68
|
const result = convertSimulatedPublicTeardownOutputFromWitnessMap(witness);
|
|
69
69
|
this.log.debug(`Simulated public kernel teardown circuit`, {
|
|
70
70
|
eventName: 'circuit-simulation',
|
|
@@ -82,7 +82,7 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
82
82
|
*/
|
|
83
83
|
async publicKernelCircuitTail(input) {
|
|
84
84
|
const inputWitness = convertSimulatedPublicTailInputsToWitnessMap(input);
|
|
85
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness,
|
|
85
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelTailArtifact));
|
|
86
86
|
const result = convertSimulatedPublicTailOutputFromWitnessMap(witness);
|
|
87
87
|
this.log.debug(`Simulated public kernel tail circuit`, {
|
|
88
88
|
eventName: 'circuit-simulation',
|
|
@@ -94,4 +94,4 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
94
94
|
return result;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLCtCQUErQixFQUMvQiw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLDZDQUE2QyxFQUM3QywrQ0FBK0MsRUFDL0MsNENBQTRDLEVBQzVDLDhDQUE4QyxFQUM5QyxnREFBZ0QsRUFDaEQsa0RBQWtELEdBQ25ELE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdDQUFnQztJQU0zQyxZQUFvQixTQUE2QjtRQUE3QixjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUx6QyxRQUFHLEdBQUcsaUJBQWlCLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUVqRSxzREFBc0Q7UUFDOUMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUVQLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyx3QkFBd0IsQ0FDbkMsS0FBdUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsNkNBQTZDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,yBAAyB,EACzB,KAAK,WAAW,EAIhB,EAAE,EACF,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,MAAM,EAKZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,yBAAyB,EACzB,KAAK,WAAW,EAIhB,EAAE,EACF,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,MAAM,EAKZ,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,OAAO,EAAE,2BAA2B,EAAoC,MAAM,wBAAwB,CAAC;AAEvG,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,eAAe;gBAHf,UAAU,EAAE,oBAAoB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,kBAAkB,EAC7B,eAAe,EAAE,eAAe;IAG1C;;;;;;OAMG;IACU,MAAM,CACjB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,eAAe,CAAC;CAkB5B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAGxB,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;IAEtC,OAAO,CAAC,GAAG;IAVb,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtC,eAAe,EAAE,eAAe,EACxB,GAAG,yCAAwD;IAKrE;;;;OAIG;IACU,OAAO,CAClB,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,SAAa,EAC5B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAwDpE;;;;;OAKG;YACW,6BAA6B;YA4C7B,wBAAwB;CAkDvC"}
|
|
@@ -147,17 +147,19 @@ let PublicProcessor = (() => {
|
|
|
147
147
|
let phase = PhaseManagerFactory.phaseFromTx(tx, this.db, this.publicExecutor, this.publicKernel, this.globalVariables, this.historicalHeader, this.publicContractsDB, this.publicStateDB);
|
|
148
148
|
this.log.debug(`Beginning processing in phase ${phase?.phase} for tx ${tx.getTxHash()}`);
|
|
149
149
|
let publicKernelPublicInput = tx.data.toPublicKernelCircuitPublicInputs();
|
|
150
|
+
let lastKernelArtifact = 'PrivateKernelTailToPublicArtifact'; // All txs with public calls must carry tail to public proofs
|
|
150
151
|
let finalKernelOutput;
|
|
151
152
|
let revertReason;
|
|
152
153
|
const gasUsed = {};
|
|
153
154
|
while (phase) {
|
|
154
|
-
const output = await phase.handle(tx, publicKernelPublicInput);
|
|
155
|
+
const output = await phase.handle(tx, publicKernelPublicInput, lastKernelArtifact);
|
|
155
156
|
gasUsed[phase.phase] = output.gasUsed;
|
|
156
157
|
if (phase.phase === PublicKernelType.APP_LOGIC) {
|
|
157
158
|
returnValues = output.returnValues;
|
|
158
159
|
}
|
|
159
160
|
publicProvingRequests.push(...output.publicProvingRequests);
|
|
160
161
|
publicKernelPublicInput = output.publicKernelOutput;
|
|
162
|
+
lastKernelArtifact = output.lastKernelArtifact;
|
|
161
163
|
finalKernelOutput = output.finalKernelOutput;
|
|
162
164
|
revertReason ?? (revertReason = output.revertReason);
|
|
163
165
|
phase = PhaseManagerFactory.phaseFromOutput(publicKernelPublicInput, phase, this.db, this.publicExecutor, this.publicKernel, this.globalVariables, this.historicalHeader, this.publicContractsDB, this.publicStateDB);
|
|
@@ -180,4 +182,4 @@ let PublicProcessor = (() => {
|
|
|
180
182
|
_a;
|
|
181
183
|
})();
|
|
182
184
|
export { PublicProcessor };
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLHlCQUF5QixFQUV6QixnQkFBZ0IsRUFHaEIsRUFBRSxFQUVGLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGlCQUFpQixFQUlqQixzQ0FBc0MsRUFDdEMsMkNBQTJDLEVBQzNDLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsY0FBYyxFQUdkLDhCQUE4QixFQUM5QixpQ0FBaUMsR0FDbEMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUtuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1UsVUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLFNBQTZCLEVBQzdCLGVBQWdDO1FBSGhDLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDN0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PublicKernelType, type PublicProvingRequest, type Tx } from '@aztec/circuit-types';
|
|
2
2
|
import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
+
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
3
4
|
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
5
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
6
|
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
@@ -12,9 +13,10 @@ export declare class SetupPhaseManager extends AbstractPhaseManager {
|
|
|
12
13
|
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
13
14
|
protected publicStateDB: PublicStateDB;
|
|
14
15
|
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelType);
|
|
15
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Promise<{
|
|
16
|
+
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): Promise<{
|
|
16
17
|
publicProvingRequests: PublicProvingRequest[];
|
|
17
18
|
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
19
|
+
lastKernelArtifact: ProtocolArtifact;
|
|
18
20
|
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
19
21
|
returnValues: never[];
|
|
20
22
|
gasUsed: import("@aztec/circuits.js").Gas | undefined;
|