fix(staker): Introduce Tier
type and simplify casting in reward logic
#832
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
This PR introduces a dedicated
Tier
type and refactors related code to improve type safety and reduce unnecessary casting.Background
Previously, tier values were represented as raw
uint64
. This causes several issues:uint64
andint64
when performing reward calculations (emssions and ratios areint64
).uint64
value could be passed in as a tier without validation.Changes
Tier
type (uint8
)CurrentCount
to returnint64
instead of int to align with reward calculation paths.CurrentReward
,CurrentCount
, etc.) and internal logic to accept/useTier
instead of raw integers where appropriate