Solidity generates a non-payable msg.value check for constructors that are not declared payable. Declaring the constructor payable removes this check, slightly reducing deployment bytecode and deployment gas. This optimization is applicable only if accepting Ether during contract creation is consistent with the intended contract interface.
Link to affected codes:
https://github.com/CodeHawks-Contests/2026-07-bc-confidence-pools/blob/main/src/ConfidencePool.sol#L157
https://github.com/CodeHawks-Contests/2026-07-bc-confidence-pools/blob/main/src/ConfidencePoolFactory.sol#L45
Impact
Gas
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.
The contest is complete and the rewards are being distributed.