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.
