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

Analysis Run

019b3836-30c6-7192-8af6-a251e60912ca

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
2675 artifact.fetch complete 1 / 3 3 months ago
2676 tool.cast_disasm complete 1 / 3 3 months ago
46036 analysis.bundle complete 1 / 3 2 weeks ago
46037 capability.graph complete 1 / 3 2 weeks ago
46038 detector.run complete 1 / 3 2 weeks ago
46039 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
735
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 0x053e
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 0x0471
000000c6: JUMP
000000c7: JUMPDEST
000000c8: STOP
000000c9: JUMPDEST
000000ca: PUSH2 0x00d6
000000cd: PUSH1 0x04
000000cf: DUP1
000000d0: POP
000000d1: POP
000000d2: PUSH2 0x0344
000000d5: JUMP
000000d6: JUMPDEST
000000d7: STOP
000000d8: JUMPDEST
000000d9: PUSH2 0x00e5
000000dc: PUSH1 0x04
000000de: DUP1
000000df: POP
000000e0: POP
000000e1: PUSH2 0x0147
000000e4: JUMP
000000e5: JUMPDEST
000000e6: STOP
000000e7: JUMPDEST
000000e8: PUSH2 0x00f4
000000eb: PUSH1 0x04
000000ed: DUP1
000000ee: POP
000000ef: POP
000000f0: PUSH2 0x050f
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 0x03a1
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 0x056d
00000144: JUMP
00000145: JUMPDEST
00000146: STOP
00000147: JUMPDEST
00000148: PUSH1 0x00
0000014a: PUSH1 0x00
0000014c: PUSH1 0x00
0000014e: PUSH1 0x05
00000150: PUSH1 0x00
00000152: POP
00000153: SLOAD
00000154: PUSH1 0x04
00000156: PUSH1 0x00
00000158: POP
00000159: SLOAD
0000015a: NUMBER
0000015b: SUB
0000015c: LT
0000015d: ISZERO
0000015e: PUSH2 0x0166
00000161: JUMPI
00000162: PUSH2 0x0002
00000165: JUMP
00000166: JUMPDEST
00000167: ORIGIN
00000168: PUSH1 0x02
0000016a: PUSH1 0x00
0000016c: PUSH2 0x0100
0000016f: EXP
00000170: DUP2
00000171: SLOAD
00000172: DUP2
00000173: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000188: MUL
00000189: NOT
0000018a: AND
0000018b: SWAP1
0000018c: DUP4
0000018d: MUL
0000018e: OR
0000018f: SWAP1
00000190: SSTORE
00000191: POP
00000192: CALLER
00000193: PUSH1 0x03
00000195: PUSH1 0x00
00000197: PUSH2 0x0100
0000019a: EXP
0000019b: DUP2
0000019c: SLOAD
0000019d: DUP2
0000019e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b3: MUL
000001b4: NOT
000001b5: AND
000001b6: SWAP1
000001b7: DUP4
000001b8: MUL
000001b9: OR
000001ba: SWAP1
000001bb: SSTORE
000001bc: POP
000001bd: NUMBER
000001be: PUSH1 0x04
000001c0: PUSH1 0x00
000001c2: POP
000001c3: DUP2
000001c4: SWAP1
000001c5: SSTORE
000001c6: POP
000001c7: PUSH2 0x01ce
000001ca: PUSH2 0x0344
000001cd: JUMP
000001ce: JUMPDEST
000001cf: PUSH1 0x05
000001d1: PUSH1 0x00
000001d3: POP
000001d4: SLOAD
000001d5: NUMBER
000001d6: ADD
000001d7: SWAP3
000001d8: POP
000001d9: PUSH1 0x40
000001db: MLOAD
000001dc: DUP1
000001dd: DUP1
000001de: PUSH32 0x7363686564756c654c6f6f70656443616c6c2829000000000000000000000000
000001ff: DUP2
00000200: MSTORE
00000201: PUSH1 0x20
00000203: ADD
00000204: POP
00000205: PUSH1 0x14
00000207: ADD
00000208: SWAP1
00000209: POP
0000020a: PUSH1 0x40
0000020c: MLOAD
0000020d: DUP1
0000020e: SWAP2
0000020f: SUB
00000210: SWAP1
00000211: KECCAK256
00000212: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000230: DUP1
00000231: SWAP2
00000232: DIV
00000233: MUL
00000234: SWAP2
00000235: POP
00000236: PUSH1 0x40
00000238: MLOAD
00000239: DUP1
0000023a: DUP1
0000023b: PUSH32 0x7363686564756c6543616c6c286279746573342c75696e743235362900000000
0000025c: DUP2
0000025d: MSTORE
0000025e: PUSH1 0x20
00000260: ADD
00000261: POP
00000262: PUSH1 0x1c
00000264: ADD
00000265: SWAP1
00000266: POP
00000267: PUSH1 0x40
00000269: MLOAD
0000026a: DUP1
0000026b: SWAP2
0000026c: SUB
0000026d: SWAP1
0000026e: KECCAK256
0000026f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000028d: DUP1
0000028e: SWAP2
0000028f: DIV
00000290: MUL
00000291: SWAP1
00000292: POP
00000293: PUSH1 0x01
00000295: PUSH1 0x00
00000297: SWAP1
00000298: SLOAD
00000299: SWAP1
0000029a: PUSH2 0x0100
0000029d: EXP
0000029e: SWAP1
0000029f: DIV
000002a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002b5: AND
000002b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002cb: AND
000002cc: DUP2
000002cd: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000002eb: SWAP1
000002ec: DIV
000002ed: DUP4
000002ee: DUP6
000002ef: PUSH1 0x40
000002f1: MLOAD
000002f2: DUP4
000002f3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000311: MUL
00000312: DUP2
00000313: MSTORE
00000314: PUSH1 0x04
00000316: ADD
00000317: DUP1
00000318: DUP4
00000319: DUP2
0000031a: MSTORE
0000031b: PUSH1 0x20
0000031d: ADD
0000031e: DUP3
0000031f: DUP2
00000320: MSTORE
00000321: PUSH1 0x20
00000323: ADD
00000324: SWAP3
00000325: POP
00000326: POP
00000327: POP
00000328: PUSH1 0x00
0000032a: PUSH1 0x40
0000032c: MLOAD
0000032d: DUP1
0000032e: DUP4
0000032f: SUB
00000330: DUP2
00000331: PUSH1 0x00
00000333: DUP8
00000334: PUSH2 0x61da
00000337: GAS
00000338: SUB
00000339: CALL
0000033a: SWAP3
0000033b: POP
0000033c: POP
0000033d: POP
0000033e: POP
0000033f: JUMPDEST
00000340: POP
00000341: POP
00000342: POP
00000343: JUMP
00000344: JUMPDEST
00000345: PUSH1 0x00
00000347: PUSH1 0x00
00000349: SWAP1
0000034a: SLOAD
0000034b: SWAP1
0000034c: PUSH2 0x0100
0000034f: EXP
00000350: SWAP1
00000351: DIV
00000352: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000367: AND
00000368: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000037d: AND
0000037e: PUSH1 0x00
00000380: PUSH1 0x06
00000382: PUSH1 0x00
00000384: POP
00000385: SLOAD
00000386: PUSH1 0x40
00000388: MLOAD
00000389: DUP1
0000038a: SWAP1
0000038b: POP
0000038c: PUSH1 0x00
0000038e: PUSH1 0x40
00000390: MLOAD
00000391: DUP1
00000392: DUP4
00000393: SUB
00000394: DUP2
00000395: DUP6
00000396: DUP9
00000397: DUP9
00000398: CALL
00000399: SWAP4
0000039a: POP
0000039b: POP
0000039c: POP
0000039d: POP
0000039e: POP
0000039f: JUMPDEST
000003a0: JUMP
000003a1: JUMPDEST
000003a2: PUSH1 0x00
000003a4: PUSH1 0x00
000003a6: SWAP1
000003a7: SLOAD
000003a8: SWAP1
000003a9: PUSH2 0x0100
000003ac: EXP
000003ad: SWAP1
000003ae: DIV
000003af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c4: AND
000003c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003da: AND
000003db: CALLER
000003dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003f1: AND
000003f2: EQ
000003f3: ISZERO
000003f4: ISZERO
000003f5: PUSH2 0x0401
000003f8: JUMPI
000003f9: PUSH2 0x0002
000003fc: JUMP
000003fd: PUSH2 0x046e
00000400: JUMP
00000401: JUMPDEST
00000402: PUSH1 0x00
00000404: PUSH1 0x00
00000406: SWAP1
00000407: SLOAD
00000408: SWAP1
00000409: PUSH2 0x0100
0000040c: EXP
0000040d: SWAP1
0000040e: DIV
0000040f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000424: AND
00000425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000043a: AND
0000043b: PUSH1 0x00
0000043d: ADDRESS
0000043e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000453: AND
00000454: BALANCE
00000455: PUSH1 0x40
00000457: MLOAD
00000458: DUP1
00000459: SWAP1
0000045a: POP
0000045b: PUSH1 0x00
0000045d: PUSH1 0x40
0000045f: MLOAD
00000460: DUP1
00000461: DUP4
00000462: SUB
00000463: DUP2
00000464: DUP6
00000465: DUP9
00000466: DUP9
00000467: CALL
00000468: SWAP4
00000469: POP
0000046a: POP
0000046b: POP
0000046c: POP
0000046d: POP
0000046e: JUMPDEST
0000046f: JUMPDEST
00000470: JUMP
00000471: JUMPDEST
00000472: PUSH1 0x00
00000474: PUSH1 0x00
00000476: SWAP1
00000477: SLOAD
00000478: SWAP1
00000479: PUSH2 0x0100
0000047c: EXP
0000047d: SWAP1
0000047e: DIV
0000047f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000494: AND
00000495: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004aa: AND
000004ab: CALLER
000004ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004c1: AND
000004c2: EQ
000004c3: ISZERO
000004c4: ISZERO
000004c5: PUSH2 0x04d1
000004c8: JUMPI
000004c9: PUSH2 0x0002
000004cc: JUMP
000004cd: PUSH2 0x050c
000004d0: JUMP
000004d1: JUMPDEST
000004d2: PUSH1 0x00
000004d4: PUSH1 0x00
000004d6: SWAP1
000004d7: SLOAD
000004d8: SWAP1
000004d9: PUSH2 0x0100
000004dc: EXP
000004dd: SWAP1
000004de: DIV
000004df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004f4: AND
000004f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000050a: AND
0000050b: SELFDESTRUCT
0000050c: JUMPDEST
0000050d: JUMPDEST
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH1 0x00
00000512: PUSH1 0x02
00000514: PUSH1 0x00
00000516: SWAP1
00000517: SLOAD
00000518: SWAP1
00000519: PUSH2 0x0100
0000051c: EXP
0000051d: SWAP1
0000051e: DIV
0000051f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000534: AND
00000535: SWAP1
00000536: POP
00000537: PUSH2 0x053b
0000053a: JUMP
0000053b: JUMPDEST
0000053c: SWAP1
0000053d: JUMP
0000053e: JUMPDEST
0000053f: PUSH1 0x00
00000541: PUSH1 0x03
00000543: PUSH1 0x00
00000545: SWAP1
00000546: SLOAD
00000547: SWAP1
00000548: PUSH2 0x0100
0000054b: EXP
0000054c: SWAP1
0000054d: DIV
0000054e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000563: AND
00000564: SWAP1
00000565: POP
00000566: PUSH2 0x056a
00000569: JUMP
0000056a: JUMPDEST
0000056b: SWAP1
0000056c: JUMP
0000056d: JUMPDEST
0000056e: PUSH1 0x00
00000570: PUSH1 0x00
00000572: PUSH1 0x00
00000574: ORIGIN
00000575: PUSH1 0x02
00000577: PUSH1 0x00
00000579: PUSH2 0x0100
0000057c: EXP
0000057d: DUP2
0000057e: SLOAD
0000057f: DUP2
00000580: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000595: MUL
00000596: NOT
00000597: AND
00000598: SWAP1
00000599: DUP4
0000059a: MUL
0000059b: OR
0000059c: SWAP1
0000059d: SSTORE
0000059e: POP
0000059f: CALLER
000005a0: PUSH1 0x03
000005a2: PUSH1 0x00
000005a4: PUSH2 0x0100
000005a7: EXP
000005a8: DUP2
000005a9: SLOAD
000005aa: DUP2
000005ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c0: MUL
000005c1: NOT
000005c2: AND
000005c3: SWAP1
000005c4: DUP4
000005c5: MUL
000005c6: OR
000005c7: SWAP1
000005c8: SSTORE
000005c9: POP
000005ca: DUP4
000005cb: NUMBER
000005cc: ADD
000005cd: SWAP3
000005ce: POP
000005cf: PUSH1 0x40
000005d1: MLOAD
000005d2: DUP1
000005d3: DUP1
000005d4: PUSH32 0x72657475726e46696e6e65792829000000000000000000000000000000000000
000005f5: DUP2
000005f6: MSTORE
000005f7: PUSH1 0x20
000005f9: ADD
000005fa: POP
000005fb: PUSH1 0x0e
000005fd: ADD
000005fe: SWAP1
000005ff: POP
00000600: PUSH1 0x40
00000602: MLOAD
00000603: DUP1
00000604: SWAP2
00000605: SUB
00000606: SWAP1
00000607: KECCAK256
00000608: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000626: DUP1
00000627: SWAP2
00000628: DIV
00000629: MUL
0000062a: SWAP2
0000062b: POP
0000062c: PUSH1 0x40
0000062e: MLOAD
0000062f: DUP1
00000630: DUP1
00000631: PUSH32 0x7363686564756c6543616c6c286279746573342c75696e743235362900000000
00000652: DUP2
00000653: MSTORE
00000654: PUSH1 0x20
00000656: ADD
00000657: POP
00000658: PUSH1 0x1c
0000065a: ADD
0000065b: SWAP1
0000065c: POP
0000065d: PUSH1 0x40
0000065f: MLOAD
00000660: DUP1
00000661: SWAP2
00000662: SUB
00000663: SWAP1
00000664: KECCAK256
00000665: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000683: DUP1
00000684: SWAP2
00000685: DIV
00000686: MUL
00000687: SWAP1
00000688: POP
00000689: PUSH1 0x01
0000068b: PUSH1 0x00
0000068d: SWAP1
0000068e: SLOAD
0000068f: SWAP1
00000690: PUSH2 0x0100
00000693: EXP
00000694: SWAP1
00000695: DIV
00000696: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ab: AND
000006ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006c1: AND
000006c2: DUP2
000006c3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000006e1: SWAP1
000006e2: DIV
000006e3: DUP4
000006e4: DUP6
000006e5: PUSH1 0x40
000006e7: MLOAD
000006e8: DUP4
000006e9: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000707: MUL
00000708: DUP2
00000709: MSTORE
0000070a: PUSH1 0x04
0000070c: ADD
0000070d: DUP1
0000070e: DUP4
0000070f: DUP2
00000710: MSTORE
00000711: PUSH1 0x20
00000713: ADD
00000714: DUP3
00000715: DUP2
00000716: MSTORE
00000717: PUSH1 0x20
00000719: ADD
0000071a: SWAP3
0000071b: POP
0000071c: POP
0000071d: POP
0000071e: PUSH1 0x00
00000720: PUSH1 0x40
00000722: MLOAD
00000723: DUP1
00000724: DUP4
00000725: SUB
00000726: DUP2
00000727: PUSH1 0x00
00000729: DUP8
0000072a: PUSH2 0x61da
0000072d: GAS
0000072e: SUB
0000072f: CALL
00000730: SWAP3
00000731: POP
00000732: POP
00000733: POP
00000734: POP
00000735: JUMPDEST
00000736: POP
00000737: POP
00000738: POP
00000739: POP
0000073a: 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": 359,
            "type": "tx_origin_used"
        },
        {
            "pc": 987,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1195,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1396,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xfb7e9204476da5f473d999eb37d0960f19981f2b9948019a1f6e4c2bfec1fd5e
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 14,
    "trace_id": "0xfb7e9204476da5f473d999eb37d0960f19981f2b9948019a1f6e4c2bfec1fd5e",
    "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": 359,
            "type": "tx_origin_used"
        },
        {
            "pc": 987,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1195,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1396,
            "type": "tx_origin_used"
        }
    ],
    "selfdestruct_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x6ea13d185ff171a2a14d3a674447db28bc53b6e473ecc19fc778fadbdd91be77
call_targets: 0xa428680d6aec0ae8666a331d78284905601e1ca2
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6ea13d185ff171a2a14d3a674447db28bc53b6e473ecc19fc778fadbdd91be77",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa428680d6aec0ae8666a331d78284905601e1ca2"
    ],
    "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": 825,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 920,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1127,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 359,
            "type": "tx_origin_used"
        },
        {
            "pc": 987,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1195,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1396,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x6ea13d185ff171a2a14d3a674447db28bc53b6e473ecc19fc778fadbdd91be77
call_targets: 0xa428680d6aec0ae8666a331d78284905601e1ca2
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6ea13d185ff171a2a14d3a674447db28bc53b6e473ecc19fc778fadbdd91be77",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa428680d6aec0ae8666a331d78284905601e1ca2"
    ],
    "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": 825,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 920,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1127,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 359,
            "type": "tx_origin_used"
        },
        {
            "pc": 987,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1195,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1396,
            "type": "tx_origin_used"
        }
    ]
}