First Flight #12: Kitty Connect

First Flight #12: Kitty Connect
Beginner FriendlyFoundryNFTGameFi
100 EXP
View results
Submission Details
Severity: low
Invalid

Reverting with custom errors is more gas-efficient

Summary

Reverting with a custom error is more efficient in terms of gas than a 'require' structure.

Vulnerability Details

KittyConnect has some modifiers which make a check using 'require' instead of custom errors, which requires a higher amount of gas. These modifiers are onlyKittyConnectOwner(), onlyShopPartner() and onlyKittyBridge().

Impact

Low impact, gas optimization.

Tools Used

Manual review
Remix IDE

Recommendations

Declare custom errors in KittyConnect and make the modifiers revert with these errors:

contract KittyConnect is ERC721 {
+error KittyConnect__NotKittyConnectOwner();
+error KittyConnect__NotAPartner();
+error KittyConnect__NotKittyBridge();
.
.
.
modifier onlyKittyConnectOwner() {
- require(msg.sender == i_kittyConnectOwner, "KittyConnect__NotKittyConnectOwner");
+ if(msg.sender != i_kittyConnectOwner) revert KittyConnect__NotKittyConnectOwner();
_;
}
modifier onlyShopPartner() {
- require(s_isKittyShop[msg.sender], "KittyConnect__NotAPartner");
+ if(!s_isKittyShop[msg.sender]) revert KittyConnect__NotAPartner();
_;
}
modifier onlyKittyBridge() {
- require(msg.sender == address(i_kittyBridge), "KittyConnect__NotKittyBridge");
+ if(msg.sender != address(i_kittyBridge) revert KittyConnect__NotKittyBridge();
_;
}
Updates

Lead Judging Commences

inallhonesty Lead Judge over 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.