Pre-auditThree days of senior audit time for $1,500, credited in full toward your Zealynx audit.3 audit days, credited toward your auditSee how →
L-20·

Missing parent initializer call in `__UUPSUpgradeable_init()`

Not reportedoptionsleverageblack-scholes
TL;DR

The Oracle.sol contract inherits from UUPSUpgradeable but its init function fails to call the corresponding parent initializer function, __UUPSUpgradeable_init().

Severity
LOW
Method
MManual review
CAT.

The Oracle.sol contract inherits from UUPSUpgradeable but its init function fails to call the corresponding parent initializer function, __UUPSUpgradeable_init(). While this parent initializer function might be empty in the current version of the OpenZeppelin library used, omitting the call violates the explicit initialization pattern required by OpenZeppelin Upgradeable contracts. This deviation poses risks for forward compatibility should the library be updated with logic in that initializer, and makes the code non-standard and harder to maintain.

Adhere to the standard OpenZeppelin Upgradeable pattern by explicitly calling __UUPSUpgradeable_init() within the Oracle.init() function.

solidity
function init(address owner) public initializer {
__UUPSUpgradeable_init(); // Initialize UUPSUpgradeable parent
_grantRole(AccessControlStorage.DEFAULT_ADMIN_ROLE, owner);
}
02Section · Report provenance

Report provenance

Published by Pashov Audit Group, with Carlos (Bloqarl) participating as a contractor. The source report states that its fixes review was not fully completed; no final remediation disposition is recorded for this finding. Read the full report.

L-20