@aztec/prover-node 3.0.0-nightly.20250917 → 3.0.0-nightly.20250918

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":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,6BAA6B,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAY7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAnBhB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGrB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAClD,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EACxD,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAOpE,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIhC,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,IAAI,GAAG,SAAS;IAI/B,cAAc,IAAI,mBAAmB;IAI5C,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IAIU,GAAG;IAwHhB;;;OAGG;YACW,UAAU;IAgBxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,4BAAwC;IASjE,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;YACW,kBAAkB;IAiChC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAmBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,6BAA6B,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAY7C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAnBhB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGrB,IAAI,EAAE,mBAAmB,EACzB,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAClD,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EACxD,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,MAAM,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAOpE,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIhC,cAAc,IAAI,MAAM;IAIxB,WAAW,IAAI,IAAI,GAAG,SAAS;IAI/B,cAAc,IAAI,mBAAmB;IAI5C,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,YAAY,GAEvB;IAED;;OAEG;IAIU,GAAG;IAoJhB;;;OAGG;YACW,UAAU;IAgBxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAML,IAAI,CAAC,KAAK,GAAE,4BAAwC;IASjE,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;YACW,kBAAkB;IAiChC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAmBzB;AASD,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
@@ -4,7 +4,6 @@ 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 { BatchedBlob, Blob } from '@aztec/blob-lib';
8
7
  import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
9
8
  import { asyncPool } from '@aztec/foundation/async-pool';
10
9
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -12,7 +11,11 @@ import { Fr } from '@aztec/foundation/fields';
12
11
  import { createLogger } from '@aztec/foundation/log';
13
12
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
14
13
  import { Timer } from '@aztec/foundation/timer';
14
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
15
+ import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
16
+ import { buildFinalBlobChallenges } from '@aztec/prover-client/helpers';
15
17
  import { EpochProvingJobTerminalState } from '@aztec/stdlib/interfaces/server';
18
+ import { CheckpointConstantData } from '@aztec/stdlib/rollup';
16
19
  import { MerkleTreeId } from '@aztec/stdlib/trees';
17
20
  import { Attributes, trackSpan } from '@aztec/telemetry-client';
18
21
  import * as crypto from 'node:crypto';
@@ -108,9 +111,13 @@ import { validateEpochProvingJobData } from './epoch-proving-job-data.js';
108
111
  const { promise, resolve } = promiseWithResolvers();
109
112
  this.runPromise = promise;
110
113
  try {
111
- const allBlobs = (await Promise.all(this.blocks.map(async (block)=>await Blob.getBlobsPerBlock(block.body.toBlobFields())))).flat();
112
- const finalBlobBatchingChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(allBlobs);
113
- this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks, finalBlobBatchingChallenges);
114
+ const firstCheckpointNumber = this.blocks[0].header.globalVariables.slotNumber;
115
+ const blobFieldsPerCheckpoint = this.blocks.map((block)=>block.body.toBlobFields());
116
+ const finalBlobBatchingChallenges = await buildFinalBlobChallenges(blobFieldsPerCheckpoint);
117
+ // TODO(#17027): Enable multiple blocks per checkpoint.
118
+ // Total number of checkpoints equals number of blocks because we currently build a checkpoint with only one block.
119
+ const totalNumCheckpoints = epochSizeBlocks;
120
+ this.prover.startNewEpoch(epochNumber, firstCheckpointNumber, totalNumCheckpoints, finalBlobBatchingChallenges);
114
121
  await this.prover.startTubeCircuits(Array.from(this.txs.values()));
115
122
  await asyncPool(this.config.parallelBlockLimit ?? 32, this.blocks, async (block)=>{
116
123
  this.checkState();
@@ -129,8 +136,24 @@ import { validateEpochProvingJobData } from './epoch-proving-job-data.js';
129
136
  uuid: this.uuid,
130
137
  ...globalVariables
131
138
  });
139
+ const checkpointConstants = CheckpointConstantData.from({
140
+ chainId: globalVariables.chainId,
141
+ version: globalVariables.version,
142
+ vkTreeRoot: getVKTreeRoot(),
143
+ protocolContractTreeRoot: protocolContractTreeRoot,
144
+ proverId: this.prover.getProverId().toField(),
145
+ slotNumber: globalVariables.slotNumber,
146
+ coinbase: globalVariables.coinbase,
147
+ feeRecipient: globalVariables.feeRecipient,
148
+ gasFees: globalVariables.gasFees
149
+ });
150
+ // TODO(#17027): Enable multiple blocks per checkpoint.
151
+ // Each checkpoint has only one block.
152
+ const totalNumBlocks = 1;
153
+ const checkpointIndex = block.number - fromBlock;
154
+ await this.prover.startNewCheckpoint(checkpointConstants, l1ToL2Messages, totalNumBlocks, blobFieldsPerCheckpoint[checkpointIndex].length, previousHeader);
132
155
  // Start block proving
133
- await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
156
+ await this.prover.startNewBlock(block.number, globalVariables.timestamp, txs.length);
134
157
  // Process public fns
135
158
  const db = await this.createFork(block.number - 1, l1ToL2Messages);
136
159
  const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, true);
@@ -143,7 +166,8 @@ import { validateEpochProvingJobData } from './epoch-proving-job-data.js';
143
166
  uuid: this.uuid
144
167
  });
145
168
  // Mark block as completed to pad it
146
- await this.prover.setBlockCompleted(block.number, block.header);
169
+ const expectedBlockHeader = block.getBlockHeader();
170
+ await this.prover.setBlockCompleted(block.number, expectedBlockHeader);
147
171
  });
148
172
  const executionTime = timer.ms();
149
173
  this.progressState('awaiting-prover');
@@ -278,7 +302,7 @@ import { validateEpochProvingJobData } from './epoch-proving-job-data.js';
278
302
  /* Returns the header for the given block number based on the epoch proving job data. */ getBlockHeader(blockNumber) {
279
303
  const block = this.blocks.find((b)=>b.number === blockNumber);
280
304
  if (block) {
281
- return block.header;
305
+ return block.getBlockHeader();
282
306
  }
283
307
  if (blockNumber === Number(this.data.previousBlockHeader.getBlockNumber())) {
284
308
  return this.data.previousBlockHeader;
@@ -172,7 +172,7 @@ export class ProverNodePublisher {
172
172
  {
173
173
  previousArchive: args.publicInputs.previousArchiveRoot.toString(),
174
174
  endArchive: args.publicInputs.endArchiveRoot.toString(),
175
- proverId: EthAddress.fromField(args.publicInputs.proverId).toString()
175
+ proverId: EthAddress.fromField(args.publicInputs.constants.proverId).toString()
176
176
  } /*_args*/ ,
177
177
  makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, (i)=>i % 2 === 0 ? args.publicInputs.fees[i / 2].recipient.toField().toString() : args.publicInputs.fees[(i - 1) / 2].value.toString()),
178
178
  args.batchedBlobInputs.getEthBlobEvaluationInputs()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-node",
3
- "version": "3.0.0-nightly.20250917",
3
+ "version": "3.0.0-nightly.20250918",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -56,27 +56,27 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/archiver": "3.0.0-nightly.20250917",
60
- "@aztec/bb-prover": "3.0.0-nightly.20250917",
61
- "@aztec/blob-lib": "3.0.0-nightly.20250917",
62
- "@aztec/blob-sink": "3.0.0-nightly.20250917",
63
- "@aztec/constants": "3.0.0-nightly.20250917",
64
- "@aztec/epoch-cache": "3.0.0-nightly.20250917",
65
- "@aztec/ethereum": "3.0.0-nightly.20250917",
66
- "@aztec/foundation": "3.0.0-nightly.20250917",
67
- "@aztec/kv-store": "3.0.0-nightly.20250917",
68
- "@aztec/l1-artifacts": "3.0.0-nightly.20250917",
69
- "@aztec/node-keystore": "3.0.0-nightly.20250917",
70
- "@aztec/node-lib": "3.0.0-nightly.20250917",
71
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250917",
72
- "@aztec/p2p": "3.0.0-nightly.20250917",
73
- "@aztec/protocol-contracts": "3.0.0-nightly.20250917",
74
- "@aztec/prover-client": "3.0.0-nightly.20250917",
75
- "@aztec/sequencer-client": "3.0.0-nightly.20250917",
76
- "@aztec/simulator": "3.0.0-nightly.20250917",
77
- "@aztec/stdlib": "3.0.0-nightly.20250917",
78
- "@aztec/telemetry-client": "3.0.0-nightly.20250917",
79
- "@aztec/world-state": "3.0.0-nightly.20250917",
59
+ "@aztec/archiver": "3.0.0-nightly.20250918",
60
+ "@aztec/bb-prover": "3.0.0-nightly.20250918",
61
+ "@aztec/blob-lib": "3.0.0-nightly.20250918",
62
+ "@aztec/blob-sink": "3.0.0-nightly.20250918",
63
+ "@aztec/constants": "3.0.0-nightly.20250918",
64
+ "@aztec/epoch-cache": "3.0.0-nightly.20250918",
65
+ "@aztec/ethereum": "3.0.0-nightly.20250918",
66
+ "@aztec/foundation": "3.0.0-nightly.20250918",
67
+ "@aztec/kv-store": "3.0.0-nightly.20250918",
68
+ "@aztec/l1-artifacts": "3.0.0-nightly.20250918",
69
+ "@aztec/node-keystore": "3.0.0-nightly.20250918",
70
+ "@aztec/node-lib": "3.0.0-nightly.20250918",
71
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250918",
72
+ "@aztec/p2p": "3.0.0-nightly.20250918",
73
+ "@aztec/protocol-contracts": "3.0.0-nightly.20250918",
74
+ "@aztec/prover-client": "3.0.0-nightly.20250918",
75
+ "@aztec/sequencer-client": "3.0.0-nightly.20250918",
76
+ "@aztec/simulator": "3.0.0-nightly.20250918",
77
+ "@aztec/stdlib": "3.0.0-nightly.20250918",
78
+ "@aztec/telemetry-client": "3.0.0-nightly.20250918",
79
+ "@aztec/world-state": "3.0.0-nightly.20250918",
80
80
  "source-map-support": "^0.5.21",
81
81
  "tslib": "^2.4.0",
82
82
  "viem": "2.23.7"
@@ -1,4 +1,3 @@
1
- import { BatchedBlob, Blob } from '@aztec/blob-lib';
2
1
  import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
3
2
  import { asyncPool } from '@aztec/foundation/async-pool';
4
3
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -6,6 +5,9 @@ import { Fr } from '@aztec/foundation/fields';
6
5
  import { createLogger } from '@aztec/foundation/log';
7
6
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
8
7
  import { Timer } from '@aztec/foundation/timer';
8
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
9
+ import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
10
+ import { buildFinalBlobChallenges } from '@aztec/prover-client/helpers';
9
11
  import type { PublicProcessor, PublicProcessorFactory } from '@aztec/simulator/server';
10
12
  import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
11
13
  import {
@@ -14,6 +16,7 @@ import {
14
16
  EpochProvingJobTerminalState,
15
17
  type ForkMerkleTreeOperations,
16
18
  } from '@aztec/stdlib/interfaces/server';
19
+ import { CheckpointConstantData } from '@aztec/stdlib/rollup';
17
20
  import { MerkleTreeId } from '@aztec/stdlib/trees';
18
21
  import type { ProcessedTx, Tx } from '@aztec/stdlib/tx';
19
22
  import { Attributes, type Traceable, type Tracer, trackSpan } from '@aztec/telemetry-client';
@@ -123,12 +126,15 @@ export class EpochProvingJob implements Traceable {
123
126
  this.runPromise = promise;
124
127
 
125
128
  try {
126
- const allBlobs = (
127
- await Promise.all(this.blocks.map(async block => await Blob.getBlobsPerBlock(block.body.toBlobFields())))
128
- ).flat();
129
+ const firstCheckpointNumber = this.blocks[0].header.globalVariables.slotNumber;
130
+ const blobFieldsPerCheckpoint = this.blocks.map(block => block.body.toBlobFields());
131
+ const finalBlobBatchingChallenges = await buildFinalBlobChallenges(blobFieldsPerCheckpoint);
129
132
 
130
- const finalBlobBatchingChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(allBlobs);
131
- this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks, finalBlobBatchingChallenges);
133
+ // TODO(#17027): Enable multiple blocks per checkpoint.
134
+ // Total number of checkpoints equals number of blocks because we currently build a checkpoint with only one block.
135
+ const totalNumCheckpoints = epochSizeBlocks;
136
+
137
+ this.prover.startNewEpoch(epochNumber, firstCheckpointNumber, totalNumCheckpoints, finalBlobBatchingChallenges);
132
138
  await this.prover.startTubeCircuits(Array.from(this.txs.values()));
133
139
 
134
140
  await asyncPool(this.config.parallelBlockLimit ?? 32, this.blocks, async block => {
@@ -151,8 +157,32 @@ export class EpochProvingJob implements Traceable {
151
157
  ...globalVariables,
152
158
  });
153
159
 
160
+ const checkpointConstants = CheckpointConstantData.from({
161
+ chainId: globalVariables.chainId,
162
+ version: globalVariables.version,
163
+ vkTreeRoot: getVKTreeRoot(),
164
+ protocolContractTreeRoot: protocolContractTreeRoot,
165
+ proverId: this.prover.getProverId().toField(),
166
+ slotNumber: globalVariables.slotNumber,
167
+ coinbase: globalVariables.coinbase,
168
+ feeRecipient: globalVariables.feeRecipient,
169
+ gasFees: globalVariables.gasFees,
170
+ });
171
+
172
+ // TODO(#17027): Enable multiple blocks per checkpoint.
173
+ // Each checkpoint has only one block.
174
+ const totalNumBlocks = 1;
175
+ const checkpointIndex = block.number - fromBlock;
176
+ await this.prover.startNewCheckpoint(
177
+ checkpointConstants,
178
+ l1ToL2Messages,
179
+ totalNumBlocks,
180
+ blobFieldsPerCheckpoint[checkpointIndex].length,
181
+ previousHeader,
182
+ );
183
+
154
184
  // Start block proving
155
- await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
185
+ await this.prover.startNewBlock(block.number, globalVariables.timestamp, txs.length);
156
186
 
157
187
  // Process public fns
158
188
  const db = await this.createFork(block.number - 1, l1ToL2Messages);
@@ -167,7 +197,8 @@ export class EpochProvingJob implements Traceable {
167
197
  });
168
198
 
169
199
  // Mark block as completed to pad it
170
- await this.prover.setBlockCompleted(block.number, block.header);
200
+ const expectedBlockHeader = block.getBlockHeader();
201
+ await this.prover.setBlockCompleted(block.number, expectedBlockHeader);
171
202
  });
172
203
 
173
204
  const executionTime = timer.ms();
@@ -318,7 +349,7 @@ export class EpochProvingJob implements Traceable {
318
349
  private getBlockHeader(blockNumber: number) {
319
350
  const block = this.blocks.find(b => b.number === blockNumber);
320
351
  if (block) {
321
- return block.header;
352
+ return block.getBlockHeader();
322
353
  }
323
354
 
324
355
  if (blockNumber === Number(this.data.previousBlockHeader.getBlockNumber())) {
@@ -259,7 +259,7 @@ export class ProverNodePublisher {
259
259
  {
260
260
  previousArchive: args.publicInputs.previousArchiveRoot.toString(),
261
261
  endArchive: args.publicInputs.endArchiveRoot.toString(),
262
- proverId: EthAddress.fromField(args.publicInputs.proverId).toString(),
262
+ proverId: EthAddress.fromField(args.publicInputs.constants.proverId).toString(),
263
263
  } /*_args*/,
264
264
  makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, i =>
265
265
  i % 2 === 0