QA Report #100
Labels
bug
Something isn't working
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
sponsor disputed
Sponsor cannot duplicate the issue, or otherwise disagrees this is an issue
openzeppelin initializable
description
Aura.sol uses the following check to make sure the initializer is only called once
however this is not best practice and there may be edge cases where this check fails
recommend inheriting from openzeppelin initializable instead
Modifier side-effects
description
Modifiers should only implement checks and not make state changes and external calls which violates the checks-effects-interactions pattern. These side-effects may go unnoticed by developers/auditors because the modifier code is typically far from the function implementation.
findings
rounding of penalty
description
if the reward is less than 5, the penalty will round down to zero
recommend using openzeppelin's math util to round up
division before multiplication
description
due to rounding errors, multiplication should be done before any division
recommend to reorder the operations accordingly
findings
Unspecific Compiler Version Pragma
description
Avoid floating pragmas for non-library contracts.
While floating pragmas make sense for libraries to allow them to be included with multiple different versions of applications, it may be a security risk for application implementations.
A known vulnerable compiler version may accidentally be selected or security tools might fall-back to an older compiler version ending up checking a different EVM compilation that is ultimately deployed on the blockchain.
It is recommended to pin to a concrete compiler version.
findings
contracts in the code base use the follwing pragma
no return statement
description
function is lacking a return statement when it should return bool
The text was updated successfully, but these errors were encountered: