Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: low
Invalid

Don't use magic numbers, use descriptive named constants

Summary

Magic numbers are hard to reason about and can create bugs.

ScoreBoard.sol (line 68)
if (block.timestamp <= START_TIME + matchNumber * 68400 - 68400)

ScoreBoard.sol (line 92)
predictions[i] == results[i]
? int8(2)
: -1;

ThePredicter.sol (line 51):
if (block.timestamp > START_TIME - 14400) {
revert ThePredicter__RegistrationIsOver();
}

ThePredicter.sol (line 96):
if (block.timestamp > START_TIME + matchNumber * 68400 - 68400) {
revert ThePredicter__PredictionsAreClosed();
}

Recommendations

Suggestion is to create a constant for these values instead with a descriptive name. For example:

+ // Correct guess is 2
+ int8 public constant CORRECT_GUESS = 2;
+ // Incorrect guess is -1
+ int8 public constant INCORRECT_GUESS = -1;
+ // Match time interval is 68400 seconds
+ uint256 public constant MATCH_TIME_INTERVAL = 68400;
+ // Register time is 14400 seconds
+ uint256 public constant REGISTER_TIME = 14400;
Updates

Lead Judging Commences

NightHawK Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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