@aztec/prover-node 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c

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 (44) hide show
  1. package/dest/actions/download-epoch-proving-job.d.ts +1 -1
  2. package/dest/actions/rerun-epoch-proving-job.d.ts +3 -2
  3. package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
  4. package/dest/actions/rerun-epoch-proving-job.js +5 -3
  5. package/dest/bin/run-failed-epoch.js +5 -2
  6. package/dest/config.d.ts +4 -7
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +14 -17
  9. package/dest/factory.d.ts +19 -14
  10. package/dest/factory.d.ts.map +1 -1
  11. package/dest/factory.js +22 -59
  12. package/dest/index.d.ts +2 -1
  13. package/dest/index.d.ts.map +1 -1
  14. package/dest/index.js +1 -0
  15. package/dest/job/epoch-proving-job.d.ts +3 -2
  16. package/dest/job/epoch-proving-job.d.ts.map +1 -1
  17. package/dest/job/epoch-proving-job.js +416 -28
  18. package/dest/metrics.d.ts +1 -1
  19. package/dest/metrics.d.ts.map +1 -1
  20. package/dest/metrics.js +26 -100
  21. package/dest/monitors/epoch-monitor.d.ts +1 -1
  22. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  23. package/dest/monitors/epoch-monitor.js +1 -10
  24. package/dest/prover-node-publisher.d.ts +6 -5
  25. package/dest/prover-node-publisher.d.ts.map +1 -1
  26. package/dest/prover-node-publisher.js +11 -10
  27. package/dest/prover-node.d.ts +19 -9
  28. package/dest/prover-node.d.ts.map +1 -1
  29. package/dest/prover-node.js +409 -28
  30. package/dest/prover-publisher-factory.d.ts +6 -4
  31. package/dest/prover-publisher-factory.d.ts.map +1 -1
  32. package/dest/prover-publisher-factory.js +4 -2
  33. package/package.json +23 -23
  34. package/src/actions/rerun-epoch-proving-job.ts +5 -3
  35. package/src/bin/run-failed-epoch.ts +4 -1
  36. package/src/config.ts +21 -29
  37. package/src/factory.ts +60 -99
  38. package/src/index.ts +1 -0
  39. package/src/job/epoch-proving-job.ts +45 -23
  40. package/src/metrics.ts +20 -83
  41. package/src/monitors/epoch-monitor.ts +1 -8
  42. package/src/prover-node-publisher.ts +13 -10
  43. package/src/prover-node.ts +14 -8
  44. package/src/prover-publisher-factory.ts +13 -7
@@ -1,9 +1,376 @@
1
- function _ts_decorate(decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1
+ function applyDecs2203RFactory() {
2
+ function createAddInitializerMethod(initializers, decoratorFinishedRef) {
3
+ return function addInitializer(initializer) {
4
+ assertNotFinished(decoratorFinishedRef, "addInitializer");
5
+ assertCallable(initializer, "An initializer");
6
+ initializers.push(initializer);
7
+ };
8
+ }
9
+ function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
10
+ var kindStr;
11
+ switch(kind){
12
+ case 1:
13
+ kindStr = "accessor";
14
+ break;
15
+ case 2:
16
+ kindStr = "method";
17
+ break;
18
+ case 3:
19
+ kindStr = "getter";
20
+ break;
21
+ case 4:
22
+ kindStr = "setter";
23
+ break;
24
+ default:
25
+ kindStr = "field";
26
+ }
27
+ var ctx = {
28
+ kind: kindStr,
29
+ name: isPrivate ? "#" + name : name,
30
+ static: isStatic,
31
+ private: isPrivate,
32
+ metadata: metadata
33
+ };
34
+ var decoratorFinishedRef = {
35
+ v: false
36
+ };
37
+ ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
38
+ var get, set;
39
+ if (kind === 0) {
40
+ if (isPrivate) {
41
+ get = desc.get;
42
+ set = desc.set;
43
+ } else {
44
+ get = function() {
45
+ return this[name];
46
+ };
47
+ set = function(v) {
48
+ this[name] = v;
49
+ };
50
+ }
51
+ } else if (kind === 2) {
52
+ get = function() {
53
+ return desc.value;
54
+ };
55
+ } else {
56
+ if (kind === 1 || kind === 3) {
57
+ get = function() {
58
+ return desc.get.call(this);
59
+ };
60
+ }
61
+ if (kind === 1 || kind === 4) {
62
+ set = function(v) {
63
+ desc.set.call(this, v);
64
+ };
65
+ }
66
+ }
67
+ ctx.access = get && set ? {
68
+ get: get,
69
+ set: set
70
+ } : get ? {
71
+ get: get
72
+ } : {
73
+ set: set
74
+ };
75
+ try {
76
+ return dec(value, ctx);
77
+ } finally{
78
+ decoratorFinishedRef.v = true;
79
+ }
80
+ }
81
+ function assertNotFinished(decoratorFinishedRef, fnName) {
82
+ if (decoratorFinishedRef.v) {
83
+ throw new Error("attempted to call " + fnName + " after decoration was finished");
84
+ }
85
+ }
86
+ function assertCallable(fn, hint) {
87
+ if (typeof fn !== "function") {
88
+ throw new TypeError(hint + " must be a function");
89
+ }
90
+ }
91
+ function assertValidReturnValue(kind, value) {
92
+ var type = typeof value;
93
+ if (kind === 1) {
94
+ if (type !== "object" || value === null) {
95
+ throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
96
+ }
97
+ if (value.get !== undefined) {
98
+ assertCallable(value.get, "accessor.get");
99
+ }
100
+ if (value.set !== undefined) {
101
+ assertCallable(value.set, "accessor.set");
102
+ }
103
+ if (value.init !== undefined) {
104
+ assertCallable(value.init, "accessor.init");
105
+ }
106
+ } else if (type !== "function") {
107
+ var hint;
108
+ if (kind === 0) {
109
+ hint = "field";
110
+ } else if (kind === 10) {
111
+ hint = "class";
112
+ } else {
113
+ hint = "method";
114
+ }
115
+ throw new TypeError(hint + " decorators must return a function or void 0");
116
+ }
117
+ }
118
+ function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
119
+ var decs = decInfo[0];
120
+ var desc, init, value;
121
+ if (isPrivate) {
122
+ if (kind === 0 || kind === 1) {
123
+ desc = {
124
+ get: decInfo[3],
125
+ set: decInfo[4]
126
+ };
127
+ } else if (kind === 3) {
128
+ desc = {
129
+ get: decInfo[3]
130
+ };
131
+ } else if (kind === 4) {
132
+ desc = {
133
+ set: decInfo[3]
134
+ };
135
+ } else {
136
+ desc = {
137
+ value: decInfo[3]
138
+ };
139
+ }
140
+ } else if (kind !== 0) {
141
+ desc = Object.getOwnPropertyDescriptor(base, name);
142
+ }
143
+ if (kind === 1) {
144
+ value = {
145
+ get: desc.get,
146
+ set: desc.set
147
+ };
148
+ } else if (kind === 2) {
149
+ value = desc.value;
150
+ } else if (kind === 3) {
151
+ value = desc.get;
152
+ } else if (kind === 4) {
153
+ value = desc.set;
154
+ }
155
+ var newValue, get, set;
156
+ if (typeof decs === "function") {
157
+ newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
158
+ if (newValue !== void 0) {
159
+ assertValidReturnValue(kind, newValue);
160
+ if (kind === 0) {
161
+ init = newValue;
162
+ } else if (kind === 1) {
163
+ init = newValue.init;
164
+ get = newValue.get || value.get;
165
+ set = newValue.set || value.set;
166
+ value = {
167
+ get: get,
168
+ set: set
169
+ };
170
+ } else {
171
+ value = newValue;
172
+ }
173
+ }
174
+ } else {
175
+ for(var i = decs.length - 1; i >= 0; i--){
176
+ var dec = decs[i];
177
+ newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
178
+ if (newValue !== void 0) {
179
+ assertValidReturnValue(kind, newValue);
180
+ var newInit;
181
+ if (kind === 0) {
182
+ newInit = newValue;
183
+ } else if (kind === 1) {
184
+ newInit = newValue.init;
185
+ get = newValue.get || value.get;
186
+ set = newValue.set || value.set;
187
+ value = {
188
+ get: get,
189
+ set: set
190
+ };
191
+ } else {
192
+ value = newValue;
193
+ }
194
+ if (newInit !== void 0) {
195
+ if (init === void 0) {
196
+ init = newInit;
197
+ } else if (typeof init === "function") {
198
+ init = [
199
+ init,
200
+ newInit
201
+ ];
202
+ } else {
203
+ init.push(newInit);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ if (kind === 0 || kind === 1) {
210
+ if (init === void 0) {
211
+ init = function(instance, init) {
212
+ return init;
213
+ };
214
+ } else if (typeof init !== "function") {
215
+ var ownInitializers = init;
216
+ init = function(instance, init) {
217
+ var value = init;
218
+ for(var i = 0; i < ownInitializers.length; i++){
219
+ value = ownInitializers[i].call(instance, value);
220
+ }
221
+ return value;
222
+ };
223
+ } else {
224
+ var originalInitializer = init;
225
+ init = function(instance, init) {
226
+ return originalInitializer.call(instance, init);
227
+ };
228
+ }
229
+ ret.push(init);
230
+ }
231
+ if (kind !== 0) {
232
+ if (kind === 1) {
233
+ desc.get = value.get;
234
+ desc.set = value.set;
235
+ } else if (kind === 2) {
236
+ desc.value = value;
237
+ } else if (kind === 3) {
238
+ desc.get = value;
239
+ } else if (kind === 4) {
240
+ desc.set = value;
241
+ }
242
+ if (isPrivate) {
243
+ if (kind === 1) {
244
+ ret.push(function(instance, args) {
245
+ return value.get.call(instance, args);
246
+ });
247
+ ret.push(function(instance, args) {
248
+ return value.set.call(instance, args);
249
+ });
250
+ } else if (kind === 2) {
251
+ ret.push(value);
252
+ } else {
253
+ ret.push(function(instance, args) {
254
+ return value.call(instance, args);
255
+ });
256
+ }
257
+ } else {
258
+ Object.defineProperty(base, name, desc);
259
+ }
260
+ }
261
+ }
262
+ function applyMemberDecs(Class, decInfos, metadata) {
263
+ var ret = [];
264
+ var protoInitializers;
265
+ var staticInitializers;
266
+ var existingProtoNonFields = new Map();
267
+ var existingStaticNonFields = new Map();
268
+ for(var i = 0; i < decInfos.length; i++){
269
+ var decInfo = decInfos[i];
270
+ if (!Array.isArray(decInfo)) continue;
271
+ var kind = decInfo[1];
272
+ var name = decInfo[2];
273
+ var isPrivate = decInfo.length > 3;
274
+ var isStatic = kind >= 5;
275
+ var base;
276
+ var initializers;
277
+ if (isStatic) {
278
+ base = Class;
279
+ kind = kind - 5;
280
+ staticInitializers = staticInitializers || [];
281
+ initializers = staticInitializers;
282
+ } else {
283
+ base = Class.prototype;
284
+ protoInitializers = protoInitializers || [];
285
+ initializers = protoInitializers;
286
+ }
287
+ if (kind !== 0 && !isPrivate) {
288
+ var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
289
+ var existingKind = existingNonFields.get(name) || 0;
290
+ if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) {
291
+ throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
292
+ } else if (!existingKind && kind > 2) {
293
+ existingNonFields.set(name, kind);
294
+ } else {
295
+ existingNonFields.set(name, true);
296
+ }
297
+ }
298
+ applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
299
+ }
300
+ pushInitializers(ret, protoInitializers);
301
+ pushInitializers(ret, staticInitializers);
302
+ return ret;
303
+ }
304
+ function pushInitializers(ret, initializers) {
305
+ if (initializers) {
306
+ ret.push(function(instance) {
307
+ for(var i = 0; i < initializers.length; i++){
308
+ initializers[i].call(instance);
309
+ }
310
+ return instance;
311
+ });
312
+ }
313
+ }
314
+ function applyClassDecs(targetClass, classDecs, metadata) {
315
+ if (classDecs.length > 0) {
316
+ var initializers = [];
317
+ var newClass = targetClass;
318
+ var name = targetClass.name;
319
+ for(var i = classDecs.length - 1; i >= 0; i--){
320
+ var decoratorFinishedRef = {
321
+ v: false
322
+ };
323
+ try {
324
+ var nextNewClass = classDecs[i](newClass, {
325
+ kind: "class",
326
+ name: name,
327
+ addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
328
+ metadata
329
+ });
330
+ } finally{
331
+ decoratorFinishedRef.v = true;
332
+ }
333
+ if (nextNewClass !== undefined) {
334
+ assertValidReturnValue(10, nextNewClass);
335
+ newClass = nextNewClass;
336
+ }
337
+ }
338
+ return [
339
+ defineMetadata(newClass, metadata),
340
+ function() {
341
+ for(var i = 0; i < initializers.length; i++){
342
+ initializers[i].call(newClass);
343
+ }
344
+ }
345
+ ];
346
+ }
347
+ }
348
+ function defineMetadata(Class, metadata) {
349
+ return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
350
+ configurable: true,
351
+ enumerable: true,
352
+ value: metadata
353
+ });
354
+ }
355
+ return function applyDecs2203R(targetClass, memberDecs, classDecs, parentClass) {
356
+ if (parentClass !== void 0) {
357
+ var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
358
+ }
359
+ var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
360
+ var e = applyMemberDecs(targetClass, memberDecs, metadata);
361
+ if (!classDecs.length) defineMetadata(targetClass, metadata);
362
+ return {
363
+ e: e,
364
+ get c () {
365
+ return applyClassDecs(targetClass, classDecs, metadata);
366
+ }
367
+ };
368
+ };
6
369
  }
370
+ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
371
+ return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
372
+ }
373
+ var _dec, _dec1, _initProto;
7
374
  import { BlockNumber } from '@aztec/foundation/branded-types';
8
375
  import { assertRequired, compact, pick, sum } from '@aztec/foundation/collection';
9
376
  import { memoize } from '@aztec/foundation/decorators';
@@ -16,6 +383,11 @@ import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-clie
16
383
  import { uploadEpochProofFailure } from './actions/upload-epoch-proof-failure.js';
17
384
  import { EpochProvingJob } from './job/epoch-proving-job.js';
18
385
  import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
386
+ _dec = trackSpan('ProverNode.createProvingJob', (epochNumber)=>({
387
+ [Attributes.EPOCH_NUMBER]: epochNumber
388
+ })), _dec1 = trackSpan('ProverNode.gatherEpochData', (epochNumber)=>({
389
+ [Attributes.EPOCH_NUMBER]: epochNumber
390
+ }));
19
391
  /**
20
392
  * An Aztec Prover Node is a standalone process that monitors the unfinalized chain on L1 for unproven epochs,
21
393
  * fetches their txs from the p2p network or external nodes, re-executes their public functions, creates a rollup
@@ -32,15 +404,35 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
32
404
  rollupContract;
33
405
  l1Metrics;
34
406
  telemetryClient;
35
- log;
407
+ delayer;
36
408
  dateProvider;
409
+ static{
410
+ ({ e: [_initProto] } = _apply_decs_2203_r(this, [
411
+ [
412
+ _dec,
413
+ 2,
414
+ "createProvingJob"
415
+ ],
416
+ [
417
+ memoize,
418
+ 2,
419
+ "getL1Constants"
420
+ ],
421
+ [
422
+ _dec1,
423
+ 2,
424
+ "gatherEpochData"
425
+ ]
426
+ ], []));
427
+ }
428
+ log;
37
429
  jobs;
38
430
  config;
39
431
  jobMetrics;
40
432
  rewardsMetrics;
41
433
  tracer;
42
434
  publisher;
43
- constructor(prover, publisherFactory, l2BlockSource, l1ToL2MessageSource, contractDataSource, worldState, p2pClient, epochsMonitor, rollupContract, l1Metrics, config = {}, telemetryClient = getTelemetryClient()){
435
+ constructor(prover, publisherFactory, l2BlockSource, l1ToL2MessageSource, contractDataSource, worldState, p2pClient, epochsMonitor, rollupContract, l1Metrics, config = {}, telemetryClient = getTelemetryClient(), delayer, dateProvider = new DateProvider()){
44
436
  this.prover = prover;
45
437
  this.publisherFactory = publisherFactory;
46
438
  this.l2BlockSource = l2BlockSource;
@@ -52,8 +444,9 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
52
444
  this.rollupContract = rollupContract;
53
445
  this.l1Metrics = l1Metrics;
54
446
  this.telemetryClient = telemetryClient;
55
- this.log = createLogger('prover-node');
56
- this.dateProvider = new DateProvider();
447
+ this.delayer = delayer;
448
+ this.dateProvider = dateProvider;
449
+ this.log = (_initProto(this), createLogger('prover-node'));
57
450
  this.jobs = new Map();
58
451
  this.config = {
59
452
  proverNodePollingIntervalMs: 1_000,
@@ -79,6 +472,9 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
79
472
  getP2P() {
80
473
  return this.p2pClient;
81
474
  }
475
+ /** Returns the shared tx delayer for prover L1 txs, if enabled. Test-only. */ getDelayer() {
476
+ return this.delayer;
477
+ }
82
478
  /**
83
479
  * Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
84
480
  * @param epochNumber - The epoch number that was just completed.
@@ -119,16 +515,14 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
119
515
  }
120
516
  /**
121
517
  * Stops the prover node and all its dependencies.
518
+ * Resources not owned by this node (shared with the parent aztec-node) are skipped.
122
519
  */ async stop() {
123
520
  this.log.info('Stopping ProverNode');
124
521
  await this.epochsMonitor.stop();
125
522
  await this.prover.stop();
126
- await tryStop(this.p2pClient);
127
- await tryStop(this.l2BlockSource);
128
523
  await tryStop(this.publisherFactory);
129
524
  this.publisher?.interrupt();
130
525
  await Promise.all(Array.from(this.jobs.values()).map((job)=>job.stop()));
131
- await this.worldState.stop();
132
526
  this.rewardsMetrics.stop();
133
527
  this.l1Metrics.stop();
134
528
  await this.telemetryClient.stop();
@@ -217,7 +611,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
217
611
  // Fast forward world state to right before the target block and get a fork
218
612
  await this.worldState.syncImmediate(toBlock);
219
613
  // Create a processor factory
220
- const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, this.dateProvider, this.telemetryClient);
614
+ const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, this.dateProvider, this.telemetryClient, this.log.getBindings());
221
615
  // Set deadline for this job to run. It will abort if it takes too long.
222
616
  const deadlineTs = getProofSubmissionDeadlineTimestamp(epochNumber, await this.getL1Constants());
223
617
  const deadline = new Date(Number(deadlineTs) * 1000);
@@ -238,7 +632,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
238
632
  const l1ToL2Messages = await this.gatherMessages(epochNumber, checkpoints);
239
633
  const [firstBlock] = checkpoints[0].blocks;
240
634
  const previousBlockHeader = await this.gatherPreviousBlockHeader(epochNumber, firstBlock.number - 1);
241
- const [lastPublishedCheckpoint] = await this.l2BlockSource.getPublishedCheckpoints(checkpoints.at(-1).number, 1);
635
+ const [lastPublishedCheckpoint] = await this.l2BlockSource.getCheckpoints(checkpoints.at(-1).number, 1);
242
636
  const attestations = lastPublishedCheckpoint?.attestations ?? [];
243
637
  return {
244
638
  checkpoints,
@@ -299,7 +693,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
299
693
  parallelBlockLimit,
300
694
  skipSubmitProof: proverNodeDisableProofPublish,
301
695
  ...opts
302
- });
696
+ }, this.log.getBindings());
303
697
  }
304
698
  /** Extracted for testing purposes. */ async triggerMonitors() {
305
699
  await this.epochsMonitor.work();
@@ -311,19 +705,6 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
311
705
  }
312
706
  }
313
707
  }
314
- _ts_decorate([
315
- trackSpan('ProverNode.createProvingJob', (epochNumber)=>({
316
- [Attributes.EPOCH_NUMBER]: epochNumber
317
- }))
318
- ], ProverNode.prototype, "createProvingJob", null);
319
- _ts_decorate([
320
- memoize
321
- ], ProverNode.prototype, "getL1Constants", null);
322
- _ts_decorate([
323
- trackSpan('ProverNode.gatherEpochData', (epochNumber)=>({
324
- [Attributes.EPOCH_NUMBER]: epochNumber
325
- }))
326
- ], ProverNode.prototype, "gatherEpochData", null);
327
708
  class EmptyEpochError extends Error {
328
709
  constructor(epochNumber){
329
710
  super(`No blocks found for epoch ${epochNumber}`);
@@ -1,17 +1,19 @@
1
1
  import type { RollupContract } from '@aztec/ethereum/contracts';
2
2
  import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
3
3
  import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
4
- import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
4
+ import type { LoggerBindings } from '@aztec/foundation/log';
5
+ import type { ProverPublisherConfig, ProverTxSenderConfig } from '@aztec/sequencer-client';
5
6
  import type { TelemetryClient } from '@aztec/telemetry-client';
6
7
  import { ProverNodePublisher } from './prover-node-publisher.js';
7
8
  export declare class ProverPublisherFactory {
8
9
  private config;
9
10
  private deps;
10
- constructor(config: TxSenderConfig & PublisherConfig, deps: {
11
+ private bindings?;
12
+ constructor(config: ProverTxSenderConfig & ProverPublisherConfig, deps: {
11
13
  rollupContract: RollupContract;
12
14
  publisherManager: PublisherManager<L1TxUtils>;
13
15
  telemetry?: TelemetryClient;
14
- });
16
+ }, bindings?: LoggerBindings | undefined);
15
17
  start(): Promise<void>;
16
18
  stop(): void;
17
19
  /**
@@ -20,4 +22,4 @@ export declare class ProverPublisherFactory {
20
22
  */
21
23
  create(): Promise<ProverNodePublisher>;
22
24
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLHFCQUFhLHNCQUFzQjtJQUUvQixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxJQUFJO0lBRmQsWUFDVSxNQUFNLEVBQUUsY0FBYyxHQUFHLGVBQWUsRUFDeEMsSUFBSSxFQUFFO1FBQ1osY0FBYyxFQUFFLGNBQWMsQ0FBQztRQUMvQixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7S0FDN0IsRUFDQztJQUVTLEtBQUssa0JBRWpCO0lBRU0sSUFBSSxTQUVWO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQU9sRDtDQUNGIn0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsSUFBSTtJQUtaLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFQbkIsWUFDVSxNQUFNLEVBQUUsb0JBQW9CLEdBQUcscUJBQXFCLEVBQ3BELElBQUksRUFBRTtRQUNaLGNBQWMsRUFBRSxjQUFjLENBQUM7UUFDL0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0tBQzdCLEVBQ08sUUFBUSxDQUFDLDRCQUFnQixFQUMvQjtJQUVTLEtBQUssa0JBRWpCO0lBRU0sSUFBSSxTQUVWO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVdsRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAFd,YACU,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EACC;IAES,KAAK,kBAEjB;IAEM,IAAI,SAEV;IAED;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAOlD;CACF"}
1
+ {"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ,CAAC;IAPnB,YACU,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,EACpD,IAAI,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EACO,QAAQ,CAAC,4BAAgB,EAC/B;IAES,KAAK,kBAEjB;IAEM,IAAI,SAEV;IAED;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAWlD;CACF"}
@@ -2,9 +2,11 @@ import { ProverNodePublisher } from './prover-node-publisher.js';
2
2
  export class ProverPublisherFactory {
3
3
  config;
4
4
  deps;
5
- constructor(config, deps){
5
+ bindings;
6
+ constructor(config, deps, bindings){
6
7
  this.config = config;
7
8
  this.deps = deps;
9
+ this.bindings = bindings;
8
10
  }
9
11
  async start() {
10
12
  await this.deps.publisherManager.loadState();
@@ -21,6 +23,6 @@ export class ProverPublisherFactory {
21
23
  rollupContract: this.deps.rollupContract,
22
24
  l1TxUtils: l1Publisher,
23
25
  telemetry: this.deps.telemetry
24
- });
26
+ }, this.bindings);
25
27
  }
26
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-node",
3
- "version": "0.0.1-commit.fcb71a6",
3
+ "version": "0.0.1-commit.ff7989d6c",
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": "0.0.1-commit.fcb71a6",
60
- "@aztec/bb-prover": "0.0.1-commit.fcb71a6",
61
- "@aztec/blob-client": "0.0.1-commit.fcb71a6",
62
- "@aztec/blob-lib": "0.0.1-commit.fcb71a6",
63
- "@aztec/constants": "0.0.1-commit.fcb71a6",
64
- "@aztec/epoch-cache": "0.0.1-commit.fcb71a6",
65
- "@aztec/ethereum": "0.0.1-commit.fcb71a6",
66
- "@aztec/foundation": "0.0.1-commit.fcb71a6",
67
- "@aztec/kv-store": "0.0.1-commit.fcb71a6",
68
- "@aztec/l1-artifacts": "0.0.1-commit.fcb71a6",
69
- "@aztec/node-keystore": "0.0.1-commit.fcb71a6",
70
- "@aztec/node-lib": "0.0.1-commit.fcb71a6",
71
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.fcb71a6",
72
- "@aztec/p2p": "0.0.1-commit.fcb71a6",
73
- "@aztec/protocol-contracts": "0.0.1-commit.fcb71a6",
74
- "@aztec/prover-client": "0.0.1-commit.fcb71a6",
75
- "@aztec/sequencer-client": "0.0.1-commit.fcb71a6",
76
- "@aztec/simulator": "0.0.1-commit.fcb71a6",
77
- "@aztec/stdlib": "0.0.1-commit.fcb71a6",
78
- "@aztec/telemetry-client": "0.0.1-commit.fcb71a6",
79
- "@aztec/world-state": "0.0.1-commit.fcb71a6",
59
+ "@aztec/archiver": "0.0.1-commit.ff7989d6c",
60
+ "@aztec/bb-prover": "0.0.1-commit.ff7989d6c",
61
+ "@aztec/blob-client": "0.0.1-commit.ff7989d6c",
62
+ "@aztec/blob-lib": "0.0.1-commit.ff7989d6c",
63
+ "@aztec/constants": "0.0.1-commit.ff7989d6c",
64
+ "@aztec/epoch-cache": "0.0.1-commit.ff7989d6c",
65
+ "@aztec/ethereum": "0.0.1-commit.ff7989d6c",
66
+ "@aztec/foundation": "0.0.1-commit.ff7989d6c",
67
+ "@aztec/kv-store": "0.0.1-commit.ff7989d6c",
68
+ "@aztec/l1-artifacts": "0.0.1-commit.ff7989d6c",
69
+ "@aztec/node-keystore": "0.0.1-commit.ff7989d6c",
70
+ "@aztec/node-lib": "0.0.1-commit.ff7989d6c",
71
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.ff7989d6c",
72
+ "@aztec/p2p": "0.0.1-commit.ff7989d6c",
73
+ "@aztec/protocol-contracts": "0.0.1-commit.ff7989d6c",
74
+ "@aztec/prover-client": "0.0.1-commit.ff7989d6c",
75
+ "@aztec/sequencer-client": "0.0.1-commit.ff7989d6c",
76
+ "@aztec/simulator": "0.0.1-commit.ff7989d6c",
77
+ "@aztec/stdlib": "0.0.1-commit.ff7989d6c",
78
+ "@aztec/telemetry-client": "0.0.1-commit.ff7989d6c",
79
+ "@aztec/world-state": "0.0.1-commit.ff7989d6c",
80
80
  "source-map-support": "^0.5.21",
81
81
  "tslib": "^2.4.0",
82
82
  "viem": "npm:@aztec/viem@2.38.2"
@@ -86,7 +86,7 @@
86
86
  "@types/jest": "^30.0.0",
87
87
  "@types/node": "^22.15.17",
88
88
  "@types/source-map-support": "^0.5.10",
89
- "@typescript/native-preview": "7.0.0-dev.20251126.1",
89
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
90
90
  "jest": "^30.0.0",
91
91
  "jest-mock-extended": "^4.0.0",
92
92
  "ts-node": "^10.9.1",
@@ -1,4 +1,5 @@
1
1
  import { createArchiverStore } from '@aztec/archiver';
2
+ import type { L1ContractsConfig } from '@aztec/ethereum/config';
2
3
  import type { Logger } from '@aztec/foundation/log';
3
4
  import type { DataStoreConfig } from '@aztec/kv-store/config';
4
5
  import { type ProverClientConfig, createProverClient } from '@aztec/prover-client';
@@ -21,7 +22,7 @@ import { ProverNodeJobMetrics } from '../metrics.js';
21
22
  export async function rerunEpochProvingJob(
22
23
  localPath: string,
23
24
  log: Logger,
24
- config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig,
25
+ config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig & Pick<L1ContractsConfig, 'aztecEpochDuration'>,
25
26
  ) {
26
27
  const jobData = deserializeEpochProvingJobData(readFileSync(localPath));
27
28
  log.info(`Loaded proving job data for epoch ${jobData.epochNumber}`);
@@ -29,8 +30,8 @@ export async function rerunEpochProvingJob(
29
30
  const telemetry = getTelemetryClient();
30
31
  const metrics = new ProverNodeJobMetrics(telemetry.getMeter('prover-job'), telemetry.getTracer('prover-job'));
31
32
  const worldState = await createWorldState(config);
32
- const archiver = await createArchiverStore(config);
33
- const publicProcessorFactory = new PublicProcessorFactory(archiver);
33
+ const archiver = await createArchiverStore(config, { epochDuration: config.aztecEpochDuration });
34
+ const publicProcessorFactory = new PublicProcessorFactory(archiver, undefined, undefined, log.getBindings());
34
35
 
35
36
  const publisher = { submitEpochProof: () => Promise.resolve(true) };
36
37
  const l2BlockSourceForReorgDetection = undefined;
@@ -52,6 +53,7 @@ export async function rerunEpochProvingJob(
52
53
  metrics,
53
54
  deadline,
54
55
  { skipEpochCheck: true },
56
+ log.getBindings(),
55
57
  );
56
58
 
57
59
  log.info(`Rerunning epoch proving job for epoch ${jobData.epochNumber}`);