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

Analysis Run

019b3836-321d-73f2-967f-b69803593130

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
2901 artifact.fetch complete 1 / 3 4 months ago
2902 tool.cast_disasm complete 1 / 3 4 months ago
79875 analysis.bundle complete 1 / 3 2 weeks ago
79876 capability.graph complete 1 / 3 2 weeks ago
79877 detector.run complete 1 / 3 2 weeks ago
79878 validation.fork complete 1 / 3 2 weeks 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)
4
EXT*/BALANCE
1
Total opcodes
756
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x007f
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x14ca3c7c
00000034: EQ
00000035: PUSH2 0x0081
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x41c0e1b5
0000003f: EQ
00000040: PUSH2 0x00ba
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x632cd1d3
0000004a: EQ
0000004b: PUSH2 0x00c9
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0x652070c4
00000055: EQ
00000056: PUSH2 0x00d8
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0xdca5db65
00000060: EQ
00000061: PUSH2 0x00e7
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0xf2a75fe4
0000006b: EQ
0000006c: PUSH2 0x0120
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xf5ca93d3
00000076: EQ
00000077: PUSH2 0x012f
0000007a: JUMPI
0000007b: PUSH2 0x007f
0000007e: JUMP
0000007f: JUMPDEST
00000080: STOP
00000081: JUMPDEST
00000082: PUSH2 0x008e
00000085: PUSH1 0x04
00000087: DUP1
00000088: POP
00000089: POP
0000008a: PUSH2 0x0176
0000008d: JUMP
0000008e: JUMPDEST
0000008f: PUSH1 0x40
00000091: MLOAD
00000092: DUP1
00000093: DUP3
00000094: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000a9: AND
000000aa: DUP2
000000ab: MSTORE
000000ac: PUSH1 0x20
000000ae: ADD
000000af: SWAP2
000000b0: POP
000000b1: POP
000000b2: PUSH1 0x40
000000b4: MLOAD
000000b5: DUP1
000000b6: SWAP2
000000b7: SUB
000000b8: SWAP1
000000b9: RETURN
000000ba: JUMPDEST
000000bb: PUSH2 0x00c7
000000be: PUSH1 0x04
000000c0: DUP1
000000c1: POP
000000c2: POP
000000c3: PUSH2 0x06cb
000000c6: JUMP
000000c7: JUMPDEST
000000c8: STOP
000000c9: JUMPDEST
000000ca: PUSH2 0x00d6
000000cd: PUSH1 0x04
000000cf: DUP1
000000d0: POP
000000d1: POP
000000d2: PUSH2 0x059c
000000d5: JUMP
000000d6: JUMPDEST
000000d7: STOP
000000d8: JUMPDEST
000000d9: PUSH2 0x00e5
000000dc: PUSH1 0x04
000000de: DUP1
000000df: POP
000000e0: POP
000000e1: PUSH2 0x0389
000000e4: JUMP
000000e5: JUMPDEST
000000e6: STOP
000000e7: JUMPDEST
000000e8: PUSH2 0x00f4
000000eb: PUSH1 0x04
000000ed: DUP1
000000ee: POP
000000ef: POP
000000f0: PUSH2 0x0147
000000f3: JUMP
000000f4: JUMPDEST
000000f5: PUSH1 0x40
000000f7: MLOAD
000000f8: DUP1
000000f9: DUP3
000000fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000010f: AND
00000110: DUP2
00000111: MSTORE
00000112: PUSH1 0x20
00000114: ADD
00000115: SWAP2
00000116: POP
00000117: POP
00000118: PUSH1 0x40
0000011a: MLOAD
0000011b: DUP1
0000011c: SWAP2
0000011d: SUB
0000011e: SWAP1
0000011f: RETURN
00000120: JUMPDEST
00000121: PUSH2 0x012d
00000124: PUSH1 0x04
00000126: DUP1
00000127: POP
00000128: POP
00000129: PUSH2 0x05fb
0000012c: JUMP
0000012d: JUMPDEST
0000012e: STOP
0000012f: JUMPDEST
00000130: PUSH2 0x0145
00000133: PUSH1 0x04
00000135: DUP1
00000136: DUP1
00000137: CALLDATALOAD
00000138: SWAP1
00000139: PUSH1 0x20
0000013b: ADD
0000013c: SWAP1
0000013d: SWAP2
0000013e: SWAP1
0000013f: POP
00000140: POP
00000141: PUSH2 0x01a5
00000144: JUMP
00000145: JUMPDEST
00000146: STOP
00000147: JUMPDEST
00000148: PUSH1 0x00
0000014a: PUSH1 0x02
0000014c: PUSH1 0x00
0000014e: SWAP1
0000014f: SLOAD
00000150: SWAP1
00000151: PUSH2 0x0100
00000154: EXP
00000155: SWAP1
00000156: DIV
00000157: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000016c: AND
0000016d: SWAP1
0000016e: POP
0000016f: PUSH2 0x0173
00000172: JUMP
00000173: JUMPDEST
00000174: SWAP1
00000175: JUMP
00000176: JUMPDEST
00000177: PUSH1 0x00
00000179: PUSH1 0x03
0000017b: PUSH1 0x00
0000017d: SWAP1
0000017e: SLOAD
0000017f: SWAP1
00000180: PUSH2 0x0100
00000183: EXP
00000184: SWAP1
00000185: DIV
00000186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000019b: AND
0000019c: SWAP1
0000019d: POP
0000019e: PUSH2 0x01a2
000001a1: JUMP
000001a2: JUMPDEST
000001a3: SWAP1
000001a4: JUMP
000001a5: JUMPDEST
000001a6: PUSH1 0x00
000001a8: PUSH1 0x00
000001aa: PUSH1 0x00
000001ac: PUSH1 0x00
000001ae: ORIGIN
000001af: PUSH1 0x02
000001b1: PUSH1 0x00
000001b3: PUSH2 0x0100
000001b6: EXP
000001b7: DUP2
000001b8: SLOAD
000001b9: DUP2
000001ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001cf: MUL
000001d0: NOT
000001d1: AND
000001d2: SWAP1
000001d3: DUP4
000001d4: MUL
000001d5: OR
000001d6: SWAP1
000001d7: SSTORE
000001d8: POP
000001d9: CALLER
000001da: PUSH1 0x03
000001dc: PUSH1 0x00
000001de: PUSH2 0x0100
000001e1: EXP
000001e2: DUP2
000001e3: SLOAD
000001e4: DUP2
000001e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001fa: MUL
000001fb: NOT
000001fc: AND
000001fd: SWAP1
000001fe: DUP4
000001ff: MUL
00000200: OR
00000201: SWAP1
00000202: SSTORE
00000203: POP
00000204: DUP5
00000205: NUMBER
00000206: ADD
00000207: SWAP4
00000208: POP
00000209: PUSH1 0x40
0000020b: MLOAD
0000020c: DUP1
0000020d: DUP1
0000020e: PUSH32 0x72657475726e46696e6e65792829000000000000000000000000000000000000
0000022f: DUP2
00000230: MSTORE
00000231: PUSH1 0x20
00000233: ADD
00000234: POP
00000235: PUSH1 0x0e
00000237: ADD
00000238: SWAP1
00000239: POP
0000023a: PUSH1 0x40
0000023c: MLOAD
0000023d: DUP1
0000023e: SWAP2
0000023f: SUB
00000240: SWAP1
00000241: KECCAK256
00000242: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000260: DUP1
00000261: SWAP2
00000262: DIV
00000263: MUL
00000264: SWAP3
00000265: POP
00000266: PUSH1 0x40
00000268: MLOAD
00000269: DUP1
0000026a: DUP1
0000026b: PUSH32 0x7363686564756c6543616c6c286279746573342c75696e743235362900000000
0000028c: DUP2
0000028d: MSTORE
0000028e: PUSH1 0x20
00000290: ADD
00000291: POP
00000292: PUSH1 0x1c
00000294: ADD
00000295: SWAP1
00000296: POP
00000297: PUSH1 0x40
00000299: MLOAD
0000029a: DUP1
0000029b: SWAP2
0000029c: SUB
0000029d: SWAP1
0000029e: KECCAK256
0000029f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000002bd: DUP1
000002be: SWAP2
000002bf: DIV
000002c0: MUL
000002c1: SWAP2
000002c2: POP
000002c3: PUSH7 0x8e1bc9bf040000
000002cb: PUSH3 0x030d40
000002cf: GASPRICE
000002d0: MUL
000002d1: ADD
000002d2: SWAP1
000002d3: POP
000002d4: PUSH1 0x01
000002d6: PUSH1 0x00
000002d8: SWAP1
000002d9: SLOAD
000002da: SWAP1
000002db: PUSH2 0x0100
000002de: EXP
000002df: SWAP1
000002e0: DIV
000002e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002f6: AND
000002f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000030c: AND
0000030d: DUP2
0000030e: DUP4
0000030f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000032d: SWAP1
0000032e: DIV
0000032f: SWAP1
00000330: DUP6
00000331: DUP8
00000332: PUSH1 0x40
00000334: MLOAD
00000335: DUP5
00000336: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000354: MUL
00000355: DUP2
00000356: MSTORE
00000357: PUSH1 0x04
00000359: ADD
0000035a: DUP1
0000035b: DUP4
0000035c: DUP2
0000035d: MSTORE
0000035e: PUSH1 0x20
00000360: ADD
00000361: DUP3
00000362: DUP2
00000363: MSTORE
00000364: PUSH1 0x20
00000366: ADD
00000367: SWAP3
00000368: POP
00000369: POP
0000036a: POP
0000036b: PUSH1 0x00
0000036d: PUSH1 0x40
0000036f: MLOAD
00000370: DUP1
00000371: DUP4
00000372: SUB
00000373: DUP2
00000374: DUP6
00000375: DUP9
00000376: PUSH2 0x8502
00000379: GAS
0000037a: SUB
0000037b: CALL
0000037c: SWAP4
0000037d: POP
0000037e: POP
0000037f: POP
00000380: POP
00000381: POP
00000382: JUMPDEST
00000383: POP
00000384: POP
00000385: POP
00000386: POP
00000387: POP
00000388: JUMP
00000389: JUMPDEST
0000038a: PUSH1 0x00
0000038c: PUSH1 0x00
0000038e: PUSH1 0x00
00000390: PUSH1 0x00
00000392: PUSH1 0x05
00000394: PUSH1 0x00
00000396: POP
00000397: SLOAD
00000398: PUSH1 0x04
0000039a: PUSH1 0x00
0000039c: POP
0000039d: SLOAD
0000039e: NUMBER
0000039f: SUB
000003a0: LT
000003a1: ISZERO
000003a2: PUSH2 0x03aa
000003a5: JUMPI
000003a6: PUSH2 0x0002
000003a9: JUMP
000003aa: JUMPDEST
000003ab: ORIGIN
000003ac: PUSH1 0x02
000003ae: PUSH1 0x00
000003b0: PUSH2 0x0100
000003b3: EXP
000003b4: DUP2
000003b5: SLOAD
000003b6: DUP2
000003b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003cc: MUL
000003cd: NOT
000003ce: AND
000003cf: SWAP1
000003d0: DUP4
000003d1: MUL
000003d2: OR
000003d3: SWAP1
000003d4: SSTORE
000003d5: POP
000003d6: CALLER
000003d7: PUSH1 0x03
000003d9: PUSH1 0x00
000003db: PUSH2 0x0100
000003de: EXP
000003df: DUP2
000003e0: SLOAD
000003e1: DUP2
000003e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003f7: MUL
000003f8: NOT
000003f9: AND
000003fa: SWAP1
000003fb: DUP4
000003fc: MUL
000003fd: OR
000003fe: SWAP1
000003ff: SSTORE
00000400: POP
00000401: NUMBER
00000402: PUSH1 0x04
00000404: PUSH1 0x00
00000406: POP
00000407: DUP2
00000408: SWAP1
00000409: SSTORE
0000040a: POP
0000040b: PUSH2 0x0412
0000040e: PUSH2 0x059c
00000411: JUMP
00000412: JUMPDEST
00000413: PUSH1 0x05
00000415: PUSH1 0x00
00000417: POP
00000418: SLOAD
00000419: NUMBER
0000041a: ADD
0000041b: SWAP4
0000041c: POP
0000041d: PUSH1 0x40
0000041f: MLOAD
00000420: DUP1
00000421: DUP1
00000422: PUSH32 0x7363686564756c654c6f6f70656443616c6c2829000000000000000000000000
00000443: DUP2
00000444: MSTORE
00000445: PUSH1 0x20
00000447: ADD
00000448: POP
00000449: PUSH1 0x14
0000044b: ADD
0000044c: SWAP1
0000044d: POP
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP1
00000452: SWAP2
00000453: SUB
00000454: SWAP1
00000455: KECCAK256
00000456: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000474: DUP1
00000475: SWAP2
00000476: DIV
00000477: MUL
00000478: SWAP3
00000479: POP
0000047a: PUSH1 0x40
0000047c: MLOAD
0000047d: DUP1
0000047e: DUP1
0000047f: PUSH32 0x7363686564756c6543616c6c286279746573342c75696e743235362900000000
000004a0: DUP2
000004a1: MSTORE
000004a2: PUSH1 0x20
000004a4: ADD
000004a5: POP
000004a6: PUSH1 0x1c
000004a8: ADD
000004a9: SWAP1
000004aa: POP
000004ab: PUSH1 0x40
000004ad: MLOAD
000004ae: DUP1
000004af: SWAP2
000004b0: SUB
000004b1: SWAP1
000004b2: KECCAK256
000004b3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000004d1: DUP1
000004d2: SWAP2
000004d3: DIV
000004d4: MUL
000004d5: SWAP2
000004d6: POP
000004d7: PUSH7 0x8e1bc9bf040000
000004df: PUSH3 0x030d40
000004e3: GASPRICE
000004e4: MUL
000004e5: ADD
000004e6: SWAP1
000004e7: POP
000004e8: PUSH1 0x01
000004ea: PUSH1 0x00
000004ec: SWAP1
000004ed: SLOAD
000004ee: SWAP1
000004ef: PUSH2 0x0100
000004f2: EXP
000004f3: SWAP1
000004f4: DIV
000004f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000050a: AND
0000050b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000520: AND
00000521: DUP2
00000522: DUP4
00000523: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000541: SWAP1
00000542: DIV
00000543: SWAP1
00000544: DUP6
00000545: DUP8
00000546: PUSH1 0x40
00000548: MLOAD
00000549: DUP5
0000054a: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000568: MUL
00000569: DUP2
0000056a: MSTORE
0000056b: PUSH1 0x04
0000056d: ADD
0000056e: DUP1
0000056f: DUP4
00000570: DUP2
00000571: MSTORE
00000572: PUSH1 0x20
00000574: ADD
00000575: DUP3
00000576: DUP2
00000577: MSTORE
00000578: PUSH1 0x20
0000057a: ADD
0000057b: SWAP3
0000057c: POP
0000057d: POP
0000057e: POP
0000057f: PUSH1 0x00
00000581: PUSH1 0x40
00000583: MLOAD
00000584: DUP1
00000585: DUP4
00000586: SUB
00000587: DUP2
00000588: DUP6
00000589: DUP9
0000058a: PUSH2 0x8502
0000058d: GAS
0000058e: SUB
0000058f: CALL
00000590: SWAP4
00000591: POP
00000592: POP
00000593: POP
00000594: POP
00000595: POP
00000596: JUMPDEST
00000597: POP
00000598: POP
00000599: POP
0000059a: POP
0000059b: JUMP
0000059c: JUMPDEST
0000059d: PUSH1 0x00
0000059f: PUSH1 0x00
000005a1: SWAP1
000005a2: SLOAD
000005a3: SWAP1
000005a4: PUSH2 0x0100
000005a7: EXP
000005a8: SWAP1
000005a9: DIV
000005aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005bf: AND
000005c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005d5: AND
000005d6: PUSH1 0x00
000005d8: PUSH7 0x038d7ea4c68000
000005e0: PUSH1 0x40
000005e2: MLOAD
000005e3: DUP1
000005e4: SWAP1
000005e5: POP
000005e6: PUSH1 0x00
000005e8: PUSH1 0x40
000005ea: MLOAD
000005eb: DUP1
000005ec: DUP4
000005ed: SUB
000005ee: DUP2
000005ef: DUP6
000005f0: DUP9
000005f1: DUP9
000005f2: CALL
000005f3: SWAP4
000005f4: POP
000005f5: POP
000005f6: POP
000005f7: POP
000005f8: POP
000005f9: JUMPDEST
000005fa: JUMP
000005fb: JUMPDEST
000005fc: PUSH1 0x00
000005fe: PUSH1 0x00
00000600: SWAP1
00000601: SLOAD
00000602: SWAP1
00000603: PUSH2 0x0100
00000606: EXP
00000607: SWAP1
00000608: DIV
00000609: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000061e: AND
0000061f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000634: AND
00000635: CALLER
00000636: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000064b: AND
0000064c: EQ
0000064d: ISZERO
0000064e: ISZERO
0000064f: PUSH2 0x065b
00000652: JUMPI
00000653: PUSH2 0x0002
00000656: JUMP
00000657: PUSH2 0x06c8
0000065a: JUMP
0000065b: JUMPDEST
0000065c: PUSH1 0x00
0000065e: PUSH1 0x00
00000660: SWAP1
00000661: SLOAD
00000662: SWAP1
00000663: PUSH2 0x0100
00000666: EXP
00000667: SWAP1
00000668: DIV
00000669: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000067e: AND
0000067f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000694: AND
00000695: PUSH1 0x00
00000697: ADDRESS
00000698: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ad: AND
000006ae: BALANCE
000006af: PUSH1 0x40
000006b1: MLOAD
000006b2: DUP1
000006b3: SWAP1
000006b4: POP
000006b5: PUSH1 0x00
000006b7: PUSH1 0x40
000006b9: MLOAD
000006ba: DUP1
000006bb: DUP4
000006bc: SUB
000006bd: DUP2
000006be: DUP6
000006bf: DUP9
000006c0: DUP9
000006c1: CALL
000006c2: SWAP4
000006c3: POP
000006c4: POP
000006c5: POP
000006c6: POP
000006c7: POP
000006c8: JUMPDEST
000006c9: JUMPDEST
000006ca: JUMP
000006cb: JUMPDEST
000006cc: PUSH1 0x00
000006ce: PUSH1 0x00
000006d0: SWAP1
000006d1: SLOAD
000006d2: SWAP1
000006d3: PUSH2 0x0100
000006d6: EXP
000006d7: SWAP1
000006d8: DIV
000006d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ee: AND
000006ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000704: AND
00000705: CALLER
00000706: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000071b: AND
0000071c: EQ
0000071d: ISZERO
0000071e: ISZERO
0000071f: PUSH2 0x072b
00000722: JUMPI
00000723: PUSH2 0x0002
00000726: JUMP
00000727: PUSH2 0x0766
0000072a: JUMP
0000072b: JUMPDEST
0000072c: PUSH1 0x00
0000072e: PUSH1 0x00
00000730: SWAP1
00000731: SLOAD
00000732: SWAP1
00000733: PUSH2 0x0100
00000736: EXP
00000737: SWAP1
00000738: DIV
00000739: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000074e: AND
0000074f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000764: AND
00000765: SELFDESTRUCT
00000766: JUMPDEST
00000767: JUMPDEST
00000768: 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": "0x14ca3c7c",
            "selector": "0x14ca3c7c",
            "calldata_variants": [
                "0x14ca3c7c",
                "0x14ca3c7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x632cd1d3",
            "selector": "0x632cd1d3",
            "calldata_variants": [
                "0x632cd1d3",
                "0x632cd1d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x652070c4",
            "selector": "0x652070c4",
            "calldata_variants": [
                "0x652070c4",
                "0x652070c40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdca5db65",
            "selector": "0xdca5db65",
            "calldata_variants": [
                "0xdca5db65",
                "0xdca5db650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5ca93d3",
            "selector": "0xf5ca93d3",
            "calldata_variants": [
                "0xf5ca93d3",
                "0xf5ca93d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 430,
            "type": "tx_origin_used"
        },
        {
            "pc": 939,
            "type": "tx_origin_used"
        },
        {
            "pc": 1589,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1797,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x1473b1091d586828230fb754bc1733a688d9913d13615dca5b9f33a2a60c24de
call_targets: 0xd8e460209639f57f2bea9a457375e2ced4c3b7d5
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1473b1091d586828230fb754bc1733a688d9913d13615dca5b9f33a2a60c24de",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd8e460209639f57f2bea9a457375e2ced4c3b7d5"
    ],
    "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": "0x14ca3c7c",
            "selector": "0x14ca3c7c",
            "calldata_variants": [
                "0x14ca3c7c",
                "0x14ca3c7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x632cd1d3",
            "selector": "0x632cd1d3",
            "calldata_variants": [
                "0x632cd1d3",
                "0x632cd1d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x652070c4",
            "selector": "0x652070c4",
            "calldata_variants": [
                "0x652070c4",
                "0x652070c40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdca5db65",
            "selector": "0xdca5db65",
            "calldata_variants": [
                "0xdca5db65",
                "0xdca5db650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5ca93d3",
            "selector": "0xf5ca93d3",
            "calldata_variants": [
                "0xf5ca93d3",
                "0xf5ca93d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 891,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1423,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1522,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 430,
            "type": "tx_origin_used"
        },
        {
            "pc": 939,
            "type": "tx_origin_used"
        },
        {
            "pc": 1589,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1797,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x1473b1091d586828230fb754bc1733a688d9913d13615dca5b9f33a2a60c24de
call_targets: 0xd8e460209639f57f2bea9a457375e2ced4c3b7d5
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x1473b1091d586828230fb754bc1733a688d9913d13615dca5b9f33a2a60c24de",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd8e460209639f57f2bea9a457375e2ced4c3b7d5"
    ],
    "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": "0x14ca3c7c",
            "selector": "0x14ca3c7c",
            "calldata_variants": [
                "0x14ca3c7c",
                "0x14ca3c7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x632cd1d3",
            "selector": "0x632cd1d3",
            "calldata_variants": [
                "0x632cd1d3",
                "0x632cd1d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x652070c4",
            "selector": "0x652070c4",
            "calldata_variants": [
                "0x652070c4",
                "0x652070c40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdca5db65",
            "selector": "0xdca5db65",
            "calldata_variants": [
                "0xdca5db65",
                "0xdca5db650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5ca93d3",
            "selector": "0xf5ca93d3",
            "calldata_variants": [
                "0xf5ca93d3",
                "0xf5ca93d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 891,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1423,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1522,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 430,
            "type": "tx_origin_used"
        },
        {
            "pc": 939,
            "type": "tx_origin_used"
        },
        {
            "pc": 1589,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1797,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xee4fe26e24d2dcb4c999593932839255207daeb7dd4cd13c81a487890d2e3aa8
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 14,
    "trace_id": "0xee4fe26e24d2dcb4c999593932839255207daeb7dd4cd13c81a487890d2e3aa8",
    "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": "0x14ca3c7c",
            "selector": "0x14ca3c7c",
            "calldata_variants": [
                "0x14ca3c7c",
                "0x14ca3c7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x632cd1d3",
            "selector": "0x632cd1d3",
            "calldata_variants": [
                "0x632cd1d3",
                "0x632cd1d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x652070c4",
            "selector": "0x652070c4",
            "calldata_variants": [
                "0x652070c4",
                "0x652070c40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdca5db65",
            "selector": "0xdca5db65",
            "calldata_variants": [
                "0xdca5db65",
                "0xdca5db650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5ca93d3",
            "selector": "0xf5ca93d3",
            "calldata_variants": [
                "0xf5ca93d3",
                "0xf5ca93d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 430,
            "type": "tx_origin_used"
        },
        {
            "pc": 939,
            "type": "tx_origin_used"
        },
        {
            "pc": 1589,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1797,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "selfdestruct_count": 1
}