Early rate$2,400 of senior audit time for $500. Early members keep the rate as it climbs.$2,400 of senior audit time for $500See how →
F-2025-0010·missing-initializer

Call __ReentrancyGuard_init() and __ERC721Enumerable_init() in initialize() for best practices

Fixednftstakingeip-712
TL;DR

Inherited upgradeable modules (ReentrancyGuard, ERC721Enumerable, ERC721Holder) are not explicitly initialized in initialize(). Works today but is fragile across future inheritance changes.

Severity
INFO
Impact
LOW
Likelihood
LOW
Method
MManual review
CAT.
Complexity
LOW
Exploitability
LOW
02Section · Description

Description

In GenesisLicense.sol, the calls to __ReentrancyGuard_init() and __ERC721Enumerable_init() are commented out in the initialize() function. Although the contract works without them, it is best practice to call these initializer functions to properly set up inherited upgradeable modules.

GenesisLicenseStaking presents the same situation with ReentrancyGuardUpgradeable and ERC721HolderUpgradeable.

03Section · Recommendation

Recommendation

Uncomment and call these initialization functions in initialize() to ensure all inherited modules are correctly initialized, avoiding potential issues in future upgrades or code changes.

Status
Fixed
F-2025-0010