The test suite contains a critical "smoke test" titled testSignerCanRevokeConfirmation. While the test executes the full flow of proposing, confirming, and revoking a transaction, it lacks an Assert phase.
In its current state, the test only verifies that the function calls do not revert. It fails to verify that the internal state of the contract—specifically the confirmations count is accurately updated after a revocation occurs.
Low severity. The lack of assertions in the test suite creates a False Sense of Security, where the test suite provides "green" results despite potential logic failures. This constitutes a Testing Gap that allows for Undetected Logic Regressions.
If a developer accidentally breaks the revokeConfirmation logic—for example, by failing to decrement the confirmation count or failing to reset the timelock timestamp, the test will still report a "Pass" because it only checks for the absence of a revert. This bypasses the primary purpose of a CI/CD pipeline, which is to ensure that state transitions remain correct after code changes..
If the body of the revokeConfirmation function in the contract were completely deleted (empty brackets { }), the following test would still pass:
Solidity
Update the test to include an assertion that verifies the transaction state. Specifically, ensure that the confirmations count returns to the expected value after the revocation calls.
Solidity
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.