@aztec/prover-node 0.85.0-nightly.20250422 → 0.85.0-nightly.20250424
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.
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +4 -4
- package/dest/prover-node-publisher.d.ts +0 -2
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +2 -11
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +1 -1
- package/package.json +20 -20
- package/src/factory.ts +4 -4
- package/src/prover-node-publisher.ts +2 -15
- package/src/prover-node.ts +6 -3
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,SAAS,EAA+D,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAEtE,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,EAC9C,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;CAClB,EACN,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAqEP"}
|
package/dest/factory.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createArchiver } from '@aztec/archiver';
|
|
2
2
|
import { createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
3
3
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
4
|
-
import { L1TxUtils, RollupContract, createEthereumChain,
|
|
4
|
+
import { L1TxUtils, RollupContract, createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { trySnapshotSync } from '@aztec/node-lib/actions';
|
|
7
7
|
import { createProverClient } from '@aztec/prover-client';
|
|
@@ -35,9 +35,9 @@ import { ProverNode } from './prover-node.js';
|
|
|
35
35
|
const prover = await createProverClient(config, worldStateSynchronizer, broker, telemetry);
|
|
36
36
|
const { l1RpcUrls: rpcUrls, l1ChainId: chainId, publisherPrivateKey } = config;
|
|
37
37
|
const chain = createEthereumChain(rpcUrls, chainId);
|
|
38
|
-
const
|
|
39
|
-
const rollupContract = new RollupContract(
|
|
40
|
-
const l1TxUtils = deps.l1TxUtils ?? new L1TxUtils(
|
|
38
|
+
const l1Client = createExtendedL1Client(rpcUrls, publisherPrivateKey, chain.chainInfo);
|
|
39
|
+
const rollupContract = new RollupContract(l1Client, config.l1Contracts.rollupAddress.toString());
|
|
40
|
+
const l1TxUtils = deps.l1TxUtils ?? new L1TxUtils(l1Client, log, config);
|
|
41
41
|
const publisher = deps.publisher ?? new ProverNodePublisher(config, {
|
|
42
42
|
telemetry,
|
|
43
43
|
rollupContract,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAA6B;IAE5C,SAAS,CAAC,GAAG,yCAA+C;IAE5D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACJ,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B;IAYI,iBAAiB;IAIxB;;;;;OAKG;IACI,SAAS;IAKhB,wDAAwD;IACjD,OAAO;IAIP,gBAAgB;IAIV,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,OAAO,CAAC,OAAO,CAAC;YA+CN,4BAA4B;YA+C5B,sBAAsB;IAmDpC,OAAO,CAAC,uBAAuB;cA4Bf,kBAAkB;CAGnC"}
|
|
@@ -103,23 +103,16 @@ export class ProverNodePublisher {
|
|
|
103
103
|
if (toBlock > pending) {
|
|
104
104
|
throw new Error(`Cannot submit epoch proof for ${fromBlock}-${toBlock} as pending block is ${pending}`);
|
|
105
105
|
}
|
|
106
|
-
// Check the
|
|
106
|
+
// Check the archive for the immediate block before the epoch
|
|
107
107
|
const blockLog = await this.rollupContract.getBlock(BigInt(fromBlock - 1));
|
|
108
108
|
if (publicInputs.previousArchive.root.toString() !== blockLog.archive) {
|
|
109
109
|
throw new Error(`Previous archive root mismatch: ${publicInputs.previousArchive.root.toString()} !== ${blockLog.archive}`);
|
|
110
110
|
}
|
|
111
|
-
//
|
|
112
|
-
if (blockLog.blockHash !== Fr.ZERO.toString() && publicInputs.previousBlockHash.toString() !== blockLog.blockHash) {
|
|
113
|
-
throw new Error(`Previous block hash mismatch: ${publicInputs.previousBlockHash.toString()} !== ${blockLog.blockHash}`);
|
|
114
|
-
}
|
|
115
|
-
// Check the block hash and archive for the last block in the epoch
|
|
111
|
+
// Check the archive for the last block in the epoch
|
|
116
112
|
const endBlockLog = await this.rollupContract.getBlock(BigInt(toBlock));
|
|
117
113
|
if (publicInputs.endArchive.root.toString() !== endBlockLog.archive) {
|
|
118
114
|
throw new Error(`End archive root mismatch: ${publicInputs.endArchive.root.toString()} !== ${endBlockLog.archive}`);
|
|
119
115
|
}
|
|
120
|
-
if (publicInputs.endBlockHash.toString() !== endBlockLog.blockHash) {
|
|
121
|
-
throw new Error(`End block hash mismatch: ${publicInputs.endBlockHash.toString()} !== ${endBlockLog.blockHash}`);
|
|
122
|
-
}
|
|
123
116
|
// Compare the public inputs computed by the contract with the ones injected
|
|
124
117
|
const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs(this.getSubmitEpochProofArgs(args));
|
|
125
118
|
const argsPublicInputs = [
|
|
@@ -176,8 +169,6 @@ export class ProverNodePublisher {
|
|
|
176
169
|
{
|
|
177
170
|
previousArchive: args.publicInputs.previousArchive.root.toString(),
|
|
178
171
|
endArchive: args.publicInputs.endArchive.root.toString(),
|
|
179
|
-
previousBlockHash: args.publicInputs.previousBlockHash.toString(),
|
|
180
|
-
endBlockHash: args.publicInputs.endBlockHash.toString(),
|
|
181
172
|
endTimestamp: args.publicInputs.endTimestamp.toBigInt(),
|
|
182
173
|
outHash: args.publicInputs.outHash.toString(),
|
|
183
174
|
proverId: EthAddress.fromField(args.publicInputs.proverId).toString()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|
package/dest/prover-node.js
CHANGED
|
@@ -54,7 +54,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
|
|
|
54
54
|
this.log = createLogger('prover-node');
|
|
55
55
|
this.dateProvider = new DateProvider();
|
|
56
56
|
this.jobs = new Map();
|
|
57
|
-
this.l1Metrics = new L1Metrics(telemetryClient.getMeter('ProverNodeL1Metrics'), publisher.l1TxUtils.
|
|
57
|
+
this.l1Metrics = new L1Metrics(telemetryClient.getMeter('ProverNodeL1Metrics'), publisher.l1TxUtils.client, [
|
|
58
58
|
publisher.getSenderAddress()
|
|
59
59
|
]);
|
|
60
60
|
this.options = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.85.0-nightly.
|
|
3
|
+
"version": "0.85.0-nightly.20250424",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -51,25 +51,25 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@aztec/archiver": "0.85.0-nightly.
|
|
55
|
-
"@aztec/bb-prover": "0.85.0-nightly.
|
|
56
|
-
"@aztec/blob-sink": "0.85.0-nightly.
|
|
57
|
-
"@aztec/constants": "0.85.0-nightly.
|
|
58
|
-
"@aztec/epoch-cache": "0.85.0-nightly.
|
|
59
|
-
"@aztec/ethereum": "0.85.0-nightly.
|
|
60
|
-
"@aztec/foundation": "0.85.0-nightly.
|
|
61
|
-
"@aztec/kv-store": "0.85.0-nightly.
|
|
62
|
-
"@aztec/l1-artifacts": "0.85.0-nightly.
|
|
63
|
-
"@aztec/node-lib": "0.85.0-nightly.
|
|
64
|
-
"@aztec/noir-protocol-circuits-types": "0.85.0-nightly.
|
|
65
|
-
"@aztec/p2p": "0.85.0-nightly.
|
|
66
|
-
"@aztec/protocol-contracts": "0.85.0-nightly.
|
|
67
|
-
"@aztec/prover-client": "0.85.0-nightly.
|
|
68
|
-
"@aztec/sequencer-client": "0.85.0-nightly.
|
|
69
|
-
"@aztec/simulator": "0.85.0-nightly.
|
|
70
|
-
"@aztec/stdlib": "0.85.0-nightly.
|
|
71
|
-
"@aztec/telemetry-client": "0.85.0-nightly.
|
|
72
|
-
"@aztec/world-state": "0.85.0-nightly.
|
|
54
|
+
"@aztec/archiver": "0.85.0-nightly.20250424",
|
|
55
|
+
"@aztec/bb-prover": "0.85.0-nightly.20250424",
|
|
56
|
+
"@aztec/blob-sink": "0.85.0-nightly.20250424",
|
|
57
|
+
"@aztec/constants": "0.85.0-nightly.20250424",
|
|
58
|
+
"@aztec/epoch-cache": "0.85.0-nightly.20250424",
|
|
59
|
+
"@aztec/ethereum": "0.85.0-nightly.20250424",
|
|
60
|
+
"@aztec/foundation": "0.85.0-nightly.20250424",
|
|
61
|
+
"@aztec/kv-store": "0.85.0-nightly.20250424",
|
|
62
|
+
"@aztec/l1-artifacts": "0.85.0-nightly.20250424",
|
|
63
|
+
"@aztec/node-lib": "0.85.0-nightly.20250424",
|
|
64
|
+
"@aztec/noir-protocol-circuits-types": "0.85.0-nightly.20250424",
|
|
65
|
+
"@aztec/p2p": "0.85.0-nightly.20250424",
|
|
66
|
+
"@aztec/protocol-contracts": "0.85.0-nightly.20250424",
|
|
67
|
+
"@aztec/prover-client": "0.85.0-nightly.20250424",
|
|
68
|
+
"@aztec/sequencer-client": "0.85.0-nightly.20250424",
|
|
69
|
+
"@aztec/simulator": "0.85.0-nightly.20250424",
|
|
70
|
+
"@aztec/stdlib": "0.85.0-nightly.20250424",
|
|
71
|
+
"@aztec/telemetry-client": "0.85.0-nightly.20250424",
|
|
72
|
+
"@aztec/world-state": "0.85.0-nightly.20250424",
|
|
73
73
|
"source-map-support": "^0.5.21",
|
|
74
74
|
"tslib": "^2.4.0",
|
|
75
75
|
"viem": "2.23.7"
|
package/src/factory.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Archiver, createArchiver } from '@aztec/archiver';
|
|
2
2
|
import { type BlobSinkClientInterface, createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
3
3
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
4
|
-
import { L1TxUtils, RollupContract, createEthereumChain,
|
|
4
|
+
import { L1TxUtils, RollupContract, createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
5
5
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
7
7
|
import { trySnapshotSync } from '@aztec/node-lib/actions';
|
|
@@ -60,11 +60,11 @@ export async function createProverNode(
|
|
|
60
60
|
|
|
61
61
|
const { l1RpcUrls: rpcUrls, l1ChainId: chainId, publisherPrivateKey } = config;
|
|
62
62
|
const chain = createEthereumChain(rpcUrls, chainId);
|
|
63
|
-
const
|
|
63
|
+
const l1Client = createExtendedL1Client(rpcUrls, publisherPrivateKey, chain.chainInfo);
|
|
64
64
|
|
|
65
|
-
const rollupContract = new RollupContract(
|
|
65
|
+
const rollupContract = new RollupContract(l1Client, config.l1Contracts.rollupAddress.toString());
|
|
66
66
|
|
|
67
|
-
const l1TxUtils = deps.l1TxUtils ?? new L1TxUtils(
|
|
67
|
+
const l1TxUtils = deps.l1TxUtils ?? new L1TxUtils(l1Client, log, config);
|
|
68
68
|
const publisher = deps.publisher ?? new ProverNodePublisher(config, { telemetry, rollupContract, l1TxUtils });
|
|
69
69
|
|
|
70
70
|
const epochCache = await EpochCache.create(config.l1Contracts.rollupAddress, config);
|
|
@@ -27,8 +27,6 @@ export type L1SubmitEpochProofArgs = {
|
|
|
27
27
|
epochSize: number;
|
|
28
28
|
previousArchive: Fr;
|
|
29
29
|
endArchive: Fr;
|
|
30
|
-
previousBlockHash: Fr;
|
|
31
|
-
endBlockHash: Fr;
|
|
32
30
|
endTimestamp: Fr;
|
|
33
31
|
outHash: Fr;
|
|
34
32
|
proverId: Fr;
|
|
@@ -162,30 +160,21 @@ export class ProverNodePublisher {
|
|
|
162
160
|
throw new Error(`Cannot submit epoch proof for ${fromBlock}-${toBlock} as pending block is ${pending}`);
|
|
163
161
|
}
|
|
164
162
|
|
|
165
|
-
// Check the
|
|
163
|
+
// Check the archive for the immediate block before the epoch
|
|
166
164
|
const blockLog = await this.rollupContract.getBlock(BigInt(fromBlock - 1));
|
|
167
165
|
if (publicInputs.previousArchive.root.toString() !== blockLog.archive) {
|
|
168
166
|
throw new Error(
|
|
169
167
|
`Previous archive root mismatch: ${publicInputs.previousArchive.root.toString()} !== ${blockLog.archive}`,
|
|
170
168
|
);
|
|
171
169
|
}
|
|
172
|
-
// TODO: Remove zero check once we inject the proper zero blockhash
|
|
173
|
-
if (blockLog.blockHash !== Fr.ZERO.toString() && publicInputs.previousBlockHash.toString() !== blockLog.blockHash) {
|
|
174
|
-
throw new Error(
|
|
175
|
-
`Previous block hash mismatch: ${publicInputs.previousBlockHash.toString()} !== ${blockLog.blockHash}`,
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
170
|
|
|
179
|
-
// Check the
|
|
171
|
+
// Check the archive for the last block in the epoch
|
|
180
172
|
const endBlockLog = await this.rollupContract.getBlock(BigInt(toBlock));
|
|
181
173
|
if (publicInputs.endArchive.root.toString() !== endBlockLog.archive) {
|
|
182
174
|
throw new Error(
|
|
183
175
|
`End archive root mismatch: ${publicInputs.endArchive.root.toString()} !== ${endBlockLog.archive}`,
|
|
184
176
|
);
|
|
185
177
|
}
|
|
186
|
-
if (publicInputs.endBlockHash.toString() !== endBlockLog.blockHash) {
|
|
187
|
-
throw new Error(`End block hash mismatch: ${publicInputs.endBlockHash.toString()} !== ${endBlockLog.blockHash}`);
|
|
188
|
-
}
|
|
189
178
|
|
|
190
179
|
// Compare the public inputs computed by the contract with the ones injected
|
|
191
180
|
const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs(this.getSubmitEpochProofArgs(args));
|
|
@@ -262,8 +251,6 @@ export class ProverNodePublisher {
|
|
|
262
251
|
{
|
|
263
252
|
previousArchive: args.publicInputs.previousArchive.root.toString(),
|
|
264
253
|
endArchive: args.publicInputs.endArchive.root.toString(),
|
|
265
|
-
previousBlockHash: args.publicInputs.previousBlockHash.toString(),
|
|
266
|
-
endBlockHash: args.publicInputs.endBlockHash.toString(),
|
|
267
254
|
endTimestamp: args.publicInputs.endTimestamp.toBigInt(),
|
|
268
255
|
outHash: args.publicInputs.outHash.toString(),
|
|
269
256
|
proverId: EthAddress.fromField(args.publicInputs.proverId).toString(),
|
package/src/prover-node.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ViemPublicClient } from '@aztec/ethereum';
|
|
1
2
|
import { compact } from '@aztec/foundation/collection';
|
|
2
3
|
import { memoize } from '@aztec/foundation/decorators';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -80,9 +81,11 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable
|
|
|
80
81
|
options: Partial<ProverNodeOptions> = {},
|
|
81
82
|
protected readonly telemetryClient: TelemetryClient = getTelemetryClient(),
|
|
82
83
|
) {
|
|
83
|
-
this.l1Metrics = new L1Metrics(
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
this.l1Metrics = new L1Metrics(
|
|
85
|
+
telemetryClient.getMeter('ProverNodeL1Metrics'),
|
|
86
|
+
publisher.l1TxUtils.client as unknown as ViemPublicClient,
|
|
87
|
+
[publisher.getSenderAddress()],
|
|
88
|
+
);
|
|
86
89
|
|
|
87
90
|
this.options = {
|
|
88
91
|
pollingIntervalMs: 1_000,
|