The Pot
contract incorrectly initializes the Ownable
parent contract in the inheritance declaration instead of the constructor, which is a wrong statement.
In the Pot
contract, the Ownable
parent contract is incorrectly initialized in the inheritance declaration:
This syntax is not supported in Solidity and does not correctly initialize the Ownable
contract. Although in this specific case, since the Pot
contract is always deployed by the ContestManager
contract, the msg.sender
at deployment will indeed be the ContestManager
, meaning that the ContestManager
becomes the owner of the Pot
contract. Thus, the core functionality remains intact.
• Confusion and Misinterpretation: The incorrect syntax could lead to confusion and incorrect assumptions about the contract’s ownership and security model.
• Potential Introduction of Errors: Future changes or refactoring might introduce errors if developers assume this pattern is valid and reuse it incorrectly.
Manual Review
The Ownable
contract should be correctly initialized in the constructor of the Pot
contract. Even though the msg.sender
in this context is correctly set to the ContestManager
, the proper syntax ensures clarity and maintains code quality:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.