@aztec/bb-prover 3.0.0-nightly.20250917 → 3.0.0-nightly.20250919

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.
@@ -10,32 +10,43 @@ import { sleep } from '@aztec/foundation/sleep';
10
10
  import { Timer } from '@aztec/foundation/timer';
11
11
  import {
12
12
  type ServerProtocolArtifact,
13
- convertBaseParityInputsToWitnessMap,
14
- convertBaseParityOutputsFromWitnessMap,
15
- convertBlockMergeRollupInputsToWitnessMap,
16
13
  convertBlockMergeRollupOutputsFromWitnessMap,
17
- convertEmptyBlockRootRollupInputsToWitnessMap,
18
- convertEmptyBlockRootRollupOutputsFromWitnessMap,
19
- convertMergeRollupInputsToWitnessMap,
20
- convertMergeRollupOutputsFromWitnessMap,
21
- convertPaddingBlockRootRollupInputsToWitnessMap,
22
- convertPaddingBlockRootRollupOutputsFromWitnessMap,
23
- convertRootParityInputsToWitnessMap,
24
- convertRootParityOutputsFromWitnessMap,
25
- convertRootRollupInputsToWitnessMap,
14
+ convertBlockMergeRollupPrivateInputsToWitnessMap,
15
+ convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap,
16
+ convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap,
17
+ convertBlockRootFirstRollupOutputsFromWitnessMap,
18
+ convertBlockRootFirstRollupPrivateInputsToWitnessMap,
19
+ convertBlockRootRollupOutputsFromWitnessMap,
20
+ convertBlockRootRollupPrivateInputsToWitnessMap,
21
+ convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap,
22
+ convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap,
23
+ convertBlockRootSingleTxRollupOutputsFromWitnessMap,
24
+ convertBlockRootSingleTxRollupPrivateInputsToWitnessMap,
25
+ convertCheckpointMergeRollupOutputsFromWitnessMap,
26
+ convertCheckpointMergeRollupPrivateInputsToWitnessMap,
27
+ convertCheckpointPaddingRollupOutputsFromWitnessMap,
28
+ convertCheckpointPaddingRollupPrivateInputsToWitnessMap,
29
+ convertCheckpointRootRollupOutputsFromWitnessMap,
30
+ convertCheckpointRootRollupPrivateInputsToWitnessMap,
31
+ convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap,
32
+ convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap,
33
+ convertParityBaseOutputsFromWitnessMap,
34
+ convertParityBasePrivateInputsToWitnessMap,
35
+ convertParityRootOutputsFromWitnessMap,
36
+ convertParityRootPrivateInputsToWitnessMap,
37
+ convertPrivateTxBaseRollupOutputsFromWitnessMap,
38
+ convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
39
+ convertPublicTxBaseRollupOutputsFromWitnessMap,
40
+ convertPublicTxBaseRollupPrivateInputsToWitnessMap,
26
41
  convertRootRollupOutputsFromWitnessMap,
27
- convertSimulatedBlockRootRollupInputsToWitnessMap,
28
- convertSimulatedBlockRootRollupOutputsFromWitnessMap,
29
- convertSimulatedPrivateBaseRollupInputsToWitnessMap,
30
- convertSimulatedPrivateBaseRollupOutputsFromWitnessMap,
31
- convertSimulatedPublicBaseRollupInputsToWitnessMap,
32
- convertSimulatedPublicBaseRollupOutputsFromWitnessMap,
33
- convertSimulatedSingleTxBlockRootRollupInputsToWitnessMap,
34
- convertSimulatedSingleTxBlockRootRollupOutputsFromWitnessMap,
42
+ convertRootRollupPrivateInputsToWitnessMap,
43
+ convertTxMergeRollupOutputsFromWitnessMap,
44
+ convertTxMergeRollupPrivateInputsToWitnessMap,
35
45
  foreignCallHandler,
36
46
  getSimulatedServerCircuitArtifact,
37
47
  } from '@aztec/noir-protocol-circuits-types/server';
38
48
  import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
49
+ import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
39
50
  import type { WitnessMap } from '@aztec/noir-types';
40
51
  import { type CircuitSimulator, WASMSimulatorWithBlobs, emitCircuitSimulationStats } from '@aztec/simulator/server';
41
52
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
@@ -47,28 +58,33 @@ import {
47
58
  makePublicInputsAndRecursiveProof,
48
59
  } from '@aztec/stdlib/interfaces/server';
49
60
  import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
50
- import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
61
+ import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
51
62
  import { type Proof, ProvingRequestType, makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
52
63
  import type {
53
- BaseOrMergeRollupPublicInputs,
54
- BlockMergeRollupInputs,
55
- BlockRootOrBlockMergePublicInputs,
56
- BlockRootRollupInputs,
57
- EmptyBlockRootRollupInputs,
58
- MergeRollupInputs,
59
- PaddingBlockRootRollupInputs,
60
- PrivateBaseRollupInputs,
61
- PublicBaseRollupInputs,
64
+ BlockMergeRollupPrivateInputs,
65
+ BlockRollupPublicInputs,
66
+ BlockRootEmptyTxFirstRollupPrivateInputs,
67
+ BlockRootFirstRollupPrivateInputs,
68
+ BlockRootRollupPrivateInputs,
69
+ BlockRootSingleTxFirstRollupPrivateInputs,
70
+ BlockRootSingleTxRollupPrivateInputs,
71
+ CheckpointMergeRollupPrivateInputs,
72
+ CheckpointPaddingRollupPrivateInputs,
73
+ CheckpointRollupPublicInputs,
74
+ CheckpointRootRollupPrivateInputs,
75
+ CheckpointRootSingleBlockRollupPrivateInputs,
76
+ PrivateTxBaseRollupPrivateInputs,
62
77
  PublicTubePrivateInputs,
63
- RootRollupInputs,
78
+ PublicTxBaseRollupPrivateInputs,
79
+ RootRollupPrivateInputs,
64
80
  RootRollupPublicInputs,
65
- SingleTxBlockRootRollupInputs,
81
+ TxMergeRollupPrivateInputs,
82
+ TxRollupPublicInputs,
66
83
  } from '@aztec/stdlib/rollup';
67
84
  import { VerificationKeyData } from '@aztec/stdlib/vks';
68
85
  import { type TelemetryClient, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
69
86
 
70
87
  import { ProverInstrumentation } from '../instrumentation.js';
71
- import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
72
88
  import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
73
89
 
74
90
  type TestDelay =
@@ -109,15 +125,15 @@ export class TestCircuitProver implements ServerCircuitProver {
109
125
  */
110
126
  @trackSpan('TestCircuitProver.getBaseParityProof')
111
127
  public getBaseParityProof(
112
- inputs: BaseParityInputs,
128
+ inputs: ParityBasePrivateInputs,
113
129
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
114
- return this.applyDelay(ProvingRequestType.BASE_PARITY, () =>
130
+ return this.applyDelay(ProvingRequestType.PARITY_BASE, () =>
115
131
  this.simulate(
116
132
  inputs,
117
- 'BaseParityArtifact',
133
+ 'ParityBaseArtifact',
118
134
  RECURSIVE_PROOF_LENGTH,
119
- convertBaseParityInputsToWitnessMap,
120
- convertBaseParityOutputsFromWitnessMap,
135
+ convertParityBasePrivateInputsToWitnessMap,
136
+ convertParityBaseOutputsFromWitnessMap,
121
137
  ),
122
138
  );
123
139
  }
@@ -129,15 +145,15 @@ export class TestCircuitProver implements ServerCircuitProver {
129
145
  */
130
146
  @trackSpan('TestCircuitProver.getRootParityProof')
131
147
  public getRootParityProof(
132
- inputs: RootParityInputs,
148
+ inputs: ParityRootPrivateInputs,
133
149
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
134
- return this.applyDelay(ProvingRequestType.ROOT_PARITY, () =>
150
+ return this.applyDelay(ProvingRequestType.PARITY_ROOT, () =>
135
151
  this.simulate(
136
152
  inputs,
137
- 'RootParityArtifact',
153
+ 'ParityRootArtifact',
138
154
  NESTED_RECURSIVE_PROOF_LENGTH,
139
- convertRootParityInputsToWitnessMap,
140
- convertRootParityOutputsFromWitnessMap,
155
+ convertParityRootPrivateInputsToWitnessMap,
156
+ convertParityRootOutputsFromWitnessMap,
141
157
  ),
142
158
  );
143
159
  }
@@ -159,36 +175,32 @@ export class TestCircuitProver implements ServerCircuitProver {
159
175
  );
160
176
  }
161
177
 
162
- @trackSpan('TestCircuitProver.getPrivateBaseRollupProof')
163
- public getPrivateBaseRollupProof(
164
- inputs: PrivateBaseRollupInputs,
165
- ): Promise<
166
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
167
- > {
168
- return this.applyDelay(ProvingRequestType.PRIVATE_BASE_ROLLUP, () =>
178
+ @trackSpan('TestCircuitProver.getPrivateTxBaseRollupProof')
179
+ public getPrivateTxBaseRollupProof(
180
+ inputs: PrivateTxBaseRollupPrivateInputs,
181
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
182
+ return this.applyDelay(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, () =>
169
183
  this.simulate(
170
184
  inputs,
171
- 'PrivateBaseRollupArtifact',
185
+ 'PrivateTxBaseRollupArtifact',
172
186
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
173
- convertSimulatedPrivateBaseRollupInputsToWitnessMap,
174
- convertSimulatedPrivateBaseRollupOutputsFromWitnessMap,
187
+ convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
188
+ convertPrivateTxBaseRollupOutputsFromWitnessMap,
175
189
  ),
176
190
  );
177
191
  }
178
192
 
179
- @trackSpan('TestCircuitProver.getPublicBaseRollupProof')
180
- public getPublicBaseRollupProof(
181
- inputs: PublicBaseRollupInputs,
182
- ): Promise<
183
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
184
- > {
185
- return this.applyDelay(ProvingRequestType.PUBLIC_BASE_ROLLUP, () =>
193
+ @trackSpan('TestCircuitProver.getPublicTxBaseRollupProof')
194
+ public getPublicTxBaseRollupProof(
195
+ inputs: PublicTxBaseRollupPrivateInputs,
196
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
197
+ return this.applyDelay(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, () =>
186
198
  this.simulate(
187
199
  inputs,
188
- 'PublicBaseRollupArtifact',
200
+ 'PublicTxBaseRollupArtifact',
189
201
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
190
- convertSimulatedPublicBaseRollupInputsToWitnessMap,
191
- convertSimulatedPublicBaseRollupOutputsFromWitnessMap,
202
+ convertPublicTxBaseRollupPrivateInputsToWitnessMap,
203
+ convertPublicTxBaseRollupOutputsFromWitnessMap,
192
204
  ),
193
205
  );
194
206
  }
@@ -198,119 +210,175 @@ export class TestCircuitProver implements ServerCircuitProver {
198
210
  * @param input - Inputs to the circuit.
199
211
  * @returns The public inputs as outputs of the simulation.
200
212
  */
201
- @trackSpan('TestCircuitProver.getMergeRollupProof')
202
- public getMergeRollupProof(
203
- input: MergeRollupInputs,
204
- ): Promise<
205
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
206
- > {
207
- return this.applyDelay(ProvingRequestType.MERGE_ROLLUP, () =>
213
+ @trackSpan('TestCircuitProver.getTxMergeRollupProof')
214
+ public getTxMergeRollupProof(
215
+ input: TxMergeRollupPrivateInputs,
216
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
217
+ return this.applyDelay(ProvingRequestType.TX_MERGE_ROLLUP, () =>
208
218
  this.simulate(
209
219
  input,
210
- 'MergeRollupArtifact',
220
+ 'TxMergeRollupArtifact',
211
221
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
212
- convertMergeRollupInputsToWitnessMap,
213
- convertMergeRollupOutputsFromWitnessMap,
222
+ convertTxMergeRollupPrivateInputsToWitnessMap,
223
+ convertTxMergeRollupOutputsFromWitnessMap,
224
+ ),
225
+ );
226
+ }
227
+
228
+ @trackSpan('TestCircuitProver.getBlockRootFirstRollupProof')
229
+ public getBlockRootFirstRollupProof(
230
+ input: BlockRootFirstRollupPrivateInputs,
231
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
232
+ return this.applyDelay(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, () =>
233
+ this.simulate(
234
+ input,
235
+ 'BlockRootFirstRollupArtifact',
236
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
237
+ convertBlockRootFirstRollupPrivateInputsToWitnessMap,
238
+ convertBlockRootFirstRollupOutputsFromWitnessMap,
239
+ ),
240
+ );
241
+ }
242
+
243
+ @trackSpan('TestCircuitProver.getBlockRootSingleTxFirstRollupProof')
244
+ public async getBlockRootSingleTxFirstRollupProof(
245
+ input: BlockRootSingleTxFirstRollupPrivateInputs,
246
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
247
+ return await this.applyDelay(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP, () =>
248
+ this.simulate(
249
+ input,
250
+ 'BlockRootSingleTxFirstRollupArtifact',
251
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
252
+ convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap,
253
+ convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap,
254
+ ),
255
+ );
256
+ }
257
+
258
+ @trackSpan('TestCircuitProver.getBlockRootEmptyTxFirstRollupProof')
259
+ public getBlockRootEmptyTxFirstRollupProof(
260
+ input: BlockRootEmptyTxFirstRollupPrivateInputs,
261
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
262
+ return this.applyDelay(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP, () =>
263
+ this.simulate(
264
+ input,
265
+ 'BlockRootEmptyTxFirstRollupArtifact',
266
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
267
+ convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap,
268
+ convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap,
214
269
  ),
215
270
  );
216
271
  }
217
272
 
218
- /**
219
- * Simulates the block root rollup circuit from its inputs.
220
- * @param input - Inputs to the circuit.
221
- * @returns The public inputs as outputs of the simulation.
222
- */
223
273
  @trackSpan('TestCircuitProver.getBlockRootRollupProof')
224
274
  public getBlockRootRollupProof(
225
- input: BlockRootRollupInputs,
226
- ): Promise<
227
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
228
- > {
275
+ input: BlockRootRollupPrivateInputs,
276
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
229
277
  return this.applyDelay(ProvingRequestType.BLOCK_ROOT_ROLLUP, () =>
230
278
  this.simulate(
231
279
  input,
232
280
  'BlockRootRollupArtifact',
233
281
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
234
- convertSimulatedBlockRootRollupInputsToWitnessMap,
235
- convertSimulatedBlockRootRollupOutputsFromWitnessMap,
282
+ convertBlockRootRollupPrivateInputsToWitnessMap,
283
+ convertBlockRootRollupOutputsFromWitnessMap,
236
284
  ),
237
285
  );
238
286
  }
239
287
 
240
- @trackSpan('TestCircuitProver.getSingleTxBlockRootRollupProof')
241
- public async getSingleTxBlockRootRollupProof(
242
- input: SingleTxBlockRootRollupInputs,
288
+ @trackSpan('TestCircuitProver.getBlockRootSingleTxRollupProof')
289
+ public async getBlockRootSingleTxRollupProof(
290
+ input: BlockRootSingleTxRollupPrivateInputs,
291
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
292
+ return await this.applyDelay(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP, () =>
293
+ this.simulate(
294
+ input,
295
+ 'BlockRootSingleTxRollupArtifact',
296
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
297
+ convertBlockRootSingleTxRollupPrivateInputsToWitnessMap,
298
+ convertBlockRootSingleTxRollupOutputsFromWitnessMap,
299
+ ),
300
+ );
301
+ }
302
+
303
+ @trackSpan('TestCircuitProver.getBlockMergeRollupProof')
304
+ public getBlockMergeRollupProof(
305
+ input: BlockMergeRollupPrivateInputs,
306
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
307
+ return this.applyDelay(ProvingRequestType.BLOCK_MERGE_ROLLUP, () =>
308
+ this.simulate(
309
+ input,
310
+ 'BlockMergeRollupArtifact',
311
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
312
+ convertBlockMergeRollupPrivateInputsToWitnessMap,
313
+ convertBlockMergeRollupOutputsFromWitnessMap,
314
+ ),
315
+ );
316
+ }
317
+
318
+ @trackSpan('TestCircuitProver.getCheckpointRootRollupProof')
319
+ public getCheckpointRootRollupProof(
320
+ input: CheckpointRootRollupPrivateInputs,
243
321
  ): Promise<
244
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
322
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
245
323
  > {
246
- return await this.applyDelay(ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP, () =>
324
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP, () =>
247
325
  this.simulate(
248
326
  input,
249
- 'SingleTxBlockRootRollupArtifact',
327
+ 'CheckpointRootRollupArtifact',
250
328
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
251
- convertSimulatedSingleTxBlockRootRollupInputsToWitnessMap,
252
- convertSimulatedSingleTxBlockRootRollupOutputsFromWitnessMap,
329
+ convertCheckpointRootRollupPrivateInputsToWitnessMap,
330
+ convertCheckpointRootRollupOutputsFromWitnessMap,
253
331
  ),
254
332
  );
255
333
  }
256
334
 
257
- /**
258
- * Simulates the empty block root rollup circuit from its inputs.
259
- * @param input - Inputs to the circuit.
260
- * @returns The public inputs as outputs of the simulation.
261
- */
262
- @trackSpan('TestCircuitProver.getEmptyBlockRootRollupProof')
263
- public getEmptyBlockRootRollupProof(
264
- input: EmptyBlockRootRollupInputs,
335
+ @trackSpan('TestCircuitProver.getCheckpointRootSingleBlockRollupProof')
336
+ public getCheckpointRootSingleBlockRollupProof(
337
+ input: CheckpointRootSingleBlockRollupPrivateInputs,
265
338
  ): Promise<
266
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
339
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
267
340
  > {
268
- return this.applyDelay(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, () =>
341
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP, () =>
269
342
  this.simulate(
270
343
  input,
271
- 'EmptyBlockRootRollupArtifact',
344
+ 'CheckpointRootSingleBlockRollupArtifact',
272
345
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
273
- convertEmptyBlockRootRollupInputsToWitnessMap,
274
- convertEmptyBlockRootRollupOutputsFromWitnessMap,
346
+ convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap,
347
+ convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap,
275
348
  ),
276
349
  );
277
350
  }
278
351
 
279
- @trackSpan('TestCircuitProver.getPaddingBlockRootRollupProof')
280
- public getPaddingBlockRootRollupProof(
281
- input: PaddingBlockRootRollupInputs,
352
+ @trackSpan('TestCircuitProver.getCheckpointPaddingRollupProof')
353
+ public getCheckpointPaddingRollupProof(
354
+ input: CheckpointPaddingRollupPrivateInputs,
282
355
  ): Promise<
283
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
356
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
284
357
  > {
285
- return this.applyDelay(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP, () =>
358
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP, () =>
286
359
  this.simulate(
287
360
  input,
288
- 'PaddingBlockRootRollupArtifact',
361
+ 'CheckpointPaddingRollupArtifact',
289
362
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
290
- convertPaddingBlockRootRollupInputsToWitnessMap,
291
- convertPaddingBlockRootRollupOutputsFromWitnessMap,
363
+ convertCheckpointPaddingRollupPrivateInputsToWitnessMap,
364
+ convertCheckpointPaddingRollupOutputsFromWitnessMap,
292
365
  ),
293
366
  );
294
367
  }
295
368
 
296
- /**
297
- * Simulates the block merge rollup circuit from its inputs.
298
- * @param input - Inputs to the circuit.
299
- * @returns The public inputs as outputs of the simulation.
300
- */
301
- @trackSpan('TestCircuitProver.getBlockMergeRollupProof')
302
- public getBlockMergeRollupProof(
303
- input: BlockMergeRollupInputs,
369
+ @trackSpan('TestCircuitProver.getCheckpointMergeRollupProof')
370
+ public getCheckpointMergeRollupProof(
371
+ input: CheckpointMergeRollupPrivateInputs,
304
372
  ): Promise<
305
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
373
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
306
374
  > {
307
- return this.applyDelay(ProvingRequestType.BLOCK_MERGE_ROLLUP, () =>
375
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP, () =>
308
376
  this.simulate(
309
377
  input,
310
- 'BlockMergeRollupArtifact',
378
+ 'CheckpointMergeRollupArtifact',
311
379
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
312
- convertBlockMergeRollupInputsToWitnessMap,
313
- convertBlockMergeRollupOutputsFromWitnessMap,
380
+ convertCheckpointMergeRollupPrivateInputsToWitnessMap,
381
+ convertCheckpointMergeRollupOutputsFromWitnessMap,
314
382
  ),
315
383
  );
316
384
  }
@@ -321,13 +389,15 @@ export class TestCircuitProver implements ServerCircuitProver {
321
389
  * @returns The public inputs as outputs of the simulation.
322
390
  */
323
391
  @trackSpan('TestCircuitProver.getRootRollupProof')
324
- public getRootRollupProof(input: RootRollupInputs): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
392
+ public getRootRollupProof(
393
+ input: RootRollupPrivateInputs,
394
+ ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
325
395
  return this.applyDelay(ProvingRequestType.ROOT_ROLLUP, () =>
326
396
  this.simulate(
327
397
  input,
328
398
  'RootRollupArtifact',
329
399
  NESTED_RECURSIVE_PROOF_LENGTH,
330
- convertRootRollupInputsToWitnessMap,
400
+ convertRootRollupPrivateInputsToWitnessMap,
331
401
  convertRootRollupOutputsFromWitnessMap,
332
402
  ),
333
403
  );
@@ -374,21 +444,20 @@ export class TestCircuitProver implements ServerCircuitProver {
374
444
  input: CircuitInputType,
375
445
  artifactName: ServerProtocolArtifact,
376
446
  proofLength: PROOF_LENGTH,
377
- convertInput: (input: CircuitInputType) => WitnessMap,
378
- convertOutput: (outputWitness: WitnessMap) => CircuitOutputType,
447
+ convertInput: (input: CircuitInputType, simulated?: boolean) => WitnessMap,
448
+ convertOutput: (outputWitness: WitnessMap, simulated?: boolean) => CircuitOutputType,
379
449
  ) {
380
450
  const timer = new Timer();
381
- const witnessMap = convertInput(input);
451
+ const witnessMap = convertInput(input, true /* simulated */);
382
452
  const circuitName = mapProtocolArtifactNameToCircuitName(artifactName);
383
453
 
384
454
  let witness: WitnessMap;
385
455
  if (
386
- ['BlockRootRollupArtifact', 'SingleTxBlockRootRollupArtifact'].includes(artifactName) ||
456
+ ['CheckpointRootRollupArtifact', 'CheckpointRootSingleBlockRollupArtifact'].includes(artifactName) ||
387
457
  this.simulator == undefined
388
458
  ) {
389
459
  // TODO(#10323): Native ACVM simulator does not support foreign call handler so we use the wasm simulator
390
- // when simulating block root rollup and single tx block root rollup circuits or when the native ACVM simulator
391
- // is not provided.
460
+ // when simulating checkpoint root rollup circuits or when the native ACVM simulator is not provided.
392
461
  witness = (
393
462
  await this.wasmSimulator.executeProtocolCircuit(
394
463
  witnessMap,
@@ -406,7 +475,7 @@ export class TestCircuitProver implements ServerCircuitProver {
406
475
  ).witness;
407
476
  }
408
477
 
409
- const result = convertOutput(witness);
478
+ const result = convertOutput(witness, true /* simulated */);
410
479
 
411
480
  this.instrumentation.recordDuration('simulationDuration', circuitName, timer);
412
481
  emitCircuitSimulationStats(circuitName, timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
@@ -2,10 +2,11 @@ import { runInDirectory } from '@aztec/foundation/fs';
2
2
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
3
  import { Timer } from '@aztec/foundation/timer';
4
4
  import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
5
- import type {
6
- ClientProtocolArtifact,
7
- ProtocolArtifact,
8
- ServerProtocolArtifact,
5
+ import {
6
+ type ClientProtocolArtifact,
7
+ type ProtocolArtifact,
8
+ type ServerProtocolArtifact,
9
+ mapProtocolArtifactNameToCircuitName,
9
10
  } from '@aztec/noir-protocol-circuits-types/types';
10
11
  import type { ClientProtocolCircuitVerifier, IVCProofVerificationResult } from '@aztec/stdlib/interfaces/server';
11
12
  import type { Proof } from '@aztec/stdlib/proofs';
@@ -27,7 +28,6 @@ import {
27
28
  import type { BBConfig } from '../config.js';
28
29
  import { getUltraHonkFlavorForCircuit } from '../honk.js';
29
30
  import { writeClientIVCProofToPath } from '../prover/proof_utils.js';
30
- import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
31
31
 
32
32
  export class BBCircuitVerifier implements ClientProtocolCircuitVerifier {
33
33
  private constructor(
package/dest/stats.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
2
- import type { CircuitName } from '@aztec/stdlib/stats';
3
- export declare function mapProtocolArtifactNameToCircuitName(artifact: ProtocolArtifact): CircuitName;
4
- //# sourceMappingURL=stats.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,WAAW,CA6C5F"}
package/dest/stats.js DELETED
@@ -1,47 +0,0 @@
1
- export function mapProtocolArtifactNameToCircuitName(artifact) {
2
- switch(artifact){
3
- case 'BaseParityArtifact':
4
- return 'base-parity';
5
- case 'RootParityArtifact':
6
- return 'root-parity';
7
- case 'PublicTube':
8
- return 'public-tube';
9
- case 'PrivateBaseRollupArtifact':
10
- return 'private-base-rollup';
11
- case 'PublicBaseRollupArtifact':
12
- return 'public-base-rollup';
13
- case 'MergeRollupArtifact':
14
- return 'merge-rollup';
15
- case 'BlockRootRollupArtifact':
16
- return 'block-root-rollup';
17
- case 'SingleTxBlockRootRollupArtifact':
18
- return 'single-tx-block-root-rollup';
19
- case 'EmptyBlockRootRollupArtifact':
20
- return 'empty-block-root-rollup';
21
- case 'PaddingBlockRootRollupArtifact':
22
- return 'padding-block-root-rollup';
23
- case 'BlockMergeRollupArtifact':
24
- return 'block-merge-rollup';
25
- case 'RootRollupArtifact':
26
- return 'root-rollup';
27
- case 'PrivateKernelInitArtifact':
28
- return 'private-kernel-init';
29
- case 'PrivateKernelInnerArtifact':
30
- return 'private-kernel-inner';
31
- case 'PrivateKernelTailArtifact':
32
- return 'private-kernel-tail';
33
- case 'PrivateKernelTailToPublicArtifact':
34
- return 'private-kernel-tail-to-public';
35
- case 'HidingKernelToRollup':
36
- return 'hiding-kernel-to-rollup';
37
- case 'HidingKernelToPublic':
38
- return 'hiding-kernel-to-public';
39
- default:
40
- {
41
- if (artifact.startsWith('PrivateKernelReset')) {
42
- return 'private-kernel-reset';
43
- }
44
- throw new Error(`Unknown circuit type: ${artifact}`);
45
- }
46
- }
47
- }
package/src/stats.ts DELETED
@@ -1,49 +0,0 @@
1
- import type { ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
2
- import type { CircuitName } from '@aztec/stdlib/stats';
3
-
4
- export function mapProtocolArtifactNameToCircuitName(artifact: ProtocolArtifact): CircuitName {
5
- switch (artifact) {
6
- case 'BaseParityArtifact':
7
- return 'base-parity';
8
- case 'RootParityArtifact':
9
- return 'root-parity';
10
- case 'PublicTube':
11
- return 'public-tube';
12
- case 'PrivateBaseRollupArtifact':
13
- return 'private-base-rollup';
14
- case 'PublicBaseRollupArtifact':
15
- return 'public-base-rollup';
16
- case 'MergeRollupArtifact':
17
- return 'merge-rollup';
18
- case 'BlockRootRollupArtifact':
19
- return 'block-root-rollup';
20
- case 'SingleTxBlockRootRollupArtifact':
21
- return 'single-tx-block-root-rollup';
22
- case 'EmptyBlockRootRollupArtifact':
23
- return 'empty-block-root-rollup';
24
- case 'PaddingBlockRootRollupArtifact':
25
- return 'padding-block-root-rollup';
26
- case 'BlockMergeRollupArtifact':
27
- return 'block-merge-rollup';
28
- case 'RootRollupArtifact':
29
- return 'root-rollup';
30
- case 'PrivateKernelInitArtifact':
31
- return 'private-kernel-init';
32
- case 'PrivateKernelInnerArtifact':
33
- return 'private-kernel-inner';
34
- case 'PrivateKernelTailArtifact':
35
- return 'private-kernel-tail';
36
- case 'PrivateKernelTailToPublicArtifact':
37
- return 'private-kernel-tail-to-public';
38
- case 'HidingKernelToRollup':
39
- return 'hiding-kernel-to-rollup';
40
- case 'HidingKernelToPublic':
41
- return 'hiding-kernel-to-public';
42
- default: {
43
- if (artifact.startsWith('PrivateKernelReset')) {
44
- return 'private-kernel-reset';
45
- }
46
- throw new Error(`Unknown circuit type: ${artifact}`);
47
- }
48
- }
49
- }