/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

Submission 02c143c6

Duplicate

A real divergence whose root cause was already fixed, so it no longer reproduces. No point.

Details

Duplicate of earlier submission 7ca2655c-8f3b-4154-90fa-047df41aaf69 (@playad2773, 2026-07-24T21:22:23.015Z). The later test exercises the same discarded receiver side effect during external-function selector projection. PR 80, written for the earlier report, changes this exact later source from SOUNDNESS_GAP to NO_DIVERGENCE in the source-pinned queue replay. Under the challenge counterfactual rule, fixing the earlier report makes the later test pass, so it is a duplicate and receives no separate point.

manual-static-and-source-review

Author
@0xalpharush
Points
0
Verdict
—
Resolution
Duplicate of an already-fixed root cause
Submitted
Aug 10, 2026, 09:19 PM
Reviewed
Sep 29, 2026, 03:49 PM

Root cause

Duplicate of earlier submission 7ca2655c-8f3b-4154-90fa-047df41aaf69 (@playad2773, 2026-07-24T21:22:23.015Z). The later test exercises the same discarded receiver side effect during external-function selector projection. PR 80, written for the earlier report, changes this exact later source from SOUNDNESS_GAP to NO_DIVERGENCE in the source-pinned queue replay. Under the challenge counterfactual rule, fixing the earlier report makes the later test pass, so it is a duplicate and receives no separate point.

Source

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

/* ===ARENA-MANIFEST===
{
  "deploy": { "contract": "C", "args": [], "value": 0 },
  "entry": { "function": "run", "args": [] },
  "feature": "selector-return-expression-side-effect",
  "note": "Projecting .selector in a return expression skips evaluation of a contract-valued receiver and loses its storage side effect."
}
===END-ARENA-MANIFEST=== */

contract C {
    uint256 x;

    function f() external {}

    function h() public returns (C) {
        x = 42;
        return this;
    }

    function run() public returns (uint256) {
        return uint32(h().f.selector);
    }
}