First Flight #21: KittyFi

First Flight #21
Beginner FriendlyDeFiFoundry
100 EXP
View results
Submission Details
Severity: low
Invalid

Use internal functions in modifiers to save gas

Summary

Using internal functions in modifiers for checks saves gas, because if you don't the compiler inlines the entire modifier body everytime the modifier is used which costs gas.

Vulnerability Details

Impact

https://github.com/Cyfrin/2024-08-kitty-fi/blob/950ac553b935a3bf9277b71ffa5662a84f2633fe/src/KittyCoin.sol#L12-L15

https://github.com/Cyfrin/2024-08-kitty-fi/blob/950ac553b935a3bf9277b71ffa5662a84f2633fe/src/KittyPool.sol#L40-L44

https://github.com/Cyfrin/2024-08-kitty-fi/blob/950ac553b935a3bf9277b71ffa5662a84f2633fe/src/KittyPool.sol#L45-L48

Tools Used

Manual Review

Recommendations

Move modifier body into an internal function, i.e Instead of :

modifier onlyKittyPool() {
require(msg.sender == pool, KittyCoin__OnlyKittyPoolCanMintOrBurn());
_;
}

Do this instead:

function _onlyKittyPool() internal {
require(msg.sender == pool, KittyCoin__OnlyKittyPoolCanMintOrBurn());
}
modifier onlyKittyPool() {
_onlyKittyPool();
_;
}
Updates

Lead Judging Commences

shikhar229169 Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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