• #A
    #B
    #C
    #D
    Explanation:
    If the implementation contract is self-destructed, proxies break permanently or redirect unexpectedly. This creates bricked contracts and undefined behavior
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 10 sec

    What does RETURNDATASIZE prevent?

    Tip: Click "Play" to reveal options and start playing.
    #A
    #B
    #C
    #D
    Explanation:
    RETURNDATASIZE ensures the caller knows exactly how many bytes were returned. It prevents incorrect assumptions and truncation bugs during low-level calls.
  • #A
    #B
    #C
    #D
    Explanation:
    Storage is the most expensive resource in the EVM. Large arrays result in high operational cost and poor long-term scalability.
  • #A
    #B
    #C
    #D
    Explanation:
    Miners can adjust timestamps within a reasonable range, enabling subtle manipulation. This can affect auctions, lotteries, and reward systems
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 3.010 sec

    5. Why is delegatecall risky?

    Tip: Click "Play" to reveal options and start playing.
    #A
    #B
    #C
    #D
    Explanation:
    delegatecall executes callee code in the caller’s storage context, leading to storage collisions and privilege escalation. This is a key attack vector in proxy contracts.
  • #A
    #B
    #C
    #D
    Explanation:
    If the constructor reverts, the entire deployment fails and no contract is created. This prevents partially-initialized smart contracts from being pushed on-chain
  • #A
    #B
    #C
    #D
    Explanation:
    MSTORE triggers memory expansion when writing to higher memory slots. Memory grows quadratically, so developers must understand how loops and large arrays impact gas.
  • #A
    #B
    #C
    #D
    Explanation:
    EXTCODEHASH returns the hash of a contract’s deployed bytecode, allowing detection of code changes or empty accounts. Auditors use it to verify contract identity and defend against unexpected contract replacement patterns
  • #A
    #B
    #C
    #D
    Explanation:
    immutable variables are stored directly in bytecode, not in storage, reducing runtime gas and preventing accidental overwrites. It is a common optimization technique in gas-efficient contract design.
  • #A
    #B
    #C
    #D
    Explanation:
    When users mint again after the first drop, it shows they see long-term value in the project. Repeat minting is a strong signal of community trust.
  • #A
    #B
    #C
    #D
    Explanation:
    If many proposals are created but few get votes, it signals weak governance participation. Healthy DAOs focus on engagement, not just proposal count.
  • #A
    #B
    #C
    #D
    Explanation:
    Invariants are rules that must always remain true in a contract. Documenting them helps validate whether your core logic stays consistent after every transaction.
  • Difficulty - Medium
    Total Plays - 7
    Allowed Time - 10 sec
    Best time - 1.216 sec

    Why snapshot testing helps?

    Tip: Click "Play" to reveal options and start playing.
    #A
    #B
    #C
    #D
    Explanation:
    Snapshots capture the contract’s state at a moment in time. They help debug failed transactions and compare pre- and post-execution states.
  • Difficulty - Medium
    Total Plays - 8
    Allowed Time - 10 sec
    Best time - 1.151 sec

    Why use modifiers carefully?

    Tip: Click "Play" to reveal options and start playing.
    #A
    #B
    #C
    #D
    Explanation:
    Modifiers improve smart contract readability but can cause hidden logic issues if used carelessly. Always review how each modifier changes access or conditions.
  • #A
    #B
    #C
    #D
    Explanation:
    Logical bugs can’t be found by tools; they require clear understanding of how the business rules actually work. A developer must manually verify that the code’s behavior matches real-world logic.
Home Channels Search Login Register