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

Analysis Run

019c0ea9-0996-7301-a63e-ca7c305937d3

failed
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
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
42117 artifact.fetch complete 1 / 3 2 months ago
42118 proxy.resolve complete 1 / 3 2 months ago
42119 tool.cast_disasm complete 1 / 3 2 months ago
42120 analysis.bundle complete 1 / 3 2 months ago
42121 capability.graph complete 1 / 3 2 months ago
42122 detector.run complete 1 / 3 2 months ago
42123 validation.fork complete 1 / 3 2 months ago
42457 report.consolidate failed 6 / 6 2 months ago
42458 tool.slither complete 1 / 2 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes etherscan_only
Verified Source: yes
Proxy evidence
{
    "status": "etherscan_only",
    "etherscan_hint": {
        "source": "etherscan",
        "etherscan": {
            "proxy_flag": true,
            "implementation": "0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
        }
    },
    "implementation": "0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.4.24 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-6umnl6ge)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-6umnl6ge)

UpgradeabilityProxy.implementation() (contracts/Contract.sol#81-85) is declared view but contains assembly code
CoinToolProxy.proxyOwner() (contracts/Contract.sol#144-152) is declared view but contains assembly code
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#constant-functions-using-assembly-code

CoinToolProxy.constructor(address,string)._version (contracts/Contract.sol#133) shadows:
	- UpgradeabilityProxy._version (contracts/Contract.sol#61-63) (state variable)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

Proxy.fallback() (contracts/Contract.sol#27-42) uses assembly
	- INLINE ASM (contracts/Contract.sol#31-42)
UpgradeabilityProxy.implementation() (contracts/Contract.sol#81-85) uses assembly
	- INLINE ASM (contracts/Contract.sol#84-85)
UpgradeabilityProxy._setImplementation(address) (contracts/Contract.sol#93-96) uses assembly
	- INLINE ASM (contracts/Contract.sol#95-96)
CoinToolProxy.proxyOwner() (contracts/Contract.sol#144-152) uses assembly
	- INLINE ASM (contracts/Contract.sol#150-152)
CoinToolProxy._setUpgradeabilityOwner(address) (contracts/Contract.sol#184-190) uses assembly
	- INLINE ASM (contracts/Contract.sol#186-190)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

Version constraint 0.4.24 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ABIEncoderV2PackedStorage_0.4.x
	- ExpExponentCleanup
	- EventStructWrongData.
It is used by:
	- 0.4.24 (contracts/Contract.sol#4-6)
	- 0.4.24 (contracts/Contract.sol#42)
	- 0.4.24 (contracts/Contract.sol#109-110)
solc-0.4.24 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in CoinToolProxy.upgradeToAndCall(address,string,bytes) (contracts/Contract.sol#181-184):
	- require(bool)(address(this).call.value(msg.value)(_data)) (contracts/Contract.sol#182-184)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Constant UpgradeabilityProxy.implementationPosition (contracts/Contract.sol#60-61) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter CoinToolProxy.transferProxyOwnership(address)._newOwner (contracts/Contract.sol#160) is not in mixedCase
Parameter CoinToolProxy.upgradeTo(address,string)._implementation (contracts/Contract.sol#170) is not in mixedCase
Parameter CoinToolProxy.upgradeTo(address,string)._newVersion (contracts/Contract.sol#170) is not in mixedCase
Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._implementation (contracts/Contract.sol#181) is not in mixedCase
Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._newVersion (contracts/Contract.sol#181) is not in mixedCase
Parameter CoinToolProxy.upgradeToAndCall(address,string,bytes)._data (contracts/Contract.sol#181) is not in mixedCase
Constant CoinToolProxy.proxyOwnerPosition (contracts/Contract.sol#127-129) is not in UPPER_CASE_WITH_UNDERSCORES
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

upgradeTo(address,string) should be declared external:
	- CoinToolProxy.upgradeTo(address,string) (contracts/Contract.sol#170-171)
upgradeToAndCall(address,string,bytes) should be declared external:
	- CoinToolProxy.upgradeToAndCall(address,string,bytes) (contracts/Contract.sol#181-184)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external
. analyzed (3 contracts with 100 detectors), 21 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.4.24",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.4.24",
        "install_stderr": null,
        "install_stdout": "Version '0.4.24' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-6umnl6ge --allow-paths /tmp/slither-6umnl6ge,/tmp/slither-6umnl6ge/lib,/tmp/slither-6umnl6ge/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 21,
    "workspace_hash": "6ba237f7609dd2f69ddf302b6a1020774c787f348bf72adaf1df71baa3ae3c15",
    "duration_seconds": 0.4775049686431885,
    "solc_version_requested": "0.4.24"
}

Codex

report.consolidate
Job Status
failed implementation_not_ready
Attempts
6 / 6
Findings
0
No findings?
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 121, in dispatch_job
    return report_consolidate.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/report_consolidate.py", line 605, in run
    raise RuntimeError("implementation_not_ready")
RuntimeError: implementation_not_ready

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
1398
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0078
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x025313a2
0000003c: EQ
0000003d: PUSH2 0x00e7
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x36ba9794
00000047: EQ
00000048: PUSH2 0x013e
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x54fd4d50
00000052: EQ
00000053: PUSH2 0x01c7
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x5c60da1b
0000005d: EQ
0000005e: PUSH2 0x0257
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xd7e24337
00000068: EQ
00000069: PUSH2 0x02ae
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf1739cae
00000073: EQ
00000074: PUSH2 0x0370
00000077: JUMPI
00000078: JUMPDEST
00000079: PUSH1 0x00
0000007b: PUSH2 0x0082
0000007e: PUSH2 0x03b3
00000081: JUMP
00000082: JUMPDEST
00000083: SWAP1
00000084: POP
00000085: PUSH1 0x00
00000087: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000009c: AND
0000009d: DUP2
0000009e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000b3: AND
000000b4: EQ
000000b5: ISZERO
000000b6: ISZERO
000000b7: ISZERO
000000b8: PUSH2 0x00c0
000000bb: JUMPI
000000bc: PUSH1 0x00
000000be: DUP1
000000bf: REVERT
000000c0: JUMPDEST
000000c1: PUSH1 0x40
000000c3: MLOAD
000000c4: CALLDATASIZE
000000c5: PUSH1 0x00
000000c7: DUP3
000000c8: CALLDATACOPY
000000c9: PUSH1 0x00
000000cb: DUP1
000000cc: CALLDATASIZE
000000cd: DUP4
000000ce: DUP6
000000cf: GAS
000000d0: DELEGATECALL
000000d1: RETURNDATASIZE
000000d2: DUP1
000000d3: PUSH1 0x00
000000d5: DUP5
000000d6: RETURNDATACOPY
000000d7: DUP2
000000d8: PUSH1 0x00
000000da: DUP2
000000db: EQ
000000dc: PUSH2 0x00e3
000000df: JUMPI
000000e0: DUP2
000000e1: DUP5
000000e2: RETURN
000000e3: JUMPDEST
000000e4: DUP2
000000e5: DUP5
000000e6: REVERT
000000e7: JUMPDEST
000000e8: CALLVALUE
000000e9: DUP1
000000ea: ISZERO
000000eb: PUSH2 0x00f3
000000ee: JUMPI
000000ef: PUSH1 0x00
000000f1: DUP1
000000f2: REVERT
000000f3: JUMPDEST
000000f4: POP
000000f5: PUSH2 0x00fc
000000f8: PUSH2 0x041c
000000fb: JUMP
000000fc: JUMPDEST
000000fd: PUSH1 0x40
000000ff: MLOAD
00000100: DUP1
00000101: DUP3
00000102: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000117: AND
00000118: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000012d: AND
0000012e: DUP2
0000012f: MSTORE
00000130: PUSH1 0x20
00000132: ADD
00000133: SWAP2
00000134: POP
00000135: POP
00000136: PUSH1 0x40
00000138: MLOAD
00000139: DUP1
0000013a: SWAP2
0000013b: SUB
0000013c: SWAP1
0000013d: RETURN
0000013e: JUMPDEST
0000013f: CALLVALUE
00000140: DUP1
00000141: ISZERO
00000142: PUSH2 0x014a
00000145: JUMPI
00000146: PUSH1 0x00
00000148: DUP1
00000149: REVERT
0000014a: JUMPDEST
0000014b: POP
0000014c: PUSH2 0x01c5
0000014f: PUSH1 0x04
00000151: DUP1
00000152: CALLDATASIZE
00000153: SUB
00000154: DUP2
00000155: ADD
00000156: SWAP1
00000157: DUP1
00000158: DUP1
00000159: CALLDATALOAD
0000015a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000016f: AND
00000170: SWAP1
00000171: PUSH1 0x20
00000173: ADD
00000174: SWAP1
00000175: SWAP3
00000176: SWAP2
00000177: SWAP1
00000178: DUP1
00000179: CALLDATALOAD
0000017a: SWAP1
0000017b: PUSH1 0x20
0000017d: ADD
0000017e: SWAP1
0000017f: DUP3
00000180: ADD
00000181: DUP1
00000182: CALLDATALOAD
00000183: SWAP1
00000184: PUSH1 0x20
00000186: ADD
00000187: SWAP1
00000188: DUP1
00000189: DUP1
0000018a: PUSH1 0x1f
0000018c: ADD
0000018d: PUSH1 0x20
0000018f: DUP1
00000190: SWAP2
00000191: DIV
00000192: MUL
00000193: PUSH1 0x20
00000195: ADD
00000196: PUSH1 0x40
00000198: MLOAD
00000199: SWAP1
0000019a: DUP2
0000019b: ADD
0000019c: PUSH1 0x40
0000019e: MSTORE
0000019f: DUP1
000001a0: SWAP4
000001a1: SWAP3
000001a2: SWAP2
000001a3: SWAP1
000001a4: DUP2
000001a5: DUP2
000001a6: MSTORE
000001a7: PUSH1 0x20
000001a9: ADD
000001aa: DUP4
000001ab: DUP4
000001ac: DUP1
000001ad: DUP3
000001ae: DUP5
000001af: CALLDATACOPY
000001b0: DUP3
000001b1: ADD
000001b2: SWAP2
000001b3: POP
000001b4: POP
000001b5: POP
000001b6: POP
000001b7: POP
000001b8: POP
000001b9: SWAP2
000001ba: SWAP3
000001bb: SWAP2
000001bc: SWAP3
000001bd: SWAP1
000001be: POP
000001bf: POP
000001c0: POP
000001c1: PUSH2 0x045f
000001c4: JUMP
000001c5: JUMPDEST
000001c6: STOP
000001c7: JUMPDEST
000001c8: CALLVALUE
000001c9: DUP1
000001ca: ISZERO
000001cb: PUSH2 0x01d3
000001ce: JUMPI
000001cf: PUSH1 0x00
000001d1: DUP1
000001d2: REVERT
000001d3: JUMPDEST
000001d4: POP
000001d5: PUSH2 0x01dc
000001d8: PUSH2 0x04ae
000001db: JUMP
000001dc: JUMPDEST
000001dd: PUSH1 0x40
000001df: MLOAD
000001e0: DUP1
000001e1: DUP1
000001e2: PUSH1 0x20
000001e4: ADD
000001e5: DUP3
000001e6: DUP2
000001e7: SUB
000001e8: DUP3
000001e9: MSTORE
000001ea: DUP4
000001eb: DUP2
000001ec: DUP2
000001ed: MLOAD
000001ee: DUP2
000001ef: MSTORE
000001f0: PUSH1 0x20
000001f2: ADD
000001f3: SWAP2
000001f4: POP
000001f5: DUP1
000001f6: MLOAD
000001f7: SWAP1
000001f8: PUSH1 0x20
000001fa: ADD
000001fb: SWAP1
000001fc: DUP1
000001fd: DUP4
000001fe: DUP4
000001ff: PUSH1 0x00
00000201: JUMPDEST
00000202: DUP4
00000203: DUP2
00000204: LT
00000205: ISZERO
00000206: PUSH2 0x021c
00000209: JUMPI
0000020a: DUP1
0000020b: DUP3
0000020c: ADD
0000020d: MLOAD
0000020e: DUP2
0000020f: DUP5
00000210: ADD
00000211: MSTORE
00000212: PUSH1 0x20
00000214: DUP2
00000215: ADD
00000216: SWAP1
00000217: POP
00000218: PUSH2 0x0201
0000021b: JUMP
0000021c: JUMPDEST
0000021d: POP
0000021e: POP
0000021f: POP
00000220: POP
00000221: SWAP1
00000222: POP
00000223: SWAP1
00000224: DUP2
00000225: ADD
00000226: SWAP1
00000227: PUSH1 0x1f
00000229: AND
0000022a: DUP1
0000022b: ISZERO
0000022c: PUSH2 0x0249
0000022f: JUMPI
00000230: DUP1
00000231: DUP3
00000232: SUB
00000233: DUP1
00000234: MLOAD
00000235: PUSH1 0x01
00000237: DUP4
00000238: PUSH1 0x20
0000023a: SUB
0000023b: PUSH2 0x0100
0000023e: EXP
0000023f: SUB
00000240: NOT
00000241: AND
00000242: DUP2
00000243: MSTORE
00000244: PUSH1 0x20
00000246: ADD
00000247: SWAP2
00000248: POP
00000249: JUMPDEST
0000024a: POP
0000024b: SWAP3
0000024c: POP
0000024d: POP
0000024e: POP
0000024f: PUSH1 0x40
00000251: MLOAD
00000252: DUP1
00000253: SWAP2
00000254: SUB
00000255: SWAP1
00000256: RETURN
00000257: JUMPDEST
00000258: CALLVALUE
00000259: DUP1
0000025a: ISZERO
0000025b: PUSH2 0x0263
0000025e: JUMPI
0000025f: PUSH1 0x00
00000261: DUP1
00000262: REVERT
00000263: JUMPDEST
00000264: POP
00000265: PUSH2 0x026c
00000268: PUSH2 0x03b3
0000026b: JUMP
0000026c: JUMPDEST
0000026d: PUSH1 0x40
0000026f: MLOAD
00000270: DUP1
00000271: DUP3
00000272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000287: AND
00000288: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000029d: AND
0000029e: DUP2
0000029f: MSTORE
000002a0: PUSH1 0x20
000002a2: ADD
000002a3: SWAP2
000002a4: POP
000002a5: POP
000002a6: PUSH1 0x40
000002a8: MLOAD
000002a9: DUP1
000002aa: SWAP2
000002ab: SUB
000002ac: SWAP1
000002ad: RETURN
000002ae: JUMPDEST
000002af: PUSH2 0x036e
000002b2: PUSH1 0x04
000002b4: DUP1
000002b5: CALLDATASIZE
000002b6: SUB
000002b7: DUP2
000002b8: ADD
000002b9: SWAP1
000002ba: DUP1
000002bb: DUP1
000002bc: CALLDATALOAD
000002bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002d2: AND
000002d3: SWAP1
000002d4: PUSH1 0x20
000002d6: ADD
000002d7: SWAP1
000002d8: SWAP3
000002d9: SWAP2
000002da: SWAP1
000002db: DUP1
000002dc: CALLDATALOAD
000002dd: SWAP1
000002de: PUSH1 0x20
000002e0: ADD
000002e1: SWAP1
000002e2: DUP3
000002e3: ADD
000002e4: DUP1
000002e5: CALLDATALOAD
000002e6: SWAP1
000002e7: PUSH1 0x20
000002e9: ADD
000002ea: SWAP1
000002eb: DUP1
000002ec: DUP1
000002ed: PUSH1 0x1f
000002ef: ADD
000002f0: PUSH1 0x20
000002f2: DUP1
000002f3: SWAP2
000002f4: DIV
000002f5: MUL
000002f6: PUSH1 0x20
000002f8: ADD
000002f9: PUSH1 0x40
000002fb: MLOAD
000002fc: SWAP1
000002fd: DUP2
000002fe: ADD
000002ff: PUSH1 0x40
00000301: MSTORE
00000302: DUP1
00000303: SWAP4
00000304: SWAP3
00000305: SWAP2
00000306: SWAP1
00000307: DUP2
00000308: DUP2
00000309: MSTORE
0000030a: PUSH1 0x20
0000030c: ADD
0000030d: DUP4
0000030e: DUP4
0000030f: DUP1
00000310: DUP3
00000311: DUP5
00000312: CALLDATACOPY
00000313: DUP3
00000314: ADD
00000315: SWAP2
00000316: POP
00000317: POP
00000318: POP
00000319: POP
0000031a: POP
0000031b: POP
0000031c: SWAP2
0000031d: SWAP3
0000031e: SWAP2
0000031f: SWAP3
00000320: SWAP1
00000321: DUP1
00000322: CALLDATALOAD
00000323: SWAP1
00000324: PUSH1 0x20
00000326: ADD
00000327: SWAP1
00000328: DUP3
00000329: ADD
0000032a: DUP1
0000032b: CALLDATALOAD
0000032c: SWAP1
0000032d: PUSH1 0x20
0000032f: ADD
00000330: SWAP1
00000331: DUP1
00000332: DUP1
00000333: PUSH1 0x1f
00000335: ADD
00000336: PUSH1 0x20
00000338: DUP1
00000339: SWAP2
0000033a: DIV
0000033b: MUL
0000033c: PUSH1 0x20
0000033e: ADD
0000033f: PUSH1 0x40
00000341: MLOAD
00000342: SWAP1
00000343: DUP2
00000344: ADD
00000345: PUSH1 0x40
00000347: MSTORE
00000348: DUP1
00000349: SWAP4
0000034a: SWAP3
0000034b: SWAP2
0000034c: SWAP1
0000034d: DUP2
0000034e: DUP2
0000034f: MSTORE
00000350: PUSH1 0x20
00000352: ADD
00000353: DUP4
00000354: DUP4
00000355: DUP1
00000356: DUP3
00000357: DUP5
00000358: CALLDATACOPY
00000359: DUP3
0000035a: ADD
0000035b: SWAP2
0000035c: POP
0000035d: POP
0000035e: POP
0000035f: POP
00000360: POP
00000361: POP
00000362: SWAP2
00000363: SWAP3
00000364: SWAP2
00000365: SWAP3
00000366: SWAP1
00000367: POP
00000368: POP
00000369: POP
0000036a: PUSH2 0x0550
0000036d: JUMP
0000036e: JUMPDEST
0000036f: STOP
00000370: JUMPDEST
00000371: CALLVALUE
00000372: DUP1
00000373: ISZERO
00000374: PUSH2 0x037c
00000377: JUMPI
00000378: PUSH1 0x00
0000037a: DUP1
0000037b: REVERT
0000037c: JUMPDEST
0000037d: POP
0000037e: PUSH2 0x03b1
00000381: PUSH1 0x04
00000383: DUP1
00000384: CALLDATASIZE
00000385: SUB
00000386: DUP2
00000387: ADD
00000388: SWAP1
00000389: DUP1
0000038a: DUP1
0000038b: CALLDATALOAD
0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a1: AND
000003a2: SWAP1
000003a3: PUSH1 0x20
000003a5: ADD
000003a6: SWAP1
000003a7: SWAP3
000003a8: SWAP2
000003a9: SWAP1
000003aa: POP
000003ab: POP
000003ac: POP
000003ad: PUSH2 0x0633
000003b0: JUMP
000003b1: JUMPDEST
000003b2: STOP
000003b3: JUMPDEST
000003b4: PUSH1 0x00
000003b6: DUP1
000003b7: PUSH1 0x40
000003b9: MLOAD
000003ba: DUP1
000003bb: DUP1
000003bc: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e696d706c656d656e746174696f
000003dd: DUP2
000003de: MSTORE
000003df: PUSH1 0x20
000003e1: ADD
000003e2: PUSH32 0x6e00000000000000000000000000000000000000000000000000000000000000
00000403: DUP2
00000404: MSTORE
00000405: POP
00000406: PUSH1 0x21
00000408: ADD
00000409: SWAP1
0000040a: POP
0000040b: PUSH1 0x40
0000040d: MLOAD
0000040e: DUP1
0000040f: SWAP2
00000410: SUB
00000411: SWAP1
00000412: KECCAK256
00000413: SWAP1
00000414: POP
00000415: DUP1
00000416: SLOAD
00000417: SWAP2
00000418: POP
00000419: POP
0000041a: SWAP1
0000041b: JUMP
0000041c: JUMPDEST
0000041d: PUSH1 0x00
0000041f: DUP1
00000420: PUSH1 0x40
00000422: MLOAD
00000423: DUP1
00000424: DUP1
00000425: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e6f776e65720000000000000000
00000446: DUP2
00000447: MSTORE
00000448: POP
00000449: PUSH1 0x18
0000044b: ADD
0000044c: SWAP1
0000044d: POP
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP1
00000452: SWAP2
00000453: SUB
00000454: SWAP1
00000455: KECCAK256
00000456: SWAP1
00000457: POP
00000458: DUP1
00000459: SLOAD
0000045a: SWAP2
0000045b: POP
0000045c: POP
0000045d: SWAP1
0000045e: JUMP
0000045f: JUMPDEST
00000460: PUSH2 0x0467
00000463: PUSH2 0x041c
00000466: JUMP
00000467: JUMPDEST
00000468: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000047d: AND
0000047e: CALLER
0000047f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000494: AND
00000495: EQ
00000496: ISZERO
00000497: ISZERO
00000498: PUSH2 0x04a0
0000049b: JUMPI
0000049c: PUSH1 0x00
0000049e: DUP1
0000049f: REVERT
000004a0: JUMPDEST
000004a1: PUSH2 0x04aa
000004a4: DUP3
000004a5: DUP3
000004a6: PUSH2 0x075a
000004a9: JUMP
000004aa: JUMPDEST
000004ab: POP
000004ac: POP
000004ad: JUMP
000004ae: JUMPDEST
000004af: PUSH1 0x60
000004b1: PUSH1 0x00
000004b3: DUP1
000004b4: SLOAD
000004b5: PUSH1 0x01
000004b7: DUP2
000004b8: PUSH1 0x01
000004ba: AND
000004bb: ISZERO
000004bc: PUSH2 0x0100
000004bf: MUL
000004c0: SUB
000004c1: AND
000004c2: PUSH1 0x02
000004c4: SWAP1
000004c5: DIV
000004c6: DUP1
000004c7: PUSH1 0x1f
000004c9: ADD
000004ca: PUSH1 0x20
000004cc: DUP1
000004cd: SWAP2
000004ce: DIV
000004cf: MUL
000004d0: PUSH1 0x20
000004d2: ADD
000004d3: PUSH1 0x40
000004d5: MLOAD
000004d6: SWAP1
000004d7: DUP2
000004d8: ADD
000004d9: PUSH1 0x40
000004db: MSTORE
000004dc: DUP1
000004dd: SWAP3
000004de: SWAP2
000004df: SWAP1
000004e0: DUP2
000004e1: DUP2
000004e2: MSTORE
000004e3: PUSH1 0x20
000004e5: ADD
000004e6: DUP3
000004e7: DUP1
000004e8: SLOAD
000004e9: PUSH1 0x01
000004eb: DUP2
000004ec: PUSH1 0x01
000004ee: AND
000004ef: ISZERO
000004f0: PUSH2 0x0100
000004f3: MUL
000004f4: SUB
000004f5: AND
000004f6: PUSH1 0x02
000004f8: SWAP1
000004f9: DIV
000004fa: DUP1
000004fb: ISZERO
000004fc: PUSH2 0x0546
000004ff: JUMPI
00000500: DUP1
00000501: PUSH1 0x1f
00000503: LT
00000504: PUSH2 0x051b
00000507: JUMPI
00000508: PUSH2 0x0100
0000050b: DUP1
0000050c: DUP4
0000050d: SLOAD
0000050e: DIV
0000050f: MUL
00000510: DUP4
00000511: MSTORE
00000512: SWAP2
00000513: PUSH1 0x20
00000515: ADD
00000516: SWAP2
00000517: PUSH2 0x0546
0000051a: JUMP
0000051b: JUMPDEST
0000051c: DUP3
0000051d: ADD
0000051e: SWAP2
0000051f: SWAP1
00000520: PUSH1 0x00
00000522: MSTORE
00000523: PUSH1 0x20
00000525: PUSH1 0x00
00000527: KECCAK256
00000528: SWAP1
00000529: JUMPDEST
0000052a: DUP2
0000052b: SLOAD
0000052c: DUP2
0000052d: MSTORE
0000052e: SWAP1
0000052f: PUSH1 0x01
00000531: ADD
00000532: SWAP1
00000533: PUSH1 0x20
00000535: ADD
00000536: DUP1
00000537: DUP4
00000538: GT
00000539: PUSH2 0x0529
0000053c: JUMPI
0000053d: DUP3
0000053e: SWAP1
0000053f: SUB
00000540: PUSH1 0x1f
00000542: AND
00000543: DUP3
00000544: ADD
00000545: SWAP2
00000546: JUMPDEST
00000547: POP
00000548: POP
00000549: POP
0000054a: POP
0000054b: POP
0000054c: SWAP1
0000054d: POP
0000054e: SWAP1
0000054f: JUMP
00000550: JUMPDEST
00000551: PUSH2 0x0558
00000554: PUSH2 0x041c
00000557: JUMP
00000558: JUMPDEST
00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000056e: AND
0000056f: CALLER
00000570: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000585: AND
00000586: EQ
00000587: ISZERO
00000588: ISZERO
00000589: PUSH2 0x0591
0000058c: JUMPI
0000058d: PUSH1 0x00
0000058f: DUP1
00000590: REVERT
00000591: JUMPDEST
00000592: PUSH2 0x059b
00000595: DUP4
00000596: DUP4
00000597: PUSH2 0x075a
0000059a: JUMP
0000059b: JUMPDEST
0000059c: ADDRESS
0000059d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b2: AND
000005b3: CALLVALUE
000005b4: DUP3
000005b5: PUSH1 0x40
000005b7: MLOAD
000005b8: DUP1
000005b9: DUP3
000005ba: DUP1
000005bb: MLOAD
000005bc: SWAP1
000005bd: PUSH1 0x20
000005bf: ADD
000005c0: SWAP1
000005c1: DUP1
000005c2: DUP4
000005c3: DUP4
000005c4: PUSH1 0x00
000005c6: JUMPDEST
000005c7: DUP4
000005c8: DUP2
000005c9: LT
000005ca: ISZERO
000005cb: PUSH2 0x05e1
000005ce: JUMPI
000005cf: DUP1
000005d0: DUP3
000005d1: ADD
000005d2: MLOAD
000005d3: DUP2
000005d4: DUP5
000005d5: ADD
000005d6: MSTORE
000005d7: PUSH1 0x20
000005d9: DUP2
000005da: ADD
000005db: SWAP1
000005dc: POP
000005dd: PUSH2 0x05c6
000005e0: JUMP
000005e1: JUMPDEST
000005e2: POP
000005e3: POP
000005e4: POP
000005e5: POP
000005e6: SWAP1
000005e7: POP
000005e8: SWAP1
000005e9: DUP2
000005ea: ADD
000005eb: SWAP1
000005ec: PUSH1 0x1f
000005ee: AND
000005ef: DUP1
000005f0: ISZERO
000005f1: PUSH2 0x060e
000005f4: JUMPI
000005f5: DUP1
000005f6: DUP3
000005f7: SUB
000005f8: DUP1
000005f9: MLOAD
000005fa: PUSH1 0x01
000005fc: DUP4
000005fd: PUSH1 0x20
000005ff: SUB
00000600: PUSH2 0x0100
00000603: EXP
00000604: SUB
00000605: NOT
00000606: AND
00000607: DUP2
00000608: MSTORE
00000609: PUSH1 0x20
0000060b: ADD
0000060c: SWAP2
0000060d: POP
0000060e: JUMPDEST
0000060f: POP
00000610: SWAP2
00000611: POP
00000612: POP
00000613: PUSH1 0x00
00000615: PUSH1 0x40
00000617: MLOAD
00000618: DUP1
00000619: DUP4
0000061a: SUB
0000061b: DUP2
0000061c: DUP6
0000061d: DUP8
0000061e: GAS
0000061f: CALL
00000620: SWAP3
00000621: POP
00000622: POP
00000623: POP
00000624: ISZERO
00000625: ISZERO
00000626: PUSH2 0x062e
00000629: JUMPI
0000062a: PUSH1 0x00
0000062c: DUP1
0000062d: REVERT
0000062e: JUMPDEST
0000062f: POP
00000630: POP
00000631: POP
00000632: JUMP
00000633: JUMPDEST
00000634: PUSH2 0x063b
00000637: PUSH2 0x041c
0000063a: JUMP
0000063b: JUMPDEST
0000063c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000651: AND
00000652: CALLER
00000653: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000668: AND
00000669: EQ
0000066a: ISZERO
0000066b: ISZERO
0000066c: PUSH2 0x0674
0000066f: JUMPI
00000670: PUSH1 0x00
00000672: DUP1
00000673: REVERT
00000674: JUMPDEST
00000675: PUSH1 0x00
00000677: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068c: AND
0000068d: DUP2
0000068e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a3: AND
000006a4: EQ
000006a5: ISZERO
000006a6: ISZERO
000006a7: ISZERO
000006a8: PUSH2 0x06b0
000006ab: JUMPI
000006ac: PUSH1 0x00
000006ae: DUP1
000006af: REVERT
000006b0: JUMPDEST
000006b1: PUSH2 0x06b9
000006b4: DUP2
000006b5: PUSH2 0x0879
000006b8: JUMP
000006b9: JUMPDEST
000006ba: PUSH32 0x5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9
000006db: PUSH2 0x06e2
000006de: PUSH2 0x041c
000006e1: JUMP
000006e2: JUMPDEST
000006e3: DUP3
000006e4: PUSH1 0x40
000006e6: MLOAD
000006e7: DUP1
000006e8: DUP4
000006e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006fe: AND
000006ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000714: AND
00000715: DUP2
00000716: MSTORE
00000717: PUSH1 0x20
00000719: ADD
0000071a: DUP3
0000071b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000730: AND
00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000746: AND
00000747: DUP2
00000748: MSTORE
00000749: PUSH1 0x20
0000074b: ADD
0000074c: SWAP3
0000074d: POP
0000074e: POP
0000074f: POP
00000750: PUSH1 0x40
00000752: MLOAD
00000753: DUP1
00000754: SWAP2
00000755: SUB
00000756: SWAP1
00000757: LOG1
00000758: POP
00000759: JUMP
0000075a: JUMPDEST
0000075b: PUSH1 0x00
0000075d: PUSH2 0x0764
00000760: PUSH2 0x03b3
00000763: JUMP
00000764: JUMPDEST
00000765: SWAP1
00000766: POP
00000767: DUP3
00000768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000077d: AND
0000077e: DUP2
0000077f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000794: AND
00000795: EQ
00000796: ISZERO
00000797: ISZERO
00000798: ISZERO
00000799: PUSH2 0x07a1
0000079c: JUMPI
0000079d: PUSH1 0x00
0000079f: DUP1
000007a0: REVERT
000007a1: JUMPDEST
000007a2: PUSH2 0x07aa
000007a5: DUP4
000007a6: PUSH2 0x08ba
000007a9: JUMP
000007aa: JUMPDEST
000007ab: DUP2
000007ac: PUSH1 0x00
000007ae: SWAP1
000007af: DUP1
000007b0: MLOAD
000007b1: SWAP1
000007b2: PUSH1 0x20
000007b4: ADD
000007b5: SWAP1
000007b6: PUSH2 0x07c0
000007b9: SWAP3
000007ba: SWAP2
000007bb: SWAP1
000007bc: PUSH2 0x0921
000007bf: JUMP
000007c0: JUMPDEST
000007c1: POP
000007c2: DUP3
000007c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007d8: AND
000007d9: PUSH32 0xfeb57eb540ad2b58d897c813a06ff64690ef5de12413a361591aea28ee60748a
000007fa: DUP4
000007fb: PUSH1 0x40
000007fd: MLOAD
000007fe: DUP1
000007ff: DUP1
00000800: PUSH1 0x20
00000802: ADD
00000803: DUP3
00000804: DUP2
00000805: SUB
00000806: DUP3
00000807: MSTORE
00000808: DUP4
00000809: DUP2
0000080a: DUP2
0000080b: MLOAD
0000080c: DUP2
0000080d: MSTORE
0000080e: PUSH1 0x20
00000810: ADD
00000811: SWAP2
00000812: POP
00000813: DUP1
00000814: MLOAD
00000815: SWAP1
00000816: PUSH1 0x20
00000818: ADD
00000819: SWAP1
0000081a: DUP1
0000081b: DUP4
0000081c: DUP4
0000081d: PUSH1 0x00
0000081f: JUMPDEST
00000820: DUP4
00000821: DUP2
00000822: LT
00000823: ISZERO
00000824: PUSH2 0x083a
00000827: JUMPI
00000828: DUP1
00000829: DUP3
0000082a: ADD
0000082b: MLOAD
0000082c: DUP2
0000082d: DUP5
0000082e: ADD
0000082f: MSTORE
00000830: PUSH1 0x20
00000832: DUP2
00000833: ADD
00000834: SWAP1
00000835: POP
00000836: PUSH2 0x081f
00000839: JUMP
0000083a: JUMPDEST
0000083b: POP
0000083c: POP
0000083d: POP
0000083e: POP
0000083f: SWAP1
00000840: POP
00000841: SWAP1
00000842: DUP2
00000843: ADD
00000844: SWAP1
00000845: PUSH1 0x1f
00000847: AND
00000848: DUP1
00000849: ISZERO
0000084a: PUSH2 0x0867
0000084d: JUMPI
0000084e: DUP1
0000084f: DUP3
00000850: SUB
00000851: DUP1
00000852: MLOAD
00000853: PUSH1 0x01
00000855: DUP4
00000856: PUSH1 0x20
00000858: SUB
00000859: PUSH2 0x0100
0000085c: EXP
0000085d: SUB
0000085e: NOT
0000085f: AND
00000860: DUP2
00000861: MSTORE
00000862: PUSH1 0x20
00000864: ADD
00000865: SWAP2
00000866: POP
00000867: JUMPDEST
00000868: POP
00000869: SWAP3
0000086a: POP
0000086b: POP
0000086c: POP
0000086d: PUSH1 0x40
0000086f: MLOAD
00000870: DUP1
00000871: SWAP2
00000872: SUB
00000873: SWAP1
00000874: LOG2
00000875: POP
00000876: POP
00000877: POP
00000878: JUMP
00000879: JUMPDEST
0000087a: PUSH1 0x00
0000087c: PUSH1 0x40
0000087e: MLOAD
0000087f: DUP1
00000880: DUP1
00000881: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e6f776e65720000000000000000
000008a2: DUP2
000008a3: MSTORE
000008a4: POP
000008a5: PUSH1 0x18
000008a7: ADD
000008a8: SWAP1
000008a9: POP
000008aa: PUSH1 0x40
000008ac: MLOAD
000008ad: DUP1
000008ae: SWAP2
000008af: SUB
000008b0: SWAP1
000008b1: KECCAK256
000008b2: SWAP1
000008b3: POP
000008b4: DUP2
000008b5: DUP2
000008b6: SSTORE
000008b7: POP
000008b8: POP
000008b9: JUMP
000008ba: JUMPDEST
000008bb: PUSH1 0x00
000008bd: PUSH1 0x40
000008bf: MLOAD
000008c0: DUP1
000008c1: DUP1
000008c2: PUSH32 0x636f696e746f6f6c2e6170702e70726f78792e696d706c656d656e746174696f
000008e3: DUP2
000008e4: MSTORE
000008e5: PUSH1 0x20
000008e7: ADD
000008e8: PUSH32 0x6e00000000000000000000000000000000000000000000000000000000000000
00000909: DUP2
0000090a: MSTORE
0000090b: POP
0000090c: PUSH1 0x21
0000090e: ADD
0000090f: SWAP1
00000910: POP
00000911: PUSH1 0x40
00000913: MLOAD
00000914: DUP1
00000915: SWAP2
00000916: SUB
00000917: SWAP1
00000918: KECCAK256
00000919: SWAP1
0000091a: POP
0000091b: DUP2
0000091c: DUP2
0000091d: SSTORE
0000091e: POP
0000091f: POP
00000920: JUMP
00000921: JUMPDEST
00000922: DUP3
00000923: DUP1
00000924: SLOAD
00000925: PUSH1 0x01
00000927: DUP2
00000928: PUSH1 0x01
0000092a: AND
0000092b: ISZERO
0000092c: PUSH2 0x0100
0000092f: MUL
00000930: SUB
00000931: AND
00000932: PUSH1 0x02
00000934: SWAP1
00000935: DIV
00000936: SWAP1
00000937: PUSH1 0x00
00000939: MSTORE
0000093a: PUSH1 0x20
0000093c: PUSH1 0x00
0000093e: KECCAK256
0000093f: SWAP1
00000940: PUSH1 0x1f
00000942: ADD
00000943: PUSH1 0x20
00000945: SWAP1
00000946: DIV
00000947: DUP2
00000948: ADD
00000949: SWAP3
0000094a: DUP3
0000094b: PUSH1 0x1f
0000094d: LT
0000094e: PUSH2 0x0962
00000951: JUMPI
00000952: DUP1
00000953: MLOAD
00000954: PUSH1 0xff
00000956: NOT
00000957: AND
00000958: DUP4
00000959: DUP1
0000095a: ADD
0000095b: OR
0000095c: DUP6
0000095d: SSTORE
0000095e: PUSH2 0x0990
00000961: JUMP
00000962: JUMPDEST
00000963: DUP3
00000964: DUP1
00000965: ADD
00000966: PUSH1 0x01
00000968: ADD
00000969: DUP6
0000096a: SSTORE
0000096b: DUP3
0000096c: ISZERO
0000096d: PUSH2 0x0990
00000970: JUMPI
00000971: SWAP2
00000972: DUP3
00000973: ADD
00000974: JUMPDEST
00000975: DUP3
00000976: DUP2
00000977: GT
00000978: ISZERO
00000979: PUSH2 0x098f
0000097c: JUMPI
0000097d: DUP3
0000097e: MLOAD
0000097f: DUP3
00000980: SSTORE
00000981: SWAP2
00000982: PUSH1 0x20
00000984: ADD
00000985: SWAP2
00000986: SWAP1
00000987: PUSH1 0x01
00000989: ADD
0000098a: SWAP1
0000098b: PUSH2 0x0974
0000098e: JUMP
0000098f: JUMPDEST
00000990: JUMPDEST
00000991: POP
00000992: SWAP1
00000993: POP
00000994: PUSH2 0x099d
00000997: SWAP2
00000998: SWAP1
00000999: PUSH2 0x09a1
0000099c: JUMP
0000099d: JUMPDEST
0000099e: POP
0000099f: SWAP1
000009a0: JUMP
000009a1: JUMPDEST
000009a2: PUSH2 0x09c3
000009a5: SWAP2
000009a6: SWAP1
000009a7: JUMPDEST
000009a8: DUP1
000009a9: DUP3
000009aa: GT
000009ab: ISZERO
000009ac: PUSH2 0x09bf
000009af: JUMPI
000009b0: PUSH1 0x00
000009b2: DUP2
000009b3: PUSH1 0x00
000009b5: SWAP1
000009b6: SSTORE
000009b7: POP
000009b8: PUSH1 0x01
000009ba: ADD
000009bb: PUSH2 0x09a7
000009be: JUMP
000009bf: JUMPDEST
000009c0: POP
000009c1: SWAP1
000009c2: JUMP
000009c3: JUMPDEST
000009c4: SWAP1
000009c5: JUMP
000009c6: STOP
000009c7: LOG1
000009c8: PUSH6 0x627a7a723058
000009cf: KECCAK256
000009d0: CALL
000009d1: DUP6
000009d2: UNKNOWN(0xEA)
000009d3: UNKNOWN(0xFB)
000009d4: CHAINID
000009d5: UNKNOWN(0xDD)
000009d6: UNKNOWN(0x0E)
000009d7: SMOD
000009d8: DUP1
000009d9: CLZ
000009da: UNKNOWN(0xE0)
000009db: DUP16
000009dc: DUP4
000009dd: LOG2
000009de: UNKNOWN(0x21)
000009df: PUSH6 0x8f46c74ccebc
000009e6: MULMOD
000009e7: XOR
000009e8: UNKNOWN(0x26)
000009e9: UNKNOWN(0x4D)
000009ea: RETURN
000009eb: UNKNOWN(0x2E)
000009ec: GAS
000009ed: DUP3
000009ee: SWAP11
000009ef: SWAP13
000009f0: STOP
000009f1: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets: 0xdf6fee057222d2f7933c215c11e5150bd2efc53e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xdf6fee057222d2f7933c215c11e5150bd2efc53e"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x025313a2",
            "selector": "0x025313a2",
            "calldata_variants": [
                "0x025313a2",
                "0x025313a20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x36ba9794",
            "selector": "0x36ba9794",
            "calldata_variants": [
                "0x36ba9794",
                "0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x54fd4d50",
            "selector": "0x54fd4d50",
            "calldata_variants": [
                "0x54fd4d50",
                "0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c60da1b",
            "selector": "0x5c60da1b",
            "calldata_variants": [
                "0x5c60da1b",
                "0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7e24337",
            "selector": "0xd7e24337",
            "calldata_variants": [
                "0xd7e24337",
                "0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1739cae",
            "selector": "0xf1739cae",
            "calldata_variants": [
                "0xf1739cae",
                "0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 208,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 1150,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1618,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets: 0xcec8f07014d889442d7cf3b477b8f72f8179ea09
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xcec8f07014d889442d7cf3b477b8f72f8179ea09"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x025313a2",
            "selector": "0x025313a2",
            "calldata_variants": [
                "0x025313a2",
                "0x025313a20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x36ba9794",
            "selector": "0x36ba9794",
            "calldata_variants": [
                "0x36ba9794",
                "0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x54fd4d50",
            "selector": "0x54fd4d50",
            "calldata_variants": [
                "0x54fd4d50",
                "0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c60da1b",
            "selector": "0x5c60da1b",
            "calldata_variants": [
                "0x5c60da1b",
                "0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7e24337",
            "selector": "0xd7e24337",
            "calldata_variants": [
                "0xd7e24337",
                "0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1739cae",
            "selector": "0xf1739cae",
            "calldata_variants": [
                "0xf1739cae",
                "0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1567,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2512,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 1150,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1618,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc
call_targets: 0xcec8f07014d889442d7cf3b477b8f72f8179ea09
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x19e8370f6b941fd6eb82056e212cb6b3312b0b1f49ed87fb1f4dba4472af9dbc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xcec8f07014d889442d7cf3b477b8f72f8179ea09"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x025313a2",
            "selector": "0x025313a2",
            "calldata_variants": [
                "0x025313a2",
                "0x025313a20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x36ba9794",
            "selector": "0x36ba9794",
            "calldata_variants": [
                "0x36ba9794",
                "0x36ba97940000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x54fd4d50",
            "selector": "0x54fd4d50",
            "calldata_variants": [
                "0x54fd4d50",
                "0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c60da1b",
            "selector": "0x5c60da1b",
            "calldata_variants": [
                "0x5c60da1b",
                "0x5c60da1b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7e24337",
            "selector": "0xd7e24337",
            "calldata_variants": [
                "0xd7e24337",
                "0xd7e243370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1739cae",
            "selector": "0xf1739cae",
            "calldata_variants": [
                "0xf1739cae",
                "0xf1739cae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1567,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2512,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 1150,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1618,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 2
}