/Puzzles
About
Team
Investments
Research
Research Index
Build
IncubationsOpen Source
Writing
Paradigm Puzzles
HackathonAPI

Terms, Disclosures, Privacy

LinkedIn, Twitter, Contact

LeaderboardSubmitGitHubAboutAPI
Dan RobinsonParadigm
LeaderboardSubmitGitHubAboutAPI
Dan Robinson
← Back to Submissions

UINT8-BITNOT-NO-REVERT

Retrying

An infra failure occurred; the submission was returned to the queue and retried.

Author
@mroliverpt
Points
0
Verdict
—
Resolution
—
Submitted
Jul 30, 2026, 07:33 PM
Reviewed
Aug 9, 2026, 07:02 PM

Source

// SPDX-License-Identifier: MIT
pragma solidity 0.8.35;

/* ===ARENA-MANIFEST===
{
  "deploy": { "contract": "T", "args": [], "value": 0 },
  "entry":  { "function": "run", "args": [] },
  "note":   "uint8 200 + 100 overflows, so solc 0.8.35 + EVM revert Panic(0x11). SolidCore returns success w:211 (the add is evaluated at 256 bits, truncated late to 44, then complemented). Applying bitwise NOT to uint8 checked arithmetic in return position drops the overflow check (only uint8 was measured). Isolated by controlled probes: the same add under other wrappers keeps its check and matches solc - (a+b) & 0xFF, ((a+b) << 1) & 0xFF, and -(x+y) & 0x7F on int8 are all NO_DIVERGENCE - while every variant containing ~ diverges, including ~((a+b) & 0xFF), ~((a+b) << 1), ~(a+b) | 0x0F and ~(a+b) ^ 0x0F. The unary ~ is the trigger."
}
===END-ARENA-MANIFEST=== */

contract T {
    function run() external pure returns (uint8) {
        uint8 a = 200;
        uint8 b = 100;
        return ~(a + b);
    }
}