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

Analysis Run

019b3836-2fc6-71d3-b438-7180ae31ef10

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
2495 artifact.fetch complete 1 / 3 3 months ago
2496 tool.cast_disasm complete 1 / 3 3 months ago
96862 analysis.bundle complete 1 / 3 1 week ago
96863 capability.graph complete 1 / 3 1 week ago
96864 detector.run complete 1 / 3 1 week ago
96865 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
1
Total opcodes
1180
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0069
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x014c2add
00000034: EQ
00000035: PUSH2 0x00c7
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x41c0e1b5
0000003f: EQ
00000040: PUSH2 0x0171
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x99142b5f
0000004a: EQ
0000004b: PUSH2 0x0180
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0xcbf86c80
00000055: EQ
00000056: PUSH2 0x01ac
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0xf2a75fe4
00000060: EQ
00000061: PUSH2 0x01d8
00000064: JUMPI
00000065: PUSH2 0x0069
00000068: JUMP
00000069: JUMPDEST
0000006a: PUSH2 0x00c5
0000006d: JUMPDEST
0000006e: PUSH1 0x00
00000070: PUSH1 0x00
00000072: SWAP1
00000073: SLOAD
00000074: SWAP1
00000075: PUSH2 0x0100
00000078: EXP
00000079: SWAP1
0000007a: DIV
0000007b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000090: AND
00000091: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000a6: AND
000000a7: PUSH1 0x00
000000a9: CALLVALUE
000000aa: PUSH1 0x40
000000ac: MLOAD
000000ad: DUP1
000000ae: SWAP1
000000af: POP
000000b0: PUSH1 0x00
000000b2: PUSH1 0x40
000000b4: MLOAD
000000b5: DUP1
000000b6: DUP4
000000b7: SUB
000000b8: DUP2
000000b9: DUP6
000000ba: DUP9
000000bb: DUP9
000000bc: CALL
000000bd: SWAP4
000000be: POP
000000bf: POP
000000c0: POP
000000c1: POP
000000c2: POP
000000c3: JUMPDEST
000000c4: JUMP
000000c5: JUMPDEST
000000c6: STOP
000000c7: JUMPDEST
000000c8: PUSH2 0x00e6
000000cb: PUSH1 0x04
000000cd: DUP1
000000ce: DUP1
000000cf: CALLDATALOAD
000000d0: SWAP1
000000d1: PUSH1 0x20
000000d3: ADD
000000d4: SWAP1
000000d5: SWAP2
000000d6: SWAP1
000000d7: DUP1
000000d8: CALLDATALOAD
000000d9: SWAP1
000000da: PUSH1 0x20
000000dc: ADD
000000dd: SWAP1
000000de: SWAP2
000000df: SWAP1
000000e0: POP
000000e1: POP
000000e2: PUSH2 0x0514
000000e5: JUMP
000000e6: JUMPDEST
000000e7: PUSH1 0x40
000000e9: MLOAD
000000ea: DUP1
000000eb: DUP4
000000ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000101: AND
00000102: DUP2
00000103: MSTORE
00000104: PUSH1 0x20
00000106: ADD
00000107: DUP1
00000108: PUSH1 0x20
0000010a: ADD
0000010b: DUP3
0000010c: DUP2
0000010d: SUB
0000010e: DUP3
0000010f: MSTORE
00000110: DUP4
00000111: DUP2
00000112: DUP2
00000113: MLOAD
00000114: DUP2
00000115: MSTORE
00000116: PUSH1 0x20
00000118: ADD
00000119: SWAP2
0000011a: POP
0000011b: DUP1
0000011c: MLOAD
0000011d: SWAP1
0000011e: PUSH1 0x20
00000120: ADD
00000121: SWAP1
00000122: DUP1
00000123: DUP4
00000124: DUP4
00000125: DUP3
00000126: SWAP1
00000127: PUSH1 0x00
00000129: PUSH1 0x04
0000012b: PUSH1 0x20
0000012d: DUP5
0000012e: PUSH1 0x1f
00000130: ADD
00000131: DIV
00000132: PUSH1 0x0f
00000134: MUL
00000135: PUSH1 0x03
00000137: ADD
00000138: CALL
00000139: POP
0000013a: SWAP1
0000013b: POP
0000013c: SWAP1
0000013d: DUP2
0000013e: ADD
0000013f: SWAP1
00000140: PUSH1 0x1f
00000142: AND
00000143: DUP1
00000144: ISZERO
00000145: PUSH2 0x0162
00000148: JUMPI
00000149: DUP1
0000014a: DUP3
0000014b: SUB
0000014c: DUP1
0000014d: MLOAD
0000014e: PUSH1 0x01
00000150: DUP4
00000151: PUSH1 0x20
00000153: SUB
00000154: PUSH2 0x0100
00000157: EXP
00000158: SUB
00000159: NOT
0000015a: AND
0000015b: DUP2
0000015c: MSTORE
0000015d: PUSH1 0x20
0000015f: ADD
00000160: SWAP2
00000161: POP
00000162: JUMPDEST
00000163: POP
00000164: SWAP4
00000165: POP
00000166: POP
00000167: POP
00000168: POP
00000169: PUSH1 0x40
0000016b: MLOAD
0000016c: DUP1
0000016d: SWAP2
0000016e: SUB
0000016f: SWAP1
00000170: RETURN
00000171: JUMPDEST
00000172: PUSH2 0x017e
00000175: PUSH1 0x04
00000177: DUP1
00000178: POP
00000179: POP
0000017a: PUSH2 0x0696
0000017d: JUMP
0000017e: JUMPDEST
0000017f: STOP
00000180: JUMPDEST
00000181: PUSH2 0x01aa
00000184: PUSH1 0x04
00000186: DUP1
00000187: DUP1
00000188: CALLDATALOAD
00000189: SWAP1
0000018a: PUSH1 0x20
0000018c: ADD
0000018d: SWAP1
0000018e: SWAP2
0000018f: SWAP1
00000190: DUP1
00000191: CALLDATALOAD
00000192: SWAP1
00000193: PUSH1 0x20
00000195: ADD
00000196: SWAP1
00000197: DUP3
00000198: ADD
00000199: DUP1
0000019a: CALLDATALOAD
0000019b: SWAP1
0000019c: PUSH1 0x20
0000019e: ADD
0000019f: SWAP2
000001a0: SWAP1
000001a1: SWAP2
000001a2: SWAP3
000001a3: SWAP1
000001a4: POP
000001a5: POP
000001a6: PUSH2 0x01e7
000001a9: JUMP
000001aa: JUMPDEST
000001ab: STOP
000001ac: JUMPDEST
000001ad: PUSH2 0x01c2
000001b0: PUSH1 0x04
000001b2: DUP1
000001b3: DUP1
000001b4: CALLDATALOAD
000001b5: SWAP1
000001b6: PUSH1 0x20
000001b8: ADD
000001b9: SWAP1
000001ba: SWAP2
000001bb: SWAP1
000001bc: POP
000001bd: POP
000001be: PUSH2 0x04d3
000001c1: JUMP
000001c2: JUMPDEST
000001c3: PUSH1 0x40
000001c5: MLOAD
000001c6: DUP1
000001c7: DUP3
000001c8: DUP2
000001c9: MSTORE
000001ca: PUSH1 0x20
000001cc: ADD
000001cd: SWAP2
000001ce: POP
000001cf: POP
000001d0: PUSH1 0x40
000001d2: MLOAD
000001d3: DUP1
000001d4: SWAP2
000001d5: SUB
000001d6: SWAP1
000001d7: RETURN
000001d8: JUMPDEST
000001d9: PUSH2 0x01e5
000001dc: PUSH1 0x04
000001de: DUP1
000001df: POP
000001e0: POP
000001e1: PUSH2 0x072f
000001e4: JUMP
000001e5: JUMPDEST
000001e6: STOP
000001e7: JUMPDEST
000001e8: PUSH1 0x01
000001ea: PUSH1 0x00
000001ec: POP
000001ed: PUSH1 0x00
000001ef: DUP5
000001f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000205: AND
00000206: DUP2
00000207: MSTORE
00000208: PUSH1 0x20
0000020a: ADD
0000020b: SWAP1
0000020c: DUP2
0000020d: MSTORE
0000020e: PUSH1 0x20
00000210: ADD
00000211: PUSH1 0x00
00000213: KECCAK256
00000214: PUSH1 0x00
00000216: POP
00000217: DUP1
00000218: SLOAD
00000219: DUP1
0000021a: PUSH1 0x01
0000021c: ADD
0000021d: DUP3
0000021e: DUP2
0000021f: DUP2
00000220: SLOAD
00000221: DUP2
00000222: DUP4
00000223: SSTORE
00000224: DUP2
00000225: DUP2
00000226: ISZERO
00000227: GT
00000228: PUSH2 0x02f3
0000022b: JUMPI
0000022c: PUSH1 0x02
0000022e: MUL
0000022f: DUP2
00000230: PUSH1 0x02
00000232: MUL
00000233: DUP4
00000234: PUSH1 0x00
00000236: MSTORE
00000237: PUSH1 0x20
00000239: PUSH1 0x00
0000023b: KECCAK256
0000023c: SWAP2
0000023d: DUP3
0000023e: ADD
0000023f: SWAP2
00000240: ADD
00000241: PUSH2 0x02f2
00000244: SWAP2
00000245: SWAP1
00000246: PUSH2 0x024a
00000249: JUMP
0000024a: JUMPDEST
0000024b: DUP1
0000024c: DUP3
0000024d: GT
0000024e: ISZERO
0000024f: PUSH2 0x02ee
00000252: JUMPI
00000253: PUSH1 0x00
00000255: PUSH1 0x00
00000257: DUP3
00000258: ADD
00000259: PUSH1 0x00
0000025b: PUSH2 0x0100
0000025e: EXP
0000025f: DUP2
00000260: SLOAD
00000261: SWAP1
00000262: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000277: MUL
00000278: NOT
00000279: AND
0000027a: SWAP1
0000027b: SSTORE
0000027c: PUSH1 0x01
0000027e: DUP3
0000027f: ADD
00000280: PUSH1 0x00
00000282: POP
00000283: DUP1
00000284: SLOAD
00000285: PUSH1 0x01
00000287: DUP2
00000288: PUSH1 0x01
0000028a: AND
0000028b: ISZERO
0000028c: PUSH2 0x0100
0000028f: MUL
00000290: SUB
00000291: AND
00000292: PUSH1 0x02
00000294: SWAP1
00000295: DIV
00000296: PUSH1 0x00
00000298: DUP3
00000299: SSTORE
0000029a: DUP1
0000029b: PUSH1 0x1f
0000029d: LT
0000029e: PUSH2 0x02a7
000002a1: JUMPI
000002a2: POP
000002a3: PUSH2 0x02e4
000002a6: JUMP
000002a7: JUMPDEST
000002a8: PUSH1 0x1f
000002aa: ADD
000002ab: PUSH1 0x20
000002ad: SWAP1
000002ae: DIV
000002af: SWAP1
000002b0: PUSH1 0x00
000002b2: MSTORE
000002b3: PUSH1 0x20
000002b5: PUSH1 0x00
000002b7: KECCAK256
000002b8: SWAP1
000002b9: DUP2
000002ba: ADD
000002bb: SWAP1
000002bc: PUSH2 0x02e3
000002bf: SWAP2
000002c0: SWAP1
000002c1: PUSH2 0x02c5
000002c4: JUMP
000002c5: JUMPDEST
000002c6: DUP1
000002c7: DUP3
000002c8: GT
000002c9: ISZERO
000002ca: PUSH2 0x02df
000002cd: JUMPI
000002ce: PUSH1 0x00
000002d0: DUP2
000002d1: DUP2
000002d2: POP
000002d3: PUSH1 0x00
000002d5: SWAP1
000002d6: SSTORE
000002d7: POP
000002d8: PUSH1 0x01
000002da: ADD
000002db: PUSH2 0x02c5
000002de: JUMP
000002df: JUMPDEST
000002e0: POP
000002e1: SWAP1
000002e2: JUMP
000002e3: JUMPDEST
000002e4: JUMPDEST
000002e5: POP
000002e6: POP
000002e7: PUSH1 0x01
000002e9: ADD
000002ea: PUSH2 0x024a
000002ed: JUMP
000002ee: JUMPDEST
000002ef: POP
000002f0: SWAP1
000002f1: JUMP
000002f2: JUMPDEST
000002f3: JUMPDEST
000002f4: POP
000002f5: POP
000002f6: POP
000002f7: SWAP2
000002f8: SWAP1
000002f9: SWAP1
000002fa: PUSH1 0x00
000002fc: MSTORE
000002fd: PUSH1 0x20
000002ff: PUSH1 0x00
00000301: KECCAK256
00000302: SWAP1
00000303: PUSH1 0x02
00000305: MUL
00000306: ADD
00000307: PUSH1 0x00
00000309: JUMPDEST
0000030a: PUSH1 0x40
0000030c: PUSH1 0x40
0000030e: MLOAD
0000030f: SWAP1
00000310: DUP2
00000311: ADD
00000312: PUSH1 0x40
00000314: MSTORE
00000315: DUP1
00000316: ORIGIN
00000317: DUP2
00000318: MSTORE
00000319: PUSH1 0x20
0000031b: ADD
0000031c: DUP7
0000031d: DUP7
0000031e: DUP1
0000031f: DUP1
00000320: PUSH1 0x1f
00000322: ADD
00000323: PUSH1 0x20
00000325: DUP1
00000326: SWAP2
00000327: DIV
00000328: MUL
00000329: PUSH1 0x20
0000032b: ADD
0000032c: PUSH1 0x40
0000032e: MLOAD
0000032f: SWAP1
00000330: DUP2
00000331: ADD
00000332: PUSH1 0x40
00000334: MSTORE
00000335: DUP1
00000336: SWAP4
00000337: SWAP3
00000338: SWAP2
00000339: SWAP1
0000033a: DUP2
0000033b: DUP2
0000033c: MSTORE
0000033d: PUSH1 0x20
0000033f: ADD
00000340: DUP4
00000341: DUP4
00000342: DUP1
00000343: DUP3
00000344: DUP5
00000345: CALLDATACOPY
00000346: DUP3
00000347: ADD
00000348: SWAP2
00000349: POP
0000034a: POP
0000034b: POP
0000034c: POP
0000034d: POP
0000034e: POP
0000034f: DUP2
00000350: MSTORE
00000351: PUSH1 0x20
00000353: ADD
00000354: POP
00000355: SWAP1
00000356: SWAP2
00000357: SWAP1
00000358: SWAP2
00000359: POP
0000035a: PUSH1 0x00
0000035c: DUP3
0000035d: ADD
0000035e: MLOAD
0000035f: DUP2
00000360: PUSH1 0x00
00000362: ADD
00000363: PUSH1 0x00
00000365: PUSH2 0x0100
00000368: EXP
00000369: DUP2
0000036a: SLOAD
0000036b: DUP2
0000036c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000381: MUL
00000382: NOT
00000383: AND
00000384: SWAP1
00000385: DUP4
00000386: MUL
00000387: OR
00000388: SWAP1
00000389: SSTORE
0000038a: POP
0000038b: PUSH1 0x20
0000038d: DUP3
0000038e: ADD
0000038f: MLOAD
00000390: DUP2
00000391: PUSH1 0x01
00000393: ADD
00000394: PUSH1 0x00
00000396: POP
00000397: SWAP1
00000398: DUP1
00000399: MLOAD
0000039a: SWAP1
0000039b: PUSH1 0x20
0000039d: ADD
0000039e: SWAP1
0000039f: DUP3
000003a0: DUP1
000003a1: SLOAD
000003a2: PUSH1 0x01
000003a4: DUP2
000003a5: PUSH1 0x01
000003a7: AND
000003a8: ISZERO
000003a9: PUSH2 0x0100
000003ac: MUL
000003ad: SUB
000003ae: AND
000003af: PUSH1 0x02
000003b1: SWAP1
000003b2: DIV
000003b3: SWAP1
000003b4: PUSH1 0x00
000003b6: MSTORE
000003b7: PUSH1 0x20
000003b9: PUSH1 0x00
000003bb: KECCAK256
000003bc: SWAP1
000003bd: PUSH1 0x1f
000003bf: ADD
000003c0: PUSH1 0x20
000003c2: SWAP1
000003c3: DIV
000003c4: DUP2
000003c5: ADD
000003c6: SWAP3
000003c7: DUP3
000003c8: PUSH1 0x1f
000003ca: LT
000003cb: PUSH2 0x03df
000003ce: JUMPI
000003cf: DUP1
000003d0: MLOAD
000003d1: PUSH1 0xff
000003d3: NOT
000003d4: AND
000003d5: DUP4
000003d6: DUP1
000003d7: ADD
000003d8: OR
000003d9: DUP6
000003da: SSTORE
000003db: PUSH2 0x0410
000003de: JUMP
000003df: JUMPDEST
000003e0: DUP3
000003e1: DUP1
000003e2: ADD
000003e3: PUSH1 0x01
000003e5: ADD
000003e6: DUP6
000003e7: SSTORE
000003e8: DUP3
000003e9: ISZERO
000003ea: PUSH2 0x0410
000003ed: JUMPI
000003ee: SWAP2
000003ef: DUP3
000003f0: ADD
000003f1: JUMPDEST
000003f2: DUP3
000003f3: DUP2
000003f4: GT
000003f5: ISZERO
000003f6: PUSH2 0x040f
000003f9: JUMPI
000003fa: DUP3
000003fb: MLOAD
000003fc: DUP3
000003fd: PUSH1 0x00
000003ff: POP
00000400: SSTORE
00000401: SWAP2
00000402: PUSH1 0x20
00000404: ADD
00000405: SWAP2
00000406: SWAP1
00000407: PUSH1 0x01
00000409: ADD
0000040a: SWAP1
0000040b: PUSH2 0x03f1
0000040e: JUMP
0000040f: JUMPDEST
00000410: JUMPDEST
00000411: POP
00000412: SWAP1
00000413: POP
00000414: PUSH2 0x043b
00000417: SWAP2
00000418: SWAP1
00000419: PUSH2 0x041d
0000041c: JUMP
0000041d: JUMPDEST
0000041e: DUP1
0000041f: DUP3
00000420: GT
00000421: ISZERO
00000422: PUSH2 0x0437
00000425: JUMPI
00000426: PUSH1 0x00
00000428: DUP2
00000429: DUP2
0000042a: POP
0000042b: PUSH1 0x00
0000042d: SWAP1
0000042e: SSTORE
0000042f: POP
00000430: PUSH1 0x01
00000432: ADD
00000433: PUSH2 0x041d
00000436: JUMP
00000437: JUMPDEST
00000438: POP
00000439: SWAP1
0000043a: JUMP
0000043b: JUMPDEST
0000043c: POP
0000043d: POP
0000043e: POP
0000043f: POP
00000440: POP
00000441: PUSH32 0xa0e9a4c9a4189be3b54d3a0fdf081856920b265fdb41da1dd55903759408d399
00000462: DUP4
00000463: ORIGIN
00000464: DUP5
00000465: DUP5
00000466: PUSH1 0x40
00000468: MLOAD
00000469: DUP1
0000046a: DUP6
0000046b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000480: AND
00000481: DUP2
00000482: MSTORE
00000483: PUSH1 0x20
00000485: ADD
00000486: DUP5
00000487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049c: AND
0000049d: DUP2
0000049e: MSTORE
0000049f: PUSH1 0x20
000004a1: ADD
000004a2: DUP1
000004a3: PUSH1 0x20
000004a5: ADD
000004a6: DUP3
000004a7: DUP2
000004a8: SUB
000004a9: DUP3
000004aa: MSTORE
000004ab: DUP5
000004ac: DUP5
000004ad: DUP3
000004ae: DUP2
000004af: DUP2
000004b0: MSTORE
000004b1: PUSH1 0x20
000004b3: ADD
000004b4: SWAP3
000004b5: POP
000004b6: DUP1
000004b7: DUP3
000004b8: DUP5
000004b9: CALLDATACOPY
000004ba: DUP3
000004bb: ADD
000004bc: SWAP2
000004bd: POP
000004be: POP
000004bf: SWAP6
000004c0: POP
000004c1: POP
000004c2: POP
000004c3: POP
000004c4: POP
000004c5: POP
000004c6: PUSH1 0x40
000004c8: MLOAD
000004c9: DUP1
000004ca: SWAP2
000004cb: SUB
000004cc: SWAP1
000004cd: LOG1
000004ce: JUMPDEST
000004cf: POP
000004d0: POP
000004d1: POP
000004d2: JUMP
000004d3: JUMPDEST
000004d4: PUSH1 0x00
000004d6: PUSH1 0x01
000004d8: PUSH1 0x00
000004da: POP
000004db: PUSH1 0x00
000004dd: DUP4
000004de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004f3: AND
000004f4: DUP2
000004f5: MSTORE
000004f6: PUSH1 0x20
000004f8: ADD
000004f9: SWAP1
000004fa: DUP2
000004fb: MSTORE
000004fc: PUSH1 0x20
000004fe: ADD
000004ff: PUSH1 0x00
00000501: KECCAK256
00000502: PUSH1 0x00
00000504: POP
00000505: DUP1
00000506: SLOAD
00000507: SWAP1
00000508: POP
00000509: SWAP1
0000050a: POP
0000050b: PUSH2 0x050f
0000050e: JUMP
0000050f: JUMPDEST
00000510: SWAP2
00000511: SWAP1
00000512: POP
00000513: JUMP
00000514: JUMPDEST
00000515: PUSH1 0x00
00000517: PUSH1 0x20
00000519: PUSH1 0x40
0000051b: MLOAD
0000051c: SWAP1
0000051d: DUP2
0000051e: ADD
0000051f: PUSH1 0x40
00000521: MSTORE
00000522: DUP1
00000523: PUSH1 0x00
00000525: DUP2
00000526: MSTORE
00000527: PUSH1 0x20
00000529: ADD
0000052a: POP
0000052b: PUSH1 0x01
0000052d: PUSH1 0x00
0000052f: POP
00000530: PUSH1 0x00
00000532: DUP6
00000533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000548: AND
00000549: DUP2
0000054a: MSTORE
0000054b: PUSH1 0x20
0000054d: ADD
0000054e: SWAP1
0000054f: DUP2
00000550: MSTORE
00000551: PUSH1 0x20
00000553: ADD
00000554: PUSH1 0x00
00000556: KECCAK256
00000557: PUSH1 0x00
00000559: POP
0000055a: DUP4
0000055b: DUP2
0000055c: SLOAD
0000055d: DUP2
0000055e: LT
0000055f: ISZERO
00000560: PUSH2 0x0002
00000563: JUMPI
00000564: SWAP1
00000565: PUSH1 0x00
00000567: MSTORE
00000568: PUSH1 0x20
0000056a: PUSH1 0x00
0000056c: KECCAK256
0000056d: SWAP1
0000056e: PUSH1 0x02
00000570: MUL
00000571: ADD
00000572: PUSH1 0x00
00000574: JUMPDEST
00000575: POP
00000576: PUSH1 0x00
00000578: ADD
00000579: PUSH1 0x00
0000057b: SWAP1
0000057c: SLOAD
0000057d: SWAP1
0000057e: PUSH2 0x0100
00000581: EXP
00000582: SWAP1
00000583: DIV
00000584: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000599: AND
0000059a: PUSH1 0x01
0000059c: PUSH1 0x00
0000059e: POP
0000059f: PUSH1 0x00
000005a1: DUP7
000005a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b7: AND
000005b8: DUP2
000005b9: MSTORE
000005ba: PUSH1 0x20
000005bc: ADD
000005bd: SWAP1
000005be: DUP2
000005bf: MSTORE
000005c0: PUSH1 0x20
000005c2: ADD
000005c3: PUSH1 0x00
000005c5: KECCAK256
000005c6: PUSH1 0x00
000005c8: POP
000005c9: DUP5
000005ca: DUP2
000005cb: SLOAD
000005cc: DUP2
000005cd: LT
000005ce: ISZERO
000005cf: PUSH2 0x0002
000005d2: JUMPI
000005d3: SWAP1
000005d4: PUSH1 0x00
000005d6: MSTORE
000005d7: PUSH1 0x20
000005d9: PUSH1 0x00
000005db: KECCAK256
000005dc: SWAP1
000005dd: PUSH1 0x02
000005df: MUL
000005e0: ADD
000005e1: PUSH1 0x00
000005e3: JUMPDEST
000005e4: POP
000005e5: PUSH1 0x01
000005e7: ADD
000005e8: PUSH1 0x00
000005ea: POP
000005eb: DUP1
000005ec: DUP1
000005ed: SLOAD
000005ee: PUSH1 0x01
000005f0: DUP2
000005f1: PUSH1 0x01
000005f3: AND
000005f4: ISZERO
000005f5: PUSH2 0x0100
000005f8: MUL
000005f9: SUB
000005fa: AND
000005fb: PUSH1 0x02
000005fd: SWAP1
000005fe: DIV
000005ff: DUP1
00000600: PUSH1 0x1f
00000602: ADD
00000603: PUSH1 0x20
00000605: DUP1
00000606: SWAP2
00000607: DIV
00000608: MUL
00000609: PUSH1 0x20
0000060b: ADD
0000060c: PUSH1 0x40
0000060e: MLOAD
0000060f: SWAP1
00000610: DUP2
00000611: ADD
00000612: PUSH1 0x40
00000614: MSTORE
00000615: DUP1
00000616: SWAP3
00000617: SWAP2
00000618: SWAP1
00000619: DUP2
0000061a: DUP2
0000061b: MSTORE
0000061c: PUSH1 0x20
0000061e: ADD
0000061f: DUP3
00000620: DUP1
00000621: SLOAD
00000622: PUSH1 0x01
00000624: DUP2
00000625: PUSH1 0x01
00000627: AND
00000628: ISZERO
00000629: PUSH2 0x0100
0000062c: MUL
0000062d: SUB
0000062e: AND
0000062f: PUSH1 0x02
00000631: SWAP1
00000632: DIV
00000633: DUP1
00000634: ISZERO
00000635: PUSH2 0x067f
00000638: JUMPI
00000639: DUP1
0000063a: PUSH1 0x1f
0000063c: LT
0000063d: PUSH2 0x0654
00000640: JUMPI
00000641: PUSH2 0x0100
00000644: DUP1
00000645: DUP4
00000646: SLOAD
00000647: DIV
00000648: MUL
00000649: DUP4
0000064a: MSTORE
0000064b: SWAP2
0000064c: PUSH1 0x20
0000064e: ADD
0000064f: SWAP2
00000650: PUSH2 0x067f
00000653: JUMP
00000654: JUMPDEST
00000655: DUP3
00000656: ADD
00000657: SWAP2
00000658: SWAP1
00000659: PUSH1 0x00
0000065b: MSTORE
0000065c: PUSH1 0x20
0000065e: PUSH1 0x00
00000660: KECCAK256
00000661: SWAP1
00000662: JUMPDEST
00000663: DUP2
00000664: SLOAD
00000665: DUP2
00000666: MSTORE
00000667: SWAP1
00000668: PUSH1 0x01
0000066a: ADD
0000066b: SWAP1
0000066c: PUSH1 0x20
0000066e: ADD
0000066f: DUP1
00000670: DUP4
00000671: GT
00000672: PUSH2 0x0662
00000675: JUMPI
00000676: DUP3
00000677: SWAP1
00000678: SUB
00000679: PUSH1 0x1f
0000067b: AND
0000067c: DUP3
0000067d: ADD
0000067e: SWAP2
0000067f: JUMPDEST
00000680: POP
00000681: POP
00000682: POP
00000683: POP
00000684: POP
00000685: SWAP1
00000686: POP
00000687: SWAP2
00000688: POP
00000689: SWAP2
0000068a: POP
0000068b: PUSH2 0x068f
0000068e: JUMP
0000068f: JUMPDEST
00000690: SWAP3
00000691: POP
00000692: SWAP3
00000693: SWAP1
00000694: POP
00000695: JUMP
00000696: JUMPDEST
00000697: PUSH1 0x00
00000699: PUSH1 0x00
0000069b: SWAP1
0000069c: SLOAD
0000069d: SWAP1
0000069e: PUSH2 0x0100
000006a1: EXP
000006a2: SWAP1
000006a3: DIV
000006a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006b9: AND
000006ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006cf: AND
000006d0: ORIGIN
000006d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e6: AND
000006e7: EQ
000006e8: ISZERO
000006e9: ISZERO
000006ea: PUSH2 0x06f2
000006ed: JUMPI
000006ee: PUSH2 0x072d
000006f1: JUMP
000006f2: JUMPDEST
000006f3: PUSH1 0x00
000006f5: PUSH1 0x00
000006f7: SWAP1
000006f8: SLOAD
000006f9: SWAP1
000006fa: PUSH2 0x0100
000006fd: EXP
000006fe: SWAP1
000006ff: DIV
00000700: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000715: AND
00000716: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000072b: AND
0000072c: SELFDESTRUCT
0000072d: JUMPDEST
0000072e: JUMP
0000072f: JUMPDEST
00000730: PUSH1 0x00
00000732: PUSH1 0x00
00000734: SWAP1
00000735: SLOAD
00000736: SWAP1
00000737: PUSH2 0x0100
0000073a: EXP
0000073b: SWAP1
0000073c: DIV
0000073d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000752: AND
00000753: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000768: AND
00000769: ORIGIN
0000076a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000077f: AND
00000780: EQ
00000781: ISZERO
00000782: ISZERO
00000783: PUSH2 0x078b
00000786: JUMPI
00000787: PUSH2 0x07f8
0000078a: JUMP
0000078b: JUMPDEST
0000078c: PUSH1 0x00
0000078e: PUSH1 0x00
00000790: SWAP1
00000791: SLOAD
00000792: SWAP1
00000793: PUSH2 0x0100
00000796: EXP
00000797: SWAP1
00000798: DIV
00000799: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ae: AND
000007af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c4: AND
000007c5: PUSH1 0x00
000007c7: ADDRESS
000007c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007dd: AND
000007de: BALANCE
000007df: PUSH1 0x40
000007e1: MLOAD
000007e2: DUP1
000007e3: SWAP1
000007e4: POP
000007e5: PUSH1 0x00
000007e7: PUSH1 0x40
000007e9: MLOAD
000007ea: DUP1
000007eb: DUP4
000007ec: SUB
000007ed: DUP2
000007ee: DUP6
000007ef: DUP9
000007f0: DUP9
000007f1: CALL
000007f2: SWAP4
000007f3: POP
000007f4: POP
000007f5: POP
000007f6: POP
000007f7: POP
000007f8: JUMPDEST
000007f9: 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": "0x014c2add",
            "selector": "0x014c2add",
            "calldata_variants": [
                "0x014c2add",
                "0x014c2add0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x99142b5f",
            "selector": "0x99142b5f",
            "calldata_variants": [
                "0x99142b5f",
                "0x99142b5f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcbf86c80",
            "selector": "0xcbf86c80",
            "calldata_variants": [
                "0xcbf86c80",
                "0xcbf86c800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 790,
            "type": "tx_origin_used"
        },
        {
            "pc": 1123,
            "type": "tx_origin_used"
        },
        {
            "pc": 1744,
            "type": "tx_origin_used"
        },
        {
            "pc": 1897,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x28d3d912329fcdd91572612770e9b0a3df60c86aae487935c5cc1434c2289611
call_targets: 0xf8327bf1f9131e19145c99a4113d56a39621b11c
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28d3d912329fcdd91572612770e9b0a3df60c86aae487935c5cc1434c2289611",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf8327bf1f9131e19145c99a4113d56a39621b11c"
    ],
    "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": "0x014c2add",
            "selector": "0x014c2add",
            "calldata_variants": [
                "0x014c2add",
                "0x014c2add0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x99142b5f",
            "selector": "0x99142b5f",
            "calldata_variants": [
                "0x99142b5f",
                "0x99142b5f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcbf86c80",
            "selector": "0xcbf86c80",
            "calldata_variants": [
                "0xcbf86c80",
                "0xcbf86c800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 188,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 312,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2033,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 790,
            "type": "tx_origin_used"
        },
        {
            "pc": 1123,
            "type": "tx_origin_used"
        },
        {
            "pc": 1744,
            "type": "tx_origin_used"
        },
        {
            "pc": 1897,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x28d3d912329fcdd91572612770e9b0a3df60c86aae487935c5cc1434c2289611
call_targets: 0xf8327bf1f9131e19145c99a4113d56a39621b11c
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28d3d912329fcdd91572612770e9b0a3df60c86aae487935c5cc1434c2289611",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf8327bf1f9131e19145c99a4113d56a39621b11c"
    ],
    "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": "0x014c2add",
            "selector": "0x014c2add",
            "calldata_variants": [
                "0x014c2add",
                "0x014c2add0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x99142b5f",
            "selector": "0x99142b5f",
            "calldata_variants": [
                "0x99142b5f",
                "0x99142b5f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcbf86c80",
            "selector": "0xcbf86c80",
            "calldata_variants": [
                "0xcbf86c80",
                "0xcbf86c800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 188,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 312,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2033,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 790,
            "type": "tx_origin_used"
        },
        {
            "pc": 1123,
            "type": "tx_origin_used"
        },
        {
            "pc": 1744,
            "type": "tx_origin_used"
        },
        {
            "pc": 1897,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xffb6962d315c6b4c143ddea8740be1a14f103196229d34bde25ed922bd979f78
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 10,
    "trace_id": "0xffb6962d315c6b4c143ddea8740be1a14f103196229d34bde25ed922bd979f78",
    "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": "0x014c2add",
            "selector": "0x014c2add",
            "calldata_variants": [
                "0x014c2add",
                "0x014c2add0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x99142b5f",
            "selector": "0x99142b5f",
            "calldata_variants": [
                "0x99142b5f",
                "0x99142b5f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcbf86c80",
            "selector": "0xcbf86c80",
            "calldata_variants": [
                "0xcbf86c80",
                "0xcbf86c800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a75fe4",
            "selector": "0xf2a75fe4",
            "calldata_variants": [
                "0xf2a75fe4",
                "0xf2a75fe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 790,
            "type": "tx_origin_used"
        },
        {
            "pc": 1123,
            "type": "tx_origin_used"
        },
        {
            "pc": 1744,
            "type": "tx_origin_used"
        },
        {
            "pc": 1897,
            "type": "tx_origin_used"
        }
    ],
    "selfdestruct_count": 1
}