@aztec/prover-node 0.76.4-devnet-test-rc3 → 0.77.0-testnet-ignition.17

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 (96) hide show
  1. package/dest/config.d.ts +5 -8
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +24 -51
  4. package/dest/factory.d.ts +6 -3
  5. package/dest/factory.d.ts.map +1 -1
  6. package/dest/factory.js +23 -45
  7. package/dest/http.d.ts +1 -1
  8. package/dest/http.d.ts.map +1 -1
  9. package/dest/http.js +2 -4
  10. package/dest/index.js +0 -1
  11. package/dest/job/epoch-proving-job.d.ts +8 -4
  12. package/dest/job/epoch-proving-job.d.ts.map +1 -1
  13. package/dest/job/epoch-proving-job.js +233 -190
  14. package/dest/metrics.d.ts +5 -2
  15. package/dest/metrics.d.ts.map +1 -1
  16. package/dest/metrics.js +50 -25
  17. package/dest/monitors/epoch-monitor.d.ts +22 -4
  18. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  19. package/dest/monitors/epoch-monitor.js +102 -48
  20. package/dest/monitors/index.d.ts +0 -1
  21. package/dest/monitors/index.d.ts.map +1 -1
  22. package/dest/monitors/index.js +0 -2
  23. package/dest/prover-coordination/config.js +2 -3
  24. package/dest/prover-coordination/factory.d.ts +5 -5
  25. package/dest/prover-coordination/factory.d.ts.map +1 -1
  26. package/dest/prover-coordination/factory.js +11 -8
  27. package/dest/prover-coordination/index.js +0 -1
  28. package/dest/prover-node-publisher.d.ts +5 -11
  29. package/dest/prover-node-publisher.d.ts.map +1 -1
  30. package/dest/prover-node-publisher.js +68 -61
  31. package/dest/prover-node.d.ts +23 -32
  32. package/dest/prover-node.d.ts.map +1 -1
  33. package/dest/prover-node.js +237 -289
  34. package/dest/test/index.d.ts +2 -2
  35. package/dest/test/index.d.ts.map +1 -1
  36. package/dest/test/index.js +2 -1
  37. package/package.json +21 -22
  38. package/src/config.ts +18 -62
  39. package/src/factory.ts +18 -47
  40. package/src/http.ts +2 -2
  41. package/src/job/epoch-proving-job.ts +15 -13
  42. package/src/metrics.ts +26 -5
  43. package/src/monitors/epoch-monitor.ts +57 -13
  44. package/src/monitors/index.ts +0 -1
  45. package/src/prover-coordination/factory.ts +9 -12
  46. package/src/prover-node-publisher.ts +29 -24
  47. package/src/prover-node.ts +53 -128
  48. package/src/test/index.ts +2 -2
  49. package/dest/bond/bond-manager.d.ts +0 -22
  50. package/dest/bond/bond-manager.d.ts.map +0 -1
  51. package/dest/bond/bond-manager.js +0 -42
  52. package/dest/bond/config.d.ts +0 -8
  53. package/dest/bond/config.d.ts.map +0 -1
  54. package/dest/bond/config.js +0 -17
  55. package/dest/bond/escrow-contract.d.ts +0 -19
  56. package/dest/bond/escrow-contract.d.ts.map +0 -1
  57. package/dest/bond/escrow-contract.js +0 -32
  58. package/dest/bond/factory.d.ts +0 -6
  59. package/dest/bond/factory.d.ts.map +0 -1
  60. package/dest/bond/factory.js +0 -17
  61. package/dest/bond/index.d.ts +0 -3
  62. package/dest/bond/index.d.ts.map +0 -1
  63. package/dest/bond/index.js +0 -3
  64. package/dest/bond/token-contract.d.ts +0 -26
  65. package/dest/bond/token-contract.d.ts.map +0 -1
  66. package/dest/bond/token-contract.js +0 -58
  67. package/dest/monitors/claims-monitor.d.ts +0 -24
  68. package/dest/monitors/claims-monitor.d.ts.map +0 -1
  69. package/dest/monitors/claims-monitor.js +0 -54
  70. package/dest/quote-provider/http.d.ts +0 -15
  71. package/dest/quote-provider/http.d.ts.map +0 -1
  72. package/dest/quote-provider/http.js +0 -33
  73. package/dest/quote-provider/index.d.ts +0 -6
  74. package/dest/quote-provider/index.d.ts.map +0 -1
  75. package/dest/quote-provider/index.js +0 -2
  76. package/dest/quote-provider/simple.d.ts +0 -9
  77. package/dest/quote-provider/simple.d.ts.map +0 -1
  78. package/dest/quote-provider/simple.js +0 -11
  79. package/dest/quote-provider/utils.d.ts +0 -4
  80. package/dest/quote-provider/utils.d.ts.map +0 -1
  81. package/dest/quote-provider/utils.js +0 -8
  82. package/dest/quote-signer.d.ts +0 -13
  83. package/dest/quote-signer.d.ts.map +0 -1
  84. package/dest/quote-signer.js +0 -18
  85. package/src/bond/bond-manager.ts +0 -48
  86. package/src/bond/config.ts +0 -25
  87. package/src/bond/escrow-contract.ts +0 -50
  88. package/src/bond/factory.ts +0 -28
  89. package/src/bond/index.ts +0 -2
  90. package/src/bond/token-contract.ts +0 -72
  91. package/src/monitors/claims-monitor.ts +0 -69
  92. package/src/quote-provider/http.ts +0 -48
  93. package/src/quote-provider/index.ts +0 -8
  94. package/src/quote-provider/simple.ts +0 -15
  95. package/src/quote-provider/utils.ts +0 -10
  96. package/src/quote-signer.ts +0 -24
@@ -1,212 +1,255 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { EpochProvingJobTerminalState, } from '@aztec/circuit-types';
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;
6
+ }
3
7
  import { asyncPool } from '@aztec/foundation/async-pool';
4
8
  import { createLogger } from '@aztec/foundation/log';
5
9
  import { promiseWithResolvers } from '@aztec/foundation/promise';
6
10
  import { Timer } from '@aztec/foundation/timer';
11
+ import { EpochProvingJobTerminalState } from '@aztec/stdlib/interfaces/server';
7
12
  import { Attributes, trackSpan } from '@aztec/telemetry-client';
8
13
  import * as crypto from 'node:crypto';
9
14
  /**
10
15
  * Job that grabs a range of blocks from the unfinalised chain from L1, gets their txs given their hashes,
11
16
  * re-executes their public calls, generates a rollup proof, and submits it to L1. This job will update the
12
17
  * world state as part of public call execution via the public processor.
13
- */
14
- let EpochProvingJob = (() => {
15
- var _a;
16
- let _instanceExtraInitializers = [];
17
- let _run_decorators;
18
- return _a = class EpochProvingJob {
19
- constructor(dbProvider, epochNumber, blocks, txs, prover, publicProcessorFactory, publisher, l2BlockSource, l1ToL2MessageSource, metrics, deadline, config = { parallelBlockLimit: 32 }, cleanUp = () => Promise.resolve()) {
20
- this.dbProvider = (__runInitializers(this, _instanceExtraInitializers), dbProvider);
21
- this.epochNumber = epochNumber;
22
- this.blocks = blocks;
23
- this.txs = txs;
24
- this.prover = prover;
25
- this.publicProcessorFactory = publicProcessorFactory;
26
- this.publisher = publisher;
27
- this.l2BlockSource = l2BlockSource;
28
- this.l1ToL2MessageSource = l1ToL2MessageSource;
29
- this.metrics = metrics;
30
- this.deadline = deadline;
31
- this.config = config;
32
- this.cleanUp = cleanUp;
33
- this.state = 'initialized';
34
- this.log = createLogger('prover-node:epoch-proving-job');
35
- this.uuid = crypto.randomUUID();
36
- this.tracer = metrics.client.getTracer('EpochProvingJob');
18
+ */ export class EpochProvingJob {
19
+ dbProvider;
20
+ epochNumber;
21
+ blocks;
22
+ txs;
23
+ prover;
24
+ publicProcessorFactory;
25
+ publisher;
26
+ l2BlockSource;
27
+ l1ToL2MessageSource;
28
+ metrics;
29
+ deadline;
30
+ config;
31
+ cleanUp;
32
+ state;
33
+ log;
34
+ uuid;
35
+ runPromise;
36
+ deadlineTimeoutHandler;
37
+ tracer;
38
+ constructor(dbProvider, epochNumber, blocks, txs, prover, publicProcessorFactory, publisher, l2BlockSource, l1ToL2MessageSource, metrics, deadline, config = {
39
+ parallelBlockLimit: 32
40
+ }, cleanUp = ()=>Promise.resolve()){
41
+ this.dbProvider = dbProvider;
42
+ this.epochNumber = epochNumber;
43
+ this.blocks = blocks;
44
+ this.txs = txs;
45
+ this.prover = prover;
46
+ this.publicProcessorFactory = publicProcessorFactory;
47
+ this.publisher = publisher;
48
+ this.l2BlockSource = l2BlockSource;
49
+ this.l1ToL2MessageSource = l1ToL2MessageSource;
50
+ this.metrics = metrics;
51
+ this.deadline = deadline;
52
+ this.config = config;
53
+ this.cleanUp = cleanUp;
54
+ this.state = 'initialized';
55
+ this.log = createLogger('prover-node:epoch-proving-job');
56
+ this.uuid = crypto.randomUUID();
57
+ this.tracer = metrics.client.getTracer('EpochProvingJob');
58
+ }
59
+ getId() {
60
+ return this.uuid;
61
+ }
62
+ getState() {
63
+ return this.state;
64
+ }
65
+ getEpochNumber() {
66
+ return this.epochNumber;
67
+ }
68
+ /**
69
+ * Proves the given epoch and submits the proof to L1.
70
+ */ async run() {
71
+ this.scheduleDeadlineStop();
72
+ const epochNumber = Number(this.epochNumber);
73
+ const epochSizeBlocks = this.blocks.length;
74
+ const epochSizeTxs = this.blocks.reduce((total, current)=>total + current.body.txEffects.length, 0);
75
+ const [fromBlock, toBlock] = [
76
+ this.blocks[0].number,
77
+ this.blocks.at(-1).number
78
+ ];
79
+ this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
80
+ fromBlock,
81
+ toBlock,
82
+ epochSizeBlocks,
83
+ epochNumber,
84
+ uuid: this.uuid
85
+ });
86
+ this.progressState('processing');
87
+ const timer = new Timer();
88
+ const { promise, resolve } = promiseWithResolvers();
89
+ this.runPromise = promise;
90
+ try {
91
+ this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
92
+ await this.prover.startTubeCircuits(this.txs);
93
+ await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block)=>{
94
+ this.checkState();
95
+ const globalVariables = block.header.globalVariables;
96
+ const txs = await this.getTxs(block);
97
+ const l1ToL2Messages = await this.getL1ToL2Messages(block);
98
+ const previousHeader = await this.getBlockHeader(block.number - 1);
99
+ this.log.verbose(`Starting processing block ${block.number}`, {
100
+ number: block.number,
101
+ blockHash: (await block.hash()).toString(),
102
+ lastArchive: block.header.lastArchive.root,
103
+ noteHashTreeRoot: block.header.state.partial.noteHashTree.root,
104
+ nullifierTreeRoot: block.header.state.partial.nullifierTree.root,
105
+ publicDataTreeRoot: block.header.state.partial.publicDataTree.root,
106
+ previousHeader: previousHeader.hash(),
107
+ uuid: this.uuid,
108
+ ...globalVariables
109
+ });
110
+ // Start block proving
111
+ await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
112
+ // Process public fns
113
+ const db = await this.dbProvider.fork(block.number - 1);
114
+ const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, true);
115
+ const processed = await this.processTxs(publicProcessor, txs);
116
+ await this.prover.addTxs(processed);
117
+ await db.close();
118
+ this.log.verbose(`Processed all ${txs.length} txs for block ${block.number}`, {
119
+ blockNumber: block.number,
120
+ blockHash: (await block.hash()).toString(),
121
+ uuid: this.uuid
122
+ });
123
+ // Mark block as completed to pad it
124
+ await this.prover.setBlockCompleted(block.number, block.header);
125
+ });
126
+ const executionTime = timer.ms();
127
+ this.progressState('awaiting-prover');
128
+ const { publicInputs, proof } = await this.prover.finaliseEpoch();
129
+ this.log.info(`Finalised proof for epoch ${epochNumber}`, {
130
+ epochNumber,
131
+ uuid: this.uuid,
132
+ duration: timer.ms()
133
+ });
134
+ this.progressState('publishing-proof');
135
+ const success = await this.publisher.submitEpochProof({
136
+ fromBlock,
137
+ toBlock,
138
+ epochNumber,
139
+ publicInputs,
140
+ proof
141
+ });
142
+ if (!success) {
143
+ throw new Error('Failed to submit epoch proof to L1');
37
144
  }
38
- getId() {
39
- return this.uuid;
145
+ this.log.info(`Submitted proof for epoch ${epochNumber} (blocks ${fromBlock} to ${toBlock})`, {
146
+ epochNumber,
147
+ uuid: this.uuid
148
+ });
149
+ this.state = 'completed';
150
+ this.metrics.recordProvingJob(executionTime, timer.ms(), epochSizeBlocks, epochSizeTxs);
151
+ } catch (err) {
152
+ if (err && err.name === 'HaltExecutionError') {
153
+ this.log.warn(`Halted execution of epoch ${epochNumber} prover job`, {
154
+ uuid: this.uuid,
155
+ epochNumber
156
+ });
157
+ return;
40
158
  }
41
- getState() {
42
- return this.state;
159
+ this.log.error(`Error running epoch ${epochNumber} prover job`, err, {
160
+ uuid: this.uuid,
161
+ epochNumber
162
+ });
163
+ this.state = 'failed';
164
+ } finally{
165
+ clearTimeout(this.deadlineTimeoutHandler);
166
+ await this.cleanUp(this);
167
+ await this.prover.stop();
168
+ resolve();
169
+ }
170
+ }
171
+ progressState(state) {
172
+ this.checkState();
173
+ this.state = state;
174
+ }
175
+ checkState() {
176
+ if (this.state === 'timed-out' || this.state === 'stopped' || this.state === 'failed') {
177
+ throw new HaltExecutionError(this.state);
178
+ }
179
+ }
180
+ async stop(state = 'stopped') {
181
+ this.state = state;
182
+ this.prover.cancel();
183
+ // TODO(palla/prover): Stop the publisher as well
184
+ if (this.runPromise) {
185
+ await this.runPromise;
186
+ }
187
+ }
188
+ scheduleDeadlineStop() {
189
+ const deadline = this.deadline;
190
+ if (deadline) {
191
+ const timeout = deadline.getTime() - Date.now();
192
+ if (timeout <= 0) {
193
+ throw new Error('Cannot start job with deadline in the past');
43
194
  }
44
- /**
45
- * Proves the given epoch and submits the proof to L1.
46
- */
47
- async run() {
48
- this.scheduleDeadlineStop();
49
- const epochNumber = Number(this.epochNumber);
50
- const epochSizeBlocks = this.blocks.length;
51
- const epochSizeTxs = this.blocks.reduce((total, current) => total + current.body.txEffects.length, 0);
52
- const [fromBlock, toBlock] = [this.blocks[0].number, this.blocks.at(-1).number];
53
- this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
54
- fromBlock,
55
- toBlock,
56
- epochSizeBlocks,
57
- epochNumber,
195
+ this.deadlineTimeoutHandler = setTimeout(()=>{
196
+ if (EpochProvingJobTerminalState.includes(this.state)) {
197
+ return;
198
+ }
199
+ this.log.warn('Stopping job due to deadline hit', {
58
200
  uuid: this.uuid,
201
+ epochNumber: this.epochNumber
59
202
  });
60
- this.progressState('processing');
61
- const timer = new Timer();
62
- const { promise, resolve } = promiseWithResolvers();
63
- this.runPromise = promise;
64
- try {
65
- this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
66
- await this.prover.startTubeCircuits(this.txs);
67
- await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block) => {
68
- this.checkState();
69
- const globalVariables = block.header.globalVariables;
70
- const txs = await this.getTxs(block);
71
- const l1ToL2Messages = await this.getL1ToL2Messages(block);
72
- const previousHeader = (await this.getBlockHeader(block.number - 1));
73
- this.log.verbose(`Starting processing block ${block.number}`, {
74
- number: block.number,
75
- blockHash: (await block.hash()).toString(),
76
- lastArchive: block.header.lastArchive.root,
77
- noteHashTreeRoot: block.header.state.partial.noteHashTree.root,
78
- nullifierTreeRoot: block.header.state.partial.nullifierTree.root,
79
- publicDataTreeRoot: block.header.state.partial.publicDataTree.root,
80
- previousHeader: previousHeader.hash(),
81
- uuid: this.uuid,
82
- ...globalVariables,
83
- });
84
- // Start block proving
85
- await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
86
- // Process public fns
87
- const db = await this.dbProvider.fork(block.number - 1);
88
- const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, true);
89
- const processed = await this.processTxs(publicProcessor, txs);
90
- await this.prover.addTxs(processed);
91
- await db.close();
92
- this.log.verbose(`Processed all ${txs.length} txs for block ${block.number}`, {
93
- blockNumber: block.number,
94
- blockHash: (await block.hash()).toString(),
95
- uuid: this.uuid,
96
- });
97
- // Mark block as completed to pad it
98
- await this.prover.setBlockCompleted(block.number, block.header);
99
- });
100
- const executionTime = timer.ms();
101
- this.progressState('awaiting-prover');
102
- const { publicInputs, proof } = await this.prover.finaliseEpoch();
103
- this.log.info(`Finalised proof for epoch ${epochNumber}`, { epochNumber, uuid: this.uuid, duration: timer.ms() });
104
- this.progressState('publishing-proof');
105
- const success = await this.publisher.submitEpochProof({ fromBlock, toBlock, epochNumber, publicInputs, proof });
106
- if (!success) {
107
- throw new Error('Failed to submit epoch proof to L1');
108
- }
109
- this.log.info(`Submitted proof for epoch ${epochNumber} (blocks ${fromBlock} to ${toBlock})`, {
110
- epochNumber,
203
+ this.stop('timed-out').catch((err)=>{
204
+ this.log.error('Error stopping job', err, {
111
205
  uuid: this.uuid,
206
+ epochNumber: this.epochNumber
112
207
  });
113
- this.state = 'completed';
114
- this.metrics.recordProvingJob(executionTime, timer.ms(), epochSizeBlocks, epochSizeTxs);
115
- }
116
- catch (err) {
117
- if (err && err.name === 'HaltExecutionError') {
118
- this.log.warn(`Halted execution of epoch ${epochNumber} prover job`, { uuid: this.uuid, epochNumber });
119
- return;
120
- }
121
- this.log.error(`Error running epoch ${epochNumber} prover job`, err, { uuid: this.uuid, epochNumber });
122
- this.state = 'failed';
123
- }
124
- finally {
125
- clearTimeout(this.deadlineTimeoutHandler);
126
- await this.cleanUp(this);
127
- await this.prover.stop();
128
- resolve();
129
- }
130
- }
131
- progressState(state) {
132
- this.checkState();
133
- this.state = state;
134
- }
135
- checkState() {
136
- if (this.state === 'timed-out' || this.state === 'stopped' || this.state === 'failed') {
137
- throw new HaltExecutionError(this.state);
138
- }
139
- }
140
- async stop(state = 'stopped') {
141
- this.state = state;
142
- this.prover.cancel();
143
- // TODO(palla/prover): Stop the publisher as well
144
- if (this.runPromise) {
145
- await this.runPromise;
146
- }
147
- }
148
- scheduleDeadlineStop() {
149
- const deadline = this.deadline;
150
- if (deadline) {
151
- const timeout = deadline.getTime() - Date.now();
152
- if (timeout <= 0) {
153
- throw new Error('Cannot start job with deadline in the past');
154
- }
155
- this.deadlineTimeoutHandler = setTimeout(() => {
156
- if (EpochProvingJobTerminalState.includes(this.state)) {
157
- return;
158
- }
159
- this.log.warn('Stopping job due to deadline hit', { uuid: this.uuid, epochNumber: this.epochNumber });
160
- this.stop('timed-out').catch(err => {
161
- this.log.error('Error stopping job', err, { uuid: this.uuid, epochNumber: this.epochNumber });
162
- });
163
- }, timeout);
164
- }
165
- }
166
- /* Returns the header for the given block number, or the genesis block for block zero. */
167
- async getBlockHeader(blockNumber) {
168
- if (blockNumber === 0) {
169
- return (await this.dbProvider.fork()).getInitialHeader();
170
- }
171
- return this.l2BlockSource.getBlockHeader(blockNumber);
172
- }
173
- async getTxs(block) {
174
- const txHashes = block.body.txEffects.map(tx => tx.txHash.toBigInt());
175
- const txsAndHashes = await Promise.all(this.txs.map(async (tx) => ({ tx, hash: await tx.getTxHash() })));
176
- return txsAndHashes
177
- .filter(txAndHash => txHashes.includes(txAndHash.hash.toBigInt()))
178
- .map(txAndHash => txAndHash.tx);
179
- }
180
- getL1ToL2Messages(block) {
181
- return this.l1ToL2MessageSource.getL1ToL2Messages(BigInt(block.number));
182
- }
183
- async processTxs(publicProcessor, txs) {
184
- const { deadline } = this;
185
- const [processedTxs, failedTxs] = await publicProcessor.process(txs, { deadline });
186
- if (failedTxs.length) {
187
- throw new Error(`Txs failed processing: ${failedTxs.map(({ tx, error }) => `${tx.getTxHash()} (${error})`).join(', ')}`);
188
- }
189
- if (processedTxs.length !== txs.length) {
190
- throw new Error(`Failed to process all txs: processed ${processedTxs.length} out of ${txs.length}`);
191
- }
192
- return processedTxs;
193
- }
194
- },
195
- (() => {
196
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
197
- _run_decorators = [trackSpan('EpochProvingJob.run', function () {
198
- return { [Attributes.EPOCH_NUMBER]: Number(this.epochNumber) };
199
- })];
200
- __esDecorate(_a, null, _run_decorators, { kind: "method", name: "run", static: false, private: false, access: { has: obj => "run" in obj, get: obj => obj.run }, metadata: _metadata }, null, _instanceExtraInitializers);
201
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
202
- })(),
203
- _a;
204
- })();
205
- export { EpochProvingJob };
208
+ });
209
+ }, timeout);
210
+ }
211
+ }
212
+ /* Returns the header for the given block number, or the genesis block for block zero. */ async getBlockHeader(blockNumber) {
213
+ if (blockNumber === 0) {
214
+ return (await this.dbProvider.fork()).getInitialHeader();
215
+ }
216
+ return this.l2BlockSource.getBlockHeader(blockNumber);
217
+ }
218
+ async getTxs(block) {
219
+ const txHashes = block.body.txEffects.map((tx)=>tx.txHash.toBigInt());
220
+ const txsAndHashes = await Promise.all(this.txs.map(async (tx)=>({
221
+ tx,
222
+ hash: await tx.getTxHash()
223
+ })));
224
+ return txsAndHashes.filter((txAndHash)=>txHashes.includes(txAndHash.hash.toBigInt())).map((txAndHash)=>txAndHash.tx);
225
+ }
226
+ getL1ToL2Messages(block) {
227
+ return this.l1ToL2MessageSource.getL1ToL2Messages(BigInt(block.number));
228
+ }
229
+ async processTxs(publicProcessor, txs) {
230
+ const { deadline } = this;
231
+ const [processedTxs, failedTxs] = await publicProcessor.process(txs, {
232
+ deadline
233
+ });
234
+ if (failedTxs.length) {
235
+ throw new Error(`Txs failed processing: ${failedTxs.map(({ tx, error })=>`${tx.getTxHash()} (${error})`).join(', ')}`);
236
+ }
237
+ if (processedTxs.length !== txs.length) {
238
+ throw new Error(`Failed to process all txs: processed ${processedTxs.length} out of ${txs.length}`);
239
+ }
240
+ return processedTxs;
241
+ }
242
+ }
243
+ _ts_decorate([
244
+ trackSpan('EpochProvingJob.run', function() {
245
+ return {
246
+ [Attributes.EPOCH_NUMBER]: Number(this.epochNumber)
247
+ };
248
+ })
249
+ ], EpochProvingJob.prototype, "run", null);
206
250
  class HaltExecutionError extends Error {
207
- constructor(state) {
251
+ constructor(state){
208
252
  super(`Halted execution due to state ${state}`);
209
253
  this.name = 'HaltExecutionError';
210
254
  }
211
255
  }
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iL2Vwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsNEJBQTRCLEdBTzdCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBK0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFLdEM7Ozs7R0FJRztJQUNVLGVBQWU7Ozs7c0JBQWYsZUFBZTtZQVUxQixZQUNVLFVBQW9DLEVBQ3BDLFdBQW1CLEVBQ25CLE1BQWlCLEVBQ2pCLEdBQVMsRUFDVCxNQUFtQixFQUNuQixzQkFBOEMsRUFDOUMsU0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLE9BQTBCLEVBQzFCLFFBQTBCLEVBQzFCLFNBQXlDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQ25FLFVBQW1ELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBWjFFLGVBQVUsSUFYVCxtREFBZSxFQVdoQixVQUFVLEVBQTBCO2dCQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtnQkFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztnQkFDakIsUUFBRyxHQUFILEdBQUcsQ0FBTTtnQkFDVCxXQUFNLEdBQU4sTUFBTSxDQUFhO2dCQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2dCQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFxQjtnQkFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7Z0JBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7Z0JBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQW1CO2dCQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtnQkFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBNkQ7Z0JBQ25FLFlBQU8sR0FBUCxPQUFPLENBQW1FO2dCQXRCNUUsVUFBSyxHQUF5QixhQUFhLENBQUM7Z0JBQzVDLFFBQUcsR0FBRyxZQUFZLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkF1QjFELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUVNLEtBQUs7Z0JBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CLENBQUM7WUFFTSxRQUFRO2dCQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNwQixDQUFDO1lBRUQ7O2VBRUc7WUFJSSxLQUFLLENBQUMsR0FBRztnQkFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFFNUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzNDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEcsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixXQUFXLDRCQUE0QixTQUFTLE9BQU8sT0FBTyxFQUFFLEVBQUU7b0JBQ2hHLFNBQVM7b0JBQ1QsT0FBTztvQkFDUCxlQUFlO29CQUNmLFdBQVc7b0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2lCQUNoQixDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxvQkFBb0IsRUFBUSxDQUFDO2dCQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztnQkFFMUIsSUFBSSxDQUFDO29CQUNILElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7b0JBQ25FLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBRTlDLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsS0FBSyxFQUFDLEVBQUU7d0JBQ3pFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFFbEIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7d0JBQ3JELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzNELE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUUsQ0FBQzt3QkFFdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTs0QkFDNUQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNOzRCQUNwQixTQUFTLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTs0QkFDMUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUk7NEJBQzFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSTs0QkFDOUQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJOzRCQUNoRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUk7NEJBQ2xFLGNBQWMsRUFBRSxjQUFjLENBQUMsSUFBSSxFQUFFOzRCQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7NEJBQ2YsR0FBRyxlQUFlO3lCQUNuQixDQUFDLENBQUM7d0JBRUgsc0JBQXNCO3dCQUN0QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBRWpGLHFCQUFxQjt3QkFDckIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3RGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQzlELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3BDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sa0JBQWtCLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTs0QkFDNUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNOzRCQUN6QixTQUFTLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTs0QkFDMUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3lCQUNoQixDQUFDLENBQUM7d0JBRUgsb0NBQW9DO3dCQUNwQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2xFLENBQUMsQ0FBQyxDQUFDO29CQUVILE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUN0QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDbEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFdBQVcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUVsSCxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNoSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO29CQUN4RCxDQUFDO29CQUVELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixXQUFXLFlBQVksU0FBUyxPQUFPLE9BQU8sR0FBRyxFQUFFO3dCQUM1RixXQUFXO3dCQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtxQkFDaEIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO29CQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUMxRixDQUFDO2dCQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7b0JBQ2xCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLEVBQUUsQ0FBQzt3QkFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLFdBQVcsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzt3QkFDdkcsT0FBTztvQkFDVCxDQUFDO29CQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHVCQUF1QixXQUFXLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUN2RyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDeEIsQ0FBQzt3QkFBUyxDQUFDO29CQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztvQkFDMUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBRU8sYUFBYSxDQUFDLEtBQTJCO2dCQUMvQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLENBQUM7WUFFTyxVQUFVO2dCQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ3RGLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDSCxDQUFDO1lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUE4QixTQUFTO2dCQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDckIsaURBQWlEO2dCQUNqRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUVPLG9CQUFvQjtnQkFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDL0IsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNoRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO29CQUNoRSxDQUFDO29CQUVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUM1QyxJQUFJLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzs0QkFDdEQsT0FBTzt3QkFDVCxDQUFDO3dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUN0RyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3dCQUNoRyxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFFRCx5RkFBeUY7WUFDakYsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFtQjtnQkFDOUMsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzRCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUVPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBYztnQkFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkcsT0FBTyxZQUFZO3FCQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztxQkFDakUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFFTyxpQkFBaUIsQ0FBQyxLQUFjO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUVPLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZ0MsRUFBRSxHQUFTO2dCQUNsRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixNQUFNLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUVuRixJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwQkFBMEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN4RyxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsWUFBWSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdEcsQ0FBQztnQkFFRCxPQUFPLFlBQVksQ0FBQztZQUN0QixDQUFDOzs7OytCQTlLQSxTQUFTLENBQUMscUJBQXFCLEVBQUU7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQztZQUNGLDBKQUFhLEdBQUcsNkRBOEZmOzs7OztTQXpJVSxlQUFlO0FBeU41QixNQUFNLGtCQUFtQixTQUFRLEtBQUs7SUFDcEMsWUFBWSxLQUEyQjtRQUNyQyxLQUFLLENBQUMsaUNBQWlDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0YifQ==
package/dest/metrics.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import { type L1PublishProofStats } from '@aztec/circuit-types/stats';
1
+ import type { L1PublishProofStats } from '@aztec/stdlib/stats';
2
2
  import { type Histogram, type TelemetryClient, type UpDownCounter } from '@aztec/telemetry-client';
3
3
  export declare class ProverNodeMetrics {
4
4
  readonly client: TelemetryClient;
5
+ private logger;
5
6
  proverEpochExecutionDuration: Histogram;
6
7
  provingJobDuration: Histogram;
7
8
  provingJobBlocks: Histogram;
@@ -14,10 +15,12 @@ export declare class ProverNodeMetrics {
14
15
  txCalldataGas: Histogram;
15
16
  txBlobDataGasUsed: Histogram;
16
17
  txBlobDataGasCost: Histogram;
17
- constructor(client: TelemetryClient, name?: string);
18
+ private senderBalance;
19
+ constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/foundation/log").Logger);
18
20
  recordFailedTx(): void;
19
21
  recordSubmitProof(durationMs: number, stats: L1PublishProofStats): void;
20
22
  recordProvingJob(executionTimeMs: number, totalTimeMs: number, numBlocks: number, numTxs: number): void;
23
+ recordSenderBalance(wei: bigint, senderAddress: string): void;
21
24
  private recordTx;
22
25
  }
23
26
  //# sourceMappingURL=metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;aAeA,MAAM,EAAE,eAAe;IAdnD,4BAA4B,EAAE,SAAS,CAAC;IACxC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,SAAS,CAAC;IAElC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,SAAS,CAAC;gBAED,MAAM,EAAE,eAAe,EAAE,IAAI,SAAe;IAoExE,cAAc;IAOd,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAIzD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOvG,OAAO,CAAC,QAAQ;CA6BjB"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;aAkBV,MAAM,EAAE,eAAe;IAEvC,OAAO,CAAC,MAAM;IAnBhB,4BAA4B,EAAE,SAAS,CAAC;IACxC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,SAAS,CAAC;IAElC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,SAAS,CAAC;IAE7B,OAAO,CAAC,aAAa,CAAQ;gBAGX,MAAM,EAAE,eAAe,EACvC,IAAI,SAAe,EACX,MAAM,yCAAgD;IA2EhE,cAAc;IAOd,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAIzD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOhG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAO7D,OAAO,CAAC,QAAQ;CA6BjB"}