Omniscia vfat Audit
Sickle Manual Review Findings
Sickle Manual Review Findings
SEL-01M: Improper Initialization Disable Methodology
Type | Severity | Location |
---|---|---|
Standard Conformity | ![]() | Sickle.sol:L20, L21 |
Description:
The Sickle::constructor
implements the same Initializable::initializer
modifier invocation as the Multicall::constructor
which is redundant, and additionally invokes the initializers of the SickleStorage
dependency with zero-value arguments.
Example:
contracts/Sickle.sol
17/// @param sickleRegistry_ Address of the SickleRegistry contract18constructor(19 SickleRegistry sickleRegistry_20) initializer Multicall(sickleRegistry_) {21 _Sickle_initialize(address(0), address(0));22}
Recommendation:
We advise our recommendation for Multicall
in relation to disabling the initialiers to be applied, and this contract to not invoke any further statements as initialization will have been adequately blocked by the Multicall
dependency.
Alleviation (6ab7af3bb495b817ffec469255ea679b1813eecb):
The code was updated to disable initializers via the Initializable::_disableInitializers
pathway, standardizing the mechanism via which initialization and re-initialization is disabled.