@aztec-labs/prover-node 6.0.0-rc.1 → 6.0.0-rc.2
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.
|
@@ -149,6 +149,17 @@ export declare class CheckpointProver {
|
|
|
149
149
|
*/
|
|
150
150
|
getTxsForUpload(): Promise<Map<string, Tx>>;
|
|
151
151
|
private executeCheckpoint;
|
|
152
|
+
/**
|
|
153
|
+
* Splits the supplied L1-to-L2 messages into the slice each block of the checkpoint consumes, rejecting a span
|
|
154
|
+
* that does not describe this checkpoint.
|
|
155
|
+
*
|
|
156
|
+
* The messages are consumed contiguously across the checkpoint's blocks, so each block's slice runs from its
|
|
157
|
+
* parent block's L1-to-L2 leaf count to its own (compact indices make leaf count equal cumulative message count).
|
|
158
|
+
* The supplied list must cover exactly the range from the previous block to the last one and the per-block counts
|
|
159
|
+
* must not rewind, or the slices would be silently misassigned and only caught by the header mismatch after the
|
|
160
|
+
* block was fully re-executed.
|
|
161
|
+
*/
|
|
162
|
+
private sliceMessagesPerBlock;
|
|
152
163
|
/**
|
|
153
164
|
* Mark cancelled. Idempotent. Aborts in-flight work, rejects the block-proof promise,
|
|
154
165
|
* and kicks off a background teardown of the sub-tree. The teardown promise is exposed
|
|
@@ -167,4 +178,4 @@ export declare class CheckpointProver {
|
|
|
167
178
|
private processTxs;
|
|
168
179
|
private createFork;
|
|
169
180
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# 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":"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
|
|
1
|
+
{"version":3,"file":"checkpoint-prover.d.ts","sourceRoot":"","sources":["../../src/job/checkpoint-prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -228,10 +228,20 @@ import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
|
228
228
|
checkpointHash: this.checkpoint.hash().toString(),
|
|
229
229
|
blockCount: this.checkpoint.blocks.length
|
|
230
230
|
});
|
|
231
|
+
// Structural validation of the checkpoint's message span runs before any proof work starts. Verifier jobs go
|
|
232
|
+
// into a shared cache that outlives this checkpoint's sub-tree, so a job started before the span is checked
|
|
233
|
+
// survives the cancellation that follows and keeps proving for a checkpoint nothing will accept.
|
|
234
|
+
const messagesPerBlock = this.sliceMessagesPerBlock();
|
|
231
235
|
this.subTree = await this.deps.proverFactory.createCheckpointSubTreeOrchestrator(this.deps.chonkCache, this.epochNumber, checkpointConstants, this.l1ToL2Messages, this.previousInboxRollingHash, this.checkpoint.blocks.length, this.previousBlockHeader);
|
|
232
236
|
subTreeStarted = true;
|
|
233
237
|
// Bridge the sub-tree's result onto subTreeProofs.
|
|
234
|
-
void this.subTree.getSubTreeResult().then((result)=>{
|
|
238
|
+
void this.subTree.getSubTreeResult().then(async (result)=>{
|
|
239
|
+
// Empty-block proofs can finish before execution reaches addTxs or setBlockCompleted.
|
|
240
|
+
// Keep the sub-tree alive and withhold success until block processing has also succeeded.
|
|
241
|
+
await this.runPromise;
|
|
242
|
+
if (!this.completed || this.failed || signal.aborted) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
235
245
|
this.deps.log.info(`Sub-tree block proofs ready for checkpoint ${this.checkpoint.number}`, {
|
|
236
246
|
checkpointNumber: this.checkpoint.number,
|
|
237
247
|
blockProofCount: result.blockProofOutputs.length
|
|
@@ -262,28 +272,12 @@ import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
|
262
272
|
return;
|
|
263
273
|
}
|
|
264
274
|
}
|
|
265
|
-
// Streaming Inbox: the checkpoint's messages are consumed contiguously across its blocks, so each block's slice
|
|
266
|
-
// runs from its parent block's L1-to-L2 leaf count to its own (compact indices make leaf count equal cumulative
|
|
267
|
-
// message count). The list must cover exactly the range from the previous block to the last one, or the slices
|
|
268
|
-
// would be silently misassigned and only caught by the header mismatch after the block was fully re-executed.
|
|
269
|
-
const l1ToL2LeafCount = (header)=>Number(header.state.l1ToL2MessageTree.nextAvailableLeafIndex);
|
|
270
|
-
const checkpointStartLeafCount = l1ToL2LeafCount(this.previousBlockHeader);
|
|
271
|
-
const checkpointEndLeafCount = l1ToL2LeafCount(this.checkpoint.blocks.at(-1).header);
|
|
272
|
-
if (this.l1ToL2Messages.length !== checkpointEndLeafCount - checkpointStartLeafCount) {
|
|
273
|
-
throw new Error(`Checkpoint ${this.checkpoint.number} consumed ${checkpointEndLeafCount - checkpointStartLeafCount} L1 to L2 messages ` + `(leaf counts ${checkpointStartLeafCount} to ${checkpointEndLeafCount}) but ${this.l1ToL2Messages.length} were supplied`);
|
|
274
|
-
}
|
|
275
|
-
let previousBlockLeafCount = checkpointStartLeafCount;
|
|
276
275
|
for(let blockIndex = 0; blockIndex < this.checkpoint.blocks.length; blockIndex++){
|
|
277
276
|
const blockTimer = new Timer();
|
|
278
277
|
const block = this.checkpoint.blocks[blockIndex];
|
|
279
278
|
const globalVariables = block.header.globalVariables;
|
|
280
279
|
const blockTxs = this.getTxsForBlock(block, txs);
|
|
281
|
-
const
|
|
282
|
-
if (blockEndLeafCount < previousBlockLeafCount) {
|
|
283
|
-
throw new Error(`Block ${block.number} L1 to L2 leaf count ${blockEndLeafCount} is below its parent's ${previousBlockLeafCount}`);
|
|
284
|
-
}
|
|
285
|
-
const blockMessages = this.l1ToL2Messages.slice(previousBlockLeafCount - checkpointStartLeafCount, blockEndLeafCount - checkpointStartLeafCount);
|
|
286
|
-
previousBlockLeafCount = blockEndLeafCount;
|
|
280
|
+
const blockMessages = messagesPerBlock[blockIndex];
|
|
287
281
|
await this.subTree.startNewBlock(block.number, globalVariables.timestamp, blockTxs.length, blockMessages);
|
|
288
282
|
if (signal.aborted) {
|
|
289
283
|
return;
|
|
@@ -337,6 +331,33 @@ import { MerkleTreeId } from '@aztec-labs/stdlib/trees';
|
|
|
337
331
|
}
|
|
338
332
|
}
|
|
339
333
|
/**
|
|
334
|
+
* Splits the supplied L1-to-L2 messages into the slice each block of the checkpoint consumes, rejecting a span
|
|
335
|
+
* that does not describe this checkpoint.
|
|
336
|
+
*
|
|
337
|
+
* The messages are consumed contiguously across the checkpoint's blocks, so each block's slice runs from its
|
|
338
|
+
* parent block's L1-to-L2 leaf count to its own (compact indices make leaf count equal cumulative message count).
|
|
339
|
+
* The supplied list must cover exactly the range from the previous block to the last one and the per-block counts
|
|
340
|
+
* must not rewind, or the slices would be silently misassigned and only caught by the header mismatch after the
|
|
341
|
+
* block was fully re-executed.
|
|
342
|
+
*/ sliceMessagesPerBlock() {
|
|
343
|
+
const l1ToL2LeafCount = (header)=>Number(header.state.l1ToL2MessageTree.nextAvailableLeafIndex);
|
|
344
|
+
const checkpointStartLeafCount = l1ToL2LeafCount(this.previousBlockHeader);
|
|
345
|
+
const checkpointEndLeafCount = l1ToL2LeafCount(this.checkpoint.blocks.at(-1).header);
|
|
346
|
+
if (this.l1ToL2Messages.length !== checkpointEndLeafCount - checkpointStartLeafCount) {
|
|
347
|
+
throw new Error(`Checkpoint ${this.checkpoint.number} consumed ${checkpointEndLeafCount - checkpointStartLeafCount} L1 to L2 messages ` + `(leaf counts ${checkpointStartLeafCount} to ${checkpointEndLeafCount}) but ${this.l1ToL2Messages.length} were supplied`);
|
|
348
|
+
}
|
|
349
|
+
let previousBlockLeafCount = checkpointStartLeafCount;
|
|
350
|
+
return this.checkpoint.blocks.map((block)=>{
|
|
351
|
+
const blockEndLeafCount = l1ToL2LeafCount(block.header);
|
|
352
|
+
if (blockEndLeafCount < previousBlockLeafCount) {
|
|
353
|
+
throw new Error(`Block ${block.number} L1 to L2 leaf count ${blockEndLeafCount} is below its parent's ${previousBlockLeafCount}`);
|
|
354
|
+
}
|
|
355
|
+
const blockMessages = this.l1ToL2Messages.slice(previousBlockLeafCount - checkpointStartLeafCount, blockEndLeafCount - checkpointStartLeafCount);
|
|
356
|
+
previousBlockLeafCount = blockEndLeafCount;
|
|
357
|
+
return blockMessages;
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
340
361
|
* Mark cancelled. Idempotent. Aborts in-flight work, rejects the block-proof promise,
|
|
341
362
|
* and kicks off a background teardown of the sub-tree. The teardown promise is exposed
|
|
342
363
|
* via `whenDone()`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/prover-node",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -56,25 +56,25 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@aztec-foundation/l1-artifacts": "6.0.0-rc.
|
|
60
|
-
"@aztec-labs/archiver": "6.0.0-rc.
|
|
61
|
-
"@aztec-labs/bb-prover": "6.0.0-rc.
|
|
62
|
-
"@aztec-labs/blob-client": "6.0.0-rc.
|
|
63
|
-
"@aztec-labs/blob-lib": "6.0.0-rc.
|
|
64
|
-
"@aztec-labs/constants": "6.0.0-rc.
|
|
65
|
-
"@aztec-labs/epoch-cache": "6.0.0-rc.
|
|
66
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
67
|
-
"@aztec-labs/foundation": "6.0.0-rc.
|
|
68
|
-
"@aztec-labs/node-keystore": "6.0.0-rc.
|
|
69
|
-
"@aztec-labs/node-lib": "6.0.0-rc.
|
|
70
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.
|
|
71
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
72
|
-
"@aztec-labs/prover-client": "6.0.0-rc.
|
|
73
|
-
"@aztec-labs/sequencer-client": "6.0.0-rc.
|
|
74
|
-
"@aztec-labs/simulator": "6.0.0-rc.
|
|
75
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
76
|
-
"@aztec-labs/telemetry-client": "6.0.0-rc.
|
|
77
|
-
"@aztec-labs/world-state": "6.0.0-rc.
|
|
59
|
+
"@aztec-foundation/l1-artifacts": "6.0.0-rc.5",
|
|
60
|
+
"@aztec-labs/archiver": "6.0.0-rc.2",
|
|
61
|
+
"@aztec-labs/bb-prover": "6.0.0-rc.2",
|
|
62
|
+
"@aztec-labs/blob-client": "6.0.0-rc.2",
|
|
63
|
+
"@aztec-labs/blob-lib": "6.0.0-rc.2",
|
|
64
|
+
"@aztec-labs/constants": "6.0.0-rc.2",
|
|
65
|
+
"@aztec-labs/epoch-cache": "6.0.0-rc.2",
|
|
66
|
+
"@aztec-labs/ethereum": "6.0.0-rc.2",
|
|
67
|
+
"@aztec-labs/foundation": "6.0.0-rc.2",
|
|
68
|
+
"@aztec-labs/node-keystore": "6.0.0-rc.2",
|
|
69
|
+
"@aztec-labs/node-lib": "6.0.0-rc.2",
|
|
70
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.2",
|
|
71
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.2",
|
|
72
|
+
"@aztec-labs/prover-client": "6.0.0-rc.2",
|
|
73
|
+
"@aztec-labs/sequencer-client": "6.0.0-rc.2",
|
|
74
|
+
"@aztec-labs/simulator": "6.0.0-rc.2",
|
|
75
|
+
"@aztec-labs/stdlib": "6.0.0-rc.2",
|
|
76
|
+
"@aztec-labs/telemetry-client": "6.0.0-rc.2",
|
|
77
|
+
"@aztec-labs/world-state": "6.0.0-rc.2",
|
|
78
78
|
"source-map-support": "^0.5.21",
|
|
79
79
|
"tslib": "^2.4.0",
|
|
80
80
|
"viem": "npm:@aztec/viem@2.38.3"
|
|
@@ -326,6 +326,11 @@ export class CheckpointProver {
|
|
|
326
326
|
blockCount: this.checkpoint.blocks.length,
|
|
327
327
|
});
|
|
328
328
|
|
|
329
|
+
// Structural validation of the checkpoint's message span runs before any proof work starts. Verifier jobs go
|
|
330
|
+
// into a shared cache that outlives this checkpoint's sub-tree, so a job started before the span is checked
|
|
331
|
+
// survives the cancellation that follows and keeps proving for a checkpoint nothing will accept.
|
|
332
|
+
const messagesPerBlock = this.sliceMessagesPerBlock();
|
|
333
|
+
|
|
329
334
|
this.subTree = await this.deps.proverFactory.createCheckpointSubTreeOrchestrator(
|
|
330
335
|
this.deps.chonkCache,
|
|
331
336
|
this.epochNumber,
|
|
@@ -338,7 +343,13 @@ export class CheckpointProver {
|
|
|
338
343
|
subTreeStarted = true;
|
|
339
344
|
// Bridge the sub-tree's result onto subTreeProofs.
|
|
340
345
|
void this.subTree.getSubTreeResult().then(
|
|
341
|
-
result => {
|
|
346
|
+
async result => {
|
|
347
|
+
// Empty-block proofs can finish before execution reaches addTxs or setBlockCompleted.
|
|
348
|
+
// Keep the sub-tree alive and withhold success until block processing has also succeeded.
|
|
349
|
+
await this.runPromise;
|
|
350
|
+
if (!this.completed || this.failed || signal.aborted) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
342
353
|
this.deps.log.info(`Sub-tree block proofs ready for checkpoint ${this.checkpoint.number}`, {
|
|
343
354
|
checkpointNumber: this.checkpoint.number,
|
|
344
355
|
blockProofCount: result.blockProofOutputs.length,
|
|
@@ -375,38 +386,12 @@ export class CheckpointProver {
|
|
|
375
386
|
}
|
|
376
387
|
}
|
|
377
388
|
|
|
378
|
-
// Streaming Inbox: the checkpoint's messages are consumed contiguously across its blocks, so each block's slice
|
|
379
|
-
// runs from its parent block's L1-to-L2 leaf count to its own (compact indices make leaf count equal cumulative
|
|
380
|
-
// message count). The list must cover exactly the range from the previous block to the last one, or the slices
|
|
381
|
-
// would be silently misassigned and only caught by the header mismatch after the block was fully re-executed.
|
|
382
|
-
const l1ToL2LeafCount = (header: BlockHeader) => Number(header.state.l1ToL2MessageTree.nextAvailableLeafIndex);
|
|
383
|
-
const checkpointStartLeafCount = l1ToL2LeafCount(this.previousBlockHeader);
|
|
384
|
-
const checkpointEndLeafCount = l1ToL2LeafCount(this.checkpoint.blocks.at(-1)!.header);
|
|
385
|
-
if (this.l1ToL2Messages.length !== checkpointEndLeafCount - checkpointStartLeafCount) {
|
|
386
|
-
throw new Error(
|
|
387
|
-
`Checkpoint ${this.checkpoint.number} consumed ${checkpointEndLeafCount - checkpointStartLeafCount} L1 to L2 messages ` +
|
|
388
|
-
`(leaf counts ${checkpointStartLeafCount} to ${checkpointEndLeafCount}) but ${this.l1ToL2Messages.length} were supplied`,
|
|
389
|
-
);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
let previousBlockLeafCount = checkpointStartLeafCount;
|
|
393
389
|
for (let blockIndex = 0; blockIndex < this.checkpoint.blocks.length; blockIndex++) {
|
|
394
390
|
const blockTimer = new Timer();
|
|
395
391
|
const block = this.checkpoint.blocks[blockIndex];
|
|
396
392
|
const globalVariables = block.header.globalVariables;
|
|
397
393
|
const blockTxs = this.getTxsForBlock(block, txs);
|
|
398
|
-
|
|
399
|
-
const blockEndLeafCount = l1ToL2LeafCount(block.header);
|
|
400
|
-
if (blockEndLeafCount < previousBlockLeafCount) {
|
|
401
|
-
throw new Error(
|
|
402
|
-
`Block ${block.number} L1 to L2 leaf count ${blockEndLeafCount} is below its parent's ${previousBlockLeafCount}`,
|
|
403
|
-
);
|
|
404
|
-
}
|
|
405
|
-
const blockMessages = this.l1ToL2Messages.slice(
|
|
406
|
-
previousBlockLeafCount - checkpointStartLeafCount,
|
|
407
|
-
blockEndLeafCount - checkpointStartLeafCount,
|
|
408
|
-
);
|
|
409
|
-
previousBlockLeafCount = blockEndLeafCount;
|
|
394
|
+
const blockMessages = messagesPerBlock[blockIndex];
|
|
410
395
|
|
|
411
396
|
await this.subTree.startNewBlock(block.number, globalVariables.timestamp, blockTxs.length, blockMessages);
|
|
412
397
|
if (signal.aborted) {
|
|
@@ -467,6 +452,44 @@ export class CheckpointProver {
|
|
|
467
452
|
}
|
|
468
453
|
}
|
|
469
454
|
|
|
455
|
+
/**
|
|
456
|
+
* Splits the supplied L1-to-L2 messages into the slice each block of the checkpoint consumes, rejecting a span
|
|
457
|
+
* that does not describe this checkpoint.
|
|
458
|
+
*
|
|
459
|
+
* The messages are consumed contiguously across the checkpoint's blocks, so each block's slice runs from its
|
|
460
|
+
* parent block's L1-to-L2 leaf count to its own (compact indices make leaf count equal cumulative message count).
|
|
461
|
+
* The supplied list must cover exactly the range from the previous block to the last one and the per-block counts
|
|
462
|
+
* must not rewind, or the slices would be silently misassigned and only caught by the header mismatch after the
|
|
463
|
+
* block was fully re-executed.
|
|
464
|
+
*/
|
|
465
|
+
private sliceMessagesPerBlock(): Fr[][] {
|
|
466
|
+
const l1ToL2LeafCount = (header: BlockHeader) => Number(header.state.l1ToL2MessageTree.nextAvailableLeafIndex);
|
|
467
|
+
const checkpointStartLeafCount = l1ToL2LeafCount(this.previousBlockHeader);
|
|
468
|
+
const checkpointEndLeafCount = l1ToL2LeafCount(this.checkpoint.blocks.at(-1)!.header);
|
|
469
|
+
if (this.l1ToL2Messages.length !== checkpointEndLeafCount - checkpointStartLeafCount) {
|
|
470
|
+
throw new Error(
|
|
471
|
+
`Checkpoint ${this.checkpoint.number} consumed ${checkpointEndLeafCount - checkpointStartLeafCount} L1 to L2 messages ` +
|
|
472
|
+
`(leaf counts ${checkpointStartLeafCount} to ${checkpointEndLeafCount}) but ${this.l1ToL2Messages.length} were supplied`,
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
let previousBlockLeafCount = checkpointStartLeafCount;
|
|
477
|
+
return this.checkpoint.blocks.map(block => {
|
|
478
|
+
const blockEndLeafCount = l1ToL2LeafCount(block.header);
|
|
479
|
+
if (blockEndLeafCount < previousBlockLeafCount) {
|
|
480
|
+
throw new Error(
|
|
481
|
+
`Block ${block.number} L1 to L2 leaf count ${blockEndLeafCount} is below its parent's ${previousBlockLeafCount}`,
|
|
482
|
+
);
|
|
483
|
+
}
|
|
484
|
+
const blockMessages = this.l1ToL2Messages.slice(
|
|
485
|
+
previousBlockLeafCount - checkpointStartLeafCount,
|
|
486
|
+
blockEndLeafCount - checkpointStartLeafCount,
|
|
487
|
+
);
|
|
488
|
+
previousBlockLeafCount = blockEndLeafCount;
|
|
489
|
+
return blockMessages;
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
|
|
470
493
|
/**
|
|
471
494
|
* Mark cancelled. Idempotent. Aborts in-flight work, rejects the block-proof promise,
|
|
472
495
|
* and kicks off a background teardown of the sub-tree. The teardown promise is exposed
|