DeFiHardhatFoundry
250,000 USDC
View results
Submission Details
Severity: medium
Invalid

Formula used to set start timestamp is Incosistent in InitializeDiamond and InitReseed

Summary

InitializeDiamond::initalizeSeason and InitReseed::Init not setting season start timestamp with consistent formula.

Vulnerability Details

In InitializeDiamond::initalizeSeason current season is set to 1 and season start timestamp is set as

s.sys.season.start = s.sys.season.period > 0
? (block.timestamp / s.sys.season.period) * s.sys.season.period
: block.timestamp;

In InitReseed::Init current season is set to given season and season start timestamp is set as

s.sys.season.start =
((s.sys.season.timestamp / s.sys.season.period) * s.sys.season.period) -
(s.sys.season.period * s.sys.season.current);

Suppose for simplicity given season = 1, s.sys.season.current will set to 1 so season start timestamp will be
s.sys.season.start = ((s.sys.season.timestamp / s.sys.season.period) * s.sys.season.period) - s.sys.season.period
clearly formula used is not consistent at both places and season start set for given season at InitReseed::Init will not be what supposed to be during initialization of diamond.

Impact

setting wrong start timestamp may affect calculation of expected season number and incentive amount.

Tools Used

Manual review

Recommendations

Use Correct formula for start timestamp at InitializeDiamond::initalizeSeason as current season = 1 during initialization of diamond.

Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Out of scope

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.