Rock Paper Scissors

First Flight #38
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Severity: low
Invalid

`setAdmin` should emit event when storage data updates

Summary

setAdmin should emit an event when the adminAddress is updated to a new _newAdmin

Vulnerability Details

In setAdmin the adminAddress is being updated to a new admin but not emitting any events.

function setAdmin(address _newAdmin) external {
require(msg.sender == adminAddress, "Only admin can set new admin");
require(_newAdmin != address(0), "Admin cannot be zero address");
adminAddress = _newAdmin;
}

Impact

It is best practice to emit an event when there is update in storage data, especially in the case of an admin address. Emitting events for storage updates, like admin address changes, enhances transparency for off-chain tracking, strengthens security by detecting malicious actions, and simplifies debugging and integration with frontends or external systems.

Tools Used

VSCode

Recommendations

Add an UpdatedAdminAddress event in setAdmin,

contract RockPaperScissors {
.
.
.
// Events
+ event UpdatedAdminAddress(address admin);
.
.
.
function setAdmin(address _newAdmin) external {
require(msg.sender == adminAddress, "Only admin can set new admin");
require(_newAdmin != address(0), "Admin cannot be zero address");
adminAddress = _newAdmin;
// emit event for state change
+ emit UpdatedAdminAddress(_newAdmin);
}
}
Updates

Appeal created

m3dython Lead Judge 2 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational

Code suggestions or observations that do not pose a direct security risk.

m3dython Lead Judge 2 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational

Code suggestions or observations that do not pose a direct security risk.

Support

FAQs

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