@aztec/simulator 0.33.0 → 0.35.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.
Files changed (186) hide show
  1. package/dest/acvm/acvm.d.ts +4 -1
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +5 -5
  4. package/dest/acvm/deserialize.d.ts +3 -5
  5. package/dest/acvm/deserialize.d.ts.map +1 -1
  6. package/dest/acvm/deserialize.js +6 -9
  7. package/dest/acvm/oracle/oracle.d.ts +3 -1
  8. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/oracle.js +14 -6
  10. package/dest/acvm/oracle/typed_oracle.d.ts +2 -0
  11. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  12. package/dest/acvm/oracle/typed_oracle.js +7 -1
  13. package/dest/avm/avm_execution_environment.d.ts +6 -3
  14. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  15. package/dest/avm/avm_execution_environment.js +12 -9
  16. package/dest/avm/avm_gas.js +2 -2
  17. package/dest/avm/avm_machine_state.d.ts +2 -0
  18. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  19. package/dest/avm/avm_machine_state.js +24 -6
  20. package/dest/avm/avm_memory_types.js +6 -6
  21. package/dest/avm/avm_simulator.js +7 -7
  22. package/dest/avm/fixtures/index.d.ts +3 -0
  23. package/dest/avm/fixtures/index.d.ts.map +1 -1
  24. package/dest/avm/fixtures/index.js +11 -4
  25. package/dest/avm/journal/journal.d.ts +15 -13
  26. package/dest/avm/journal/journal.d.ts.map +1 -1
  27. package/dest/avm/journal/journal.js +16 -5
  28. package/dest/avm/journal/trace.d.ts +8 -19
  29. package/dest/avm/journal/trace.d.ts.map +1 -1
  30. package/dest/avm/journal/trace.js +48 -116
  31. package/dest/avm/journal/trace_types.d.ts +23 -4
  32. package/dest/avm/journal/trace_types.d.ts.map +1 -1
  33. package/dest/avm/opcodes/accrued_substate.d.ts +2 -1
  34. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  35. package/dest/avm/opcodes/accrued_substate.js +14 -6
  36. package/dest/avm/opcodes/context_getters.js +2 -2
  37. package/dest/avm/opcodes/external_calls.d.ts +2 -2
  38. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  39. package/dest/avm/opcodes/external_calls.js +26 -10
  40. package/dest/avm/opcodes/hashing.d.ts +8 -8
  41. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  42. package/dest/avm/opcodes/hashing.js +35 -43
  43. package/dest/avm/serialization/instruction_serialization.d.ts +1 -1
  44. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  45. package/dest/avm/serialization/instruction_serialization.js +2 -2
  46. package/dest/client/client_execution_context.d.ts +14 -4
  47. package/dest/client/client_execution_context.d.ts.map +1 -1
  48. package/dest/client/client_execution_context.js +28 -13
  49. package/dest/client/private_execution.d.ts +1 -1
  50. package/dest/client/private_execution.d.ts.map +1 -1
  51. package/dest/client/private_execution.js +10 -8
  52. package/dest/client/simulator.d.ts.map +1 -1
  53. package/dest/client/simulator.js +6 -5
  54. package/dest/client/unconstrained_execution.d.ts +1 -1
  55. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  56. package/dest/client/unconstrained_execution.js +6 -5
  57. package/dest/client/view_data_oracle.d.ts +2 -2
  58. package/dest/client/view_data_oracle.d.ts.map +1 -1
  59. package/dest/client/view_data_oracle.js +2 -2
  60. package/dest/common/index.d.ts +1 -1
  61. package/dest/common/index.d.ts.map +1 -1
  62. package/dest/common/index.js +2 -2
  63. package/dest/common/packed_values_cache.d.ts +28 -0
  64. package/dest/common/packed_values_cache.d.ts.map +1 -0
  65. package/dest/common/packed_values_cache.js +50 -0
  66. package/dest/index.d.ts +1 -0
  67. package/dest/index.d.ts.map +1 -1
  68. package/dest/index.js +2 -1
  69. package/dest/mocks/fixtures.d.ts +42 -0
  70. package/dest/mocks/fixtures.d.ts.map +1 -0
  71. package/dest/mocks/fixtures.js +84 -0
  72. package/dest/mocks/index.d.ts +2 -0
  73. package/dest/mocks/index.d.ts.map +1 -0
  74. package/dest/mocks/index.js +2 -0
  75. package/dest/public/abstract_phase_manager.d.ts +82 -0
  76. package/dest/public/abstract_phase_manager.d.ts.map +1 -0
  77. package/dest/public/abstract_phase_manager.js +320 -0
  78. package/dest/public/app_logic_phase_manager.d.ts +29 -0
  79. package/dest/public/app_logic_phase_manager.d.ts.map +1 -0
  80. package/dest/public/app_logic_phase_manager.js +50 -0
  81. package/dest/public/execution.d.ts +3 -0
  82. package/dest/public/execution.d.ts.map +1 -1
  83. package/dest/public/execution.js +1 -1
  84. package/dest/public/executor.d.ts +1 -15
  85. package/dest/public/executor.d.ts.map +1 -1
  86. package/dest/public/executor.js +80 -83
  87. package/dest/public/hints_builder.d.ts +23 -0
  88. package/dest/public/hints_builder.d.ts.map +1 -0
  89. package/dest/public/hints_builder.js +62 -0
  90. package/dest/public/index.d.ts +5 -0
  91. package/dest/public/index.d.ts.map +1 -1
  92. package/dest/public/index.js +6 -1
  93. package/dest/public/phase_manager_factory.d.ts +18 -0
  94. package/dest/public/phase_manager_factory.d.ts.map +1 -0
  95. package/dest/public/phase_manager_factory.js +56 -0
  96. package/dest/public/public_execution_context.d.ts +20 -10
  97. package/dest/public/public_execution_context.d.ts.map +1 -1
  98. package/dest/public/public_execution_context.js +35 -23
  99. package/dest/public/public_executor.d.ts +79 -0
  100. package/dest/public/public_executor.d.ts.map +1 -0
  101. package/dest/public/public_executor.js +198 -0
  102. package/dest/public/public_kernel.d.ts +37 -0
  103. package/dest/public/public_kernel.d.ts.map +1 -0
  104. package/dest/public/public_kernel.js +97 -0
  105. package/dest/public/public_kernel_circuit_simulator.d.ts +31 -0
  106. package/dest/public/public_kernel_circuit_simulator.d.ts.map +1 -0
  107. package/dest/public/public_kernel_circuit_simulator.js +2 -0
  108. package/dest/public/public_processor.d.ts +53 -0
  109. package/dest/public/public_processor.d.ts.map +1 -0
  110. package/dest/public/public_processor.js +144 -0
  111. package/dest/public/setup_phase_manager.d.ts +30 -0
  112. package/dest/public/setup_phase_manager.d.ts.map +1 -0
  113. package/dest/public/setup_phase_manager.js +46 -0
  114. package/dest/public/tail_phase_manager.d.ts +30 -0
  115. package/dest/public/tail_phase_manager.d.ts.map +1 -0
  116. package/dest/public/tail_phase_manager.js +60 -0
  117. package/dest/public/teardown_phase_manager.d.ts +30 -0
  118. package/dest/public/teardown_phase_manager.d.ts.map +1 -0
  119. package/dest/public/teardown_phase_manager.js +46 -0
  120. package/dest/public/transitional_adaptors.d.ts +33 -0
  121. package/dest/public/transitional_adaptors.d.ts.map +1 -0
  122. package/dest/public/transitional_adaptors.js +162 -0
  123. package/dest/public/utils.d.ts +8 -0
  124. package/dest/public/utils.d.ts.map +1 -0
  125. package/dest/public/utils.js +29 -0
  126. package/dest/simulator/acvm_native.d.ts +19 -3
  127. package/dest/simulator/acvm_native.d.ts.map +1 -1
  128. package/dest/simulator/acvm_native.js +75 -48
  129. package/dest/simulator/acvm_wasm.d.ts.map +1 -1
  130. package/dest/simulator/acvm_wasm.js +3 -4
  131. package/package.json +8 -5
  132. package/src/acvm/acvm.ts +8 -5
  133. package/src/acvm/deserialize.ts +5 -9
  134. package/src/acvm/oracle/oracle.ts +15 -5
  135. package/src/acvm/oracle/typed_oracle.ts +8 -0
  136. package/src/avm/avm_execution_environment.ts +17 -17
  137. package/src/avm/avm_gas.ts +1 -1
  138. package/src/avm/avm_machine_state.ts +26 -5
  139. package/src/avm/avm_memory_types.ts +5 -5
  140. package/src/avm/avm_simulator.ts +6 -6
  141. package/src/avm/fixtures/index.ts +14 -1
  142. package/src/avm/journal/journal.ts +37 -17
  143. package/src/avm/journal/trace.ts +59 -121
  144. package/src/avm/journal/trace_types.ts +39 -39
  145. package/src/avm/opcodes/accrued_substate.ts +17 -5
  146. package/src/avm/opcodes/context_getters.ts +1 -1
  147. package/src/avm/opcodes/external_calls.ts +32 -9
  148. package/src/avm/opcodes/hashing.ts +38 -54
  149. package/src/avm/serialization/instruction_serialization.ts +1 -1
  150. package/src/client/client_execution_context.ts +30 -11
  151. package/src/client/private_execution.ts +9 -8
  152. package/src/client/simulator.ts +7 -3
  153. package/src/client/unconstrained_execution.ts +5 -4
  154. package/src/client/view_data_oracle.ts +1 -1
  155. package/src/common/index.ts +1 -1
  156. package/src/common/packed_values_cache.ts +55 -0
  157. package/src/index.ts +1 -0
  158. package/src/mocks/fixtures.ts +169 -0
  159. package/src/mocks/index.ts +1 -0
  160. package/src/public/abstract_phase_manager.ts +571 -0
  161. package/src/public/app_logic_phase_manager.ts +76 -0
  162. package/src/public/execution.ts +4 -0
  163. package/src/public/executor.ts +93 -93
  164. package/src/public/hints_builder.ts +119 -0
  165. package/src/public/index.ts +5 -0
  166. package/src/public/phase_manager_factory.ts +126 -0
  167. package/src/public/public_execution_context.ts +43 -37
  168. package/src/public/public_executor.ts +267 -0
  169. package/src/public/public_kernel.ts +139 -0
  170. package/src/public/public_kernel_circuit_simulator.ts +36 -0
  171. package/src/public/public_processor.ts +212 -0
  172. package/src/public/setup_phase_manager.ts +66 -0
  173. package/src/public/tail_phase_manager.ts +120 -0
  174. package/src/public/teardown_phase_manager.ts +66 -0
  175. package/src/public/transitional_adaptors.ts +249 -0
  176. package/src/public/utils.ts +31 -0
  177. package/src/simulator/acvm_native.ts +94 -47
  178. package/src/simulator/acvm_wasm.ts +7 -3
  179. package/dest/avm/temporary_executor_migration.d.ts +0 -27
  180. package/dest/avm/temporary_executor_migration.d.ts.map +0 -1
  181. package/dest/avm/temporary_executor_migration.js +0 -94
  182. package/dest/common/packed_args_cache.d.ts +0 -28
  183. package/dest/common/packed_args_cache.d.ts.map +0 -1
  184. package/dest/common/packed_args_cache.js +0 -50
  185. package/src/avm/temporary_executor_migration.ts +0 -136
  186. package/src/common/packed_args_cache.ts +0 -55
@@ -1,55 +1,93 @@
1
1
  import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
2
- import { Fr, PublicCircuitPublicInputs } from '@aztec/circuits.js';
2
+ import { Fr, Gas, PublicCircuitPublicInputs } from '@aztec/circuits.js';
3
3
  import { createDebugLogger } from '@aztec/foundation/log';
4
4
  import { spawn } from 'child_process';
5
5
  import fs from 'fs/promises';
6
6
  import path from 'path';
7
- import { Oracle, acvm, extractCallStack, extractReturnWitness } from '../acvm/index.js';
7
+ import { Oracle, acvm, extractCallStack, witnessMapToFields } from '../acvm/index.js';
8
8
  import { AvmContext } from '../avm/avm_context.js';
9
9
  import { AvmMachineState } from '../avm/avm_machine_state.js';
10
10
  import { AvmSimulator } from '../avm/avm_simulator.js';
11
11
  import { HostStorage } from '../avm/journal/host_storage.js';
12
12
  import { AvmPersistableStateManager } from '../avm/journal/index.js';
13
- import { isAvmBytecode, temporaryConvertAvmResults, temporaryCreateAvmExecutionEnvironment, } from '../avm/temporary_executor_migration.js';
14
13
  import { AcirSimulator } from '../client/simulator.js';
15
14
  import { ExecutionError, createSimulationError } from '../common/errors.js';
16
15
  import { SideEffectCounter } from '../common/index.js';
17
- import { PackedArgsCache } from '../common/packed_args_cache.js';
16
+ import { PackedValuesCache } from '../common/packed_values_cache.js';
18
17
  import { checkValidStaticCall } from './execution.js';
19
18
  import { PublicExecutionContext } from './public_execution_context.js';
19
+ import { convertAvmResults, createAvmExecutionEnvironment, isAvmBytecode } from './transitional_adaptors.js';
20
20
  /**
21
21
  * Execute a public function and return the execution result.
22
22
  */
23
- export async function executePublicFunction(context, acir, nested, log = createDebugLogger('aztec:simulator:public_execution')) {
23
+ export async function executePublicFunction(context, nested) {
24
+ const bytecode = await context.contractsDb.getBytecode(context.execution.contractAddress, context.execution.functionData.selector);
25
+ if (!bytecode) {
26
+ throw new Error(`Bytecode not found for ${context.execution.contractAddress}:${context.execution.functionData.selector}`);
27
+ }
28
+ if (isAvmBytecode(bytecode)) {
29
+ return await executePublicFunctionAvm(context);
30
+ }
31
+ else {
32
+ return await executePublicFunctionAcvm(context, bytecode, nested);
33
+ }
34
+ }
35
+ async function executePublicFunctionAvm(executionContext) {
36
+ const address = executionContext.execution.contractAddress;
37
+ const selector = executionContext.execution.functionData.selector;
38
+ const log = createDebugLogger('aztec:simulator:public_execution');
39
+ log.verbose(`[AVM] Executing public external function ${address.toString()}:${selector}.`);
40
+ // Temporary code to construct the AVM context
41
+ // These data structures will permeate across the simulator when the public executor is phased out
42
+ const hostStorage = new HostStorage(executionContext.stateDb, executionContext.contractsDb, executionContext.commitmentsDb);
43
+ const worldStateJournal = new AvmPersistableStateManager(hostStorage);
44
+ const executionEnv = createAvmExecutionEnvironment(executionContext.execution, executionContext.header, executionContext.globalVariables);
45
+ const machineState = new AvmMachineState(executionContext.execution.callContext.gasLeft);
46
+ const context = new AvmContext(worldStateJournal, executionEnv, machineState);
47
+ const simulator = new AvmSimulator(context);
48
+ const result = await simulator.execute();
49
+ const newWorldState = context.persistableState.flush();
50
+ log.verbose(`[AVM] ${address.toString()}:${selector} returned, reverted: ${result.reverted}, reason: ${result.revertReason}.`);
51
+ return await convertAvmResults(executionContext, newWorldState, result, machineState);
52
+ }
53
+ async function executePublicFunctionAcvm(context, acir, nested) {
24
54
  const execution = context.execution;
25
55
  const { contractAddress, functionData } = execution;
26
56
  const selector = functionData.selector;
27
- log(`Executing public external function ${contractAddress.toString()}:${selector}`);
57
+ const log = createDebugLogger('aztec:simulator:public_execution');
58
+ log.verbose(`[ACVM] Executing public external function ${contractAddress.toString()}:${selector}.`);
28
59
  const initialWitness = context.getInitialWitness();
29
60
  const acvmCallback = new Oracle(context);
30
- const { partialWitness, reverted, revertReason } = await acvm(await AcirSimulator.getSolver(), acir, initialWitness, acvmCallback)
31
- .then(result => ({
32
- partialWitness: result.partialWitness,
33
- reverted: false,
34
- revertReason: undefined,
35
- }))
36
- .catch((err) => {
37
- const ee = new ExecutionError(err.message, {
38
- contractAddress,
39
- functionSelector: selector,
40
- }, extractCallStack(err), { cause: err });
41
- if (nested) {
42
- // If we're nested, throw the error so the parent can handle it
43
- throw ee;
44
- }
45
- else {
61
+ const { partialWitness, returnWitnessMap, reverted, revertReason } = await (async () => {
62
+ try {
63
+ const result = await acvm(await AcirSimulator.getSolver(), acir, initialWitness, acvmCallback);
46
64
  return {
47
- partialWitness: undefined,
48
- reverted: true,
49
- revertReason: createSimulationError(ee),
65
+ partialWitness: result.partialWitness,
66
+ returnWitnessMap: result.returnWitness,
67
+ reverted: false,
68
+ revertReason: undefined,
50
69
  };
51
70
  }
52
- });
71
+ catch (err_) {
72
+ const err = err_;
73
+ const ee = new ExecutionError(err.message, {
74
+ contractAddress,
75
+ functionSelector: selector,
76
+ }, extractCallStack(err), { cause: err });
77
+ if (nested) {
78
+ // If we're nested, throw the error so the parent can handle it
79
+ throw ee;
80
+ }
81
+ else {
82
+ return {
83
+ partialWitness: undefined,
84
+ returnWitnessMap: undefined,
85
+ reverted: true,
86
+ revertReason: createSimulationError(ee),
87
+ };
88
+ }
89
+ }
90
+ })();
53
91
  if (reverted) {
54
92
  if (!revertReason) {
55
93
  throw new Error('Reverted but no revert reason');
@@ -71,27 +109,30 @@ export async function executePublicFunction(context, acir, nested, log = createD
71
109
  unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
72
110
  reverted,
73
111
  revertReason,
112
+ gasLeft: Gas.empty(),
74
113
  };
75
114
  }
76
115
  if (!partialWitness) {
77
116
  throw new Error('No partial witness returned from ACVM');
78
117
  }
79
- const returnWitness = extractReturnWitness(acir, partialWitness);
80
- const { returnValues, nullifierReadRequests: nullifierReadRequestsPadded, nullifierNonExistentReadRequests: nullifierNonExistentReadRequestsPadded, newL2ToL1Msgs, newNoteHashes: newNoteHashesPadded, newNullifiers: newNullifiersPadded, startSideEffectCounter, endSideEffectCounter, } = PublicCircuitPublicInputs.fromFields(returnWitness);
118
+ const returnWitness = witnessMapToFields(returnWitnessMap);
119
+ const { returnsHash, nullifierReadRequests: nullifierReadRequestsPadded, nullifierNonExistentReadRequests: nullifierNonExistentReadRequestsPadded, newL2ToL1Msgs, newNoteHashes: newNoteHashesPadded, newNullifiers: newNullifiersPadded, startSideEffectCounter, endSideEffectCounter, } = PublicCircuitPublicInputs.fromFields(returnWitness);
120
+ const returnValues = await context.unpackReturns(returnsHash);
81
121
  const nullifierReadRequests = nullifierReadRequestsPadded.filter(v => !v.isEmpty());
82
122
  const nullifierNonExistentReadRequests = nullifierNonExistentReadRequestsPadded.filter(v => !v.isEmpty());
83
123
  const newL2ToL1Messages = newL2ToL1Msgs.filter(v => !v.isEmpty());
84
124
  const newNoteHashes = newNoteHashesPadded.filter(v => !v.isEmpty());
85
125
  const newNullifiers = newNullifiersPadded.filter(v => !v.isEmpty());
86
126
  const { contractStorageReads, contractStorageUpdateRequests } = context.getStorageActionData();
87
- log(`Contract storage reads: ${contractStorageReads
127
+ log.debug(`Contract storage reads: ${contractStorageReads
88
128
  .map(r => r.toFriendlyJSON() + ` - sec: ${r.sideEffectCounter}`)
89
129
  .join(', ')}`);
90
- log(`Contract storage update requests: ${contractStorageUpdateRequests
130
+ log.debug(`Contract storage update requests: ${contractStorageUpdateRequests
91
131
  .map(r => r.toFriendlyJSON() + ` - sec: ${r.sideEffectCounter}`)
92
132
  .join(', ')}`);
93
133
  const nestedExecutions = context.getNestedExecutions();
94
134
  const unencryptedLogs = context.getUnencryptedLogs();
135
+ const gasLeft = context.execution.callContext.gasLeft; // No gas metering for ACVM
95
136
  return {
96
137
  execution,
97
138
  newNoteHashes,
@@ -108,6 +149,7 @@ export async function executePublicFunction(context, acir, nested, log = createD
108
149
  unencryptedLogs,
109
150
  reverted: false,
110
151
  revertReason: undefined,
152
+ gasLeft,
111
153
  };
112
154
  }
113
155
  /**
@@ -128,61 +170,16 @@ export class PublicExecutor {
128
170
  * @returns The result of the run plus all nested runs.
129
171
  */
130
172
  async simulate(execution, globalVariables, sideEffectCounter = 0) {
131
- const selector = execution.functionData.selector;
132
- const bytecode = await this.contractsDb.getBytecode(execution.contractAddress, selector);
133
- if (!bytecode) {
134
- throw new Error(`Bytecode not found for ${execution.contractAddress}:${selector}`);
135
- }
136
- if (isAvmBytecode(bytecode)) {
137
- return await this.simulateAvm(execution, globalVariables, sideEffectCounter);
138
- }
139
- else {
140
- return await this.simulateAcvm(execution, globalVariables, sideEffectCounter);
141
- }
142
- }
143
- /**
144
- * Executes a public execution request with the ACVM.
145
- * @param execution - The execution to run.
146
- * @param globalVariables - The global variables to use.
147
- * @returns The result of the run plus all nested runs.
148
- */
149
- async simulateAcvm(execution, globalVariables, sideEffectCounter = 0) {
150
- const selector = execution.functionData.selector;
151
- const acir = await this.contractsDb.getBytecode(execution.contractAddress, selector);
152
- if (!acir) {
153
- throw new Error(`Bytecode not found for ${execution.contractAddress}:${selector}`);
154
- }
155
173
  // Functions can request to pack arguments before calling other functions.
156
174
  // We use this cache to hold the packed arguments.
157
- const packedArgs = PackedArgsCache.create([]);
175
+ const packedArgs = PackedValuesCache.create([]);
158
176
  const context = new PublicExecutionContext(execution, this.header, globalVariables, packedArgs, new SideEffectCounter(sideEffectCounter), this.stateDb, this.contractsDb, this.commitmentsDb);
159
- const executionResult = await executePublicFunction(context, acir, false /** nested */);
177
+ const executionResult = await executePublicFunction(context, /*nested=*/ false);
160
178
  if (executionResult.execution.callContext.isStaticCall) {
161
179
  checkValidStaticCall(executionResult.newNoteHashes, executionResult.newNullifiers, executionResult.contractStorageUpdateRequests, executionResult.newL2ToL1Messages, executionResult.unencryptedLogs);
162
180
  }
163
181
  return executionResult;
164
182
  }
165
- /**
166
- * Executes a public execution request in the AVM.
167
- * @param execution - The execution to run.
168
- * @param globalVariables - The global variables to use.
169
- * @returns The result of the run plus all nested runs.
170
- */
171
- async simulateAvm(execution, globalVariables, _sideEffectCounter = 0) {
172
- // Temporary code to construct the AVM context
173
- // These data structures will permeate across the simulator when the public executor is phased out
174
- const hostStorage = new HostStorage(this.stateDb, this.contractsDb, this.commitmentsDb);
175
- const worldStateJournal = new AvmPersistableStateManager(hostStorage);
176
- const executionEnv = temporaryCreateAvmExecutionEnvironment(execution, globalVariables);
177
- // TODO(@spalladino) Load initial gas from the public execution request
178
- const machineState = new AvmMachineState(1e10, 1e10, 1e10);
179
- const context = new AvmContext(worldStateJournal, executionEnv, machineState);
180
- const simulator = new AvmSimulator(context);
181
- const result = await simulator.execute();
182
- const newWorldState = context.persistableState.flush();
183
- // TODO(@spalladino) Read gas left from machineState and return it
184
- return temporaryConvertAvmResults(execution, newWorldState, result);
185
- }
186
183
  /**
187
184
  * These functions are currently housed in the temporary executor as it relies on access to
188
185
  * oracles like the contractsDB and this is the least intrusive way to achieve this.
@@ -212,14 +209,14 @@ export class PublicExecutor {
212
209
  await fs.writeFile(bytecodePath, bytecode);
213
210
  const bbExec = path.join(bbPath, 'build', 'bin', 'bb');
214
211
  const bbArgs = ['avm_prove', '-b', bytecodePath, '-d', calldataPath, '-o', proofPath];
215
- this.log(`calling '${bbExec} ${bbArgs.join(' ')}'`);
212
+ this.log.debug(`calling '${bbExec} ${bbArgs.join(' ')}'`);
216
213
  const bbBinary = spawn(bbExec, bbArgs);
217
214
  // The binary writes the proof and the verification key to the write path.
218
215
  return new Promise((resolve, reject) => {
219
216
  let stdout = '';
220
217
  let stderr = '';
221
218
  bbBinary.on('close', () => {
222
- this.log(`Proof generation complete. Reading proof and vk from ${proofPath}.`);
219
+ this.log.verbose(`Proof generation complete. Reading proof and vk from ${proofPath}.`);
223
220
  return resolve(Promise.all([fs.readFile(proofPath), fs.readFile(path.join(artifactsPath, 'vk'))]));
224
221
  });
225
222
  // Catch stdout.
@@ -228,7 +225,7 @@ export class PublicExecutor {
228
225
  });
229
226
  bbBinary.stdout.on('end', () => {
230
227
  if (stdout.length > 0) {
231
- this.log(`stdout: ${stdout}`);
228
+ this.log.debug(`stdout: ${stdout}`);
232
229
  }
233
230
  });
234
231
  // Catch stderr.
@@ -237,7 +234,7 @@ export class PublicExecutor {
237
234
  });
238
235
  bbBinary.stderr.on('end', () => {
239
236
  if (stderr.length > 0) {
240
- this.log(`stderr: ${stderr}`);
237
+ this.log.warn(`stderr: ${stderr}`);
241
238
  }
242
239
  });
243
240
  // Catch and propagate errors from spawning
@@ -264,7 +261,7 @@ export class PublicExecutor {
264
261
  await fs.writeFile(proofPath, proof);
265
262
  const bbExec = path.join(bbPath, 'build', 'bin', 'bb');
266
263
  const bbArgs = ['avm_verify', '-p', proofPath];
267
- this.log(`calling '${bbPath} ${bbArgs.join(' ')}'`);
264
+ this.log.debug(`calling '${bbPath} ${bbArgs.join(' ')}'`);
268
265
  const bbBinary = spawn(bbExec, bbArgs);
269
266
  // The binary prints to stdout 1 if the proof is valid and 0 if it is not.
270
267
  return new Promise((resolve, reject) => {
@@ -282,4 +279,4 @@ export class PublicExecutor {
282
279
  });
283
280
  }
284
281
  }
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLEVBQXFDLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0IsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCLHNDQUFzQyxHQUN2QyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFN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
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFxQyx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBb0Qsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FB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
@@ -0,0 +1,23 @@
1
+ import { type Fr, MAX_NEW_NULLIFIERS_PER_TX, type MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, type MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, type PublicDataRead, PublicDataTreeLeafPreimage, type ReadRequestContext, type SideEffectLinkedToNoteHash } from '@aztec/circuits.js';
2
+ import { type Tuple } from '@aztec/foundation/serialize';
3
+ import { type MerkleTreeOperations } from '@aztec/world-state';
4
+ export declare class HintsBuilder {
5
+ private db;
6
+ constructor(db: MerkleTreeOperations);
7
+ getNullifierReadRequestHints(nullifierReadRequests: Tuple<ReadRequestContext, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, nullifiersNonRevertible: Tuple<SideEffectLinkedToNoteHash, typeof MAX_NEW_NULLIFIERS_PER_TX>, nullifiersRevertible: Tuple<SideEffectLinkedToNoteHash, typeof MAX_NEW_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierReadRequestHints>;
8
+ getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests: Tuple<ReadRequestContext, typeof MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX>, nullifiersNonRevertible: Tuple<SideEffectLinkedToNoteHash, typeof MAX_NEW_NULLIFIERS_PER_TX>, nullifiersRevertible: Tuple<SideEffectLinkedToNoteHash, typeof MAX_NEW_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierNonExistentReadRequestHints>;
9
+ getNullifierMembershipWitness(nullifier: Fr): Promise<{
10
+ membershipWitness: MembershipWitness<20>;
11
+ leafPreimage: import("@aztec/foundation/trees").IndexedTreeLeafPreimage;
12
+ } | undefined>;
13
+ getLowNullifierMembershipWitness(nullifier: Fr): Promise<{
14
+ membershipWitness: MembershipWitness<20>;
15
+ leafPreimage: import("@aztec/foundation/trees").IndexedTreeLeafPreimage;
16
+ }>;
17
+ private getNullifierMembershipWitnessWithPreimage;
18
+ getPublicDataReadsInfo(publicDataReads: PublicDataRead[]): Promise<{
19
+ newPublicDataReadsWitnesses: [MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>, MembershipWitness<40>];
20
+ newPublicDataReadsPreimages: [PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage];
21
+ }>;
22
+ }
23
+ //# sourceMappingURL=hints_builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints_builder.d.ts","sourceRoot":"","sources":["../../src/public/hints_builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EACP,yBAAyB,EACzB,KAAK,+CAA+C,EACpD,KAAK,kCAAkC,EAEvC,iBAAiB,EAGjB,KAAK,cAAc,EACnB,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAIhC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAE5C,4BAA4B,CAC1B,qBAAqB,EAAE,KAAK,CAAC,kBAAkB,EAAE,OAAO,kCAAkC,CAAC,EAC3F,uBAAuB,EAAE,KAAK,CAAC,0BAA0B,EAAE,OAAO,yBAAyB,CAAC,EAC5F,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,EAAE,OAAO,yBAAyB,CAAC;IAS3F,uCAAuC,CACrC,gCAAgC,EAAE,KAAK,CAAC,kBAAkB,EAAE,OAAO,+CAA+C,CAAC,EACnH,uBAAuB,EAAE,KAAK,CAAC,0BAA0B,EAAE,OAAO,yBAAyB,CAAC,EAC5F,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,EAAE,OAAO,yBAAyB,CAAC;IAUrF,6BAA6B,CAAC,SAAS,EAAE,EAAE;;;;IAS3C,gCAAgC,CAAC,SAAS,EAAE,EAAE;;;;YActC,yCAAyC;IAgBjD,sBAAsB,CAAC,eAAe,EAAE,cAAc,EAAE;;;;CA6B/D"}
@@ -0,0 +1,62 @@
1
+ import { MerkleTreeId } from '@aztec/circuit-types';
2
+ import { MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MembershipWitness, NULLIFIER_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, PublicDataTreeLeafPreimage, buildNullifierNonExistentReadRequestHints, buildNullifierReadRequestHints, mergeAccumulatedData, } from '@aztec/circuits.js';
3
+ import { makeTuple } from '@aztec/foundation/array';
4
+ export class HintsBuilder {
5
+ constructor(db) {
6
+ this.db = db;
7
+ }
8
+ getNullifierReadRequestHints(nullifierReadRequests, nullifiersNonRevertible, nullifiersRevertible) {
9
+ return buildNullifierReadRequestHints(this, nullifierReadRequests, mergeAccumulatedData(MAX_NEW_NULLIFIERS_PER_TX, nullifiersNonRevertible, nullifiersRevertible));
10
+ }
11
+ getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests, nullifiersNonRevertible, nullifiersRevertible) {
12
+ const pendingNullifiers = mergeAccumulatedData(MAX_NEW_NULLIFIERS_PER_TX, nullifiersNonRevertible, nullifiersRevertible);
13
+ return buildNullifierNonExistentReadRequestHints(this, nullifierNonExistentReadRequests, pendingNullifiers);
14
+ }
15
+ async getNullifierMembershipWitness(nullifier) {
16
+ const index = await this.db.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
17
+ if (index === undefined) {
18
+ return;
19
+ }
20
+ return this.getNullifierMembershipWitnessWithPreimage(index);
21
+ }
22
+ async getLowNullifierMembershipWitness(nullifier) {
23
+ const res = await this.db.getPreviousValueIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBigInt());
24
+ if (res === undefined) {
25
+ throw new Error(`Cannot find the low leaf for nullifier ${nullifier.toBigInt()}.`);
26
+ }
27
+ const { index, alreadyPresent } = res;
28
+ if (alreadyPresent) {
29
+ throw new Error(`Nullifier ${nullifier.toBigInt()} already exists in the tree.`);
30
+ }
31
+ return this.getNullifierMembershipWitnessWithPreimage(index);
32
+ }
33
+ async getNullifierMembershipWitnessWithPreimage(index) {
34
+ const siblingPath = await this.db.getSiblingPath(MerkleTreeId.NULLIFIER_TREE, index);
35
+ const membershipWitness = new MembershipWitness(NULLIFIER_TREE_HEIGHT, index, siblingPath.toTuple());
36
+ const leafPreimage = await this.db.getLeafPreimage(MerkleTreeId.NULLIFIER_TREE, index);
37
+ if (!leafPreimage) {
38
+ throw new Error(`Cannot find the leaf preimage at index ${index}.`);
39
+ }
40
+ return { membershipWitness, leafPreimage };
41
+ }
42
+ async getPublicDataReadsInfo(publicDataReads) {
43
+ const newPublicDataReadsWitnesses = makeTuple(MAX_PUBLIC_DATA_READS_PER_TX, () => MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT, 0n));
44
+ const newPublicDataReadsPreimages = makeTuple(MAX_PUBLIC_DATA_READS_PER_TX, () => PublicDataTreeLeafPreimage.empty());
45
+ for (const i in publicDataReads) {
46
+ const leafSlot = publicDataReads[i].leafSlot.value;
47
+ const lowLeafResult = await this.db.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot);
48
+ if (!lowLeafResult) {
49
+ throw new Error(`Public data tree should have one initial leaf`);
50
+ }
51
+ const preimage = await this.db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
52
+ const path = await this.db.getSiblingPath(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index);
53
+ newPublicDataReadsWitnesses[i] = new MembershipWitness(PUBLIC_DATA_TREE_HEIGHT, BigInt(lowLeafResult.index), path.toTuple());
54
+ newPublicDataReadsPreimages[i] = preimage;
55
+ }
56
+ return {
57
+ newPublicDataReadsWitnesses,
58
+ newPublicDataReadsPreimages,
59
+ };
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHNfYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaGludHNfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUVMLHlCQUF5QixFQUd6Qiw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFFdkIsMEJBQTBCLEVBRzFCLHlDQUF5QyxFQUN6Qyw4QkFBOEIsRUFDOUIsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXBELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLEVBQXdCO1FBQXhCLE9BQUUsR0FBRixFQUFFLENBQXNCO0lBQUcsQ0FBQztJQUVoRCw0QkFBNEIsQ0FDMUIscUJBQTJGLEVBQzNGLHVCQUE0RixFQUM1RixvQkFBeUY7UUFFekYsT0FBTyw4QkFBOEIsQ0FDbkMsSUFBSSxFQUNKLHFCQUFxQixFQUNyQixvQkFBb0IsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUMvRixDQUFDO0lBQ0osQ0FBQztJQUVELHVDQUF1QyxDQUNyQyxnQ0FBbUgsRUFDbkgsdUJBQTRGLEVBQzVGLG9CQUF5RjtRQUV6RixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUM1Qyx5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixDQUNyQixDQUFDO1FBQ0YsT0FBTyx5Q0FBeUMsQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsS0FBSyxDQUFDLDZCQUE2QixDQUFDLFNBQWE7UUFDL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZ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
@@ -1,4 +1,9 @@
1
1
  export * from './db.js';
2
2
  export { type PublicExecution, type PublicExecutionResult, isPublicExecutionResult, collectPublicDataReads, collectPublicDataUpdateRequests, } from './execution.js';
3
3
  export { PublicExecutor } from './executor.js';
4
+ export { PublicProcessor, PublicProcessorFactory } from './public_processor.js';
5
+ export * from './public_executor.js';
6
+ export * from './abstract_phase_manager.js';
7
+ export * from './public_kernel_circuit_simulator.js';
8
+ export * from './public_kernel.js';
4
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,9 @@
1
1
  export * from './db.js';
2
2
  export { isPublicExecutionResult, collectPublicDataReads, collectPublicDataUpdateRequests, } from './execution.js';
3
3
  export { PublicExecutor } from './executor.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLCtCQUErQixHQUNoQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUMifQ==
4
+ export { PublicProcessor, PublicProcessorFactory } from './public_processor.js';
5
+ export * from './public_executor.js';
6
+ export * from './abstract_phase_manager.js';
7
+ export * from './public_kernel_circuit_simulator.js';
8
+ export * from './public_kernel.js';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLCtCQUErQixHQUNoQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsb0JBQW9CLENBQUMifQ==
@@ -0,0 +1,18 @@
1
+ import { 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, PublicKernelPhase } from './abstract_phase_manager.js';
6
+ import { type ContractsDataSourcePublicDB } from './public_executor.js';
7
+ import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
8
+ export declare class PhaseDidNotChangeError extends Error {
9
+ constructor(phase: PublicKernelPhase);
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase_manager_factory.d.ts","sourceRoot":"","sources":["../../src/public/phase_manager_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,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,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAKzF,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,KAAK,EAAE,iBAAiB;CAGrC;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"}
@@ -0,0 +1,56 @@
1
+ import { PublicKernelPhase } from './abstract_phase_manager.js';
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 === PublicKernelPhase.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 === PublicKernelPhase.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 !== PublicKernelPhase.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2VfbWFuYWdlcl9mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9waGFzZV9tYW5hZ2VyX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUE2QixpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5FLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxLQUFLO0lBQy9DLFlBQVksS0FBd0I7UUFDbEMsS0FBSyxDQUFDLG9DQUFvQyxLQUFLLG1DQUFtQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxLQUFLO0lBQ3JEO1FBQ0UsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixNQUFNLENBQUMsV0FBVyxDQUN2QixFQUFNLEVBQ04sRUFBd0IsRUFDeEIsY0FBOEIsRUFDOUIsWUFBMEMsRUFDMUMsZUFBZ0MsRUFDaEMsZ0JBQXdCLEVBQ3hCLGlCQUE4QyxFQUM5QyxhQUE0QjtRQUU1QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksaUJBQWlCLENBQzFCLEVBQUUsRUFDRixjQUFjLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsRUFBRSxFQUNGLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixFQUFFLEVBQ0YsY0FBYyxFQUNkLFlBQVksRUFDWixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLENBQ2QsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUMzQixNQUF1QyxFQUN2QyxtQkFBeUMsRUFDekMsRUFBd0IsRUFDeEIsY0FBOEIsRUFDOUIsWUFBMEMsRUFDMUMsZUFBZ0MsRUFDaEMsZ0JBQXdCLEVBQ3hCLGlCQUE4QyxFQUM5QyxhQUE0QjtRQUU1QixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUMzQyxDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEtBQUssaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzlELE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixFQUFFLEVBQ0YsY0FBYyxFQUNkLFlBQVksRUFDWixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixhQUFhLENBQ2QsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxJQUFJLG1CQUFtQixDQUFDLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxPQUFPLElBQUksb0JBQW9CLENBQzdCLEVBQUUsRUFDRixjQUFjLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksbUJBQW1CLENBQUMsS0FBSyxLQUFLLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsRUFBRSxFQUNGLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,11 +1,11 @@
1
- import { type NullifierMembershipWitness, UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
1
+ import { UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
2
2
  import { type FunctionSelector, type GlobalVariables, type Header } from '@aztec/circuits.js';
3
3
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import { Fr } from '@aztec/foundation/fields';
6
6
  import { type ContractInstance } from '@aztec/types/contracts';
7
7
  import { TypedOracle } from '../acvm/index.js';
8
- import { type PackedArgsCache, type SideEffectCounter } from '../common/index.js';
8
+ import { type PackedValuesCache, type SideEffectCounter } from '../common/index.js';
9
9
  import { type CommitmentsDB, type PublicContractsDB, type PublicStateDB } from './db.js';
10
10
  import { type PublicExecution, type PublicExecutionResult } from './execution.js';
11
11
  /**
@@ -16,13 +16,13 @@ export declare class PublicExecutionContext extends TypedOracle {
16
16
  * Data for this execution.
17
17
  */
18
18
  readonly execution: PublicExecution;
19
- private readonly header;
20
- private readonly globalVariables;
21
- private readonly packedArgsCache;
19
+ readonly header: Header;
20
+ readonly globalVariables: GlobalVariables;
21
+ private readonly packedValuesCache;
22
22
  private readonly sideEffectCounter;
23
- private readonly stateDb;
24
- private readonly contractsDb;
25
- private readonly commitmentsDb;
23
+ readonly stateDb: PublicStateDB;
24
+ readonly contractsDb: PublicContractsDB;
25
+ readonly commitmentsDb: CommitmentsDB;
26
26
  private log;
27
27
  private storageActions;
28
28
  private nestedExecutions;
@@ -31,7 +31,7 @@ export declare class PublicExecutionContext extends TypedOracle {
31
31
  /**
32
32
  * Data for this execution.
33
33
  */
34
- execution: PublicExecution, header: Header, globalVariables: GlobalVariables, packedArgsCache: PackedArgsCache, sideEffectCounter: SideEffectCounter, stateDb: PublicStateDB, contractsDb: PublicContractsDB, commitmentsDb: CommitmentsDB, log?: import("@aztec/foundation/log").DebugLogger);
34
+ execution: PublicExecution, header: Header, globalVariables: GlobalVariables, packedValuesCache: PackedValuesCache, sideEffectCounter: SideEffectCounter, stateDb: PublicStateDB, contractsDb: PublicContractsDB, commitmentsDb: CommitmentsDB, log?: import("@aztec/foundation/log").Logger);
35
35
  /**
36
36
  * Generates the initial witness for a public function.
37
37
  * @param args - The arguments to the function.
@@ -62,6 +62,16 @@ export declare class PublicExecutionContext extends TypedOracle {
62
62
  * @param args - Arguments to pack
63
63
  */
64
64
  packArguments(args: Fr[]): Promise<Fr>;
65
+ /**
66
+ * Pack the given returns.
67
+ * @param returns - Returns to pack
68
+ */
69
+ packReturns(returns: Fr[]): Promise<Fr>;
70
+ /**
71
+ * Unpack the given returns.
72
+ * @param returnsHash - Returns hash to unpack
73
+ */
74
+ unpackReturns(returnsHash: Fr): Promise<Fr[]>;
65
75
  /**
66
76
  * Fetches a message from the db, given its key.
67
77
  * @param contractAddress - Address of a contract by which the message was emitted.
@@ -103,7 +113,7 @@ export declare class PublicExecutionContext extends TypedOracle {
103
113
  * @returns The return values of the public function.
104
114
  */
105
115
  callPublicFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, argsHash: Fr, sideEffectCounter: number, isStaticCall: boolean, isDelegateCall: boolean): Promise<Fr[]>;
106
- getNullifierMembershipWitness(blockNumber: number, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
116
+ checkNullifierExists(nullifier: Fr): Promise<boolean>;
107
117
  getContractInstance(address: AztecAddress): Promise<ContractInstance>;
108
118
  }
109
119
  //# sourceMappingURL=public_execution_context.d.ts.map