Omniscia Colony Lab Audit
RewardingStaking Code Style Findings
RewardingStaking Code Style Findings
RSG-01C: Unconventional Initialization Methodology
Type | Severity | Location |
---|---|---|
Code Style | RewardingStaking.sol:L59 |
Description:
The PrivilegedGroupUpgradeable
is meant to be used as a dependency of an upgrade-able contract yet does not implement an _init
or _init_unchained
hook.
Example:
contracts/StakingV2/RewardingStaking.sol
47/**48 * @dev Constructor/Initializer49 * @param stakeToken_ The address of stake token contract50 * @param authorizedStakeAmount_ Minimum stake amount in wei51 * @param authorizedStakePeriod_ Period in seconds needed to become authorized52 */53function initialize (54 address stakeToken_,55 uint256 authorizedStakeAmount_,56 uint256 authorizedStakePeriod_57) public override initializer {58 __ReentrancyGuard_init();59 PrivilegedGroupUpgradeable.initialize();60 AuthorizedStaking.initialize(stakeToken_, authorizedStakeAmount_, authorizedStakePeriod_);61}
Recommendation:
We advise both hooks to be implemented as per the OpenZeppelin standard to ensure consistent behaviour across the codebase.
Alleviation:
Both hooks were introduced in the PrivilegedGroupUpgradeable
implementation as advised rendering this exhibit dealt with.