The Ownable
contract from OpenZeppelin is meant to be inherited and used to grant initial ownership to the contract deployer. By default, Ownable
sets the owner as msg.sender
internally, without requiring constructor arguments.
The Game
contract incorrectly invokes the Ownable
constructor with msg.sender
as an argument. Since OpenZeppelin's Ownable
constructor does not accept arguments, this causes the compiler to fail with:
"Wrong argument count for modifier invocation: 1 arguments given but expected 0."
Likelihood:
This error always occurs at compile-time, preventing deployment on any network.
Developers unfamiliar with OpenZeppelin’s constructor pattern may try to pass parameters and face repeated deployment errors.
Impact:
Prevents deployment entirely — contract cannot be compiled or verified.
Introduces confusion and undermines trust in codebase correctness or auditing pipeline.
Compiling this will result in:
✅ OpenZeppelin’s Ownable
will automatically set msg.sender
as the owner in its internal constructor logic. There is no need to call it manually with msg.sender
.
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.