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.