refactor: represent slot intervals with enum#496
Open
dicethedev wants to merge 3 commits into
Open
Conversation
Contributor
|
No reviewable files after applying ignore patterns. |
MegaRedHand
reviewed
Jul 3, 2026
| } | ||
| } | ||
|
|
||
| impl fmt::Display for SlotInterval { |
Collaborator
There was a problem hiding this comment.
If this is unused, we should just remove it
MegaRedHand
reviewed
Jul 3, 2026
| } | ||
|
|
||
| impl SlotInterval { | ||
| pub(crate) fn from_slot_index(index: u64) -> Self { |
Collaborator
There was a problem hiding this comment.
If possible, we should give only current time in ms -> SlotInterval and current time in intervals -> SlotInterval constructors, so that callers don't have to compute the interval themselves. That way we centralize the logic in this enum
MegaRedHand
reviewed
Jul 3, 2026
Comment on lines
+234
to
+236
| let interval = SlotInterval::from_slot_index( | ||
| (time_since_genesis_ms % MILLISECONDS_PER_SLOT) / MILLISECONDS_PER_INTERVAL, | ||
| ); |
Collaborator
There was a problem hiding this comment.
Here, for example, we could do:
Suggested change
| let interval = SlotInterval::from_slot_index( | |
| (time_since_genesis_ms % MILLISECONDS_PER_SLOT) / MILLISECONDS_PER_INTERVAL, | |
| ); | |
| let interval = SlotInterval::from_ms_since_genesis(time_since_genesis_ms); |
MegaRedHand
reviewed
Jul 3, 2026
|
|
||
| let slot = store.time() / INTERVALS_PER_SLOT; | ||
| let interval = store.time() % INTERVALS_PER_SLOT; | ||
| let interval = SlotInterval::from_slot_index(store.time() % INTERVALS_PER_SLOT); |
Collaborator
There was a problem hiding this comment.
And here:
Suggested change
| let interval = SlotInterval::from_slot_index(store.time() % INTERVALS_PER_SLOT); | |
| let interval = SlotInterval::from_intervals_since_genesis(store.time()); |
MegaRedHand
reviewed
Jul 3, 2026
MegaRedHand
left a comment
Collaborator
There was a problem hiding this comment.
Left some comments. The direction is good, but there are some improvements I think are necessary before we merge this
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🗒️ Description / Motivation
0..4interval dispatch in blockchain tick handling with a typedSlotIntervalenum.What Changed
crates/blockchain/src/lib.rsSlotIntervalwithfrom_slot_indexas the integer slot-to-enum constructor.BlockChainServer::on_tickto compare and match onSlotIntervalvariants.Display.crates/blockchain/src/store.rsSlotIntervalfor the store-level tick interval match.Correctness / Behavior Guarantees
0→ block publication1→ attestation production2→ aggregation3→ safe target update4→ end of slotTests Added / Run
cargo fmtcargo check -p ethlambda-blockchainRelated Issues / PRs
BlockChainServer::on_tick#469✅ Verification Checklist
make fmt— cleanmake lint(clippy with-D warnings) — cleancargo test --workspace --release— all passing