@aztec/simulator 0.55.0 → 0.56.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/avm/avm_execution_environment.d.ts +0 -8
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +1 -19
- 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 -115
- 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 +35 -7
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +25 -11
- 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/fixtures/index.d.ts +4 -16
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +9 -25
- 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 +4 -4
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +14 -13
- 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 +17 -11
- package/dest/avm/opcodes/commitment.js +2 -2
- package/dest/avm/opcodes/comparators.js +2 -2
- 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 +18 -11
- 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 +75 -80
- package/dest/avm/opcodes/hashing.d.ts +7 -5
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +40 -24
- 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_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 +7 -2
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +23 -6
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
- package/dest/avm/opcodes/multi_scalar_mul.js +7 -6
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +5 -24
- package/dest/avm/serialization/instruction_serialization.d.ts +48 -60
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +50 -63
- 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/simulator.d.ts +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/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 +155 -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 +4 -9
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +5 -10
- package/dest/public/executor.d.ts +3 -5
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +5 -9
- 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 +4 -4
- 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 +8 -5
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +31 -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_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +4 -8
- package/package.json +9 -9
- package/src/avm/avm_execution_environment.ts +1 -21
- package/src/avm/avm_gas.ts +30 -114
- package/src/avm/avm_machine_state.ts +5 -5
- package/src/avm/avm_memory_types.ts +31 -9
- package/src/avm/avm_simulator.ts +4 -5
- package/src/avm/bytecode_utils.ts +2 -17
- package/src/avm/fixtures/index.ts +12 -44
- package/src/avm/journal/index.ts +0 -1
- package/src/avm/journal/journal.ts +13 -18
- package/src/avm/opcodes/bitwise.ts +14 -10
- package/src/avm/opcodes/commitment.ts +1 -1
- package/src/avm/opcodes/comparators.ts +2 -2
- package/src/avm/opcodes/conversion.ts +19 -10
- package/src/avm/opcodes/environment_getters.ts +72 -99
- package/src/avm/opcodes/hashing.ts +47 -22
- package/src/avm/opcodes/index.ts +3 -0
- package/src/avm/opcodes/instruction_impl.ts +0 -62
- package/src/avm/opcodes/memory.ts +20 -6
- package/src/avm/opcodes/multi_scalar_mul.ts +6 -6
- package/src/avm/serialization/bytecode_serialization.ts +11 -33
- package/src/avm/serialization/instruction_serialization.ts +5 -18
- package/src/avm/test_utils.ts +20 -16
- package/src/client/test_utils.ts +36 -9
- package/src/client/unconstrained_execution.ts +3 -8
- package/src/public/enqueued_call_simulator.ts +336 -0
- package/src/public/enqueued_calls_processor.ts +388 -0
- package/src/public/execution.ts +5 -12
- package/src/public/executor.ts +4 -12
- package/src/public/hints_builder.ts +14 -12
- 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 +61 -86
- package/src/public/public_processor_metrics.ts +3 -3
- package/src/public/side_effect_trace.ts +5 -12
- 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/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/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,285 +0,0 @@
|
|
|
1
|
-
import { AVM_REQUEST, MerkleTreeId, PublicKernelType, } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecAddress, 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, PublicCallRequest, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelCircuitPrivateInputs, PublicKernelData, ReadRequest, RevertCode, TreeLeafReadRequest, makeEmptyProof, makeEmptyRecursiveProof, } from '@aztec/circuits.js';
|
|
3
|
-
import { computeVarArgsHash } from '@aztec/circuits.js/hash';
|
|
4
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
6
|
-
import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, getVKIndex, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
|
|
7
|
-
import { accumulateReturnValues, isPublicExecutionResult, } from '@aztec/simulator';
|
|
8
|
-
import { HintsBuilder } from './hints_builder.js';
|
|
9
|
-
export const PhaseIsRevertible = {
|
|
10
|
-
[PublicKernelType.NON_PUBLIC]: false,
|
|
11
|
-
[PublicKernelType.SETUP]: false,
|
|
12
|
-
[PublicKernelType.APP_LOGIC]: true,
|
|
13
|
-
[PublicKernelType.TEARDOWN]: true,
|
|
14
|
-
[PublicKernelType.TAIL]: false,
|
|
15
|
-
};
|
|
16
|
-
export function makeAvmProvingRequest(info, kernelType) {
|
|
17
|
-
return {
|
|
18
|
-
type: AVM_REQUEST,
|
|
19
|
-
functionName: info.functionName,
|
|
20
|
-
bytecode: info.bytecode,
|
|
21
|
-
calldata: info.calldata,
|
|
22
|
-
avmHints: info.avmHints,
|
|
23
|
-
kernelRequest: {
|
|
24
|
-
type: kernelType,
|
|
25
|
-
inputs: info.inputs,
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export class AbstractPhaseManager {
|
|
30
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase) {
|
|
31
|
-
this.db = db;
|
|
32
|
-
this.publicExecutor = publicExecutor;
|
|
33
|
-
this.publicKernel = publicKernel;
|
|
34
|
-
this.globalVariables = globalVariables;
|
|
35
|
-
this.historicalHeader = historicalHeader;
|
|
36
|
-
this.phase = phase;
|
|
37
|
-
this.hintsBuilder = new HintsBuilder(db);
|
|
38
|
-
this.log = createDebugLogger(`aztec:sequencer:${phase}`);
|
|
39
|
-
}
|
|
40
|
-
static extractEnqueuedPublicCallsByPhase(tx) {
|
|
41
|
-
const teardownRequest = tx.getPublicTeardownExecutionRequest();
|
|
42
|
-
return {
|
|
43
|
-
[PublicKernelType.NON_PUBLIC]: [],
|
|
44
|
-
[PublicKernelType.SETUP]: tx.getNonRevertiblePublicExecutionRequests(),
|
|
45
|
-
[PublicKernelType.APP_LOGIC]: tx.getRevertiblePublicExecutionRequests(),
|
|
46
|
-
[PublicKernelType.TEARDOWN]: teardownRequest ? [teardownRequest] : [],
|
|
47
|
-
[PublicKernelType.TAIL]: [],
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
extractEnqueuedPublicCalls(tx) {
|
|
51
|
-
const calls = AbstractPhaseManager.extractEnqueuedPublicCallsByPhase(tx)[this.phase];
|
|
52
|
-
return calls;
|
|
53
|
-
}
|
|
54
|
-
async processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousKernelArtifact) {
|
|
55
|
-
const enqueuedCalls = [...this.extractEnqueuedPublicCalls(tx)].reverse();
|
|
56
|
-
if (!enqueuedCalls || !enqueuedCalls.length) {
|
|
57
|
-
return {
|
|
58
|
-
publicProvingInformation: [],
|
|
59
|
-
kernelOutput: previousPublicKernelOutput,
|
|
60
|
-
lastKernelArtifact: previousKernelArtifact,
|
|
61
|
-
newUnencryptedLogs: [],
|
|
62
|
-
returnValues: [],
|
|
63
|
-
gasUsed: Gas.empty(),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
// TODO(#1684): Should multiple separately enqueued public calls be treated as
|
|
67
|
-
// separate public callstacks to be proven by separate public kernel sequences
|
|
68
|
-
// and submitted separately to the base rollup?
|
|
69
|
-
const provingInformationList = [];
|
|
70
|
-
const newUnencryptedFunctionLogs = [];
|
|
71
|
-
// Transaction fee is zero for all phases except teardown
|
|
72
|
-
const transactionFee = this.getTransactionFee(tx, previousPublicKernelOutput);
|
|
73
|
-
let gasUsed = Gas.empty();
|
|
74
|
-
let kernelPublicOutput = previousPublicKernelOutput;
|
|
75
|
-
const enqueuedCallResults = [];
|
|
76
|
-
for (const enqueuedCall of enqueuedCalls) {
|
|
77
|
-
const executionStack = [enqueuedCall];
|
|
78
|
-
// Keep track of which result is for the top/enqueued call
|
|
79
|
-
let enqueuedExecutionResult;
|
|
80
|
-
while (executionStack.length) {
|
|
81
|
-
const current = executionStack.pop();
|
|
82
|
-
const isExecutionRequest = !isPublicExecutionResult(current);
|
|
83
|
-
const result = isExecutionRequest
|
|
84
|
-
? await this.publicExecutor.simulate(
|
|
85
|
-
/*executionRequest=*/ current, this.globalVariables,
|
|
86
|
-
/*availableGas=*/ this.getAvailableGas(tx, kernelPublicOutput), tx.data.constants.txContext,
|
|
87
|
-
/*pendingNullifiers=*/ this.getSiloedPendingNullifiers(kernelPublicOutput), transactionFee,
|
|
88
|
-
/*startSideEffectCounter=*/ AbstractPhaseManager.getMaxSideEffectCounter(kernelPublicOutput) + 1)
|
|
89
|
-
: current;
|
|
90
|
-
// Accumulate gas used in this execution
|
|
91
|
-
gasUsed = gasUsed.add(Gas.from(result.startGasLeft).sub(Gas.from(result.endGasLeft)));
|
|
92
|
-
// Sanity check for a current upstream assumption.
|
|
93
|
-
// Consumers of the result seem to expect "reverted <=> revertReason !== undefined".
|
|
94
|
-
const functionSelector = result.executionRequest.callContext.functionSelector.toString();
|
|
95
|
-
if (result.reverted && !result.revertReason) {
|
|
96
|
-
throw new Error(`Simulation of ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}) reverted with no reason.`);
|
|
97
|
-
}
|
|
98
|
-
if (result.reverted && !PhaseIsRevertible[this.phase]) {
|
|
99
|
-
this.log.debug(`Simulation error on ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}) with reason: ${result.revertReason}`);
|
|
100
|
-
throw result.revertReason;
|
|
101
|
-
}
|
|
102
|
-
if (isExecutionRequest) {
|
|
103
|
-
newUnencryptedFunctionLogs.push(result.allUnencryptedLogs);
|
|
104
|
-
}
|
|
105
|
-
executionStack.push(...result.nestedExecutions);
|
|
106
|
-
// Simulate the public kernel circuit.
|
|
107
|
-
this.log.debug(`Running public kernel circuit for ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName})`);
|
|
108
|
-
const callData = await this.getPublicCallData(result, isExecutionRequest);
|
|
109
|
-
const [privateInputs, publicInputs, artifact] = await this.runKernelCircuit(kernelPublicOutput, previousKernelArtifact, callData);
|
|
110
|
-
kernelPublicOutput = publicInputs;
|
|
111
|
-
previousKernelArtifact = artifact;
|
|
112
|
-
// Capture the inputs for later proving in the AVM and kernel.
|
|
113
|
-
const publicProvingInformation = {
|
|
114
|
-
functionName: result.functionName,
|
|
115
|
-
calldata: result.calldata,
|
|
116
|
-
bytecode: result.bytecode,
|
|
117
|
-
inputs: privateInputs,
|
|
118
|
-
avmHints: result.avmCircuitHints,
|
|
119
|
-
};
|
|
120
|
-
provingInformationList.push(publicProvingInformation);
|
|
121
|
-
// Sanity check: Note we can't expect them to just be equal, because e.g.
|
|
122
|
-
// if the simulator reverts in app logic, it "resets" and result.reverted will be false when we run teardown,
|
|
123
|
-
// but the kernel carries the reverted flag forward. But if the simulator reverts, so should the kernel.
|
|
124
|
-
if (result.reverted && kernelPublicOutput.revertCode.isOK()) {
|
|
125
|
-
throw new Error(`Public kernel circuit did not revert on ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}), but simulator did.`);
|
|
126
|
-
}
|
|
127
|
-
// We know the phase is revertible due to the above check.
|
|
128
|
-
// So safely return the revert reason and the kernel output (which has had its revertible side effects dropped)
|
|
129
|
-
if (result.reverted) {
|
|
130
|
-
this.log.debug(`Reverting on ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}) with reason: ${result.revertReason}`);
|
|
131
|
-
// TODO(@spalladino): Check gasUsed is correct. The AVM should take care of setting gasLeft to zero upon a revert.
|
|
132
|
-
return {
|
|
133
|
-
publicProvingInformation: [],
|
|
134
|
-
kernelOutput: kernelPublicOutput,
|
|
135
|
-
lastKernelArtifact: previousKernelArtifact,
|
|
136
|
-
newUnencryptedLogs: [],
|
|
137
|
-
revertReason: result.revertReason,
|
|
138
|
-
returnValues: [],
|
|
139
|
-
gasUsed,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
if (!enqueuedExecutionResult) {
|
|
143
|
-
enqueuedExecutionResult = result;
|
|
144
|
-
}
|
|
145
|
-
enqueuedCallResults.push(accumulateReturnValues(enqueuedExecutionResult));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
publicProvingInformation: provingInformationList,
|
|
150
|
-
kernelOutput: kernelPublicOutput,
|
|
151
|
-
lastKernelArtifact: previousKernelArtifact,
|
|
152
|
-
newUnencryptedLogs: newUnencryptedFunctionLogs,
|
|
153
|
-
returnValues: enqueuedCallResults,
|
|
154
|
-
gasUsed,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
/** Returns all pending private and public nullifiers. */
|
|
158
|
-
getSiloedPendingNullifiers(ko) {
|
|
159
|
-
return [...ko.end.nullifiers, ...ko.endNonRevertibleData.nullifiers].filter(n => !n.isEmpty());
|
|
160
|
-
}
|
|
161
|
-
getAvailableGas(tx, previousPublicKernelOutput) {
|
|
162
|
-
return tx.data.constants.txContext.gasSettings
|
|
163
|
-
.getLimits() // No need to subtract teardown limits since they are already included in end.gasUsed
|
|
164
|
-
.sub(previousPublicKernelOutput.end.gasUsed)
|
|
165
|
-
.sub(previousPublicKernelOutput.endNonRevertibleData.gasUsed);
|
|
166
|
-
}
|
|
167
|
-
getTransactionFee(_tx, _previousPublicKernelOutput) {
|
|
168
|
-
return Fr.ZERO;
|
|
169
|
-
}
|
|
170
|
-
async runKernelCircuit(previousOutput, previousCircuit, callData) {
|
|
171
|
-
const previousKernel = this.getPreviousKernelData(previousOutput, previousCircuit);
|
|
172
|
-
// We take a deep copy (clone) of these inputs to be passed to the prover
|
|
173
|
-
const inputs = new PublicKernelCircuitPrivateInputs(previousKernel, callData);
|
|
174
|
-
switch (this.phase) {
|
|
175
|
-
case PublicKernelType.SETUP:
|
|
176
|
-
return [inputs.clone(), await this.publicKernel.publicKernelCircuitSetup(inputs), 'PublicKernelSetupArtifact'];
|
|
177
|
-
case PublicKernelType.APP_LOGIC:
|
|
178
|
-
return [
|
|
179
|
-
inputs.clone(),
|
|
180
|
-
await this.publicKernel.publicKernelCircuitAppLogic(inputs),
|
|
181
|
-
'PublicKernelAppLogicArtifact',
|
|
182
|
-
];
|
|
183
|
-
case PublicKernelType.TEARDOWN:
|
|
184
|
-
return [
|
|
185
|
-
inputs.clone(),
|
|
186
|
-
await this.publicKernel.publicKernelCircuitTeardown(inputs),
|
|
187
|
-
'PublicKernelTeardownArtifact',
|
|
188
|
-
];
|
|
189
|
-
default:
|
|
190
|
-
throw new Error(`No public kernel circuit for inputs`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
getPreviousKernelData(previousOutput, previousCircuit) {
|
|
194
|
-
// The proof is not used in simulation
|
|
195
|
-
const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
|
|
196
|
-
const vk = ProtocolCircuitVks[previousCircuit];
|
|
197
|
-
const vkIndex = ProtocolCircuitVkIndexes[previousCircuit];
|
|
198
|
-
const leafIndex = getVKIndex(vk);
|
|
199
|
-
return new PublicKernelData(previousOutput, proof, vk, vkIndex, getVKSiblingPath(leafIndex));
|
|
200
|
-
}
|
|
201
|
-
async getPublicCallStackItem(result, isExecutionRequest = false) {
|
|
202
|
-
const publicDataTreeInfo = await this.db.getTreeInfo(MerkleTreeId.PUBLIC_DATA_TREE);
|
|
203
|
-
this.historicalHeader.state.partial.publicDataTree.root = Fr.fromBuffer(publicDataTreeInfo.root);
|
|
204
|
-
const publicCircuitPublicInputs = PublicCircuitPublicInputs.from({
|
|
205
|
-
callContext: result.executionRequest.callContext,
|
|
206
|
-
proverAddress: AztecAddress.ZERO,
|
|
207
|
-
argsHash: computeVarArgsHash(result.executionRequest.args),
|
|
208
|
-
noteHashes: padArrayEnd(result.noteHashes, NoteHash.empty(), MAX_NOTE_HASHES_PER_CALL),
|
|
209
|
-
nullifiers: padArrayEnd(result.nullifiers, Nullifier.empty(), MAX_NULLIFIERS_PER_CALL),
|
|
210
|
-
l2ToL1Msgs: padArrayEnd(result.l2ToL1Messages, L2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_CALL),
|
|
211
|
-
startSideEffectCounter: result.startSideEffectCounter,
|
|
212
|
-
endSideEffectCounter: result.endSideEffectCounter,
|
|
213
|
-
returnsHash: computeVarArgsHash(result.returnValues),
|
|
214
|
-
noteHashReadRequests: padArrayEnd(result.noteHashReadRequests, TreeLeafReadRequest.empty(), MAX_NOTE_HASH_READ_REQUESTS_PER_CALL),
|
|
215
|
-
nullifierReadRequests: padArrayEnd(result.nullifierReadRequests, ReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_CALL),
|
|
216
|
-
nullifierNonExistentReadRequests: padArrayEnd(result.nullifierNonExistentReadRequests, ReadRequest.empty(), MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL),
|
|
217
|
-
l1ToL2MsgReadRequests: padArrayEnd(result.l1ToL2MsgReadRequests, TreeLeafReadRequest.empty(), MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL),
|
|
218
|
-
contractStorageReads: padArrayEnd(result.contractStorageReads, ContractStorageRead.empty(), MAX_PUBLIC_DATA_READS_PER_CALL),
|
|
219
|
-
contractStorageUpdateRequests: padArrayEnd(result.contractStorageUpdateRequests, ContractStorageUpdateRequest.empty(), MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL),
|
|
220
|
-
publicCallRequests: padArrayEnd(result.publicCallRequests, PublicCallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL),
|
|
221
|
-
unencryptedLogsHashes: padArrayEnd(result.unencryptedLogsHashes, LogHash.empty(), MAX_UNENCRYPTED_LOGS_PER_CALL),
|
|
222
|
-
historicalHeader: this.historicalHeader,
|
|
223
|
-
globalVariables: this.globalVariables,
|
|
224
|
-
startGasLeft: Gas.from(result.startGasLeft),
|
|
225
|
-
endGasLeft: Gas.from(result.endGasLeft),
|
|
226
|
-
transactionFee: result.transactionFee,
|
|
227
|
-
// TODO(@just-mitch): need better mapping from simulator to revert code.
|
|
228
|
-
revertCode: result.reverted ? RevertCode.APP_LOGIC_REVERTED : RevertCode.OK,
|
|
229
|
-
});
|
|
230
|
-
return new PublicCallStackItem(result.executionRequest.contractAddress, new FunctionData(result.executionRequest.callContext.functionSelector, false), publicCircuitPublicInputs, isExecutionRequest);
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Looks at the side effects of a transaction and returns the highest counter
|
|
234
|
-
* @param tx - A transaction
|
|
235
|
-
* @returns The highest side effect counter in the transaction so far
|
|
236
|
-
*/
|
|
237
|
-
static getMaxSideEffectCounter(inputs) {
|
|
238
|
-
const sideEffectCounters = [
|
|
239
|
-
...inputs.endNonRevertibleData.noteHashes,
|
|
240
|
-
...inputs.endNonRevertibleData.nullifiers,
|
|
241
|
-
...inputs.endNonRevertibleData.noteEncryptedLogsHashes,
|
|
242
|
-
...inputs.endNonRevertibleData.encryptedLogsHashes,
|
|
243
|
-
...inputs.endNonRevertibleData.unencryptedLogsHashes,
|
|
244
|
-
...inputs.endNonRevertibleData.publicCallStack,
|
|
245
|
-
...inputs.endNonRevertibleData.publicDataUpdateRequests,
|
|
246
|
-
...inputs.end.noteHashes,
|
|
247
|
-
...inputs.end.nullifiers,
|
|
248
|
-
...inputs.end.noteEncryptedLogsHashes,
|
|
249
|
-
...inputs.end.encryptedLogsHashes,
|
|
250
|
-
...inputs.end.unencryptedLogsHashes,
|
|
251
|
-
...inputs.end.publicCallStack,
|
|
252
|
-
...inputs.end.publicDataUpdateRequests,
|
|
253
|
-
];
|
|
254
|
-
let max = 0;
|
|
255
|
-
for (const sideEffect of sideEffectCounters) {
|
|
256
|
-
if ('counter' in sideEffect) {
|
|
257
|
-
max = Math.max(max, sideEffect.counter);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
throw new Error('Unknown side effect type');
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return max;
|
|
264
|
-
}
|
|
265
|
-
getBytecodeHash(_result) {
|
|
266
|
-
// TODO: Determine how to calculate bytecode hash. Circuits just check it isn't zero for now.
|
|
267
|
-
// See https://github.com/AztecProtocol/aztec3-packages/issues/378
|
|
268
|
-
const bytecodeHash = new Fr(1n);
|
|
269
|
-
return Promise.resolve(bytecodeHash);
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Calculates the PublicCircuitOutput for this execution result along with its proof,
|
|
273
|
-
* and assembles a PublicCallData object from it.
|
|
274
|
-
* @param result - The execution result.
|
|
275
|
-
* @param preimages - The preimages of the callstack items.
|
|
276
|
-
* @param isExecutionRequest - Whether the current callstack item should be considered a public fn execution request.
|
|
277
|
-
* @returns A corresponding PublicCallData object.
|
|
278
|
-
*/
|
|
279
|
-
async getPublicCallData(result, isExecutionRequest = false) {
|
|
280
|
-
const bytecodeHash = await this.getBytecodeHash(result);
|
|
281
|
-
const callStackItem = await this.getPublicCallStackItem(result, isExecutionRequest);
|
|
282
|
-
return new PublicCallData(callStackItem, makeEmptyProof(), bytecodeHash);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RfcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvYWJzdHJhY3RfcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUVYLFlBQVksRUFJWixnQkFBZ0IsR0FLakIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsWUFBWSxFQUNaLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsRUFBRSxFQUNGLFlBQVksRUFDWixHQUFHLEVBSUgsYUFBYSxFQUNiLE9BQU8sRUFDUCx1Q0FBdUMsRUFDdkMsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMsdUJBQXVCLEVBQ3ZCLGlEQUFpRCxFQUNqRCxvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLDhCQUE4QixFQUM5Qix3Q0FBd0MsRUFDeEMsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixRQUFRLEVBQ1IsU0FBUyxFQUNULGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFFaEMsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCx1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixnQkFBZ0IsR0FDakIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBR0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUN4QixNQUFNLGtC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
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType, type PublicProvingRequest, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
4
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
5
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
6
|
-
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
7
|
-
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
8
|
-
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
9
|
-
/**
|
|
10
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
11
|
-
*/
|
|
12
|
-
export declare class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
13
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
14
|
-
protected publicStateDB: PublicStateDB;
|
|
15
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelType);
|
|
16
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): Promise<{
|
|
17
|
-
publicProvingRequests: PublicProvingRequest[];
|
|
18
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
19
|
-
lastKernelArtifact: ProtocolArtifact;
|
|
20
|
-
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
21
|
-
returnValues: import("@aztec/circuit-types").NestedProcessReturnValues[];
|
|
22
|
-
gasUsed: import("@aztec/circuits.js").Gas | undefined;
|
|
23
|
-
}>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=app_logic_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType } from '@aztec/circuit-types';
|
|
2
|
-
import { AbstractPhaseManager, makeAvmProvingRequest } from './abstract_phase_manager.js';
|
|
3
|
-
/**
|
|
4
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
5
|
-
*/
|
|
6
|
-
export class AppLogicPhaseManager extends AbstractPhaseManager {
|
|
7
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, phase = PublicKernelType.APP_LOGIC) {
|
|
8
|
-
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
9
|
-
this.publicContractsDB = publicContractsDB;
|
|
10
|
-
this.publicStateDB = publicStateDB;
|
|
11
|
-
}
|
|
12
|
-
async handle(tx, previousPublicKernelOutput, previousCircuit) {
|
|
13
|
-
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
14
|
-
// add new contracts to the contracts db so that their functions may be found and called
|
|
15
|
-
// TODO(#4073): This is catching only private deployments, when we add public ones, we'll
|
|
16
|
-
// have to capture contracts emitted in that phase as well.
|
|
17
|
-
// TODO(@spalladino): Should we allow emitting contracts in the fee preparation phase?
|
|
18
|
-
// TODO(#6464): Should we allow emitting contracts in the private setup phase?
|
|
19
|
-
// if so, this should only add contracts that were deployed during private app logic.
|
|
20
|
-
await this.publicContractsDB.addNewContracts(tx);
|
|
21
|
-
const { publicProvingInformation, kernelOutput, lastKernelArtifact, newUnencryptedLogs, revertReason, returnValues, gasUsed, } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousCircuit).catch(
|
|
22
|
-
// if we throw for any reason other than simulation, we need to rollback and drop the TX
|
|
23
|
-
async (err) => {
|
|
24
|
-
await this.publicStateDB.rollbackToCommit();
|
|
25
|
-
throw err;
|
|
26
|
-
});
|
|
27
|
-
if (revertReason) {
|
|
28
|
-
// TODO(#6464): Should we allow emitting contracts in the private setup phase?
|
|
29
|
-
// if so, this is removing contracts deployed in private setup
|
|
30
|
-
await this.publicContractsDB.removeNewContracts(tx);
|
|
31
|
-
await this.publicStateDB.rollbackToCheckpoint();
|
|
32
|
-
tx.filterRevertedLogs(kernelOutput);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
tx.unencryptedLogs.addFunctionLogs(newUnencryptedLogs);
|
|
36
|
-
// TODO(#6470): we should be adding contracts deployed in those logs to the publicContractsDB
|
|
37
|
-
}
|
|
38
|
-
// Return a list of app logic proving requests
|
|
39
|
-
const publicProvingRequests = publicProvingInformation.map(info => {
|
|
40
|
-
return makeAvmProvingRequest(info, PublicKernelType.APP_LOGIC);
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
publicProvingRequests,
|
|
44
|
-
publicKernelOutput: kernelOutput,
|
|
45
|
-
lastKernelArtifact,
|
|
46
|
-
revertReason,
|
|
47
|
-
returnValues,
|
|
48
|
-
gasUsed,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX2xvZ2ljX3BoYXNlX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2FwcF9sb2dpY19waGFzZV9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBc0MsTUFBTSxzQkFBc0IsQ0FBQztBQU01RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMEIsZ0JBQWdCLENBQUMsU0FBUztRQUVwRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEVBQU0sRUFDTiwwQkFBMkQsRUFDM0QsZUFBaUM7UUFFakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsd0ZBQXdGO1FBQ3hGLHlGQUF5RjtRQUN6RiwyREFBMkQ7UUFDM0Qsc0ZBQXNGO1FBQ3RGLDhFQUE4RTtRQUM5RSxxRkFBcUY7UUFDckYsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFDSix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFlBQVksRUFDWixPQUFPLEdBQ1IsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsZUFBZSxDQUFDLENBQUMsS0FBSztRQUM5Rix3RkFBd0Y7UUFDeEYsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsOEVBQThFO1lBQzlFLDhEQUE4RDtZQUM5RCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNoRCxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixFQUFFLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZELDZGQUE2RjtRQUMvRixDQUFDO1FBRUQsOENBQThDO1FBQzlDLE1BQU0scUJBQXFCLEdBQTJCLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RixPQUFPLHFCQUFxQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxxQkFBcUI7WUFDckIsa0JBQWtCLEVBQUUsWUFBWTtZQUNoQyxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLFlBQVk7WUFDWixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
|
-
import { type AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
6
|
-
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
7
|
-
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
8
|
-
export declare class PhaseDidNotChangeError extends Error {
|
|
9
|
-
constructor(phase: PublicKernelType);
|
|
10
|
-
}
|
|
11
|
-
export declare class CannotTransitionToSetupError extends Error {
|
|
12
|
-
constructor();
|
|
13
|
-
}
|
|
14
|
-
export declare class PhaseManagerFactory {
|
|
15
|
-
static phaseFromTx(tx: Tx, db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB): AbstractPhaseManager | undefined;
|
|
16
|
-
static phaseFromOutput(output: PublicKernelCircuitPublicInputs, currentPhaseManager: AbstractPhaseManager, db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB): AbstractPhaseManager | undefined;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=phase_manager_factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phase_manager_factory.d.ts","sourceRoot":"","sources":["../../src/public/phase_manager_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACjE,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,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAKzF,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,KAAK,EAAE,gBAAgB;CAGpC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;;CAItD;AAED,qBAAa,mBAAmB;WAChB,WAAW,CACvB,EAAE,EAAE,EAAE,EACN,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,GAC3B,oBAAoB,GAAG,SAAS;WAqCrB,eAAe,CAC3B,MAAM,EAAE,+BAA+B,EACvC,mBAAmB,EAAE,oBAAoB,EACzC,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,GAC3B,oBAAoB,GAAG,SAAS;CA2CpC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType } from '@aztec/circuit-types';
|
|
2
|
-
import { AppLogicPhaseManager } from './app_logic_phase_manager.js';
|
|
3
|
-
import { SetupPhaseManager } from './setup_phase_manager.js';
|
|
4
|
-
import { TailPhaseManager } from './tail_phase_manager.js';
|
|
5
|
-
import { TeardownPhaseManager } from './teardown_phase_manager.js';
|
|
6
|
-
export class PhaseDidNotChangeError extends Error {
|
|
7
|
-
constructor(phase) {
|
|
8
|
-
super(`Tried to advance the phase from [${phase}] when the circuit still needs [${phase}]`);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export class CannotTransitionToSetupError extends Error {
|
|
12
|
-
constructor() {
|
|
13
|
-
super('Cannot transition to setup phase');
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export class PhaseManagerFactory {
|
|
17
|
-
static phaseFromTx(tx, db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB) {
|
|
18
|
-
const data = tx.data.forPublic;
|
|
19
|
-
if (data.needsSetup) {
|
|
20
|
-
return new SetupPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
21
|
-
}
|
|
22
|
-
else if (data.needsAppLogic) {
|
|
23
|
-
return new AppLogicPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
24
|
-
}
|
|
25
|
-
else if (data.needsTeardown) {
|
|
26
|
-
return new TeardownPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
return undefined;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
static phaseFromOutput(output, currentPhaseManager, db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB) {
|
|
33
|
-
if (output.needsSetup) {
|
|
34
|
-
throw new CannotTransitionToSetupError();
|
|
35
|
-
}
|
|
36
|
-
else if (output.needsAppLogic) {
|
|
37
|
-
if (currentPhaseManager.phase === PublicKernelType.APP_LOGIC) {
|
|
38
|
-
throw new PhaseDidNotChangeError(currentPhaseManager.phase);
|
|
39
|
-
}
|
|
40
|
-
return new AppLogicPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
41
|
-
}
|
|
42
|
-
else if (output.needsTeardown) {
|
|
43
|
-
if (currentPhaseManager.phase === PublicKernelType.TEARDOWN) {
|
|
44
|
-
throw new PhaseDidNotChangeError(currentPhaseManager.phase);
|
|
45
|
-
}
|
|
46
|
-
return new TeardownPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
47
|
-
}
|
|
48
|
-
else if (currentPhaseManager.phase !== PublicKernelType.TAIL) {
|
|
49
|
-
return new TailPhaseManager(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2VfbWFuYWdlcl9mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9waGFzZV9tYW5hZ2VyX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFNakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxLQUF1QjtRQUNqQyxLQUFLLENBQUMsb0NBQW9DLEtBQUssbUNBQW1DLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDOUYsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLEtBQUs7SUFDckQ7UUFDRSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLEVBQU0sRUFDTixFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDeEIsaUJBQThDLEVBQzlDLGFBQTRCO1FBRTVCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsRUFBRSxFQUNGLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixFQUFFLEVBQ0YsY0FBYyxFQUNkLFlBQVksRUFDWixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLENBQ2QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksb0JBQW9CLENBQzdCLEVBQUUsRUFDRixjQUFjLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQzNCLE1BQXVDLEVBQ3ZDLG1CQUF5QyxFQUN6QyxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDeEIsaUJBQThDLEVBQzlDLGFBQTRCO1FBRTVCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxJQUFJLG1CQUFtQixDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxPQUFPLElBQUksb0JBQW9CLENBQzdCLEVBQUUsRUFDRixjQUFjLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLElBQUksbUJBQW1CLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxNQUFNLElBQUksc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsRUFBRSxFQUNGLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixFQUFFLEVBQ0YsY0FBYyxFQUNkLFlBQVksRUFDWixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLENBQ2QsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType, type PublicProvingRequest, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
4
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
5
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
6
|
-
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
7
|
-
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
8
|
-
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
9
|
-
/**
|
|
10
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
11
|
-
*/
|
|
12
|
-
export declare class SetupPhaseManager extends AbstractPhaseManager {
|
|
13
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
14
|
-
protected publicStateDB: PublicStateDB;
|
|
15
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelType);
|
|
16
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousCircuit: ProtocolArtifact): Promise<{
|
|
17
|
-
publicProvingRequests: PublicProvingRequest[];
|
|
18
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
19
|
-
lastKernelArtifact: ProtocolArtifact;
|
|
20
|
-
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
21
|
-
returnValues: never[];
|
|
22
|
-
gasUsed: import("@aztec/circuits.js").Gas | undefined;
|
|
23
|
-
}>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=setup_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/setup_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,iBAAkB,SAAQ,oBAAoB;IAOvD,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,gBAAyC;IAKnC,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,eAAe,EAAE,gBAAgB;;;;;;;;CA8BpC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType } from '@aztec/circuit-types';
|
|
2
|
-
import { AbstractPhaseManager, makeAvmProvingRequest } from './abstract_phase_manager.js';
|
|
3
|
-
/**
|
|
4
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
5
|
-
*/
|
|
6
|
-
export class SetupPhaseManager extends AbstractPhaseManager {
|
|
7
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, phase = PublicKernelType.SETUP) {
|
|
8
|
-
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
9
|
-
this.publicContractsDB = publicContractsDB;
|
|
10
|
-
this.publicStateDB = publicStateDB;
|
|
11
|
-
}
|
|
12
|
-
async handle(tx, previousPublicKernelOutput, previousCircuit) {
|
|
13
|
-
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
14
|
-
// TODO(#6464): Should we allow emitting contracts in the private setup phase?
|
|
15
|
-
// if so, this should only add contracts that were deployed during private app logic.
|
|
16
|
-
await this.publicContractsDB.addNewContracts(tx);
|
|
17
|
-
const { publicProvingInformation, kernelOutput, lastKernelArtifact, newUnencryptedLogs, revertReason, gasUsed } = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousCircuit).catch(
|
|
18
|
-
// the abstract phase manager throws if simulation gives error in a non-revertible phase
|
|
19
|
-
async (err) => {
|
|
20
|
-
await this.publicStateDB.rollbackToCommit();
|
|
21
|
-
throw err;
|
|
22
|
-
});
|
|
23
|
-
tx.unencryptedLogs.addFunctionLogs(newUnencryptedLogs);
|
|
24
|
-
await this.publicStateDB.checkpoint();
|
|
25
|
-
// Return a list of setup proving requests
|
|
26
|
-
const publicProvingRequests = publicProvingInformation.map(info => {
|
|
27
|
-
return makeAvmProvingRequest(info, PublicKernelType.SETUP);
|
|
28
|
-
});
|
|
29
|
-
return {
|
|
30
|
-
publicProvingRequests,
|
|
31
|
-
publicKernelOutput: kernelOutput,
|
|
32
|
-
lastKernelArtifact,
|
|
33
|
-
revertReason,
|
|
34
|
-
returnValues: [],
|
|
35
|
-
gasUsed,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvc2V0dXBfcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNDLE1BQU0sc0JBQXNCLENBQUM7QUFNNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJMUY7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBQ3pELFlBQ0UsRUFBd0IsRUFDeEIsY0FBOEIsRUFDOUIsWUFBMEMsRUFDMUMsZUFBZ0MsRUFDaEMsZ0JBQXdCLEVBQ2QsaUJBQThDLEVBQzlDLGFBQTRCLEVBQ3RDLFFBQTBCLGdCQUFnQixDQUFDLEtBQUs7UUFFaEQsS0FBSyxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUp4RSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTZCO1FBQzlDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBSXhDLENBQUM7SUFFUSxLQUFLLENBQUMsTUFBTSxDQUNuQixFQUFNLEVBQ04sMEJBQTJELEVBQzNELGVBQWlDO1FBRWpDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELDhFQUE4RTtRQUM5RSxxRkFBcUY7UUFDckYsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUM3RyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsZUFBZSxDQUFDLENBQUMsS0FBSztRQUMxRix3RkFBd0Y7UUFDeEYsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQ0YsQ0FBQztRQUNKLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXRDLDBDQUEwQztRQUMxQyxNQUFNLHFCQUFxQixHQUEyQix3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEYsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wscUJBQXFCO1lBQ3JCLGtCQUFrQixFQUFFLFlBQVk7WUFDaEMsa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWixZQUFZLEVBQUUsRUFBRTtZQUNoQixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { PublicKernelType, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type KernelCircuitPublicInputs, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
4
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
5
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
6
|
-
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
7
|
-
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
8
|
-
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
9
|
-
export declare class TailPhaseManager extends AbstractPhaseManager {
|
|
10
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
11
|
-
protected publicStateDB: PublicStateDB;
|
|
12
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelType);
|
|
13
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousKernelArtifact: ProtocolArtifact): Promise<{
|
|
14
|
-
publicProvingRequests: import("@aztec/circuit-types").PublicKernelTailRequest[];
|
|
15
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
16
|
-
lastKernelArtifact: ProtocolArtifact;
|
|
17
|
-
finalKernelOutput: KernelCircuitPublicInputs;
|
|
18
|
-
returnValues: never[];
|
|
19
|
-
}>;
|
|
20
|
-
private simulate;
|
|
21
|
-
private buildPrivateInputs;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=tail_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tail_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/tail_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,yBAAyB,EAG9B,KAAK,+BAA+B,EAGrC,MAAM,oBAAoB,CAAC;AAC5B,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,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,qBAAa,gBAAiB,SAAQ,oBAAoB;IAOtD,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,gBAAwC;IAKlC,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,sBAAsB,EAAE,gBAAgB;;;;;;;YA0B5B,QAAQ;YASR,kBAAkB;CAuDjC"}
|