Your contracts declare Solidity pragmas like:
This uses the caret (^) operator, allowing compilation under any minor version above 0.8.18
but below 0.9.0
. While this can allow rapid iteration on minor updates, it also can introduce unexpected issues if a future compiler release changes behavior in ways you do not anticipate. Additionally, Solidity 0.8.28 is now available, which defaults the EVM target to “Cancun” and may bring optimizations and improvements you can leverage.
Potential Compiler Breakage: Future minor releases might contain changes or features that could break assumptions in your contract code.
Version Mismatch Confusion: Collaborators or external integrators may compile your contract with a version different from the one it was originally audited or tested against.
Missing Improvements: Sticking to an older minor version (like 0.8.18
) means you might miss out on improvements, optimizations, and bug fixes in newer versions—particularly now that 0.8.28
is available.
Lock to a Specific Version
Replace:
with:
This ensures you consistently compile against a well-known compiler version and eliminates unexpected behavior caused by future releases.
Adopt the Latest Compiler (0.8.28)
Version 0.8.28
offers default compilation to the “Cancun” EVM target, including various optimizations and improvements.
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.