@aztec/simulator 0.62.0 → 0.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dest/acvm/acvm.d.ts +2 -16
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +2 -70
  4. package/dest/acvm/oracle/oracle.d.ts +4 -4
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +10 -11
  7. package/dest/acvm/oracle/typed_oracle.d.ts +5 -5
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +8 -8
  10. package/dest/avm/avm_gas.d.ts.map +1 -1
  11. package/dest/avm/avm_gas.js +2 -1
  12. package/dest/avm/avm_machine_state.d.ts +27 -8
  13. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  14. package/dest/avm/avm_machine_state.js +6 -10
  15. package/dest/avm/avm_memory_types.d.ts +8 -0
  16. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  17. package/dest/avm/avm_memory_types.js +5 -1
  18. package/dest/avm/avm_simulator.d.ts +2 -19
  19. package/dest/avm/avm_simulator.d.ts.map +1 -1
  20. package/dest/avm/avm_simulator.js +12 -14
  21. package/dest/avm/avm_tree.d.ts +249 -0
  22. package/dest/avm/avm_tree.d.ts.map +1 -0
  23. package/dest/avm/avm_tree.js +637 -0
  24. package/dest/avm/errors.d.ts +4 -17
  25. package/dest/avm/errors.d.ts.map +1 -1
  26. package/dest/avm/errors.js +21 -50
  27. package/dest/avm/fixtures/index.d.ts +7 -2
  28. package/dest/avm/fixtures/index.d.ts.map +1 -1
  29. package/dest/avm/fixtures/index.js +12 -12
  30. package/dest/avm/index.d.ts +1 -0
  31. package/dest/avm/index.d.ts.map +1 -1
  32. package/dest/avm/index.js +2 -1
  33. package/dest/avm/journal/journal.d.ts +43 -24
  34. package/dest/avm/journal/journal.d.ts.map +1 -1
  35. package/dest/avm/journal/journal.js +172 -39
  36. package/dest/avm/journal/nullifiers.d.ts +5 -4
  37. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  38. package/dest/avm/journal/nullifiers.js +2 -3
  39. package/dest/avm/journal/public_storage.d.ts +6 -5
  40. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  41. package/dest/avm/journal/public_storage.js +1 -1
  42. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  43. package/dest/avm/opcodes/accrued_substate.js +4 -10
  44. package/dest/avm/opcodes/arithmetic.d.ts +4 -1
  45. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  46. package/dest/avm/opcodes/arithmetic.js +18 -4
  47. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  48. package/dest/avm/opcodes/bitwise.js +1 -3
  49. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  50. package/dest/avm/opcodes/comparators.js +1 -2
  51. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  52. package/dest/avm/opcodes/contract.js +2 -3
  53. package/dest/avm/opcodes/control_flow.d.ts +4 -0
  54. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  55. package/dest/avm/opcodes/control_flow.js +21 -6
  56. package/dest/avm/opcodes/conversion.d.ts.map +1 -1
  57. package/dest/avm/opcodes/conversion.js +1 -2
  58. package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
  59. package/dest/avm/opcodes/ec_add.js +5 -11
  60. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  61. package/dest/avm/opcodes/environment_getters.js +1 -2
  62. package/dest/avm/opcodes/external_calls.d.ts +4 -2
  63. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  64. package/dest/avm/opcodes/external_calls.js +38 -22
  65. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  66. package/dest/avm/opcodes/hashing.js +1 -4
  67. package/dest/avm/opcodes/instruction.d.ts +4 -0
  68. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  69. package/dest/avm/opcodes/instruction.js +7 -1
  70. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  71. package/dest/avm/opcodes/memory.js +1 -7
  72. package/dest/avm/opcodes/misc.js +3 -3
  73. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
  74. package/dest/avm/opcodes/multi_scalar_mul.js +6 -5
  75. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  76. package/dest/avm/opcodes/storage.js +2 -4
  77. package/dest/avm/serialization/bytecode_serialization.d.ts +1 -6
  78. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  79. package/dest/avm/serialization/bytecode_serialization.js +24 -20
  80. package/dest/client/client_execution_context.d.ts +7 -11
  81. package/dest/client/client_execution_context.d.ts.map +1 -1
  82. package/dest/client/client_execution_context.js +18 -20
  83. package/dest/client/db_oracle.d.ts +17 -10
  84. package/dest/client/db_oracle.d.ts.map +1 -1
  85. package/dest/client/db_oracle.js +1 -1
  86. package/dest/client/private_execution.d.ts.map +1 -1
  87. package/dest/client/private_execution.js +5 -4
  88. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  89. package/dest/client/unconstrained_execution.js +3 -2
  90. package/dest/client/view_data_oracle.d.ts +6 -12
  91. package/dest/client/view_data_oracle.d.ts.map +1 -1
  92. package/dest/client/view_data_oracle.js +10 -12
  93. package/dest/common/errors.d.ts +15 -2
  94. package/dest/common/errors.d.ts.map +1 -1
  95. package/dest/common/errors.js +85 -4
  96. package/dest/mocks/fixtures.d.ts +9 -28
  97. package/dest/mocks/fixtures.d.ts.map +1 -1
  98. package/dest/mocks/fixtures.js +12 -57
  99. package/dest/public/dual_side_effect_trace.d.ts +34 -26
  100. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  101. package/dest/public/dual_side_effect_trace.js +48 -36
  102. package/dest/public/enqueued_call_side_effect_trace.d.ts +96 -33
  103. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  104. package/dest/public/enqueued_call_side_effect_trace.js +212 -138
  105. package/dest/public/execution.d.ts +50 -17
  106. package/dest/public/execution.d.ts.map +1 -1
  107. package/dest/public/execution.js +1 -29
  108. package/dest/public/executor.d.ts +28 -11
  109. package/dest/public/executor.d.ts.map +1 -1
  110. package/dest/public/executor.js +33 -33
  111. package/dest/public/index.d.ts +4 -5
  112. package/dest/public/index.d.ts.map +1 -1
  113. package/dest/public/index.js +4 -5
  114. package/dest/public/public_db_sources.d.ts +1 -0
  115. package/dest/public/public_db_sources.d.ts.map +1 -1
  116. package/dest/public/public_db_sources.js +12 -5
  117. package/dest/public/public_processor.d.ts +7 -11
  118. package/dest/public/public_processor.d.ts.map +1 -1
  119. package/dest/public/public_processor.js +60 -42
  120. package/dest/public/public_processor_metrics.d.ts +3 -3
  121. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  122. package/dest/public/public_processor_metrics.js +1 -1
  123. package/dest/public/public_tx_context.d.ts +130 -0
  124. package/dest/public/public_tx_context.d.ts.map +1 -0
  125. package/dest/public/public_tx_context.js +293 -0
  126. package/dest/public/public_tx_simulator.d.ts +36 -0
  127. package/dest/public/public_tx_simulator.d.ts.map +1 -0
  128. package/dest/public/public_tx_simulator.js +148 -0
  129. package/dest/public/side_effect_trace.d.ts +30 -15
  130. package/dest/public/side_effect_trace.d.ts.map +1 -1
  131. package/dest/public/side_effect_trace.js +70 -16
  132. package/dest/public/side_effect_trace_interface.d.ts +43 -12
  133. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  134. package/dest/public/transitional_adapters.d.ts +9 -0
  135. package/dest/public/transitional_adapters.d.ts.map +1 -0
  136. package/dest/public/transitional_adapters.js +127 -0
  137. package/dest/public/utils.d.ts +5 -0
  138. package/dest/public/utils.d.ts.map +1 -0
  139. package/dest/public/utils.js +30 -0
  140. package/package.json +12 -9
  141. package/src/acvm/acvm.ts +3 -94
  142. package/src/acvm/oracle/oracle.ts +9 -14
  143. package/src/acvm/oracle/typed_oracle.ts +8 -8
  144. package/src/avm/avm_gas.ts +1 -0
  145. package/src/avm/avm_machine_state.ts +28 -12
  146. package/src/avm/avm_memory_types.ts +5 -0
  147. package/src/avm/avm_simulator.ts +13 -16
  148. package/src/avm/avm_tree.ts +785 -0
  149. package/src/avm/errors.ts +25 -48
  150. package/src/avm/fixtures/index.ts +16 -12
  151. package/src/avm/index.ts +1 -0
  152. package/src/avm/journal/journal.ts +291 -52
  153. package/src/avm/journal/nullifiers.ts +7 -7
  154. package/src/avm/journal/public_storage.ts +5 -5
  155. package/src/avm/opcodes/accrued_substate.ts +3 -9
  156. package/src/avm/opcodes/arithmetic.ts +26 -4
  157. package/src/avm/opcodes/bitwise.ts +0 -2
  158. package/src/avm/opcodes/comparators.ts +0 -1
  159. package/src/avm/opcodes/contract.ts +1 -2
  160. package/src/avm/opcodes/control_flow.ts +24 -5
  161. package/src/avm/opcodes/conversion.ts +0 -1
  162. package/src/avm/opcodes/ec_add.ts +6 -9
  163. package/src/avm/opcodes/environment_getters.ts +0 -1
  164. package/src/avm/opcodes/external_calls.ts +39 -21
  165. package/src/avm/opcodes/hashing.ts +0 -3
  166. package/src/avm/opcodes/instruction.ts +7 -0
  167. package/src/avm/opcodes/memory.ts +0 -6
  168. package/src/avm/opcodes/misc.ts +2 -2
  169. package/src/avm/opcodes/multi_scalar_mul.ts +5 -4
  170. package/src/avm/opcodes/storage.ts +1 -3
  171. package/src/avm/serialization/bytecode_serialization.ts +31 -22
  172. package/src/client/client_execution_context.ts +22 -23
  173. package/src/client/db_oracle.ts +22 -11
  174. package/src/client/private_execution.ts +5 -4
  175. package/src/client/unconstrained_execution.ts +2 -1
  176. package/src/client/view_data_oracle.ts +14 -13
  177. package/src/common/errors.ts +119 -3
  178. package/src/mocks/fixtures.ts +15 -106
  179. package/src/public/dual_side_effect_trace.ts +138 -50
  180. package/src/public/enqueued_call_side_effect_trace.ts +352 -212
  181. package/src/public/execution.ts +58 -42
  182. package/src/public/executor.ts +52 -67
  183. package/src/public/index.ts +7 -5
  184. package/src/public/public_db_sources.ts +12 -4
  185. package/src/public/public_processor.ts +111 -73
  186. package/src/public/public_processor_metrics.ts +3 -3
  187. package/src/public/public_tx_context.ts +411 -0
  188. package/src/public/public_tx_simulator.ts +232 -0
  189. package/src/public/side_effect_trace.ts +154 -28
  190. package/src/public/side_effect_trace_interface.ts +92 -14
  191. package/src/public/transitional_adapters.ts +347 -0
  192. package/src/public/utils.ts +32 -0
  193. package/dest/public/enqueued_call_simulator.d.ts +0 -43
  194. package/dest/public/enqueued_call_simulator.d.ts.map +0 -1
  195. package/dest/public/enqueued_call_simulator.js +0 -156
  196. package/dest/public/enqueued_calls_processor.d.ts +0 -43
  197. package/dest/public/enqueued_calls_processor.d.ts.map +0 -1
  198. package/dest/public/enqueued_calls_processor.js +0 -209
  199. package/dest/public/hints_builder.d.ts +0 -29
  200. package/dest/public/hints_builder.d.ts.map +0 -1
  201. package/dest/public/hints_builder.js +0 -75
  202. package/dest/public/public_kernel.d.ts +0 -30
  203. package/dest/public/public_kernel.d.ts.map +0 -1
  204. package/dest/public/public_kernel.js +0 -67
  205. package/dest/public/public_kernel_circuit_simulator.d.ts +0 -25
  206. package/dest/public/public_kernel_circuit_simulator.d.ts.map +0 -1
  207. package/dest/public/public_kernel_circuit_simulator.js +0 -2
  208. package/dest/public/public_kernel_tail_simulator.d.ts +0 -15
  209. package/dest/public/public_kernel_tail_simulator.d.ts.map +0 -1
  210. package/dest/public/public_kernel_tail_simulator.js +0 -39
  211. package/src/public/enqueued_call_simulator.ts +0 -360
  212. package/src/public/enqueued_calls_processor.ts +0 -372
  213. package/src/public/hints_builder.ts +0 -168
  214. package/src/public/public_kernel.ts +0 -100
  215. package/src/public/public_kernel_circuit_simulator.ts +0 -32
  216. package/src/public/public_kernel_tail_simulator.ts +0 -97
@@ -1,209 +0,0 @@
1
- import { PublicKernelPhase, } from '@aztec/circuit-types';
2
- import { EnqueuedCallData, Fr, Gas, NESTED_RECURSIVE_PROOF_LENGTH, PublicKernelCircuitPrivateInputs, PublicKernelData, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, } from '@aztec/circuits.js';
3
- import { createDebugLogger } from '@aztec/foundation/log';
4
- import { Timer } from '@aztec/foundation/timer';
5
- import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types';
6
- import { inspect } from 'util';
7
- import { EnqueuedCallSimulator } from './enqueued_call_simulator.js';
8
- import { PublicKernelTailSimulator } from './public_kernel_tail_simulator.js';
9
- const PhaseIsRevertible = {
10
- [PublicKernelPhase.SETUP]: false,
11
- [PublicKernelPhase.APP_LOGIC]: true,
12
- [PublicKernelPhase.TEARDOWN]: true,
13
- };
14
- export class EnqueuedCallsProcessor {
15
- constructor(publicKernelSimulator, globalVariables, worldStateDB, enqueuedCallSimulator, publicKernelTailSimulator) {
16
- this.publicKernelSimulator = publicKernelSimulator;
17
- this.globalVariables = globalVariables;
18
- this.worldStateDB = worldStateDB;
19
- this.enqueuedCallSimulator = enqueuedCallSimulator;
20
- this.publicKernelTailSimulator = publicKernelTailSimulator;
21
- this.log = createDebugLogger(`aztec:sequencer`);
22
- }
23
- static create(db, publicExecutor, publicKernelSimulator, globalVariables, historicalHeader, worldStateDB) {
24
- const enqueuedCallSimulator = new EnqueuedCallSimulator(db, publicExecutor, publicKernelSimulator, globalVariables, historicalHeader);
25
- const publicKernelTailSimulator = PublicKernelTailSimulator.create(db, publicKernelSimulator);
26
- return new EnqueuedCallsProcessor(publicKernelSimulator, globalVariables, worldStateDB, enqueuedCallSimulator, publicKernelTailSimulator);
27
- }
28
- static getExecutionRequestsByPhase(tx, phase) {
29
- switch (phase) {
30
- case PublicKernelPhase.SETUP:
31
- return tx.getNonRevertiblePublicExecutionRequests();
32
- case PublicKernelPhase.APP_LOGIC:
33
- return tx.getRevertiblePublicExecutionRequests();
34
- case PublicKernelPhase.TEARDOWN: {
35
- const request = tx.getPublicTeardownExecutionRequest();
36
- return request ? [request] : [];
37
- }
38
- default:
39
- throw new Error(`Unknown phase: ${phase}`);
40
- }
41
- }
42
- static getCallRequestsByPhase(tx, phase) {
43
- switch (phase) {
44
- case PublicKernelPhase.SETUP:
45
- return tx.data.getNonRevertiblePublicCallRequests();
46
- case PublicKernelPhase.APP_LOGIC:
47
- return tx.data.getRevertiblePublicCallRequests();
48
- case PublicKernelPhase.TEARDOWN: {
49
- const request = tx.data.getTeardownPublicCallRequest();
50
- return request ? [request] : [];
51
- }
52
- default:
53
- throw new Error(`Unknown phase: ${phase}`);
54
- }
55
- }
56
- async process(tx) {
57
- this.log.verbose(`Processing tx ${tx.getTxHash()}`);
58
- const phases = [
59
- PublicKernelPhase.SETUP,
60
- PublicKernelPhase.APP_LOGIC,
61
- PublicKernelPhase.TEARDOWN,
62
- ];
63
- const processedPhases = [];
64
- const gasUsed = {};
65
- let avmProvingRequest;
66
- let publicKernelOutput = tx.data.toPublicKernelCircuitPublicInputs();
67
- let isFromPrivate = true;
68
- let returnValues = [];
69
- let revertReason;
70
- for (let i = 0; i < phases.length; i++) {
71
- const phase = phases[i];
72
- const callRequests = EnqueuedCallsProcessor.getCallRequestsByPhase(tx, phase);
73
- if (callRequests.length) {
74
- const executionRequests = EnqueuedCallsProcessor.getExecutionRequestsByPhase(tx, phase);
75
- const result = await this.processPhase(tx, callRequests, executionRequests, publicKernelOutput, phase, isFromPrivate).catch(async (err) => {
76
- await this.worldStateDB.rollbackToCommit();
77
- throw err;
78
- });
79
- publicKernelOutput = result.publicKernelOutput;
80
- isFromPrivate = false;
81
- // Propagate only one avmProvingRequest of a function call for now, so that we know it's still provable.
82
- // Eventually this will be the proof for the entire public call stack.
83
- avmProvingRequest = result.avmProvingRequest;
84
- if (phase === PublicKernelPhase.APP_LOGIC) {
85
- returnValues = result.returnValues;
86
- }
87
- gasUsed[phase] = result.gasUsed;
88
- processedPhases.push({
89
- phase,
90
- durationMs: result.durationMs,
91
- revertReason: result.revertReason,
92
- });
93
- revertReason ?? (revertReason = result.revertReason);
94
- }
95
- }
96
- const tailKernelOutput = await this.publicKernelTailSimulator.simulate(publicKernelOutput).catch(
97
- // the abstract phase manager throws if simulation gives error in non-revertible phase
98
- async (err) => {
99
- await this.worldStateDB.rollbackToCommit();
100
- throw err;
101
- });
102
- return {
103
- avmProvingRequest: avmProvingRequest,
104
- tailKernelOutput,
105
- returnValues,
106
- gasUsed,
107
- processedPhases,
108
- revertReason,
109
- };
110
- }
111
- async processPhase(tx, callRequests, executionRequests, previousPublicKernelOutput, phase, isFromPrivate) {
112
- this.log.debug(`Beginning processing in phase ${PublicKernelPhase[phase]} for tx ${tx.getTxHash()}`);
113
- const phaseTimer = new Timer();
114
- const returnValues = [];
115
- let avmProvingRequest;
116
- let publicKernelOutput = previousPublicKernelOutput;
117
- let gasUsed = Gas.empty();
118
- let revertReason;
119
- for (let i = callRequests.length - 1; i >= 0 && !revertReason; i--) {
120
- const callRequest = callRequests[i];
121
- const executionRequest = executionRequests[i];
122
- // add new contracts to the contracts db so that their functions may be found and called
123
- // TODO(#4073): This is catching only private deployments, when we add public ones, we'll
124
- // have to capture contracts emitted in that phase as well.
125
- // TODO(@spalladino): Should we allow emitting contracts in the fee preparation phase?
126
- // TODO(#6464): Should we allow emitting contracts in the private setup phase?
127
- // if so, this should only add contracts that were deployed during private app logic.
128
- await this.worldStateDB.addNewContracts(tx);
129
- const availableGas = this.getAvailableGas(tx, publicKernelOutput, phase);
130
- const transactionFee = this.getTransactionFee(tx, publicKernelOutput, phase);
131
- const enqueuedCallResult = await this.enqueuedCallSimulator.simulate(callRequest, executionRequest, tx, publicKernelOutput, availableGas, transactionFee, phase);
132
- if (enqueuedCallResult.revertReason && !PhaseIsRevertible[phase]) {
133
- this.log.debug(`Simulation error on ${executionRequest.callContext.contractAddress}:${executionRequest.callContext.functionSelector} with reason: ${enqueuedCallResult.revertReason}`);
134
- throw enqueuedCallResult.revertReason;
135
- }
136
- avmProvingRequest = enqueuedCallResult.avmProvingRequest;
137
- returnValues.push(enqueuedCallResult.returnValues);
138
- gasUsed = gasUsed.add(enqueuedCallResult.gasUsed);
139
- revertReason ?? (revertReason = enqueuedCallResult.revertReason);
140
- if (revertReason) {
141
- // TODO(#6464): Should we allow emitting contracts in the private setup phase?
142
- // if so, this is removing contracts deployed in private setup
143
- await this.worldStateDB.removeNewContracts(tx);
144
- await this.worldStateDB.rollbackToCheckpoint();
145
- tx.filterRevertedLogs(publicKernelOutput);
146
- }
147
- else {
148
- // TODO(#6470): we should be adding contracts deployed in those logs to the publicContractsDB
149
- tx.unencryptedLogs.addFunctionLogs([enqueuedCallResult.newUnencryptedLogs]);
150
- }
151
- const output = await this.runMergeKernelCircuit(publicKernelOutput, enqueuedCallResult.kernelOutput, isFromPrivate);
152
- publicKernelOutput = output;
153
- isFromPrivate = false;
154
- }
155
- if (phase === PublicKernelPhase.SETUP) {
156
- await this.worldStateDB.checkpoint();
157
- }
158
- return {
159
- avmProvingRequest: avmProvingRequest,
160
- publicKernelOutput,
161
- durationMs: phaseTimer.ms(),
162
- gasUsed,
163
- returnValues: revertReason ? [] : returnValues,
164
- revertReason,
165
- };
166
- }
167
- getAvailableGas(tx, previousPublicKernelOutput, phase) {
168
- if (phase === PublicKernelPhase.TEARDOWN) {
169
- return tx.data.constants.txContext.gasSettings.getTeardownLimits();
170
- }
171
- else {
172
- return tx.data.constants.txContext.gasSettings
173
- .getLimits() // No need to subtract teardown limits since they are already included in end.gasUsed
174
- .sub(previousPublicKernelOutput.end.gasUsed)
175
- .sub(previousPublicKernelOutput.endNonRevertibleData.gasUsed);
176
- }
177
- }
178
- getTransactionFee(tx, previousPublicKernelOutput, phase) {
179
- if (phase !== PublicKernelPhase.TEARDOWN) {
180
- return Fr.ZERO;
181
- }
182
- else {
183
- const gasSettings = tx.data.constants.txContext.gasSettings;
184
- const gasFees = this.globalVariables.gasFees;
185
- // No need to add teardown limits since they are already included in end.gasUsed
186
- const gasUsed = previousPublicKernelOutput.end.gasUsed.add(previousPublicKernelOutput.endNonRevertibleData.gasUsed);
187
- const txFee = gasSettings.inclusionFee.add(gasUsed.computeFee(gasFees));
188
- this.log.debug(`Computed tx fee`, { txFee, gasUsed: inspect(gasUsed), gasFees: inspect(gasFees) });
189
- return txFee;
190
- }
191
- }
192
- async runMergeKernelCircuit(previousOutput, enqueuedCallData, isFromPrivate) {
193
- const previousKernel = this.getPreviousKernelData(previousOutput, isFromPrivate);
194
- // The proof is not used in simulation.
195
- const vmProof = makeEmptyProof();
196
- const callData = new EnqueuedCallData(enqueuedCallData, vmProof);
197
- const inputs = new PublicKernelCircuitPrivateInputs(previousKernel, callData);
198
- return await this.publicKernelSimulator.publicKernelCircuitMerge(inputs);
199
- }
200
- getPreviousKernelData(previousOutput, _isFromPrivate) {
201
- // The proof is not used in simulation.
202
- const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
203
- const vk = VerificationKeyData.makeFakeHonk();
204
- const vkIndex = 0;
205
- const siblingPath = getVKSiblingPath(vkIndex);
206
- return new PublicKernelData(previousOutput, proof, vk, vkIndex, siblingPath);
207
- }
208
- }
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbHNfcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9lbnF1ZXVlZF9jYWxsc19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU1MLGlCQUFpQixHQUdsQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsRUFBRSxFQUNGLEdBQUcsRUFJSCw2QkFBNkIsRUFFN0IsZ0NBQWdDLEVBRWhDLGdCQUFnQixFQUVoQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RSxNQUFNLGlCQUFpQixHQUF1QztJQUM1RCxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUs7SUFDaEMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJO0lBQ25DLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtDQUNuQyxDQUFDO0FBbUNGLE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDVSxxQkFBbUQsRUFDbkQsZUFBZ0MsRUFDaEMsWUFBMEIsRUFDMUIscUJBQTRDLEVBQzVDLHlCQUFvRDtRQUpwRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELG9CQUFlLEdB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
@@ -1,29 +0,0 @@
1
- import { type Fr, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, type MAX_NULLIFIERS_PER_TX, type MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, type MAX_PUBLIC_DATA_READS_PER_TX, type MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, type Nullifier, type NullifierLeafPreimage, type PublicDataRead, type PublicDataTreeLeafPreimage, type PublicDataUpdateRequest, type ScopedReadRequest, type TreeLeafReadRequest, TreeLeafReadRequestHint } from '@aztec/circuits.js';
2
- import { type Tuple } from '@aztec/foundation/serialize';
3
- import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
4
- import { type MerkleTreeReadOperations } from '@aztec/world-state';
5
- export declare class HintsBuilder {
6
- private db;
7
- constructor(db: MerkleTreeReadOperations);
8
- getNoteHashReadRequestsHints(readRequests: Tuple<TreeLeafReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>): Promise<[TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>, TreeLeafReadRequestHint<32>]>;
9
- getNullifierReadRequestHints(nullifierReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, pendingNullifiers: Tuple<Nullifier, typeof MAX_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierReadRequestHints<64, 64>>;
10
- getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests: Tuple<ScopedReadRequest, typeof MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX>, pendingNullifiers: Tuple<Nullifier, typeof MAX_NULLIFIERS_PER_TX>): Promise<import("@aztec/circuits.js").NullifierNonExistentReadRequestHints>;
11
- getL1ToL2MsgReadRequestsHints(readRequests: Tuple<TreeLeafReadRequest, typeof MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX>): Promise<[TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>, TreeLeafReadRequestHint<16>]>;
12
- getPublicDataHints(publicDataReads: Tuple<PublicDataRead, typeof MAX_PUBLIC_DATA_READS_PER_TX>, publicDataUpdateRequests: Tuple<PublicDataUpdateRequest, typeof MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX>): Promise<[import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint, import("@aztec/circuits.js").PublicDataLeafHint]>;
13
- getPublicDataHint(dataAction: PublicDataRead | PublicDataUpdateRequest | bigint): Promise<import("@aztec/circuits.js").PublicDataHint>;
14
- getNullifierMembershipWitness(nullifier: Fr): Promise<{
15
- membershipWitness: MembershipWitness<20>;
16
- leafPreimage: IndexedTreeLeafPreimage;
17
- }>;
18
- getLowNullifierMembershipWitness(nullifier: Fr): Promise<{
19
- membershipWitness: MembershipWitness<20>;
20
- leafPreimage: NullifierLeafPreimage;
21
- }>;
22
- getMatchOrLowPublicDataMembershipWitness(leafSlot: bigint): Promise<{
23
- membershipWitness: MembershipWitness<40>;
24
- leafPreimage: PublicDataTreeLeafPreimage;
25
- }>;
26
- private getMembershipWitnessWithPreimage;
27
- private getTreeLeafReadRequestsHints;
28
- }
29
- //# sourceMappingURL=hints_builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hints_builder.d.ts","sourceRoot":"","sources":["../../src/public/hints_builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EAEP,qCAAqC,EACrC,kCAAkC,EAClC,KAAK,qBAAqB,EAC1B,KAAK,+CAA+C,EACpD,kCAAkC,EAClC,KAAK,4BAA4B,EACjC,KAAK,sCAAsC,EAC3C,iBAAiB,EAGjB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,uBAAuB,EAKxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,wBAAwB;IAE1C,4BAA4B,CAChC,YAAY,EAAE,KAAK,CAAC,mBAAmB,EAAE,OAAO,kCAAkC,CAAC;IAU/E,4BAA4B,CAChC,qBAAqB,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EAC1F,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,qBAAqB,CAAC;IAWnE,uCAAuC,CACrC,gCAAgC,EAAE,KAAK,CAAC,iBAAiB,EAAE,OAAO,+CAA+C,CAAC,EAClH,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,qBAAqB,CAAC;IAK7D,6BAA6B,CACjC,YAAY,EAAE,KAAK,CAAC,mBAAmB,EAAE,OAAO,qCAAqC,CAAC;IAUxF,kBAAkB,CAChB,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,4BAA4B,CAAC,EAC3E,wBAAwB,EAAE,KAAK,CAAC,uBAAuB,EAAE,OAAO,sCAAsC,CAAC;IAKzG,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,uBAAuB,GAAG,MAAM;IAKzE,6BAA6B,CAAC,SAAS,EAAE,EAAE;;;;IAa3C,gCAAgC,CAAC,SAAS,EAAE,EAAE;;;;IAmB9C,wCAAwC,CAAC,QAAQ,EAAE,MAAM;;;;YAcjD,gCAAgC;YAehC,4BAA4B;CAgB3C"}
@@ -1,75 +0,0 @@
1
- import { MerkleTreeId } from '@aztec/circuit-types';
2
- import { L1_TO_L2_MSG_TREE_HEIGHT, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MembershipWitness, NOTE_HASH_TREE_HEIGHT, NULLIFIER_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, TreeLeafReadRequestHint, buildNullifierNonExistentReadRequestHints, buildPublicDataHint, buildPublicDataHints, buildSiloedNullifierReadRequestHints, } from '@aztec/circuits.js';
3
- import { makeTuple } from '@aztec/foundation/array';
4
- export class HintsBuilder {
5
- constructor(db) {
6
- this.db = db;
7
- }
8
- async getNoteHashReadRequestsHints(readRequests) {
9
- return await this.getTreeLeafReadRequestsHints(readRequests, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, MerkleTreeId.NOTE_HASH_TREE);
10
- }
11
- async getNullifierReadRequestHints(nullifierReadRequests, pendingNullifiers) {
12
- return await buildSiloedNullifierReadRequestHints(this, nullifierReadRequests, pendingNullifiers, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX);
13
- }
14
- getNullifierNonExistentReadRequestHints(nullifierNonExistentReadRequests, pendingNullifiers) {
15
- return buildNullifierNonExistentReadRequestHints(this, nullifierNonExistentReadRequests, pendingNullifiers);
16
- }
17
- async getL1ToL2MsgReadRequestsHints(readRequests) {
18
- return await this.getTreeLeafReadRequestsHints(readRequests, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, L1_TO_L2_MSG_TREE_HEIGHT, MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
19
- }
20
- getPublicDataHints(publicDataReads, publicDataUpdateRequests) {
21
- return buildPublicDataHints(this, publicDataReads, publicDataUpdateRequests);
22
- }
23
- getPublicDataHint(dataAction) {
24
- const slot = typeof dataAction === 'bigint' ? dataAction : dataAction.leafSlot.toBigInt();
25
- return buildPublicDataHint(this, slot);
26
- }
27
- async getNullifierMembershipWitness(nullifier) {
28
- const index = await this.db.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
29
- if (index === undefined) {
30
- throw new Error(`Cannot find the leaf for nullifier ${nullifier.toBigInt()}.`);
31
- }
32
- return this.getMembershipWitnessWithPreimage(MerkleTreeId.NULLIFIER_TREE, NULLIFIER_TREE_HEIGHT, index);
33
- }
34
- async getLowNullifierMembershipWitness(nullifier) {
35
- const res = await this.db.getPreviousValueIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBigInt());
36
- if (!res) {
37
- throw new Error(`Cannot find the low leaf for nullifier ${nullifier.toBigInt()}.`);
38
- }
39
- const { index, alreadyPresent } = res;
40
- if (alreadyPresent) {
41
- throw new Error(`Nullifier ${nullifier.toBigInt()} already exists in the tree.`);
42
- }
43
- // Should find a way to stop casting IndexedTreeLeafPreimage as NullifierLeafPreimage
44
- return this.getMembershipWitnessWithPreimage(MerkleTreeId.NULLIFIER_TREE, NULLIFIER_TREE_HEIGHT, index);
45
- }
46
- async getMatchOrLowPublicDataMembershipWitness(leafSlot) {
47
- const res = await this.db.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot);
48
- if (!res) {
49
- throw new Error(`Cannot find the previous value index for public data ${leafSlot}.`);
50
- }
51
- // Should find a way to stop casting IndexedTreeLeafPreimage as PublicDataTreeLeafPreimage everywhere.
52
- return this.getMembershipWitnessWithPreimage(MerkleTreeId.PUBLIC_DATA_TREE, PUBLIC_DATA_TREE_HEIGHT, res.index);
53
- }
54
- async getMembershipWitnessWithPreimage(treeId, treeHeight, index) {
55
- const siblingPath = await this.db.getSiblingPath(treeId, index);
56
- const membershipWitness = new MembershipWitness(treeHeight, index, siblingPath.toTuple());
57
- const leafPreimage = (await this.db.getLeafPreimage(treeId, index));
58
- if (!leafPreimage) {
59
- throw new Error(`Cannot find the leaf preimage for tree ${treeId} at index ${index}.`);
60
- }
61
- return { membershipWitness, leafPreimage };
62
- }
63
- async getTreeLeafReadRequestsHints(readRequests, size, treeHeight, treeId) {
64
- const hints = makeTuple(size, () => TreeLeafReadRequestHint.empty(treeHeight));
65
- for (let i = 0; i < readRequests.length; i++) {
66
- const request = readRequests[i];
67
- if (!request.isEmpty()) {
68
- const siblingPath = await this.db.getSiblingPath(treeId, request.leafIndex.toBigInt());
69
- hints[i] = new TreeLeafReadRequestHint(treeHeight, siblingPath.toTuple());
70
- }
71
- }
72
- return hints;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHNfYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvaGludHNfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLGtDQUFrQyxFQUdsQyxrQ0FBa0MsRUFHbEMsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFHckIsdUJBQXVCLEVBTXZCLHVCQUF1QixFQUN2Qix5Q0FBeUMsRUFDekMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixvQ0FBb0MsR0FDckMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsRUFBNEI7UUFBNUIsT0FBRSxHQUFGLEVBQUUsQ0FBMEI7SUFBRyxDQUFDO0lBRXBELEtBQUssQ0FBQyw0QkFBNEIsQ0FDaEMsWUFBbUY7UUFFbkYsT0FBTyxNQUFNLElBQUksQ0FBQyw0QkFBNEIsQ0FDNUMsWUFBWSxFQUNaLGtDQUFrQyxFQUNsQyxxQkFBcUIsRUFDckIsWUFBWSxDQUFDLGNBQWMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQ2hDLHFCQUEwRixFQUMxRixpQkFBaUU7UUFFakUsT0FBTyxNQUFNLG9DQUFvQyxDQUMvQyxJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixrQ0FBa0MsRUFDbEMsa0NBQWtDLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsdUNBQXVDLENBQ3JDLGdDQUFrSCxFQUNsSCxpQkFBaUU7UUFFakUsT0FBTyx5Q0FBeUMsQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RyxDQUFD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
@@ -1,30 +0,0 @@
1
- import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, type VMCircuitPublicInputs } from '@aztec/circuits.js';
2
- import { type SimulationProvider } from '../providers/simulation_provider.js';
3
- import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
4
- /**
5
- * Implements the PublicKernelCircuitSimulator.
6
- */
7
- export declare class RealPublicKernelCircuitSimulator implements PublicKernelCircuitSimulator {
8
- private simulator;
9
- private log;
10
- constructor(simulator: SimulationProvider);
11
- /**
12
- * Simulates the public kernel setup circuit from its inputs.
13
- * @param input - Inputs to the circuit.
14
- * @returns The public inputs as outputs of the simulation.
15
- */
16
- publicKernelCircuitInner(input: PublicKernelInnerCircuitPrivateInputs): Promise<VMCircuitPublicInputs>;
17
- /**
18
- * Simulates the public kernel app logic circuit from its inputs.
19
- * @param input - Inputs to the circuit.
20
- * @returns The public inputs as outputs of the simulation.
21
- */
22
- publicKernelCircuitMerge(input: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
23
- /**
24
- * Simulates the public kernel tail circuit from its inputs.
25
- * @param input - Inputs to the circuit.
26
- * @returns The public inputs as outputs of the simulation.
27
- */
28
- publicKernelCircuitTail(input: PublicKernelTailCircuitPrivateInputs): Promise<KernelCircuitPublicInputs>;
29
- }
30
- //# sourceMappingURL=public_kernel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,gCAAiC,YAAW,4BAA4B;IAGvE,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,GAAG,CAAsD;gBAE7C,SAAS,EAAE,kBAAkB;IAEjD;;;;OAIG;IACU,wBAAwB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBnH;;;;OAIG;IACU,wBAAwB,CACnC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAgB3C;;;;OAIG;IACU,uBAAuB,CAClC,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,yBAAyB,CAAC;CAetC"}
@@ -1,67 +0,0 @@
1
- import { createDebugLogger } from '@aztec/foundation/log';
2
- import { elapsed } from '@aztec/foundation/timer';
3
- import { SimulatedPublicKernelInnerArtifact, SimulatedPublicKernelMergeArtifact, SimulatedPublicKernelTailArtifact, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap, convertSimulatedPublicMergeInputsToWitnessMap, convertSimulatedPublicMergeOutputFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
4
- /**
5
- * Implements the PublicKernelCircuitSimulator.
6
- */
7
- export class RealPublicKernelCircuitSimulator {
8
- constructor(simulator) {
9
- this.simulator = simulator;
10
- this.log = createDebugLogger('aztec:public-kernel-simulator');
11
- }
12
- /**
13
- * Simulates the public kernel setup circuit from its inputs.
14
- * @param input - Inputs to the circuit.
15
- * @returns The public inputs as outputs of the simulation.
16
- */
17
- async publicKernelCircuitInner(input) {
18
- const inputWitness = convertSimulatedPublicInnerInputsToWitnessMap(input);
19
- const [duration, witness] = await elapsed(() => this.simulator.simulateCircuit(inputWitness, SimulatedPublicKernelInnerArtifact));
20
- const result = convertSimulatedPublicInnerOutputFromWitnessMap(witness);
21
- this.log.debug(`Simulated public kernel inner circuit`, {
22
- eventName: 'circuit-simulation',
23
- circuitName: 'public-kernel-inner',
24
- duration,
25
- inputSize: input.toBuffer().length,
26
- outputSize: result.toBuffer().length,
27
- });
28
- return result;
29
- }
30
- /**
31
- * Simulates the public kernel app logic circuit from its inputs.
32
- * @param input - Inputs to the circuit.
33
- * @returns The public inputs as outputs of the simulation.
34
- */
35
- async publicKernelCircuitMerge(input) {
36
- const inputWitness = convertSimulatedPublicMergeInputsToWitnessMap(input);
37
- const [duration, witness] = await elapsed(() => this.simulator.simulateCircuit(inputWitness, SimulatedPublicKernelMergeArtifact));
38
- const result = convertSimulatedPublicMergeOutputFromWitnessMap(witness);
39
- this.log.debug(`Simulated public kernel merge circuit`, {
40
- eventName: 'circuit-simulation',
41
- circuitName: 'public-kernel-merge',
42
- duration,
43
- inputSize: input.toBuffer().length,
44
- outputSize: result.toBuffer().length,
45
- });
46
- return result;
47
- }
48
- /**
49
- * Simulates the public kernel tail circuit from its inputs.
50
- * @param input - Inputs to the circuit.
51
- * @returns The public inputs as outputs of the simulation.
52
- */
53
- async publicKernelCircuitTail(input) {
54
- const inputWitness = convertSimulatedPublicTailInputsToWitnessMap(input);
55
- const [duration, witness] = await elapsed(() => this.simulator.simulateCircuit(inputWitness, SimulatedPublicKernelTailArtifact));
56
- const result = convertSimulatedPublicTailOutputFromWitnessMap(witness);
57
- this.log.debug(`Simulated public kernel tail circuit`, {
58
- eventName: 'circuit-simulation',
59
- circuitName: 'public-kernel-tail',
60
- duration,
61
- inputSize: input.toBuffer().length,
62
- outputSize: result.toBuffer().length,
63
- });
64
- return result;
65
- }
66
- }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxrQ0FBa0MsRUFDbEMsaUNBQWlDLEVBQ2pDLDZDQUE2QyxFQUM3QywrQ0FBK0MsRUFDL0MsNkNBQTZDLEVBQzdDLCtDQUErQyxFQUMvQyw0Q0FBNEMsRUFDNUMsOENBQThDLEdBQy9DLE1BQU0scUNBQXFDLENBQUM7QUFLN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0NBQWdDO0lBRzNDLFlBQW9CLFNBQTZCO1FBQTdCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBRnpDLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBRWIsQ0FBQztJQUVyRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQTRDO1FBQ2hGLE1BQU0sWUFBWSxHQUFHLDZDQUE2QyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxrQ0FBa0MsQ0FBQyxDQUNqRixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsK0NBQStDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUU7WUFDdEQsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHdCQUF3QixDQUNuQyxLQUF1QztRQUV2QyxNQUFNLFlBQVksR0FBRyw2Q0FBNkMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsa0NBQWtDLENBQUMsQ0FDakYsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLCtDQUErQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFO1lBQ3RELFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FDbEMsS0FBMkM7UUFFM0MsTUFBTSxZQUFZLEdBQUcsNENBQTRDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLGlDQUFpQyxDQUFDLENBQ2hGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyw4Q0FBOEMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRTtZQUNyRCxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsUUFBUTtZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDckMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
@@ -1,25 +0,0 @@
1
- import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, type VMCircuitPublicInputs } from '@aztec/circuits.js';
2
- /**
3
- * Circuit simulator for the public kernel circuits.
4
- */
5
- export interface PublicKernelCircuitSimulator {
6
- /**
7
- * Simulates the public kernel inner circuit from its inputs.
8
- * @param inputs - Inputs to the circuit.
9
- * @returns The public inputs as outputs of the simulation.
10
- */
11
- publicKernelCircuitInner(inputs: PublicKernelInnerCircuitPrivateInputs): Promise<VMCircuitPublicInputs>;
12
- /**
13
- * Simulates the public kernel merge circuit from its inputs.
14
- * @param inputs - Inputs to the circuit.
15
- * @returns The public inputs as outputs of the simulation.
16
- */
17
- publicKernelCircuitMerge(inputs: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
18
- /**
19
- * Simulates the public kernel tail circuit from its inputs.
20
- * @param inputs - Inputs to the circuit.
21
- * @returns The public inputs as outputs of the simulation.
22
- */
23
- publicKernelCircuitTail(inputs: PublicKernelTailCircuitPrivateInputs): Promise<KernelCircuitPublicInputs>;
24
- }
25
- //# sourceMappingURL=public_kernel_circuit_simulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_kernel_circuit_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel_circuit_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,qCAAqC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxG;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7G;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3G"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbF9jaXJjdWl0X3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbF9jaXJjdWl0X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,15 +0,0 @@
1
- import { type KernelCircuitPublicInputs, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
2
- import { type MerkleTreeReadOperations } from '@aztec/world-state';
3
- import { HintsBuilder } from './hints_builder.js';
4
- import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
5
- export declare class PublicKernelTailSimulator {
6
- private db;
7
- private publicKernelSimulator;
8
- private hintsBuilder;
9
- constructor(db: MerkleTreeReadOperations, publicKernelSimulator: PublicKernelCircuitSimulator, hintsBuilder: HintsBuilder);
10
- static create(db: MerkleTreeReadOperations, publicKernelSimulator: PublicKernelCircuitSimulator): PublicKernelTailSimulator;
11
- simulate(previousOutput: PublicKernelCircuitPublicInputs): Promise<KernelCircuitPublicInputs>;
12
- private buildPrivateInputs;
13
- private getPreviousKernelData;
14
- }
15
- //# sourceMappingURL=public_kernel_tail_simulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_kernel_tail_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel_tail_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAI9B,KAAK,+BAA+B,EAMrC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,qBAAa,yBAAyB;IAElC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,YAAY;gBAFZ,EAAE,EAAE,wBAAwB,EAC5B,qBAAqB,EAAE,4BAA4B,EACnD,YAAY,EAAE,YAAY;IAGpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,4BAA4B;IAKzF,QAAQ,CAAC,cAAc,EAAE,+BAA+B,GAAG,OAAO,CAAC,yBAAyB,CAAC;YAMrF,kBAAkB;IAqDhC,OAAO,CAAC,qBAAqB;CAO9B"}
@@ -1,39 +0,0 @@
1
- import { MAX_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_PROOF_LENGTH, PublicKernelData, PublicKernelTailCircuitPrivateInputs, VerificationKeyData, makeEmptyRecursiveProof, mergeAccumulatedData, } from '@aztec/circuits.js';
2
- import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types';
3
- import { HintsBuilder } from './hints_builder.js';
4
- export class PublicKernelTailSimulator {
5
- constructor(db, publicKernelSimulator, hintsBuilder) {
6
- this.db = db;
7
- this.publicKernelSimulator = publicKernelSimulator;
8
- this.hintsBuilder = hintsBuilder;
9
- }
10
- static create(db, publicKernelSimulator) {
11
- const hintsBuilder = new HintsBuilder(db);
12
- return new PublicKernelTailSimulator(db, publicKernelSimulator, hintsBuilder);
13
- }
14
- async simulate(previousOutput) {
15
- const inputs = await this.buildPrivateInputs(previousOutput);
16
- return await this.publicKernelSimulator.publicKernelCircuitTail(inputs);
17
- }
18
- async buildPrivateInputs(previousOutput) {
19
- const previousKernel = this.getPreviousKernelData(previousOutput);
20
- const { validationRequests, endNonRevertibleData: nonRevertibleData, end: revertibleData } = previousOutput;
21
- const noteHashReadRequestHints = await this.hintsBuilder.getNoteHashReadRequestsHints(validationRequests.noteHashReadRequests);
22
- const pendingNullifiers = mergeAccumulatedData(nonRevertibleData.nullifiers, revertibleData.nullifiers, MAX_NULLIFIERS_PER_TX);
23
- const nullifierReadRequestHints = await this.hintsBuilder.getNullifierReadRequestHints(validationRequests.nullifierReadRequests, pendingNullifiers);
24
- const nullifierNonExistentReadRequestHints = await this.hintsBuilder.getNullifierNonExistentReadRequestHints(validationRequests.nullifierNonExistentReadRequests, pendingNullifiers);
25
- const l1ToL2MsgReadRequestHints = await this.hintsBuilder.getL1ToL2MsgReadRequestsHints(validationRequests.l1ToL2MsgReadRequests);
26
- const pendingPublicDataWrites = mergeAccumulatedData(nonRevertibleData.publicDataUpdateRequests, revertibleData.publicDataUpdateRequests, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
27
- const publicDataHints = await this.hintsBuilder.getPublicDataHints(validationRequests.publicDataReads, pendingPublicDataWrites);
28
- const currentState = await this.db.getStateReference();
29
- return new PublicKernelTailCircuitPrivateInputs(previousKernel, noteHashReadRequestHints, nullifierReadRequestHints, nullifierNonExistentReadRequestHints, l1ToL2MsgReadRequestHints, publicDataHints, currentState.partial);
30
- }
31
- getPreviousKernelData(previousOutput) {
32
- const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
33
- const vk = VerificationKeyData.makeFakeHonk();
34
- const vkIndex = 0;
35
- const siblingPath = getVKSiblingPath(vkIndex);
36
- return new PublicKernelData(previousOutput, proof, vk, vkIndex, siblingPath);
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbF90YWlsX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbF90YWlsX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLHNDQUFzQyxFQUN0Qyw2QkFBNkIsRUFFN0IsZ0JBQWdCLEVBQ2hCLG9DQUFvQyxFQUNwQyxtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdsRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsRUFBNEIsRUFDNUIscUJBQW1ELEVBQ25ELFlBQTBCO1FBRjFCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBOEI7UUFDbkQsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDakMsQ0FBQztJQUVKLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBNEIsRUFBRSxxQkFBbUQ7UUFDN0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUErQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RCxPQUFPLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBK0M7UUFDOUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBRTVHLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUNuRixrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FDeEMsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQzVDLGlCQUFpQixDQUFDLFVBQVUsRUFDNUIsY0FBYyxDQUFDLFVBQVUsRUFDekIscUJBQXFCLENBQ3RCLENBQUM7UUFFRixNQUFNLHlCQUF5QixHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FDcEYsa0JBQWtCLENBQUMscUJBQXFCLEVBQ3hDLGlCQUFpQixDQUNsQixDQUFDO1FBRUYsTUFBTSxvQ0FBb0MsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsdUNBQXVDLENBQzFHLGtCQUFrQixDQUFDLGdDQUFnQyxFQUNuRCxpQkFBaUIsQ0FDbEIsQ0FBQztRQUVGLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUNyRixrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FDekMsQ0FBQztRQUVGLE1BQU0sdUJBQXVCLEdBQUcsb0JBQW9CLENBQ2xELGlCQUFpQixDQUFDLHdCQUF3QixFQUMxQyxjQUFjLENBQUMsd0JBQXdCLEVBQ3ZDLHNDQUFzQyxDQUN2QyxDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUNoRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQ2xDLHVCQUF1QixDQUN4QixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFdkQsT0FBTyxJQUFJLG9DQUFvQyxDQUM3QyxjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixvQ0FBb0MsRUFDcEMseUJBQXlCLEVBQ3pCLGVBQWUsRUFDZixZQUFZLENBQUMsT0FBTyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVPLHFCQUFxQixDQUFDLGNBQStDO1FBQzNFLE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDckUsTUFBTSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNGIn0=