Custom errors need to be descriptive and follow consistent format in code. This is not the case with the errors in all contracts in scope
As dicussed in other finding on Custom Error ambiguity. It is necessary for Custom Errors to be clear about what they specify, mean, are enforcing, checking, requiring or preventing etc. Naming can be more aligned across the Custom Errors used in the contracts. The naming is not consistent and can be improved for clarity
Informational: This can lead to confusion for debugging, offchain monitoring, tooling,error analysis and maintainability of code. If Custom Error is not clear it may be misinterpreted incorrectly and may even lead to more errors in code as developers make wrong assumptions about the errors intentions.
Manual Analysis
Following on from above, Custom errors can be named more aligned, shorter and more descriptive and consistent e.g language of ‘Not’ or of ‘Must’ to emphasize what went wrong e.g ‘Must’ , ‘Is’, ‘Not’, ‘Only’ ‘IsOk’ or end with ‘Failed’ etc
DecentralizedStableCoin.sol
DecentralizedStableCoin__MustBeMoreThanZero()
DecentralizedStableCoin__MustNotExceedBalance()
DecentralizedStableCoin__MustNotBeZeroAddress();
Or ‘Not’ a requirement format
DecentralizedStableCoin__NotMoreThanZero()
DecentralizedStableCoin__NotLessThanBalance()
DecentralizedStableCoin__NotDifferentToZeroAddress();
DSCEngine.sol consistent use of 'Must' language as in below
DSCEngine__NeedsMoreThanZero() -> DSCEngine__MustBeMoreThanZero()
DSCEngine__TokenAddressesAndPriceFeedAddressesMustBeSameLength()-> DSCEngine_MustBeSameLengthTokenAndPriceFeedAddresses()
DSCEngine__NotAllowedToken() -> DSCEngine__MustBeAllowedToken()
DSCEngine__BreaksHealthFactor(uint256 healthFactor) -> DSCEngine__MustNotBreakHealthFactor(uint256 healthFactor);
DSCEngine__HealthFactorOk() -> DSCEngine__HealthIsFactorOk()
DSCEngine__HealthFactorNotImproved() -> DSCEngine__MustImproveHealthFactor()
Above a just illustrative examples of how to ensure alignment of naming
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.