@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.
@@ -8,15 +8,15 @@ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN
8
8
  import { createLogger } from '@aztec/foundation/log';
9
9
  import { sleep } from '@aztec/foundation/sleep';
10
10
  import { Timer } from '@aztec/foundation/timer';
11
- import { convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap, convertEmptyBlockRootRollupInputsToWitnessMap, convertEmptyBlockRootRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPaddingBlockRootRollupInputsToWitnessMap, convertPaddingBlockRootRollupOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBlockRootRollupInputsToWitnessMap, convertSimulatedBlockRootRollupOutputsFromWitnessMap, convertSimulatedPrivateBaseRollupInputsToWitnessMap, convertSimulatedPrivateBaseRollupOutputsFromWitnessMap, convertSimulatedPublicBaseRollupInputsToWitnessMap, convertSimulatedPublicBaseRollupOutputsFromWitnessMap, convertSimulatedSingleTxBlockRootRollupInputsToWitnessMap, convertSimulatedSingleTxBlockRootRollupOutputsFromWitnessMap, foreignCallHandler, getSimulatedServerCircuitArtifact } from '@aztec/noir-protocol-circuits-types/server';
11
+ import { convertBlockMergeRollupOutputsFromWitnessMap, convertBlockMergeRollupPrivateInputsToWitnessMap, convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap, convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertBlockRootRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap, convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxRollupOutputsFromWitnessMap, convertBlockRootSingleTxRollupPrivateInputsToWitnessMap, convertCheckpointMergeRollupOutputsFromWitnessMap, convertCheckpointMergeRollupPrivateInputsToWitnessMap, convertCheckpointPaddingRollupOutputsFromWitnessMap, convertCheckpointPaddingRollupPrivateInputsToWitnessMap, convertCheckpointRootRollupOutputsFromWitnessMap, convertCheckpointRootRollupPrivateInputsToWitnessMap, convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap, convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap, convertParityBasePrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap, convertParityRootPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertRootRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap, convertTxMergeRollupPrivateInputsToWitnessMap, foreignCallHandler, getSimulatedServerCircuitArtifact } from '@aztec/noir-protocol-circuits-types/server';
12
12
  import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
13
+ import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
13
14
  import { WASMSimulatorWithBlobs, emitCircuitSimulationStats } from '@aztec/simulator/server';
14
15
  import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
15
16
  import { ProvingRequestType, makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
16
17
  import { VerificationKeyData } from '@aztec/stdlib/vks';
17
18
  import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
18
19
  import { ProverInstrumentation } from '../instrumentation.js';
19
- import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
20
20
  import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
21
21
  /**
22
22
  * A class for use in testing situations (e2e, unit test, etc) and temporarily for assembling a block in the sequencer.
@@ -45,64 +45,67 @@ import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
45
45
  * @param inputs - Inputs to the circuit.
46
46
  * @returns The public inputs of the parity circuit.
47
47
  */ getBaseParityProof(inputs) {
48
- return this.applyDelay(ProvingRequestType.BASE_PARITY, ()=>this.simulate(inputs, 'BaseParityArtifact', RECURSIVE_PROOF_LENGTH, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap));
48
+ return this.applyDelay(ProvingRequestType.PARITY_BASE, ()=>this.simulate(inputs, 'ParityBaseArtifact', RECURSIVE_PROOF_LENGTH, convertParityBasePrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap));
49
49
  }
50
50
  /**
51
51
  * Simulates the root parity circuit from its inputs.
52
52
  * @param inputs - Inputs to the circuit.
53
53
  * @returns The public inputs of the parity circuit.
54
54
  */ getRootParityProof(inputs) {
55
- return this.applyDelay(ProvingRequestType.ROOT_PARITY, ()=>this.simulate(inputs, 'RootParityArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap));
55
+ return this.applyDelay(ProvingRequestType.PARITY_ROOT, ()=>this.simulate(inputs, 'ParityRootArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertParityRootPrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap));
56
56
  }
57
57
  getPublicTubeProof(inputs) {
58
58
  return this.applyDelay(ProvingRequestType.PUBLIC_TUBE, ()=>makePublicInputsAndRecursiveProof(inputs.hidingKernelProofData.publicInputs, makeEmptyRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), ProtocolCircuitVks.PublicTube));
59
59
  }
60
- getPrivateBaseRollupProof(inputs) {
61
- return this.applyDelay(ProvingRequestType.PRIVATE_BASE_ROLLUP, ()=>this.simulate(inputs, 'PrivateBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertSimulatedPrivateBaseRollupInputsToWitnessMap, convertSimulatedPrivateBaseRollupOutputsFromWitnessMap));
60
+ getPrivateTxBaseRollupProof(inputs) {
61
+ return this.applyDelay(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, ()=>this.simulate(inputs, 'PrivateTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap));
62
62
  }
63
- getPublicBaseRollupProof(inputs) {
64
- return this.applyDelay(ProvingRequestType.PUBLIC_BASE_ROLLUP, ()=>this.simulate(inputs, 'PublicBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertSimulatedPublicBaseRollupInputsToWitnessMap, convertSimulatedPublicBaseRollupOutputsFromWitnessMap));
63
+ getPublicTxBaseRollupProof(inputs) {
64
+ return this.applyDelay(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, ()=>this.simulate(inputs, 'PublicTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap));
65
65
  }
66
66
  /**
67
67
  * Simulates the merge rollup circuit from its inputs.
68
68
  * @param input - Inputs to the circuit.
69
69
  * @returns The public inputs as outputs of the simulation.
70
- */ getMergeRollupProof(input) {
71
- return this.applyDelay(ProvingRequestType.MERGE_ROLLUP, ()=>this.simulate(input, 'MergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap));
70
+ */ getTxMergeRollupProof(input) {
71
+ return this.applyDelay(ProvingRequestType.TX_MERGE_ROLLUP, ()=>this.simulate(input, 'TxMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertTxMergeRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap));
72
72
  }
73
- /**
74
- * Simulates the block root rollup circuit from its inputs.
75
- * @param input - Inputs to the circuit.
76
- * @returns The public inputs as outputs of the simulation.
77
- */ getBlockRootRollupProof(input) {
78
- return this.applyDelay(ProvingRequestType.BLOCK_ROOT_ROLLUP, ()=>this.simulate(input, 'BlockRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertSimulatedBlockRootRollupInputsToWitnessMap, convertSimulatedBlockRootRollupOutputsFromWitnessMap));
73
+ getBlockRootFirstRollupProof(input) {
74
+ return this.applyDelay(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, ()=>this.simulate(input, 'BlockRootFirstRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap));
79
75
  }
80
- async getSingleTxBlockRootRollupProof(input) {
81
- return await this.applyDelay(ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP, ()=>this.simulate(input, 'SingleTxBlockRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertSimulatedSingleTxBlockRootRollupInputsToWitnessMap, convertSimulatedSingleTxBlockRootRollupOutputsFromWitnessMap));
76
+ async getBlockRootSingleTxFirstRollupProof(input) {
77
+ return await this.applyDelay(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP, ()=>this.simulate(input, 'BlockRootSingleTxFirstRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap));
82
78
  }
83
- /**
84
- * Simulates the empty block root rollup circuit from its inputs.
85
- * @param input - Inputs to the circuit.
86
- * @returns The public inputs as outputs of the simulation.
87
- */ getEmptyBlockRootRollupProof(input) {
88
- return this.applyDelay(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, ()=>this.simulate(input, 'EmptyBlockRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertEmptyBlockRootRollupInputsToWitnessMap, convertEmptyBlockRootRollupOutputsFromWitnessMap));
79
+ getBlockRootEmptyTxFirstRollupProof(input) {
80
+ return this.applyDelay(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP, ()=>this.simulate(input, 'BlockRootEmptyTxFirstRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap));
89
81
  }
90
- getPaddingBlockRootRollupProof(input) {
91
- return this.applyDelay(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP, ()=>this.simulate(input, 'PaddingBlockRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPaddingBlockRootRollupInputsToWitnessMap, convertPaddingBlockRootRollupOutputsFromWitnessMap));
82
+ getBlockRootRollupProof(input) {
83
+ return this.applyDelay(ProvingRequestType.BLOCK_ROOT_ROLLUP, ()=>this.simulate(input, 'BlockRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootRollupPrivateInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap));
92
84
  }
93
- /**
94
- * Simulates the block merge rollup circuit from its inputs.
95
- * @param input - Inputs to the circuit.
96
- * @returns The public inputs as outputs of the simulation.
97
- */ getBlockMergeRollupProof(input) {
98
- return this.applyDelay(ProvingRequestType.BLOCK_MERGE_ROLLUP, ()=>this.simulate(input, 'BlockMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap));
85
+ async getBlockRootSingleTxRollupProof(input) {
86
+ return await this.applyDelay(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP, ()=>this.simulate(input, 'BlockRootSingleTxRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootSingleTxRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxRollupOutputsFromWitnessMap));
87
+ }
88
+ getBlockMergeRollupProof(input) {
89
+ return this.applyDelay(ProvingRequestType.BLOCK_MERGE_ROLLUP, ()=>this.simulate(input, 'BlockMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockMergeRollupPrivateInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap));
90
+ }
91
+ getCheckpointRootRollupProof(input) {
92
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP, ()=>this.simulate(input, 'CheckpointRootRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertCheckpointRootRollupPrivateInputsToWitnessMap, convertCheckpointRootRollupOutputsFromWitnessMap));
93
+ }
94
+ getCheckpointRootSingleBlockRollupProof(input) {
95
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP, ()=>this.simulate(input, 'CheckpointRootSingleBlockRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap, convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap));
96
+ }
97
+ getCheckpointPaddingRollupProof(input) {
98
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP, ()=>this.simulate(input, 'CheckpointPaddingRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertCheckpointPaddingRollupPrivateInputsToWitnessMap, convertCheckpointPaddingRollupOutputsFromWitnessMap));
99
+ }
100
+ getCheckpointMergeRollupProof(input) {
101
+ return this.applyDelay(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP, ()=>this.simulate(input, 'CheckpointMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertCheckpointMergeRollupPrivateInputsToWitnessMap, convertCheckpointMergeRollupOutputsFromWitnessMap));
99
102
  }
100
103
  /**
101
104
  * Simulates the root rollup circuit from its inputs.
102
105
  * @param input - Inputs to the circuit.
103
106
  * @returns The public inputs as outputs of the simulation.
104
107
  */ getRootRollupProof(input) {
105
- return this.applyDelay(ProvingRequestType.ROOT_ROLLUP, ()=>this.simulate(input, 'RootRollupArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap));
108
+ return this.applyDelay(ProvingRequestType.ROOT_ROLLUP, ()=>this.simulate(input, 'RootRollupArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertRootRollupPrivateInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap));
106
109
  }
107
110
  getAvmProof(_inputs) {
108
111
  // We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
@@ -128,21 +131,20 @@ import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
128
131
  }
129
132
  async simulate(input, artifactName, proofLength, convertInput, convertOutput) {
130
133
  const timer = new Timer();
131
- const witnessMap = convertInput(input);
134
+ const witnessMap = convertInput(input, true);
132
135
  const circuitName = mapProtocolArtifactNameToCircuitName(artifactName);
133
136
  let witness;
134
137
  if ([
135
- 'BlockRootRollupArtifact',
136
- 'SingleTxBlockRootRollupArtifact'
138
+ 'CheckpointRootRollupArtifact',
139
+ 'CheckpointRootSingleBlockRollupArtifact'
137
140
  ].includes(artifactName) || this.simulator == undefined) {
138
141
  // TODO(#10323): Native ACVM simulator does not support foreign call handler so we use the wasm simulator
139
- // when simulating block root rollup and single tx block root rollup circuits or when the native ACVM simulator
140
- // is not provided.
142
+ // when simulating checkpoint root rollup circuits or when the native ACVM simulator is not provided.
141
143
  witness = (await this.wasmSimulator.executeProtocolCircuit(witnessMap, getSimulatedServerCircuitArtifact(artifactName), foreignCallHandler)).witness;
142
144
  } else {
143
145
  witness = (await this.simulator.executeProtocolCircuit(witnessMap, getSimulatedServerCircuitArtifact(artifactName), undefined)).witness;
144
146
  }
145
- const result = convertOutput(witness);
147
+ const result = convertOutput(witness, true);
146
148
  this.instrumentation.recordDuration('simulationDuration', circuitName, timer);
147
149
  emitCircuitSimulationStats(circuitName, timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
148
150
  return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(proofLength), ProtocolCircuitVks[artifactName]);
@@ -155,29 +157,44 @@ _ts_decorate([
155
157
  trackSpan('TestCircuitProver.getRootParityProof')
156
158
  ], TestCircuitProver.prototype, "getRootParityProof", null);
157
159
  _ts_decorate([
158
- trackSpan('TestCircuitProver.getPrivateBaseRollupProof')
159
- ], TestCircuitProver.prototype, "getPrivateBaseRollupProof", null);
160
+ trackSpan('TestCircuitProver.getPrivateTxBaseRollupProof')
161
+ ], TestCircuitProver.prototype, "getPrivateTxBaseRollupProof", null);
160
162
  _ts_decorate([
161
- trackSpan('TestCircuitProver.getPublicBaseRollupProof')
162
- ], TestCircuitProver.prototype, "getPublicBaseRollupProof", null);
163
+ trackSpan('TestCircuitProver.getPublicTxBaseRollupProof')
164
+ ], TestCircuitProver.prototype, "getPublicTxBaseRollupProof", null);
163
165
  _ts_decorate([
164
- trackSpan('TestCircuitProver.getMergeRollupProof')
165
- ], TestCircuitProver.prototype, "getMergeRollupProof", null);
166
+ trackSpan('TestCircuitProver.getTxMergeRollupProof')
167
+ ], TestCircuitProver.prototype, "getTxMergeRollupProof", null);
166
168
  _ts_decorate([
167
- trackSpan('TestCircuitProver.getBlockRootRollupProof')
168
- ], TestCircuitProver.prototype, "getBlockRootRollupProof", null);
169
+ trackSpan('TestCircuitProver.getBlockRootFirstRollupProof')
170
+ ], TestCircuitProver.prototype, "getBlockRootFirstRollupProof", null);
169
171
  _ts_decorate([
170
- trackSpan('TestCircuitProver.getSingleTxBlockRootRollupProof')
171
- ], TestCircuitProver.prototype, "getSingleTxBlockRootRollupProof", null);
172
+ trackSpan('TestCircuitProver.getBlockRootSingleTxFirstRollupProof')
173
+ ], TestCircuitProver.prototype, "getBlockRootSingleTxFirstRollupProof", null);
172
174
  _ts_decorate([
173
- trackSpan('TestCircuitProver.getEmptyBlockRootRollupProof')
174
- ], TestCircuitProver.prototype, "getEmptyBlockRootRollupProof", null);
175
+ trackSpan('TestCircuitProver.getBlockRootEmptyTxFirstRollupProof')
176
+ ], TestCircuitProver.prototype, "getBlockRootEmptyTxFirstRollupProof", null);
175
177
  _ts_decorate([
176
- trackSpan('TestCircuitProver.getPaddingBlockRootRollupProof')
177
- ], TestCircuitProver.prototype, "getPaddingBlockRootRollupProof", null);
178
+ trackSpan('TestCircuitProver.getBlockRootRollupProof')
179
+ ], TestCircuitProver.prototype, "getBlockRootRollupProof", null);
180
+ _ts_decorate([
181
+ trackSpan('TestCircuitProver.getBlockRootSingleTxRollupProof')
182
+ ], TestCircuitProver.prototype, "getBlockRootSingleTxRollupProof", null);
178
183
  _ts_decorate([
179
184
  trackSpan('TestCircuitProver.getBlockMergeRollupProof')
180
185
  ], TestCircuitProver.prototype, "getBlockMergeRollupProof", null);
186
+ _ts_decorate([
187
+ trackSpan('TestCircuitProver.getCheckpointRootRollupProof')
188
+ ], TestCircuitProver.prototype, "getCheckpointRootRollupProof", null);
189
+ _ts_decorate([
190
+ trackSpan('TestCircuitProver.getCheckpointRootSingleBlockRollupProof')
191
+ ], TestCircuitProver.prototype, "getCheckpointRootSingleBlockRollupProof", null);
192
+ _ts_decorate([
193
+ trackSpan('TestCircuitProver.getCheckpointPaddingRollupProof')
194
+ ], TestCircuitProver.prototype, "getCheckpointPaddingRollupProof", null);
195
+ _ts_decorate([
196
+ trackSpan('TestCircuitProver.getCheckpointMergeRollupProof')
197
+ ], TestCircuitProver.prototype, "getCheckpointMergeRollupProof", null);
181
198
  _ts_decorate([
182
199
  trackSpan('TestCircuitProver.getRootRollupProof')
183
200
  ], TestCircuitProver.prototype, "getRootRollupProof", null);
@@ -1,5 +1,5 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
- import type { ProtocolArtifact, ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
2
+ import { type ProtocolArtifact, type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
3
3
  import type { ClientProtocolCircuitVerifier, IVCProofVerificationResult } from '@aztec/stdlib/interfaces/server';
4
4
  import type { Proof } from '@aztec/stdlib/proofs';
5
5
  import { Tx } from '@aztec/stdlib/tx';
@@ -1 +1 @@
1
- {"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAEV,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAa7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7C,qBAAa,iBAAkB,YAAW,6BAA6B;IAEnE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAFhB,OAAO;IAKA,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAIR,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAqC;IAK9E,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB;IAQhE,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;IAqCnE,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAkDtE"}
1
+ {"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE5B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAa7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,qBAAa,iBAAkB,YAAW,6BAA6B;IAEnE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAFhB,OAAO;IAKA,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAIR,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAqC;IAK9E,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB;IAQhE,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;IAqCnE,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAkDtE"}
@@ -2,12 +2,12 @@ import { runInDirectory } from '@aztec/foundation/fs';
2
2
  import { 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 { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
5
6
  import { promises as fs } from 'fs';
6
7
  import * as path from 'path';
7
8
  import { BB_RESULT, PROOF_FILENAME, PUBLIC_INPUTS_FILENAME, VK_FILENAME, verifyClientIvcProof, verifyProof } from '../bb/execute.js';
8
9
  import { getUltraHonkFlavorForCircuit } from '../honk.js';
9
10
  import { writeClientIVCProofToPath } from '../prover/proof_utils.js';
10
- import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
11
11
  export class BBCircuitVerifier {
12
12
  config;
13
13
  logger;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/bb-prover",
3
- "version": "3.0.0-nightly.20250917",
3
+ "version": "3.0.0-nightly.20250919",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -69,27 +69,27 @@
69
69
  ]
70
70
  },
71
71
  "dependencies": {
72
- "@aztec/bb.js": "3.0.0-nightly.20250917",
73
- "@aztec/constants": "3.0.0-nightly.20250917",
74
- "@aztec/foundation": "3.0.0-nightly.20250917",
75
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20250917",
76
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250917",
77
- "@aztec/noir-types": "3.0.0-nightly.20250917",
78
- "@aztec/simulator": "3.0.0-nightly.20250917",
79
- "@aztec/stdlib": "3.0.0-nightly.20250917",
80
- "@aztec/telemetry-client": "3.0.0-nightly.20250917",
81
- "@aztec/world-state": "3.0.0-nightly.20250917",
72
+ "@aztec/bb.js": "3.0.0-nightly.20250919",
73
+ "@aztec/constants": "3.0.0-nightly.20250919",
74
+ "@aztec/foundation": "3.0.0-nightly.20250919",
75
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20250919",
76
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250919",
77
+ "@aztec/noir-types": "3.0.0-nightly.20250919",
78
+ "@aztec/simulator": "3.0.0-nightly.20250919",
79
+ "@aztec/stdlib": "3.0.0-nightly.20250919",
80
+ "@aztec/telemetry-client": "3.0.0-nightly.20250919",
81
+ "@aztec/world-state": "3.0.0-nightly.20250919",
82
82
  "commander": "^12.1.0",
83
83
  "pako": "^2.1.0",
84
84
  "source-map-support": "^0.5.21",
85
85
  "tslib": "^2.4.0"
86
86
  },
87
87
  "devDependencies": {
88
- "@aztec/ethereum": "3.0.0-nightly.20250917",
89
- "@aztec/kv-store": "3.0.0-nightly.20250917",
90
- "@aztec/noir-contracts.js": "3.0.0-nightly.20250917",
91
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250917",
92
- "@aztec/protocol-contracts": "3.0.0-nightly.20250917",
88
+ "@aztec/ethereum": "3.0.0-nightly.20250919",
89
+ "@aztec/kv-store": "3.0.0-nightly.20250919",
90
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20250919",
91
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250919",
92
+ "@aztec/protocol-contracts": "3.0.0-nightly.20250919",
93
93
  "@jest/globals": "^30.0.0",
94
94
  "@types/jest": "^30.0.0",
95
95
  "@types/node": "^22.15.17",
package/src/bb/execute.ts CHANGED
@@ -225,7 +225,7 @@ export async function generateProof(
225
225
  return { status: BB_RESULT.FAILURE, reason: `Working directory ${workingDirectory} does not exist` };
226
226
  }
227
227
 
228
- // The bytecode is written to e.g. /workingDirectory/BaseParityArtifact-bytecode
228
+ // The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
229
229
  const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
230
230
  const vkPath = `${workingDirectory}/${circuitName}-vk`;
231
231
 
@@ -612,7 +612,7 @@ export async function computeGateCountForCircuit(
612
612
  return { status: BB_RESULT.FAILURE, reason: `Working directory ${workingDirectory} does not exist` };
613
613
  }
614
614
 
615
- // The bytecode is written to e.g. /workingDirectory/BaseParityArtifact-bytecode
615
+ // The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
616
616
  const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
617
617
 
618
618
  const binaryPresent = await fs
package/src/honk.ts CHANGED
@@ -3,7 +3,7 @@ import type { ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types
3
3
  export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_starknet_honk' | 'ultra_rollup_honk';
4
4
 
5
5
  const UltraKeccakHonkCircuits = ['RootRollupArtifact'] as const satisfies ServerProtocolArtifact[];
6
- const UltraHonkCircuits = ['BaseParityArtifact', 'RootParityArtifact'] as const satisfies ServerProtocolArtifact[];
6
+ const UltraHonkCircuits = ['ParityBaseArtifact', 'ParityRootArtifact'] as const satisfies ServerProtocolArtifact[];
7
7
 
8
8
  export type UltraKeccakHonkServerProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
9
9
  export type UltraHonkServerProtocolArtifact = (typeof UltraHonkCircuits)[number];
@@ -16,7 +16,11 @@ import {
16
16
  getPrivateKernelResetArtifactName,
17
17
  updateResetCircuitSampleInputs,
18
18
  } from '@aztec/noir-protocol-circuits-types/client';
19
- import type { ArtifactProvider, ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
19
+ import {
20
+ type ArtifactProvider,
21
+ type ClientProtocolArtifact,
22
+ mapProtocolArtifactNameToCircuitName,
23
+ } from '@aztec/noir-protocol-circuits-types/types';
20
24
  import type { Abi, WitnessMap } from '@aztec/noir-types';
21
25
  import type { CircuitSimulator } from '@aztec/simulator/client';
22
26
  import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
@@ -36,8 +40,6 @@ import type { NoirCompiledCircuitWithName } from '@aztec/stdlib/noir';
36
40
  import type { ClientIvcProof } from '@aztec/stdlib/proofs';
37
41
  import type { CircuitSimulationStats, CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
38
42
 
39
- import { mapProtocolArtifactNameToCircuitName } from '../../stats.js';
40
-
41
43
  export abstract class BBPrivateKernelProver implements PrivateKernelProver {
42
44
  constructor(
43
45
  protected artifactProvider: ArtifactProvider,