Skip to content

Commit b9a1a09

Browse files
committed
fix: enqueue block root for empty first blocks after parity moved to checkpoint (A-1374)
A no-tx block has no base or merge proof whose completion enqueues its block root, and A-1374 moved the parity proof (which previously fired it) from the first block root to the checkpoint root. Nothing then enqueued the empty-tx first block root, so its sub-tree never resolved and proving deadlocked. Enqueue it directly once the empty block's end state is set.
1 parent 34de687 commit b9a1a09

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,12 @@ export class CheckpointSubTreeOrchestrator extends ProvingScheduler {
309309
const blockEndBlobFields = blockProvingState.getBlockEndBlobFields();
310310
await endSpongeBlob.absorb(blockEndBlobFields);
311311
blockProvingState.setEndSpongeBlob(endSpongeBlob);
312+
313+
// A block with no txs has no base or merge proof whose completion would enqueue its block root,
314+
// and parity now gates the checkpoint root rather than the first block root, so no other callback
315+
// fires it. Enqueue it here. Only a first block may be empty (the block proving state rejects
316+
// any other), so this always drives the empty-tx first block root.
317+
this.checkAndEnqueueBlockRootRollup(blockProvingState);
312318
}
313319
}
314320

0 commit comments

Comments
 (0)