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

`CrimeMoney::kernel` & `MoneyVault::usdc and MoneyVault::crimeMoney` & `MoneyShelf::usdc & MoneyShelf::crimeMoney` should be marked immutable , as it is defined only once in the contract

Summary

CrimeMoney.sol

contract CrimeMoney is ERC20 {
-->> Kernel public kernel;
constructor(Kernel _kernel) ERC20("CrimeMoney", "CRIME") {
-->> kernel = _kernel;
}
}

MoneyVault,sol

contract MoneyVault is Shelf {
-->> IERC20 private usdc;
-->> CrimeMoney private crimeMoney;
constructor(Kernel kernel_, IERC20 _usdc, CrimeMoney _crimeMoney) Shelf(kernel_) {
usdc = _usdc;
crimeMoney = _crimeMoney;
}
}

MoneyShelf.sol

contract MoneyShelf is Shelf {
IERC20 private usdc;
CrimeMoney private crimeMoney;
constructor(Kernel kernel_, IERC20 _usdc, CrimeMoney _crimeMoney) Shelf(kernel_) {
-->> usdc = _usdc;
-->> crimeMoney = _crimeMoney;
}
}

Impact Extra gas fee

Tools Used

manual review

Recommendations

Should be made immutable

Updates

Lead Judging Commences

n0kto 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.