@aztec/bb-prover 0.77.0-testnet-ignition.17 → 0.77.0-testnet-ignition.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"avm_proving_tester.d.ts","sourceRoot":"","sources":["../../src/avm_proving_tests/avm_proving_tester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQjF,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,SAAS,EAMf,MAAM,kBAAkB,CAAC;AAK1B,qBAAa,gBAAiB,SAAQ,wBAAwB;IAE1D,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,gBAAgB;gBADhB,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,OAAO,EACjC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB;WAKlB,MAAM,CAAC,gBAAgB,GAAE,OAAe;IASxD,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAe5D,MAAM,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBvC,cAAc,CACzB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,eAAS;IAWN,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,OAAO;CAWtF;AAED,qBAAa,kBAAmB,SAAQ,wBAAwB;IAE5D,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,MAAM,EAClC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB;WAKlB,MAAM;IAStB,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBzC,gBAAgB,CAC3B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,eAAS;CAYpB"}
1
+ {"version":3,"file":"avm_proving_tester.d.ts","sourceRoot":"","sources":["../../src/avm_proving_tests/avm_proving_tester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AASjF,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,SAAS,EAMf,MAAM,kBAAkB,CAAC;AAK1B,qBAAa,gBAAiB,SAAQ,wBAAwB;IAE1D,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,gBAAgB;gBADhB,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,OAAO,EACjC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB;WAKlB,MAAM,CAAC,gBAAgB,GAAE,OAAe;IASxD,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAe5D,MAAM,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBvC,cAAc,CACzB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,eAAS;IAWN,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,OAAO;CAWtF;AAED,qBAAa,kBAAmB,SAAQ,wBAAwB;IAE5D,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,MAAM,EAClC,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB;WAKlB,MAAM;IAStB,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAezC,gBAAgB,CAC3B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,eAAS;CAYpB"}
@@ -1,6 +1,7 @@
1
1
  import { PublicTxSimulationTester } from '@aztec/simulator/public/fixtures';
2
2
  import { SimpleContractDataSource, WorldStateDB } from '@aztec/simulator/server';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { makeAvmCircuitInputs } from '@aztec/stdlib/testing';
4
5
  import { VerificationKeyData } from '@aztec/stdlib/vks';
5
6
  import { NativeWorldStateService } from '@aztec/world-state';
6
7
  import fs from 'node:fs/promises';
@@ -87,13 +88,10 @@ export class AvmProvingTesterV2 extends PublicTxSimulationTester {
87
88
  return proofRes;
88
89
  }
89
90
  async verifyV2(proofRes) {
90
- // Then we verify.
91
- // Placeholder for now.
92
- const publicInputs = {
93
- dummy: []
94
- };
91
+ // TODO: Placeholder for now. They get ignored in C++.
92
+ const inputs = await makeAvmCircuitInputs();
95
93
  const rawVkPath = path.join(proofRes.vkPath, 'vk');
96
- return await verifyAvmProofV2(BB_PATH, this.bbWorkingDirectory, proofRes.proofPath, publicInputs, rawVkPath, this.logger);
94
+ return await verifyAvmProofV2(BB_PATH, this.bbWorkingDirectory, proofRes.proofPath, inputs.publicInputs, rawVkPath, this.logger);
97
95
  }
98
96
  async simProveVerifyV2(sender, setupCalls, appCalls, teardownCall, expectRevert, feePayer = sender) {
99
97
  const simRes = await this.simulateTx(sender, setupCalls, appCalls, teardownCall, feePayer);
@@ -1,12 +1,13 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import type { LogFn, Logger } from '@aztec/foundation/log';
4
- import { type AvmCircuitInputs } from '@aztec/stdlib/avm';
4
+ import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
5
5
  import type { UltraHonkFlavor } from '../honk.js';
6
6
  export declare const VK_FILENAME = "vk";
7
7
  export declare const VK_FIELDS_FILENAME = "vk_fields.json";
8
8
  export declare const PROOF_FILENAME = "proof";
9
9
  export declare const PROOF_FIELDS_FILENAME = "proof_fields.json";
10
+ export declare const AVM_INPUTS_FILENAME = "avm_inputs.bin";
10
11
  export declare const AVM_BYTECODE_FILENAME = "avm_bytecode.bin";
11
12
  export declare const AVM_PUBLIC_INPUTS_FILENAME = "avm_public_inputs.bin";
12
13
  export declare const AVM_HINTS_FILENAME = "avm_hints.bin";
@@ -114,7 +115,7 @@ export declare function verifyProof(pathToBB: string, proofFullPath: string, ver
114
115
  * @returns An object containing a result indication and duration taken
115
116
  */
116
117
  export declare function verifyAvmProof(pathToBB: string, proofFullPath: string, verificationKeyPath: string, logger: Logger): Promise<BBFailure | BBSuccess>;
117
- export declare function verifyAvmProofV2(pathToBB: string, workingDirectory: string, proofFullPath: string, publicInputs: any, verificationKeyPath: string, logger: Logger): Promise<BBFailure | BBSuccess>;
118
+ export declare function verifyAvmProofV2(pathToBB: string, workingDirectory: string, proofFullPath: string, publicInputs: AvmCircuitPublicInputs, verificationKeyPath: string, logger: Logger): Promise<BBFailure | BBSuccess>;
118
119
  /**
119
120
  * Verifies a ClientIvcProof
120
121
  * TODO(#7370) The verification keys should be supplied separately
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":";;AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMlF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,oBAAY,SAAS;IACnB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,eAAe,IAAA;CAChB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,OAAO,WAAW,GAAG,OAAO,cAAc,CAAC;AAE9E,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,KAAK,EACb,YAAY,UAAU,MAAM,YAAe,GAC1C,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAGD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAgEhC;AAgBD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAiEhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAwDhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA+DhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAyEhC;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAShC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,sBAAsB,EACpC,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAmBhC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA2BhC;AAuDD,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA8ChC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GAAG,WAAW,EACrC,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA0DhC"}
@@ -1,6 +1,5 @@
1
1
  import { sha256 } from '@aztec/foundation/crypto';
2
2
  import { Timer } from '@aztec/foundation/timer';
3
- import { serializeWithMessagePack } from '@aztec/stdlib/avm';
4
3
  import * as proc from 'child_process';
5
4
  import { promises as fs } from 'fs';
6
5
  import { basename, dirname, join } from 'path';
@@ -9,6 +8,7 @@ export const VK_FILENAME = 'vk';
9
8
  export const VK_FIELDS_FILENAME = 'vk_fields.json';
10
9
  export const PROOF_FILENAME = 'proof';
11
10
  export const PROOF_FIELDS_FILENAME = 'proof_fields.json';
11
+ export const AVM_INPUTS_FILENAME = 'avm_inputs.bin';
12
12
  export const AVM_BYTECODE_FILENAME = 'avm_bytecode.bin';
13
13
  export const AVM_PUBLIC_INPUTS_FILENAME = 'avm_public_inputs.bin';
14
14
  export const AVM_HINTS_FILENAME = 'avm_hints.bin';
@@ -343,10 +343,10 @@ function getArgs(flavor) {
343
343
  reason: `Failed to find bb binary at ${pathToBB}`
344
344
  };
345
345
  }
346
- const inputsBuffer = input.serializeForAvm2();
346
+ const inputsBuffer = input.serializeWithMessagePack();
347
347
  try {
348
348
  // Write the inputs to the working directory.
349
- const avmInputsPath = join(workingDirectory, 'avm_inputs.bin');
349
+ const avmInputsPath = join(workingDirectory, AVM_INPUTS_FILENAME);
350
350
  await fs.writeFile(avmInputsPath, inputsBuffer);
351
351
  if (!await filePresent(avmInputsPath)) {
352
352
  return {
@@ -496,7 +496,7 @@ function getArgs(flavor) {
496
496
  return await verifyProofInternal(pathToBB, proofFullPath, verificationKeyPath, 'avm_verify', logger);
497
497
  }
498
498
  export async function verifyAvmProofV2(pathToBB, workingDirectory, proofFullPath, publicInputs, verificationKeyPath, logger) {
499
- const inputsBuffer = serializeWithMessagePack(publicInputs);
499
+ const inputsBuffer = publicInputs.serializeWithMessagePack();
500
500
  // Write the inputs to the working directory.
501
501
  const filePresent = async (file)=>await fs.access(file, fs.constants.R_OK).then((_)=>true).catch((_)=>false);
502
502
  const avmInputsPath = join(workingDirectory, 'avm_public_inputs.bin');
@@ -269,7 +269,7 @@ const SERVER_CIRCUIT_RECURSIVE = true;
269
269
  duration: provingResult.durationMs,
270
270
  proofSize: avmProof.binaryProof.buffer.length,
271
271
  eventName: 'circuit-proving',
272
- inputSize: input.toBuffer().length,
272
+ inputSize: input.serializeWithMessagePack().length,
273
273
  circuitSize: verificationKey.circuitSize,
274
274
  numPublicInputs: verificationKey.numPublicInputs
275
275
  });
@@ -12,5 +12,6 @@ export declare abstract class BBWASMPrivateKernelProver extends BBPrivateKernelP
12
12
  protected log: import("@aztec/foundation/log").Logger;
13
13
  constructor(artifactProvider: ArtifactProvider, simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
14
14
  createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
15
+ computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
15
16
  }
16
17
  //# sourceMappingURL=bb_wasm_private_kernel_prover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bb_wasm_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/wasm/bb_wasm_private_kernel_prover.ts"],"names":[],"mappings":";;AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,8BAAsB,yBAA0B,SAAQ,qBAAqB;cAEtD,gBAAgB,EAAE,gBAAgB;cAClC,kBAAkB,EAAE,kBAAkB;IACzD,OAAO,CAAC,OAAO;cACI,GAAG;gBAHH,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACjD,OAAO,GAAE,MAAU,EACR,GAAG,yCAAiC;IAKnC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAkBjH"}
1
+ {"version":3,"file":"bb_wasm_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/wasm/bb_wasm_private_kernel_prover.ts"],"names":[],"mappings":";;AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,8BAAsB,yBAA0B,SAAQ,qBAAqB;cAEtD,gBAAgB,EAAE,gBAAgB;cAClC,kBAAkB,EAAE,kBAAkB;IACzD,OAAO,CAAC,OAAO;cACI,GAAG;gBAHH,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACjD,OAAO,GAAE,MAAU,EACR,GAAG,yCAAiC;IAKnC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB1F,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAY3G"}
@@ -31,4 +31,16 @@ export class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
31
31
  });
32
32
  return new ClientIvcProof(Buffer.from(proof), Buffer.from(vk));
33
33
  }
34
+ async computeGateCountForCircuit(_bytecode, _circuitName) {
35
+ const backend = new AztecClientBackend([
36
+ ungzip(_bytecode)
37
+ ], {
38
+ threads: this.threads,
39
+ logger: this.log.verbose,
40
+ wasmPath: process.env.BB_WASM_PATH
41
+ });
42
+ const gateCount = await backend.gates();
43
+ await backend.destroy();
44
+ return gateCount[0];
45
+ }
34
46
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/bb-prover",
3
- "version": "0.77.0-testnet-ignition.17",
3
+ "version": "0.77.0-testnet-ignition.21",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -67,27 +67,27 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/bb.js": "0.77.0-testnet-ignition.17",
71
- "@aztec/constants": "0.77.0-testnet-ignition.17",
72
- "@aztec/foundation": "0.77.0-testnet-ignition.17",
73
- "@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.17",
74
- "@aztec/simulator": "0.77.0-testnet-ignition.17",
75
- "@aztec/stdlib": "0.77.0-testnet-ignition.17",
76
- "@aztec/telemetry-client": "0.77.0-testnet-ignition.17",
77
- "@aztec/world-state": "0.77.0-testnet-ignition.17",
70
+ "@aztec/bb.js": "0.77.0-testnet-ignition.21",
71
+ "@aztec/constants": "0.77.0-testnet-ignition.21",
72
+ "@aztec/foundation": "0.77.0-testnet-ignition.21",
73
+ "@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.21",
74
+ "@aztec/simulator": "0.77.0-testnet-ignition.21",
75
+ "@aztec/stdlib": "0.77.0-testnet-ignition.21",
76
+ "@aztec/telemetry-client": "0.77.0-testnet-ignition.21",
77
+ "@aztec/world-state": "0.77.0-testnet-ignition.21",
78
78
  "@msgpack/msgpack": "^3.0.0-beta2",
79
79
  "commander": "^12.1.0",
80
80
  "pako": "^2.1.0",
81
81
  "source-map-support": "^0.5.21",
82
82
  "tslib": "^2.4.0",
83
- "@aztec/noir-noirc_abi": "0.77.0-testnet-ignition.17",
84
- "@aztec/noir-types": "0.77.0-testnet-ignition.17"
83
+ "@aztec/noir-noirc_abi": "0.77.0-testnet-ignition.21",
84
+ "@aztec/noir-types": "0.77.0-testnet-ignition.21"
85
85
  },
86
86
  "devDependencies": {
87
- "@aztec/ethereum": "workspace:^",
88
- "@aztec/kv-store": "workspace:^",
89
- "@aztec/noir-contracts.js": "workspace:^",
90
- "@aztec/protocol-contracts": "workspace:^",
87
+ "@aztec/ethereum": "0.77.0-testnet-ignition.21",
88
+ "@aztec/kv-store": "0.77.0-testnet-ignition.21",
89
+ "@aztec/noir-contracts.js": "0.77.0-testnet-ignition.21",
90
+ "@aztec/protocol-contracts": "0.77.0-testnet-ignition.21",
91
91
  "@jest/globals": "^29.5.0",
92
92
  "@types/jest": "^29.5.0",
93
93
  "@types/memdown": "^3.0.0",
@@ -3,6 +3,7 @@ import { SimpleContractDataSource, WorldStateDB } from '@aztec/simulator/server'
3
3
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
6
+ import { makeAvmCircuitInputs } from '@aztec/stdlib/testing';
6
7
  import { VerificationKeyData } from '@aztec/stdlib/vks';
7
8
  import { NativeWorldStateService } from '@aztec/world-state';
8
9
 
@@ -134,18 +135,15 @@ export class AvmProvingTesterV2 extends PublicTxSimulationTester {
134
135
  }
135
136
 
136
137
  async verifyV2(proofRes: BBSuccess): Promise<BBResult> {
137
- // Then we verify.
138
- // Placeholder for now.
139
- const publicInputs = {
140
- dummy: [] as any[],
141
- };
138
+ // TODO: Placeholder for now. They get ignored in C++.
139
+ const inputs = await makeAvmCircuitInputs();
142
140
 
143
141
  const rawVkPath = path.join(proofRes.vkPath!, 'vk');
144
142
  return await verifyAvmProofV2(
145
143
  BB_PATH,
146
144
  this.bbWorkingDirectory,
147
145
  proofRes.proofPath!,
148
- publicInputs,
146
+ inputs.publicInputs,
149
147
  rawVkPath,
150
148
  this.logger,
151
149
  );
package/src/bb/execute.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { sha256 } from '@aztec/foundation/crypto';
2
2
  import type { LogFn, Logger } from '@aztec/foundation/log';
3
3
  import { Timer } from '@aztec/foundation/timer';
4
- import { type AvmCircuitInputs, serializeWithMessagePack } from '@aztec/stdlib/avm';
4
+ import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
5
5
 
6
6
  import * as proc from 'child_process';
7
7
  import { promises as fs } from 'fs';
@@ -14,6 +14,7 @@ export const VK_FILENAME = 'vk';
14
14
  export const VK_FIELDS_FILENAME = 'vk_fields.json';
15
15
  export const PROOF_FILENAME = 'proof';
16
16
  export const PROOF_FIELDS_FILENAME = 'proof_fields.json';
17
+ export const AVM_INPUTS_FILENAME = 'avm_inputs.bin';
17
18
  export const AVM_BYTECODE_FILENAME = 'avm_bytecode.bin';
18
19
  export const AVM_PUBLIC_INPUTS_FILENAME = 'avm_public_inputs.bin';
19
20
  export const AVM_HINTS_FILENAME = 'avm_hints.bin';
@@ -380,11 +381,11 @@ export async function generateAvmProofV2(
380
381
  return { status: BB_RESULT.FAILURE, reason: `Failed to find bb binary at ${pathToBB}` };
381
382
  }
382
383
 
383
- const inputsBuffer = input.serializeForAvm2();
384
+ const inputsBuffer = input.serializeWithMessagePack();
384
385
 
385
386
  try {
386
387
  // Write the inputs to the working directory.
387
- const avmInputsPath = join(workingDirectory, 'avm_inputs.bin');
388
+ const avmInputsPath = join(workingDirectory, AVM_INPUTS_FILENAME);
388
389
  await fs.writeFile(avmInputsPath, inputsBuffer);
389
390
  if (!(await filePresent(avmInputsPath))) {
390
391
  return { status: BB_RESULT.FAILURE, reason: `Could not write avm inputs to ${avmInputsPath}` };
@@ -559,11 +560,11 @@ export async function verifyAvmProofV2(
559
560
  pathToBB: string,
560
561
  workingDirectory: string,
561
562
  proofFullPath: string,
562
- publicInputs: any,
563
+ publicInputs: AvmCircuitPublicInputs,
563
564
  verificationKeyPath: string,
564
565
  logger: Logger,
565
566
  ): Promise<BBFailure | BBSuccess> {
566
- const inputsBuffer = serializeWithMessagePack(publicInputs);
567
+ const inputsBuffer = publicInputs.serializeWithMessagePack();
567
568
 
568
569
  // Write the inputs to the working directory.
569
570
  const filePresent = async (file: string) =>
@@ -556,7 +556,7 @@ export class BBNativeRollupProver implements ServerCircuitProver {
556
556
  duration: provingResult.durationMs,
557
557
  proofSize: avmProof.binaryProof.buffer.length,
558
558
  eventName: 'circuit-proving',
559
- inputSize: input.toBuffer().length,
559
+ inputSize: input.serializeWithMessagePack().length,
560
560
  circuitSize: verificationKey.circuitSize, // FIX: wrong in VK
561
561
  numPublicInputs: verificationKey.numPublicInputs, // FIX: wrong in VK
562
562
  } satisfies CircuitProvingStats,
@@ -39,4 +39,17 @@ export abstract class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
39
39
  });
40
40
  return new ClientIvcProof(Buffer.from(proof), Buffer.from(vk));
41
41
  }
42
+
43
+ public override async computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
44
+ const backend = new AztecClientBackend([ungzip(_bytecode)], {
45
+ threads: this.threads,
46
+ logger: this.log.verbose,
47
+ wasmPath: process.env.BB_WASM_PATH,
48
+ });
49
+
50
+ const gateCount = await backend.gates();
51
+ await backend.destroy();
52
+
53
+ return gateCount[0];
54
+ }
42
55
  }