@aztec/bb-prover 0.56.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dest/bb/execute.d.ts +1 -1
  2. package/dest/bb/execute.d.ts.map +1 -1
  3. package/dest/bb/execute.js +1 -1
  4. package/dest/bb/index.js +0 -0
  5. package/dest/config.d.ts +1 -1
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/honk.d.ts +5 -5
  8. package/dest/honk.d.ts.map +1 -1
  9. package/dest/honk.js +2 -5
  10. package/dest/index.d.ts +1 -0
  11. package/dest/index.d.ts.map +1 -1
  12. package/dest/index.js +2 -1
  13. package/dest/prover/bb_private_kernel_prover.d.ts +2 -3
  14. package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -1
  15. package/dest/prover/bb_private_kernel_prover.js +9 -11
  16. package/dest/prover/bb_prover.d.ts +8 -13
  17. package/dest/prover/bb_prover.d.ts.map +1 -1
  18. package/dest/prover/bb_prover.js +12 -15
  19. package/dest/stats.d.ts.map +1 -1
  20. package/dest/stats.js +6 -16
  21. package/dest/test/test_circuit_prover.d.ts +10 -8
  22. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  23. package/dest/test/test_circuit_prover.js +26 -14
  24. package/dest/verification_key/verification_key_data.d.ts +2 -2
  25. package/dest/verification_key/verification_key_data.d.ts.map +1 -1
  26. package/dest/verification_key/verification_key_data.js +7 -6
  27. package/dest/verifier/bb_verifier.d.ts +2 -1
  28. package/dest/verifier/bb_verifier.d.ts.map +1 -1
  29. package/dest/verifier/bb_verifier.js +1 -1
  30. package/package.json +10 -7
  31. package/src/bb/execute.ts +1 -1
  32. package/src/config.ts +1 -1
  33. package/src/honk.ts +7 -10
  34. package/src/index.ts +1 -0
  35. package/src/prover/bb_private_kernel_prover.ts +15 -20
  36. package/src/prover/bb_prover.ts +25 -24
  37. package/src/stats.ts +5 -15
  38. package/src/test/test_circuit_prover.ts +48 -13
  39. package/src/verification_key/verification_key_data.ts +6 -7
  40. package/src/verifier/bb_verifier.ts +2 -2
@@ -1,11 +1,11 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  /* eslint-disable require-await */
3
- import { makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
3
+ import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
4
4
  import { AGGREGATION_OBJECT_LENGTH, EmptyNestedCircuitInputs, EmptyNestedData, Fr, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, Proof, RECURSIVE_PROOF_LENGTH, RecursiveProof, RootParityInput, TUBE_PROOF_LENGTH, makeRecursiveProofFromBinary, } from '@aztec/circuits.js';
5
5
  import { runInDirectory } from '@aztec/foundation/fs';
6
6
  import { createDebugLogger } from '@aztec/foundation/log';
7
7
  import { Timer } from '@aztec/foundation/timer';
8
- import { ProtocolCircuitVkIndexes, ServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBaseRollupInputsToWitnessMap, convertBaseRollupOutputsFromWitnessMap, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap, convertBlockRootRollupInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertPublicInnerInputsToWitnessMap, convertPublicInnerOutputFromWitnessMap, convertPublicMergeInputsToWitnessMap, convertPublicMergeOutputFromWitnessMap, convertPublicTailInputsToWitnessMap, convertPublicTailOutputFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
8
+ import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, ServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBaseRollupInputsToWitnessMap, convertBaseRollupOutputsFromWitnessMap, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap, convertBlockRootRollupInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertEmptyBlockRootRollupInputsToWitnessMap, convertEmptyBlockRootRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertPublicInnerInputsToWitnessMap, convertPublicInnerOutputFromWitnessMap, convertPublicMergeInputsToWitnessMap, convertPublicMergeOutputFromWitnessMap, convertPublicTailInputsToWitnessMap, convertPublicTailOutputFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
9
9
  import { NativeACVMSimulator } from '@aztec/simulator';
10
10
  import { Attributes, trackSpan } from '@aztec/telemetry-client';
11
11
  import { abiEncode } from '@noir-lang/noirc_abi';
@@ -157,18 +157,15 @@ let BBNativeRollupProver = (() => {
157
157
  return makePublicInputsAndRecursiveProof(circuitOutput, proof, verificationKey);
158
158
  }
159
159
  /**
160
- * Simulates the block root rollup circuit from its inputs.
161
- * Returns a non-recursive proof to verify on L1.
162
- * @dev TODO(palla/prover): This is a temporary workaround to get the proof to L1 with the old block flow.
160
+ * Simulates the empty block root rollup circuit from its inputs.
163
161
  * @param input - Inputs to the circuit.
164
162
  * @returns The public inputs as outputs of the simulation.
165
163
  */
166
- async getBlockRootRollupFinalProof(input) {
167
- const { circuitOutput, proof } = await this.createProof(input, 'BlockRootRollupFinalArtifact', convertBlockRootRollupInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap);
168
- const recursiveProof = makeRecursiveProofFromBinary(proof, NESTED_RECURSIVE_PROOF_LENGTH);
169
- const verificationKey = await this.getVerificationKeyDataForCircuit('BlockRootRollupFinalArtifact');
170
- await this.verifyProof('BlockRootRollupFinalArtifact', proof);
171
- return makePublicInputsAndRecursiveProof(circuitOutput, recursiveProof, verificationKey);
164
+ async getEmptyBlockRootRollupProof(input) {
165
+ const { circuitOutput, proof } = await this.createRecursiveProof(input, 'EmptyBlockRootRollupArtifact', RECURSIVE_PROOF_LENGTH, convertEmptyBlockRootRollupInputsToWitnessMap, convertEmptyBlockRootRollupOutputsFromWitnessMap);
166
+ const verificationKey = await this.getVerificationKeyDataForCircuit('EmptyBlockRootRollupArtifact');
167
+ await this.verifyProof('EmptyBlockRootRollupArtifact', proof.binaryProof);
168
+ return makePublicInputsAndRecursiveProof(circuitOutput, proof, verificationKey);
172
169
  }
173
170
  /**
174
171
  * Simulates the block merge rollup circuit from its inputs.
@@ -230,7 +227,7 @@ let BBNativeRollupProver = (() => {
230
227
  async getEmptyPrivateKernelProofFromEmptyNested(inputs) {
231
228
  const { circuitOutput, proof } = await this.createRecursiveProof(inputs, 'PrivateKernelEmptyArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap);
232
229
  //info(`proof: ${proof.proof}`);
233
- const verificationKey = await this.getVerificationKeyDataForCircuit('PrivateKernelEmptyArtifact');
230
+ const verificationKey = ProtocolCircuitVks['PrivateKernelEmptyArtifact'];
234
231
  await this.verifyProof('PrivateKernelEmptyArtifact', proof.binaryProof);
235
232
  return makePublicInputsAndRecursiveProof(circuitOutput, proof, verificationKey);
236
233
  }
@@ -344,7 +341,7 @@ let BBNativeRollupProver = (() => {
344
341
  circuitSize: verificationKey.circuitSize, // FIX: wrong in VK
345
342
  numPublicInputs: verificationKey.numPublicInputs, // FIX: wrong in VK
346
343
  });
347
- return { proof, verificationKey };
344
+ return makeProofAndVerificationKey(proof, verificationKey);
348
345
  };
349
346
  return await this.runInDirectory(operation);
350
347
  }
@@ -363,7 +360,7 @@ let BBNativeRollupProver = (() => {
363
360
  // Sanity check the tube proof (can be removed later)
364
361
  await this.verifyWithKey('ultra_honk', tubeVK, tubeProof.binaryProof);
365
362
  logger.info(`Generated proof for tubeCircuit in ${Math.ceil(provingResult.durationMs)} ms, size: ${tubeProof.proof.length} fields`);
366
- return { tubeVK, tubeProof };
363
+ return makeProofAndVerificationKey(tubeProof, tubeVK);
367
364
  };
368
365
  return await this.runInDirectory(operation);
369
366
  }
@@ -601,4 +598,4 @@ let BBNativeRollupProver = (() => {
601
598
  _a;
602
599
  })();
603
600
  export { BBNativeRollupProver };
604
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBSUwsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNMLHlCQUF5QixFQVN6Qix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLEVBQUUsRUFHRiw2QkFBNkIsRUFFN0Isd0JBQXdCLEVBQ3hCLEtBQUssRUFLTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLGVBQWUsRUFJZixpQkFBaUIsRUFLakIsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUV0QixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMseUNBQXlDLEVBQ3pDLDRDQUE0QyxFQUM1Qyx3Q0FBd0MsRUFDeEMsMkNBQTJDLEVBQzNDLG9DQUFvQyxFQUNwQyx1Q0FBdUMsRUFDdkMsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QyxvQ0FBb0MsRUFDcEMsc0NBQXNDLEVBQ3RDLG9DQUFvQyxFQUNwQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLHFDQUFxQyxFQUNyQyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFF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
601
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBSUwsMkJBQTJCLEVBQzNCLGlDQUFpQyxHQUNsQyxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFDTCx5QkFBeUIsRUFTekIsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixFQUFFLEVBR0YsNkJBQTZCLEVBRTdCLHdCQUF3QixFQUN4QixLQUFLLEVBS0wsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxlQUFlLEVBSWYsaUJBQWlCLEVBS2pCLDRCQUE0QixHQUM3QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBRXRCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0Qyx5Q0FBeUMsRUFDekMsNENBQTRDLEVBQzVDLHdDQUF3QyxFQUN4QywyQ0FBMkMsRUFDM0MsNkNBQTZDLEVBQzdDLGdEQUFnRCxFQUNoRCxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsb0NBQW9DLEVBQ3BDLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9B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
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE/G,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,sBAAsB,GAAG,sBAAsB,GACxD,WAAW,CAqDb"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE/G,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,sBAAsB,GAAG,sBAAsB,GACxD,WAAW,CA2Cb"}
package/dest/stats.js CHANGED
@@ -10,6 +10,8 @@ export function mapProtocolArtifactNameToCircuitName(artifact) {
10
10
  return 'merge-rollup';
11
11
  case 'BlockRootRollupArtifact':
12
12
  return 'block-root-rollup';
13
+ case 'EmptyBlockRootRollupArtifact':
14
+ return 'empty-block-root-rollup';
13
15
  case 'BlockMergeRollupArtifact':
14
16
  return 'block-merge-rollup';
15
17
  case 'RootRollupArtifact':
@@ -28,28 +30,16 @@ export function mapProtocolArtifactNameToCircuitName(artifact) {
28
30
  return 'private-kernel-tail';
29
31
  case 'PrivateKernelTailToPublicArtifact':
30
32
  return 'private-kernel-tail-to-public';
31
- case 'PrivateKernelResetFullArtifact':
32
- return 'private-kernel-reset-full';
33
- case 'PrivateKernelResetFullInnerArtifact':
34
- return 'private-kernel-reset-full-inner';
35
- case 'PrivateKernelResetBigArtifact':
36
- return 'private-kernel-reset-big';
37
- case 'PrivateKernelResetMediumArtifact':
38
- return 'private-kernel-reset-medium';
39
- case 'PrivateKernelResetSmallArtifact':
40
- return 'private-kernel-reset-small';
41
- case 'PrivateKernelResetTinyArtifact':
42
- return 'private-kernel-reset-tiny';
43
33
  case 'EmptyNestedArtifact':
44
34
  return 'empty-nested';
45
35
  case 'PrivateKernelEmptyArtifact':
46
36
  return 'private-kernel-empty';
47
- case 'BlockRootRollupFinalArtifact':
48
- return 'block-root-rollup-final';
49
37
  default: {
50
- const _foo = artifact;
38
+ if (artifact.startsWith('PrivateKernelReset')) {
39
+ return 'private-kernel-reset';
40
+ }
51
41
  throw new Error(`Unknown circuit type: ${artifact}`);
52
42
  }
53
43
  }
54
44
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxRQUF5RDtJQUV6RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sbUJBQW1CLENBQUM7UUFDN0IsS0FBSywwQkFBMEI7WUFDN0IsT0FBTyxvQkFBb0IsQ0FBQztRQUM5QixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLDJCQUEyQjtZQUM5QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSywwQkFBMEI7WUFDN0IsT0FBTyxvQkFBb0IsQ0FBQztRQUM5QixLQUFLLDJCQUEyQjtZQUM5QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssNEJBQTRCO1lBQy9CLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsS0FBSywyQkFBMkI7WUFDOUIsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixLQUFLLG1DQUFtQztZQUN0QyxPQUFPLCtCQUErQixDQUFDO1FBQ3pDLEtBQUssZ0NBQWdDO1lBQ25DLE9BQU8sMkJBQTJCLENBQUM7UUFDckMsS0FBSyxxQ0FBcUM7WUFDeEMsT0FBTyxpQ0FBaUMsQ0FBQztRQUMzQyxLQUFLLCtCQUErQjtZQUNsQyxPQUFPLDBCQUEwQixDQUFDO1FBQ3BDLEtBQUssa0NBQWtDO1lBQ3JDLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsS0FBSyxpQ0FBaUM7WUFDcEMsT0FBTyw0QkFBNEIsQ0FBQztRQUN0QyxLQUFLLGdDQUFnQztZQUNuQyxPQUFPLDJCQUEyQixDQUFDO1FBQ3JDLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUssNEJBQTRCO1lBQy9CLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyx5QkFBeUIsQ0FBQztRQUNuQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1IsTUFBTSxJQUFJLEdBQVUsUUFBUSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxRQUF5RDtJQUV6RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sbUJBQW1CLENBQUM7UUFDN0IsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyx5QkFBeUIsQ0FBQztRQUNuQyxLQUFLLDBCQUEwQjtZQUM3QixPQUFPLG9CQUFvQixDQUFDO1FBQzlCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSywyQkFBMkI7WUFDOUIsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixLQUFLLDBCQUEwQjtZQUM3QixPQUFPLG9CQUFvQixDQUFDO1FBQzlCLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyw0QkFBNEI7WUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxLQUFLLDJCQUEyQjtZQUM5QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssbUNBQW1DO1lBQ3RDLE9BQU8sK0JBQStCLENBQUM7UUFDekMsS0FBSyxxQkFBcUI7WUFDeEIsT0FBTyxjQUFjLENBQUM7UUFDeEIsS0FBSyw0QkFBNEI7WUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1IsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
@@ -1,5 +1,5 @@
1
- import { type AvmProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
2
- import { type AvmCircuitInputs, type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BaseRollupInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type KernelCircuitPublicInputs, type MergeRollupInputs, NESTED_RECURSIVE_PROOF_LENGTH, type PrivateKernelEmptyInputData, type Proof, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, RECURSIVE_PROOF_LENGTH, type RecursiveProof, RootParityInput, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs, TUBE_PROOF_LENGTH, type TubeInputs, type VMCircuitPublicInputs, VerificationKeyData } from '@aztec/circuits.js';
1
+ import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
2
+ import { type AvmCircuitInputs, type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BaseRollupInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type KernelCircuitPublicInputs, type MergeRollupInputs, NESTED_RECURSIVE_PROOF_LENGTH, type PrivateKernelEmptyInputData, type Proof, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, RECURSIVE_PROOF_LENGTH, type RecursiveProof, RootParityInput, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs, TUBE_PROOF_LENGTH, type TubeInputs, type VMCircuitPublicInputs } from '@aztec/circuits.js';
3
3
  import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
4
4
  import { type SimulationProvider } from '@aztec/simulator';
5
5
  import { type TelemetryClient } from '@aztec/telemetry-client';
@@ -37,10 +37,7 @@ export declare class TestCircuitProver implements ServerCircuitProver {
37
37
  * @returns The public inputs as outputs of the simulation.
38
38
  */
39
39
  getBaseRollupProof(input: BaseRollupInputs): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
40
- getTubeProof(_tubeInput: TubeInputs): Promise<{
41
- tubeVK: VerificationKeyData;
42
- tubeProof: RecursiveProof<typeof TUBE_PROOF_LENGTH>;
43
- }>;
40
+ getTubeProof(_tubeInput: TubeInputs): Promise<ProofAndVerificationKey<RecursiveProof<typeof TUBE_PROOF_LENGTH>>>;
44
41
  /**
45
42
  * Simulates the merge rollup circuit from its inputs.
46
43
  * @param input - Inputs to the circuit.
@@ -53,7 +50,12 @@ export declare class TestCircuitProver implements ServerCircuitProver {
53
50
  * @returns The public inputs as outputs of the simulation.
54
51
  */
55
52
  getBlockRootRollupProof(input: BlockRootRollupInputs): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs>>;
56
- getBlockRootRollupFinalProof(input: BlockRootRollupInputs): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs>>;
53
+ /**
54
+ * Simulates the empty block root rollup circuit from its inputs.
55
+ * @param input - Inputs to the circuit.
56
+ * @returns The public inputs as outputs of the simulation.
57
+ */
58
+ getEmptyBlockRootRollupProof(input: EmptyBlockRootRollupInputs): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs>>;
57
59
  /**
58
60
  * Simulates the block merge rollup circuit from its inputs.
59
61
  * @param input - Inputs to the circuit.
@@ -69,7 +71,7 @@ export declare class TestCircuitProver implements ServerCircuitProver {
69
71
  getPublicKernelInnerProof(inputs: PublicKernelInnerCircuitPrivateInputs): Promise<PublicInputsAndRecursiveProof<VMCircuitPublicInputs>>;
70
72
  getPublicKernelMergeProof(inputs: PublicKernelCircuitPrivateInputs): Promise<PublicInputsAndRecursiveProof<PublicKernelCircuitPublicInputs>>;
71
73
  getPublicTailProof(inputs: PublicKernelTailCircuitPrivateInputs): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
72
- getAvmProof(_inputs: AvmCircuitInputs): Promise<AvmProofAndVerificationKey>;
74
+ getAvmProof(_inputs: AvmCircuitInputs): Promise<ProofAndVerificationKey<Proof>>;
73
75
  private delay;
74
76
  verifyProof(_1: ServerProtocolArtifact, _2: Proof): Promise<void>;
75
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
3
- import { AvmVerificationKeyData, EmptyNestedData, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, RECURSIVE_PROOF_LENGTH, RootParityInput, TUBE_PROOF_LENGTH, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, makeRecursiveProof, } from '@aztec/circuits.js';
2
+ import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
3
+ import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, EmptyNestedData, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, RECURSIVE_PROOF_LENGTH, RootParityInput, TUBE_PROOF_LENGTH, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, makeRecursiveProof, } from '@aztec/circuits.js';
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { sleep } from '@aztec/foundation/sleep';
6
6
  import { Timer } from '@aztec/foundation/timer';
7
- import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, SimulatedServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap, convertBlockRootRollupInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap, convertSimulatedPublicMergeInputsToWitnessMap, convertSimulatedPublicMergeOutputFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
7
+ import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, SimulatedServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBlockMergeRollupInputsToWitnessMap, convertBlockMergeRollupOutputsFromWitnessMap, convertBlockRootRollupInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertEmptyBlockRootRollupInputsToWitnessMap, convertEmptyBlockRootRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap, convertSimulatedPublicMergeInputsToWitnessMap, convertSimulatedPublicMergeOutputFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
8
8
  import { WASMSimulator, emitCircuitSimulationStats } from '@aztec/simulator';
9
9
  import { trackSpan } from '@aztec/telemetry-client';
10
10
  import { ProverInstrumentation } from '../instrumentation.js';
@@ -21,6 +21,7 @@ let TestCircuitProver = (() => {
21
21
  let _getBaseRollupProof_decorators;
22
22
  let _getMergeRollupProof_decorators;
23
23
  let _getBlockRootRollupProof_decorators;
24
+ let _getEmptyBlockRootRollupProof_decorators;
24
25
  let _getBlockMergeRollupProof_decorators;
25
26
  let _getRootRollupProof_decorators;
26
27
  let _getPublicKernelInnerProof_decorators;
@@ -39,7 +40,7 @@ let TestCircuitProver = (() => {
39
40
  }
40
41
  async getEmptyPrivateKernelProof(inputs) {
41
42
  const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['EmptyNestedArtifact'].keyAsFields);
42
- const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version, inputs.vkTreeRoot);
43
+ const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version, inputs.vkTreeRoot, inputs.protocolContractTreeRoot);
43
44
  const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
44
45
  const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.PrivateKernelEmptyArtifact);
45
46
  const result = convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap(witness);
@@ -48,12 +49,12 @@ let TestCircuitProver = (() => {
48
49
  }
49
50
  async getEmptyTubeProof(inputs) {
50
51
  const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['EmptyNestedArtifact'].keyAsFields);
51
- const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version, inputs.vkTreeRoot);
52
+ const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version, inputs.vkTreeRoot, inputs.protocolContractTreeRoot);
52
53
  const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
53
54
  const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.PrivateKernelEmptyArtifact);
54
55
  const result = convertPrivateKernelEmptyOutputsFromWitnessMap(witness);
55
56
  await this.delay();
56
- return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
57
+ return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk());
57
58
  }
58
59
  /**
59
60
  * Simulates the base parity circuit from its inputs.
@@ -107,10 +108,7 @@ let TestCircuitProver = (() => {
107
108
  }
108
109
  async getTubeProof(_tubeInput) {
109
110
  await this.delay();
110
- return {
111
- tubeVK: VerificationKeyData.makeFake(),
112
- tubeProof: makeEmptyRecursiveProof(TUBE_PROOF_LENGTH),
113
- };
111
+ return makeProofAndVerificationKey(makeEmptyRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk());
114
112
  }
115
113
  /**
116
114
  * Simulates the merge rollup circuit from its inputs.
@@ -143,8 +141,20 @@ let TestCircuitProver = (() => {
143
141
  emitCircuitSimulationStats('block-root-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
144
142
  return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['BlockRootRollupArtifact']);
145
143
  }
146
- getBlockRootRollupFinalProof(input) {
147
- return this.getBlockRootRollupProof(input);
144
+ /**
145
+ * Simulates the empty block root rollup circuit from its inputs.
146
+ * @param input - Inputs to the circuit.
147
+ * @returns The public inputs as outputs of the simulation.
148
+ */
149
+ async getEmptyBlockRootRollupProof(input) {
150
+ const timer = new Timer();
151
+ const witnessMap = convertEmptyBlockRootRollupInputsToWitnessMap(input);
152
+ // use WASM here as it is faster for small circuits
153
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.EmptyBlockRootRollupArtifact);
154
+ const result = convertEmptyBlockRootRollupOutputsFromWitnessMap(witness);
155
+ this.instrumentation.recordDuration('simulationDuration', 'empty-block-root-rollup', timer);
156
+ emitCircuitSimulationStats('empty-block-root-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
157
+ return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['EmptyBlockRootRollupArtifact']);
148
158
  }
149
159
  /**
150
160
  * Simulates the block merge rollup circuit from its inputs.
@@ -219,7 +229,7 @@ let TestCircuitProver = (() => {
219
229
  // We just return an empty proof and VK data.
220
230
  this.logger.debug('Skipping AVM simulation in TestCircuitProver.');
221
231
  await this.delay();
222
- return { proof: makeEmptyProof(), verificationKey: AvmVerificationKeyData.makeFake() };
232
+ return makeProofAndVerificationKey(makeEmptyProof(), VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS));
223
233
  }
224
234
  async delay() {
225
235
  if (this.opts.proverTestDelayMs > 0) {
@@ -238,6 +248,7 @@ let TestCircuitProver = (() => {
238
248
  _getBaseRollupProof_decorators = [trackSpan('TestCircuitProver.getBaseRollupProof')];
239
249
  _getMergeRollupProof_decorators = [trackSpan('TestCircuitProver.getMergeRollupProof')];
240
250
  _getBlockRootRollupProof_decorators = [trackSpan('TestCircuitProver.getBlockRootRollupProof')];
251
+ _getEmptyBlockRootRollupProof_decorators = [trackSpan('TestCircuitProver.getEmptyBlockRootRollupProof')];
241
252
  _getBlockMergeRollupProof_decorators = [trackSpan('TestCircuitProver.getBlockMergeRollupProof')];
242
253
  _getRootRollupProof_decorators = [trackSpan('TestCircuitProver.getRootRollupProof')];
243
254
  _getPublicKernelInnerProof_decorators = [trackSpan('TestCircuitProver.getPublicKernelInnerProof')];
@@ -248,6 +259,7 @@ let TestCircuitProver = (() => {
248
259
  __esDecorate(_a, null, _getBaseRollupProof_decorators, { kind: "method", name: "getBaseRollupProof", static: false, private: false, access: { has: obj => "getBaseRollupProof" in obj, get: obj => obj.getBaseRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
249
260
  __esDecorate(_a, null, _getMergeRollupProof_decorators, { kind: "method", name: "getMergeRollupProof", static: false, private: false, access: { has: obj => "getMergeRollupProof" in obj, get: obj => obj.getMergeRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
250
261
  __esDecorate(_a, null, _getBlockRootRollupProof_decorators, { kind: "method", name: "getBlockRootRollupProof", static: false, private: false, access: { has: obj => "getBlockRootRollupProof" in obj, get: obj => obj.getBlockRootRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
262
+ __esDecorate(_a, null, _getEmptyBlockRootRollupProof_decorators, { kind: "method", name: "getEmptyBlockRootRollupProof", static: false, private: false, access: { has: obj => "getEmptyBlockRootRollupProof" in obj, get: obj => obj.getEmptyBlockRootRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
251
263
  __esDecorate(_a, null, _getBlockMergeRollupProof_decorators, { kind: "method", name: "getBlockMergeRollupProof", static: false, private: false, access: { has: obj => "getBlockMergeRollupProof" in obj, get: obj => obj.getBlockMergeRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
252
264
  __esDecorate(_a, null, _getRootRollupProof_decorators, { kind: "method", name: "getRootRollupProof", static: false, private: false, access: { has: obj => "getRootRollupProof" in obj, get: obj => obj.getRootRollupProof }, metadata: _metadata }, null, _instanceExtraInitializers);
253
265
  __esDecorate(_a, null, _getPublicKernelInnerProof_decorators, { kind: "method", name: "getPublicKernelInnerProof", static: false, private: false, access: { has: obj => "getPublicKernelInnerProof" in obj, get: obj => obj.getPublicKernelInnerProof }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -258,4 +270,4 @@ let TestCircuitProver = (() => {
258
270
  _a;
259
271
  })();
260
272
  export { TestCircuitProver };
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxpQ0FBaUMsR0FDbEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRUwsc0JBQXNCLEVBT3RCLGVBQWUsRUFHZiw2QkFBNkIsRUFFN0Isd0JBQXdCLEVBTXhCLHNCQUFzQixFQUV0QixlQUFlLEVBSWYsaUJBQWlCLEVBR2pCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixrQkFBa0IsRUFFbEIsK0JBQStCLEVBQy9CLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMseUNBQXlDLEVBQ3pDLDRDQUE0QyxFQUM1Qyx3Q0FBd0MsRUFDeEMsMkNBQTJDLEVBQzNDLG9DQUFvQyxFQUNwQyx1Q0FBdUMsRUFDdkMsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxFQUMvQyx1REFBdUQsRUFDdkQsNkNBQTZDLEVBQzdDLCtDQUErQyxFQUMvQyw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLDRDQUE0QyxFQUM1Qyw4Q0FBOEMsRUFDOUMsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUEyQixhQUFhLEVBQUUsMEJBQTBCLEVB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
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCwyQkFBMkIsRUFDM0IsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHFDQUFxQyxFQVNyQyxlQUFlLEVBR2YsNkJBQTZCLEVBRTdCLHdCQUF3QixFQU14QixzQkFBc0IsRUFFdEIsZUFBZSxFQUlmLGlCQUFpQixFQUdqQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsa0JBQWtCLEVBRWxCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLHlDQUF5QyxFQUN6Qyw0Q0FBNEMsRUFDNUMsd0NBQXdDLEVBQ3hDLDJDQUEyQyxFQUMzQyw2Q0FBNkMsRUFDN0MsZ0RBQWdELEVBQ2hELG9DQUFvQyxFQUNwQyx1Q0FBdUMsRUFDdkMsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxFQUMvQyx1REFBdUQsRUFDdkQsNkNBQTZDLEVBQzdDLCtDQUErQyxFQUMvQyw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLDRDQUE0QyxFQUM1Qyw4Q0FBOEMsRUFDOUMsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENB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
@@ -1,9 +1,9 @@
1
- import { AvmVerificationKeyData, VerificationKeyData } from '@aztec/circuits.js';
1
+ import { VerificationKeyData } from '@aztec/circuits.js';
2
2
  /**
3
3
  * Reads the verification key data stored at the specified location and parses into a VerificationKeyData
4
4
  * @param vkDirectoryPath - The directory containing the verification key data files
5
5
  * @returns The verification key data
6
6
  */
7
7
  export declare function extractVkData(vkDirectoryPath: string): Promise<VerificationKeyData>;
8
- export declare function extractAvmVkData(vkDirectoryPath: string): Promise<AvmVerificationKeyData>;
8
+ export declare function extractAvmVkData(vkDirectoryPath: string): Promise<VerificationKeyData>;
9
9
  //# sourceMappingURL=verification_key_data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification_key_data.d.ts","sourceRoot":"","sources":["../../src/verification_key/verification_key_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EAGtB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAQ5B;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAWzF;AAGD,wBAAsB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAc/F"}
1
+ {"version":3,"file":"verification_key_data.d.ts","sourceRoot":"","sources":["../../src/verification_key/verification_key_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAS5B;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAWzF;AAGD,wBAAsB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAc5F"}
@@ -1,4 +1,5 @@
1
- import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, AvmVerificationKeyAsFields, AvmVerificationKeyData, Fr, VerificationKeyAsFields, VerificationKeyData, } from '@aztec/circuits.js';
1
+ import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, Fr, VerificationKeyAsFields, VerificationKeyData, } from '@aztec/circuits.js';
2
+ import { hashVk } from '@aztec/noir-protocol-circuits-types';
2
3
  import { strict as assert } from 'assert';
3
4
  import * as fs from 'fs/promises';
4
5
  import * as path from 'path';
@@ -15,8 +16,8 @@ export async function extractVkData(vkDirectoryPath) {
15
16
  ]);
16
17
  const fieldsJson = JSON.parse(rawFields);
17
18
  const fields = fieldsJson.map(Fr.fromString);
18
- // The first item is the hash, this is not part of the actual VK
19
- const vkHash = fields[0];
19
+ // The hash is not included in the BB response
20
+ const vkHash = hashVk(fields);
20
21
  const vkAsFields = new VerificationKeyAsFields(fields, vkHash);
21
22
  return new VerificationKeyData(vkAsFields, rawBinary);
22
23
  }
@@ -32,8 +33,8 @@ export async function extractAvmVkData(vkDirectoryPath) {
32
33
  // TODO: is the above actually the case?
33
34
  const vkHash = fields[0];
34
35
  assert(fields.length === AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, 'Invalid AVM verification key length');
35
- const vkAsFields = new AvmVerificationKeyAsFields(fields, vkHash);
36
- const vk = new AvmVerificationKeyData(vkAsFields, rawBinary);
36
+ const vkAsFields = new VerificationKeyAsFields(fields, vkHash);
37
+ const vk = new VerificationKeyData(vkAsFields, rawBinary);
37
38
  return vk;
38
39
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleV9kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcmlmaWNhdGlvbl9rZXkvdmVyaWZpY2F0aW9uX2tleV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixFQUFFLEVBQ0YsdUJBQXVCLEVBQ3ZCLG1CQUFtQixHQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQUMsZUFBdUI7SUFDekQsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDL0MsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2xGLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDckQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxnRUFBZ0U7SUFDaEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQXVCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLGVBQXVCO0lBQzVELE1BQU0sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQy9DLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsRixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQ3JELENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsZ0VBQWdFO0lBQ2hFLHdDQUF3QztJQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUsscUNBQXFDLEVBQUUscUNBQXFDLENBQUMsQ0FBQztJQUN2RyxNQUFNLFVBQVUsR0FBRyxJQUFJLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxNQUFNLEVBQUUsR0FBRyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3RCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleV9kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcmlmaWNhdGlvbl9rZXkvdmVyaWZpY2F0aW9uX2tleV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsRUFBRSxFQUNGLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0QsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5FOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxlQUF1QjtJQUN6RCxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEYsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztLQUNyRCxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLDhDQUE4QztJQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsZUFBdUI7SUFDNUQsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDL0MsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2xGLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDckQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxnRUFBZ0U7SUFDaEUsd0NBQXdDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxxQ0FBcUMsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3ZHLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQXVCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sRUFBRSxHQUFHLElBQUksbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyJ9