@aztec/prover-client 0.87.7 → 1.0.0-nightly.20250605

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 (45) hide show
  1. package/dest/block-factory/index.d.ts +2 -0
  2. package/dest/block-factory/index.d.ts.map +1 -0
  3. package/dest/block-factory/light.d.ts +36 -0
  4. package/dest/block-factory/light.d.ts.map +1 -0
  5. package/dest/{block_builder → block-factory}/light.js +29 -28
  6. package/dest/mocks/test_context.js +2 -2
  7. package/dest/orchestrator/block-building-helpers.d.ts +1 -1
  8. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  9. package/dest/orchestrator/block-building-helpers.js +4 -4
  10. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  11. package/dest/orchestrator/block-proving-state.js +5 -3
  12. package/dest/orchestrator/epoch-proving-state.d.ts +1 -1
  13. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  14. package/dest/orchestrator/epoch-proving-state.js +4 -3
  15. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  16. package/dest/orchestrator/orchestrator.js +16 -11
  17. package/dest/orchestrator/tx-proving-state.d.ts +2 -2
  18. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  19. package/dest/orchestrator/tx-proving-state.js +3 -3
  20. package/dest/proving_broker/broker_prover_facade.d.ts +3 -2
  21. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  22. package/dest/proving_broker/broker_prover_facade.js +9 -2
  23. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  24. package/dest/proving_broker/proving_job_controller.js +2 -1
  25. package/dest/test/mock_prover.d.ts +2 -1
  26. package/dest/test/mock_prover.d.ts.map +1 -1
  27. package/dest/test/mock_prover.js +3 -3
  28. package/package.json +16 -16
  29. package/src/block-factory/index.ts +1 -0
  30. package/src/{block_builder → block-factory}/light.ts +31 -26
  31. package/src/mocks/test_context.ts +2 -2
  32. package/src/orchestrator/block-building-helpers.ts +5 -5
  33. package/src/orchestrator/block-proving-state.ts +4 -8
  34. package/src/orchestrator/epoch-proving-state.ts +9 -13
  35. package/src/orchestrator/orchestrator.ts +16 -14
  36. package/src/orchestrator/tx-proving-state.ts +11 -6
  37. package/src/proving_broker/broker_prover_facade.ts +12 -3
  38. package/src/proving_broker/proving_job_controller.ts +2 -1
  39. package/src/test/mock_prover.ts +10 -5
  40. package/dest/block_builder/index.d.ts +0 -6
  41. package/dest/block_builder/index.d.ts.map +0 -1
  42. package/dest/block_builder/light.d.ts +0 -33
  43. package/dest/block_builder/light.d.ts.map +0 -1
  44. package/src/block_builder/index.ts +0 -6
  45. /package/dest/{block_builder → block-factory}/index.js +0 -0
@@ -0,0 +1,2 @@
1
+ export * from './light.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block-factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { L2Block } from '@aztec/stdlib/block';
3
+ import type { IBlockFactory, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
4
+ import { type GlobalVariables, type ProcessedTx } from '@aztec/stdlib/tx';
5
+ import { type TelemetryClient } from '@aztec/telemetry-client';
6
+ /**
7
+ * Builds a block and its header from a set of processed tx without running any circuits.
8
+ *
9
+ * NOTE: the onus is ON THE CALLER to update the db that is passed in with the notes hashes, nullifiers, etc
10
+ * PRIOR to calling `buildBlock`.
11
+ *
12
+ * Why? Because if you are, e.g. building a block in practice from TxObjects, you are using the
13
+ * PublicProcessor which will do this for you as it processes transactions.
14
+ *
15
+ * If you haven't already inserted the side effects, e.g. because you are in a testing context, you can use the helper
16
+ * function `buildBlockWithCleanDB`, which calls `insertSideEffectsAndBuildBaseRollupHints` for you.
17
+ */
18
+ export declare class LightweightBlockFactory implements IBlockFactory {
19
+ private db;
20
+ private telemetry;
21
+ private globalVariables?;
22
+ private l1ToL2Messages?;
23
+ private txs;
24
+ private readonly logger;
25
+ constructor(db: MerkleTreeWriteOperations, telemetry?: TelemetryClient);
26
+ startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
27
+ addTxs(txs: ProcessedTx[]): Promise<void>;
28
+ setBlockCompleted(): Promise<L2Block>;
29
+ private buildBlock;
30
+ }
31
+ /**
32
+ * Inserts the processed transactions into the DB, then creates a block.
33
+ * @param db - A db fork to use for block building which WILL BE MODIFIED.
34
+ */
35
+ export declare function buildBlockWithCleanDB(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations, telemetry?: TelemetryClient): Promise<L2Block>;
36
+ //# sourceMappingURL=light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block-factory/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IASzD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAG5D,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC;IAGrD,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAoBzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,oBAUlD"}
@@ -7,13 +7,21 @@ import { L2Block } from '@aztec/stdlib/block';
7
7
  import { MerkleTreeId } from '@aztec/stdlib/trees';
8
8
  import { toNumBlobFields } from '@aztec/stdlib/tx';
9
9
  import { getTelemetryClient } from '@aztec/telemetry-client';
10
- import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getTreeSnapshot } from '../orchestrator/block-building-helpers.js';
10
+ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffectsAndBuildBaseRollupHints } from '../orchestrator/block-building-helpers.js';
11
11
  /**
12
12
  * Builds a block and its header from a set of processed tx without running any circuits.
13
- */ export class LightweightBlockBuilder {
13
+ *
14
+ * NOTE: the onus is ON THE CALLER to update the db that is passed in with the notes hashes, nullifiers, etc
15
+ * PRIOR to calling `buildBlock`.
16
+ *
17
+ * Why? Because if you are, e.g. building a block in practice from TxObjects, you are using the
18
+ * PublicProcessor which will do this for you as it processes transactions.
19
+ *
20
+ * If you haven't already inserted the side effects, e.g. because you are in a testing context, you can use the helper
21
+ * function `buildBlockWithCleanDB`, which calls `insertSideEffectsAndBuildBaseRollupHints` for you.
22
+ */ export class LightweightBlockFactory {
14
23
  db;
15
24
  telemetry;
16
- spongeBlobState;
17
25
  globalVariables;
18
26
  l1ToL2Messages;
19
27
  txs;
@@ -21,7 +29,6 @@ import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getTreeSnapshot } from
21
29
  constructor(db, telemetry = getTelemetryClient()){
22
30
  this.db = db;
23
31
  this.telemetry = telemetry;
24
- this.txs = [];
25
32
  this.logger = createLogger('prover-client:block_builder');
26
33
  }
27
34
  async startNewBlock(globalVariables, l1ToL2Messages) {
@@ -31,26 +38,25 @@ import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getTreeSnapshot } from
31
38
  });
32
39
  this.globalVariables = globalVariables;
33
40
  this.l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
34
- this.txs = [];
35
- this.spongeBlobState = undefined;
41
+ this.txs = undefined;
36
42
  // Update L1 to L2 tree
37
43
  await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages);
38
44
  }
39
- async addTxs(txs) {
40
- this.spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
41
- for (const tx of txs){
42
- this.logger.debug('Adding new tx to block', {
43
- txHash: tx.hash.toString()
44
- });
45
- this.txs.push(tx);
46
- await buildBaseRollupHints(tx, this.globalVariables, this.db, this.spongeBlobState);
45
+ addTxs(txs) {
46
+ // Most times, `addTxs` is only called once per block.
47
+ // So avoid copies.
48
+ if (this.txs === undefined) {
49
+ this.txs = txs;
50
+ } else {
51
+ this.txs.push(...txs);
47
52
  }
53
+ return Promise.resolve();
48
54
  }
49
55
  setBlockCompleted() {
50
56
  return this.buildBlock();
51
57
  }
52
58
  async buildBlock() {
53
- const { header, body } = await buildHeaderAndBodyFromTxs(this.txs, this.globalVariables, this.l1ToL2Messages, this.db);
59
+ const { header, body } = await buildHeaderAndBodyFromTxs(this.txs ?? [], this.globalVariables, this.l1ToL2Messages, this.db);
54
60
  await this.db.updateArchive(header);
55
61
  const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
56
62
  const block = new L2Block(newArchive, header, body);
@@ -62,20 +68,15 @@ import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getTreeSnapshot } from
62
68
  return block;
63
69
  }
64
70
  }
65
- export class LightweightBlockBuilderFactory {
66
- telemetry;
67
- constructor(telemetry = getTelemetryClient()){
68
- this.telemetry = telemetry;
69
- }
70
- create(db) {
71
- return new LightweightBlockBuilder(db, this.telemetry);
72
- }
73
- }
74
71
  /**
75
- * Creates a block builder under the hood with the given txs and messages and creates a block.
76
- * @param db - A db fork to use for block building.
77
- */ export async function buildBlock(txs, globalVariables, l1ToL2Messages, db, telemetry = getTelemetryClient()) {
78
- const builder = new LightweightBlockBuilder(db, telemetry);
72
+ * Inserts the processed transactions into the DB, then creates a block.
73
+ * @param db - A db fork to use for block building which WILL BE MODIFIED.
74
+ */ export async function buildBlockWithCleanDB(txs, globalVariables, l1ToL2Messages, db, telemetry = getTelemetryClient()) {
75
+ const spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
76
+ for (const tx of txs){
77
+ await insertSideEffectsAndBuildBaseRollupHints(tx, globalVariables, db, spongeBlobState);
78
+ }
79
+ const builder = new LightweightBlockFactory(db, telemetry);
79
80
  await builder.startNewBlock(globalVariables, l1ToL2Messages);
80
81
  await builder.addTxs(txs);
81
82
  return await builder.setBlockCompleted();
@@ -16,7 +16,7 @@ import { promises as fs } from 'fs';
16
16
  // TODO(#12613) This means of sharing test code is not ideal.
17
17
  // eslint-disable-next-line import/no-relative-packages
18
18
  import { TestCircuitProver } from '../../../bb-prover/src/test/test_circuit_prover.js';
19
- import { buildBlock } from '../block_builder/light.js';
19
+ import { buildBlockWithCleanDB } from '../block-factory/light.js';
20
20
  import { ProvingOrchestrator } from '../orchestrator/index.js';
21
21
  import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
22
22
  import { TestBroker } from '../test/mock_prover.js';
@@ -151,7 +151,7 @@ export class TestContext {
151
151
  ...makeProcessedTxOpts(i)
152
152
  }));
153
153
  await this.setTreeRoots(txs);
154
- const block = await buildBlock(txs, globalVariables, msgs, db);
154
+ const block = await buildBlockWithCleanDB(txs, globalVariables, msgs, db);
155
155
  this.headers.set(blockNum, block.header);
156
156
  await this.worldState.handleL2BlockAndMessages(block, msgs);
157
157
  return {
@@ -18,7 +18,7 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
18
18
  * Type representing the names of the trees.
19
19
  */
20
20
  export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
21
- export declare const buildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
21
+ export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
22
22
  export declare function getPublicDataHint(db: MerkleTreeWriteOperations, leafSlot: bigint): Promise<PublicDataHint>;
23
23
  export declare const buildBlobHints: (txEffects: TxEffect[]) => Promise<{
24
24
  blobFields: Fr[];
@@ -1 +1 @@
1
- {"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiBxD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAmD,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAqD,MAAM,yBAAyB,CAAC;AAI/G,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,kBAAkB,EAClB,sBAAsB,EAEtB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,YAAY,EAKb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EAEX,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,WAAW,EAChB,cAAc,EACd,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,KAAK,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC1F;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAGxE,eAAO,MAAM,oBAAoB,4KAuJhC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,2BAkBtF;AAED,eAAO,MAAM,cAAc;;;;;EAU1B,CAAC;AAEF,eAAO,MAAM,6BAA6B,8LA2CzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;EAyDrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAG5D;AAGD,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,iCAAiC,EAClD,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,wBAAwB,iBAM7B;AAED,eAAO,MAAM,aAAa,wEAmBzB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,wBAAwB;;;;;;SAI3G;AAED,wBAAsB,sBAAsB,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,wBAAwB;;;;;;SAI/G;AAED,eAAO,MAAM,qBAAqB,iGAWjC,CAAC;AAEF,wBAAsB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGrH;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,wBAMrE;AA4CD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,EAAE,EAAE,CAAC,CAMf;AAGD,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAC5D,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAY/B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,qBAAqB,EACnC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,QASzD;AAqBD,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,QAczC"}
1
+ {"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeafPreimage, PublicData
17
17
  import { BlockHeader, ContentCommitment, PartialStateReference, StateReference, TxEffect } from '@aztec/stdlib/tx';
18
18
  import { Attributes, runInSpan } from '@aztec/telemetry-client';
19
19
  // Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
20
- export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, db, startSpongeBlob)=>{
20
+ export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, db, startSpongeBlob)=>{
21
21
  span.setAttribute(Attributes.TX_HASH, tx.hash.toString());
22
22
  // Get trees info before any changes hit
23
23
  const constants = await getConstantRollupData(globalVariables, db);
@@ -47,14 +47,14 @@ export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseR
47
47
  // Append new data to startSpongeBlob
48
48
  const inputSpongeBlob = startSpongeBlob.clone();
49
49
  await startSpongeBlob.absorb(tx.txEffect.toBlobFields());
50
- const contractClassLogsPreimages = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, (i)=>tx.txEffect.contractClassLogs[i]?.toUnsiloed().fields || ContractClassLogFields.empty());
50
+ const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, (i)=>tx.txEffect.contractClassLogs[i]?.fields || ContractClassLogFields.empty());
51
51
  if (tx.avmProvingRequest) {
52
52
  const blockHash = await tx.constants.historicalHeader.hash();
53
53
  const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
54
54
  return PublicBaseRollupHints.from({
55
55
  startSpongeBlob: inputSpongeBlob,
56
56
  archiveRootMembershipWitness,
57
- contractClassLogsPreimages,
57
+ contractClassLogsFields,
58
58
  constants
59
59
  });
60
60
  } else {
@@ -83,7 +83,7 @@ export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseR
83
83
  stateDiffHints,
84
84
  feePayerFeeJuiceBalanceReadHint,
85
85
  archiveRootMembershipWitness,
86
- contractClassLogsPreimages,
86
+ contractClassLogsFields,
87
87
  constants
88
88
  });
89
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAI/C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAqB,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAGxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAmB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EAGtC,qBAAqB,EAErB,0BAA0B,EAC1B,iBAAiB,EAEjB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAkB,MAAM,kBAAkB,CAAC;AAG1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,qBAAa,iBAAiB;;aAiBV,KAAK,EAAE,MAAM;aACb,eAAe,EAAE,eAAe;aAChC,iBAAiB,EAAE,EAAE,EAAE;IACvC,OAAO,CAAC,QAAQ,CAAC,+BAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,uCAAuC;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAzB9B,OAAO,CAAC,yBAAyB,CAEF;IAC/B,OAAO,CAAC,wBAAwB,CAAoE;IACpG,OAAO,CAAC,uBAAuB,CAAgE;IAC/F,OAAO,CAAC,sBAAsB,CAEhB;IACP,sBAAsB,EAAE,OAAO,CAAS;IACxC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAwB;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGf,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,EAAE,EAAE,EACtB,+BAA+B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EAC3F,uCAAuC,EAAE,sBAAsB,EAC/D,mBAAmB,EAAE,sBAAsB,EAC3C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACxD,qBAAqB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACvD,mBAAmB,EAAE,WAAW,EAChC,WAAW,EAAE,iBAAiB;IAMjD,IAAW,WAAW,WAErB;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAanD,QAAQ,CAAC,EAAE,EAAE,cAAc;IAU3B,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,6BAA6B,CAC1C,6BAA6B,EAC7B,OAAO,yCAAyC,CACjD,GACA,gBAAgB;IAIZ,mBAAmB,CACxB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,6BAA6B,CAC1C,6BAA6B,EAC7B,OAAO,yCAAyC,CACjD;IAMI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,6BAA6B,CAAC,kBAAkB,CAAC;IASlG,kBAAkB,CAAC,aAAa,EAAE,6BAA6B,CAAC,kBAAkB,CAAC;IAInF,uBAAuB,CAC5B,aAAa,EAAE,6BAA6B,CAC1C,iCAAiC,EACjC,OAAO,yCAAyC,CACjD;IAMH,IAAW,MAAM,qBAEhB;IAED,yFAAyF;IACzF,IAAW,WAAW,IAAI,MAAM,CAE/B;IAEM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB;IAI5C,oBAAoB,CAAC,aAAa,EAAE,gBAAgB;IAS9C,+BAA+B,CAAC,QAAQ,EAAE,EAAE;;;;;;;;;;IAmD5C,yBAAyB,CAAC,QAAQ,EAAE,EAAE;IAgC5C,mBAAmB;IAYnB,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAI3B,6BAA6B;IAyBnC,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB;IAKhD,yBAAyB;IAMzB,oBAAoB;IAIpB,UAAU;IAKV,WAAW;IAIX,MAAM,CAAC,MAAM,EAAE,MAAM;CA4D7B"}
1
+ {"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { SpongeBlob } from '@aztec/blob-lib';
2
- import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
3
3
  import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
- import { MembershipWitness, UnbalancedTreeStore } from '@aztec/foundation/trees';
5
+ import { UnbalancedTreeStore } from '@aztec/foundation/trees';
6
6
  import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
7
7
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
8
8
  import { RootParityInput, RootParityInputs } from '@aztec/stdlib/parity';
9
9
  import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, ConstantRollupData, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
10
10
  import { StateReference } from '@aztec/stdlib/tx';
11
+ import { VkData } from '@aztec/stdlib/vks';
11
12
  import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
12
13
  /**
13
14
  * The current state of the proving schedule for a given block. Managed by ProvingState.
@@ -265,7 +266,8 @@ import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-
265
266
  }
266
267
  #getPreviousRollupData({ inputs, proof, verificationKey }) {
267
268
  const leafIndex = getVKIndex(verificationKey.keyAsFields);
268
- return new PreviousRollupData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
269
+ const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
270
+ return new PreviousRollupData(inputs, proof, vkData);
269
271
  }
270
272
  #getRootParityData({ inputs, proof, verificationKey }) {
271
273
  return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(getVKIndex(verificationKey)), inputs);
@@ -1,4 +1,4 @@
1
- import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
1
+ import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
2
  import type { Fr } from '@aztec/foundation/fields';
3
3
  import type { Tuple } from '@aztec/foundation/serialize';
4
4
  import { type TreeNodeLocation } from '@aztec/foundation/trees';
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { VK_TREE_HEIGHT } from '@aztec/constants';
2
- import { MembershipWitness, UnbalancedTreeStore } from '@aztec/foundation/trees';
1
+ import { UnbalancedTreeStore } from '@aztec/foundation/trees';
3
2
  import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
4
3
  import { BlockMergeRollupInputs, PreviousRollupBlockData, RootRollupInputs } from '@aztec/stdlib/rollup';
4
+ import { VkData } from '@aztec/stdlib/vks';
5
5
  import { BlockProvingState } from './block-proving-state.js';
6
6
  var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
7
7
  PROVING_STATE_LIFECYCLE[PROVING_STATE_LIFECYCLE["PROVING_STATE_CREATED"] = 0] = "PROVING_STATE_CREATED";
@@ -158,6 +158,7 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
158
158
  }
159
159
  #getPreviousRollupData({ inputs, proof, verificationKey }) {
160
160
  const leafIndex = getVKIndex(verificationKey.keyAsFields);
161
- return new PreviousRollupBlockData(inputs, proof, verificationKey.keyAsFields, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
161
+ const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
162
+ return new PreviousRollupBlockData(inputs, proof, vkData);
162
163
  }
163
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAQ9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAAE,KAAK,sBAAsB,EAAgB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AAEtH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,EAAE,EAC7B,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAW1F;;;;;OAKG;IAIU,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,WAAW;IA2CnH;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtD;;;OAGG;IAEU,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAcxC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBnG,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;YAQzB,UAAU;cAqCR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAWvG;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa;;;;IAoB1B;;;;OAIG;YACW,kBAAkB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YA+BvB,uBAAuB;IAmCrC,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,kBAAkB;YA0BZ,sBAAsB;IAmEpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;YAyBjB,mBAAmB;IA6BjC,OAAO,CAAC,iBAAiB;YA4BX,8BAA8B;YAa9B,8BAA8B;IAyB5C,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA8CjB,OAAO,CAAC,4BAA4B;CAWrC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAS9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,KAAK,sBAAsB,EAAgB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAqBjC;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,EAAE,EAC7B,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAW1F;;;;;OAKG;IAIU,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,WAAW;IA2CnH;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtD;;;OAGG;IAEU,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAcxC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBnG,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;YAQzB,UAAU;cAqCR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAWvG;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa;;;;IAoB1B;;;;OAIG;YACW,kBAAkB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YA+BvB,uBAAuB;IAmCrC,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,kBAAkB;YA0BZ,sBAAsB;IAmEpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;YAyBjB,mBAAmB;IA6BjC,OAAO,CAAC,iBAAiB;YA4BX,8BAA8B;YAa9B,8BAA8B;IAyB5C,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAmDjB,OAAO,CAAC,4BAA4B;CAWrC"}
@@ -4,7 +4,7 @@ function _ts_decorate(decorators, target, key, desc) {
4
4
  else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  }
7
- import { AVM_PROOF_LENGTH_IN_FIELDS, AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
7
+ import { L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
8
8
  import { padArrayEnd, times } from '@aztec/foundation/collection';
9
9
  import { AbortError } from '@aztec/foundation/error';
10
10
  import { Fr } from '@aztec/foundation/fields';
@@ -14,16 +14,15 @@ import { assertLength } from '@aztec/foundation/serialize';
14
14
  import { pushTestData } from '@aztec/foundation/testing';
15
15
  import { elapsed } from '@aztec/foundation/timer';
16
16
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
17
+ import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
17
18
  import { L2Block } from '@aztec/stdlib/block';
18
19
  import { BaseParityInputs } from '@aztec/stdlib/parity';
19
- import { makeEmptyRecursiveProof } from '@aztec/stdlib/proofs';
20
20
  import { EmptyBlockRootRollupInputs, PrivateBaseRollupInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
21
21
  import { MerkleTreeId } from '@aztec/stdlib/trees';
22
22
  import { toNumBlobFields } from '@aztec/stdlib/tx';
23
- import { VerificationKeyData } from '@aztec/stdlib/vks';
24
23
  import { Attributes, getTelemetryClient, trackSpan, wrapCallbackInSpan } from '@aztec/telemetry-client';
25
24
  import { inspect } from 'util';
26
- import { buildBaseRollupHints, buildHeaderAndBodyFromTxs, getLastSiblingPath, getRootTreeSiblingPath, getSubtreeSiblingPath, getTreeSnapshot, validatePartialState, validateTx } from './block-building-helpers.js';
25
+ import { buildHeaderAndBodyFromTxs, getLastSiblingPath, getRootTreeSiblingPath, getSubtreeSiblingPath, getTreeSnapshot, insertSideEffectsAndBuildBaseRollupHints, validatePartialState, validateTx } from './block-building-helpers.js';
27
26
  import { EpochProvingState } from './epoch-proving-state.js';
28
27
  import { ProvingOrchestratorMetrics } from './orchestrator_metrics.js';
29
28
  import { TxProvingState } from './tx-proving-state.js';
@@ -334,7 +333,7 @@ const logger = createLogger('prover-client:orchestrator');
334
333
  const db = this.dbs.get(provingState.blockNumber);
335
334
  // We build the base rollup inputs using a mock proof and verification key.
336
335
  // These will be overwritten later once we have proven the tube circuit and any public kernels
337
- const [ms, hints] = await elapsed(buildBaseRollupHints(tx, provingState.globalVariables, db, provingState.spongeBlobState));
336
+ const [ms, hints] = await elapsed(insertSideEffectsAndBuildBaseRollupHints(tx, provingState.globalVariables, db, provingState.spongeBlobState));
338
337
  this.metrics.recordBaseRollupInputs(ms);
339
338
  const promises = [
340
339
  MerkleTreeId.NOTE_HASH_TREE,
@@ -633,17 +632,23 @@ const logger = createLogger('prover-client:orchestrator');
633
632
  }, async (signal)=>{
634
633
  const inputs = txProvingState.getAvmInputs();
635
634
  try {
636
- return await this.prover.getAvmProof(inputs, signal, provingState.epochNumber);
635
+ // TODO(#14234)[Unconditional PIs validation]: Remove the whole try-catch logic and
636
+ // just keep the next line but removing the second argument (false).
637
+ return await this.prover.getAvmProof(inputs, false, signal, provingState.epochNumber);
637
638
  } catch (err) {
638
639
  if (process.env.AVM_PROVING_STRICT) {
639
640
  logger.error(`Error thrown when proving AVM circuit with AVM_PROVING_STRICT on`, err);
640
641
  throw err;
641
642
  } else {
642
- logger.warn(`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Faking AVM proof and carrying on. ${inspect(err)}.`);
643
- return {
644
- proof: makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
645
- verificationKey: VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS)
646
- };
643
+ logger.warn(`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Use snapshotted
644
+ AVM inputs and carrying on. ${inspect(err)}.`);
645
+ try {
646
+ const snapshotAvmPrivateInputs = readAvmMinimalPublicTxInputsFromFile();
647
+ return await this.prover.getAvmProof(snapshotAvmPrivateInputs, true, signal, provingState.epochNumber);
648
+ } catch (err) {
649
+ logger.error(`Error thrown when proving snapshotted AVM inputs.`, err);
650
+ throw err;
651
+ }
647
652
  }
648
653
  }
649
654
  });
@@ -1,4 +1,4 @@
1
- import { type AVM_PROOF_LENGTH_IN_FIELDS, type TUBE_PROOF_LENGTH } from '@aztec/constants';
1
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, type TUBE_PROOF_LENGTH } from '@aztec/constants';
2
2
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
3
3
  import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
4
4
  import { type BaseRollupHints, PrivateBaseRollupInputs, PublicBaseRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
@@ -29,6 +29,6 @@ export declare class TxProvingState {
29
29
  inputs: PrivateBaseRollupInputs;
30
30
  };
31
31
  setTubeProof(tubeProofAndVk: ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>): void;
32
- setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>): void;
32
+ setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>): void;
33
33
  }
34
34
  //# sourceMappingURL=tx-proving-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAgB,KAAK,iBAAiB,EAAiB,MAAM,kBAAkB,CAAC;AAExH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAGvB,sBAAsB,EAEtB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,cAAc;;aAKP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAN1E,OAAO,CAAC,IAAI,CAAC,CAAoD;IACjE,OAAO,CAAC,GAAG,CAAC,CAA6D;gBAGvD,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,aAAa;IAIb,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;;;;;;;IAc1B,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,OAAO,iBAAiB,CAAC;IAI9E,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,0BAA0B,CAAC;CAqE7F"}
1
+ {"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAGvB,sBAAsB,EAEtB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,cAAc;;aAKP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAN1E,OAAO,CAAC,IAAI,CAAC,CAAoD;IACjE,OAAO,CAAC,GAAG,CAAC,CAAuE;gBAGjE,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,aAAa;IAIb,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;;;;;;;IAc1B,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,OAAO,iBAAiB,CAAC;IAI9E,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,oCAAoC,CAAC;CAqEvG"}
@@ -1,7 +1,7 @@
1
1
  import { AVM_VK_INDEX, TUBE_VK_INDEX } from '@aztec/constants';
2
2
  import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
3
  import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PrivateTubeData, PublicBaseRollupHints, PublicBaseRollupInputs, PublicTubeData, TubeInputs } from '@aztec/stdlib/rollup';
4
- import { VkWitnessData } from '@aztec/stdlib/vks';
4
+ import { VkData } from '@aztec/stdlib/vks';
5
5
  /**
6
6
  * Helper class to manage the proving cycle of a transaction
7
7
  * This includes the public VMs and the public kernels
@@ -84,11 +84,11 @@ import { VkWitnessData } from '@aztec/stdlib/vks';
84
84
  // TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
85
85
  }
86
86
  const vkPath = getVKSiblingPath(vkIndex);
87
- return new VkWitnessData(this.tube.verificationKey, vkIndex, vkPath);
87
+ return new VkData(this.tube.verificationKey, vkIndex, vkPath);
88
88
  }
89
89
  #getAvmVkData() {
90
90
  const vkIndex = AVM_VK_INDEX;
91
91
  const vkPath = getVKSiblingPath(vkIndex);
92
- return new VkWitnessData(this.avm.verificationKey, AVM_VK_INDEX, vkPath);
92
+ return new VkData(this.avm.verificationKey, vkIndex, vkPath);
93
93
  }
94
94
  }
@@ -1,4 +1,4 @@
1
- import type { AVM_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
1
+ import type { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
2
2
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
3
3
  import { type ProofAndVerificationKey, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
4
4
  import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
@@ -29,7 +29,8 @@ export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
29
29
  private retrieveJobsThatShouldBeReady;
30
30
  private backupFailedProofInputs;
31
31
  private monitorForCompletedJobs;
32
- getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
32
+ getAvmProof(inputs: AvmCircuitInputs, skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
33
+ signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
33
34
  getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
34
35
  getBlockMergeRollupProof(input: BlockMergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
35
36
  getBlockRootRollupProof(input: BlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
@@ -1 +1 @@
1
- {"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { sha256 } from '@aztec/foundation/crypto';
2
+ import { Fr } from '@aztec/foundation/fields';
2
3
  import { createLogger } from '@aztec/foundation/log';
3
4
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
4
5
  import { truncate } from '@aztec/foundation/string';
@@ -301,8 +302,14 @@ export class BrokerCircuitProverFacade {
301
302
  // We have a list of jobs that we have been told are ready, so we go ahead and ask for their results
302
303
  await this.retrieveJobsThatShouldBeReady();
303
304
  }
304
- getAvmProof(inputs, signal, epochNumber) {
305
- return this.enqueueJob(this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber), ProvingRequestType.PUBLIC_VM, inputs, epochNumber, signal);
305
+ getAvmProof(inputs, skipPublicInputsValidation, signal, epochNumber) {
306
+ this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
307
+ return this.enqueueJob(this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber), ProvingRequestType.PUBLIC_VM, inputs, epochNumber, signal).then((result)=>{
308
+ // TODO(#14234)[Unconditional PIs validation]: Remove ".then()".
309
+ // Override the default value of skipPublicInputsValidation potentially set in BBNativeRollupProver.getAvmProof().
310
+ result.proof.proof[0] = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
311
+ return result;
312
+ });
306
313
  }
307
314
  getBaseParityProof(inputs, signal, epochNumber) {
308
315
  return this.enqueueJob(this.generateId(ProvingRequestType.BASE_PARITY, inputs, epochNumber), ProvingRequestType.BASE_PARITY, inputs, epochNumber, signal);
@@ -1 +1 @@
1
- {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CA0D5B"}
1
+ {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CA2D5B"}
@@ -113,7 +113,8 @@ export class ProvingJobController {
113
113
  switch(type){
114
114
  case ProvingRequestType.PUBLIC_VM:
115
115
  {
116
- return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
116
+ // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
117
+ return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
117
118
  }
118
119
  case ProvingRequestType.PRIVATE_BASE_ROLLUP:
119
120
  {
@@ -19,7 +19,8 @@ export declare class TestBroker implements ProvingJobProducer {
19
19
  }
20
20
  export declare class MockProver implements ServerCircuitProver {
21
21
  constructor();
22
- getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<4154>>;
22
+ getAvmProof(_inputs: AvmCircuitInputs, _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
23
+ _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<20000>>;
23
24
  getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 456>>;
24
25
  getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 456>>;
25
26
  getPrivateBaseRollupProof(_baseRollupInput: PrivateBaseRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
@@ -1 +1 @@
1
- {"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AVM_PROOF_LENGTH_IN_FIELDS, AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
1
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
2
2
  import { times } from '@aztec/foundation/collection';
3
3
  import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
4
4
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
@@ -43,8 +43,8 @@ export class TestBroker {
43
43
  }
44
44
  export class MockProver {
45
45
  constructor(){}
46
- getAvmProof(_inputs, _signal, _epochNumber) {
47
- return Promise.resolve(makeProofAndVerificationKey(makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS), VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS)));
46
+ getAvmProof(_inputs, _skipPublicInputsValidation, _signal, _epochNumber) {
47
+ return Promise.resolve(makeProofAndVerificationKey(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED), VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED)));
48
48
  }
49
49
  getBaseParityProof(_inputs, _signal, _epochNumber) {
50
50
  return Promise.resolve(makePublicInputsAndRecursiveProof(makeParityPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@aztec/prover-client",
3
- "version": "0.87.7",
3
+ "version": "1.0.0-nightly.20250605",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
- "./block-builder": "./dest/block_builder/index.js",
7
+ "./block-factory": "./dest/block-factory/index.js",
8
8
  "./broker": "./dest/proving_broker/index.js",
9
9
  "./orchestrator": "./dest/orchestrator/index.js",
10
10
  "./helpers": "./dest/orchestrator/block-building-helpers.js",
@@ -64,19 +64,19 @@
64
64
  ]
65
65
  },
66
66
  "dependencies": {
67
- "@aztec/bb-prover": "0.87.7",
68
- "@aztec/blob-lib": "0.87.7",
69
- "@aztec/constants": "0.87.7",
70
- "@aztec/ethereum": "0.87.7",
71
- "@aztec/foundation": "0.87.7",
72
- "@aztec/kv-store": "0.87.7",
73
- "@aztec/noir-protocol-circuits-types": "0.87.7",
74
- "@aztec/noir-types": "0.87.7",
75
- "@aztec/protocol-contracts": "0.87.7",
76
- "@aztec/simulator": "0.87.7",
77
- "@aztec/stdlib": "0.87.7",
78
- "@aztec/telemetry-client": "0.87.7",
79
- "@aztec/world-state": "0.87.7",
67
+ "@aztec/bb-prover": "1.0.0-nightly.20250605",
68
+ "@aztec/blob-lib": "1.0.0-nightly.20250605",
69
+ "@aztec/constants": "1.0.0-nightly.20250605",
70
+ "@aztec/ethereum": "1.0.0-nightly.20250605",
71
+ "@aztec/foundation": "1.0.0-nightly.20250605",
72
+ "@aztec/kv-store": "1.0.0-nightly.20250605",
73
+ "@aztec/noir-protocol-circuits-types": "1.0.0-nightly.20250605",
74
+ "@aztec/noir-types": "1.0.0-nightly.20250605",
75
+ "@aztec/protocol-contracts": "1.0.0-nightly.20250605",
76
+ "@aztec/simulator": "1.0.0-nightly.20250605",
77
+ "@aztec/stdlib": "1.0.0-nightly.20250605",
78
+ "@aztec/telemetry-client": "1.0.0-nightly.20250605",
79
+ "@aztec/world-state": "1.0.0-nightly.20250605",
80
80
  "@google-cloud/storage": "^7.15.0",
81
81
  "@iarna/toml": "^2.2.5",
82
82
  "commander": "^12.1.0",
@@ -86,7 +86,7 @@
86
86
  "zod": "^3.23.8"
87
87
  },
88
88
  "devDependencies": {
89
- "@aztec/noir-contracts.js": "0.87.7",
89
+ "@aztec/noir-contracts.js": "1.0.0-nightly.20250605",
90
90
  "@jest/globals": "^29.5.0",
91
91
  "@types/jest": "^29.5.0",
92
92
  "@types/node": "^22.15.17",
@@ -0,0 +1 @@
1
+ export * from './light.js';
@@ -4,26 +4,34 @@ import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
  import { createLogger } from '@aztec/foundation/log';
6
6
  import { L2Block } from '@aztec/stdlib/block';
7
- import type { BlockBuilder, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
7
+ import type { IBlockFactory, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
8
8
  import { MerkleTreeId } from '@aztec/stdlib/trees';
9
9
  import { type GlobalVariables, type ProcessedTx, toNumBlobFields } from '@aztec/stdlib/tx';
10
10
  import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
11
11
 
12
12
  import {
13
- buildBaseRollupHints,
14
13
  buildHeaderAndBodyFromTxs,
15
14
  getTreeSnapshot,
15
+ insertSideEffectsAndBuildBaseRollupHints,
16
16
  } from '../orchestrator/block-building-helpers.js';
17
17
 
18
18
  /**
19
19
  * Builds a block and its header from a set of processed tx without running any circuits.
20
+ *
21
+ * NOTE: the onus is ON THE CALLER to update the db that is passed in with the notes hashes, nullifiers, etc
22
+ * PRIOR to calling `buildBlock`.
23
+ *
24
+ * Why? Because if you are, e.g. building a block in practice from TxObjects, you are using the
25
+ * PublicProcessor which will do this for you as it processes transactions.
26
+ *
27
+ * If you haven't already inserted the side effects, e.g. because you are in a testing context, you can use the helper
28
+ * function `buildBlockWithCleanDB`, which calls `insertSideEffectsAndBuildBaseRollupHints` for you.
20
29
  */
21
- export class LightweightBlockBuilder implements BlockBuilder {
22
- private spongeBlobState?: SpongeBlob;
30
+ export class LightweightBlockFactory implements IBlockFactory {
23
31
  private globalVariables?: GlobalVariables;
24
32
  private l1ToL2Messages?: Fr[];
25
33
 
26
- private txs: ProcessedTx[] = [];
34
+ private txs: ProcessedTx[] | undefined;
27
35
 
28
36
  private readonly logger = createLogger('prover-client:block_builder');
29
37
 
@@ -36,20 +44,21 @@ export class LightweightBlockBuilder implements BlockBuilder {
36
44
  this.logger.debug('Starting new block', { globalVariables: globalVariables.toInspect(), l1ToL2Messages });
37
45
  this.globalVariables = globalVariables;
38
46
  this.l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
39
- this.txs = [];
40
- this.spongeBlobState = undefined;
47
+ this.txs = undefined;
41
48
 
42
49
  // Update L1 to L2 tree
43
50
  await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages!);
44
51
  }
45
52
 
46
- async addTxs(txs: ProcessedTx[]): Promise<void> {
47
- this.spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
48
- for (const tx of txs) {
49
- this.logger.debug('Adding new tx to block', { txHash: tx.hash.toString() });
50
- this.txs.push(tx);
51
- await buildBaseRollupHints(tx, this.globalVariables!, this.db, this.spongeBlobState!);
53
+ addTxs(txs: ProcessedTx[]): Promise<void> {
54
+ // Most times, `addTxs` is only called once per block.
55
+ // So avoid copies.
56
+ if (this.txs === undefined) {
57
+ this.txs = txs;
58
+ } else {
59
+ this.txs.push(...txs);
52
60
  }
61
+ return Promise.resolve();
53
62
  }
54
63
 
55
64
  setBlockCompleted(): Promise<L2Block> {
@@ -58,7 +67,7 @@ export class LightweightBlockBuilder implements BlockBuilder {
58
67
 
59
68
  private async buildBlock(): Promise<L2Block> {
60
69
  const { header, body } = await buildHeaderAndBodyFromTxs(
61
- this.txs,
70
+ this.txs ?? [],
62
71
  this.globalVariables!,
63
72
  this.l1ToL2Messages!,
64
73
  this.db,
@@ -78,26 +87,22 @@ export class LightweightBlockBuilder implements BlockBuilder {
78
87
  }
79
88
  }
80
89
 
81
- export class LightweightBlockBuilderFactory {
82
- constructor(private telemetry: TelemetryClient = getTelemetryClient()) {}
83
-
84
- create(db: MerkleTreeWriteOperations): BlockBuilder {
85
- return new LightweightBlockBuilder(db, this.telemetry);
86
- }
87
- }
88
-
89
90
  /**
90
- * Creates a block builder under the hood with the given txs and messages and creates a block.
91
- * @param db - A db fork to use for block building.
91
+ * Inserts the processed transactions into the DB, then creates a block.
92
+ * @param db - A db fork to use for block building which WILL BE MODIFIED.
92
93
  */
93
- export async function buildBlock(
94
+ export async function buildBlockWithCleanDB(
94
95
  txs: ProcessedTx[],
95
96
  globalVariables: GlobalVariables,
96
97
  l1ToL2Messages: Fr[],
97
98
  db: MerkleTreeWriteOperations,
98
99
  telemetry: TelemetryClient = getTelemetryClient(),
99
100
  ) {
100
- const builder = new LightweightBlockBuilder(db, telemetry);
101
+ const spongeBlobState = SpongeBlob.init(toNumBlobFields(txs));
102
+ for (const tx of txs) {
103
+ await insertSideEffectsAndBuildBaseRollupHints(tx, globalVariables, db, spongeBlobState);
104
+ }
105
+ const builder = new LightweightBlockFactory(db, telemetry);
101
106
  await builder.startNewBlock(globalVariables, l1ToL2Messages);
102
107
  await builder.addTxs(txs);
103
108
  return await builder.setBlockCompleted();
@@ -23,7 +23,7 @@ import { promises as fs } from 'fs';
23
23
  // TODO(#12613) This means of sharing test code is not ideal.
24
24
  // eslint-disable-next-line import/no-relative-packages
25
25
  import { TestCircuitProver } from '../../../bb-prover/src/test/test_circuit_prover.js';
26
- import { buildBlock } from '../block_builder/light.js';
26
+ import { buildBlockWithCleanDB } from '../block-factory/light.js';
27
27
  import { ProvingOrchestrator } from '../orchestrator/index.js';
28
28
  import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
29
29
  import { TestBroker } from '../test/mock_prover.js';
@@ -193,7 +193,7 @@ export class TestContext {
193
193
  );
194
194
  await this.setTreeRoots(txs);
195
195
 
196
- const block = await buildBlock(txs, globalVariables, msgs, db);
196
+ const block = await buildBlockWithCleanDB(txs, globalVariables, msgs, db);
197
197
  this.headers.set(blockNum, block.header);
198
198
  await this.worldState.handleL2BlockAndMessages(block, msgs);
199
199
  return { block, txs, msgs };
@@ -64,7 +64,7 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
64
64
  export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
65
65
 
66
66
  // Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
67
- export const buildBaseRollupHints = runInSpan(
67
+ export const insertSideEffectsAndBuildBaseRollupHints = runInSpan(
68
68
  'BlockBuilderHelpers',
69
69
  'buildBaseRollupHints',
70
70
  async (
@@ -138,9 +138,9 @@ export const buildBaseRollupHints = runInSpan(
138
138
  const inputSpongeBlob = startSpongeBlob.clone();
139
139
  await startSpongeBlob.absorb(tx.txEffect.toBlobFields());
140
140
 
141
- const contractClassLogsPreimages = makeTuple(
141
+ const contractClassLogsFields = makeTuple(
142
142
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
143
- i => tx.txEffect.contractClassLogs[i]?.toUnsiloed().fields || ContractClassLogFields.empty(),
143
+ i => tx.txEffect.contractClassLogs[i]?.fields || ContractClassLogFields.empty(),
144
144
  );
145
145
 
146
146
  if (tx.avmProvingRequest) {
@@ -155,7 +155,7 @@ export const buildBaseRollupHints = runInSpan(
155
155
  return PublicBaseRollupHints.from({
156
156
  startSpongeBlob: inputSpongeBlob,
157
157
  archiveRootMembershipWitness,
158
- contractClassLogsPreimages,
158
+ contractClassLogsFields,
159
159
  constants,
160
160
  });
161
161
  } else {
@@ -210,7 +210,7 @@ export const buildBaseRollupHints = runInSpan(
210
210
  stateDiffHints,
211
211
  feePayerFeeJuiceBalanceReadHint,
212
212
  archiveRootMembershipWitness,
213
- contractClassLogsPreimages,
213
+ contractClassLogsFields,
214
214
  constants,
215
215
  });
216
216
  }
@@ -7,12 +7,11 @@ import {
7
7
  type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
8
8
  NUM_BASE_PARITY_PER_ROOT_PARITY,
9
9
  type RECURSIVE_PROOF_LENGTH,
10
- VK_TREE_HEIGHT,
11
10
  } from '@aztec/constants';
12
11
  import { padArrayEnd } from '@aztec/foundation/collection';
13
12
  import { Fr } from '@aztec/foundation/fields';
14
13
  import type { Tuple } from '@aztec/foundation/serialize';
15
- import { MembershipWitness, type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
14
+ import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
16
15
  import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
17
16
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
18
17
  import type { L2Block } from '@aztec/stdlib/block';
@@ -33,6 +32,7 @@ import {
33
32
  import type { CircuitName } from '@aztec/stdlib/stats';
34
33
  import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
35
34
  import { type BlockHeader, type GlobalVariables, StateReference } from '@aztec/stdlib/tx';
35
+ import { VkData } from '@aztec/stdlib/vks';
36
36
 
37
37
  import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js';
38
38
  import type { EpochProvingState } from './epoch-proving-state.js';
@@ -361,12 +361,8 @@ export class BlockProvingState {
361
361
  verificationKey,
362
362
  }: PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>) {
363
363
  const leafIndex = getVKIndex(verificationKey.keyAsFields);
364
- return new PreviousRollupData(
365
- inputs,
366
- proof,
367
- verificationKey.keyAsFields,
368
- new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)),
369
- );
364
+ const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
365
+ return new PreviousRollupData(inputs, proof, vkData);
370
366
  }
371
367
 
372
368
  #getRootParityData({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<ParityPublicInputs>) {
@@ -1,13 +1,12 @@
1
- import {
2
- type ARCHIVE_HEIGHT,
3
- type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
4
- type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
- type TUBE_PROOF_LENGTH,
6
- VK_TREE_HEIGHT,
1
+ import type {
2
+ ARCHIVE_HEIGHT,
3
+ L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
4
+ NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
+ TUBE_PROOF_LENGTH,
7
6
  } from '@aztec/constants';
8
7
  import type { Fr } from '@aztec/foundation/fields';
9
8
  import type { Tuple } from '@aztec/foundation/serialize';
10
- import { MembershipWitness, type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
9
+ import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
11
10
  import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
12
11
  import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
13
12
  import type { Proof } from '@aztec/stdlib/proofs';
@@ -20,6 +19,7 @@ import {
20
19
  } from '@aztec/stdlib/rollup';
21
20
  import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
22
21
  import type { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
22
+ import { VkData } from '@aztec/stdlib/vks';
23
23
 
24
24
  import { BlockProvingState } from './block-proving-state.js';
25
25
 
@@ -244,11 +244,7 @@ export class EpochProvingState {
244
244
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
245
245
  >) {
246
246
  const leafIndex = getVKIndex(verificationKey.keyAsFields);
247
- return new PreviousRollupBlockData(
248
- inputs,
249
- proof,
250
- verificationKey.keyAsFields,
251
- new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)),
252
- );
247
+ const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
248
+ return new PreviousRollupBlockData(inputs, proof, vkData);
253
249
  }
254
250
  }
@@ -1,6 +1,4 @@
1
1
  import {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
3
- AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
4
2
  L1_TO_L2_MSG_SUBTREE_HEIGHT,
5
3
  L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
6
4
  NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
@@ -17,6 +15,7 @@ import { pushTestData } from '@aztec/foundation/testing';
17
15
  import { elapsed } from '@aztec/foundation/timer';
18
16
  import type { TreeNodeLocation } from '@aztec/foundation/trees';
19
17
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
18
+ import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
20
19
  import { L2Block } from '@aztec/stdlib/block';
21
20
  import type {
22
21
  EpochProver,
@@ -26,7 +25,6 @@ import type {
26
25
  ServerCircuitProver,
27
26
  } from '@aztec/stdlib/interfaces/server';
28
27
  import { BaseParityInputs } from '@aztec/stdlib/parity';
29
- import { makeEmptyRecursiveProof } from '@aztec/stdlib/proofs';
30
28
  import {
31
29
  type BaseRollupHints,
32
30
  EmptyBlockRootRollupInputs,
@@ -37,7 +35,6 @@ import {
37
35
  import type { CircuitName } from '@aztec/stdlib/stats';
38
36
  import { type AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
39
37
  import { type BlockHeader, type GlobalVariables, type ProcessedTx, type Tx, toNumBlobFields } from '@aztec/stdlib/tx';
40
- import { VerificationKeyData } from '@aztec/stdlib/vks';
41
38
  import {
42
39
  Attributes,
43
40
  type TelemetryClient,
@@ -50,12 +47,12 @@ import {
50
47
  import { inspect } from 'util';
51
48
 
52
49
  import {
53
- buildBaseRollupHints,
54
50
  buildHeaderAndBodyFromTxs,
55
51
  getLastSiblingPath,
56
52
  getRootTreeSiblingPath,
57
53
  getSubtreeSiblingPath,
58
54
  getTreeSnapshot,
55
+ insertSideEffectsAndBuildBaseRollupHints,
59
56
  validatePartialState,
60
57
  validateTx,
61
58
  } from './block-building-helpers.js';
@@ -492,7 +489,7 @@ export class ProvingOrchestrator implements EpochProver {
492
489
  // We build the base rollup inputs using a mock proof and verification key.
493
490
  // These will be overwritten later once we have proven the tube circuit and any public kernels
494
491
  const [ms, hints] = await elapsed(
495
- buildBaseRollupHints(tx, provingState.globalVariables, db, provingState.spongeBlobState),
492
+ insertSideEffectsAndBuildBaseRollupHints(tx, provingState.globalVariables, db, provingState.spongeBlobState),
496
493
  );
497
494
 
498
495
  this.metrics.recordBaseRollupInputs(ms);
@@ -933,21 +930,26 @@ export class ProvingOrchestrator implements EpochProver {
933
930
  async (signal: AbortSignal) => {
934
931
  const inputs = txProvingState.getAvmInputs();
935
932
  try {
936
- return await this.prover.getAvmProof(inputs, signal, provingState.epochNumber);
933
+ // TODO(#14234)[Unconditional PIs validation]: Remove the whole try-catch logic and
934
+ // just keep the next line but removing the second argument (false).
935
+ return await this.prover.getAvmProof(inputs, false, signal, provingState.epochNumber);
937
936
  } catch (err) {
938
937
  if (process.env.AVM_PROVING_STRICT) {
939
938
  logger.error(`Error thrown when proving AVM circuit with AVM_PROVING_STRICT on`, err);
940
939
  throw err;
941
940
  } else {
942
941
  logger.warn(
943
- `Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Faking AVM proof and carrying on. ${inspect(
944
- err,
945
- )}.`,
942
+ `Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Use snapshotted
943
+ AVM inputs and carrying on. ${inspect(err)}.`,
946
944
  );
947
- return {
948
- proof: makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
949
- verificationKey: VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
950
- };
945
+
946
+ try {
947
+ const snapshotAvmPrivateInputs = readAvmMinimalPublicTxInputsFromFile();
948
+ return await this.prover.getAvmProof(snapshotAvmPrivateInputs, true, signal, provingState.epochNumber);
949
+ } catch (err) {
950
+ logger.error(`Error thrown when proving snapshotted AVM inputs.`, err);
951
+ throw err;
952
+ }
951
953
  }
952
954
  }
953
955
  },
@@ -1,4 +1,9 @@
1
- import { type AVM_PROOF_LENGTH_IN_FIELDS, AVM_VK_INDEX, type TUBE_PROOF_LENGTH, TUBE_VK_INDEX } from '@aztec/constants';
1
+ import {
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
+ AVM_VK_INDEX,
4
+ type TUBE_PROOF_LENGTH,
5
+ TUBE_VK_INDEX,
6
+ } from '@aztec/constants';
2
7
  import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
8
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
4
9
  import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
@@ -16,7 +21,7 @@ import {
16
21
  import type { CircuitName } from '@aztec/stdlib/stats';
17
22
  import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
18
23
  import type { ProcessedTx } from '@aztec/stdlib/tx';
19
- import { VkWitnessData } from '@aztec/stdlib/vks';
24
+ import { VkData } from '@aztec/stdlib/vks';
20
25
 
21
26
  /**
22
27
  * Helper class to manage the proving cycle of a transaction
@@ -25,7 +30,7 @@ import { VkWitnessData } from '@aztec/stdlib/vks';
25
30
  */
26
31
  export class TxProvingState {
27
32
  private tube?: ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>;
28
- private avm?: ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>;
33
+ private avm?: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
29
34
 
30
35
  constructor(
31
36
  public readonly processedTx: ProcessedTx,
@@ -67,7 +72,7 @@ export class TxProvingState {
67
72
  this.tube = tubeProofAndVk;
68
73
  }
69
74
 
70
- public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>) {
75
+ public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>) {
71
76
  this.avm = avmProofAndVk;
72
77
  }
73
78
 
@@ -128,12 +133,12 @@ export class TxProvingState {
128
133
  }
129
134
  const vkPath = getVKSiblingPath(vkIndex);
130
135
 
131
- return new VkWitnessData(this.tube!.verificationKey, vkIndex, vkPath);
136
+ return new VkData(this.tube!.verificationKey, vkIndex, vkPath);
132
137
  }
133
138
 
134
139
  #getAvmVkData() {
135
140
  const vkIndex = AVM_VK_INDEX;
136
141
  const vkPath = getVKSiblingPath(vkIndex);
137
- return new VkWitnessData(this.avm!.verificationKey, AVM_VK_INDEX, vkPath);
142
+ return new VkData(this.avm!.verificationKey, vkIndex, vkPath);
138
143
  }
139
144
  }
@@ -1,11 +1,12 @@
1
1
  import type {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
3
  NESTED_RECURSIVE_PROOF_LENGTH,
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
6
6
  TUBE_PROOF_LENGTH,
7
7
  } from '@aztec/constants';
8
8
  import { sha256 } from '@aztec/foundation/crypto';
9
+ import { Fr } from '@aztec/foundation/fields';
9
10
  import { createLogger } from '@aztec/foundation/log';
10
11
  import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
11
12
  import { truncate } from '@aztec/foundation/string';
@@ -389,16 +390,24 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
389
390
 
390
391
  getAvmProof(
391
392
  inputs: AvmCircuitInputs,
393
+ skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
392
394
  signal?: AbortSignal,
393
395
  epochNumber?: number,
394
- ): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>> {
396
+ ): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
397
+ this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
398
+
395
399
  return this.enqueueJob(
396
400
  this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber),
397
401
  ProvingRequestType.PUBLIC_VM,
398
402
  inputs,
399
403
  epochNumber,
400
404
  signal,
401
- );
405
+ ).then(result => {
406
+ // TODO(#14234)[Unconditional PIs validation]: Remove ".then()".
407
+ // Override the default value of skipPublicInputsValidation potentially set in BBNativeRollupProver.getAvmProof().
408
+ result.proof.proof[0] = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
409
+ return result;
410
+ });
402
411
  }
403
412
 
404
413
  getBaseParityProof(
@@ -124,7 +124,8 @@ export class ProvingJobController {
124
124
  const signal = this.abortController.signal;
125
125
  switch (type) {
126
126
  case ProvingRequestType.PUBLIC_VM: {
127
- return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
127
+ // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
128
+ return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
128
129
  }
129
130
 
130
131
  case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
@@ -1,6 +1,6 @@
1
1
  import {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
3
- AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
+ AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
4
4
  NESTED_RECURSIVE_PROOF_LENGTH,
5
5
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
6
6
  RECURSIVE_PROOF_LENGTH,
@@ -96,11 +96,16 @@ export class TestBroker implements ProvingJobProducer {
96
96
  export class MockProver implements ServerCircuitProver {
97
97
  constructor() {}
98
98
 
99
- getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
99
+ getAvmProof(
100
+ _inputs: AvmCircuitInputs,
101
+ _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
102
+ _signal?: AbortSignal,
103
+ _epochNumber?: number,
104
+ ) {
100
105
  return Promise.resolve(
101
106
  makeProofAndVerificationKey(
102
- makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
103
- VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
107
+ makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
108
+ VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
104
109
  ),
105
110
  );
106
111
  }
@@ -1,6 +0,0 @@
1
- import type { BlockBuilder, MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
2
- export * from './light.js';
3
- export interface BlockBuilderFactory {
4
- create(db: MerkleTreeReadOperations): BlockBuilder;
5
- }
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block_builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE9F,cAAc,YAAY,CAAC;AAC3B,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAAC;CACpD"}
@@ -1,33 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { L2Block } from '@aztec/stdlib/block';
3
- import type { BlockBuilder, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
4
- import { type GlobalVariables, type ProcessedTx } from '@aztec/stdlib/tx';
5
- import { type TelemetryClient } from '@aztec/telemetry-client';
6
- /**
7
- * Builds a block and its header from a set of processed tx without running any circuits.
8
- */
9
- export declare class LightweightBlockBuilder implements BlockBuilder {
10
- private db;
11
- private telemetry;
12
- private spongeBlobState?;
13
- private globalVariables?;
14
- private l1ToL2Messages?;
15
- private txs;
16
- private readonly logger;
17
- constructor(db: MerkleTreeWriteOperations, telemetry?: TelemetryClient);
18
- startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
19
- addTxs(txs: ProcessedTx[]): Promise<void>;
20
- setBlockCompleted(): Promise<L2Block>;
21
- private buildBlock;
22
- }
23
- export declare class LightweightBlockBuilderFactory {
24
- private telemetry;
25
- constructor(telemetry?: TelemetryClient);
26
- create(db: MerkleTreeWriteOperations): BlockBuilder;
27
- }
28
- /**
29
- * Creates a block builder under the hood with the given txs and messages and creates a block.
30
- * @param db - A db fork to use for block building.
31
- */
32
- export declare function buildBlock(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations, telemetry?: TelemetryClient): Promise<L2Block>;
33
- //# sourceMappingURL=light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block_builder/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;GAEG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAUxD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IAVnB,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAG5D,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC;IAGrD,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpF,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAoBzB;AAED,qBAAa,8BAA8B;IAC7B,OAAO,CAAC,SAAS;gBAAT,SAAS,GAAE,eAAsC;IAErE,MAAM,CAAC,EAAE,EAAE,yBAAyB,GAAG,YAAY;CAGpD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,oBAMlD"}
@@ -1,6 +0,0 @@
1
- import type { BlockBuilder, MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
2
-
3
- export * from './light.js';
4
- export interface BlockBuilderFactory {
5
- create(db: MerkleTreeReadOperations): BlockBuilder;
6
- }
File without changes