feat(core): tracker inclusion ported from charon#472
Conversation
is_synthetic - Add bit_at, set_bit_at, bit_indices, contains, and or combinators to BitList and BitVector, along with a BitfieldError type for length mismatches; export BitfieldError from the ssz crate - Replace the synthetic_graffiti() runtime function with a compile-time SYNTHETIC_GRAFFITI constant using a const block - Add SignedProposalBlock::graffiti() accessor and VersionedSignedProposal::is_synthetic() using the new constant
Add the on-chain inclusion tracking infrastructure needed to port charon/core/tracker/inclusion.go: - pluto-core/tracker/inclusion: port inclusionCore — Submitted, Trim, CheckBlock, CheckBlockAndAtts, check_attestation_inclusion (phase0→deneb via bitlist contains; electra/fulu via committee-offset bit_at), check_aggregation_inclusion, report_missed, report_att_inclusion; error strings match Go exactly; synthetic-proposal short-circuit and defensive DeprecatedDutyBuilderProposer branch included
|
@claude review |
|
Claude finished @mskrzypkows's task in 4m 19s —— View job Review:
|
|
@claude I corrected your suggestions, check them |
|
Claude finished @mskrzypkows's task in 1m 50s —— View job Re-review: corrections look good ✅I checked the three follow-up commits (
1. Redundant map lookup — fixed correctly
2. Electra/phase0 positive-path coverage — this is the important one, and it's well done
I verified the helpers used ( 3. Clippy —
|
Inclusion checking for broadcast duties ported to pluto.