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

Analysis Run

20956952-879e-48c8-9543-b03182f06ba0

failed
Chain ID
1
Address
Block Number
Created
Mon, Jan 5, 2026 6:37 AM
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
Authorization based on tx.origin
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
31718 report.consolidate complete 1 / 1 3 months ago
95731 artifact.fetch failed 1 / 3 1 week ago
95732 tool.cast_disasm complete 1 / 3 1 week ago
95733 analysis.bundle complete 1 / 3 1 week ago
95734 capability.graph complete 1 / 3 1 week ago
95735 detector.run complete 1 / 3 1 week ago
95736 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 concrete, exploitable profit paths found in AUDIT_BUNDLE.txt under the provided constraints.
View stderr
[codex:1530365] OpenAI Codex v0.77.0 (research preview)
[codex:1530365] --------
[codex:1530365] workdir: /tmp/codex-multi-z4jpz2ml
[codex:1530365] model: gpt-5.2-codex
[codex:1530365] provider: openai
[codex:1530365] approval: never
[codex:1530365] sandbox: read-only
[codex:1530365] reasoning effort: xhigh
[codex:1530365] reasoning summaries: auto
[codex:1530365] session id: 019b8cdf-e822-7e73-af85-77d2c49c8191
[codex:1530365] --------
[codex:1530365] user
[codex:1530365] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1530365] 
[codex:1530365] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1530365] 
[codex:1530365] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1530365] - Gas inefficiency, code quality, naming, or best practices
[codex:1530365] - Theoretical vulnerabilities without a clear extraction path
[codex:1530365] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1530365] - Front-running unless it enables theft beyond MEV
[codex:1530365] - DoS, griefing, or issues that don't result in attacker profit
[codex:1530365] - Missing events, view function issues, or informational findings
[codex:1530365] 
[codex:1530365] HIGH-VALUE PATTERNS TO HUNT:
[codex:1530365] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1530365] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1530365] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1530365] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1530365] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1530365] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1530365] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1530365] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1530365] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1530365] 
[codex:1530365] For each finding, you MUST provide:
[codex:1530365] 1. Exact file and line numbers of vulnerable code
[codex:1530365] 2. Step-by-step exploit transaction sequence
[codex:1530365] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1530365] 
[codex:1530365] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1530365] 
[codex:1530365] Output MUST be valid JSON matching the provided schema.
[codex:1530365] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1530365] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1530365] mcp startup: no servers
[codex:1530365] 
[codex:1530365] thinking
[codex:1530365] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1530365] exec
[codex:1530365] /bin/bash -lc ls in /tmp/codex-multi-z4jpz2ml succeeded in 6ms:
[codex:1530365] AUDIT_BUNDLE.txt
[codex:1530365] codex-output-schema.json
[codex:1530365] contracts
[codex:1530365] exec
[codex:1530365] /bin/bash -lc 'rg -n "" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z4jpz2ml succeeded in 6ms:
[codex:1530365] 1:This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1530365] 2:
[codex:1530365] 3:================================================================================
[codex:1530365] 4:FILE: contracts/Contract.sol
[codex:1530365] 5:================================================================================
[codex:1530365] 6:contract PI_Quiz
[codex:1530365] 7:{
[codex:1530365] 8:    function Try(string memory _response) public payable
[codex:1530365] 9:    {
[codex:1530365] 10:        require(msg.sender == tx.origin);
[codex:1530365] 11:
[codex:1530365] 12:        if(responseHash == keccak256(abi.encode(_response)) && msg.value > 1 ether)
[codex:1530365] 13:        {
[codex:1530365] 14:            payable(msg.sender).transfer(address(this).balance);
[codex:1530365] 15:        }
[codex:1530365] 16:    }
[codex:1530365] 17:
[codex:1530365] 18:    string public question;
[codex:1530365] 19:
[codex:1530365] 20:    bytes32 responseHash;
[codex:1530365] 
[codex:1530365] thinking
[codex:1530365] **Analyzing quiz contract for exploits**
[codex:1530365] 
[codex:1530365] I’m examining the quiz contract’s logic, focusing on potential exploits like access control flaws or preimage attacks on stored hashes. The admin mechanism relies on hashed addresses making takeover improbable, and the puzzle’s private response hash likely resists brute forcing given entropy. Considering gas limits and msg.sender checks, there appear to be no reentrancy or contract-call bypass vulnerabilities. After a deep dive, I find no concrete exploit paths or security issues, so I'm ready to produce a no-findings JSON summary per the audit instructions.
[codex:1530365] codex
[codex:1530365] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in AUDIT_BUNDLE.txt under the provided constraints.","findings":[]}
[codex:1530365] tokens used
[codex:1530365] 3,030
[codex:1530365] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in AUDIT_BUNDLE.txt under the provided constraints.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-05T06:37:43.461064+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit paths found in AUDIT_BUNDLE.txt under the provided constraints.",
    "raw_final": {
        "summary": "No concrete, exploitable profit paths found in AUDIT_BUNDLE.txt under the provided constraints.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
1
Total opcodes
1330
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x004a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x3853682c
00000019: EQ
0000001a: PUSH2 0x0058
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x3fad9ae0
00000024: EQ
00000025: PUSH2 0x006b
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xbedf0f4a
0000002f: EQ
00000030: PUSH2 0x0096
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc76de3e9
0000003a: EQ
0000003b: PUSH2 0x009e
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xed8df164
00000045: EQ
00000046: PUSH2 0x00b1
00000049: JUMPI
0000004a: JUMPDEST
0000004b: CALLVALUE
0000004c: DUP1
0000004d: ISZERO
0000004e: PUSH2 0x0056
00000051: JUMPI
00000052: PUSH1 0x00
00000054: DUP1
00000055: REVERT
00000056: JUMPDEST
00000057: STOP
00000058: JUMPDEST
00000059: PUSH2 0x0056
0000005c: PUSH2 0x0066
0000005f: CALLDATASIZE
00000060: PUSH1 0x04
00000062: PUSH2 0x0371
00000065: JUMP
00000066: JUMPDEST
00000067: PUSH2 0x00c4
0000006a: JUMP
0000006b: JUMPDEST
0000006c: CALLVALUE
0000006d: DUP1
0000006e: ISZERO
0000006f: PUSH2 0x0077
00000072: JUMPI
00000073: PUSH1 0x00
00000075: DUP1
00000076: REVERT
00000077: JUMPDEST
00000078: POP
00000079: PUSH2 0x0080
0000007c: PUSH2 0x0144
0000007f: JUMP
00000080: JUMPDEST
00000081: PUSH1 0x40
00000083: MLOAD
00000084: PUSH2 0x008d
00000087: SWAP2
00000088: SWAP1
00000089: PUSH2 0x0422
0000008c: JUMP
0000008d: JUMPDEST
0000008e: PUSH1 0x40
00000090: MLOAD
00000091: DUP1
00000092: SWAP2
00000093: SUB
00000094: SWAP1
00000095: RETURN
00000096: JUMPDEST
00000097: PUSH2 0x0056
0000009a: PUSH2 0x01d2
0000009d: JUMP
0000009e: JUMPDEST
0000009f: PUSH2 0x0056
000000a2: PUSH2 0x00ac
000000a5: CALLDATASIZE
000000a6: PUSH1 0x04
000000a8: PUSH2 0x04b9
000000ab: JUMP
000000ac: JUMPDEST
000000ad: PUSH2 0x0257
000000b0: JUMP
000000b1: JUMPDEST
000000b2: PUSH2 0x0056
000000b5: PUSH2 0x00bf
000000b8: CALLDATASIZE
000000b9: PUSH1 0x04
000000bb: PUSH2 0x0525
000000be: JUMP
000000bf: JUMPDEST
000000c0: PUSH2 0x02f5
000000c3: JUMP
000000c4: JUMPDEST
000000c5: CALLER
000000c6: ORIGIN
000000c7: EQ
000000c8: PUSH2 0x00d0
000000cb: JUMPI
000000cc: PUSH1 0x00
000000ce: DUP1
000000cf: REVERT
000000d0: JUMPDEST
000000d1: DUP1
000000d2: PUSH1 0x40
000000d4: MLOAD
000000d5: PUSH1 0x20
000000d7: ADD
000000d8: PUSH2 0x00e1
000000db: SWAP2
000000dc: SWAP1
000000dd: PUSH2 0x0422
000000e0: JUMP
000000e1: JUMPDEST
000000e2: PUSH1 0x40
000000e4: MLOAD
000000e5: PUSH1 0x20
000000e7: DUP2
000000e8: DUP4
000000e9: SUB
000000ea: SUB
000000eb: DUP2
000000ec: MSTORE
000000ed: SWAP1
000000ee: PUSH1 0x40
000000f0: MSTORE
000000f1: DUP1
000000f2: MLOAD
000000f3: SWAP1
000000f4: PUSH1 0x20
000000f6: ADD
000000f7: KECCAK256
000000f8: PUSH1 0x01
000000fa: SLOAD
000000fb: EQ
000000fc: DUP1
000000fd: ISZERO
000000fe: PUSH2 0x010e
00000101: JUMPI
00000102: POP
00000103: PUSH8 0x0de0b6b3a7640000
0000010c: CALLVALUE
0000010d: GT
0000010e: JUMPDEST
0000010f: ISZERO
00000110: PUSH2 0x0141
00000113: JUMPI
00000114: PUSH1 0x40
00000116: MLOAD
00000117: CALLER
00000118: SWAP1
00000119: SELFBALANCE
0000011a: DUP1
0000011b: ISZERO
0000011c: PUSH2 0x08fc
0000011f: MUL
00000120: SWAP2
00000121: PUSH1 0x00
00000123: DUP2
00000124: DUP2
00000125: DUP2
00000126: DUP6
00000127: DUP9
00000128: DUP9
00000129: CALL
0000012a: SWAP4
0000012b: POP
0000012c: POP
0000012d: POP
0000012e: POP
0000012f: ISZERO
00000130: DUP1
00000131: ISZERO
00000132: PUSH2 0x013f
00000135: JUMPI
00000136: RETURNDATASIZE
00000137: PUSH1 0x00
00000139: DUP1
0000013a: RETURNDATACOPY
0000013b: RETURNDATASIZE
0000013c: PUSH1 0x00
0000013e: REVERT
0000013f: JUMPDEST
00000140: POP
00000141: JUMPDEST
00000142: POP
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH1 0x00
00000147: DUP1
00000148: SLOAD
00000149: PUSH2 0x0151
0000014c: SWAP1
0000014d: PUSH2 0x0571
00000150: JUMP
00000151: JUMPDEST
00000152: DUP1
00000153: PUSH1 0x1f
00000155: ADD
00000156: PUSH1 0x20
00000158: DUP1
00000159: SWAP2
0000015a: DIV
0000015b: MUL
0000015c: PUSH1 0x20
0000015e: ADD
0000015f: PUSH1 0x40
00000161: MLOAD
00000162: SWAP1
00000163: DUP2
00000164: ADD
00000165: PUSH1 0x40
00000167: MSTORE
00000168: DUP1
00000169: SWAP3
0000016a: SWAP2
0000016b: SWAP1
0000016c: DUP2
0000016d: DUP2
0000016e: MSTORE
0000016f: PUSH1 0x20
00000171: ADD
00000172: DUP3
00000173: DUP1
00000174: SLOAD
00000175: PUSH2 0x017d
00000178: SWAP1
00000179: PUSH2 0x0571
0000017c: JUMP
0000017d: JUMPDEST
0000017e: DUP1
0000017f: ISZERO
00000180: PUSH2 0x01ca
00000183: JUMPI
00000184: DUP1
00000185: PUSH1 0x1f
00000187: LT
00000188: PUSH2 0x019f
0000018b: JUMPI
0000018c: PUSH2 0x0100
0000018f: DUP1
00000190: DUP4
00000191: SLOAD
00000192: DIV
00000193: MUL
00000194: DUP4
00000195: MSTORE
00000196: SWAP2
00000197: PUSH1 0x20
00000199: ADD
0000019a: SWAP2
0000019b: PUSH2 0x01ca
0000019e: JUMP
0000019f: JUMPDEST
000001a0: DUP3
000001a1: ADD
000001a2: SWAP2
000001a3: SWAP1
000001a4: PUSH1 0x00
000001a6: MSTORE
000001a7: PUSH1 0x20
000001a9: PUSH1 0x00
000001ab: KECCAK256
000001ac: SWAP1
000001ad: JUMPDEST
000001ae: DUP2
000001af: SLOAD
000001b0: DUP2
000001b1: MSTORE
000001b2: SWAP1
000001b3: PUSH1 0x01
000001b5: ADD
000001b6: SWAP1
000001b7: PUSH1 0x20
000001b9: ADD
000001ba: DUP1
000001bb: DUP4
000001bc: GT
000001bd: PUSH2 0x01ad
000001c0: JUMPI
000001c1: DUP3
000001c2: SWAP1
000001c3: SUB
000001c4: PUSH1 0x1f
000001c6: AND
000001c7: DUP3
000001c8: ADD
000001c9: SWAP2
000001ca: JUMPDEST
000001cb: POP
000001cc: POP
000001cd: POP
000001ce: POP
000001cf: POP
000001d0: DUP2
000001d1: JUMP
000001d2: JUMPDEST
000001d3: PUSH1 0x40
000001d5: MLOAD
000001d6: PUSH1 0x01
000001d8: PUSH1 0x01
000001da: PUSH1 0x60
000001dc: SHL
000001dd: SUB
000001de: NOT
000001df: CALLER
000001e0: PUSH1 0x60
000001e2: SHL
000001e3: AND
000001e4: PUSH1 0x20
000001e6: DUP3
000001e7: ADD
000001e8: MSTORE
000001e9: PUSH1 0x02
000001eb: SWAP1
000001ec: PUSH1 0x00
000001ee: SWAP1
000001ef: PUSH1 0x34
000001f1: ADD
000001f2: PUSH1 0x40
000001f4: DUP1
000001f5: MLOAD
000001f6: PUSH1 0x1f
000001f8: NOT
000001f9: DUP2
000001fa: DUP5
000001fb: SUB
000001fc: ADD
000001fd: DUP2
000001fe: MSTORE
000001ff: SWAP2
00000200: DUP2
00000201: MSTORE
00000202: DUP2
00000203: MLOAD
00000204: PUSH1 0x20
00000206: SWAP3
00000207: DUP4
00000208: ADD
00000209: KECCAK256
0000020a: DUP4
0000020b: MSTORE
0000020c: SWAP1
0000020d: DUP3
0000020e: ADD
0000020f: SWAP3
00000210: SWAP1
00000211: SWAP3
00000212: MSTORE
00000213: ADD
00000214: PUSH1 0x00
00000216: KECCAK256
00000217: SLOAD
00000218: PUSH1 0xff
0000021a: AND
0000021b: PUSH2 0x0223
0000021e: JUMPI
0000021f: PUSH1 0x00
00000221: DUP1
00000222: REVERT
00000223: JUMPDEST
00000224: PUSH1 0x40
00000226: MLOAD
00000227: CALLER
00000228: SWAP1
00000229: SELFBALANCE
0000022a: DUP1
0000022b: ISZERO
0000022c: PUSH2 0x08fc
0000022f: MUL
00000230: SWAP2
00000231: PUSH1 0x00
00000233: DUP2
00000234: DUP2
00000235: DUP2
00000236: DUP6
00000237: DUP9
00000238: DUP9
00000239: CALL
0000023a: SWAP4
0000023b: POP
0000023c: POP
0000023d: POP
0000023e: POP
0000023f: ISZERO
00000240: DUP1
00000241: ISZERO
00000242: PUSH2 0x024f
00000245: JUMPI
00000246: RETURNDATASIZE
00000247: PUSH1 0x00
00000249: DUP1
0000024a: RETURNDATACOPY
0000024b: RETURNDATASIZE
0000024c: PUSH1 0x00
0000024e: REVERT
0000024f: JUMPDEST
00000250: POP
00000251: PUSH1 0x00
00000253: PUSH1 0x01
00000255: SSTORE
00000256: JUMP
00000257: JUMPDEST
00000258: PUSH1 0x40
0000025a: MLOAD
0000025b: PUSH1 0x01
0000025d: PUSH1 0x01
0000025f: PUSH1 0x60
00000261: SHL
00000262: SUB
00000263: NOT
00000264: CALLER
00000265: PUSH1 0x60
00000267: SHL
00000268: AND
00000269: PUSH1 0x20
0000026b: DUP3
0000026c: ADD
0000026d: MSTORE
0000026e: PUSH1 0x02
00000270: SWAP1
00000271: PUSH1 0x00
00000273: SWAP1
00000274: PUSH1 0x34
00000276: ADD
00000277: PUSH1 0x40
00000279: DUP1
0000027a: MLOAD
0000027b: PUSH1 0x1f
0000027d: NOT
0000027e: DUP2
0000027f: DUP5
00000280: SUB
00000281: ADD
00000282: DUP2
00000283: MSTORE
00000284: SWAP2
00000285: DUP2
00000286: MSTORE
00000287: DUP2
00000288: MLOAD
00000289: PUSH1 0x20
0000028b: SWAP3
0000028c: DUP4
0000028d: ADD
0000028e: KECCAK256
0000028f: DUP4
00000290: MSTORE
00000291: SWAP1
00000292: DUP3
00000293: ADD
00000294: SWAP3
00000295: SWAP1
00000296: SWAP3
00000297: MSTORE
00000298: ADD
00000299: PUSH1 0x00
0000029b: KECCAK256
0000029c: SLOAD
0000029d: PUSH1 0xff
0000029f: AND
000002a0: PUSH2 0x02a8
000002a3: JUMPI
000002a4: PUSH1 0x00
000002a6: DUP1
000002a7: REVERT
000002a8: JUMPDEST
000002a9: PUSH1 0x01
000002ab: SLOAD
000002ac: PUSH1 0x00
000002ae: SUB
000002af: PUSH2 0x02ef
000002b2: JUMPI
000002b3: DUP2
000002b4: DUP2
000002b5: PUSH1 0x40
000002b7: MLOAD
000002b8: PUSH1 0x20
000002ba: ADD
000002bb: PUSH2 0x02c5
000002be: SWAP3
000002bf: SWAP2
000002c0: SWAP1
000002c1: PUSH2 0x05ab
000002c4: JUMP
000002c5: JUMPDEST
000002c6: PUSH1 0x40
000002c8: DUP1
000002c9: MLOAD
000002ca: PUSH1 0x1f
000002cc: NOT
000002cd: DUP2
000002ce: DUP5
000002cf: SUB
000002d0: ADD
000002d1: DUP2
000002d2: MSTORE
000002d3: SWAP2
000002d4: SWAP1
000002d5: MSTORE
000002d6: DUP1
000002d7: MLOAD
000002d8: PUSH1 0x20
000002da: SWAP1
000002db: SWAP2
000002dc: ADD
000002dd: KECCAK256
000002de: PUSH1 0x01
000002e0: SSTORE
000002e1: PUSH1 0x00
000002e3: PUSH2 0x02ed
000002e6: DUP5
000002e7: DUP7
000002e8: DUP4
000002e9: PUSH2 0x0629
000002ec: JUMP
000002ed: JUMPDEST
000002ee: POP
000002ef: JUMPDEST
000002f0: POP
000002f1: POP
000002f2: POP
000002f3: POP
000002f4: JUMP
000002f5: JUMPDEST
000002f6: PUSH1 0x40
000002f8: MLOAD
000002f9: PUSH1 0x01
000002fb: PUSH1 0x01
000002fd: PUSH1 0x60
000002ff: SHL
00000300: SUB
00000301: NOT
00000302: CALLER
00000303: PUSH1 0x60
00000305: SHL
00000306: AND
00000307: PUSH1 0x20
00000309: DUP3
0000030a: ADD
0000030b: MSTORE
0000030c: PUSH1 0x02
0000030e: SWAP1
0000030f: PUSH1 0x00
00000311: SWAP1
00000312: PUSH1 0x34
00000314: ADD
00000315: PUSH1 0x40
00000317: DUP1
00000318: MLOAD
00000319: PUSH1 0x1f
0000031b: NOT
0000031c: DUP2
0000031d: DUP5
0000031e: SUB
0000031f: ADD
00000320: DUP2
00000321: MSTORE
00000322: SWAP2
00000323: DUP2
00000324: MSTORE
00000325: DUP2
00000326: MLOAD
00000327: PUSH1 0x20
00000329: SWAP3
0000032a: DUP4
0000032b: ADD
0000032c: KECCAK256
0000032d: DUP4
0000032e: MSTORE
0000032f: SWAP1
00000330: DUP3
00000331: ADD
00000332: SWAP3
00000333: SWAP1
00000334: SWAP3
00000335: MSTORE
00000336: ADD
00000337: PUSH1 0x00
00000339: KECCAK256
0000033a: SLOAD
0000033b: PUSH1 0xff
0000033d: AND
0000033e: PUSH2 0x0346
00000341: JUMPI
00000342: PUSH1 0x00
00000344: DUP1
00000345: REVERT
00000346: JUMPDEST
00000347: PUSH1 0x00
00000349: PUSH2 0x0353
0000034c: DUP4
0000034d: DUP6
0000034e: DUP4
0000034f: PUSH2 0x0629
00000352: JUMP
00000353: JUMPDEST
00000354: POP
00000355: PUSH1 0x01
00000357: SSTORE
00000358: POP
00000359: POP
0000035a: JUMP
0000035b: JUMPDEST
0000035c: PUSH4 0x4e487b71
00000361: PUSH1 0xe0
00000363: SHL
00000364: PUSH1 0x00
00000366: MSTORE
00000367: PUSH1 0x41
00000369: PUSH1 0x04
0000036b: MSTORE
0000036c: PUSH1 0x24
0000036e: PUSH1 0x00
00000370: REVERT
00000371: JUMPDEST
00000372: PUSH1 0x00
00000374: PUSH1 0x20
00000376: DUP3
00000377: DUP5
00000378: SUB
00000379: SLT
0000037a: ISZERO
0000037b: PUSH2 0x0383
0000037e: JUMPI
0000037f: PUSH1 0x00
00000381: DUP1
00000382: REVERT
00000383: JUMPDEST
00000384: DUP2
00000385: CALLDATALOAD
00000386: PUSH8 0xffffffffffffffff
0000038f: DUP1
00000390: DUP3
00000391: GT
00000392: ISZERO
00000393: PUSH2 0x039b
00000396: JUMPI
00000397: PUSH1 0x00
00000399: DUP1
0000039a: REVERT
0000039b: JUMPDEST
0000039c: DUP2
0000039d: DUP5
0000039e: ADD
0000039f: SWAP2
000003a0: POP
000003a1: DUP5
000003a2: PUSH1 0x1f
000003a4: DUP4
000003a5: ADD
000003a6: SLT
000003a7: PUSH2 0x03af
000003aa: JUMPI
000003ab: PUSH1 0x00
000003ad: DUP1
000003ae: REVERT
000003af: JUMPDEST
000003b0: DUP2
000003b1: CALLDATALOAD
000003b2: DUP2
000003b3: DUP2
000003b4: GT
000003b5: ISZERO
000003b6: PUSH2 0x03c1
000003b9: JUMPI
000003ba: PUSH2 0x03c1
000003bd: PUSH2 0x035b
000003c0: JUMP
000003c1: JUMPDEST
000003c2: PUSH1 0x40
000003c4: MLOAD
000003c5: PUSH1 0x1f
000003c7: DUP3
000003c8: ADD
000003c9: PUSH1 0x1f
000003cb: NOT
000003cc: SWAP1
000003cd: DUP2
000003ce: AND
000003cf: PUSH1 0x3f
000003d1: ADD
000003d2: AND
000003d3: DUP2
000003d4: ADD
000003d5: SWAP1
000003d6: DUP4
000003d7: DUP3
000003d8: GT
000003d9: DUP2
000003da: DUP4
000003db: LT
000003dc: OR
000003dd: ISZERO
000003de: PUSH2 0x03e9
000003e1: JUMPI
000003e2: PUSH2 0x03e9
000003e5: PUSH2 0x035b
000003e8: JUMP
000003e9: JUMPDEST
000003ea: DUP2
000003eb: PUSH1 0x40
000003ed: MSTORE
000003ee: DUP3
000003ef: DUP2
000003f0: MSTORE
000003f1: DUP8
000003f2: PUSH1 0x20
000003f4: DUP5
000003f5: DUP8
000003f6: ADD
000003f7: ADD
000003f8: GT
000003f9: ISZERO
000003fa: PUSH2 0x0402
000003fd: JUMPI
000003fe: PUSH1 0x00
00000400: DUP1
00000401: REVERT
00000402: JUMPDEST
00000403: DUP3
00000404: PUSH1 0x20
00000406: DUP7
00000407: ADD
00000408: PUSH1 0x20
0000040a: DUP4
0000040b: ADD
0000040c: CALLDATACOPY
0000040d: PUSH1 0x00
0000040f: SWAP3
00000410: DUP2
00000411: ADD
00000412: PUSH1 0x20
00000414: ADD
00000415: SWAP3
00000416: SWAP1
00000417: SWAP3
00000418: MSTORE
00000419: POP
0000041a: SWAP6
0000041b: SWAP5
0000041c: POP
0000041d: POP
0000041e: POP
0000041f: POP
00000420: POP
00000421: JUMP
00000422: JUMPDEST
00000423: PUSH1 0x00
00000425: PUSH1 0x20
00000427: DUP1
00000428: DUP4
00000429: MSTORE
0000042a: DUP4
0000042b: MLOAD
0000042c: DUP1
0000042d: DUP3
0000042e: DUP6
0000042f: ADD
00000430: MSTORE
00000431: PUSH1 0x00
00000433: JUMPDEST
00000434: DUP2
00000435: DUP2
00000436: LT
00000437: ISZERO
00000438: PUSH2 0x044f
0000043b: JUMPI
0000043c: DUP6
0000043d: DUP2
0000043e: ADD
0000043f: DUP4
00000440: ADD
00000441: MLOAD
00000442: DUP6
00000443: DUP3
00000444: ADD
00000445: PUSH1 0x40
00000447: ADD
00000448: MSTORE
00000449: DUP3
0000044a: ADD
0000044b: PUSH2 0x0433
0000044e: JUMP
0000044f: JUMPDEST
00000450: POP
00000451: PUSH1 0x00
00000453: PUSH1 0x40
00000455: DUP3
00000456: DUP7
00000457: ADD
00000458: ADD
00000459: MSTORE
0000045a: PUSH1 0x40
0000045c: PUSH1 0x1f
0000045e: NOT
0000045f: PUSH1 0x1f
00000461: DUP4
00000462: ADD
00000463: AND
00000464: DUP6
00000465: ADD
00000466: ADD
00000467: SWAP3
00000468: POP
00000469: POP
0000046a: POP
0000046b: SWAP3
0000046c: SWAP2
0000046d: POP
0000046e: POP
0000046f: JUMP
00000470: JUMPDEST
00000471: PUSH1 0x00
00000473: DUP1
00000474: DUP4
00000475: PUSH1 0x1f
00000477: DUP5
00000478: ADD
00000479: SLT
0000047a: PUSH2 0x0482
0000047d: JUMPI
0000047e: PUSH1 0x00
00000480: DUP1
00000481: REVERT
00000482: JUMPDEST
00000483: POP
00000484: DUP2
00000485: CALLDATALOAD
00000486: PUSH8 0xffffffffffffffff
0000048f: DUP2
00000490: GT
00000491: ISZERO
00000492: PUSH2 0x049a
00000495: JUMPI
00000496: PUSH1 0x00
00000498: DUP1
00000499: REVERT
0000049a: JUMPDEST
0000049b: PUSH1 0x20
0000049d: DUP4
0000049e: ADD
0000049f: SWAP2
000004a0: POP
000004a1: DUP4
000004a2: PUSH1 0x20
000004a4: DUP3
000004a5: DUP6
000004a6: ADD
000004a7: ADD
000004a8: GT
000004a9: ISZERO
000004aa: PUSH2 0x04b2
000004ad: JUMPI
000004ae: PUSH1 0x00
000004b0: DUP1
000004b1: REVERT
000004b2: JUMPDEST
000004b3: SWAP3
000004b4: POP
000004b5: SWAP3
000004b6: SWAP1
000004b7: POP
000004b8: JUMP
000004b9: JUMPDEST
000004ba: PUSH1 0x00
000004bc: DUP1
000004bd: PUSH1 0x00
000004bf: DUP1
000004c0: PUSH1 0x40
000004c2: DUP6
000004c3: DUP8
000004c4: SUB
000004c5: SLT
000004c6: ISZERO
000004c7: PUSH2 0x04cf
000004ca: JUMPI
000004cb: PUSH1 0x00
000004cd: DUP1
000004ce: REVERT
000004cf: JUMPDEST
000004d0: DUP5
000004d1: CALLDATALOAD
000004d2: PUSH8 0xffffffffffffffff
000004db: DUP1
000004dc: DUP3
000004dd: GT
000004de: ISZERO
000004df: PUSH2 0x04e7
000004e2: JUMPI
000004e3: PUSH1 0x00
000004e5: DUP1
000004e6: REVERT
000004e7: JUMPDEST
000004e8: PUSH2 0x04f3
000004eb: DUP9
000004ec: DUP4
000004ed: DUP10
000004ee: ADD
000004ef: PUSH2 0x0470
000004f2: JUMP
000004f3: JUMPDEST
000004f4: SWAP1
000004f5: SWAP7
000004f6: POP
000004f7: SWAP5
000004f8: POP
000004f9: PUSH1 0x20
000004fb: DUP8
000004fc: ADD
000004fd: CALLDATALOAD
000004fe: SWAP2
000004ff: POP
00000500: DUP1
00000501: DUP3
00000502: GT
00000503: ISZERO
00000504: PUSH2 0x050c
00000507: JUMPI
00000508: PUSH1 0x00
0000050a: DUP1
0000050b: REVERT
0000050c: JUMPDEST
0000050d: POP
0000050e: PUSH2 0x0519
00000511: DUP8
00000512: DUP3
00000513: DUP9
00000514: ADD
00000515: PUSH2 0x0470
00000518: JUMP
00000519: JUMPDEST
0000051a: SWAP6
0000051b: SWAP9
0000051c: SWAP5
0000051d: SWAP8
0000051e: POP
0000051f: SWAP6
00000520: POP
00000521: POP
00000522: POP
00000523: POP
00000524: JUMP
00000525: JUMPDEST
00000526: PUSH1 0x00
00000528: DUP1
00000529: PUSH1 0x00
0000052b: PUSH1 0x40
0000052d: DUP5
0000052e: DUP7
0000052f: SUB
00000530: SLT
00000531: ISZERO
00000532: PUSH2 0x053a
00000535: JUMPI
00000536: PUSH1 0x00
00000538: DUP1
00000539: REVERT
0000053a: JUMPDEST
0000053b: DUP4
0000053c: CALLDATALOAD
0000053d: PUSH8 0xffffffffffffffff
00000546: DUP2
00000547: GT
00000548: ISZERO
00000549: PUSH2 0x0551
0000054c: JUMPI
0000054d: PUSH1 0x00
0000054f: DUP1
00000550: REVERT
00000551: JUMPDEST
00000552: PUSH2 0x055d
00000555: DUP7
00000556: DUP3
00000557: DUP8
00000558: ADD
00000559: PUSH2 0x0470
0000055c: JUMP
0000055d: JUMPDEST
0000055e: SWAP1
0000055f: SWAP8
00000560: SWAP1
00000561: SWAP7
00000562: POP
00000563: PUSH1 0x20
00000565: SWAP6
00000566: SWAP1
00000567: SWAP6
00000568: ADD
00000569: CALLDATALOAD
0000056a: SWAP5
0000056b: SWAP4
0000056c: POP
0000056d: POP
0000056e: POP
0000056f: POP
00000570: JUMP
00000571: JUMPDEST
00000572: PUSH1 0x01
00000574: DUP2
00000575: DUP2
00000576: SHR
00000577: SWAP1
00000578: DUP3
00000579: AND
0000057a: DUP1
0000057b: PUSH2 0x0585
0000057e: JUMPI
0000057f: PUSH1 0x7f
00000581: DUP3
00000582: AND
00000583: SWAP2
00000584: POP
00000585: JUMPDEST
00000586: PUSH1 0x20
00000588: DUP3
00000589: LT
0000058a: DUP2
0000058b: SUB
0000058c: PUSH2 0x05a5
0000058f: JUMPI
00000590: PUSH4 0x4e487b71
00000595: PUSH1 0xe0
00000597: SHL
00000598: PUSH1 0x00
0000059a: MSTORE
0000059b: PUSH1 0x22
0000059d: PUSH1 0x04
0000059f: MSTORE
000005a0: PUSH1 0x24
000005a2: PUSH1 0x00
000005a4: REVERT
000005a5: JUMPDEST
000005a6: POP
000005a7: SWAP2
000005a8: SWAP1
000005a9: POP
000005aa: JUMP
000005ab: JUMPDEST
000005ac: PUSH1 0x20
000005ae: DUP2
000005af: MSTORE
000005b0: DUP2
000005b1: PUSH1 0x20
000005b3: DUP3
000005b4: ADD
000005b5: MSTORE
000005b6: DUP2
000005b7: DUP4
000005b8: PUSH1 0x40
000005ba: DUP4
000005bb: ADD
000005bc: CALLDATACOPY
000005bd: PUSH1 0x00
000005bf: DUP2
000005c0: DUP4
000005c1: ADD
000005c2: PUSH1 0x40
000005c4: SWAP1
000005c5: DUP2
000005c6: ADD
000005c7: SWAP2
000005c8: SWAP1
000005c9: SWAP2
000005ca: MSTORE
000005cb: PUSH1 0x1f
000005cd: SWAP1
000005ce: SWAP3
000005cf: ADD
000005d0: PUSH1 0x1f
000005d2: NOT
000005d3: AND
000005d4: ADD
000005d5: ADD
000005d6: SWAP2
000005d7: SWAP1
000005d8: POP
000005d9: JUMP
000005da: JUMPDEST
000005db: PUSH1 0x1f
000005dd: DUP3
000005de: GT
000005df: ISZERO
000005e0: PUSH2 0x0624
000005e3: JUMPI
000005e4: PUSH1 0x00
000005e6: DUP2
000005e7: DUP2
000005e8: MSTORE
000005e9: PUSH1 0x20
000005eb: DUP2
000005ec: KECCAK256
000005ed: PUSH1 0x1f
000005ef: DUP6
000005f0: ADD
000005f1: PUSH1 0x05
000005f3: SHR
000005f4: DUP2
000005f5: ADD
000005f6: PUSH1 0x20
000005f8: DUP7
000005f9: LT
000005fa: ISZERO
000005fb: PUSH2 0x0601
000005fe: JUMPI
000005ff: POP
00000600: DUP1
00000601: JUMPDEST
00000602: PUSH1 0x1f
00000604: DUP6
00000605: ADD
00000606: PUSH1 0x05
00000608: SHR
00000609: DUP3
0000060a: ADD
0000060b: SWAP2
0000060c: POP
0000060d: JUMPDEST
0000060e: DUP2
0000060f: DUP2
00000610: LT
00000611: ISZERO
00000612: PUSH2 0x0620
00000615: JUMPI
00000616: DUP3
00000617: DUP2
00000618: SSTORE
00000619: PUSH1 0x01
0000061b: ADD
0000061c: PUSH2 0x060d
0000061f: JUMP
00000620: JUMPDEST
00000621: POP
00000622: POP
00000623: POP
00000624: JUMPDEST
00000625: POP
00000626: POP
00000627: POP
00000628: JUMP
00000629: JUMPDEST
0000062a: PUSH8 0xffffffffffffffff
00000633: DUP4
00000634: GT
00000635: ISZERO
00000636: PUSH2 0x0641
00000639: JUMPI
0000063a: PUSH2 0x0641
0000063d: PUSH2 0x035b
00000640: JUMP
00000641: JUMPDEST
00000642: PUSH2 0x0655
00000645: DUP4
00000646: PUSH2 0x064f
00000649: DUP4
0000064a: SLOAD
0000064b: PUSH2 0x0571
0000064e: JUMP
0000064f: JUMPDEST
00000650: DUP4
00000651: PUSH2 0x05da
00000654: JUMP
00000655: JUMPDEST
00000656: PUSH1 0x00
00000658: PUSH1 0x1f
0000065a: DUP5
0000065b: GT
0000065c: PUSH1 0x01
0000065e: DUP2
0000065f: EQ
00000660: PUSH2 0x0689
00000663: JUMPI
00000664: PUSH1 0x00
00000666: DUP6
00000667: ISZERO
00000668: PUSH2 0x0671
0000066b: JUMPI
0000066c: POP
0000066d: DUP4
0000066e: DUP3
0000066f: ADD
00000670: CALLDATALOAD
00000671: JUMPDEST
00000672: PUSH1 0x00
00000674: NOT
00000675: PUSH1 0x03
00000677: DUP8
00000678: SWAP1
00000679: SHL
0000067a: SHR
0000067b: NOT
0000067c: AND
0000067d: PUSH1 0x01
0000067f: DUP7
00000680: SWAP1
00000681: SHL
00000682: OR
00000683: DUP4
00000684: SSTORE
00000685: PUSH2 0x02ed
00000688: JUMP
00000689: JUMPDEST
0000068a: PUSH1 0x00
0000068c: DUP4
0000068d: DUP2
0000068e: MSTORE
0000068f: PUSH1 0x20
00000691: SWAP1
00000692: KECCAK256
00000693: PUSH1 0x1f
00000695: NOT
00000696: DUP7
00000697: AND
00000698: SWAP1
00000699: DUP4
0000069a: JUMPDEST
0000069b: DUP3
0000069c: DUP2
0000069d: LT
0000069e: ISZERO
0000069f: PUSH2 0x06ba
000006a2: JUMPI
000006a3: DUP7
000006a4: DUP6
000006a5: ADD
000006a6: CALLDATALOAD
000006a7: DUP3
000006a8: SSTORE
000006a9: PUSH1 0x20
000006ab: SWAP5
000006ac: DUP6
000006ad: ADD
000006ae: SWAP5
000006af: PUSH1 0x01
000006b1: SWAP1
000006b2: SWAP3
000006b3: ADD
000006b4: SWAP2
000006b5: ADD
000006b6: PUSH2 0x069a
000006b9: JUMP
000006ba: JUMPDEST
000006bb: POP
000006bc: DUP7
000006bd: DUP3
000006be: LT
000006bf: ISZERO
000006c0: PUSH2 0x06d7
000006c3: JUMPI
000006c4: PUSH1 0x00
000006c6: NOT
000006c7: PUSH1 0xf8
000006c9: DUP9
000006ca: PUSH1 0x03
000006cc: SHL
000006cd: AND
000006ce: SHR
000006cf: NOT
000006d0: DUP5
000006d1: DUP8
000006d2: ADD
000006d3: CALLDATALOAD
000006d4: AND
000006d5: DUP2
000006d6: SSTORE
000006d7: JUMPDEST
000006d8: POP
000006d9: POP
000006da: PUSH1 0x01
000006dc: DUP6
000006dd: PUSH1 0x01
000006df: SHL
000006e0: ADD
000006e1: DUP4
000006e2: SSTORE
000006e3: POP
000006e4: POP
000006e5: POP
000006e6: POP
000006e7: POP
000006e8: JUMP
000006e9: INVALID
000006ea: LOG2
000006eb: PUSH5 0x6970667358
000006f1: UNKNOWN(0x22)
000006f2: SLT
000006f3: KECCAK256
000006f4: DUP10
000006f5: COINBASE
000006f6: UNKNOWN(0xB4)
000006f7: ORIGIN
000006f8: SWAP13
000006f9: CALLVALUE
000006fa: PUSH14 0x65c91246c6f58d1ad53f0c1fc9ef
00000709: NOT
0000070a: STATICCALL
0000070b: SWAP2
0000070c: UNKNOWN(0x2A)
0000070d: UNKNOWN(0xC4)
0000070e: BALANCE
0000070f: DUP12
00000710: UNKNOWN(0xEB)
00000711: UNKNOWN(0xC0)
00000712: DUP14
00000713: UNKNOWN(0x4C)
00000714: PUSH5 0x736f6c6343
0000071a: STOP
0000071b: ADDMOD
0000071c: SGT
0000071d: STOP
0000071e: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x3853682c",
            "selector": "0x3853682c",
            "calldata_variants": [
                "0x3853682c",
                "0x3853682c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fad9ae0",
            "selector": "0x3fad9ae0",
            "calldata_variants": [
                "0x3fad9ae0",
                "0x3fad9ae00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbedf0f4a",
            "selector": "0xbedf0f4a",
            "calldata_variants": [
                "0xbedf0f4a",
                "0xbedf0f4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc76de3e9",
            "selector": "0xc76de3e9",
            "calldata_variants": [
                "0xc76de3e9",
                "0xc76de3e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed8df164",
            "selector": "0xed8df164",
            "calldata_variants": [
                "0xed8df164",
                "0xed8df1640000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 199,
            "type": "tx_origin_used"
        },
        {
            "pc": 198,
            "type": "tx_origin_used"
        },
        {
            "pc": 1783,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xa52acbefbec67bcd97e903b2bfec17bec6e57d23ec2cf23153345839406e7a6e
call_targets: 0x532d2881e453701e1b6c18b60a9f9ab49d00b34a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa52acbefbec67bcd97e903b2bfec17bec6e57d23ec2cf23153345839406e7a6e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x532d2881e453701e1b6c18b60a9f9ab49d00b34a"
    ],
    "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": "0x3853682c",
            "selector": "0x3853682c",
            "calldata_variants": [
                "0x3853682c",
                "0x3853682c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fad9ae0",
            "selector": "0x3fad9ae0",
            "calldata_variants": [
                "0x3fad9ae0",
                "0x3fad9ae00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbedf0f4a",
            "selector": "0xbedf0f4a",
            "calldata_variants": [
                "0xbedf0f4a",
                "0xbedf0f4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc76de3e9",
            "selector": "0xc76de3e9",
            "calldata_variants": [
                "0xc76de3e9",
                "0xc76de3e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed8df164",
            "selector": "0xed8df164",
            "calldata_variants": [
                "0xed8df164",
                "0xed8df1640000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 297,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 569,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 199,
            "type": "tx_origin_used"
        },
        {
            "pc": 198,
            "type": "tx_origin_used"
        },
        {
            "pc": 1783,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xa52acbefbec67bcd97e903b2bfec17bec6e57d23ec2cf23153345839406e7a6e
call_targets: 0x532d2881e453701e1b6c18b60a9f9ab49d00b34a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa52acbefbec67bcd97e903b2bfec17bec6e57d23ec2cf23153345839406e7a6e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x532d2881e453701e1b6c18b60a9f9ab49d00b34a"
    ],
    "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": "0x3853682c",
            "selector": "0x3853682c",
            "calldata_variants": [
                "0x3853682c",
                "0x3853682c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3fad9ae0",
            "selector": "0x3fad9ae0",
            "calldata_variants": [
                "0x3fad9ae0",
                "0x3fad9ae00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbedf0f4a",
            "selector": "0xbedf0f4a",
            "calldata_variants": [
                "0xbedf0f4a",
                "0xbedf0f4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc76de3e9",
            "selector": "0xc76de3e9",
            "calldata_variants": [
                "0xc76de3e9",
                "0xc76de3e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed8df164",
            "selector": "0xed8df164",
            "calldata_variants": [
                "0xed8df164",
                "0xed8df1640000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 297,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 569,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 199,
            "type": "tx_origin_used"
        },
        {
            "pc": 198,
            "type": "tx_origin_used"
        },
        {
            "pc": 1783,
            "type": "tx_origin_used"
        }
    ]
}