If a codebase has two contracts with similar names, the compilation artifacts will not contain one of the contracts with the duplicate name. This can lead to unexpected behavior and conflicts during deployment.
Unexpected Behavior: Having duplicate contract names can lead to unexpected behavior during deployment and execution, which can be critical in a blockchain environment where immutability and predictability are key.
Security Risks: Inconsistent use of contract implementations can introduce security vulnerabilities, especially if one implementation has different security features or bugs compared to the other.
The issue could lead to future problems, even though it does not present an immediate threat according to the code implemented at the time of this audit.
ERC20 is re-used:
ERC20 (lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol)
ERC20 (lib/solmate/src/tokens/ERC20.sol)
Choose one implementation of the ERC20 contract and use it consistently throughout your project. Remove the import statement for the ERC20 contract you decide not to use and ensure all references to the ERC20 contract in your project are updated to use the chosen implementation.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.