dig_slashing/participation/mod.rs
1//! Participation-flag accounting (Ethereum Altair parity).
2//!
3//! Traces to: [SPEC.md §3.10, §8](../../../docs/resources/SPEC.md),
4//! catalogue rows
5//! [DSL-074..086](../../../docs/requirements/domains/participation/specs/).
6//!
7//! # Role
8//!
9//! Tracks the three Ethereum Altair participation flags
10//! (`TIMELY_SOURCE`, `TIMELY_TARGET`, `TIMELY_HEAD`) per
11//! validator per epoch. Drives Ethereum-parity reward + penalty
12//! computation for attestation inclusion.
13//!
14//! # Scope (incremental)
15//!
16//! Module grows one DSL at a time. First commit lands DSL-074
17//! (the `ParticipationFlags` bitmask type). Future DSLs add:
18//!
19//! - DSL-075..077: `classify_timeliness`
20//! - DSL-078..080: `ParticipationTracker` state machine
21//! - DSL-081..086: reward / penalty deltas
22
23pub mod error;
24pub mod flags;
25pub mod rewards;
26pub mod timeliness;
27pub mod tracker;
28
29pub use error::ParticipationError;
30pub use flags::ParticipationFlags;
31pub use rewards::{FlagDelta, base_reward, compute_flag_deltas, proposer_inclusion_reward};
32pub use timeliness::classify_timeliness;
33pub use tracker::ParticipationTracker;