@aztec-labs/prover-node 6.0.0-nightly.20260922 → 6.0.0-rc.1
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/actions/rerun-epoch-proving-job.js +4 -2
- package/dest/factory.d.ts +1 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +1 -1
- package/dest/job/checkpoint-prover.d.ts +5 -4
- package/dest/job/checkpoint-prover.d.ts.map +1 -1
- package/dest/job/checkpoint-prover.js +2 -2
- package/dest/job/epoch-proving-job-data.d.ts +4 -3
- package/dest/job/epoch-proving-job-data.d.ts.map +1 -1
- package/dest/job/epoch-proving-job-data.js +9 -5
- package/dest/job/epoch-session.d.ts +1 -1
- package/dest/job/epoch-session.d.ts.map +1 -1
- package/dest/job/epoch-session.js +5 -3
- package/dest/proof-publishing-service.d.ts +3 -3
- package/dest/proof-publishing-service.d.ts.map +1 -1
- package/dest/prover-node-publisher.d.ts +4 -4
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +10 -3
- package/dest/prover-node.js +3 -3
- package/dest/session-manager.d.ts +2 -2
- package/dest/session-manager.d.ts.map +1 -1
- package/dest/session-manager.js +2 -1
- package/package.json +21 -21
- package/src/actions/rerun-epoch-proving-job.ts +6 -3
- package/src/factory.ts +1 -0
- package/src/job/checkpoint-prover.ts +6 -4
- package/src/job/epoch-proving-job-data.ts +15 -7
- package/src/job/epoch-session.ts +5 -3
- package/src/proof-publishing-service.ts +2 -2
- package/src/prover-node-publisher.ts +25 -13
- package/src/prover-node.ts +3 -3
- package/src/session-manager.ts +2 -2
|
@@ -71,6 +71,7 @@ import { createAndStartProvingBroker } from '@aztec-labs/prover-client/broker';
|
|
|
71
71
|
import { getLastSiblingPath } from '@aztec-labs/prover-client/helpers';
|
|
72
72
|
import { ChonkCache } from '@aztec-labs/prover-client/orchestrator';
|
|
73
73
|
import { AvmSimulatorPool, PublicProcessorFactory } from '@aztec-labs/simulator/server';
|
|
74
|
+
import { CommitteeAttestationsAndSigners } from '@aztec-labs/stdlib/block';
|
|
74
75
|
import { getEpochAtSlot, getSlotRangeForEpoch } from '@aztec-labs/stdlib/epoch-helpers';
|
|
75
76
|
import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
76
77
|
import { getTelemetryClient } from '@aztec-labs/telemetry-client';
|
|
@@ -212,11 +213,12 @@ import { ProverNodeJobMetrics } from '../metrics.js';
|
|
|
212
213
|
const previousInboxRollingHash = index === 0 ? jobData.previousInboxRollingHash : jobData.checkpoints[index - 1].header.inboxRollingHash;
|
|
213
214
|
const l1ToL2Messages = jobData.l1ToL2Messages[checkpoint.number] ?? [];
|
|
214
215
|
const previousArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, worldState.getSnapshot(BlockNumber(checkpoint.blocks[0].number - 1)));
|
|
215
|
-
const
|
|
216
|
+
const isLastCheckpoint = checkpoint.number === jobData.checkpoints.at(-1).number;
|
|
217
|
+
const verbatimAttestations = isLastCheckpoint ? jobData.verbatimAttestations : CommitteeAttestationsAndSigners.packAttestations([]);
|
|
216
218
|
return new CheckpointProver({
|
|
217
219
|
checkpoint,
|
|
218
220
|
epochNumber: jobData.epochNumber,
|
|
219
|
-
|
|
221
|
+
verbatimAttestations,
|
|
220
222
|
previousBlockHeader,
|
|
221
223
|
l1ToL2Messages,
|
|
222
224
|
previousInboxRollingHash,
|
package/dest/factory.d.ts
CHANGED
|
@@ -33,4 +33,4 @@ export type ProverNodeDeps = {
|
|
|
33
33
|
};
|
|
34
34
|
/** Creates a new prover node subsystem given a config and dependencies */
|
|
35
35
|
export declare function createProverNode(userConfig: SpecificProverNodeConfig & ProverConfig & ProverClientUserConfig & ProverPublisherConfig & ProverTxSenderConfig, deps: ProverNodeDeps): Promise<ProverNode>;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSW5FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUc3RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQTJCLEtBQUssc0JBQXNCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFckgsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssb0JBQW9CLEVBRTFCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLHNCQUFzQixFQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBYSxLQUFLLGVBQWUsRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUduRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDNUIsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBQzFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFCLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUN0QixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsU0FBUyxFQUFFO1FBQUUsYUFBYSxJQUFJLFdBQVcsQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMsZUFBZSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ2xDLGlGQUFpRjtJQUNqRixZQUFZLEVBQUUsWUFBWSxDQUFDO0NBQzVCLENBQUM7QUFFRiwwRUFBMEU7QUFDMUUsd0JBQXNCLGdCQUFnQixDQUNwQyxVQUFVLEVBQUUsd0JBQXdCLEdBQ2xDLFlBQVksR0FDWixzQkFBc0IsR0FDdEIscUJBQXFCLEdBQ3JCLG9CQUFvQixFQUN0QixJQUFJLEVBQUUsY0FBYyx1QkFtSXJCIn0=
|
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,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAA2B,KAAK,sBAAsB,EAAsB,MAAM,2BAA2B,CAAC;AAErH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAE1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,8BAA8B,CAAC;AAGnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE;QAAE,aAAa,IAAI,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iFAAiF;IACjF,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,wBAAwB,GAClC,YAAY,GACZ,sBAAsB,GACtB,qBAAqB,GACrB,oBAAoB,EACtB,IAAI,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAA2B,KAAK,sBAAsB,EAAsB,MAAM,2BAA2B,CAAC;AAErH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAE1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAa,KAAK,eAAe,EAAsB,MAAM,8BAA8B,CAAC;AAGnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE;QAAE,aAAa,IAAI,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iFAAiF;IACjF,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,wBAAwB,GAClC,YAAY,GACZ,sBAAsB,GACtB,qBAAqB,GACrB,oBAAoB,EACtB,IAAI,EAAE,cAAc,uBAmIrB"}
|
package/dest/factory.js
CHANGED
|
@@ -98,7 +98,7 @@ import { ProverPublisherFactory } from './prover-publisher-factory.js';
|
|
|
98
98
|
const proverNodeConfig = {
|
|
99
99
|
...pick(config, 'proverNodeMaxPendingJobs', 'proverNodeMaxParallelBlocksPerEpoch', 'proverNodePollingIntervalMs', 'proverNodeEpochProvingDelayMs', 'txGatheringMaxParallelRequests', 'txGatheringIntervalMs', 'txGatheringTimeoutMs', 'proverNodeFailedEpochStore', 'proverNodeDisableProofPublish', 'dataDirectory', 'l1ChainId', 'rollupVersion')
|
|
100
100
|
};
|
|
101
|
-
const l1Metrics = new L1Metrics(telemetry.getMeter('ProverNodeL1Metrics'), publicClient, l1TxUtils.map((utils)=>utils.getSenderAddress()));
|
|
101
|
+
const l1Metrics = new L1Metrics(telemetry.getMeter('ProverNodeL1Metrics'), publicClient, l1TxUtils.map((utils)=>utils.getSenderAddress()), 'prover');
|
|
102
102
|
// Extract the shared delayer from the first L1TxUtils instance (all instances share the same delayer)
|
|
103
103
|
const delayer = l1TxUtils[0]?.delayer;
|
|
104
104
|
return new ProverNode(prover, publisherFactory, archiver, archiver, archiver, worldStateSynchronizer, p2pClient, rollupContract, l1Metrics, deps.avmSimulator, proverNodeConfig, telemetry, delayer, dateProvider);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ARCHIVE_HEIGHT } from '@aztec-labs/constants';
|
|
2
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
2
3
|
import { type EpochNumber, type SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
3
4
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
4
5
|
import type { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
@@ -8,7 +9,6 @@ import { type DateProvider } from '@aztec-labs/foundation/timer';
|
|
|
8
9
|
import type { EpochProverFactory } from '@aztec-labs/prover-client';
|
|
9
10
|
import type { CheckpointSubTreeProofs, ChonkCache } from '@aztec-labs/prover-client/orchestrator';
|
|
10
11
|
import type { PublicProcessorFactory } from '@aztec-labs/simulator/server';
|
|
11
|
-
import type { CommitteeAttestation } from '@aztec-labs/stdlib/block';
|
|
12
12
|
import type { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
13
13
|
import type { ForkMerkleTreeOperations, ITxProvider } from '@aztec-labs/stdlib/interfaces/server';
|
|
14
14
|
import type { BlockHeader, Tx } from '@aztec-labs/stdlib/tx';
|
|
@@ -51,7 +51,8 @@ export type CheckpointProverArgs = {
|
|
|
51
51
|
checkpoint: Checkpoint;
|
|
52
52
|
/** Epoch the checkpoint belongs to (derivable from slot + L1 constants; cached at register time). */
|
|
53
53
|
epochNumber: EpochNumber;
|
|
54
|
-
attestations
|
|
54
|
+
/** The packed attestations tuple exactly as posted to L1; what an epoch proof submission has to reproduce. */
|
|
55
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
55
56
|
previousBlockHeader: BlockHeader;
|
|
56
57
|
l1ToL2Messages: Fr[];
|
|
57
58
|
/** Inbox rolling hash of the previous checkpoint (this checkpoint's chain start); genesis is zero. */
|
|
@@ -85,7 +86,7 @@ export declare class CheckpointProver {
|
|
|
85
86
|
readonly checkpoint: Checkpoint;
|
|
86
87
|
readonly epochNumber: EpochNumber;
|
|
87
88
|
readonly slotNumber: SlotNumber;
|
|
88
|
-
readonly
|
|
89
|
+
readonly verbatimAttestations: ViemCommitteeAttestations;
|
|
89
90
|
readonly previousBlockHeader: BlockHeader;
|
|
90
91
|
readonly l1ToL2Messages: Fr[];
|
|
91
92
|
readonly previousInboxRollingHash: Fr;
|
|
@@ -166,4 +167,4 @@ export declare class CheckpointProver {
|
|
|
166
167
|
private processTxs;
|
|
167
168
|
private createFork;
|
|
168
169
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qb2IvY2hlY2twb2ludC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQWUsS0FBSyxXQUFXLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFTLE1BQU0sOEJBQThCLENBQUM7QUFHeEUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFFVix1QkFBdUIsRUFDdkIsVUFBVSxFQUNYLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHNUYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHbEcsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFlLEVBQUUsRUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRWxGLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-prover.d.ts","sourceRoot":"","sources":["../../src/job/checkpoint-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAEV,uBAAuB,EACvB,UAAU,EACX,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint-prover.d.ts","sourceRoot":"","sources":["../../src/job/checkpoint-prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
|
32
32
|
checkpoint;
|
|
33
33
|
epochNumber;
|
|
34
34
|
slotNumber;
|
|
35
|
-
|
|
35
|
+
verbatimAttestations;
|
|
36
36
|
previousBlockHeader;
|
|
37
37
|
l1ToL2Messages;
|
|
38
38
|
previousInboxRollingHash;
|
|
@@ -62,7 +62,7 @@ import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
|
62
62
|
this.checkpoint = args.checkpoint;
|
|
63
63
|
this.epochNumber = args.epochNumber;
|
|
64
64
|
this.slotNumber = args.checkpoint.header.slotNumber;
|
|
65
|
-
this.
|
|
65
|
+
this.verbatimAttestations = args.verbatimAttestations;
|
|
66
66
|
this.previousBlockHeader = args.previousBlockHeader;
|
|
67
67
|
this.l1ToL2Messages = args.l1ToL2Messages;
|
|
68
68
|
this.previousInboxRollingHash = args.previousInboxRollingHash;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
1
2
|
import { CheckpointNumber, EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
3
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
3
|
-
import { CommitteeAttestation } from '@aztec-labs/stdlib/block';
|
|
4
4
|
import { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
5
5
|
import { BlockHeader, Tx } from '@aztec-labs/stdlib/tx';
|
|
6
6
|
/** All data from an epoch used in proving. */
|
|
@@ -12,9 +12,10 @@ export type EpochProvingJobData = {
|
|
|
12
12
|
previousBlockHeader: BlockHeader;
|
|
13
13
|
/** Inbox rolling hash of the checkpoint before the epoch's first checkpoint (its chain start); genesis is zero. */
|
|
14
14
|
previousInboxRollingHash: Fr;
|
|
15
|
-
attestations
|
|
15
|
+
/** The packed attestations tuple of the epoch's last checkpoint, as posted to L1. */
|
|
16
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
16
17
|
};
|
|
17
18
|
export declare function validateEpochProvingJobData(data: EpochProvingJobData): void;
|
|
18
19
|
export declare function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer;
|
|
19
20
|
export declare function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2ItZGF0YS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pvYi9lcG9jaC1wcm92aW5nLWpvYi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUd6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDekIsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLGNBQWMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDakMsbUhBQW1IO0lBQ25ILHdCQUF3QixFQUFFLEVBQUUsQ0FBQztJQUM3QixxRkFBcUY7SUFDckYsb0JBQW9CLEVBQUUseUJBQXlCLENBQUM7Q0FDakQsQ0FBQztBQUVGLHdCQUFnQiwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLFFBa0JwRTtBQUVELHdCQUFnQiw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEdBQUcsTUFBTSxDQTBCOUU7QUFFRCx3QkFBZ0IsOEJBQThCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxtQkFBbUIsQ0FnQy9FIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-job-data.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job-data.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"epoch-proving-job-data.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAExD,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,mBAAmB,EAAE,WAAW,CAAC;IACjC,mHAAmH;IACnH,wBAAwB,EAAE,EAAE,CAAC;IAC7B,qFAAqF;IACrF,oBAAoB,EAAE,yBAAyB,CAAC;CACjD,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,QAkBpE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAgC/E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CheckpointNumber, EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
3
3
|
import { BufferReader, serializeToBuffer } from '@aztec-labs/foundation/serialize';
|
|
4
|
-
import {
|
|
4
|
+
import { bufferToHex, hexToBuffer } from '@aztec-labs/foundation/string';
|
|
5
5
|
import { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
6
6
|
import { BlockHeader, Tx } from '@aztec-labs/stdlib/tx';
|
|
7
7
|
export function validateEpochProvingJobData(data) {
|
|
@@ -27,8 +27,9 @@ export function serializeEpochProvingJobData(data) {
|
|
|
27
27
|
messages.length,
|
|
28
28
|
...messages
|
|
29
29
|
]);
|
|
30
|
-
const
|
|
31
|
-
|
|
30
|
+
const signatureIndices = hexToBuffer(data.verbatimAttestations.signatureIndices);
|
|
31
|
+
const signaturesOrAddresses = hexToBuffer(data.verbatimAttestations.signaturesOrAddresses);
|
|
32
|
+
return serializeToBuffer(data.epochNumber, data.previousBlockHeader, data.previousInboxRollingHash, checkpoints.length, ...checkpoints, txs.length, ...txs, l1ToL2Messages.length, ...l1ToL2Messages, signatureIndices.length, signatureIndices, signaturesOrAddresses.length, signaturesOrAddresses);
|
|
32
33
|
}
|
|
33
34
|
export function deserializeEpochProvingJobData(buf) {
|
|
34
35
|
const reader = BufferReader.asReader(buf);
|
|
@@ -44,7 +45,10 @@ export function deserializeEpochProvingJobData(buf) {
|
|
|
44
45
|
const messages = reader.readVector(Fr);
|
|
45
46
|
l1ToL2Messages[checkpointNumber] = messages;
|
|
46
47
|
}
|
|
47
|
-
const
|
|
48
|
+
const verbatimAttestations = {
|
|
49
|
+
signatureIndices: bufferToHex(reader.readBuffer()),
|
|
50
|
+
signaturesOrAddresses: bufferToHex(reader.readBuffer())
|
|
51
|
+
};
|
|
48
52
|
const txs = new Map(txArray.map((tx)=>[
|
|
49
53
|
tx.getTxHash().toString(),
|
|
50
54
|
tx
|
|
@@ -56,6 +60,6 @@ export function deserializeEpochProvingJobData(buf) {
|
|
|
56
60
|
checkpoints,
|
|
57
61
|
txs,
|
|
58
62
|
l1ToL2Messages,
|
|
59
|
-
|
|
63
|
+
verbatimAttestations
|
|
60
64
|
};
|
|
61
65
|
}
|
|
@@ -157,4 +157,4 @@ export declare class EpochSession implements Traceable {
|
|
|
157
157
|
protected handleDeadline(): Promise<void>;
|
|
158
158
|
private toTopTreeHooks;
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtc2Vzc2lvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pvYi9lcG9jaC1zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsS0FBSyxXQUFXLEVBQ2hCLEtBQUssVUFBVSxFQUNoQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFnQyxNQUFNLHNDQUFzQyxDQUFDO0FBQy9HLE9BQU8sRUFBYyxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBR2xHLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFvQyxLQUFLLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhGLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0FBRXJDLHdGQUFzRjtBQUN0RixNQUFNLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCLElBQUksRUFBRSxXQUFXLENBQUM7SUFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUN6QixRQUFRLEVBQUUs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-session.d.ts","sourceRoot":"","sources":["../../src/job/epoch-session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"epoch-session.d.ts","sourceRoot":"","sources":["../../src/job/epoch-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -624,10 +624,12 @@ _dec = trackSpan('EpochSession.start', function() {
|
|
|
624
624
|
await this.submitProof(proof, fromCheckpoint, toCheckpoint, count, timer);
|
|
625
625
|
}
|
|
626
626
|
async submitProof(proof, fromCheckpoint, toCheckpoint, checkpointCount, timer) {
|
|
627
|
-
// Attestations come from the highest-numbered registered checkpoint — that's the one
|
|
628
|
-
//
|
|
627
|
+
// Attestations come from the highest-numbered registered checkpoint — that's the one whose attestations
|
|
628
|
+
// the L1 contract checks for the proven range. They go out as the tuple that was posted to L1, byte for
|
|
629
|
+
// byte: the rollup checks the submission against the `attestationsHash` it stored at propose time, and
|
|
630
|
+
// repacking the decoded attestations does not reproduce those bytes.
|
|
629
631
|
const lastCheckpoint = this.checkpoints[this.checkpoints.length - 1];
|
|
630
|
-
const attestations = lastCheckpoint.
|
|
632
|
+
const attestations = lastCheckpoint.verbatimAttestations;
|
|
631
633
|
const epochSizeBlocks = this.checkpoints.reduce((acc, c)=>acc + c.checkpoint.blocks.length, 0);
|
|
632
634
|
const epochSizeTxs = this.checkpoints.reduce((acc, c)=>acc + c.checkpoint.blocks.reduce((bAcc, block)=>bAcc + block.body.txEffects.length, 0), 0);
|
|
633
635
|
// Reflect the publish phase. Guard against a terminal state set concurrently by cancel() — the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BatchedBlob } from '@aztec-labs/blob-lib';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
3
3
|
import { BlockNumber, type CheckpointNumber, type EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
4
4
|
import { type LoggerBindings } from '@aztec-labs/foundation/log';
|
|
5
5
|
import { SerialQueue } from '@aztec-labs/foundation/queue';
|
|
@@ -41,7 +41,7 @@ export type PublishCandidate = {
|
|
|
41
41
|
publicInputs: RootRollupPublicInputs;
|
|
42
42
|
proof: Proof;
|
|
43
43
|
batchedBlobInputs: BatchedBlob;
|
|
44
|
-
attestations:
|
|
44
|
+
attestations: ViemCommitteeAttestations;
|
|
45
45
|
/** Committee-attested checkpoint headers for the range, supplying the L1-verified fee recipient/value. */
|
|
46
46
|
headers: CheckpointHeader[];
|
|
47
47
|
};
|
|
@@ -162,4 +162,4 @@ export declare class ProofPublishingService {
|
|
|
162
162
|
protected handleExpiry(candidateId: string): void;
|
|
163
163
|
private readProvenBlockNumber;
|
|
164
164
|
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2YtcHVibGlzaGluZy1zZXJ2aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvb2YtcHVibGlzaGluZy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLGdCQUFnQixFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUcsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSx1RkFBdUY7QUFDdkYsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLHNGQUFzRjtJQUN0RixFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUNuQjs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDekIsK0NBQStDO0lBQy9DLFVBQVUsRUFBRSxXQUFX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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof-publishing-service.d.ts","sourceRoot":"","sources":["../src/proof-publishing-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"proof-publishing-service.d.ts","sourceRoot":"","sources":["../src/proof-publishing-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BatchedBlob } from '@aztec-labs/blob-lib';
|
|
2
|
-
import type
|
|
2
|
+
import { type RollupContract, type ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
3
3
|
import type { L1TxUtils } from '@aztec-labs/ethereum/l1-tx-utils';
|
|
4
4
|
import { CheckpointNumber, EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
5
5
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
@@ -47,7 +47,7 @@ export declare class ProverNodePublisher {
|
|
|
47
47
|
publicInputs: RootRollupPublicInputs;
|
|
48
48
|
proof: Proof;
|
|
49
49
|
batchedBlobInputs: BatchedBlob;
|
|
50
|
-
attestations:
|
|
50
|
+
attestations: ViemCommitteeAttestations;
|
|
51
51
|
headers: CheckpointHeader[];
|
|
52
52
|
/** Whether the range covers the whole epoch. Governs whether an already-overtaken proof is still worth sending. */
|
|
53
53
|
kind: 'full' | 'partial';
|
|
@@ -67,7 +67,7 @@ export declare class ProverNodePublisher {
|
|
|
67
67
|
publicInputs: RootRollupPublicInputs;
|
|
68
68
|
proof: Proof;
|
|
69
69
|
batchedBlobInputs: BatchedBlob;
|
|
70
|
-
attestations:
|
|
70
|
+
attestations: ViemCommitteeAttestations;
|
|
71
71
|
headers: CheckpointHeader[];
|
|
72
72
|
/** Whether the range covers the whole epoch. Governs whether an already-overtaken proof is still worth sending. */
|
|
73
73
|
kind: 'full' | 'partial';
|
|
@@ -77,4 +77,4 @@ export declare class ProverNodePublisher {
|
|
|
77
77
|
private getEpochProofPublicInputsArgs;
|
|
78
78
|
private getSubmitEpochProofArgs;
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUtcHVibGlzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUtcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQThCLE1BQU0sc0JBQXNCLENBQUM7QUFFL0UsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLHlCQUF5QixFQUUvQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUF3RSxNQUFNLE1BQU0sQ0FBQztBQUl0RyxzRUFBc0U7QUFDdEUsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxFQUFFLEVBQUUsQ0FBQztJQUNwQixVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQ2YsWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLEtBQUssRUFBRSxLQUFLLENBQUM7Q0FDZCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLHNCQUFzQixHQUFHLFdBQVcsR0FBRyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7QUFFbEYscUJBQWEsbUJBQW1CO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQTZCO0lBRTVDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRXRCLFNBQVMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBRXpDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUM7SUFFckMsU0FBZ0IsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUVyQyxZQUNFLE1BQU0sRUFBRSxjQUFjLEdBQUcsZUFBZSxFQUN4QyxJQUFJLEVBQUU7UUFDSixjQUFjLEVBQUUsY0FBYyxDQUFDO1FBQy9CLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDckIscUJBQXFCLENBQUMsRUFBRSxVQUFVLENBQUM7UUFDbkMsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0tBQzdCLEVBQ0QsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQVUxQjtJQUVNLGlCQUFpQixtQkFFdkI7SUFFTSxnQkFBZ0IsZUFFdEI7SUFFWSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7UUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN6QixjQUFjLEVBQUUsZ0JBQWdCLENBQUM7UUFDakMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO1FBQy9CLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztRQUNyQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2IsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLFlBQVksRUFBRSx5QkFBeUIsQ0FBQztRQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixtSEFBbUg7UUFDbkgsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDekIsbUdBQW1HO1FBQ25HLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQztLQUNqQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQTREbEM7WUFFYSw0QkFBNEI7SUF3RjFDOzs7O09BSUc7SUFDVSwyQkFBMkIsQ0FBQyxJQUFJLEVBQUU7UUFDN0MsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN6QixjQUFjLEVBQUUsZ0JBQWdCLENBQUM7UUFDakMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO1FBQy9CLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztRQUNyQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2IsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLFlBQVksRUFBRSx5QkFBeUIsQ0FBQztRQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixtSEFBbUg7UUFDbkgsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7S0FDMUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBc0NoQjtJQUVELE9BQU8sQ0FBQyw4QkFBOEI7WUFtQnhCLHNCQUFzQjtJQW9EcEMsT0FBTyxDQUFDLDZCQUE2QjtJQXlCckMsT0FBTyxDQUFDLHVCQUF1QjtDQTRCaEMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8B,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RollupAbi } from '@aztec-foundation/l1-artifacts';
|
|
2
2
|
import { getEthBlobEvaluationInputs } from '@aztec-labs/blob-lib';
|
|
3
3
|
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec-labs/constants';
|
|
4
|
+
import { computeAttestationsHash } from '@aztec-labs/ethereum/contracts';
|
|
4
5
|
import { CheckpointNumber } from '@aztec-labs/foundation/branded-types';
|
|
5
6
|
import { areArraysEqual } from '@aztec-labs/foundation/collection';
|
|
6
7
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
7
8
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
8
9
|
import { createLogger } from '@aztec-labs/foundation/log';
|
|
9
10
|
import { Timer } from '@aztec-labs/foundation/timer';
|
|
10
|
-
import { CommitteeAttestation, CommitteeAttestationsAndSigners } from '@aztec-labs/stdlib/block';
|
|
11
11
|
import { getTelemetryClient } from '@aztec-labs/telemetry-client';
|
|
12
12
|
import { inspect } from 'util';
|
|
13
13
|
import { encodeFunctionData, formatEther, formatGwei } from 'viem';
|
|
@@ -91,7 +91,7 @@ export class ProverNodePublisher {
|
|
|
91
91
|
return 'failed';
|
|
92
92
|
}
|
|
93
93
|
async validateEpochProofSubmission(args) {
|
|
94
|
-
const { fromCheckpoint, toCheckpoint, publicInputs, batchedBlobInputs, kind } = args;
|
|
94
|
+
const { fromCheckpoint, toCheckpoint, publicInputs, batchedBlobInputs, attestations, kind } = args;
|
|
95
95
|
// Check that the checkpoint numbers match the expected epoch to be proven
|
|
96
96
|
const { pending, proven } = await this.rollupContract.getTips();
|
|
97
97
|
// A partial proof shorter than what is already proven earns nothing: rewards go only to provers holding
|
|
@@ -116,6 +116,13 @@ export class ProverNodePublisher {
|
|
|
116
116
|
if (!publicInputs.endArchiveRoot.equals(endCheckpointLog.archive)) {
|
|
117
117
|
throw new Error(`End archive root mismatch: ${publicInputs.endArchiveRoot.toString()} !== ${endCheckpointLog.archive.toString()}`);
|
|
118
118
|
}
|
|
119
|
+
// The rollup only checks the attestations of the last checkpoint in the range, against the hash it stored
|
|
120
|
+
// when that checkpoint was proposed. Checking it here turns a byte-level divergence into a named error
|
|
121
|
+
// instead of an opaque `Rollup__InvalidAttestations` revert once the tx is mined.
|
|
122
|
+
const submittedAttestationsHash = computeAttestationsHash(attestations);
|
|
123
|
+
if (submittedAttestationsHash !== endCheckpointLog.attestationsHash.toString()) {
|
|
124
|
+
throw new Error(`Attestations hash mismatch for checkpoint ${toCheckpoint}: ` + `${submittedAttestationsHash} !== ${endCheckpointLog.attestationsHash.toString()}`);
|
|
125
|
+
}
|
|
119
126
|
// Check the batched blob inputs from the root rollup against the batched blob computed in ts
|
|
120
127
|
const finalBlobAccumulator = batchedBlobInputs.toFinalBlobAccumulator();
|
|
121
128
|
if (!publicInputs.blobPublicInputs.equals(finalBlobAccumulator)) {
|
|
@@ -258,7 +265,7 @@ export class ProverNodePublisher {
|
|
|
258
265
|
accumulatedFees
|
|
259
266
|
})),
|
|
260
267
|
headers: argsArray[3].slice(provenPrefixLength),
|
|
261
|
-
attestations:
|
|
268
|
+
attestations: args.attestations,
|
|
262
269
|
blobInputs: argsArray[4],
|
|
263
270
|
proof: proofHex
|
|
264
271
|
};
|
package/dest/prover-node.js
CHANGED
|
@@ -632,7 +632,7 @@ import { SessionManager } from './session-manager.js';
|
|
|
632
632
|
epochNumber,
|
|
633
633
|
slotNumber: checkpoint.header.slotNumber
|
|
634
634
|
});
|
|
635
|
-
const registerData = await this.collectRegisterData(checkpoint, published
|
|
635
|
+
const registerData = await this.collectRegisterData(checkpoint, published);
|
|
636
636
|
await this.checkpointStore.addOrUpdate(checkpoint, registerData);
|
|
637
637
|
await this.sessionManager?.onCheckpointAdded(epochNumber);
|
|
638
638
|
// Tips-only mode delivers no blocks, so record one witness per checkpointed block: a reorg into the checkpoint's
|
|
@@ -645,7 +645,7 @@ import { SessionManager } from './session-manager.js';
|
|
|
645
645
|
/**
|
|
646
646
|
* Gathers register-time data for a checkpoint: previous block header, L1-to-L2 messages,
|
|
647
647
|
* and the archive sibling path.
|
|
648
|
-
*/ async collectRegisterData(checkpoint,
|
|
648
|
+
*/ async collectRegisterData(checkpoint, published) {
|
|
649
649
|
const previousBlockNumber = BlockNumber(checkpoint.blocks[0].number - 1);
|
|
650
650
|
const previousBlockHeader = await this.gatherPreviousBlockHeader(previousBlockNumber);
|
|
651
651
|
const lastBlock = checkpoint.blocks.at(-1);
|
|
@@ -658,7 +658,7 @@ import { SessionManager } from './session-manager.js';
|
|
|
658
658
|
await this.worldState.syncImmediate(lastBlock.number, lastBlockHash);
|
|
659
659
|
const previousArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, this.worldState.getSnapshot(previousBlockNumber));
|
|
660
660
|
return {
|
|
661
|
-
|
|
661
|
+
verbatimAttestations: published.verbatimAttestations,
|
|
662
662
|
previousBlockHeader,
|
|
663
663
|
l1ToL2Messages,
|
|
664
664
|
previousInboxRollingHash,
|
|
@@ -3,7 +3,7 @@ import type { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
|
3
3
|
import { type LoggerBindings } from '@aztec-labs/foundation/log';
|
|
4
4
|
import type { DateProvider } from '@aztec-labs/foundation/timer';
|
|
5
5
|
import type { EpochProverFactory } from '@aztec-labs/prover-client';
|
|
6
|
-
import type
|
|
6
|
+
import { type L2BlockSource } from '@aztec-labs/stdlib/block';
|
|
7
7
|
import type { EpochProvingJobState } from '@aztec-labs/stdlib/interfaces/server';
|
|
8
8
|
import type { CheckpointStore } from './checkpoint-store.js';
|
|
9
9
|
import { CheckpointProver } from './job/checkpoint-prover.js';
|
|
@@ -155,4 +155,4 @@ export declare class SessionManager {
|
|
|
155
155
|
private isProvenChainEncompassing;
|
|
156
156
|
private getL1Constants;
|
|
157
157
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2Vzc2lvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBbUMsS0FBSyxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVEvRixPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUNMLFlBQVksRUFDWixLQUFLLGdCQUFnQixFQUNyQixLQUFLLGlCQUFpQixFQUV0QixLQUFLLFdBQVcsRUFFakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sZ0JBQWdCLEdBQ3hCO0lBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQztJQUFDLEtBQUssRUFBRSxXQUFXLENBQUE7Q0FBRSxHQUMx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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAG5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dest/session-manager.js
CHANGED
|
@@ -2,6 +2,7 @@ import { BlockNumber } from '@aztec-labs/foundation/branded-types';
|
|
|
2
2
|
import { createLogger } from '@aztec-labs/foundation/log';
|
|
3
3
|
import { SerialQueue } from '@aztec-labs/foundation/queue';
|
|
4
4
|
import { RunningPromise } from '@aztec-labs/foundation/running-promise';
|
|
5
|
+
import { CommitteeAttestationsAndSigners } from '@aztec-labs/stdlib/block';
|
|
5
6
|
import { getEpochAtSlot, getProofSubmissionDeadlineTimestamp, getSlotRangeForEpoch } from '@aztec-labs/stdlib/epoch-helpers';
|
|
6
7
|
import { CheckpointProver } from './job/checkpoint-prover.js';
|
|
7
8
|
import { EpochSession, specKey } from './job/epoch-session.js';
|
|
@@ -365,7 +366,7 @@ import { EpochSession, specKey } from './job/epoch-session.js';
|
|
|
365
366
|
l1ToL2Messages,
|
|
366
367
|
previousBlockHeader: checkpoints[0].previousBlockHeader,
|
|
367
368
|
previousInboxRollingHash: checkpoints[0].previousInboxRollingHash,
|
|
368
|
-
|
|
369
|
+
verbatimAttestations: CommitteeAttestationsAndSigners.packAttestations([])
|
|
369
370
|
};
|
|
370
371
|
}
|
|
371
372
|
// ---------------- reconcile helpers ----------------
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/prover-node",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-rc.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -56,28 +56,28 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@aztec-foundation/l1-artifacts": "6.0.0-
|
|
60
|
-
"@aztec-labs/archiver": "6.0.0-
|
|
61
|
-
"@aztec-labs/bb-prover": "6.0.0-
|
|
62
|
-
"@aztec-labs/blob-client": "6.0.0-
|
|
63
|
-
"@aztec-labs/blob-lib": "6.0.0-
|
|
64
|
-
"@aztec-labs/constants": "6.0.0-
|
|
65
|
-
"@aztec-labs/epoch-cache": "6.0.0-
|
|
66
|
-
"@aztec-labs/ethereum": "6.0.0-
|
|
67
|
-
"@aztec-labs/foundation": "6.0.0-
|
|
68
|
-
"@aztec-labs/node-keystore": "6.0.0-
|
|
69
|
-
"@aztec-labs/node-lib": "6.0.0-
|
|
70
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-
|
|
71
|
-
"@aztec-labs/protocol-contracts": "6.0.0-
|
|
72
|
-
"@aztec-labs/prover-client": "6.0.0-
|
|
73
|
-
"@aztec-labs/sequencer-client": "6.0.0-
|
|
74
|
-
"@aztec-labs/simulator": "6.0.0-
|
|
75
|
-
"@aztec-labs/stdlib": "6.0.0-
|
|
76
|
-
"@aztec-labs/telemetry-client": "6.0.0-
|
|
77
|
-
"@aztec-labs/world-state": "6.0.0-
|
|
59
|
+
"@aztec-foundation/l1-artifacts": "6.0.0-rc.1",
|
|
60
|
+
"@aztec-labs/archiver": "6.0.0-rc.1",
|
|
61
|
+
"@aztec-labs/bb-prover": "6.0.0-rc.1",
|
|
62
|
+
"@aztec-labs/blob-client": "6.0.0-rc.1",
|
|
63
|
+
"@aztec-labs/blob-lib": "6.0.0-rc.1",
|
|
64
|
+
"@aztec-labs/constants": "6.0.0-rc.1",
|
|
65
|
+
"@aztec-labs/epoch-cache": "6.0.0-rc.1",
|
|
66
|
+
"@aztec-labs/ethereum": "6.0.0-rc.1",
|
|
67
|
+
"@aztec-labs/foundation": "6.0.0-rc.1",
|
|
68
|
+
"@aztec-labs/node-keystore": "6.0.0-rc.1",
|
|
69
|
+
"@aztec-labs/node-lib": "6.0.0-rc.1",
|
|
70
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.1",
|
|
71
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.1",
|
|
72
|
+
"@aztec-labs/prover-client": "6.0.0-rc.1",
|
|
73
|
+
"@aztec-labs/sequencer-client": "6.0.0-rc.1",
|
|
74
|
+
"@aztec-labs/simulator": "6.0.0-rc.1",
|
|
75
|
+
"@aztec-labs/stdlib": "6.0.0-rc.1",
|
|
76
|
+
"@aztec-labs/telemetry-client": "6.0.0-rc.1",
|
|
77
|
+
"@aztec-labs/world-state": "6.0.0-rc.1",
|
|
78
78
|
"source-map-support": "^0.5.21",
|
|
79
79
|
"tslib": "^2.4.0",
|
|
80
|
-
"viem": "npm:@aztec/viem@2.38.
|
|
80
|
+
"viem": "npm:@aztec/viem@2.38.3"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@jest/globals": "^30.0.0",
|
|
@@ -8,7 +8,7 @@ import { ProverBrokerConfig, createAndStartProvingBroker } from '@aztec-labs/pro
|
|
|
8
8
|
import { getLastSiblingPath } from '@aztec-labs/prover-client/helpers';
|
|
9
9
|
import { type CheckpointSubTreeProofs, ChonkCache } from '@aztec-labs/prover-client/orchestrator';
|
|
10
10
|
import { AvmSimulatorPool, PublicProcessorFactory } from '@aztec-labs/simulator/server';
|
|
11
|
-
import type
|
|
11
|
+
import { CommitteeAttestationsAndSigners, type L2Block } from '@aztec-labs/stdlib/block';
|
|
12
12
|
import { getEpochAtSlot, getSlotRangeForEpoch } from '@aztec-labs/stdlib/epoch-helpers';
|
|
13
13
|
import type { ITxProvider } from '@aztec-labs/stdlib/interfaces/server';
|
|
14
14
|
import type { DataStoreConfig } from '@aztec-labs/stdlib/kv-store';
|
|
@@ -173,12 +173,15 @@ async function buildCheckpointProver(ctx: RerunContext, index: number, log: Logg
|
|
|
173
173
|
MerkleTreeId.ARCHIVE,
|
|
174
174
|
worldState.getSnapshot(BlockNumber(checkpoint.blocks[0].number - 1)),
|
|
175
175
|
);
|
|
176
|
-
const
|
|
176
|
+
const isLastCheckpoint = checkpoint.number === jobData.checkpoints.at(-1)!.number;
|
|
177
|
+
const verbatimAttestations = isLastCheckpoint
|
|
178
|
+
? jobData.verbatimAttestations
|
|
179
|
+
: CommitteeAttestationsAndSigners.packAttestations([]);
|
|
177
180
|
return new CheckpointProver(
|
|
178
181
|
{
|
|
179
182
|
checkpoint,
|
|
180
183
|
epochNumber: jobData.epochNumber,
|
|
181
|
-
|
|
184
|
+
verbatimAttestations,
|
|
182
185
|
previousBlockHeader,
|
|
183
186
|
l1ToL2Messages,
|
|
184
187
|
previousInboxRollingHash,
|
package/src/factory.ts
CHANGED
|
@@ -167,6 +167,7 @@ export async function createProverNode(
|
|
|
167
167
|
telemetry.getMeter('ProverNodeL1Metrics'),
|
|
168
168
|
publicClient,
|
|
169
169
|
l1TxUtils.map(utils => utils.getSenderAddress()),
|
|
170
|
+
'prover',
|
|
170
171
|
);
|
|
171
172
|
|
|
172
173
|
// Extract the shared delayer from the first L1TxUtils instance (all instances share the same delayer)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ARCHIVE_HEIGHT } from '@aztec-labs/constants';
|
|
2
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
2
3
|
import { BlockNumber, type EpochNumber, type SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
3
4
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
4
5
|
import type { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
@@ -16,7 +17,7 @@ import type {
|
|
|
16
17
|
} from '@aztec-labs/prover-client/orchestrator';
|
|
17
18
|
import type { PublicProcessor, PublicProcessorFactory } from '@aztec-labs/simulator/server';
|
|
18
19
|
import { PublicSimulatorConfig } from '@aztec-labs/stdlib/avm';
|
|
19
|
-
import type {
|
|
20
|
+
import type { L2Block } from '@aztec-labs/stdlib/block';
|
|
20
21
|
import type { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
21
22
|
import type { ForkMerkleTreeOperations, ITxProvider } from '@aztec-labs/stdlib/interfaces/server';
|
|
22
23
|
import { CheckpointConstantData } from '@aztec-labs/stdlib/rollup';
|
|
@@ -65,7 +66,8 @@ export type CheckpointProverArgs = {
|
|
|
65
66
|
checkpoint: Checkpoint;
|
|
66
67
|
/** Epoch the checkpoint belongs to (derivable from slot + L1 constants; cached at register time). */
|
|
67
68
|
epochNumber: EpochNumber;
|
|
68
|
-
attestations
|
|
69
|
+
/** The packed attestations tuple exactly as posted to L1; what an epoch proof submission has to reproduce. */
|
|
70
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
69
71
|
previousBlockHeader: BlockHeader;
|
|
70
72
|
l1ToL2Messages: Fr[];
|
|
71
73
|
/** Inbox rolling hash of the previous checkpoint (this checkpoint's chain start); genesis is zero. */
|
|
@@ -99,7 +101,7 @@ export class CheckpointProver {
|
|
|
99
101
|
readonly checkpoint: Checkpoint;
|
|
100
102
|
readonly epochNumber: EpochNumber;
|
|
101
103
|
readonly slotNumber: SlotNumber;
|
|
102
|
-
readonly
|
|
104
|
+
readonly verbatimAttestations: ViemCommitteeAttestations;
|
|
103
105
|
readonly previousBlockHeader: BlockHeader;
|
|
104
106
|
readonly l1ToL2Messages: Fr[];
|
|
105
107
|
readonly previousInboxRollingHash: Fr;
|
|
@@ -137,7 +139,7 @@ export class CheckpointProver {
|
|
|
137
139
|
this.checkpoint = args.checkpoint;
|
|
138
140
|
this.epochNumber = args.epochNumber;
|
|
139
141
|
this.slotNumber = args.checkpoint.header.slotNumber;
|
|
140
|
-
this.
|
|
142
|
+
this.verbatimAttestations = args.verbatimAttestations;
|
|
141
143
|
this.previousBlockHeader = args.previousBlockHeader;
|
|
142
144
|
this.l1ToL2Messages = args.l1ToL2Messages;
|
|
143
145
|
this.previousInboxRollingHash = args.previousInboxRollingHash;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
1
2
|
import { CheckpointNumber, EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
3
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec-labs/foundation/serialize';
|
|
4
|
-
import {
|
|
5
|
+
import { bufferToHex, hexToBuffer } from '@aztec-labs/foundation/string';
|
|
5
6
|
import { Checkpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
6
7
|
import { BlockHeader, Tx } from '@aztec-labs/stdlib/tx';
|
|
7
8
|
|
|
@@ -14,7 +15,8 @@ export type EpochProvingJobData = {
|
|
|
14
15
|
previousBlockHeader: BlockHeader;
|
|
15
16
|
/** Inbox rolling hash of the checkpoint before the epoch's first checkpoint (its chain start); genesis is zero. */
|
|
16
17
|
previousInboxRollingHash: Fr;
|
|
17
|
-
attestations
|
|
18
|
+
/** The packed attestations tuple of the epoch's last checkpoint, as posted to L1. */
|
|
19
|
+
verbatimAttestations: ViemCommitteeAttestations;
|
|
18
20
|
};
|
|
19
21
|
|
|
20
22
|
export function validateEpochProvingJobData(data: EpochProvingJobData) {
|
|
@@ -45,7 +47,8 @@ export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer
|
|
|
45
47
|
messages.length,
|
|
46
48
|
...messages,
|
|
47
49
|
]);
|
|
48
|
-
const
|
|
50
|
+
const signatureIndices = hexToBuffer(data.verbatimAttestations.signatureIndices);
|
|
51
|
+
const signaturesOrAddresses = hexToBuffer(data.verbatimAttestations.signaturesOrAddresses);
|
|
49
52
|
|
|
50
53
|
return serializeToBuffer(
|
|
51
54
|
data.epochNumber,
|
|
@@ -57,8 +60,10 @@ export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer
|
|
|
57
60
|
...txs,
|
|
58
61
|
l1ToL2Messages.length,
|
|
59
62
|
...l1ToL2Messages,
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
signatureIndices.length,
|
|
64
|
+
signatureIndices,
|
|
65
|
+
signaturesOrAddresses.length,
|
|
66
|
+
signaturesOrAddresses,
|
|
62
67
|
);
|
|
63
68
|
}
|
|
64
69
|
|
|
@@ -78,7 +83,10 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData
|
|
|
78
83
|
l1ToL2Messages[checkpointNumber] = messages;
|
|
79
84
|
}
|
|
80
85
|
|
|
81
|
-
const
|
|
86
|
+
const verbatimAttestations: ViemCommitteeAttestations = {
|
|
87
|
+
signatureIndices: bufferToHex(reader.readBuffer()),
|
|
88
|
+
signaturesOrAddresses: bufferToHex(reader.readBuffer()),
|
|
89
|
+
};
|
|
82
90
|
|
|
83
91
|
const txs = new Map<string, Tx>(txArray.map(tx => [tx.getTxHash().toString(), tx]));
|
|
84
92
|
|
|
@@ -89,6 +97,6 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData
|
|
|
89
97
|
checkpoints,
|
|
90
98
|
txs,
|
|
91
99
|
l1ToL2Messages,
|
|
92
|
-
|
|
100
|
+
verbatimAttestations,
|
|
93
101
|
};
|
|
94
102
|
}
|
package/src/job/epoch-session.ts
CHANGED
|
@@ -340,10 +340,12 @@ export class EpochSession implements Traceable {
|
|
|
340
340
|
checkpointCount: number,
|
|
341
341
|
timer: Timer,
|
|
342
342
|
): Promise<void> {
|
|
343
|
-
// Attestations come from the highest-numbered registered checkpoint — that's the one
|
|
344
|
-
//
|
|
343
|
+
// Attestations come from the highest-numbered registered checkpoint — that's the one whose attestations
|
|
344
|
+
// the L1 contract checks for the proven range. They go out as the tuple that was posted to L1, byte for
|
|
345
|
+
// byte: the rollup checks the submission against the `attestationsHash` it stored at propose time, and
|
|
346
|
+
// repacking the decoded attestations does not reproduce those bytes.
|
|
345
347
|
const lastCheckpoint = this.checkpoints[this.checkpoints.length - 1];
|
|
346
|
-
const attestations = lastCheckpoint.
|
|
348
|
+
const attestations = lastCheckpoint.verbatimAttestations;
|
|
347
349
|
const epochSizeBlocks = this.checkpoints.reduce((acc, c) => acc + c.checkpoint.blocks.length, 0);
|
|
348
350
|
const epochSizeTxs = this.checkpoints.reduce(
|
|
349
351
|
(acc, c) => acc + c.checkpoint.blocks.reduce((bAcc, block) => bAcc + block.body.txEffects.length, 0),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BatchedBlob } from '@aztec-labs/blob-lib';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ViemCommitteeAttestations } from '@aztec-labs/ethereum/contracts';
|
|
3
3
|
import { BlockNumber, type CheckpointNumber, type EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
4
4
|
import { type Logger, type LoggerBindings, createLogger } from '@aztec-labs/foundation/log';
|
|
5
5
|
import { promiseWithResolvers } from '@aztec-labs/foundation/promise';
|
|
@@ -44,7 +44,7 @@ export type PublishCandidate = {
|
|
|
44
44
|
publicInputs: RootRollupPublicInputs;
|
|
45
45
|
proof: Proof;
|
|
46
46
|
batchedBlobInputs: BatchedBlob;
|
|
47
|
-
attestations:
|
|
47
|
+
attestations: ViemCommitteeAttestations;
|
|
48
48
|
/** Committee-attested checkpoint headers for the range, supplying the L1-verified fee recipient/value. */
|
|
49
49
|
headers: CheckpointHeader[];
|
|
50
50
|
};
|
|
@@ -2,7 +2,11 @@ import { RollupAbi } from '@aztec-foundation/l1-artifacts';
|
|
|
2
2
|
|
|
3
3
|
import { BatchedBlob, getEthBlobEvaluationInputs } from '@aztec-labs/blob-lib';
|
|
4
4
|
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec-labs/constants';
|
|
5
|
-
import
|
|
5
|
+
import {
|
|
6
|
+
type RollupContract,
|
|
7
|
+
type ViemCommitteeAttestations,
|
|
8
|
+
computeAttestationsHash,
|
|
9
|
+
} from '@aztec-labs/ethereum/contracts';
|
|
6
10
|
import type { L1TxUtils } from '@aztec-labs/ethereum/l1-tx-utils';
|
|
7
11
|
import { CheckpointNumber, EpochNumber } from '@aztec-labs/foundation/branded-types';
|
|
8
12
|
import { areArraysEqual } from '@aztec-labs/foundation/collection';
|
|
@@ -11,7 +15,6 @@ import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
|
11
15
|
import { type Logger, type LoggerBindings, createLogger } from '@aztec-labs/foundation/log';
|
|
12
16
|
import { Timer } from '@aztec-labs/foundation/timer';
|
|
13
17
|
import type { PublisherConfig, TxSenderConfig } from '@aztec-labs/sequencer-client';
|
|
14
|
-
import { CommitteeAttestation, CommitteeAttestationsAndSigners } from '@aztec-labs/stdlib/block';
|
|
15
18
|
import type { Proof } from '@aztec-labs/stdlib/proofs';
|
|
16
19
|
import type { CheckpointHeader, RootRollupPublicInputs } from '@aztec-labs/stdlib/rollup';
|
|
17
20
|
import type { L1PublishProofStats } from '@aztec-labs/stdlib/stats';
|
|
@@ -85,7 +88,7 @@ export class ProverNodePublisher {
|
|
|
85
88
|
publicInputs: RootRollupPublicInputs;
|
|
86
89
|
proof: Proof;
|
|
87
90
|
batchedBlobInputs: BatchedBlob;
|
|
88
|
-
attestations:
|
|
91
|
+
attestations: ViemCommitteeAttestations;
|
|
89
92
|
headers: CheckpointHeader[];
|
|
90
93
|
/** Whether the range covers the whole epoch. Governs whether an already-overtaken proof is still worth sending. */
|
|
91
94
|
kind: 'full' | 'partial';
|
|
@@ -159,11 +162,11 @@ export class ProverNodePublisher {
|
|
|
159
162
|
publicInputs: RootRollupPublicInputs;
|
|
160
163
|
proof: Proof;
|
|
161
164
|
batchedBlobInputs: BatchedBlob;
|
|
162
|
-
attestations:
|
|
165
|
+
attestations: ViemCommitteeAttestations;
|
|
163
166
|
headers: CheckpointHeader[];
|
|
164
167
|
kind: 'full' | 'partial';
|
|
165
168
|
}): Promise<number> {
|
|
166
|
-
const { fromCheckpoint, toCheckpoint, publicInputs, batchedBlobInputs, kind } = args;
|
|
169
|
+
const { fromCheckpoint, toCheckpoint, publicInputs, batchedBlobInputs, attestations, kind } = args;
|
|
167
170
|
|
|
168
171
|
// Check that the checkpoint numbers match the expected epoch to be proven
|
|
169
172
|
const { pending, proven } = await this.rollupContract.getTips();
|
|
@@ -200,6 +203,17 @@ export class ProverNodePublisher {
|
|
|
200
203
|
);
|
|
201
204
|
}
|
|
202
205
|
|
|
206
|
+
// The rollup only checks the attestations of the last checkpoint in the range, against the hash it stored
|
|
207
|
+
// when that checkpoint was proposed. Checking it here turns a byte-level divergence into a named error
|
|
208
|
+
// instead of an opaque `Rollup__InvalidAttestations` revert once the tx is mined.
|
|
209
|
+
const submittedAttestationsHash = computeAttestationsHash(attestations);
|
|
210
|
+
if (submittedAttestationsHash !== endCheckpointLog.attestationsHash.toString()) {
|
|
211
|
+
throw new Error(
|
|
212
|
+
`Attestations hash mismatch for checkpoint ${toCheckpoint}: ` +
|
|
213
|
+
`${submittedAttestationsHash} !== ${endCheckpointLog.attestationsHash.toString()}`,
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
|
|
203
217
|
// Check the batched blob inputs from the root rollup against the batched blob computed in ts
|
|
204
218
|
const finalBlobAccumulator = batchedBlobInputs.toFinalBlobAccumulator();
|
|
205
219
|
if (!publicInputs.blobPublicInputs.equals(finalBlobAccumulator)) {
|
|
@@ -242,7 +256,7 @@ export class ProverNodePublisher {
|
|
|
242
256
|
publicInputs: RootRollupPublicInputs;
|
|
243
257
|
proof: Proof;
|
|
244
258
|
batchedBlobInputs: BatchedBlob;
|
|
245
|
-
attestations:
|
|
259
|
+
attestations: ViemCommitteeAttestations;
|
|
246
260
|
headers: CheckpointHeader[];
|
|
247
261
|
/** Whether the range covers the whole epoch. Governs whether an already-overtaken proof is still worth sending. */
|
|
248
262
|
kind: 'full' | 'partial';
|
|
@@ -293,7 +307,7 @@ export class ProverNodePublisher {
|
|
|
293
307
|
publicInputs: RootRollupPublicInputs;
|
|
294
308
|
proof: Proof;
|
|
295
309
|
batchedBlobInputs: BatchedBlob;
|
|
296
|
-
attestations:
|
|
310
|
+
attestations: ViemCommitteeAttestations;
|
|
297
311
|
headers: CheckpointHeader[];
|
|
298
312
|
},
|
|
299
313
|
provenPrefixLength: number,
|
|
@@ -313,7 +327,7 @@ export class ProverNodePublisher {
|
|
|
313
327
|
publicInputs: RootRollupPublicInputs;
|
|
314
328
|
proof: Proof;
|
|
315
329
|
batchedBlobInputs: BatchedBlob;
|
|
316
|
-
attestations:
|
|
330
|
+
attestations: ViemCommitteeAttestations;
|
|
317
331
|
headers: CheckpointHeader[];
|
|
318
332
|
},
|
|
319
333
|
provenPrefixLength: number,
|
|
@@ -362,7 +376,7 @@ export class ProverNodePublisher {
|
|
|
362
376
|
toCheckpoint: CheckpointNumber;
|
|
363
377
|
publicInputs: RootRollupPublicInputs;
|
|
364
378
|
batchedBlobInputs: BatchedBlob;
|
|
365
|
-
attestations:
|
|
379
|
+
attestations: ViemCommitteeAttestations;
|
|
366
380
|
headers: CheckpointHeader[];
|
|
367
381
|
}) {
|
|
368
382
|
// Returns arguments for EpochProofLib.sol -> getEpochProofPublicInputs()
|
|
@@ -389,7 +403,7 @@ export class ProverNodePublisher {
|
|
|
389
403
|
publicInputs: RootRollupPublicInputs;
|
|
390
404
|
proof: Proof;
|
|
391
405
|
batchedBlobInputs: BatchedBlob;
|
|
392
|
-
attestations:
|
|
406
|
+
attestations: ViemCommitteeAttestations;
|
|
393
407
|
headers: CheckpointHeader[];
|
|
394
408
|
},
|
|
395
409
|
provenPrefixLength: number,
|
|
@@ -405,9 +419,7 @@ export class ProverNodePublisher {
|
|
|
405
419
|
.slice(0, provenPrefixLength)
|
|
406
420
|
.map(({ coinbase, accumulatedFees }) => ({ coinbase, accumulatedFees })),
|
|
407
421
|
headers: argsArray[3].slice(provenPrefixLength),
|
|
408
|
-
attestations:
|
|
409
|
-
args.attestations.map(a => CommitteeAttestation.fromViem(a)),
|
|
410
|
-
),
|
|
422
|
+
attestations: args.attestations,
|
|
411
423
|
blobInputs: argsArray[4],
|
|
412
424
|
proof: proofHex,
|
|
413
425
|
};
|
package/src/prover-node.ts
CHANGED
|
@@ -331,7 +331,7 @@ export class ProverNode implements L2BlockStreamEventHandler, ProverNodeApi, Tra
|
|
|
331
331
|
slotNumber: checkpoint.header.slotNumber,
|
|
332
332
|
});
|
|
333
333
|
|
|
334
|
-
const registerData = await this.collectRegisterData(checkpoint, published
|
|
334
|
+
const registerData = await this.collectRegisterData(checkpoint, published);
|
|
335
335
|
await this.checkpointStore.addOrUpdate(checkpoint, registerData);
|
|
336
336
|
await this.sessionManager?.onCheckpointAdded(epochNumber);
|
|
337
337
|
|
|
@@ -350,7 +350,7 @@ export class ProverNode implements L2BlockStreamEventHandler, ProverNodeApi, Tra
|
|
|
350
350
|
*/
|
|
351
351
|
private async collectRegisterData(
|
|
352
352
|
checkpoint: Checkpoint,
|
|
353
|
-
|
|
353
|
+
published: Pick<PublishedCheckpoint, 'attestations' | 'verbatimAttestations'>,
|
|
354
354
|
): Promise<RegisterCheckpointData> {
|
|
355
355
|
const previousBlockNumber = BlockNumber(checkpoint.blocks[0].number - 1);
|
|
356
356
|
const previousBlockHeader = await this.gatherPreviousBlockHeader(previousBlockNumber);
|
|
@@ -370,7 +370,7 @@ export class ProverNode implements L2BlockStreamEventHandler, ProverNodeApi, Tra
|
|
|
370
370
|
this.worldState.getSnapshot(previousBlockNumber),
|
|
371
371
|
);
|
|
372
372
|
return {
|
|
373
|
-
|
|
373
|
+
verbatimAttestations: published.verbatimAttestations,
|
|
374
374
|
previousBlockHeader,
|
|
375
375
|
l1ToL2Messages,
|
|
376
376
|
previousInboxRollingHash,
|
package/src/session-manager.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { SerialQueue } from '@aztec-labs/foundation/queue';
|
|
|
6
6
|
import { RunningPromise } from '@aztec-labs/foundation/running-promise';
|
|
7
7
|
import type { DateProvider } from '@aztec-labs/foundation/timer';
|
|
8
8
|
import type { EpochProverFactory } from '@aztec-labs/prover-client';
|
|
9
|
-
import type
|
|
9
|
+
import { CommitteeAttestationsAndSigners, type L2BlockSource } from '@aztec-labs/stdlib/block';
|
|
10
10
|
import type { PublishedCheckpoint } from '@aztec-labs/stdlib/checkpoint';
|
|
11
11
|
import {
|
|
12
12
|
type L1RollupConstants,
|
|
@@ -456,7 +456,7 @@ export class SessionManager {
|
|
|
456
456
|
l1ToL2Messages,
|
|
457
457
|
previousBlockHeader: checkpoints[0].previousBlockHeader,
|
|
458
458
|
previousInboxRollingHash: checkpoints[0].previousInboxRollingHash,
|
|
459
|
-
|
|
459
|
+
verbatimAttestations: CommitteeAttestationsAndSigners.packAttestations([]),
|
|
460
460
|
};
|
|
461
461
|
}
|
|
462
462
|
|