Both contract MplRewards and ChainlinkOracle inherits Ownable, where the _owner variable is initialized (also with an event OwnershipTransferred emitted) during contract creation. There is no need for explicitly calling transferOwnership one more time.
Tools Used
None
Recommended Mitigation Steps
Remove the transferOwnership function in both contracts.
Handle
shw
Vulnerability details
Impact
Nothing about security but gas optimization.
Proof of Concept
Both contract
MplRewards
andChainlinkOracle
inheritsOwnable
, where the_owner
variable is initialized (also with an eventOwnershipTransferred
emitted) during contract creation. There is no need for explicitly callingtransferOwnership
one more time.Tools Used
None
Recommended Mitigation Steps
Remove the
transferOwnership
function in both contracts.