Expand description
AttestedBlock — L2 block plus attestation metadata (signers, aggregate sig, receipts, status).
§Requirements trace
- ATT-001 — struct fields +
AttestedBlock::new. - ATT-002 —
AttestedBlock::signing_percentage,AttestedBlock::has_soft_finality,AttestedBlock::hash(delegate toSignerBitmap/L2Block::hash). - SER-002 —
AttestedBlock::to_bytes/AttestedBlock::from_bytes(bincode; decode errors →BlockError::InvalidData). - NORMATIVE § ATT-001 / ATT-002 — constructor + query API.
- SPEC §2.4 — wire / semantic context for attested payloads.
§Usage
Wrap a finalized crate::L2Block once execution produces crate::ReceiptList entries; AttestedBlock::new
seeds the aggregate_signature field with the proposer signature (L2Block::proposer_signature) before
validators aggregate their BLS shares (implementation notes in ATT-001). The signer_bitmap field starts
empty; consensus layers record attestations via SignerBitmap::set_signed
/ SignerBitmap::merge (ATT-004 / ATT-005). Use AttestedBlock::signing_percentage
and AttestedBlock::has_soft_finality for quorum checks; AttestedBlock::hash is the same Bytes32 as
L2Block::hash (ATT-002).
§Rationale
- Initial aggregate = proposer: Matches ATT-001 / NORMATIVE — there is no separate “epoch genesis” signature slot; the proposer’s block signature bootstraps the aggregate until attesters merge in.
- Status
Pending: Constructor does not imply validation; structural / execution tiers advance status outside this crate (seeBlockStatus).
Structs§
- Attested
Block - L2 block wrapped with attestation state: who signed, aggregate BLS signature, receipts, lifecycle status.