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

Analysis Run

019b3836-25ae-7141-80ed-3402ad12f2c4

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 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
Bytecode only
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
811 artifact.fetch complete 1 / 3 3 months ago
812 tool.cast_disasm complete 1 / 3 3 months ago
104773 analysis.bundle complete 1 / 3 1 week ago
104774 capability.graph complete 1 / 3 1 week ago
104775 detector.run complete 1 / 3 1 week ago
104776 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate

No codex job recorded yet.

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
0
Total opcodes
803
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x006b
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH3 0xc9b1de
00000018: DUP2
00000019: EQ
0000001a: PUSH2 0x00b3
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x13af4035
00000024: EQ
00000025: PUSH2 0x00e7
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x4123cb6b
0000002f: EQ
00000030: PUSH2 0x0109
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x41c0e1b5
0000003a: EQ
0000003b: PUSH2 0x0112
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0x4a5db3b5
00000045: EQ
00000046: PUSH2 0x0131
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0x746c9171
00000050: EQ
00000051: PUSH2 0x0153
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xb61d27f6
0000005b: EQ
0000005c: PUSH2 0x015c
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf73857cc
00000066: EQ
00000067: PUSH2 0x0191
0000006a: JUMPI
0000006b: JUMPDEST
0000006c: PUSH2 0x01b3
0000006f: PUSH1 0x00
00000071: CALLVALUE
00000072: GT
00000073: ISZERO
00000074: PUSH2 0x00b1
00000077: JUMPI
00000078: PUSH1 0x01
0000007a: PUSH1 0xa0
0000007c: PUSH1 0x02
0000007e: EXP
0000007f: SUB
00000080: ORIGIN
00000081: AND
00000082: PUSH1 0x60
00000084: SWAP1
00000085: DUP2
00000086: MSTORE
00000087: CALLVALUE
00000088: PUSH1 0x80
0000008a: MSTORE
0000008b: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
000000ac: SWAP1
000000ad: PUSH1 0x40
000000af: SWAP1
000000b0: LOG1
000000b1: JUMPDEST
000000b2: JUMP
000000b3: JUMPDEST
000000b4: PUSH2 0x01b3
000000b7: PUSH1 0x04
000000b9: DUP1
000000ba: CALLDATALOAD
000000bb: SWAP1
000000bc: PUSH1 0x24
000000be: DUP1
000000bf: CALLDATALOAD
000000c0: SWAP2
000000c1: PUSH1 0x44
000000c3: CALLDATALOAD
000000c4: SWAP2
000000c5: DUP3
000000c6: ADD
000000c7: SWAP2
000000c8: ADD
000000c9: CALLDATALOAD
000000ca: PUSH1 0x64
000000cc: CALLDATALOAD
000000cd: PUSH1 0x84
000000cf: CALLDATALOAD
000000d0: PUSH1 0xa4
000000d2: CALLDATALOAD
000000d3: PUSH1 0xc4
000000d5: CALLDATALOAD
000000d6: PUSH1 0xe4
000000d8: CALLDATALOAD
000000d9: PUSH1 0x00
000000db: TIMESTAMP
000000dc: DUP7
000000dd: GT
000000de: ISZERO
000000df: PUSH2 0x0305
000000e2: JUMPI
000000e3: PUSH2 0x0002
000000e6: JUMP
000000e7: JUMPDEST
000000e8: PUSH2 0x01b3
000000eb: PUSH1 0x04
000000ed: CALLDATALOAD
000000ee: PUSH2 0x0103
000000f1: SLOAD
000000f2: CALLER
000000f3: PUSH1 0x01
000000f5: PUSH1 0xa0
000000f7: PUSH1 0x02
000000f9: EXP
000000fa: SUB
000000fb: SWAP1
000000fc: DUP2
000000fd: AND
000000fe: SWAP2
000000ff: AND
00000100: EQ
00000101: PUSH2 0x01c7
00000104: JUMPI
00000105: PUSH2 0x0002
00000108: JUMP
00000109: JUMPDEST
0000010a: PUSH2 0x01b5
0000010d: PUSH1 0x01
0000010f: SLOAD
00000110: DUP2
00000111: JUMP
00000112: JUMPDEST
00000113: PUSH2 0x01b3
00000116: PUSH2 0x0103
00000119: SLOAD
0000011a: CALLER
0000011b: PUSH1 0x01
0000011d: PUSH1 0xa0
0000011f: PUSH1 0x02
00000121: EXP
00000122: SUB
00000123: SWAP1
00000124: DUP2
00000125: AND
00000126: SWAP2
00000127: AND
00000128: EQ
00000129: PUSH2 0x0207
0000012c: JUMPI
0000012d: PUSH2 0x0002
00000130: JUMP
00000131: JUMPDEST
00000132: PUSH2 0x01b3
00000135: PUSH1 0x04
00000137: CALLDATALOAD
00000138: PUSH2 0x0103
0000013b: SLOAD
0000013c: CALLER
0000013d: PUSH1 0x01
0000013f: PUSH1 0xa0
00000141: PUSH1 0x02
00000143: EXP
00000144: SUB
00000145: SWAP1
00000146: DUP2
00000147: AND
00000148: SWAP2
00000149: AND
0000014a: EQ
0000014b: PUSH2 0x02bc
0000014e: JUMPI
0000014f: PUSH2 0x0002
00000152: JUMP
00000153: JUMPDEST
00000154: PUSH2 0x01b5
00000157: PUSH1 0x00
00000159: SLOAD
0000015a: DUP2
0000015b: JUMP
0000015c: JUMPDEST
0000015d: PUSH2 0x01b5
00000160: PUSH1 0x04
00000162: DUP1
00000163: CALLDATALOAD
00000164: SWAP1
00000165: PUSH1 0x24
00000167: DUP1
00000168: CALLDATALOAD
00000169: SWAP2
0000016a: PUSH1 0x44
0000016c: CALLDATALOAD
0000016d: SWAP2
0000016e: DUP3
0000016f: ADD
00000170: SWAP2
00000171: ADD
00000172: CALLDATALOAD
00000173: PUSH2 0x0103
00000176: SLOAD
00000177: PUSH1 0x00
00000179: SWAP1
0000017a: CALLER
0000017b: PUSH1 0x01
0000017d: PUSH1 0xa0
0000017f: PUSH1 0x02
00000181: EXP
00000182: SUB
00000183: SWAP1
00000184: DUP2
00000185: AND
00000186: SWAP2
00000187: AND
00000188: EQ
00000189: PUSH2 0x0216
0000018c: JUMPI
0000018d: PUSH2 0x0002
00000190: JUMP
00000191: JUMPDEST
00000192: PUSH2 0x01b3
00000195: PUSH1 0x04
00000197: CALLDATALOAD
00000198: PUSH2 0x0103
0000019b: SLOAD
0000019c: CALLER
0000019d: PUSH1 0x01
0000019f: PUSH1 0xa0
000001a1: PUSH1 0x02
000001a3: EXP
000001a4: SUB
000001a5: SWAP1
000001a6: DUP2
000001a7: AND
000001a8: SWAP2
000001a9: AND
000001aa: EQ
000001ab: PUSH2 0x02e3
000001ae: JUMPI
000001af: PUSH2 0x0002
000001b2: JUMP
000001b3: JUMPDEST
000001b4: STOP
000001b5: JUMPDEST
000001b6: PUSH1 0x40
000001b8: DUP1
000001b9: MLOAD
000001ba: SWAP2
000001bb: DUP3
000001bc: MSTORE
000001bd: MLOAD
000001be: SWAP1
000001bf: DUP2
000001c0: SWAP1
000001c1: SUB
000001c2: PUSH1 0x20
000001c4: ADD
000001c5: SWAP1
000001c6: RETURN
000001c7: JUMPDEST
000001c8: PUSH2 0x0103
000001cb: DUP1
000001cc: SLOAD
000001cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001e2: NOT
000001e3: AND
000001e4: SWAP1
000001e5: SWAP2
000001e6: OR
000001e7: SWAP1
000001e8: DUP2
000001e9: SWAP1
000001ea: SSTORE
000001eb: PUSH1 0x01
000001ed: PUSH1 0xa0
000001ef: PUSH1 0x02
000001f1: EXP
000001f2: SUB
000001f3: AND
000001f4: PUSH1 0x02
000001f6: DUP2
000001f7: SWAP1
000001f8: SSTORE
000001f9: PUSH1 0x03
000001fb: DUP2
000001fc: SWAP1
000001fd: SSTORE
000001fe: PUSH1 0x04
00000200: DUP2
00000201: SWAP1
00000202: SSTORE
00000203: PUSH1 0x05
00000205: SSTORE
00000206: JUMP
00000207: JUMPDEST
00000208: PUSH2 0x0103
0000020b: SLOAD
0000020c: PUSH1 0x01
0000020e: PUSH1 0xa0
00000210: PUSH1 0x02
00000212: EXP
00000213: SUB
00000214: AND
00000215: SELFDESTRUCT
00000216: JUMPDEST
00000217: PUSH1 0x01
00000219: PUSH1 0xa0
0000021b: PUSH1 0x02
0000021d: EXP
0000021e: SUB
0000021f: ORIGIN
00000220: DUP2
00000221: DUP2
00000222: AND
00000223: PUSH1 0x60
00000225: SWAP1
00000226: DUP2
00000227: MSTORE
00000228: PUSH1 0x80
0000022a: DUP8
0000022b: DUP2
0000022c: MSTORE
0000022d: SWAP3
0000022e: DUP9
0000022f: AND
00000230: PUSH1 0xa0
00000232: MSTORE
00000233: PUSH1 0xc0
00000235: SWAP3
00000236: DUP4
00000237: MSTORE
00000238: PUSH1 0xe0
0000023a: DUP6
0000023b: SWAP1
0000023c: MSTORE
0000023d: PUSH32 0x92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004
0000025e: SWAP3
0000025f: DUP8
00000260: SWAP2
00000261: DUP10
00000262: SWAP2
00000263: DUP9
00000264: SWAP2
00000265: DUP9
00000266: SWAP2
00000267: PUSH2 0x0100
0000026a: DUP5
0000026b: DUP5
0000026c: DUP1
0000026d: DUP3
0000026e: DUP5
0000026f: CALLDATACOPY
00000270: POP
00000271: POP
00000272: PUSH1 0x40
00000274: MLOAD
00000275: SWAP4
00000276: DUP5
00000277: SWAP1
00000278: SUB
00000279: ADD
0000027a: SWAP7
0000027b: POP
0000027c: SWAP2
0000027d: SWAP5
0000027e: POP
0000027f: POP
00000280: POP
00000281: POP
00000282: POP
00000283: LOG1
00000284: DUP5
00000285: PUSH1 0x01
00000287: PUSH1 0xa0
00000289: PUSH1 0x02
0000028b: EXP
0000028c: SUB
0000028d: AND
0000028e: DUP5
0000028f: DUP5
00000290: DUP5
00000291: PUSH1 0x40
00000293: MLOAD
00000294: DUP1
00000295: DUP4
00000296: DUP4
00000297: DUP1
00000298: DUP3
00000299: DUP5
0000029a: CALLDATACOPY
0000029b: POP
0000029c: POP
0000029d: POP
0000029e: SWAP1
0000029f: DUP2
000002a0: ADD
000002a1: SWAP2
000002a2: POP
000002a3: DUP5
000002a4: SWAP1
000002a5: DUP1
000002a6: DUP4
000002a7: SUB
000002a8: DUP2
000002a9: DUP6
000002aa: DUP8
000002ab: PUSH2 0x8502
000002ae: GAS
000002af: SUB
000002b0: CALL
000002b1: POP
000002b2: POP
000002b3: POP
000002b4: POP
000002b5: SWAP5
000002b6: SWAP4
000002b7: POP
000002b8: POP
000002b9: POP
000002ba: POP
000002bb: JUMP
000002bc: JUMPDEST
000002bd: PUSH1 0x01
000002bf: PUSH1 0xa0
000002c1: PUSH1 0x02
000002c3: EXP
000002c4: SUB
000002c5: DUP2
000002c6: AND
000002c7: PUSH1 0x00
000002c9: SWAP1
000002ca: DUP2
000002cb: MSTORE
000002cc: PUSH2 0x0102
000002cf: PUSH1 0x20
000002d1: MSTORE
000002d2: PUSH1 0x40
000002d4: SWAP1
000002d5: KECCAK256
000002d6: DUP1
000002d7: SLOAD
000002d8: PUSH1 0xff
000002da: NOT
000002db: AND
000002dc: PUSH1 0x01
000002de: OR
000002df: SWAP1
000002e0: SSTORE
000002e1: POP
000002e2: JUMP
000002e3: JUMPDEST
000002e4: PUSH1 0x01
000002e6: PUSH1 0xa0
000002e8: PUSH1 0x02
000002ea: EXP
000002eb: SUB
000002ec: AND
000002ed: PUSH1 0x00
000002ef: SWAP1
000002f0: DUP2
000002f1: MSTORE
000002f2: PUSH2 0x0102
000002f5: PUSH1 0x20
000002f7: MSTORE
000002f8: PUSH1 0x40
000002fa: SWAP1
000002fb: KECCAK256
000002fc: DUP1
000002fd: SLOAD
000002fe: PUSH1 0xff
00000300: NOT
00000301: AND
00000302: SWAP1
00000303: SSTORE
00000304: JUMP
00000305: JUMPDEST
00000306: PUSH2 0x0708
00000309: TIMESTAMP
0000030a: DUP8
0000030b: SUB
0000030c: GT
0000030d: ISZERO
0000030e: PUSH2 0x0316
00000311: JUMPI
00000312: PUSH2 0x0002
00000315: JUMP
00000316: JUMPDEST
00000317: DUP5
00000318: CALLER
00000319: DUP12
0000031a: DUP12
0000031b: DUP12
0000031c: DUP12
0000031d: DUP12
0000031e: PUSH1 0x40
00000320: MLOAD
00000321: DUP1
00000322: DUP8
00000323: PUSH1 0x01
00000325: PUSH1 0xa0
00000327: PUSH1 0x02
00000329: EXP
0000032a: SUB
0000032b: AND
0000032c: PUSH13 0x01000000000000000000000000
0000033a: MUL
0000033b: DUP2
0000033c: MSTORE
0000033d: PUSH1 0x14
0000033f: ADD
00000340: DUP7
00000341: PUSH1 0x01
00000343: PUSH1 0xa0
00000345: PUSH1 0x02
00000347: EXP
00000348: SUB
00000349: AND
0000034a: PUSH13 0x01000000000000000000000000
00000358: MUL
00000359: DUP2
0000035a: MSTORE
0000035b: PUSH1 0x14
0000035d: ADD
0000035e: DUP6
0000035f: DUP2
00000360: MSTORE
00000361: PUSH1 0x20
00000363: ADD
00000364: DUP5
00000365: DUP5
00000366: DUP1
00000367: DUP3
00000368: DUP5
00000369: CALLDATACOPY
0000036a: POP
0000036b: POP
0000036c: SWAP1
0000036d: SWAP3
0000036e: ADD
0000036f: MSTORE
00000370: POP
00000371: POP
00000372: PUSH1 0x40
00000374: MLOAD
00000375: DUP1
00000376: DUP13
00000377: SUB
00000378: PUSH1 0xc8
0000037a: ADD
0000037b: SWAP1
0000037c: KECCAK256
0000037d: SWAP1
0000037e: SWAP4
0000037f: EQ
00000380: SWAP3
00000381: POP
00000382: PUSH2 0x038d
00000385: SWAP2
00000386: POP
00000387: POP
00000388: JUMPI
00000389: PUSH2 0x0002
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH1 0x01
00000390: DUP6
00000391: DUP6
00000392: DUP6
00000393: DUP6
00000394: PUSH1 0x40
00000396: MLOAD
00000397: DUP1
00000398: DUP6
00000399: DUP2
0000039a: MSTORE
0000039b: PUSH1 0x20
0000039d: ADD
0000039e: DUP5
0000039f: PUSH1 0xff
000003a1: AND
000003a2: DUP2
000003a3: MSTORE
000003a4: PUSH1 0x20
000003a6: ADD
000003a7: DUP4
000003a8: DUP2
000003a9: MSTORE
000003aa: PUSH1 0x20
000003ac: ADD
000003ad: DUP3
000003ae: DUP2
000003af: MSTORE
000003b0: PUSH1 0x20
000003b2: ADD
000003b3: SWAP5
000003b4: POP
000003b5: POP
000003b6: POP
000003b7: POP
000003b8: POP
000003b9: PUSH1 0x20
000003bb: PUSH1 0x40
000003bd: MLOAD
000003be: DUP1
000003bf: DUP4
000003c0: SUB
000003c1: DUP2
000003c2: PUSH1 0x00
000003c4: DUP7
000003c5: PUSH2 0x61da
000003c8: GAS
000003c9: SUB
000003ca: CALL
000003cb: ISZERO
000003cc: PUSH2 0x0002
000003cf: JUMPI
000003d0: POP
000003d1: PUSH1 0x40
000003d3: DUP1
000003d4: MLOAD
000003d5: MLOAD
000003d6: PUSH1 0x01
000003d8: PUSH1 0xa0
000003da: PUSH1 0x02
000003dc: EXP
000003dd: SUB
000003de: DUP2
000003df: AND
000003e0: DUP5
000003e1: MSTORE
000003e2: PUSH2 0x0102
000003e5: PUSH1 0x20
000003e7: MSTORE
000003e8: SWAP3
000003e9: KECCAK256
000003ea: SLOAD
000003eb: PUSH1 0xff
000003ed: AND
000003ee: EQ
000003ef: PUSH2 0x03f7
000003f2: JUMPI
000003f3: PUSH2 0x0002
000003f6: JUMP
000003f7: JUMPDEST
000003f8: PUSH32 0x44cce17eaa0d3a402c64a40dbafc83985708657e5496bebfe1a87c127fb4b4df
00000419: ORIGIN
0000041a: DUP3
0000041b: DUP12
0000041c: DUP14
0000041d: DUP13
0000041e: DUP13
0000041f: PUSH1 0x40
00000421: MLOAD
00000422: DUP1
00000423: DUP8
00000424: PUSH1 0x01
00000426: PUSH1 0xa0
00000428: PUSH1 0x02
0000042a: EXP
0000042b: SUB
0000042c: AND
0000042d: DUP2
0000042e: MSTORE
0000042f: PUSH1 0x20
00000431: ADD
00000432: DUP7
00000433: PUSH1 0x01
00000435: PUSH1 0xa0
00000437: PUSH1 0x02
00000439: EXP
0000043a: SUB
0000043b: AND
0000043c: DUP2
0000043d: MSTORE
0000043e: PUSH1 0x20
00000440: ADD
00000441: DUP6
00000442: DUP2
00000443: MSTORE
00000444: PUSH1 0x20
00000446: ADD
00000447: DUP5
00000448: PUSH1 0x01
0000044a: PUSH1 0xa0
0000044c: PUSH1 0x02
0000044e: EXP
0000044f: SUB
00000450: AND
00000451: DUP2
00000452: MSTORE
00000453: PUSH1 0x20
00000455: ADD
00000456: DUP1
00000457: PUSH1 0x20
00000459: ADD
0000045a: DUP3
0000045b: DUP2
0000045c: SUB
0000045d: DUP3
0000045e: MSTORE
0000045f: DUP5
00000460: DUP5
00000461: DUP3
00000462: DUP2
00000463: DUP2
00000464: MSTORE
00000465: PUSH1 0x20
00000467: ADD
00000468: SWAP3
00000469: POP
0000046a: DUP1
0000046b: DUP3
0000046c: DUP5
0000046d: CALLDATACOPY
0000046e: DUP3
0000046f: ADD
00000470: SWAP2
00000471: POP
00000472: POP
00000473: SWAP8
00000474: POP
00000475: POP
00000476: POP
00000477: POP
00000478: POP
00000479: POP
0000047a: POP
0000047b: POP
0000047c: PUSH1 0x40
0000047e: MLOAD
0000047f: DUP1
00000480: SWAP2
00000481: SUB
00000482: SWAP1
00000483: LOG1
00000484: DUP10
00000485: PUSH1 0x01
00000487: PUSH1 0xa0
00000489: PUSH1 0x02
0000048b: EXP
0000048c: SUB
0000048d: AND
0000048e: DUP10
0000048f: DUP10
00000490: DUP10
00000491: PUSH1 0x40
00000493: MLOAD
00000494: DUP1
00000495: DUP4
00000496: DUP4
00000497: DUP1
00000498: DUP3
00000499: DUP5
0000049a: CALLDATACOPY
0000049b: POP
0000049c: POP
0000049d: POP
0000049e: SWAP1
0000049f: DUP2
000004a0: ADD
000004a1: SWAP2
000004a2: POP
000004a3: PUSH1 0x00
000004a5: SWAP1
000004a6: DUP1
000004a7: DUP4
000004a8: SUB
000004a9: DUP2
000004aa: DUP6
000004ab: DUP8
000004ac: PUSH2 0x8502
000004af: GAS
000004b0: SUB
000004b1: CALL
000004b2: POP
000004b3: POP
000004b4: POP
000004b5: POP
000004b6: POP
000004b7: POP
000004b8: POP
000004b9: POP
000004ba: POP
000004bb: POP
000004bc: POP
000004bd: POP
000004be: POP
000004bf: POP
000004c0: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

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": "0x13af4035",
            "selector": "0x13af4035",
            "calldata_variants": [
                "0x13af4035",
                "0x13af40350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a5db3b5",
            "selector": "0x4a5db3b5",
            "calldata_variants": [
                "0x4a5db3b5",
                "0x4a5db3b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb61d27f6",
            "selector": "0xb61d27f6",
            "calldata_variants": [
                "0xb61d27f6",
                "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf73857cc",
            "selector": "0xf73857cc",
            "calldata_variants": [
                "0xf73857cc",
                "0xf73857cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 128,
            "type": "tx_origin_used"
        },
        {
            "pc": 543,
            "type": "tx_origin_used"
        },
        {
            "pc": 1049,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xd02f59ede674e0cf99bb45843b32716670736b6917e9a675ab37a314c8b5f777
call_targets: 0xecf50b59cfb5b9914c4e49fefcb9cc7423dea049
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd02f59ede674e0cf99bb45843b32716670736b6917e9a675ab37a314c8b5f777",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xecf50b59cfb5b9914c4e49fefcb9cc7423dea049"
    ],
    "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": "0x13af4035",
            "selector": "0x13af4035",
            "calldata_variants": [
                "0x13af4035",
                "0x13af40350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a5db3b5",
            "selector": "0x4a5db3b5",
            "calldata_variants": [
                "0x4a5db3b5",
                "0x4a5db3b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb61d27f6",
            "selector": "0xb61d27f6",
            "calldata_variants": [
                "0xb61d27f6",
                "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf73857cc",
            "selector": "0xf73857cc",
            "calldata_variants": [
                "0xf73857cc",
                "0xf73857cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 688,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 970,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1201,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 128,
            "type": "tx_origin_used"
        },
        {
            "pc": 543,
            "type": "tx_origin_used"
        },
        {
            "pc": 1049,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xd02f59ede674e0cf99bb45843b32716670736b6917e9a675ab37a314c8b5f777
call_targets: 0xecf50b59cfb5b9914c4e49fefcb9cc7423dea049
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd02f59ede674e0cf99bb45843b32716670736b6917e9a675ab37a314c8b5f777",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xecf50b59cfb5b9914c4e49fefcb9cc7423dea049"
    ],
    "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": "0x13af4035",
            "selector": "0x13af4035",
            "calldata_variants": [
                "0x13af4035",
                "0x13af40350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a5db3b5",
            "selector": "0x4a5db3b5",
            "calldata_variants": [
                "0x4a5db3b5",
                "0x4a5db3b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb61d27f6",
            "selector": "0xb61d27f6",
            "calldata_variants": [
                "0xb61d27f6",
                "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf73857cc",
            "selector": "0xf73857cc",
            "calldata_variants": [
                "0xf73857cc",
                "0xf73857cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 688,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 970,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1201,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 128,
            "type": "tx_origin_used"
        },
        {
            "pc": 543,
            "type": "tx_origin_used"
        },
        {
            "pc": 1049,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0x00cdca1d05e6af8cbcf1a9e0604c0878e607beec1064f045c710e9572e23a3e9
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 14,
    "trace_id": "0x00cdca1d05e6af8cbcf1a9e0604c0878e607beec1064f045c710e9572e23a3e9",
    "confirmed": false,
    "trace_mode": "structLogs",
    "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": "0x13af4035",
            "selector": "0x13af4035",
            "calldata_variants": [
                "0x13af4035",
                "0x13af40350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a5db3b5",
            "selector": "0x4a5db3b5",
            "calldata_variants": [
                "0x4a5db3b5",
                "0x4a5db3b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb61d27f6",
            "selector": "0xb61d27f6",
            "calldata_variants": [
                "0xb61d27f6",
                "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf73857cc",
            "selector": "0xf73857cc",
            "calldata_variants": [
                "0xf73857cc",
                "0xf73857cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 128,
            "type": "tx_origin_used"
        },
        {
            "pc": 543,
            "type": "tx_origin_used"
        },
        {
            "pc": 1049,
            "type": "tx_origin_used"
        }
    ],
    "selfdestruct_count": 1
}