59168 sc low incorrect time semantics in periodattimestamp cause off chain miscalculations and data inconsistency
Description
Brief/Intro
function periodAtTimestamp(uint48 timestamp) public view returns (uint256) {
PeriodConfiguration memory periodConfiguration = periodConfigurationAtTimestamp(timestamp);
// solhint-disable-next-line max-line-length
return periodConfiguration.startingPeriod + _sinceEpoch(periodConfiguration.epoch) / periodConfiguration.duration;
}
function _sinceEpoch(uint48 epoch) private view returns (uint48) {
return Time.timestamp() - epoch;
}
Impact Details
Recommended Fix
References
Proof of Concept
Proof of Concept
Previous59179 sc low periodattimestamp bug returns current period for all timestampsNext59124 sc insight inefficient loop direction in periodconfigurationattimestamp causes unnecessary gas consumption
Was this helpful?