Trick or Treat

First Flight #27
Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: low
Invalid

Use Named Imports for Improved Readability and Efficiency

Summary

Switch to named imports instead of regular imports to enhance code readability and limit imported symbols to only those required by the contract.

Vulnerability Details

Using named imports helps prevent unintentional inclusion of unnecessary symbols, reduces potential conflicts, and improves the clarity of the contract's dependencies. This approach is particularly useful in contracts that rely on libraries with many modules, like OpenZeppelin.

Code Example

Original Code:

import "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "lib/openzeppelin-contracts/contracts/access/Ownable.sol";
import "lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol";

Improved Code:

import {ERC721URIStorage, ERC721} from "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import {Ownable} from "lib/openzeppelin-contracts/contracts/access/Ownable.sol";
import {ReentrancyGuard} from "lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol";

Impact

Low

Tools Used

Manual Review

Recommendation

Use named imports to selectively import only the required symbols, ensuring more efficient and maintainable code.

Updates

Appeal created

bube Lead Judge 8 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.