Category: Coding Mistakes
ConcreteMultiStrategy should inherit from ReentrancyGuardUpgradeable instead of ReentrancyGuard
Informational Impact
Informational Severity
N/A Likelihood
Description
The ConcreteMultiStrategy contract deploys via clone, and its state initializes in the initialize
function. Therefore, it should inherit from ReentrancyGuardUpgradeable instead of ReentrancyGuard.
Impact
The _status
storage variable in ConcreteMultiStrategy remains uninitialized during the initialize
call. Although it will be correctly set to NOT_ENTERED
after the first invocation of the nonReentrant
modifier, it is best practice to inherit from ReentrancyGuardUpgradeable.
Recommendations
ConcreteMultiStrategy should inherit ReentrancyGuardUpgradeable instead of ReentrancyGuard and initialize the _status
storage variable in the initialize
function.
Remediation
This issue has been acknowledged by Blueprint Finance, and a fix was implemented in commit 0884cb28↗.