@aztec/bb-prover 0.69.0 → 0.69.1-devnet

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 (53) hide show
  1. package/dest/bb/cli.d.ts +3 -0
  2. package/dest/bb/cli.d.ts.map +1 -1
  3. package/dest/bb/cli.js +7 -2
  4. package/dest/honk.d.ts +8 -8
  5. package/dest/honk.d.ts.map +1 -1
  6. package/dest/honk.js +2 -7
  7. package/dest/prover/bb_native_private_kernel_prover.d.ts +23 -0
  8. package/dest/prover/bb_native_private_kernel_prover.d.ts.map +1 -0
  9. package/dest/prover/bb_native_private_kernel_prover.js +68 -0
  10. package/dest/prover/bb_private_kernel_prover.d.ts +26 -41
  11. package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -1
  12. package/dest/prover/bb_private_kernel_prover.js +62 -117
  13. package/dest/prover/bb_prover.d.ts +4 -6
  14. package/dest/prover/bb_prover.d.ts.map +1 -1
  15. package/dest/prover/bb_prover.js +9 -30
  16. package/dest/prover/index.d.ts +1 -1
  17. package/dest/prover/index.d.ts.map +1 -1
  18. package/dest/prover/index.js +2 -2
  19. package/dest/stats.d.ts +3 -3
  20. package/dest/stats.d.ts.map +1 -1
  21. package/dest/stats.js +4 -7
  22. package/dest/test/test_circuit_prover.d.ts +4 -4
  23. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  24. package/dest/test/test_circuit_prover.js +11 -9
  25. package/dest/verifier/bb_verifier.d.ts +6 -6
  26. package/dest/verifier/bb_verifier.d.ts.map +1 -1
  27. package/dest/verifier/bb_verifier.js +4 -4
  28. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +14 -0
  29. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +1 -0
  30. package/dest/wasm/bb_wasm_private_kernel_prover.js +30 -0
  31. package/dest/wasm/bundle.d.ts +5 -0
  32. package/dest/wasm/bundle.d.ts.map +1 -0
  33. package/dest/wasm/bundle.js +9 -0
  34. package/dest/wasm/lazy.d.ts +5 -0
  35. package/dest/wasm/lazy.d.ts.map +1 -0
  36. package/dest/wasm/lazy.js +9 -0
  37. package/package.json +11 -10
  38. package/src/bb/cli.ts +9 -1
  39. package/src/honk.ts +16 -21
  40. package/src/prover/bb_native_private_kernel_prover.ts +110 -0
  41. package/src/prover/bb_private_kernel_prover.ts +138 -201
  42. package/src/prover/bb_prover.ts +25 -67
  43. package/src/prover/index.ts +1 -1
  44. package/src/stats.ts +6 -11
  45. package/src/test/test_circuit_prover.ts +21 -36
  46. package/src/verifier/bb_verifier.ts +11 -10
  47. package/src/wasm/bb_wasm_private_kernel_prover.ts +40 -0
  48. package/src/wasm/bundle.ts +10 -0
  49. package/src/wasm/lazy.ts +10 -0
  50. package/dest/wasm/index.d.ts +0 -19
  51. package/dest/wasm/index.d.ts.map +0 -1
  52. package/dest/wasm/index.js +0 -74
  53. package/src/wasm/index.ts +0 -155
package/dest/bb/cli.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { type LogFn } from '@aztec/foundation/log';
2
+ import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
3
+ import { type NoirCompiledCircuit } from '@aztec/types/noir';
2
4
  import { Command } from 'commander';
5
+ export declare const ProtocolCircuitArtifacts: Record<ProtocolArtifact, NoirCompiledCircuit>;
3
6
  /**
4
7
  * Returns commander program that defines the CLI.
5
8
  * @param log - Console logger.
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bb/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAoF9C"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bb/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAGlF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAoF9C"}
package/dest/bb/cli.js CHANGED
@@ -1,8 +1,13 @@
1
- import { ProtocolCircuitArtifacts } from '@aztec/noir-protocol-circuits-types';
1
+ import { ClientCircuitArtifacts } from '@aztec/noir-protocol-circuits-types/client/bundle';
2
+ import { ServerCircuitArtifacts } from '@aztec/noir-protocol-circuits-types/server';
2
3
  import { Command } from 'commander';
3
4
  import { promises as fs } from 'fs';
4
5
  import { generateContractForCircuit, generateKeyForNoirCircuit } from './execute.js';
5
6
  const { BB_WORKING_DIRECTORY, BB_BINARY_PATH } = process.env;
7
+ export const ProtocolCircuitArtifacts = {
8
+ ...ClientCircuitArtifacts,
9
+ ...ServerCircuitArtifacts,
10
+ };
6
11
  /**
7
12
  * Returns commander program that defines the CLI.
8
13
  * @param log - Console logger.
@@ -67,4 +72,4 @@ export function getProgram(log) {
67
72
  });
68
73
  return program;
69
74
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckYsTUFBTSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFFN0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVTtJQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxPQUFPLENBQUMsV0FBVyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFFOUQsT0FBTztTQUNKLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztTQUM1QixXQUFXLENBQUMsZ0RBQWdELENBQUM7U0FDN0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztTQUNKLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLDBEQUEwRCxDQUFDO1NBQ3ZFLGNBQWMsQ0FDYixrQ0FBa0MsRUFDbEMsbURBQW1ELEVBQ25ELG9CQUFvQixDQUNyQjtTQUNBLGNBQWMsQ0FBQyx3QkFBd0Is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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUlwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBa0Q7SUFDckYsR0FBRyxzQkFBc0I7SUFDekIsR0FBRyxzQkFBc0I7Q0FDMUIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVU7SUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBRTlELE9BQU87U0FDSixPQUFPLENBQUMsbUJBQW1CLENBQUM7U0FDNUIsV0FBVyxDQUFDLGdEQUFnRCxDQUFDO1NBQzdELE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDWCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDLENBQUMsQ0FBQztJQUVMLE9BQU87U0FDSixP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
package/dest/honk.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
1
+ import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
2
2
  export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_rollup_honk';
3
3
  declare const UltraKeccakHonkCircuits: ["RootRollupArtifact"];
4
4
  declare const UltraHonkCircuits: ["BaseParityArtifact", "RootParityArtifact"];
5
- export type UltraKeccakHonkProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
6
- export type UltraHonkProtocolArtifact = (typeof UltraHonkCircuits)[number];
7
- export type UltraRollupHonkProtocolArtifact = Exclude<Exclude<ProtocolArtifact, UltraKeccakHonkProtocolArtifact>, UltraHonkProtocolArtifact>;
8
- export declare function getUltraHonkFlavorForCircuit(artifact: UltraKeccakHonkProtocolArtifact): 'ultra_keccak_honk';
9
- export declare function getUltraHonkFlavorForCircuit(artifact: UltraHonkProtocolArtifact): 'ultra_honk';
10
- export declare function getUltraHonkFlavorForCircuit(artifact: UltraRollupHonkProtocolArtifact): 'ultra_rollup_honk';
11
- export declare function getUltraHonkFlavorForCircuit(artifact: ProtocolArtifact): UltraHonkFlavor;
5
+ export type UltraKeccakHonkServerProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
6
+ export type UltraHonkServerProtocolArtifact = (typeof UltraHonkCircuits)[number];
7
+ export type UltraRollupHonkServerProtocolArtifact = Exclude<Exclude<ServerProtocolArtifact, UltraKeccakHonkServerProtocolArtifact>, UltraHonkServerProtocolArtifact>;
8
+ export declare function getUltraHonkFlavorForCircuit(artifact: UltraKeccakHonkServerProtocolArtifact): 'ultra_keccak_honk';
9
+ export declare function getUltraHonkFlavorForCircuit(artifact: UltraHonkServerProtocolArtifact): 'ultra_honk';
10
+ export declare function getUltraHonkFlavorForCircuit(artifact: UltraRollupHonkServerProtocolArtifact): 'ultra_rollup_honk';
11
+ export declare function getUltraHonkFlavorForCircuit(artifact: ServerProtocolArtifact): UltraHonkFlavor;
12
12
  export {};
13
13
  //# sourceMappingURL=honk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"honk.d.ts","sourceRoot":"","sources":["../src/honk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEvF,QAAA,MAAM,uBAAuB,wBAA+D,CAAC;AAC7F,QAAA,MAAM,iBAAiB,8CAKgB,CAAC;AAExC,MAAM,MAAM,+BAA+B,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvF,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,OAAO,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,EAC1D,yBAAyB,CAC1B,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,+BAA+B,GAAG,mBAAmB,CAAC;AAC7G,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,yBAAyB,GAAG,YAAY,CAAC;AAChG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,+BAA+B,GAAG,mBAAmB,CAAC;AAC7G,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"honk.d.ts","sourceRoot":"","sources":["../src/honk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEvF,QAAA,MAAM,uBAAuB,wBAAqE,CAAC;AACnG,QAAA,MAAM,iBAAiB,8CAA2F,CAAC;AAEnH,MAAM,MAAM,qCAAqC,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7F,MAAM,MAAM,+BAA+B,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,MAAM,qCAAqC,GAAG,OAAO,CACzD,OAAO,CAAC,sBAAsB,EAAE,qCAAqC,CAAC,EACtE,+BAA+B,CAChC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qCAAqC,GAAG,mBAAmB,CAAC;AACnH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,+BAA+B,GAAG,YAAY,CAAC;AACtG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qCAAqC,GAAG,mBAAmB,CAAC;AACnH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,eAAe,CAAC"}
package/dest/honk.js CHANGED
@@ -1,10 +1,5 @@
1
1
  const UltraKeccakHonkCircuits = ['RootRollupArtifact'];
2
- const UltraHonkCircuits = [
3
- // 'EmptyNestedArtifact',
4
- // 'PrivateKernelEmptyArtifact',
5
- 'BaseParityArtifact',
6
- 'RootParityArtifact',
7
- ];
2
+ const UltraHonkCircuits = ['BaseParityArtifact', 'RootParityArtifact'];
8
3
  export function getUltraHonkFlavorForCircuit(artifact) {
9
4
  if (isUltraKeccakHonkCircuit(artifact)) {
10
5
  return 'ultra_keccak_honk';
@@ -17,4 +12,4 @@ export function getUltraHonkFlavorForCircuit(artifact) {
17
12
  function isUltraKeccakHonkCircuit(artifact) {
18
13
  return UltraKeccakHonkCircuits.includes(artifact);
19
14
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9uay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ob25rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBdUMsQ0FBQztBQUM3RixNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLHlCQUF5QjtJQUN6QixnQ0FBZ0M7SUFDaEMsb0JBQW9CO0lBQ3BCLG9CQUFvQjtDQUNpQixDQUFDO0FBYXhDLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUEwQjtJQUNyRSxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO1NBQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBcUMsQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsUUFBMEI7SUFDMUQsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsUUFBMkMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9uay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ob25rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBNkMsQ0FBQztBQUNuRyxNQUFNLGlCQUFpQixHQUFHLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQTZDLENBQUM7QUFhbkgsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWdDO0lBQzNFLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7U0FBTSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUEyQyxDQUFDLEVBQUUsQ0FBQztRQUNuRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxRQUFnQztJQUNoRSxPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxRQUFpRCxDQUFDLENBQUM7QUFDN0YsQ0FBQyJ9
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { type ClientIvcProof } from '@aztec/circuits.js';
4
+ import { type Logger } from '@aztec/foundation/log';
5
+ import { type WitnessMap } from '@noir-lang/types';
6
+ import { type BBConfig } from '../config.js';
7
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
8
+ /**
9
+ * This proof creator implementation uses the native bb binary.
10
+ */
11
+ export declare class BBNativePrivateKernelProver extends BBPrivateKernelProver {
12
+ private bbBinaryPath;
13
+ private bbWorkingDirectory;
14
+ private skipCleanup;
15
+ protected log: Logger;
16
+ private constructor();
17
+ static new(config: BBConfig, log?: Logger): Promise<BBNativePrivateKernelProver>;
18
+ private _createClientIvcProof;
19
+ createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
20
+ computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number>;
21
+ private runInDirectory;
22
+ }
23
+ //# sourceMappingURL=bb_native_private_kernel_prover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bb_native_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IAElE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;cACA,GAAG;IAJxB,OAAO;WASa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM;YAKxC,qBAAqB;IAmCb,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ1F,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBxG,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,68 @@
1
+ import { runInDirectory } from '@aztec/foundation/fs';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
4
+ import { encode } from '@msgpack/msgpack';
5
+ import { serializeWitness } from '@noir-lang/noirc_abi';
6
+ import { promises as fs } from 'fs';
7
+ import path from 'path';
8
+ import { BB_RESULT, computeGateCountForCircuit, executeBbClientIvcProof } from '../bb/execute.js';
9
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
10
+ import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
11
+ /**
12
+ * This proof creator implementation uses the native bb binary.
13
+ */
14
+ export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
15
+ constructor(bbBinaryPath, bbWorkingDirectory, skipCleanup, log = createLogger('bb-prover:native')) {
16
+ super(new BundleArtifactProvider(), log);
17
+ this.bbBinaryPath = bbBinaryPath;
18
+ this.bbWorkingDirectory = bbWorkingDirectory;
19
+ this.skipCleanup = skipCleanup;
20
+ this.log = log;
21
+ }
22
+ static async new(config, log) {
23
+ await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
24
+ return new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, log);
25
+ }
26
+ async _createClientIvcProof(directory, acirs, witnessStack) {
27
+ // TODO(#7371): Longer term we won't use this hacked together msgpack format
28
+ // and instead properly create the bincode serialization from rust
29
+ await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
30
+ await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map(map => serializeWitness(map))));
31
+ const provingResult = await executeBbClientIvcProof(this.bbBinaryPath, directory, path.join(directory, 'acir.msgpack'), path.join(directory, 'witnesses.msgpack'), this.log.info);
32
+ if (provingResult.status === BB_RESULT.FAILURE) {
33
+ this.log.error(`Failed to generate client ivc proof`);
34
+ throw new Error(provingResult.reason);
35
+ }
36
+ const proof = await readFromOutputDirectory(directory);
37
+ this.log.info(`Generated IVC proof`, {
38
+ duration: provingResult.durationMs,
39
+ eventName: 'circuit-proving',
40
+ });
41
+ return proof;
42
+ }
43
+ async createClientIvcProof(acirs, witnessStack) {
44
+ this.log.info(`Generating Client IVC proof`);
45
+ const operation = async (directory) => {
46
+ return await this._createClientIvcProof(directory, acirs, witnessStack);
47
+ };
48
+ return await this.runInDirectory(operation);
49
+ }
50
+ async computeGateCountForCircuit(bytecode, circuitName) {
51
+ const logFunction = (message) => {
52
+ this.log.debug(`$bb gates ${circuitName} - ${message}`);
53
+ };
54
+ const result = await computeGateCountForCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitName, bytecode, 'mega_honk', logFunction);
55
+ if (result.status === BB_RESULT.FAILURE) {
56
+ throw new Error(result.reason);
57
+ }
58
+ return result.circuitSize;
59
+ }
60
+ runInDirectory(fn) {
61
+ const log = this.log;
62
+ return runInDirectory(this.bbWorkingDirectory, (dir) => fn(dir).catch(err => {
63
+ log.error(`Error running operation at ${dir}: ${err}`);
64
+ throw err;
65
+ }), this.skipCleanup);
66
+ }
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXIvYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHFCQUFxQjtJQUNwRSxZQUNVLFlBQW9CLEVBQ3BCLGtCQUEwQixFQUMxQixXQUFvQixFQUNULE1BQU0sWUFBWSxDQUFDLGtCQUFrQixDQUFDO1FBRXpELEtBQUssQ0FBQyxJQUFJLHNCQUFzQixFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFMakMsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ1QsUUFBRyxHQUFILEdBQUcsQ0FB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
@@ -1,46 +1,31 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { type PrivateKernelProver, type PrivateKernelSimulateOutput } from '@aztec/circuit-types';
4
- import { type ClientIvcProof, type PrivateKernelCircuitPublicInputs, type PrivateKernelInitCircuitPrivateInputs, type PrivateKernelInnerCircuitPrivateInputs, type PrivateKernelResetCircuitPrivateInputs, type PrivateKernelTailCircuitPrivateInputs, type PrivateKernelTailCircuitPublicInputs, type Proof } from '@aztec/circuits.js';
5
- import { type Logger } from '@aztec/foundation/log';
6
- import { type ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
7
- import { type WitnessMap } from '@noir-lang/types';
8
- import { type BBConfig } from '../config.js';
9
- /**
10
- * This proof creator implementation uses the native bb binary.
11
- * This is a temporary implementation until we make the WASM version work.
12
- * TODO(#7368): this class grew 'organically' aka it could use a look at its resposibilities
13
- */
14
- export declare class BBNativePrivateKernelProver implements PrivateKernelProver {
15
- private bbBinaryPath;
16
- private bbWorkingDirectory;
17
- private skipCleanup;
18
- private log;
19
- private simulator;
20
- private verificationKeys;
21
- private constructor();
22
- static new(config: BBConfig, log?: Logger): Promise<BBNativePrivateKernelProver>;
23
- private _createClientIvcProof;
24
- createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
25
- simulateProofInit(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
26
- simulateProofInner(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
27
- simulateProofReset(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
28
- simulateProofTail(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
29
- /**
30
- * Verifies a proof, will generate the verification key if one is not cached internally
31
- * @param circuitType - The type of circuit whose proof is to be verified
32
- * @param proof - The proof to be verified
33
- */
34
- verifyProofForProtocolCircuit(circuitType: ClientProtocolArtifact, proof: Proof): Promise<void>;
35
- computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number>;
36
- private verifyProofFromKey;
37
- /**
38
- * Ensures our verification key cache includes the key data located at the specified directory
39
- * @param filePath - The directory containing the verification key data files
40
- * @param circuitType - The type of circuit to which the verification key corresponds
41
- */
42
- private updateVerificationKeyAfterSimulation;
43
- private simulate;
44
- private runInDirectory;
4
+ import { type ClientIvcProof, type PrivateKernelCircuitPublicInputs, type PrivateKernelInitCircuitPrivateInputs, type PrivateKernelInnerCircuitPrivateInputs, type PrivateKernelResetCircuitPrivateInputs, type PrivateKernelTailCircuitPrivateInputs, type PrivateKernelTailCircuitPublicInputs } from '@aztec/circuits.js';
5
+ import { type ArtifactProvider, type ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
6
+ import { WASMSimulator } from '@aztec/simulator/client';
7
+ import { type Abi, type WitnessMap } from '@noir-lang/types';
8
+ export declare abstract class BBPrivateKernelProver implements PrivateKernelProver {
9
+ protected artifactProvider: ArtifactProvider;
10
+ protected log: import("@aztec/foundation/log").Logger;
11
+ protected simulator: WASMSimulator;
12
+ constructor(artifactProvider: ArtifactProvider, log?: import("@aztec/foundation/log").Logger);
13
+ generateInitOutput(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
14
+ simulateInit(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
15
+ generateInnerOutput(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
16
+ simulateInner(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
17
+ generateResetOutput(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
18
+ simulateReset(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
19
+ generateTailOutput(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
20
+ simulateTail(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
21
+ simulateCircuitOutput<I extends {
22
+ toBuffer: () => Buffer;
23
+ }, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
24
+ generateCircuitOutput<I extends {
25
+ toBuffer: () => Buffer;
26
+ }, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
27
+ makeEmptyKernelSimulateOutput<PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs>(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact): PrivateKernelSimulateOutput<PublicInputsType>;
28
+ createClientIvcProof(_acirs: Buffer[], _witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
29
+ computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
45
30
  }
46
31
  //# sourceMappingURL=bb_private_kernel_prover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,KAAK,EAEX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAGL,KAAK,sBAAsB,EAa5B,MAAM,qCAAqC,CAAC;AAM7C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM7C;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IASnE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,SAAS,CAAgC;IAEjD,OAAO,CAAC,gBAAgB,CAGpB;IAEJ,OAAO;WAOa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM;YAKxC,qBAAqB;IAmC7B,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAQnF,iBAAiB,CAC5B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,kBAAkB,CAC7B,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,kBAAkB,CAC7B,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAW5D,iBAAiB,CAC5B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;IAiB7E;;;;OAIG;IACU,6BAA6B,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;IAwB/E,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAoBjF,kBAAkB;IAiBhC;;;;OAIG;YACW,oCAAoC;YAUpC,QAAQ;IAqCtB,OAAO,CAAC,cAAc;CAYvB"}
1
+ {"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_private_kernel_prover.ts"],"names":[],"mappings":"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"}
@@ -1,135 +1,72 @@
1
- import { runInDirectory } from '@aztec/foundation/fs';
2
1
  import { createLogger } from '@aztec/foundation/log';
3
2
  import { Timer } from '@aztec/foundation/timer';
4
- import { ClientCircuitArtifacts, ClientCircuitVks, ProtocolCircuitVks, convertPrivateKernelInitInputsToWitnessMap, convertPrivateKernelInitOutputsFromWitnessMap, convertPrivateKernelInnerInputsToWitnessMap, convertPrivateKernelInnerOutputsFromWitnessMap, convertPrivateKernelResetInputsToWitnessMap, convertPrivateKernelResetOutputsFromWitnessMap, convertPrivateKernelTailForPublicOutputsFromWitnessMap, convertPrivateKernelTailInputsToWitnessMap, convertPrivateKernelTailOutputsFromWitnessMap, convertPrivateKernelTailToPublicInputsToWitnessMap, getPrivateKernelResetArtifactName, } from '@aztec/noir-protocol-circuits-types';
5
- import { WASMSimulatorWithBlobs } from '@aztec/simulator';
6
- import { encode } from '@msgpack/msgpack';
7
- import { serializeWitness } from '@noir-lang/noirc_abi';
8
- import { promises as fs } from 'fs';
9
- import path from 'path';
10
- import { BB_RESULT, computeGateCountForCircuit, executeBbClientIvcProof, verifyProof } from '../bb/execute.js';
11
- import { getUltraHonkFlavorForCircuit } from '../honk.js';
3
+ import { convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs, } from '@aztec/noir-protocol-circuits-types/client';
4
+ import { ClientCircuitVks } from '@aztec/noir-protocol-circuits-types/vks';
5
+ import { WASMSimulator } from '@aztec/simulator/client';
12
6
  import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
13
- import { extractVkData } from '../verification_key/verification_key_data.js';
14
- import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
15
- /**
16
- * This proof creator implementation uses the native bb binary.
17
- * This is a temporary implementation until we make the WASM version work.
18
- * TODO(#7368): this class grew 'organically' aka it could use a look at its resposibilities
19
- */
20
- export class BBNativePrivateKernelProver {
21
- constructor(bbBinaryPath, bbWorkingDirectory, skipCleanup, log = createLogger('bb-prover:native')) {
22
- this.bbBinaryPath = bbBinaryPath;
23
- this.bbWorkingDirectory = bbWorkingDirectory;
24
- this.skipCleanup = skipCleanup;
7
+ export class BBPrivateKernelProver {
8
+ constructor(artifactProvider, log = createLogger('bb-prover')) {
9
+ this.artifactProvider = artifactProvider;
25
10
  this.log = log;
26
- this.simulator = new WASMSimulatorWithBlobs();
27
- this.verificationKeys = new Map();
11
+ this.simulator = new WASMSimulator();
28
12
  }
29
- static async new(config, log) {
30
- await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
31
- return new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, log);
13
+ async generateInitOutput(inputs) {
14
+ return await this.generateCircuitOutput(inputs, 'PrivateKernelInitArtifact', convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi);
32
15
  }
33
- async _createClientIvcProof(directory, acirs, witnessStack) {
34
- // TODO(#7371): Longer term we won't use this hacked together msgpack format
35
- // and instead properly create the bincode serialization from rust
36
- await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
37
- await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map(map => serializeWitness(map))));
38
- const provingResult = await executeBbClientIvcProof(this.bbBinaryPath, directory, path.join(directory, 'acir.msgpack'), path.join(directory, 'witnesses.msgpack'), this.log.info);
39
- if (provingResult.status === BB_RESULT.FAILURE) {
40
- this.log.error(`Failed to generate client ivc proof`);
41
- throw new Error(provingResult.reason);
42
- }
43
- const proof = await readFromOutputDirectory(directory);
44
- this.log.info(`Generated IVC proof`, {
45
- duration: provingResult.durationMs,
46
- eventName: 'circuit-proving',
47
- });
48
- return proof;
16
+ async simulateInit(inputs) {
17
+ return await this.simulateCircuitOutput(inputs, 'PrivateKernelInitArtifact', convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi);
49
18
  }
50
- async createClientIvcProof(acirs, witnessStack) {
51
- this.log.info(`Generating Client IVC proof`);
52
- const operation = async (directory) => {
53
- return await this._createClientIvcProof(directory, acirs, witnessStack);
54
- };
55
- return await this.runInDirectory(operation);
19
+ async generateInnerOutput(inputs) {
20
+ return await this.generateCircuitOutput(inputs, 'PrivateKernelInnerArtifact', convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi);
56
21
  }
57
- async simulateProofInit(inputs) {
58
- return await this.simulate(inputs, 'PrivateKernelInitArtifact', convertPrivateKernelInitInputsToWitnessMap, convertPrivateKernelInitOutputsFromWitnessMap);
22
+ async simulateInner(inputs) {
23
+ return await this.simulateCircuitOutput(inputs, 'PrivateKernelInnerArtifact', convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi);
59
24
  }
60
- async simulateProofInner(inputs) {
61
- return await this.simulate(inputs, 'PrivateKernelInnerArtifact', convertPrivateKernelInnerInputsToWitnessMap, convertPrivateKernelInnerOutputsFromWitnessMap);
25
+ async generateResetOutput(inputs) {
26
+ const variantInputs = inputs.trimToSizes();
27
+ const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
28
+ return await this.generateCircuitOutput(variantInputs, artifactName, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi);
62
29
  }
63
- async simulateProofReset(inputs) {
30
+ async simulateReset(inputs) {
31
+ updateResetCircuitSampleInputs(inputs);
64
32
  const variantInputs = inputs.trimToSizes();
65
33
  const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
66
- return await this.simulate(variantInputs, artifactName, variantInputs => convertPrivateKernelResetInputsToWitnessMap(variantInputs, artifactName), output => convertPrivateKernelResetOutputsFromWitnessMap(output, artifactName));
34
+ return await this.simulateCircuitOutput(variantInputs, artifactName, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi);
67
35
  }
68
- async simulateProofTail(inputs) {
36
+ async generateTailOutput(inputs) {
69
37
  if (!inputs.isForPublic()) {
70
- return await this.simulate(inputs, 'PrivateKernelTailArtifact', convertPrivateKernelTailInputsToWitnessMap, convertPrivateKernelTailOutputsFromWitnessMap);
71
- }
72
- return await this.simulate(inputs, 'PrivateKernelTailToPublicArtifact', convertPrivateKernelTailToPublicInputsToWitnessMap, convertPrivateKernelTailForPublicOutputsFromWitnessMap);
73
- }
74
- /**
75
- * Verifies a proof, will generate the verification key if one is not cached internally
76
- * @param circuitType - The type of circuit whose proof is to be verified
77
- * @param proof - The proof to be verified
78
- */
79
- async verifyProofForProtocolCircuit(circuitType, proof) {
80
- const verificationKey = ProtocolCircuitVks[circuitType];
81
- this.log.debug(`Verifying with key: ${verificationKey.keyAsFields.hash.toString()}`);
82
- const logFunction = (message) => {
83
- this.log.debug(`${circuitType} BB out - ${message}`);
84
- };
85
- const result = await this.verifyProofFromKey(getUltraHonkFlavorForCircuit(circuitType), verificationKey.keyAsBytes, proof, logFunction);
86
- if (result.status === BB_RESULT.FAILURE) {
87
- const errorMessage = `Failed to verify ${circuitType} proof!`;
88
- throw new Error(errorMessage);
38
+ return await this.generateCircuitOutput(inputs, 'PrivateKernelTailArtifact', convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi);
89
39
  }
90
- this.log.info(`Successfully verified ${circuitType} proof in ${Math.ceil(result.durationMs)} ms`);
40
+ return await this.generateCircuitOutput(inputs, 'PrivateKernelTailToPublicArtifact', convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi);
91
41
  }
92
- async computeGateCountForCircuit(bytecode, circuitName) {
93
- const logFunction = (message) => {
94
- this.log.debug(`$bb gates ${circuitName} - ${message}`);
95
- };
96
- const result = await computeGateCountForCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitName, bytecode, 'mega_honk', logFunction);
97
- if (result.status === BB_RESULT.FAILURE) {
98
- throw new Error(result.reason);
42
+ async simulateTail(inputs) {
43
+ if (!inputs.isForPublic()) {
44
+ return await this.simulateCircuitOutput(inputs, 'PrivateKernelTailArtifact', convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi);
99
45
  }
100
- return result.circuitSize;
101
- }
102
- async verifyProofFromKey(flavor, verificationKey, proof, logFunction = () => { }) {
103
- const operation = async (bbWorkingDirectory) => {
104
- const proofFileName = `${bbWorkingDirectory}/proof`;
105
- const verificationKeyPath = `${bbWorkingDirectory}/vk`;
106
- await fs.writeFile(proofFileName, proof.buffer);
107
- await fs.writeFile(verificationKeyPath, verificationKey);
108
- return await verifyProof(this.bbBinaryPath, proofFileName, verificationKeyPath, flavor, logFunction);
109
- };
110
- return await this.runInDirectory(operation);
46
+ return await this.simulateCircuitOutput(inputs, 'PrivateKernelTailToPublicArtifact', convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi);
111
47
  }
112
- /**
113
- * Ensures our verification key cache includes the key data located at the specified directory
114
- * @param filePath - The directory containing the verification key data files
115
- * @param circuitType - The type of circuit to which the verification key corresponds
116
- */
117
- async updateVerificationKeyAfterSimulation(filePath, circuitType) {
118
- let promise = this.verificationKeys.get(circuitType);
119
- if (!promise) {
120
- promise = extractVkData(filePath);
121
- this.log.debug(`Updated verification key for circuit: ${circuitType}`);
122
- this.verificationKeys.set(circuitType, promise);
123
- }
124
- return await promise;
48
+ async simulateCircuitOutput(inputs, circuitType, convertInputs, convertOutputs) {
49
+ const compiledCircuit = await this.artifactProvider.getSimulatedClientCircuitArtifactByName(circuitType);
50
+ const witnessMap = convertInputs(inputs, compiledCircuit.abi);
51
+ const timer = new Timer();
52
+ const outputWitness = await this.simulator.simulateCircuit(witnessMap, compiledCircuit);
53
+ const output = convertOutputs(outputWitness, compiledCircuit.abi);
54
+ this.log.debug(`Simulated ${circuitType}`, {
55
+ eventName: 'circuit-simulation',
56
+ circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
57
+ duration: timer.ms(),
58
+ inputSize: inputs.toBuffer().length,
59
+ outputSize: output.toBuffer().length,
60
+ });
61
+ return this.makeEmptyKernelSimulateOutput(output, circuitType);
125
62
  }
126
- async simulate(inputs, circuitType, convertInputs, convertOutputs) {
63
+ async generateCircuitOutput(inputs, circuitType, convertInputs, convertOutputs) {
127
64
  this.log.debug(`Generating witness for ${circuitType}`);
128
- const compiledCircuit = ClientCircuitArtifacts[circuitType];
129
- const witnessMap = convertInputs(inputs);
65
+ const compiledCircuit = await this.artifactProvider.getClientCircuitArtifactByName(circuitType);
66
+ const witnessMap = convertInputs(inputs, compiledCircuit.abi);
130
67
  const timer = new Timer();
131
68
  const outputWitness = await this.simulator.simulateCircuit(witnessMap, compiledCircuit);
132
- const output = convertOutputs(outputWitness);
69
+ const output = convertOutputs(outputWitness, compiledCircuit.abi);
133
70
  this.log.debug(`Generated witness for ${circuitType}`, {
134
71
  eventName: 'circuit-witness-generation',
135
72
  circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
@@ -147,12 +84,20 @@ export class BBNativePrivateKernelProver {
147
84
  };
148
85
  return kernelOutput;
149
86
  }
150
- runInDirectory(fn) {
151
- const log = this.log;
152
- return runInDirectory(this.bbWorkingDirectory, (dir) => fn(dir).catch(err => {
153
- log.error(`Error running operation at ${dir}: ${err}`);
154
- throw err;
155
- }), this.skipCleanup);
87
+ makeEmptyKernelSimulateOutput(publicInputs, circuitType) {
88
+ const kernelProofOutput = {
89
+ publicInputs,
90
+ verificationKey: ClientCircuitVks[circuitType].keyAsFields,
91
+ outputWitness: new Map(),
92
+ bytecode: Buffer.from([]),
93
+ };
94
+ return kernelProofOutput;
95
+ }
96
+ createClientIvcProof(_acirs, _witnessStack) {
97
+ throw new Error('Not implemented');
98
+ }
99
+ computeGateCountForCircuit(_bytecode, _circuitName) {
100
+ throw new Error('Not implemented');
156
101
  }
157
102
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJpdmF0ZV9rZXJuZWxfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcml2YXRlX2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFFaEIsa0JBQWtCLEVBQ2xCLDBDQUEwQyxFQUMxQyw2Q0FBNkMsRUFDN0MsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QywyQ0FBMkMsRUFDM0MsOENBQThDLEVBQzlDLHNEQUFzRCxFQUN0RCwwQ0FBMEMsRUFDMUMsNkNBQTZDLEVBQzdDLGtEQUFrRCxFQUNsRCxpQ0FBaUMsR0FDbEMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0csT0FBTyxFQUF3Qiw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFN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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJpdmF0ZV9rZXJuZWxfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcml2YXRlX2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELG9EQUFvRCxFQUNwRCxrREFBa0QsRUFDbEQscURBQXFELEVBQ3JELGtEQUFrRCxFQUNsRCxxREFBcUQsRUFDckQsNkRBQTZELEVBQzdELGlEQUFpRCxFQUNqRCxvREFBb0QsRUFDcEQseURBQXlELEVBQ3pELGlDQUFpQyxFQUNqQyw4QkFBOEIsR0FDL0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLeEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5FLE1BQU0sT0FBZ0IscUJBQXFCO0lBR3pDLFlBQXNCLGdCQUFrQyxFQUFZLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUE3RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFGekYsY0FBUyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFNEQsQ0FBQztJQUVoRyxLQUFLLENBQUMsa0JBQWtCLENBQzdCLE1BQTZDO1FBRTdDLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQ3JDLE1BQU0sRUFDTiwyQkFBMkIsRUFDM0IsaURBQWlELEVBQ2pELG9EQUFvRCxDQUNyRCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLE1BQTZD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
@@ -1,7 +1,7 @@
1
1
  import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
2
- import { AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type BaseParityInputs, type KernelCircuitPublicInputs, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type ParityPublicInputs, type PrivateKernelEmptyInputData, Proof, RECURSIVE_PROOF_LENGTH, RecursiveProof, type RootParityInputs, TUBE_PROOF_LENGTH, type VerificationKeyAsFields, type VerificationKeyData } from '@aztec/circuits.js';
3
- import { type BaseOrMergeRollupPublicInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PublicBaseRollupInputs, type RootRollupInputs, type RootRollupPublicInputs, type TubeInputs } from '@aztec/circuits.js/rollup';
4
- import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
2
+ import { AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type BaseParityInputs, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type ParityPublicInputs, Proof, RECURSIVE_PROOF_LENGTH, RecursiveProof, type RootParityInputs, TUBE_PROOF_LENGTH, type VerificationKeyAsFields, type VerificationKeyData } from '@aztec/circuits.js';
3
+ import { type BaseOrMergeRollupPublicInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PublicBaseRollupInputs, type RootRollupInputs, type RootRollupPublicInputs, type SingleTxBlockRootRollupInputs, type TubeInputs } from '@aztec/circuits.js/rollup';
4
+ import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
5
5
  import { type TelemetryClient } from '@aztec/telemetry-client';
6
6
  import type { ACVMConfig, BBConfig } from '../config.js';
7
7
  import { type UltraHonkFlavor } from '../honk.js';
@@ -60,6 +60,7 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
60
60
  * @returns The public inputs as outputs of the simulation.
61
61
  */
62
62
  getBlockRootRollupProof(input: BlockRootRollupInputs): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
63
+ getSingleTxBlockRootRollupProof(input: SingleTxBlockRootRollupInputs): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
63
64
  /**
64
65
  * Simulates the empty block root rollup circuit from its inputs.
65
66
  * @param input - Inputs to the circuit.
@@ -78,9 +79,6 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
78
79
  * @returns The public inputs as outputs of the simulation.
79
80
  */
80
81
  getRootRollupProof(input: RootRollupInputs): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
81
- getEmptyPrivateKernelProof(inputs: PrivateKernelEmptyInputData): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
82
- private getEmptyNestedProof;
83
- private getEmptyPrivateKernelProofFromEmptyNested;
84
82
  private generateProofWithBB;
85
83
  private createProof;
86
84
  private generateAvmProofWithBB;
@@ -1 +1 @@
1
- {"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"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"}