TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

8866a815-e3d2-4518-9561-14bc54f9c0fe

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 1:04 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30488 report.consolidate complete 1 / 1 3 months ago
103787 artifact.fetch failed 1 / 3 1 week ago
103788 tool.cast_disasm complete 1 / 3 1 week ago
103789 analysis.bundle complete 1 / 3 1 week ago
103790 capability.graph complete 1 / 3 1 week ago
103791 detector.run complete 1 / 3 1 week ago
103792 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No exploitable vulnerabilities found in the first-party contracts within scope.
View stderr
[codex:1427539] OpenAI Codex v0.77.0 (research preview)
[codex:1427539] --------
[codex:1427539] workdir: /tmp/codex-multi-u7de3x83
[codex:1427539] model: gpt-5.2-codex
[codex:1427539] provider: openai
[codex:1427539] approval: never
[codex:1427539] sandbox: read-only
[codex:1427539] reasoning effort: xhigh
[codex:1427539] reasoning summaries: auto
[codex:1427539] session id: 019b6a35-4687-7261-a448-6afb5b66156a
[codex:1427539] --------
[codex:1427539] user
[codex:1427539] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1427539] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1427539] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1427539] 
[codex:1427539] Scope rules:
[codex:1427539] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1427539] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1427539] 
[codex:1427539] Output MUST be valid JSON matching the provided schema.
[codex:1427539] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1427539] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1427539] 
[codex:1427539] Output constraints (IMPORTANT):
[codex:1427539] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1427539] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1427539] mcp startup: no servers
[codex:1427539] 
[codex:1427539] thinking
[codex:1427539] **Planning to examine AUDIT_BUNDLE.txt**
[codex:1427539] exec
[codex:1427539] /bin/bash -lc ls in /tmp/codex-multi-u7de3x83 succeeded in 5ms:
[codex:1427539] AUDIT_BUNDLE.txt
[codex:1427539] codex-output-schema.json
[codex:1427539] contracts
[codex:1427539] 
[codex:1427539] thinking
[codex:1427539] **Reading AUDIT_BUNDLE.txt file**
[codex:1427539] exec
[codex:1427539] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-u7de3x83 succeeded in 8ms:
[codex:1427539] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1427539] 
[codex:1427539] ================================================================================
[codex:1427539] FILE: contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1427539] ================================================================================
[codex:1427539] // SPDX-License-Identifier: MIT
[codex:1427539] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1427539] 
[codex:1427539] pragma solidity ^0.8.20;
[codex:1427539] 
[codex:1427539] import {Context} from "../utils/Context.sol";
[codex:1427539] 
[codex:1427539] /**
[codex:1427539]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1427539]  * there is an account (an owner) that can be granted exclusive access to
[codex:1427539]  * specific functions.
[codex:1427539]  *
[codex:1427539]  * The initial owner is set to the address provided by the deployer. This can
[codex:1427539]  * later be changed with {transferOwnership}.
[codex:1427539]  *
[codex:1427539] 
[codex:1427539] thinking
[codex:1427539] **Analyzing WETHRedeem.sol for vulnerabilities**
[codex:1427539] codex
[codex:1427539] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
[codex:1427539] tokens used
[codex:1427539] 19,618
[codex:1427539] {"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T13:04:34.171140+00:00",
        "returncode": 0
    },
    "summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
    "raw_final": {
        "summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
1
Total opcodes
1151
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: DUP1
00000003: PUSH1 0x40
00000005: MSTORE
00000006: PUSH1 0x04
00000008: CALLDATASIZE
00000009: LT
0000000a: ISZERO
0000000b: PUSH2 0x0012
0000000e: JUMPI
0000000f: PUSH0
00000010: DUP1
00000011: REVERT
00000012: JUMPDEST
00000013: PUSH0
00000014: CALLDATALOAD
00000015: PUSH1 0xe0
00000017: SHR
00000018: SWAP1
00000019: DUP2
0000001a: PUSH4 0x29dcb0cf
0000001f: EQ
00000020: PUSH2 0x06d3
00000023: JUMPI
00000024: POP
00000025: DUP1
00000026: PUSH4 0x2e7ba6ef
0000002b: EQ
0000002c: PUSH2 0x0428
0000002f: JUMPI
00000030: DUP1
00000031: PUSH4 0x2eb4a7ab
00000036: EQ
00000037: PUSH2 0x03ee
0000003a: JUMPI
0000003b: DUP1
0000003c: PUSH4 0x715018a6
00000041: EQ
00000042: PUSH2 0x0393
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0x83c44a66
0000004c: EQ
0000004d: PUSH2 0x0371
00000050: JUMPI
00000051: DUP1
00000052: PUSH4 0x8da5cb5b
00000057: EQ
00000058: PUSH2 0x0349
0000005b: JUMPI
0000005c: DUP1
0000005d: PUSH4 0x9e34070f
00000062: EQ
00000063: PUSH2 0x0308
00000066: JUMPI
00000067: DUP1
00000068: PUSH4 0xad5c4648
0000006d: EQ
0000006e: PUSH2 0x02c4
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xdb2e21bc
00000078: EQ
00000079: PUSH2 0x0118
0000007c: JUMPI
0000007d: PUSH4 0xf2fde38b
00000082: EQ
00000083: PUSH2 0x008a
00000086: JUMPI
00000087: PUSH0
00000088: DUP1
00000089: REVERT
0000008a: JUMPDEST
0000008b: CALLVALUE
0000008c: PUSH2 0x0114
0000008f: JUMPI
00000090: PUSH1 0x20
00000092: CALLDATASIZE
00000093: PUSH1 0x03
00000095: NOT
00000096: ADD
00000097: SLT
00000098: PUSH2 0x0114
0000009b: JUMPI
0000009c: PUSH1 0x04
0000009e: CALLDATALOAD
0000009f: PUSH1 0x01
000000a1: PUSH1 0x01
000000a3: PUSH1 0xa0
000000a5: SHL
000000a6: SUB
000000a7: DUP2
000000a8: AND
000000a9: SWAP1
000000aa: DUP2
000000ab: SWAP1
000000ac: SUB
000000ad: PUSH2 0x0114
000000b0: JUMPI
000000b1: PUSH2 0x00b8
000000b4: PUSH2 0x07a8
000000b7: JUMP
000000b8: JUMPDEST
000000b9: DUP1
000000ba: ISZERO
000000bb: PUSH2 0x0101
000000be: JUMPI
000000bf: PUSH1 0x01
000000c1: DUP1
000000c2: SLOAD
000000c3: PUSH1 0x01
000000c5: PUSH1 0x01
000000c7: PUSH1 0xa0
000000c9: SHL
000000ca: SUB
000000cb: NOT
000000cc: DUP2
000000cd: AND
000000ce: DUP4
000000cf: OR
000000d0: SWAP1
000000d1: SWAP2
000000d2: SSTORE
000000d3: PUSH1 0x01
000000d5: PUSH1 0x01
000000d7: PUSH1 0xa0
000000d9: SHL
000000da: SUB
000000db: AND
000000dc: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000000fd: PUSH0
000000fe: DUP1
000000ff: LOG3
00000100: STOP
00000101: JUMPDEST
00000102: PUSH4 0x1e4fbdf7
00000107: PUSH1 0xe0
00000109: SHL
0000010a: PUSH0
0000010b: MSTORE
0000010c: PUSH0
0000010d: PUSH1 0x04
0000010f: MSTORE
00000110: PUSH1 0x24
00000112: PUSH0
00000113: REVERT
00000114: JUMPDEST
00000115: PUSH0
00000116: DUP1
00000117: REVERT
00000118: JUMPDEST
00000119: CALLVALUE
0000011a: PUSH2 0x0114
0000011d: JUMPI
0000011e: PUSH0
0000011f: CALLDATASIZE
00000120: PUSH1 0x03
00000122: NOT
00000123: ADD
00000124: SLT
00000125: PUSH2 0x0114
00000128: JUMPI
00000129: PUSH2 0x0130
0000012c: PUSH2 0x07a8
0000012f: JUMP
00000130: JUMPDEST
00000131: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b
00000152: TIMESTAMP
00000153: LT
00000154: PUSH2 0x02b5
00000157: JUMPI
00000158: PUSH1 0x40
0000015a: MLOAD
0000015b: PUSH4 0x70a08231
00000160: PUSH1 0xe0
00000162: SHL
00000163: DUP2
00000164: MSTORE
00000165: ADDRESS
00000166: PUSH1 0x04
00000168: DUP3
00000169: ADD
0000016a: MSTORE
0000016b: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000018c: PUSH1 0x01
0000018e: PUSH1 0x01
00000190: PUSH1 0xa0
00000192: SHL
00000193: SUB
00000194: AND
00000195: PUSH1 0x20
00000197: DUP3
00000198: PUSH1 0x24
0000019a: DUP2
0000019b: DUP5
0000019c: GAS
0000019d: STATICCALL
0000019e: SWAP2
0000019f: DUP3
000001a0: ISZERO
000001a1: PUSH2 0x0276
000001a4: JUMPI
000001a5: PUSH0
000001a6: SWAP3
000001a7: PUSH2 0x0281
000001aa: JUMPI
000001ab: JUMPDEST
000001ac: POP
000001ad: DUP2
000001ae: PUSH2 0x01b3
000001b1: JUMPI
000001b2: STOP
000001b3: JUMPDEST
000001b4: PUSH1 0x01
000001b6: SLOAD
000001b7: PUSH1 0x40
000001b9: MLOAD
000001ba: PUSH4 0xa9059cbb
000001bf: PUSH1 0xe0
000001c1: SHL
000001c2: DUP2
000001c3: MSTORE
000001c4: PUSH1 0x01
000001c6: PUSH1 0x01
000001c8: PUSH1 0xa0
000001ca: SHL
000001cb: SUB
000001cc: SWAP1
000001cd: SWAP2
000001ce: AND
000001cf: PUSH1 0x04
000001d1: DUP3
000001d2: ADD
000001d3: MSTORE
000001d4: PUSH1 0x24
000001d6: DUP2
000001d7: ADD
000001d8: DUP4
000001d9: SWAP1
000001da: MSTORE
000001db: SWAP1
000001dc: PUSH1 0x20
000001de: SWAP1
000001df: DUP3
000001e0: SWAP1
000001e1: PUSH1 0x44
000001e3: SWAP1
000001e4: DUP3
000001e5: SWAP1
000001e6: PUSH0
000001e7: SWAP1
000001e8: GAS
000001e9: CALL
000001ea: SWAP1
000001eb: DUP2
000001ec: ISZERO
000001ed: PUSH2 0x0276
000001f0: JUMPI
000001f1: PUSH0
000001f2: SWAP2
000001f3: PUSH2 0x0247
000001f6: JUMPI
000001f7: JUMPDEST
000001f8: POP
000001f9: ISZERO
000001fa: PUSH2 0x0238
000001fd: JUMPI
000001fe: PUSH1 0x01
00000200: SLOAD
00000201: PUSH1 0x40
00000203: MLOAD
00000204: SWAP2
00000205: DUP3
00000206: MSTORE
00000207: PUSH1 0x01
00000209: PUSH1 0x01
0000020b: PUSH1 0xa0
0000020d: SHL
0000020e: SUB
0000020f: AND
00000210: SWAP1
00000211: PUSH32 0x2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e51
00000232: SWAP1
00000233: PUSH1 0x20
00000235: SWAP1
00000236: LOG2
00000237: STOP
00000238: JUMPDEST
00000239: PUSH4 0x12171d83
0000023e: PUSH1 0xe3
00000240: SHL
00000241: PUSH0
00000242: MSTORE
00000243: PUSH1 0x04
00000245: PUSH0
00000246: REVERT
00000247: JUMPDEST
00000248: PUSH2 0x0269
0000024b: SWAP2
0000024c: POP
0000024d: PUSH1 0x20
0000024f: RETURNDATASIZE
00000250: PUSH1 0x20
00000252: GT
00000253: PUSH2 0x026f
00000256: JUMPI
00000257: JUMPDEST
00000258: PUSH2 0x0261
0000025b: DUP2
0000025c: DUP4
0000025d: PUSH2 0x070b
00000260: JUMP
00000261: JUMPDEST
00000262: DUP2
00000263: ADD
00000264: SWAP1
00000265: PUSH2 0x0741
00000268: JUMP
00000269: JUMPDEST
0000026a: DUP3
0000026b: PUSH2 0x01f7
0000026e: JUMP
0000026f: JUMPDEST
00000270: POP
00000271: RETURNDATASIZE
00000272: PUSH2 0x0257
00000275: JUMP
00000276: JUMPDEST
00000277: PUSH1 0x40
00000279: MLOAD
0000027a: RETURNDATASIZE
0000027b: PUSH0
0000027c: DUP3
0000027d: RETURNDATACOPY
0000027e: RETURNDATASIZE
0000027f: SWAP1
00000280: REVERT
00000281: JUMPDEST
00000282: SWAP1
00000283: SWAP2
00000284: POP
00000285: PUSH1 0x20
00000287: DUP2
00000288: RETURNDATASIZE
00000289: PUSH1 0x20
0000028b: GT
0000028c: PUSH2 0x02ad
0000028f: JUMPI
00000290: JUMPDEST
00000291: DUP2
00000292: PUSH2 0x029d
00000295: PUSH1 0x20
00000297: SWAP4
00000298: DUP4
00000299: PUSH2 0x070b
0000029c: JUMP
0000029d: JUMPDEST
0000029e: DUP2
0000029f: ADD
000002a0: SUB
000002a1: SLT
000002a2: PUSH2 0x0114
000002a5: JUMPI
000002a6: MLOAD
000002a7: SWAP1
000002a8: DUP3
000002a9: PUSH2 0x01ab
000002ac: JUMP
000002ad: JUMPDEST
000002ae: RETURNDATASIZE
000002af: SWAP2
000002b0: POP
000002b1: PUSH2 0x0290
000002b4: JUMP
000002b5: JUMPDEST
000002b6: PUSH4 0x33762773
000002bb: PUSH1 0xe1
000002bd: SHL
000002be: PUSH0
000002bf: MSTORE
000002c0: PUSH1 0x04
000002c2: PUSH0
000002c3: REVERT
000002c4: JUMPDEST
000002c5: CALLVALUE
000002c6: PUSH2 0x0114
000002c9: JUMPI
000002ca: PUSH0
000002cb: CALLDATASIZE
000002cc: PUSH1 0x03
000002ce: NOT
000002cf: ADD
000002d0: SLT
000002d1: PUSH2 0x0114
000002d4: JUMPI
000002d5: PUSH1 0x40
000002d7: MLOAD
000002d8: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000002f9: PUSH1 0x01
000002fb: PUSH1 0x01
000002fd: PUSH1 0xa0
000002ff: SHL
00000300: SUB
00000301: AND
00000302: DUP2
00000303: MSTORE
00000304: PUSH1 0x20
00000306: SWAP1
00000307: RETURN
00000308: JUMPDEST
00000309: CALLVALUE
0000030a: PUSH2 0x0114
0000030d: JUMPI
0000030e: PUSH1 0x20
00000310: CALLDATASIZE
00000311: PUSH1 0x03
00000313: NOT
00000314: ADD
00000315: SLT
00000316: PUSH2 0x0114
00000319: JUMPI
0000031a: PUSH1 0x20
0000031c: PUSH2 0x033f
0000031f: PUSH1 0x04
00000321: CALLDATALOAD
00000322: DUP1
00000323: PUSH1 0x08
00000325: SHR
00000326: PUSH0
00000327: MSTORE
00000328: PUSH1 0x02
0000032a: PUSH1 0x20
0000032c: MSTORE
0000032d: PUSH1 0x01
0000032f: PUSH1 0xff
00000331: PUSH1 0x40
00000333: PUSH0
00000334: KECCAK256
00000335: SLOAD
00000336: SWAP3
00000337: AND
00000338: SHL
00000339: DUP1
0000033a: SWAP2
0000033b: AND
0000033c: EQ
0000033d: SWAP1
0000033e: JUMP
0000033f: JUMPDEST
00000340: PUSH1 0x40
00000342: MLOAD
00000343: SWAP1
00000344: ISZERO
00000345: ISZERO
00000346: DUP2
00000347: MSTORE
00000348: RETURN
00000349: JUMPDEST
0000034a: CALLVALUE
0000034b: PUSH2 0x0114
0000034e: JUMPI
0000034f: PUSH0
00000350: CALLDATASIZE
00000351: PUSH1 0x03
00000353: NOT
00000354: ADD
00000355: SLT
00000356: PUSH2 0x0114
00000359: JUMPI
0000035a: PUSH1 0x01
0000035c: SLOAD
0000035d: PUSH1 0x40
0000035f: MLOAD
00000360: PUSH1 0x01
00000362: PUSH1 0x01
00000364: PUSH1 0xa0
00000366: SHL
00000367: SUB
00000368: SWAP1
00000369: SWAP2
0000036a: AND
0000036b: DUP2
0000036c: MSTORE
0000036d: PUSH1 0x20
0000036f: SWAP1
00000370: RETURN
00000371: JUMPDEST
00000372: CALLVALUE
00000373: PUSH2 0x0114
00000376: JUMPI
00000377: PUSH0
00000378: CALLDATASIZE
00000379: PUSH1 0x03
0000037b: NOT
0000037c: ADD
0000037d: SLT
0000037e: PUSH2 0x0114
00000381: JUMPI
00000382: PUSH1 0x20
00000384: PUSH2 0x038b
00000387: PUSH2 0x0759
0000038a: JUMP
0000038b: JUMPDEST
0000038c: PUSH1 0x40
0000038e: MLOAD
0000038f: SWAP1
00000390: DUP2
00000391: MSTORE
00000392: RETURN
00000393: JUMPDEST
00000394: CALLVALUE
00000395: PUSH2 0x0114
00000398: JUMPI
00000399: PUSH0
0000039a: CALLDATASIZE
0000039b: PUSH1 0x03
0000039d: NOT
0000039e: ADD
0000039f: SLT
000003a0: PUSH2 0x0114
000003a3: JUMPI
000003a4: PUSH2 0x03ab
000003a7: PUSH2 0x07a8
000003aa: JUMP
000003ab: JUMPDEST
000003ac: PUSH1 0x01
000003ae: DUP1
000003af: SLOAD
000003b0: PUSH1 0x01
000003b2: PUSH1 0x01
000003b4: PUSH1 0xa0
000003b6: SHL
000003b7: SUB
000003b8: NOT
000003b9: DUP2
000003ba: AND
000003bb: SWAP1
000003bc: SWAP2
000003bd: SSTORE
000003be: PUSH0
000003bf: SWAP1
000003c0: PUSH1 0x01
000003c2: PUSH1 0x01
000003c4: PUSH1 0xa0
000003c6: SHL
000003c7: SUB
000003c8: AND
000003c9: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000003ea: DUP3
000003eb: DUP1
000003ec: LOG3
000003ed: STOP
000003ee: JUMPDEST
000003ef: CALLVALUE
000003f0: PUSH2 0x0114
000003f3: JUMPI
000003f4: PUSH0
000003f5: CALLDATASIZE
000003f6: PUSH1 0x03
000003f8: NOT
000003f9: ADD
000003fa: SLT
000003fb: PUSH2 0x0114
000003fe: JUMPI
000003ff: PUSH1 0x20
00000401: PUSH1 0x40
00000403: MLOAD
00000404: PUSH32 0xd6d5d0e353a3f6cc3b0d5ff875487d077e0c50fe9bfacd7c6f39d5bf6ca2c45f
00000425: DUP2
00000426: MSTORE
00000427: RETURN
00000428: JUMPDEST
00000429: CALLVALUE
0000042a: PUSH2 0x0114
0000042d: JUMPI
0000042e: PUSH1 0x80
00000430: CALLDATASIZE
00000431: PUSH1 0x03
00000433: NOT
00000434: ADD
00000435: SLT
00000436: PUSH2 0x0114
00000439: JUMPI
0000043a: PUSH1 0x24
0000043c: CALLDATALOAD
0000043d: PUSH1 0x01
0000043f: PUSH1 0x01
00000441: PUSH1 0xa0
00000443: SHL
00000444: SUB
00000445: DUP2
00000446: AND
00000447: SWAP1
00000448: PUSH1 0x04
0000044a: CALLDATALOAD
0000044b: DUP3
0000044c: DUP3
0000044d: SUB
0000044e: PUSH2 0x0114
00000451: JUMPI
00000452: PUSH1 0x64
00000454: CALLDATALOAD
00000455: SWAP3
00000456: PUSH1 0x44
00000458: CALLDATALOAD
00000459: PUSH8 0xffffffffffffffff
00000462: DUP6
00000463: GT
00000464: PUSH2 0x0114
00000467: JUMPI
00000468: CALLDATASIZE
00000469: PUSH1 0x23
0000046b: DUP7
0000046c: ADD
0000046d: SLT
0000046e: ISZERO
0000046f: PUSH2 0x0114
00000472: JUMPI
00000473: DUP5
00000474: PUSH1 0x04
00000476: ADD
00000477: CALLDATALOAD
00000478: PUSH8 0xffffffffffffffff
00000481: DUP2
00000482: GT
00000483: PUSH2 0x0114
00000486: JUMPI
00000487: DUP1
00000488: PUSH1 0x05
0000048a: SHL
0000048b: SWAP6
0000048c: PUSH1 0x24
0000048e: DUP8
0000048f: DUP3
00000490: ADD
00000491: ADD
00000492: SWAP1
00000493: CALLDATASIZE
00000494: DUP3
00000495: GT
00000496: PUSH2 0x0114
00000499: JUMPI
0000049a: PUSH1 0x02
0000049c: PUSH0
0000049d: SLOAD
0000049e: EQ
0000049f: PUSH2 0x06c4
000004a2: JUMPI
000004a3: PUSH1 0x02
000004a5: PUSH0
000004a6: SSTORE
000004a7: PUSH2 0x04c8
000004aa: DUP7
000004ab: DUP1
000004ac: PUSH1 0x08
000004ae: SHR
000004af: PUSH0
000004b0: MSTORE
000004b1: PUSH1 0x02
000004b3: PUSH1 0x20
000004b5: MSTORE
000004b6: PUSH1 0x01
000004b8: PUSH1 0xff
000004ba: PUSH1 0x40
000004bc: PUSH0
000004bd: KECCAK256
000004be: SLOAD
000004bf: SWAP3
000004c0: AND
000004c1: SHL
000004c2: DUP1
000004c3: SWAP2
000004c4: AND
000004c5: EQ
000004c6: SWAP1
000004c7: JUMP
000004c8: JUMPDEST
000004c9: PUSH2 0x06b5
000004cc: JUMPI
000004cd: DUP4
000004ce: ISZERO
000004cf: PUSH2 0x06a6
000004d2: JUMPI
000004d3: PUSH1 0x40
000004d5: MLOAD
000004d6: PUSH1 0x20
000004d8: DUP2
000004d9: ADD
000004da: SWAP1
000004db: DUP8
000004dc: DUP3
000004dd: MSTORE
000004de: DUP7
000004df: PUSH1 0x40
000004e1: DUP3
000004e2: ADD
000004e3: MSTORE
000004e4: DUP6
000004e5: PUSH1 0x60
000004e7: DUP3
000004e8: ADD
000004e9: MSTORE
000004ea: PUSH1 0x60
000004ec: DUP2
000004ed: MSTORE
000004ee: PUSH2 0x04f8
000004f1: PUSH1 0x80
000004f3: DUP3
000004f4: PUSH2 0x070b
000004f7: JUMP
000004f8: JUMPDEST
000004f9: MLOAD
000004fa: SWAP1
000004fb: KECCAK256
000004fc: PUSH1 0x40
000004fe: MLOAD
000004ff: PUSH1 0x20
00000501: DUP2
00000502: ADD
00000503: SWAP2
00000504: DUP3
00000505: MSTORE
00000506: PUSH1 0x20
00000508: DUP2
00000509: MSTORE
0000050a: PUSH2 0x0514
0000050d: PUSH1 0x40
0000050f: DUP3
00000510: PUSH2 0x070b
00000513: JUMP
00000514: JUMPDEST
00000515: MLOAD
00000516: SWAP1
00000517: KECCAK256
00000518: SWAP3
00000519: PUSH2 0x0528
0000051c: PUSH1 0x20
0000051e: PUSH1 0x40
00000520: MLOAD
00000521: SWAP11
00000522: ADD
00000523: DUP11
00000524: PUSH2 0x070b
00000527: JUMP
00000528: JUMPDEST
00000529: DUP9
0000052a: MSTORE
0000052b: PUSH1 0x24
0000052d: ADD
0000052e: PUSH1 0x20
00000530: DUP9
00000531: ADD
00000532: JUMPDEST
00000533: DUP3
00000534: DUP3
00000535: LT
00000536: PUSH2 0x0696
00000539: JUMPI
0000053a: POP
0000053b: POP
0000053c: POP
0000053d: SWAP3
0000053e: PUSH0
0000053f: SWAP4
00000540: JUMPDEST
00000541: DUP7
00000542: MLOAD
00000543: DUP6
00000544: LT
00000545: ISZERO
00000546: PUSH2 0x0582
00000549: JUMPI
0000054a: PUSH1 0x20
0000054c: DUP6
0000054d: PUSH1 0x05
0000054f: SHL
00000550: DUP9
00000551: ADD
00000552: ADD
00000553: MLOAD
00000554: SWAP1
00000555: DUP2
00000556: DUP2
00000557: LT
00000558: PUSH0
00000559: EQ
0000055a: PUSH2 0x0571
0000055d: JUMPI
0000055e: PUSH0
0000055f: MSTORE
00000560: PUSH1 0x20
00000562: MSTORE
00000563: PUSH1 0x01
00000565: PUSH1 0x40
00000567: PUSH0
00000568: KECCAK256
00000569: JUMPDEST
0000056a: SWAP5
0000056b: ADD
0000056c: SWAP4
0000056d: PUSH2 0x0540
00000570: JUMP
00000571: JUMPDEST
00000572: SWAP1
00000573: PUSH0
00000574: MSTORE
00000575: PUSH1 0x20
00000577: MSTORE
00000578: PUSH1 0x01
0000057a: PUSH1 0x40
0000057c: PUSH0
0000057d: KECCAK256
0000057e: PUSH2 0x0569
00000581: JUMP
00000582: JUMPDEST
00000583: DUP6
00000584: SWAP1
00000585: PUSH32 0xd6d5d0e353a3f6cc3b0d5ff875487d077e0c50fe9bfacd7c6f39d5bf6ca2c45f
000005a6: SUB
000005a7: PUSH2 0x0687
000005aa: JUMPI
000005ab: PUSH1 0x08
000005ad: DUP3
000005ae: SWAP1
000005af: SHR
000005b0: PUSH0
000005b1: SWAP1
000005b2: DUP2
000005b3: MSTORE
000005b4: PUSH1 0x02
000005b6: PUSH1 0x20
000005b8: SWAP1
000005b9: DUP2
000005ba: MSTORE
000005bb: PUSH1 0x40
000005bd: DUP1
000005be: DUP4
000005bf: KECCAK256
000005c0: DUP1
000005c1: SLOAD
000005c2: PUSH1 0x01
000005c4: PUSH1 0xff
000005c6: SWAP1
000005c7: SWAP8
000005c8: AND
000005c9: SWAP7
000005ca: SWAP1
000005cb: SWAP7
000005cc: SHL
000005cd: SWAP1
000005ce: SWAP6
000005cf: OR
000005d0: SWAP1
000005d1: SWAP5
000005d2: SSTORE
000005d3: SWAP3
000005d4: MLOAD
000005d5: PUSH4 0xa9059cbb
000005da: PUSH1 0xe0
000005dc: SHL
000005dd: DUP2
000005de: MSTORE
000005df: PUSH1 0x01
000005e1: PUSH1 0x01
000005e3: PUSH1 0xa0
000005e5: SHL
000005e6: SUB
000005e7: SWAP3
000005e8: DUP4
000005e9: AND
000005ea: PUSH1 0x04
000005ec: DUP3
000005ed: ADD
000005ee: MSTORE
000005ef: PUSH1 0x24
000005f1: DUP2
000005f2: ADD
000005f3: DUP6
000005f4: SWAP1
000005f5: MSTORE
000005f6: SWAP3
000005f7: SWAP2
000005f8: DUP4
000005f9: SWAP2
000005fa: PUSH1 0x44
000005fc: SWAP2
000005fd: DUP4
000005fe: SWAP2
000005ff: SWAP1
00000600: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000621: AND
00000622: GAS
00000623: CALL
00000624: SWAP1
00000625: DUP2
00000626: ISZERO
00000627: PUSH2 0x0276
0000062a: JUMPI
0000062b: PUSH0
0000062c: SWAP2
0000062d: PUSH2 0x0668
00000630: JUMPI
00000631: JUMPDEST
00000632: POP
00000633: ISZERO
00000634: PUSH2 0x0238
00000637: JUMPI
00000638: PUSH1 0x20
0000063a: PUSH32 0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a
0000065b: SWAP2
0000065c: PUSH1 0x40
0000065e: MLOAD
0000065f: SWAP1
00000660: DUP2
00000661: MSTORE
00000662: LOG2
00000663: PUSH1 0x01
00000665: PUSH0
00000666: SSTORE
00000667: STOP
00000668: JUMPDEST
00000669: PUSH2 0x0681
0000066c: SWAP2
0000066d: POP
0000066e: PUSH1 0x20
00000670: RETURNDATASIZE
00000671: PUSH1 0x20
00000673: GT
00000674: PUSH2 0x026f
00000677: JUMPI
00000678: PUSH2 0x0261
0000067b: DUP2
0000067c: DUP4
0000067d: PUSH2 0x070b
00000680: JUMP
00000681: JUMPDEST
00000682: DUP4
00000683: PUSH2 0x0631
00000686: JUMP
00000687: JUMPDEST
00000688: PUSH4 0x09bde339
0000068d: PUSH1 0xe0
0000068f: SHL
00000690: PUSH0
00000691: MSTORE
00000692: PUSH1 0x04
00000694: PUSH0
00000695: REVERT
00000696: JUMPDEST
00000697: DUP2
00000698: CALLDATALOAD
00000699: DUP2
0000069a: MSTORE
0000069b: PUSH1 0x20
0000069d: SWAP2
0000069e: DUP3
0000069f: ADD
000006a0: SWAP2
000006a1: ADD
000006a2: PUSH2 0x0532
000006a5: JUMP
000006a6: JUMPDEST
000006a7: PUSH4 0x1f2a2005
000006ac: PUSH1 0xe0
000006ae: SHL
000006af: PUSH0
000006b0: MSTORE
000006b1: PUSH1 0x04
000006b3: PUSH0
000006b4: REVERT
000006b5: JUMPDEST
000006b6: PUSH4 0x0c8d9eab
000006bb: PUSH1 0xe3
000006bd: SHL
000006be: PUSH0
000006bf: MSTORE
000006c0: PUSH1 0x04
000006c2: PUSH0
000006c3: REVERT
000006c4: JUMPDEST
000006c5: PUSH4 0x3ee5aeb5
000006ca: PUSH1 0xe0
000006cc: SHL
000006cd: PUSH0
000006ce: MSTORE
000006cf: PUSH1 0x04
000006d1: PUSH0
000006d2: REVERT
000006d3: JUMPDEST
000006d4: CALLVALUE
000006d5: PUSH2 0x0114
000006d8: JUMPI
000006d9: PUSH0
000006da: CALLDATASIZE
000006db: PUSH1 0x03
000006dd: NOT
000006de: ADD
000006df: SLT
000006e0: PUSH2 0x0114
000006e3: JUMPI
000006e4: PUSH1 0x20
000006e6: SWAP1
000006e7: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b
00000708: DUP2
00000709: MSTORE
0000070a: RETURN
0000070b: JUMPDEST
0000070c: SWAP1
0000070d: PUSH1 0x1f
0000070f: DUP1
00000710: NOT
00000711: SWAP2
00000712: ADD
00000713: AND
00000714: DUP2
00000715: ADD
00000716: SWAP1
00000717: DUP2
00000718: LT
00000719: PUSH8 0xffffffffffffffff
00000722: DUP3
00000723: GT
00000724: OR
00000725: PUSH2 0x072d
00000728: JUMPI
00000729: PUSH1 0x40
0000072b: MSTORE
0000072c: JUMP
0000072d: JUMPDEST
0000072e: PUSH4 0x4e487b71
00000733: PUSH1 0xe0
00000735: SHL
00000736: PUSH0
00000737: MSTORE
00000738: PUSH1 0x41
0000073a: PUSH1 0x04
0000073c: MSTORE
0000073d: PUSH1 0x24
0000073f: PUSH0
00000740: REVERT
00000741: JUMPDEST
00000742: SWAP1
00000743: DUP2
00000744: PUSH1 0x20
00000746: SWAP2
00000747: SUB
00000748: SLT
00000749: PUSH2 0x0114
0000074c: JUMPI
0000074d: MLOAD
0000074e: DUP1
0000074f: ISZERO
00000750: ISZERO
00000751: DUP2
00000752: SUB
00000753: PUSH2 0x0114
00000756: JUMPI
00000757: SWAP1
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH32 0x000000000000000000000000000000000000000000000000000000006936d41b
0000077b: DUP1
0000077c: TIMESTAMP
0000077d: LT
0000077e: ISZERO
0000077f: PUSH2 0x07a3
00000782: JUMPI
00000783: TIMESTAMP
00000784: DUP2
00000785: SUB
00000786: SWAP1
00000787: DUP2
00000788: GT
00000789: PUSH2 0x078f
0000078c: JUMPI
0000078d: SWAP1
0000078e: JUMP
0000078f: JUMPDEST
00000790: PUSH4 0x4e487b71
00000795: PUSH1 0xe0
00000797: SHL
00000798: PUSH0
00000799: MSTORE
0000079a: PUSH1 0x11
0000079c: PUSH1 0x04
0000079e: MSTORE
0000079f: PUSH1 0x24
000007a1: PUSH0
000007a2: REVERT
000007a3: JUMPDEST
000007a4: POP
000007a5: PUSH0
000007a6: SWAP1
000007a7: JUMP
000007a8: JUMPDEST
000007a9: PUSH1 0x01
000007ab: SLOAD
000007ac: PUSH1 0x01
000007ae: PUSH1 0x01
000007b0: PUSH1 0xa0
000007b2: SHL
000007b3: SUB
000007b4: AND
000007b5: CALLER
000007b6: SUB
000007b7: PUSH2 0x07bc
000007ba: JUMPI
000007bb: JUMP
000007bc: JUMPDEST
000007bd: PUSH4 0x118cdaa7
000007c2: PUSH1 0xe0
000007c4: SHL
000007c5: PUSH0
000007c6: MSTORE
000007c7: CALLER
000007c8: PUSH1 0x04
000007ca: MSTORE
000007cb: PUSH1 0x24
000007cd: PUSH0
000007ce: REVERT
000007cf: INVALID
000007d0: LOG2
000007d1: PUSH5 0x6970667358
000007d7: UNKNOWN(0x22)
000007d8: SLT
000007d9: KECCAK256
000007da: OR
000007db: PUSH0
000007dc: UNKNOWN(0xB8)
000007dd: UNKNOWN(0xCC)
000007de: DUP4
000007df: CALLDATASIZE
000007e0: EXTCODECOPY
000007e1: UNKNOWN(0xC7)
000007e2: UNKNOWN(0xC8)
000007e3: MCOPY
000007e4: UNKNOWN(0xBD)
000007e5: UNKNOWN(0xD4)
000007e6: UNKNOWN(0x0E)
000007e7: PUSH13 0x72602378cfaebc76f2eae35dd4
000007f5: UNKNOWN(0x0E)
000007f6: DELEGATECALL
000007f7: DIFFICULTY
000007f8: RETURNDATACOPY
000007f9: UNKNOWN(0xBB)
000007fa: PUSH5 0x736f6c6343
00000800: STOP
00000801: ADDMOD
00000802: SHR
00000803: STOP
00000804: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xa32749e537ad724c3fb5fa2585e8804af4471e826ac6b244df3df67948cf18cd
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 120,
    "trace_id": "0xa32749e537ad724c3fb5fa2585e8804af4471e826ac6b244df3df67948cf18cd",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x29dcb0cf",
            "selector": "0x29dcb0cf",
            "calldata_variants": [
                "0x29dcb0cf",
                "0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e7ba6ef",
            "selector": "0x2e7ba6ef",
            "calldata_variants": [
                "0x2e7ba6ef",
                "0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2eb4a7ab",
            "selector": "0x2eb4a7ab",
            "calldata_variants": [
                "0x2eb4a7ab",
                "0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x83c44a66",
            "selector": "0x83c44a66",
            "calldata_variants": [
                "0x83c44a66",
                "0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9e34070f",
            "selector": "0x9e34070f",
            "calldata_variants": [
                "0x9e34070f",
                "0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2038,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182
call_targets: 0xffbacd9b9d85850f2d4711f17badbf73580a0d0f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xffbacd9b9d85850f2d4711f17badbf73580a0d0f"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x29dcb0cf",
            "selector": "0x29dcb0cf",
            "calldata_variants": [
                "0x29dcb0cf",
                "0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e7ba6ef",
            "selector": "0x2e7ba6ef",
            "calldata_variants": [
                "0x2e7ba6ef",
                "0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2eb4a7ab",
            "selector": "0x2eb4a7ab",
            "calldata_variants": [
                "0x2eb4a7ab",
                "0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x83c44a66",
            "selector": "0x83c44a66",
            "calldata_variants": [
                "0x83c44a66",
                "0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9e34070f",
            "selector": "0x9e34070f",
            "calldata_variants": [
                "0x9e34070f",
                "0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 489,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1571,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182
call_targets: 0xffbacd9b9d85850f2d4711f17badbf73580a0d0f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb164578775d7c15df9dd759307360c34fde7a14c57d6900ae02716428e9bb182",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xffbacd9b9d85850f2d4711f17badbf73580a0d0f"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x29dcb0cf",
            "selector": "0x29dcb0cf",
            "calldata_variants": [
                "0x29dcb0cf",
                "0x29dcb0cf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e7ba6ef",
            "selector": "0x2e7ba6ef",
            "calldata_variants": [
                "0x2e7ba6ef",
                "0x2e7ba6ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2eb4a7ab",
            "selector": "0x2eb4a7ab",
            "calldata_variants": [
                "0x2eb4a7ab",
                "0x2eb4a7ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x83c44a66",
            "selector": "0x83c44a66",
            "calldata_variants": [
                "0x83c44a66",
                "0x83c44a660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9e34070f",
            "selector": "0x9e34070f",
            "calldata_variants": [
                "0x9e34070f",
                "0x9e34070f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 489,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1571,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}