@aztec/bb-prover 0.43.0 → 0.44.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.
package/dest/stats.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { type PublicKernelRequest } from '@aztec/circuit-types';
2
1
  import type { CircuitName } from '@aztec/circuit-types/stats';
3
2
  import { type ClientProtocolArtifact, type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
4
- export declare function mapPublicKernelToCircuitName(kernelType: PublicKernelRequest['type']): CircuitName;
3
+ export { mapPublicKernelToCircuitName } from '@aztec/circuit-types';
5
4
  export declare function mapProtocolArtifactNameToCircuitName(artifact: ServerProtocolArtifact | ClientProtocolArtifact): CircuitName;
6
5
  //# sourceMappingURL=stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE/G,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,WAAW,CAajG;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,sBAAsB,GAAG,sBAAsB,GACxD,WAAW,CA6Cb"}
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,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,sBAAsB,GAAG,sBAAsB,GACxD,WAAW,CA6Cb"}
package/dest/stats.js CHANGED
@@ -1,18 +1,4 @@
1
- import { PublicKernelType } from '@aztec/circuit-types';
2
- export function mapPublicKernelToCircuitName(kernelType) {
3
- switch (kernelType) {
4
- case PublicKernelType.SETUP:
5
- return 'public-kernel-setup';
6
- case PublicKernelType.APP_LOGIC:
7
- return 'public-kernel-app-logic';
8
- case PublicKernelType.TEARDOWN:
9
- return 'public-kernel-teardown';
10
- case PublicKernelType.TAIL:
11
- return 'public-kernel-tail';
12
- default:
13
- throw new Error(`Unknown kernel type: ${kernelType}`);
14
- }
15
- }
1
+ export { mapPublicKernelToCircuitName } from '@aztec/circuit-types';
16
2
  export function mapProtocolArtifactNameToCircuitName(artifact) {
17
3
  switch (artifact) {
18
4
  case 'BaseParityArtifact':
@@ -59,4 +45,4 @@ export function mapProtocolArtifactNameToCircuitName(artifact) {
59
45
  }
60
46
  }
61
47
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSWxGLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxVQUF1QztJQUNsRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssZ0JBQWdCLENBQUMsS0FBSztZQUN6QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssZ0JBQWdCLENBQUMsU0FBUztZQUM3QixPQUFPLHlCQUF5QixDQUFDO1FBQ25DLEtBQUssZ0JBQWdCLENBQUMsUUFBUTtZQUM1QixPQUFPLHdCQUF3QixDQUFDO1FBQ2xDLEtBQUssZ0JBQWdCLENBQUMsSUFBSTtZQUN4QixPQUFPLG9CQUFvQixDQUFDO1FBQzlCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsUUFBeUQ7SUFFekQsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLHFCQUFxQjtZQUN4QixPQUFPLGNBQWMsQ0FBQztRQUN4QixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLDJCQUEyQjtZQUM5QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssOEJBQThCO1lBQ2pDLE9BQU8seUJBQXlCLENBQUM7UUFDbkMsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyx3QkFBd0IsQ0FBQztRQUNsQyxLQUFLLDBCQUEwQjtZQUM3QixPQUFPLG9CQUFvQixDQUFDO1FBQzlCLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyw0QkFBNEI7WUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxLQUFLLDJCQUEyQjtZQUM5QixPQUFPLHFCQUFxQixDQUFDO1FBQy9CLEtBQUssbUNBQW1DO1lBQ3RDLE9BQU8sK0JBQStCLENBQUM7UUFDekMsS0FBSyxnQ0FBZ0M7WUFDbkMsT0FBTywyQkFBMkIsQ0FBQztRQUNyQyxLQUFLLCtCQUErQjtZQUNsQyxPQUFPLDBCQUEwQixDQUFDO1FBQ3BDLEtBQUssa0NBQWtDO1lBQ3JDLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsS0FBSyxpQ0FBaUM7WUFDcEMsT0FBTyw0QkFBNEIsQ0FBQztRQUN0QyxLQUFLLHFCQUFxQjtZQUN4QixPQUFPLGNBQWMsQ0FBQztRQUN4QixLQUFLLDRCQUE0QjtZQUMvQixPQUFPLHNCQUFzQixDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixNQUFNLElBQUksR0FBVSxRQUFRLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEUsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxRQUF5RDtJQUV6RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyx5QkFBeUIsQ0FBQztRQUNuQyxLQUFLLDhCQUE4QjtZQUNqQyxPQUFPLHdCQUF3QixDQUFDO1FBQ2xDLEtBQUssMEJBQTBCO1lBQzdCLE9BQU8sb0JBQW9CLENBQUM7UUFDOUIsS0FBSywyQkFBMkI7WUFDOUIsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixLQUFLLDRCQUE0QjtZQUMvQixPQUFPLHNCQUFzQixDQUFDO1FBQ2hDLEtBQUssMkJBQTJCO1lBQzlCLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyxtQ0FBbUM7WUFDdEMsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxLQUFLLGdDQUFnQztZQUNuQyxPQUFPLDJCQUEyQixDQUFDO1FBQ3JDLEtBQUssK0JBQStCO1lBQ2xDLE9BQU8sMEJBQTBCLENBQUM7UUFDcEMsS0FBSyxrQ0FBa0M7WUFDckMsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxLQUFLLGlDQUFpQztZQUNwQyxPQUFPLDRCQUE0QixDQUFDO1FBQ3RDLEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUssNEJBQTRCO1lBQy9CLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE1BQU0sSUFBSSxHQUFVLFFBQVEsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -2,6 +2,7 @@ import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type
2
2
  import { type AvmCircuitInputs, type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BaseRollupInputs, type KernelCircuitPublicInputs, type MergeRollupInputs, NESTED_RECURSIVE_PROOF_LENGTH, type PrivateKernelEmptyInputData, type Proof, type PublicKernelCircuitPublicInputs, RECURSIVE_PROOF_LENGTH, RootParityInput, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs } from '@aztec/circuits.js';
3
3
  import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
4
4
  import { type SimulationProvider } from '@aztec/simulator';
5
+ import { type TelemetryClient } from '@aztec/telemetry-client';
5
6
  /**
6
7
  * A class for use in testing situations (e2e, unit test etc)
7
8
  * Simulates circuits using the most efficient method and performs no proving
@@ -10,7 +11,9 @@ export declare class TestCircuitProver implements ServerCircuitProver {
10
11
  private simulationProvider?;
11
12
  private logger;
12
13
  private wasmSimulator;
13
- constructor(simulationProvider?: SimulationProvider | undefined, logger?: import("@aztec/foundation/log").Logger);
14
+ private instrumentation;
15
+ constructor(telemetry: TelemetryClient, simulationProvider?: SimulationProvider | undefined, logger?: import("@aztec/foundation/log").Logger);
16
+ get tracer(): import("@aztec/telemetry-client").Tracer;
14
17
  getEmptyPrivateKernelProof(inputs: PrivateKernelEmptyInputData): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
15
18
  /**
16
19
  * Simulates the base parity circuit from its inputs.
@@ -1 +1 @@
1
- {"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,6BAA6B,EAC7B,KAAK,2BAA2B,EAEhC,KAAK,KAAK,EACV,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAM5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAML,KAAK,sBAAsB,EAiB5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,kBAAkB,CAAC;AAmBtG;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IAIzD,OAAO,CAAC,kBAAkB,CAAC;IAC3B,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,aAAa,CAAuB;gBAGlC,kBAAkB,CAAC,gCAAoB,EACvC,MAAM,yCAAyC;IAG5C,0BAA0B,CACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAiBpE;;;;OAIG;IACU,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAyBlH;;;;OAIG;IACU,kBAAkB,CAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,OAAO,6BAA6B,CAAC,CAAC;IA0BjE;;;;OAIG;IACU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IAsBxE;;;;OAIG;IACU,mBAAmB,CAC9B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IAuBxE;;;;OAIG;IACU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;IAuBpD,oBAAoB,CAC/B,aAAa,EAAE,0BAA0B,GACxC,OAAO,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,CAAC;IA6B7D,kBAAkB,CAC7B,aAAa,EAAE,uBAAuB,GACrC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAyBpE,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQjE,WAAW,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE"}
1
+ {"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,6BAA6B,EAC7B,KAAK,2BAA2B,EAEhC,KAAK,KAAK,EACV,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAM5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAML,KAAK,sBAAsB,EAiB5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAoB1E;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IAMzD,OAAO,CAAC,kBAAkB,CAAC;IAC3B,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAwB;gBAG7C,SAAS,EAAE,eAAe,EAClB,kBAAkB,CAAC,gCAAoB,EACvC,MAAM,yCAAyC;IAKzD,IAAI,MAAM,6CAET;IAEY,0BAA0B,CACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAiBpE;;;;OAIG;IAEU,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,sBAAsB,CAAC,CAAC;IA2BlH;;;;OAIG;IAEU,kBAAkB,CAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,OAAO,6BAA6B,CAAC,CAAC;IA2BjE;;;;OAIG;IAEU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IAuBxE;;;;OAIG;IAEU,mBAAmB,CAC9B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IAwBxE;;;;OAIG;IAEU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;IAyBpD,oBAAoB,CAC/B,aAAa,EAAE,0BAA0B,GACxC,OAAO,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,CAAC;IAgC7D,kBAAkB,CAC7B,aAAa,EAAE,uBAAuB,GACrC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IA0BpE,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQjE,WAAW,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE"}
@@ -1,9 +1,12 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
1
2
  import { makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
2
3
  import { EmptyNestedData, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, RECURSIVE_PROOF_LENGTH, RootParityInput, VerificationKeyAsFields, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, makeRecursiveProof, } from '@aztec/circuits.js';
3
4
  import { createDebugLogger } from '@aztec/foundation/log';
4
5
  import { Timer } from '@aztec/foundation/timer';
5
6
  import { BaseParityArtifact, MergeRollupArtifact, PrivateKernelEmptyArtifact, RootParityArtifact, RootRollupArtifact, SimulatedBaseRollupArtifact, SimulatedServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
6
7
  import { WASMSimulator, emitCircuitSimulationStats } from '@aztec/simulator';
8
+ import { trackSpan } from '@aztec/telemetry-client';
9
+ import { ProverInstrumentation } from '../instrumentation.js';
7
10
  import { SimulatedPublicKernelArtifactMapping } from '../mappings/mappings.js';
8
11
  import { mapPublicKernelToCircuitName } from '../stats.js';
9
12
  const VERIFICATION_KEYS = {
@@ -23,122 +26,165 @@ const VERIFICATION_KEYS = {
23
26
  * A class for use in testing situations (e2e, unit test etc)
24
27
  * Simulates circuits using the most efficient method and performs no proving
25
28
  */
26
- export class TestCircuitProver {
27
- constructor(simulationProvider, logger = createDebugLogger('aztec:test-prover')) {
28
- this.simulationProvider = simulationProvider;
29
- this.logger = logger;
30
- this.wasmSimulator = new WASMSimulator();
31
- }
32
- async getEmptyPrivateKernelProof(inputs) {
33
- const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['EmptyNestedArtifact']);
34
- const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version);
35
- const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
36
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, PrivateKernelEmptyArtifact);
37
- const result = convertPrivateKernelEmptyOutputsFromWitnessMap(witness);
38
- return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
39
- }
40
- /**
41
- * Simulates the base parity circuit from its inputs.
42
- * @param inputs - Inputs to the circuit.
43
- * @returns The public inputs of the parity circuit.
44
- */
45
- async getBaseParityProof(inputs) {
46
- const timer = new Timer();
47
- const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
48
- // use WASM here as it is faster for small circuits
49
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, BaseParityArtifact);
50
- const result = convertBaseParityOutputsFromWitnessMap(witness);
51
- const rootParityInput = new RootParityInput(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['BaseParityArtifact'], result);
52
- emitCircuitSimulationStats('base-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
53
- return Promise.resolve(rootParityInput);
54
- }
55
- /**
56
- * Simulates the root parity circuit from its inputs.
57
- * @param inputs - Inputs to the circuit.
58
- * @returns The public inputs of the parity circuit.
59
- */
60
- async getRootParityProof(inputs) {
61
- const timer = new Timer();
62
- const witnessMap = convertRootParityInputsToWitnessMap(inputs);
63
- // use WASM here as it is faster for small circuits
64
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootParityArtifact);
65
- const result = convertRootParityOutputsFromWitnessMap(witness);
66
- const rootParityInput = new RootParityInput(makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['RootParityArtifact'], result);
67
- emitCircuitSimulationStats('root-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
68
- return Promise.resolve(rootParityInput);
69
- }
70
- /**
71
- * Simulates the base rollup circuit from its inputs.
72
- * @param input - Inputs to the circuit.
73
- * @returns The public inputs as outputs of the simulation.
74
- */
75
- async getBaseRollupProof(input) {
76
- const timer = new Timer();
77
- const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
78
- const simulationProvider = this.simulationProvider ?? this.wasmSimulator;
79
- const witness = await simulationProvider.simulateCircuit(witnessMap, SimulatedBaseRollupArtifact);
80
- const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
81
- emitCircuitSimulationStats('base-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
82
- return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
83
- }
84
- /**
85
- * Simulates the merge rollup circuit from its inputs.
86
- * @param input - Inputs to the circuit.
87
- * @returns The public inputs as outputs of the simulation.
88
- */
89
- async getMergeRollupProof(input) {
90
- const timer = new Timer();
91
- const witnessMap = convertMergeRollupInputsToWitnessMap(input);
92
- // use WASM here as it is faster for small circuits
93
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
94
- const result = convertMergeRollupOutputsFromWitnessMap(witness);
95
- emitCircuitSimulationStats('merge-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
96
- return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
97
- }
98
- /**
99
- * Simulates the root rollup circuit from its inputs.
100
- * @param input - Inputs to the circuit.
101
- * @returns The public inputs as outputs of the simulation.
102
- */
103
- async getRootRollupProof(input) {
104
- const timer = new Timer();
105
- const witnessMap = convertRootRollupInputsToWitnessMap(input);
106
- // use WASM here as it is faster for small circuits
107
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact);
108
- const result = convertRootRollupOutputsFromWitnessMap(witness);
109
- emitCircuitSimulationStats('root-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
110
- return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
111
- }
112
- async getPublicKernelProof(kernelRequest) {
113
- const timer = new Timer();
114
- const kernelOps = SimulatedPublicKernelArtifactMapping[kernelRequest.type];
115
- if (kernelOps === undefined) {
116
- throw new Error(`Unable to prove for kernel type ${kernelRequest.type}`);
117
- }
118
- const witnessMap = kernelOps.convertInputs(kernelRequest.inputs);
119
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts[kernelOps.artifact]);
120
- const result = kernelOps.convertOutputs(witness);
121
- emitCircuitSimulationStats(mapPublicKernelToCircuitName(kernelRequest.type), timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
122
- return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
123
- }
124
- async getPublicTailProof(kernelRequest) {
125
- const timer = new Timer();
126
- const witnessMap = convertSimulatedPublicTailInputsToWitnessMap(kernelRequest.inputs);
127
- // use WASM here as it is faster for small circuits
128
- const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts['PublicKernelTailArtifact']);
129
- const result = convertSimulatedPublicTailOutputFromWitnessMap(witness);
130
- emitCircuitSimulationStats('public-kernel-tail', timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
131
- return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
132
- }
133
- getAvmProof(_inputs) {
134
- // We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
135
- // We just return an empty proof and VK data.
136
- this.logger.debug('Skipping AVM simulation in TestCircuitProver.');
137
- return Promise.resolve({ proof: makeEmptyProof(), verificationKey: VerificationKeyData.makeFake() });
138
- }
139
- // Not implemented for test circuits
140
- verifyProof(_1, _2) {
141
- return Promise.reject(new Error('Method not implemented.'));
142
- }
143
- }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU1MLGlDQUFpQyxHQUNsQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFLTCxlQUFlLEVBR2YsNkJBQTZCLEVBRTdCLHdCQUF3QixFQUd4QixzQkFBc0IsRUFDdEIsZUFBZSxFQUlmLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFFbEIsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG9DQUFvQyxFQUNwQyx1Q0FBdUMsRUFDdkMsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxFQUMvQyw0Q0FBNEMsRUFDNUMsOENBQThDLEdBQy9DLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUEyQixhQUFhLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0QsTUFBTSxpQkFBaUIsR0FBNEQ7SUFD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
29
+ let TestCircuitProver = (() => {
30
+ var _a;
31
+ let _instanceExtraInitializers = [];
32
+ let _getBaseParityProof_decorators;
33
+ let _getRootParityProof_decorators;
34
+ let _getBaseRollupProof_decorators;
35
+ let _getMergeRollupProof_decorators;
36
+ let _getRootRollupProof_decorators;
37
+ let _getPublicKernelProof_decorators;
38
+ let _getPublicTailProof_decorators;
39
+ return _a = class TestCircuitProver {
40
+ constructor(telemetry, simulationProvider, logger = createDebugLogger('aztec:test-prover')) {
41
+ this.simulationProvider = (__runInitializers(this, _instanceExtraInitializers), simulationProvider);
42
+ this.logger = logger;
43
+ this.wasmSimulator = new WASMSimulator();
44
+ this.instrumentation = new ProverInstrumentation(telemetry, 'TestCircuitProver');
45
+ }
46
+ get tracer() {
47
+ return this.instrumentation.tracer;
48
+ }
49
+ async getEmptyPrivateKernelProof(inputs) {
50
+ const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['EmptyNestedArtifact']);
51
+ const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version);
52
+ const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
53
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, PrivateKernelEmptyArtifact);
54
+ const result = convertPrivateKernelEmptyOutputsFromWitnessMap(witness);
55
+ return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
56
+ }
57
+ /**
58
+ * Simulates the base parity circuit from its inputs.
59
+ * @param inputs - Inputs to the circuit.
60
+ * @returns The public inputs of the parity circuit.
61
+ */
62
+ async getBaseParityProof(inputs) {
63
+ const timer = new Timer();
64
+ const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
65
+ // use WASM here as it is faster for small circuits
66
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, BaseParityArtifact);
67
+ const result = convertBaseParityOutputsFromWitnessMap(witness);
68
+ const rootParityInput = new RootParityInput(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['BaseParityArtifact'], result);
69
+ this.instrumentation.recordDuration('simulationDuration', 'base-parity', timer);
70
+ emitCircuitSimulationStats('base-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
71
+ return Promise.resolve(rootParityInput);
72
+ }
73
+ /**
74
+ * Simulates the root parity circuit from its inputs.
75
+ * @param inputs - Inputs to the circuit.
76
+ * @returns The public inputs of the parity circuit.
77
+ */
78
+ async getRootParityProof(inputs) {
79
+ const timer = new Timer();
80
+ const witnessMap = convertRootParityInputsToWitnessMap(inputs);
81
+ // use WASM here as it is faster for small circuits
82
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootParityArtifact);
83
+ const result = convertRootParityOutputsFromWitnessMap(witness);
84
+ const rootParityInput = new RootParityInput(makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VERIFICATION_KEYS['RootParityArtifact'], result);
85
+ this.instrumentation.recordDuration('simulationDuration', 'root-parity', timer);
86
+ emitCircuitSimulationStats('root-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
87
+ return Promise.resolve(rootParityInput);
88
+ }
89
+ /**
90
+ * Simulates the base rollup circuit from its inputs.
91
+ * @param input - Inputs to the circuit.
92
+ * @returns The public inputs as outputs of the simulation.
93
+ */
94
+ async getBaseRollupProof(input) {
95
+ const timer = new Timer();
96
+ const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
97
+ const simulationProvider = this.simulationProvider ?? this.wasmSimulator;
98
+ const witness = await simulationProvider.simulateCircuit(witnessMap, SimulatedBaseRollupArtifact);
99
+ const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
100
+ this.instrumentation.recordDuration('simulationDuration', 'base-rollup', timer);
101
+ emitCircuitSimulationStats('base-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
102
+ return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
103
+ }
104
+ /**
105
+ * Simulates the merge rollup circuit from its inputs.
106
+ * @param input - Inputs to the circuit.
107
+ * @returns The public inputs as outputs of the simulation.
108
+ */
109
+ async getMergeRollupProof(input) {
110
+ const timer = new Timer();
111
+ const witnessMap = convertMergeRollupInputsToWitnessMap(input);
112
+ // use WASM here as it is faster for small circuits
113
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
114
+ const result = convertMergeRollupOutputsFromWitnessMap(witness);
115
+ this.instrumentation.recordDuration('simulationDuration', 'merge-rollup', timer);
116
+ emitCircuitSimulationStats('merge-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
117
+ return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
118
+ }
119
+ /**
120
+ * Simulates the root rollup circuit from its inputs.
121
+ * @param input - Inputs to the circuit.
122
+ * @returns The public inputs as outputs of the simulation.
123
+ */
124
+ async getRootRollupProof(input) {
125
+ const timer = new Timer();
126
+ const witnessMap = convertRootRollupInputsToWitnessMap(input);
127
+ // use WASM here as it is faster for small circuits
128
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact);
129
+ const result = convertRootRollupOutputsFromWitnessMap(witness);
130
+ this.instrumentation.recordDuration('simulationDuration', 'root-rollup', timer);
131
+ emitCircuitSimulationStats('root-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
132
+ return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
133
+ }
134
+ async getPublicKernelProof(kernelRequest) {
135
+ const timer = new Timer();
136
+ const kernelOps = SimulatedPublicKernelArtifactMapping[kernelRequest.type];
137
+ if (kernelOps === undefined) {
138
+ throw new Error(`Unable to prove for kernel type ${kernelRequest.type}`);
139
+ }
140
+ const witnessMap = kernelOps.convertInputs(kernelRequest.inputs);
141
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts[kernelOps.artifact]);
142
+ const result = kernelOps.convertOutputs(witness);
143
+ const circuitName = mapPublicKernelToCircuitName(kernelRequest.type);
144
+ this.instrumentation.recordDuration('simulationDuration', circuitName, timer);
145
+ emitCircuitSimulationStats(circuitName, timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
146
+ return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
147
+ }
148
+ async getPublicTailProof(kernelRequest) {
149
+ const timer = new Timer();
150
+ const witnessMap = convertSimulatedPublicTailInputsToWitnessMap(kernelRequest.inputs);
151
+ // use WASM here as it is faster for small circuits
152
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts['PublicKernelTailArtifact']);
153
+ const result = convertSimulatedPublicTailOutputFromWitnessMap(witness);
154
+ this.instrumentation.recordDuration('simulationDuration', 'public-kernel-tail', timer);
155
+ emitCircuitSimulationStats('public-kernel-tail', timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
156
+ return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFake());
157
+ }
158
+ getAvmProof(_inputs) {
159
+ // We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
160
+ // We just return an empty proof and VK data.
161
+ this.logger.debug('Skipping AVM simulation in TestCircuitProver.');
162
+ return Promise.resolve({ proof: makeEmptyProof(), verificationKey: VerificationKeyData.makeFake() });
163
+ }
164
+ // Not implemented for test circuits
165
+ verifyProof(_1, _2) {
166
+ return Promise.reject(new Error('Method not implemented.'));
167
+ }
168
+ },
169
+ (() => {
170
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
171
+ _getBaseParityProof_decorators = [trackSpan('TestCircuitProver.getBaseParityProof')];
172
+ _getRootParityProof_decorators = [trackSpan('TestCircuitProver.getRootParityProof')];
173
+ _getBaseRollupProof_decorators = [trackSpan('TestCircuitProver.getBaseRollupProof')];
174
+ _getMergeRollupProof_decorators = [trackSpan('TestCircuitProver.getMergeRollupProof')];
175
+ _getRootRollupProof_decorators = [trackSpan('TestCircuitProver.getRootRollupProof')];
176
+ _getPublicKernelProof_decorators = [trackSpan('TestCircuitProver.getPublicKernelProof')];
177
+ _getPublicTailProof_decorators = [trackSpan('TestCircuitProver.getPublicTailProof')];
178
+ __esDecorate(_a, null, _getBaseParityProof_decorators, { kind: "method", name: "getBaseParityProof", static: false, private: false, access: { has: obj => "getBaseParityProof" in obj, get: obj => obj.getBaseParityProof }, metadata: _metadata }, null, _instanceExtraInitializers);
179
+ __esDecorate(_a, null, _getRootParityProof_decorators, { kind: "method", name: "getRootParityProof", static: false, private: false, access: { has: obj => "getRootParityProof" in obj, get: obj => obj.getRootParityProof }, metadata: _metadata }, null, _instanceExtraInitializers);
180
+ __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);
181
+ __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);
182
+ __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);
183
+ __esDecorate(_a, null, _getPublicKernelProof_decorators, { kind: "method", name: "getPublicKernelProof", static: false, private: false, access: { has: obj => "getPublicKernelProof" in obj, get: obj => obj.getPublicKernelProof }, metadata: _metadata }, null, _instanceExtraInitializers);
184
+ __esDecorate(_a, null, _getPublicTailProof_decorators, { kind: "method", name: "getPublicTailProof", static: false, private: false, access: { has: obj => "getPublicTailProof" in obj, get: obj => obj.getPublicTailProof }, metadata: _metadata }, null, _instanceExtraInitializers);
185
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
186
+ })(),
187
+ _a;
188
+ })();
189
+ export { TestCircuitProver };
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxpQ0FBaUMsR0FDbEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBS0wsZUFBZSxFQUdmLDZCQUE2QixFQUU3Qix3QkFBd0IsRUFHeEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFJZix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsa0JBQWtCLEdBQ25CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBRWxCLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLDRDQUE0QyxFQUM1QywrQ0FBK0MsRUFDL0MsNENBQTRDLEVBQzVDLDhDQUE4QyxHQUMvQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBMkIsYUFBYSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEcsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0NBQW9DLEVB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/bb-prover",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js"
@@ -35,7 +35,15 @@
35
35
  "rootDir": "./src",
36
36
  "transform": {
37
37
  "^.+\\.tsx?$": [
38
- "@swc/jest"
38
+ "@swc/jest",
39
+ {
40
+ "jsc": {
41
+ "parser": {
42
+ "syntax": "typescript",
43
+ "decorators": true
44
+ }
45
+ }
46
+ }
39
47
  ]
40
48
  },
41
49
  "extensionsToTreatAsEsm": [
@@ -51,11 +59,12 @@
51
59
  ]
52
60
  },
53
61
  "dependencies": {
54
- "@aztec/circuit-types": "0.43.0",
55
- "@aztec/circuits.js": "0.43.0",
56
- "@aztec/foundation": "0.43.0",
57
- "@aztec/noir-protocol-circuits-types": "0.43.0",
58
- "@aztec/simulator": "0.43.0",
62
+ "@aztec/circuit-types": "0.44.0",
63
+ "@aztec/circuits.js": "0.44.0",
64
+ "@aztec/foundation": "0.44.0",
65
+ "@aztec/noir-protocol-circuits-types": "0.44.0",
66
+ "@aztec/simulator": "0.44.0",
67
+ "@aztec/telemetry-client": "0.44.0",
59
68
  "@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
60
69
  "@noir-lang/types": "portal:../../noir/packages/types",
61
70
  "commander": "^9.0.0",
package/src/bb/execute.ts CHANGED
@@ -21,7 +21,7 @@ export enum BB_RESULT {
21
21
 
22
22
  export type BBSuccess = {
23
23
  status: BB_RESULT.SUCCESS | BB_RESULT.ALREADY_PRESENT;
24
- duration: number;
24
+ durationMs: number;
25
25
  /** Full path of the public key. */
26
26
  pkPath?: string;
27
27
  /** Base directory for the VKs (raw, fields). */
@@ -155,7 +155,7 @@ export async function generateKeyForNoirCircuit(
155
155
  if (result.status == BB_RESULT.SUCCESS) {
156
156
  return {
157
157
  status: BB_RESULT.SUCCESS,
158
- duration,
158
+ durationMs: duration,
159
159
  pkPath: key === 'pk' ? outputPath : undefined,
160
160
  vkPath: key === 'vk' ? outputPath : undefined,
161
161
  proofPath: undefined,
@@ -174,7 +174,7 @@ export async function generateKeyForNoirCircuit(
174
174
  if (!res) {
175
175
  return {
176
176
  status: BB_RESULT.ALREADY_PRESENT,
177
- duration: 0,
177
+ durationMs: 0,
178
178
  pkPath: key === 'pk' ? outputPath : undefined,
179
179
  vkPath: key === 'vk' ? outputPath : undefined,
180
180
  };
@@ -237,7 +237,7 @@ export async function generateProof(
237
237
  if (result.status == BB_RESULT.SUCCESS) {
238
238
  return {
239
239
  status: BB_RESULT.SUCCESS,
240
- duration,
240
+ durationMs: duration,
241
241
  proofPath: `${outputPath}`,
242
242
  pkPath: undefined,
243
243
  vkPath: `${outputPath}`,
@@ -346,7 +346,7 @@ export async function generateAvmProof(
346
346
  if (result.status == BB_RESULT.SUCCESS) {
347
347
  return {
348
348
  status: BB_RESULT.SUCCESS,
349
- duration,
349
+ durationMs: duration,
350
350
  proofPath: join(outputPath, PROOF_FILENAME),
351
351
  pkPath: undefined,
352
352
  vkPath: outputPath,
@@ -426,7 +426,7 @@ async function verifyProofInternal(
426
426
  const result = await executeBB(pathToBB, command, args, log);
427
427
  const duration = timer.ms();
428
428
  if (result.status == BB_RESULT.SUCCESS) {
429
- return { status: BB_RESULT.SUCCESS, duration };
429
+ return { status: BB_RESULT.SUCCESS, durationMs: duration };
430
430
  }
431
431
  // Not a great error message here but it is difficult to decipher what comes from bb
432
432
  return {
@@ -466,7 +466,7 @@ export async function writeVkAsFields(
466
466
  const result = await executeBB(pathToBB, 'vk_as_fields', args, log);
467
467
  const duration = timer.ms();
468
468
  if (result.status == BB_RESULT.SUCCESS) {
469
- return { status: BB_RESULT.SUCCESS, duration, vkPath: verificationKeyPath };
469
+ return { status: BB_RESULT.SUCCESS, durationMs: duration, vkPath: verificationKeyPath };
470
470
  }
471
471
  // Not a great error message here but it is difficult to decipher what comes from bb
472
472
  return {
@@ -508,7 +508,7 @@ export async function writeProofAsFields(
508
508
  const result = await executeBB(pathToBB, 'proof_as_fields', args, log);
509
509
  const duration = timer.ms();
510
510
  if (result.status == BB_RESULT.SUCCESS) {
511
- return { status: BB_RESULT.SUCCESS, duration, proofPath: proofPath };
511
+ return { status: BB_RESULT.SUCCESS, durationMs: duration, proofPath: proofPath };
512
512
  }
513
513
  // Not a great error message here but it is difficult to decipher what comes from bb
514
514
  return {
@@ -549,7 +549,7 @@ export async function generateContractForVerificationKey(
549
549
  const result = await executeBB(pathToBB, 'contract', args, log);
550
550
  const duration = timer.ms();
551
551
  if (result.status == BB_RESULT.SUCCESS) {
552
- return { status: BB_RESULT.SUCCESS, duration, contractPath };
552
+ return { status: BB_RESULT.SUCCESS, durationMs: duration, contractPath };
553
553
  }
554
554
  // Not a great error message here but it is difficult to decipher what comes from bb
555
555
  return {
@@ -564,7 +564,7 @@ export async function generateContractForVerificationKey(
564
564
  if (!res) {
565
565
  return {
566
566
  status: BB_RESULT.ALREADY_PRESENT,
567
- duration: 0,
567
+ durationMs: 0,
568
568
  contractPath,
569
569
  };
570
570
  }