019c0ea9-2c1f-712c-a452-775a4bc4cf33
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 42180 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42181 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42182 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42183 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42184 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42185 | detector.run | complete | 1 / 3 | 2 months ago |
| 42186 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42478 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)","exploit_scenario":"If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed.","recommendation":"Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.","evidence":"Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.","locations":["pc:0xcf1"]},{"severity":"medium","category":"reentrancy","title":"Low-level CALL with ETH value to computed target","exploit_scenario":"Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths.","recommendation":"Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.","evidence":"CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.","locations":["pc:0x233","pc:0x4af"]},{"severity":"medium","category":"other","title":"SELFDESTRUCT opcode present and marked reachable","exploit_scenario":"If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality.","recommendation":"Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.","evidence":"Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.","locations":["pc:0x110b"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-z066ubuq
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f96-47ba-78e1-aa0a-954beb1255d7
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-z066ubuq succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 6ms:
{
"analysis_artifact": {
"address": "0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e",
"artifact_hash": "0x8819dced5c43b7292431c83555e507d5f017a9fdeb572e6df22ba182d6a261a4",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x7226f32bd1464d2f0494bff81111618f88488e0fa37dc599c9907e2b1d214668",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
exec
/bin/bash -lc 'rg -n "SELFDESTRUCT" BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 17ms:
3600: "SELFDESTRUCT"
8476: "sink": "SELFDESTRUCT"
8479: "title": "SELFDESTRUCT reachable",
8488: "sink": "SELFDESTRUCT",
exec
/bin/bash -lc "sed -n '3588,3615p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
"OP_23",
"ADDRESS",
"OP_A9",
"OP_D3",
"OP_9E",
"MUL",
"OP_25",
"OP_23",
"OP_CD",
"OP_1E",
"PUSH5",
"OP_9E",
"SELFDESTRUCT"
],
"start_pc": 4363
},
{
"end_pc": 4450,
"hash": "0x424b28caf4fc803df0980311dad2d1107b569537cadd72c9062c0ebd6e79da6f",
"opcodes": [
exec
/bin/bash -lc "python - <<'PY'
print(hex(4363))
print(hex(563))
print(hex(1199))
print(hex(3313))
PY" in /tmp/codex-z066ubuq succeeded in 19ms:
0x110b
0x233
0x4af
0xcf1
exec
/bin/bash -lc 'rg -n "3313" -n BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 7ms:
3660: "pc": 3313,
5658: "full": "0x60806040526004361061009a5760003560e01c80634847a79c1161006957806352d1902d1161004e57806352d1902d146101a25780636323d7af146101b7578063cd6dc687146101df57600080fd5b80634847a79c1461016f5780634f1ef2861461018f57600080fd5b80630f4414c8146100a6578063150b7a02146100dd5780633659cfe61461012e578063375974eb1461015057600080fd5b366100a157005b600080fd5b3480156100b257600080fd5b506100c66100c1366004610def565b6101ff565b6040516100d4929190610e9a565b60405180910390f35b3480156100e957600080fd5b506100fd6100f8366004610ebd565b610274565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100d4565b34801561013a57600080fd5b5061014e610149366004610f2c565b6102e1565b005b34801561015c57600080fd5b506065545b6040519081526020016100d4565b34801561017b57600080fd5b506100c661018a366004610f47565b610483565b61014e61019d366004610fa0565b6104d0565b3480156101ae57600080fd5b5061016161065e565b3480156101c357600080fd5b506066546040516001600160a01b0390911681526020016100d4565b3480156101eb57600080fd5b5061014e6101fa366004610f47565b610723565b6000606061020b6107ce565b846001600160a01b03168484604051610225929190611062565b6000604051808303816000865af19150503d8060008114610262576040519150601f19603f3d011682016040523d82523d6000602084013e610267565b606091505b5091509150935093915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f150b7a02000000000000000000000000000000000000000000000000000000001790526000906102d790611072565b9695505050505050565b6001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e1630036103845760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e6001600160a01b03166103df7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461045b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161037b565b6104648161082a565b6040805160008082526020820190925261048091839190610832565b50565b6000606061048f6107ce565b6040516001600160a01b0385169084156108fc029085906000818181858888f1935050505060405180602001604052806000815250915091505b9250929050565b6001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e16300361056e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161037b565b7f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e6001600160a01b03166105c97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146106455760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161037b565b61064e8261082a565b61065a82826001610832565b5050565b6000306001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e16146106fe5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60016000610730826109d7565b90508015610748576000805461ff0019166101001790555b606680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038616179055606583905580156107c8576000805461ff001916905560405160ff831681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6066546001600160a01b031633146108285760405162461bcd60e51b815260206004820152601260248201527f556e2d617574686f72697a65642063616c6c0000000000000000000000000000604482015260640161037b565b565b6104806107ce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561086a5761086583610b10565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156108c4575060408051601f3d908101601f191682019092526108c1918101906110c2565b60015b6109365760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146109cb5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037b565b50610865838383610be6565b60008054610100900460ff1615610a74578160ff1660011480156109fa5750303b155b610a6c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037b565b506000919050565b60005460ff808416911610610af15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037b565b506000805460ff191660ff92909216919091179055600190565b919050565b6001600160a01b0381163b610b8d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610bef83610c0b565b600082511180610bfc5750805b15610865576107c88383610c4b565b610c1481610b10565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b610cca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161037b565b600080846001600160a01b031684604051610ce591906110db565b600060405180830381855af49150503d8060008114610d20576040519150601f19603f3d011682016040523d82523d6000602084013e610d25565b606091505b5091509150610d4d828260405180606001604052806027815260200161110b60279139610d56565b95945050505050565b60608315610d65575081610d8f565b825115610d755782518084602001fd5b8160405162461bcd60e51b815260040161037b91906110f7565b9392505050565b80356001600160a01b0381168114610b0b57600080fd5b60008083601f840112610dbf57600080fd5b50813567ffffffffffffffff811115610dd757600080fd5b6020830191508360208285010111156104c957600080fd5b600080600060408486031215610e0457600080fd5b610e0d84610d96565b9250602084013567ffffffffffffffff811115610e2957600080fd5b610e3586828701610dad565b9497909650939450505050565b60005b83811015610e5d578181015183820152602001610e45565b838111156107c85750506000910152565b60008151808452610e86816020860160208601610e42565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eb56040830184610e6e565b949350505050565b600080600080600060808688031215610ed557600080fd5b610ede86610d96565b9450610eec60208701610d96565b935060408601359250606086013567ffffffffffffffff811115610f0f57600080fd5b610f1b88828901610dad565b969995985093965092949392505050565b600060208284031215610f3e57600080fd5b610d8f82610d96565b60008060408385031215610f5a57600080fd5b610f6383610d96565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610fb357600080fd5b610fbc83610d96565b9150602083013567ffffffffffffffff80821115610fd957600080fd5b818501915085601f830112610fed57600080fd5b813581811115610fff57610fff610f71565b604051601f8201601f19908116603f0116810190838211818310171561102757611027610f71565b8160405282815288602084870101111561104057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156110ba5780818460040360031b1b83161693505b505050919050565b6000602082840312156110d457600080fd5b5051919050565b600082516110ed818460208701610e42565b9190910192915050565b602081526000610d8f6020830184610e6e56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202cbb61a35c0b1b1abc5c2330a9d39e022523cd1e643481d730339effd1d59b0f64736f6c634300080d0033",
6772: "to": "call:3313",
6776: "from": "call:3313",
8264: "id": "call:3313",
8266: "pc": 3313,
8350: "pc": 3313,
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 7ms:
4756: "storage": {
4840: "storage": {
4924: "storage": {
5008: "storage": {
5092: "storage": {
5176: "storage": {
5260: "storage": {
5344: "storage": {
5428: "storage": {
5521: "storage": {
exec
/bin/bash -lc "sed -n '5480,5560p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
},
{
"op": "SLOAD",
"pc": 2679,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2806,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2992,
"slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
}
],
"writes": 6
}
}
exec
/bin/bash -lc "sed -n '5560,5650p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
{
"op": "SLOAD",
"pc": 2001,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000066"
},
{
"op": "SLOAD",
"pc": 2132,
"slot": "0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"
},
{
"op": "SLOAD",
"pc": 2523,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2679,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
exec
/bin/bash -lc "sed -n '6700,6795p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
{
"from": "bb:4315",
"to": "bb:3650",
"type": "control_flow"
},
{
"from": "bb:4343",
"to": "bb:3694",
"type": "control_flow"
},
{
"from": "fn:0x52d1902d",
"to": "bb:1389465645",
"type": "entry"
},
{
"from": "fn:0x6323d7af",
"to": "bb:3446523527",
"type": "entry"
},
exec
/bin/bash -lc 'rg -n "function" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 7ms:
4705: "function_entries": [
4743: "functions": [
8285: "type": "function"
8291: "type": "function"
8297: "type": "function"
8303: "type": "function"
8309: "type": "function"
8315: "type": "function"
8321: "type": "function"
8327: "type": "function"
exec
/bin/bash -lc "sed -n '4688,4765p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
"from": "bb:4290",
"to": "bb:4304",
"type": "control_flow_fallthrough"
},
{
"from": "bb:4315",
"to": "bb:3650",
"type": "control_flow"
},
{
"from": "bb:4343",
"to": "bb:3694",
"type": "control_flow"
}
],
"cfg_hash": "0x8fdd92f7a6412d5333bd1adb0ca39274a38b4a0e0a51c0aea9b2b8db82097e25",
"dispatcher_type": "selector_jump_table",
"function_entries": [
{
"entry_pc": 1389465645,
exec
/bin/bash -lc "sed -n '4765,4845p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
"op": "SLOAD",
"pc": 455,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000066"
},
{
"op": "SLOAD",
"pc": 979,
"slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
},
{
"op": "SLOAD",
"pc": 1469,
"slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
},
{
"op": "SLOAD",
"pc": 1852,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
exec
/bin/bash -lc 'rg -n "start_pc": 549 BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq exited 2 in 10ms:
rg: 549: No such file or directory (os error 2)
exec
/bin/bash -lc "rg -n '\"start_pc\": 549' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
748: "start_pc": 549
7178: "start_pc": 549,
exec
/bin/bash -lc "sed -n '730,770p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
"OP_83",
"SUB",
"OP_81",
"PUSH1",
"OP_86",
"GAS",
"CALL",
"OP_91",
"POP",
"POP",
"RETURNDATASIZE",
"OP_80",
"PUSH1",
"OP_81",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 549
},
exec
/bin/bash -lc "rg -n '\"start_pc\": 3301' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
2321: "start_pc": 3301
7689: "start_pc": 3301,
exec
/bin/bash -lc "sed -n '2310,2345p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 8ms:
"OP_91",
"POP",
"POP",
"RETURNDATASIZE",
"OP_80",
"PUSH1",
"OP_81",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 3301
},
{
"end_pc": 3359,
"hash": "0xa6dc7b7c7bd3f3f5ea6a0a71145f539ea304295219fc04ef1c216dcbd1ee758b",
"opcodes": [
"PUSH1",
"MLOAD",
"OP_91",
exec
/bin/bash -lc "sed -n '2295,2335p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
{
"end_pc": 3326,
"hash": "0x2f46b3822fa61f2c4ed1fefde71fec224975fbb906322192716e53c7b0877369",
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"GAS",
"DELEGATECALL",
"OP_91",
"POP",
"POP",
"RETURNDATASIZE",
"OP_80",
exec
/bin/bash -lc "sed -n '1125,1185p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
"OP_81",
"MSTORE",
"POP",
"OP_91",
"POP",
"OP_91",
"POP"
],
"start_pc": 1167
},
{
"end_pc": 1231,
"hash": "0xef634d2255057dcd7706fc4f65dff7da6680b268c6bbb81f0d6f892d6890cd16",
"opcodes": [
"JUMPDEST",
"OP_92",
"POP",
"OP_92",
"OP_90",
"POP",
exec
/bin/bash -lc 'rg -n "pc": 1199 BYTECODE_BUNDLE.json -C 2' in /tmp/codex-z066ubuq exited 2 in 17ms:
rg: 1199: No such file or directory (os error 2)
exec
/bin/bash -lc "rg -n '\"pc\": 1199' BYTECODE_BUNDLE.json -C 2" in /tmp/codex-z066ubuq succeeded in 6ms:
3644- {
3645- "opcode": "CALL",
3646: "pc": 1199,
3647- "returndata_checked": null,
3648- "target_expression_category": "computed",
--
8252- "id": "call:1199",
8253- "opcode": "CALL",
8254: "pc": 1199,
8255- "type": "callsite"
8256- },
--
8391- {
8392- "opcode": "CALL",
8393: "pc": 1199,
8394- "returndata_checked": null,
8395- "target_expression_category": "computed",
--
8436- {
8437- "opcode": "CALL",
exec
/bin/bash -lc "sed -n '3608,3668p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
"OP_D1",
"OP_D5",
"OP_9B",
"OP_0F",
"PUSH5",
"STOP"
],
"start_pc": 4440
},
{
"end_pc": 4453,
"hash": "0xc6696f917b4d3718b9a0ecb35311b56723647991e403041867d2a4a2932748ba",
"opcodes": [
"ADDMOD",
"OP_0D",
"STOP"
],
"start_pc": 4451
},
{
exec
/bin/bash -lc 'rg -n "SSTORE" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 9ms:
1435: "SSTORE"
1458: "SSTORE",
1462: "SSTORE",
1481: "SSTORE",
2013: "SSTORE",
2112: "SSTORE",
exec
/bin/bash -lc "sed -n '1400,1475p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
"PUSH1",
"PUSH2",
"OP_82",
"PUSH2",
"JUMP"
],
"start_pc": 1827
},
{
"end_pc": 1848,
"hash": "0xdc1e1f29291fee394b8f1ee42b8a55b858cf967e3d4c0d94fd1093e3c610ae3a",
"opcodes": [
"JUMPDEST",
"OP_90",
"POP",
"OP_80",
"ISZERO",
"PUSH2",
"JUMPI"
],
codex
{"no_findings":false,"summary":"Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)","exploit_scenario":"If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed.","recommendation":"Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.","evidence":"Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.","locations":["pc:0xcf1"]},{"severity":"medium","category":"reentrancy","title":"Low-level CALL with ETH value to computed target","exploit_scenario":"Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths.","recommendation":"Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.","evidence":"CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.","locations":["pc:0x233","pc:0x4af"]},{"severity":"medium","category":"other","title":"SELFDESTRUCT opcode present and marked reachable","exploit_scenario":"If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality.","recommendation":"Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.","evidence":"Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.","locations":["pc:0x110b"]}]}
tokens used
148,124
{
"codex": {
"ran_at": "2026-01-30T15:50:33.055188+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 8912,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.",
"raw_final": {
"summary": "Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.",
"findings": [
{
"title": "Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)",
"category": "other",
"evidence": "Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.",
"severity": "medium",
"locations": [
"pc:0xcf1"
],
"recommendation": "Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.",
"exploit_scenario": "If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed."
},
{
"title": "Low-level CALL with ETH value to computed target",
"category": "reentrancy",
"evidence": "CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.",
"severity": "medium",
"locations": [
"pc:0x233",
"pc:0x4af"
],
"recommendation": "Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.",
"exploit_scenario": "Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths."
},
{
"title": "SELFDESTRUCT opcode present and marked reachable",
"category": "other",
"evidence": "Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.",
"severity": "medium",
"locations": [
"pc:0x110b"
],
"recommendation": "Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.",
"exploit_scenario": "If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x009a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x4847a79c 00000019: GT 0000001a: PUSH2 0x0069 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x52d1902d 00000024: GT 00000025: PUSH2 0x004e 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x52d1902d 0000002f: EQ 00000030: PUSH2 0x01a2 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x6323d7af 0000003a: EQ 0000003b: PUSH2 0x01b7 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xcd6dc687 00000045: EQ 00000046: PUSH2 0x01df 00000049: JUMPI 0000004a: PUSH1 0x00 0000004c: DUP1 0000004d: REVERT 0000004e: JUMPDEST 0000004f: DUP1 00000050: PUSH4 0x4847a79c 00000055: EQ 00000056: PUSH2 0x016f 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0x4f1ef286 00000060: EQ 00000061: PUSH2 0x018f 00000064: JUMPI 00000065: PUSH1 0x00 00000067: DUP1 00000068: REVERT 00000069: JUMPDEST 0000006a: DUP1 0000006b: PUSH4 0x0f4414c8 00000070: EQ 00000071: PUSH2 0x00a6 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x150b7a02 0000007b: EQ 0000007c: PUSH2 0x00dd 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x3659cfe6 00000086: EQ 00000087: PUSH2 0x012e 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x375974eb 00000091: EQ 00000092: PUSH2 0x0150 00000095: JUMPI 00000096: PUSH1 0x00 00000098: DUP1 00000099: REVERT 0000009a: JUMPDEST 0000009b: CALLDATASIZE 0000009c: PUSH2 0x00a1 0000009f: JUMPI 000000a0: STOP 000000a1: JUMPDEST 000000a2: PUSH1 0x00 000000a4: DUP1 000000a5: REVERT 000000a6: JUMPDEST 000000a7: CALLVALUE 000000a8: DUP1 000000a9: ISZERO 000000aa: PUSH2 0x00b2 000000ad: JUMPI 000000ae: PUSH1 0x00 000000b0: DUP1 000000b1: REVERT 000000b2: JUMPDEST 000000b3: POP 000000b4: PUSH2 0x00c6 000000b7: PUSH2 0x00c1 000000ba: CALLDATASIZE 000000bb: PUSH1 0x04 000000bd: PUSH2 0x0def 000000c0: JUMP 000000c1: JUMPDEST 000000c2: PUSH2 0x01ff 000000c5: JUMP 000000c6: JUMPDEST 000000c7: PUSH1 0x40 000000c9: MLOAD 000000ca: PUSH2 0x00d4 000000cd: SWAP3 000000ce: SWAP2 000000cf: SWAP1 000000d0: PUSH2 0x0e9a 000000d3: JUMP 000000d4: JUMPDEST 000000d5: PUSH1 0x40 000000d7: MLOAD 000000d8: DUP1 000000d9: SWAP2 000000da: SUB 000000db: SWAP1 000000dc: RETURN 000000dd: JUMPDEST 000000de: CALLVALUE 000000df: DUP1 000000e0: ISZERO 000000e1: PUSH2 0x00e9 000000e4: JUMPI 000000e5: PUSH1 0x00 000000e7: DUP1 000000e8: REVERT 000000e9: JUMPDEST 000000ea: POP 000000eb: PUSH2 0x00fd 000000ee: PUSH2 0x00f8 000000f1: CALLDATASIZE 000000f2: PUSH1 0x04 000000f4: PUSH2 0x0ebd 000000f7: JUMP 000000f8: JUMPDEST 000000f9: PUSH2 0x0274 000000fc: JUMP 000000fd: JUMPDEST 000000fe: PUSH1 0x40 00000100: MLOAD 00000101: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000122: SWAP1 00000123: SWAP2 00000124: AND 00000125: DUP2 00000126: MSTORE 00000127: PUSH1 0x20 00000129: ADD 0000012a: PUSH2 0x00d4 0000012d: JUMP 0000012e: JUMPDEST 0000012f: CALLVALUE 00000130: DUP1 00000131: ISZERO 00000132: PUSH2 0x013a 00000135: JUMPI 00000136: PUSH1 0x00 00000138: DUP1 00000139: REVERT 0000013a: JUMPDEST 0000013b: POP 0000013c: PUSH2 0x014e 0000013f: PUSH2 0x0149 00000142: CALLDATASIZE 00000143: PUSH1 0x04 00000145: PUSH2 0x0f2c 00000148: JUMP 00000149: JUMPDEST 0000014a: PUSH2 0x02e1 0000014d: JUMP 0000014e: JUMPDEST 0000014f: STOP 00000150: JUMPDEST 00000151: CALLVALUE 00000152: DUP1 00000153: ISZERO 00000154: PUSH2 0x015c 00000157: JUMPI 00000158: PUSH1 0x00 0000015a: DUP1 0000015b: REVERT 0000015c: JUMPDEST 0000015d: POP 0000015e: PUSH1 0x65 00000160: SLOAD 00000161: JUMPDEST 00000162: PUSH1 0x40 00000164: MLOAD 00000165: SWAP1 00000166: DUP2 00000167: MSTORE 00000168: PUSH1 0x20 0000016a: ADD 0000016b: PUSH2 0x00d4 0000016e: JUMP 0000016f: JUMPDEST 00000170: CALLVALUE 00000171: DUP1 00000172: ISZERO 00000173: PUSH2 0x017b 00000176: JUMPI 00000177: PUSH1 0x00 00000179: DUP1 0000017a: REVERT 0000017b: JUMPDEST 0000017c: POP 0000017d: PUSH2 0x00c6 00000180: PUSH2 0x018a 00000183: CALLDATASIZE 00000184: PUSH1 0x04 00000186: PUSH2 0x0f47 00000189: JUMP 0000018a: JUMPDEST 0000018b: PUSH2 0x0483 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH2 0x014e 00000193: PUSH2 0x019d 00000196: CALLDATASIZE 00000197: PUSH1 0x04 00000199: PUSH2 0x0fa0 0000019c: JUMP 0000019d: JUMPDEST 0000019e: PUSH2 0x04d0 000001a1: JUMP 000001a2: JUMPDEST 000001a3: CALLVALUE 000001a4: DUP1 000001a5: ISZERO 000001a6: PUSH2 0x01ae 000001a9: JUMPI 000001aa: PUSH1 0x00 000001ac: DUP1 000001ad: REVERT 000001ae: JUMPDEST 000001af: POP 000001b0: PUSH2 0x0161 000001b3: PUSH2 0x065e 000001b6: JUMP 000001b7: JUMPDEST 000001b8: CALLVALUE 000001b9: DUP1 000001ba: ISZERO 000001bb: PUSH2 0x01c3 000001be: JUMPI 000001bf: PUSH1 0x00 000001c1: DUP1 000001c2: REVERT 000001c3: JUMPDEST 000001c4: POP 000001c5: PUSH1 0x66 000001c7: SLOAD 000001c8: PUSH1 0x40 000001ca: MLOAD 000001cb: PUSH1 0x01 000001cd: PUSH1 0x01 000001cf: PUSH1 0xa0 000001d1: SHL 000001d2: SUB 000001d3: SWAP1 000001d4: SWAP2 000001d5: AND 000001d6: DUP2 000001d7: MSTORE 000001d8: PUSH1 0x20 000001da: ADD 000001db: PUSH2 0x00d4 000001de: JUMP 000001df: JUMPDEST 000001e0: CALLVALUE 000001e1: DUP1 000001e2: ISZERO 000001e3: PUSH2 0x01eb 000001e6: JUMPI 000001e7: PUSH1 0x00 000001e9: DUP1 000001ea: REVERT 000001eb: JUMPDEST 000001ec: POP 000001ed: PUSH2 0x014e 000001f0: PUSH2 0x01fa 000001f3: CALLDATASIZE 000001f4: PUSH1 0x04 000001f6: PUSH2 0x0f47 000001f9: JUMP 000001fa: JUMPDEST 000001fb: PUSH2 0x0723 000001fe: JUMP 000001ff: JUMPDEST 00000200: PUSH1 0x00 00000202: PUSH1 0x60 00000204: PUSH2 0x020b 00000207: PUSH2 0x07ce 0000020a: JUMP 0000020b: JUMPDEST 0000020c: DUP5 0000020d: PUSH1 0x01 0000020f: PUSH1 0x01 00000211: PUSH1 0xa0 00000213: SHL 00000214: SUB 00000215: AND 00000216: DUP5 00000217: DUP5 00000218: PUSH1 0x40 0000021a: MLOAD 0000021b: PUSH2 0x0225 0000021e: SWAP3 0000021f: SWAP2 00000220: SWAP1 00000221: PUSH2 0x1062 00000224: JUMP 00000225: JUMPDEST 00000226: PUSH1 0x00 00000228: PUSH1 0x40 0000022a: MLOAD 0000022b: DUP1 0000022c: DUP4 0000022d: SUB 0000022e: DUP2 0000022f: PUSH1 0x00 00000231: DUP7 00000232: GAS 00000233: CALL 00000234: SWAP2 00000235: POP 00000236: POP 00000237: RETURNDATASIZE 00000238: DUP1 00000239: PUSH1 0x00 0000023b: DUP2 0000023c: EQ 0000023d: PUSH2 0x0262 00000240: JUMPI 00000241: PUSH1 0x40 00000243: MLOAD 00000244: SWAP2 00000245: POP 00000246: PUSH1 0x1f 00000248: NOT 00000249: PUSH1 0x3f 0000024b: RETURNDATASIZE 0000024c: ADD 0000024d: AND 0000024e: DUP3 0000024f: ADD 00000250: PUSH1 0x40 00000252: MSTORE 00000253: RETURNDATASIZE 00000254: DUP3 00000255: MSTORE 00000256: RETURNDATASIZE 00000257: PUSH1 0x00 00000259: PUSH1 0x20 0000025b: DUP5 0000025c: ADD 0000025d: RETURNDATACOPY 0000025e: PUSH2 0x0267 00000261: JUMP 00000262: JUMPDEST 00000263: PUSH1 0x60 00000265: SWAP2 00000266: POP 00000267: JUMPDEST 00000268: POP 00000269: SWAP2 0000026a: POP 0000026b: SWAP2 0000026c: POP 0000026d: SWAP4 0000026e: POP 0000026f: SWAP4 00000270: SWAP2 00000271: POP 00000272: POP 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH1 0x40 00000277: DUP1 00000278: MLOAD 00000279: PUSH1 0x04 0000027b: DUP2 0000027c: MSTORE 0000027d: PUSH1 0x24 0000027f: DUP2 00000280: ADD 00000281: SWAP1 00000282: SWAP2 00000283: MSTORE 00000284: PUSH1 0x20 00000286: DUP2 00000287: ADD 00000288: DUP1 00000289: MLOAD 0000028a: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000002a7: AND 000002a8: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000 000002c9: OR 000002ca: SWAP1 000002cb: MSTORE 000002cc: PUSH1 0x00 000002ce: SWAP1 000002cf: PUSH2 0x02d7 000002d2: SWAP1 000002d3: PUSH2 0x1072 000002d6: JUMP 000002d7: JUMPDEST 000002d8: SWAP7 000002d9: SWAP6 000002da: POP 000002db: POP 000002dc: POP 000002dd: POP 000002de: POP 000002df: POP 000002e0: JUMP 000002e1: JUMPDEST 000002e2: PUSH1 0x01 000002e4: PUSH1 0x01 000002e6: PUSH1 0xa0 000002e8: SHL 000002e9: SUB 000002ea: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e 0000030b: AND 0000030c: ADDRESS 0000030d: SUB 0000030e: PUSH2 0x0384 00000311: JUMPI 00000312: PUSH1 0x40 00000314: MLOAD 00000315: PUSH3 0x461bcd 00000319: PUSH1 0xe5 0000031b: SHL 0000031c: DUP2 0000031d: MSTORE 0000031e: PUSH1 0x20 00000320: PUSH1 0x04 00000322: DUP3 00000323: ADD 00000324: MSTORE 00000325: PUSH1 0x2c 00000327: PUSH1 0x24 00000329: DUP3 0000032a: ADD 0000032b: MSTORE 0000032c: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 0000034d: PUSH1 0x44 0000034f: DUP3 00000350: ADD 00000351: MSTORE 00000352: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00000373: PUSH1 0x64 00000375: DUP3 00000376: ADD 00000377: MSTORE 00000378: PUSH1 0x84 0000037a: ADD 0000037b: JUMPDEST 0000037c: PUSH1 0x40 0000037e: MLOAD 0000037f: DUP1 00000380: SWAP2 00000381: SUB 00000382: SWAP1 00000383: REVERT 00000384: JUMPDEST 00000385: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e 000003a6: PUSH1 0x01 000003a8: PUSH1 0x01 000003aa: PUSH1 0xa0 000003ac: SHL 000003ad: SUB 000003ae: AND 000003af: PUSH2 0x03df 000003b2: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000003d3: SLOAD 000003d4: PUSH1 0x01 000003d6: PUSH1 0x01 000003d8: PUSH1 0xa0 000003da: SHL 000003db: SUB 000003dc: AND 000003dd: SWAP1 000003de: JUMP 000003df: JUMPDEST 000003e0: PUSH1 0x01 000003e2: PUSH1 0x01 000003e4: PUSH1 0xa0 000003e6: SHL 000003e7: SUB 000003e8: AND 000003e9: EQ 000003ea: PUSH2 0x045b 000003ed: JUMPI 000003ee: PUSH1 0x40 000003f0: MLOAD 000003f1: PUSH3 0x461bcd 000003f5: PUSH1 0xe5 000003f7: SHL 000003f8: DUP2 000003f9: MSTORE 000003fa: PUSH1 0x20 000003fc: PUSH1 0x04 000003fe: DUP3 000003ff: ADD 00000400: MSTORE 00000401: PUSH1 0x2c 00000403: PUSH1 0x24 00000405: DUP3 00000406: ADD 00000407: MSTORE 00000408: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000429: PUSH1 0x44 0000042b: DUP3 0000042c: ADD 0000042d: MSTORE 0000042e: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 0000044f: PUSH1 0x64 00000451: DUP3 00000452: ADD 00000453: MSTORE 00000454: PUSH1 0x84 00000456: ADD 00000457: PUSH2 0x037b 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x0464 0000045f: DUP2 00000460: PUSH2 0x082a 00000463: JUMP 00000464: JUMPDEST 00000465: PUSH1 0x40 00000467: DUP1 00000468: MLOAD 00000469: PUSH1 0x00 0000046b: DUP1 0000046c: DUP3 0000046d: MSTORE 0000046e: PUSH1 0x20 00000470: DUP3 00000471: ADD 00000472: SWAP1 00000473: SWAP3 00000474: MSTORE 00000475: PUSH2 0x0480 00000478: SWAP2 00000479: DUP4 0000047a: SWAP2 0000047b: SWAP1 0000047c: PUSH2 0x0832 0000047f: JUMP 00000480: JUMPDEST 00000481: POP 00000482: JUMP 00000483: JUMPDEST 00000484: PUSH1 0x00 00000486: PUSH1 0x60 00000488: PUSH2 0x048f 0000048b: PUSH2 0x07ce 0000048e: JUMP 0000048f: JUMPDEST 00000490: PUSH1 0x40 00000492: MLOAD 00000493: PUSH1 0x01 00000495: PUSH1 0x01 00000497: PUSH1 0xa0 00000499: SHL 0000049a: SUB 0000049b: DUP6 0000049c: AND 0000049d: SWAP1 0000049e: DUP5 0000049f: ISZERO 000004a0: PUSH2 0x08fc 000004a3: MUL 000004a4: SWAP1 000004a5: DUP6 000004a6: SWAP1 000004a7: PUSH1 0x00 000004a9: DUP2 000004aa: DUP2 000004ab: DUP2 000004ac: DUP6 000004ad: DUP9 000004ae: DUP9 000004af: CALL 000004b0: SWAP4 000004b1: POP 000004b2: POP 000004b3: POP 000004b4: POP 000004b5: PUSH1 0x40 000004b7: MLOAD 000004b8: DUP1 000004b9: PUSH1 0x20 000004bb: ADD 000004bc: PUSH1 0x40 000004be: MSTORE 000004bf: DUP1 000004c0: PUSH1 0x00 000004c2: DUP2 000004c3: MSTORE 000004c4: POP 000004c5: SWAP2 000004c6: POP 000004c7: SWAP2 000004c8: POP 000004c9: JUMPDEST 000004ca: SWAP3 000004cb: POP 000004cc: SWAP3 000004cd: SWAP1 000004ce: POP 000004cf: JUMP 000004d0: JUMPDEST 000004d1: PUSH1 0x01 000004d3: PUSH1 0x01 000004d5: PUSH1 0xa0 000004d7: SHL 000004d8: SUB 000004d9: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e 000004fa: AND 000004fb: ADDRESS 000004fc: SUB 000004fd: PUSH2 0x056e 00000500: JUMPI 00000501: PUSH1 0x40 00000503: MLOAD 00000504: PUSH3 0x461bcd 00000508: PUSH1 0xe5 0000050a: SHL 0000050b: DUP2 0000050c: MSTORE 0000050d: PUSH1 0x20 0000050f: PUSH1 0x04 00000511: DUP3 00000512: ADD 00000513: MSTORE 00000514: PUSH1 0x2c 00000516: PUSH1 0x24 00000518: DUP3 00000519: ADD 0000051a: MSTORE 0000051b: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 0000053c: PUSH1 0x44 0000053e: DUP3 0000053f: ADD 00000540: MSTORE 00000541: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00000562: PUSH1 0x64 00000564: DUP3 00000565: ADD 00000566: MSTORE 00000567: PUSH1 0x84 00000569: ADD 0000056a: PUSH2 0x037b 0000056d: JUMP 0000056e: JUMPDEST 0000056f: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e 00000590: PUSH1 0x01 00000592: PUSH1 0x01 00000594: PUSH1 0xa0 00000596: SHL 00000597: SUB 00000598: AND 00000599: PUSH2 0x05c9 0000059c: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000005bd: SLOAD 000005be: PUSH1 0x01 000005c0: PUSH1 0x01 000005c2: PUSH1 0xa0 000005c4: SHL 000005c5: SUB 000005c6: AND 000005c7: SWAP1 000005c8: JUMP 000005c9: JUMPDEST 000005ca: PUSH1 0x01 000005cc: PUSH1 0x01 000005ce: PUSH1 0xa0 000005d0: SHL 000005d1: SUB 000005d2: AND 000005d3: EQ 000005d4: PUSH2 0x0645 000005d7: JUMPI 000005d8: PUSH1 0x40 000005da: MLOAD 000005db: PUSH3 0x461bcd 000005df: PUSH1 0xe5 000005e1: SHL 000005e2: DUP2 000005e3: MSTORE 000005e4: PUSH1 0x20 000005e6: PUSH1 0x04 000005e8: DUP3 000005e9: ADD 000005ea: MSTORE 000005eb: PUSH1 0x2c 000005ed: PUSH1 0x24 000005ef: DUP3 000005f0: ADD 000005f1: MSTORE 000005f2: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000613: PUSH1 0x44 00000615: DUP3 00000616: ADD 00000617: MSTORE 00000618: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 00000639: PUSH1 0x64 0000063b: DUP3 0000063c: ADD 0000063d: MSTORE 0000063e: PUSH1 0x84 00000640: ADD 00000641: PUSH2 0x037b 00000644: JUMP 00000645: JUMPDEST 00000646: PUSH2 0x064e 00000649: DUP3 0000064a: PUSH2 0x082a 0000064d: JUMP 0000064e: JUMPDEST 0000064f: PUSH2 0x065a 00000652: DUP3 00000653: DUP3 00000654: PUSH1 0x01 00000656: PUSH2 0x0832 00000659: JUMP 0000065a: JUMPDEST 0000065b: POP 0000065c: POP 0000065d: JUMP 0000065e: JUMPDEST 0000065f: PUSH1 0x00 00000661: ADDRESS 00000662: PUSH1 0x01 00000664: PUSH1 0x01 00000666: PUSH1 0xa0 00000668: SHL 00000669: SUB 0000066a: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e 0000068b: AND 0000068c: EQ 0000068d: PUSH2 0x06fe 00000690: JUMPI 00000691: PUSH1 0x40 00000693: MLOAD 00000694: PUSH3 0x461bcd 00000698: PUSH1 0xe5 0000069a: SHL 0000069b: DUP2 0000069c: MSTORE 0000069d: PUSH1 0x20 0000069f: PUSH1 0x04 000006a1: DUP3 000006a2: ADD 000006a3: MSTORE 000006a4: PUSH1 0x38 000006a6: PUSH1 0x24 000006a8: DUP3 000006a9: ADD 000006aa: MSTORE 000006ab: PUSH32 0x555550535570677261646561626c653a206d757374206e6f742062652063616c 000006cc: PUSH1 0x44 000006ce: DUP3 000006cf: ADD 000006d0: MSTORE 000006d1: PUSH32 0x6c6564207468726f7567682064656c656761746563616c6c0000000000000000 000006f2: PUSH1 0x64 000006f4: DUP3 000006f5: ADD 000006f6: MSTORE 000006f7: PUSH1 0x84 000006f9: ADD 000006fa: PUSH2 0x037b 000006fd: JUMP 000006fe: JUMPDEST 000006ff: POP 00000700: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000721: SWAP1 00000722: JUMP 00000723: JUMPDEST 00000724: PUSH1 0x01 00000726: PUSH1 0x00 00000728: PUSH2 0x0730 0000072b: DUP3 0000072c: PUSH2 0x09d7 0000072f: JUMP 00000730: JUMPDEST 00000731: SWAP1 00000732: POP 00000733: DUP1 00000734: ISZERO 00000735: PUSH2 0x0748 00000738: JUMPI 00000739: PUSH1 0x00 0000073b: DUP1 0000073c: SLOAD 0000073d: PUSH2 0xff00 00000740: NOT 00000741: AND 00000742: PUSH2 0x0100 00000745: OR 00000746: SWAP1 00000747: SSTORE 00000748: JUMPDEST 00000749: PUSH1 0x66 0000074b: DUP1 0000074c: SLOAD 0000074d: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000076e: AND 0000076f: PUSH1 0x01 00000771: PUSH1 0x01 00000773: PUSH1 0xa0 00000775: SHL 00000776: SUB 00000777: DUP7 00000778: AND 00000779: OR 0000077a: SWAP1 0000077b: SSTORE 0000077c: PUSH1 0x65 0000077e: DUP4 0000077f: SWAP1 00000780: SSTORE 00000781: DUP1 00000782: ISZERO 00000783: PUSH2 0x07c8 00000786: JUMPI 00000787: PUSH1 0x00 00000789: DUP1 0000078a: SLOAD 0000078b: PUSH2 0xff00 0000078e: NOT 0000078f: AND 00000790: SWAP1 00000791: SSTORE 00000792: PUSH1 0x40 00000794: MLOAD 00000795: PUSH1 0xff 00000797: DUP4 00000798: AND 00000799: DUP2 0000079a: MSTORE 0000079b: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 000007bc: SWAP1 000007bd: PUSH1 0x20 000007bf: ADD 000007c0: PUSH1 0x40 000007c2: MLOAD 000007c3: DUP1 000007c4: SWAP2 000007c5: SUB 000007c6: SWAP1 000007c7: LOG1 000007c8: JUMPDEST 000007c9: POP 000007ca: POP 000007cb: POP 000007cc: POP 000007cd: JUMP 000007ce: JUMPDEST 000007cf: PUSH1 0x66 000007d1: SLOAD 000007d2: PUSH1 0x01 000007d4: PUSH1 0x01 000007d6: PUSH1 0xa0 000007d8: SHL 000007d9: SUB 000007da: AND 000007db: CALLER 000007dc: EQ 000007dd: PUSH2 0x0828 000007e0: JUMPI 000007e1: PUSH1 0x40 000007e3: MLOAD 000007e4: PUSH3 0x461bcd 000007e8: PUSH1 0xe5 000007ea: SHL 000007eb: DUP2 000007ec: MSTORE 000007ed: PUSH1 0x20 000007ef: PUSH1 0x04 000007f1: DUP3 000007f2: ADD 000007f3: MSTORE 000007f4: PUSH1 0x12 000007f6: PUSH1 0x24 000007f8: DUP3 000007f9: ADD 000007fa: MSTORE 000007fb: PUSH32 0x556e2d617574686f72697a65642063616c6c0000000000000000000000000000 0000081c: PUSH1 0x44 0000081e: DUP3 0000081f: ADD 00000820: MSTORE 00000821: PUSH1 0x64 00000823: ADD 00000824: PUSH2 0x037b 00000827: JUMP 00000828: JUMPDEST 00000829: JUMP 0000082a: JUMPDEST 0000082b: PUSH2 0x0480 0000082e: PUSH2 0x07ce 00000831: JUMP 00000832: JUMPDEST 00000833: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143 00000854: SLOAD 00000855: PUSH1 0xff 00000857: AND 00000858: ISZERO 00000859: PUSH2 0x086a 0000085c: JUMPI 0000085d: PUSH2 0x0865 00000860: DUP4 00000861: PUSH2 0x0b10 00000864: JUMP 00000865: JUMPDEST 00000866: POP 00000867: POP 00000868: POP 00000869: JUMP 0000086a: JUMPDEST 0000086b: DUP3 0000086c: PUSH1 0x01 0000086e: PUSH1 0x01 00000870: PUSH1 0xa0 00000872: SHL 00000873: SUB 00000874: AND 00000875: PUSH4 0x52d1902d 0000087a: PUSH1 0x40 0000087c: MLOAD 0000087d: DUP2 0000087e: PUSH4 0xffffffff 00000883: AND 00000884: PUSH1 0xe0 00000886: SHL 00000887: DUP2 00000888: MSTORE 00000889: PUSH1 0x04 0000088b: ADD 0000088c: PUSH1 0x20 0000088e: PUSH1 0x40 00000890: MLOAD 00000891: DUP1 00000892: DUP4 00000893: SUB 00000894: DUP2 00000895: DUP7 00000896: GAS 00000897: STATICCALL 00000898: SWAP3 00000899: POP 0000089a: POP 0000089b: POP 0000089c: DUP1 0000089d: ISZERO 0000089e: PUSH2 0x08c4 000008a1: JUMPI 000008a2: POP 000008a3: PUSH1 0x40 000008a5: DUP1 000008a6: MLOAD 000008a7: PUSH1 0x1f 000008a9: RETURNDATASIZE 000008aa: SWAP1 000008ab: DUP2 000008ac: ADD 000008ad: PUSH1 0x1f 000008af: NOT 000008b0: AND 000008b1: DUP3 000008b2: ADD 000008b3: SWAP1 000008b4: SWAP3 000008b5: MSTORE 000008b6: PUSH2 0x08c1 000008b9: SWAP2 000008ba: DUP2 000008bb: ADD 000008bc: SWAP1 000008bd: PUSH2 0x10c2 000008c0: JUMP 000008c1: JUMPDEST 000008c2: PUSH1 0x01 000008c4: JUMPDEST 000008c5: PUSH2 0x0936 000008c8: JUMPI 000008c9: PUSH1 0x40 000008cb: MLOAD 000008cc: PUSH3 0x461bcd 000008d0: PUSH1 0xe5 000008d2: SHL 000008d3: DUP2 000008d4: MSTORE 000008d5: PUSH1 0x20 000008d7: PUSH1 0x04 000008d9: DUP3 000008da: ADD 000008db: MSTORE 000008dc: PUSH1 0x2e 000008de: PUSH1 0x24 000008e0: DUP3 000008e1: ADD 000008e2: MSTORE 000008e3: PUSH32 0x45524331393637557067726164653a206e657720696d706c656d656e74617469 00000904: PUSH1 0x44 00000906: DUP3 00000907: ADD 00000908: MSTORE 00000909: PUSH32 0x6f6e206973206e6f742055555053000000000000000000000000000000000000 0000092a: PUSH1 0x64 0000092c: DUP3 0000092d: ADD 0000092e: MSTORE 0000092f: PUSH1 0x84 00000931: ADD 00000932: PUSH2 0x037b 00000935: JUMP 00000936: JUMPDEST 00000937: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000958: DUP2 00000959: EQ 0000095a: PUSH2 0x09cb 0000095d: JUMPI 0000095e: PUSH1 0x40 00000960: MLOAD 00000961: PUSH3 0x461bcd 00000965: PUSH1 0xe5 00000967: SHL 00000968: DUP2 00000969: MSTORE 0000096a: PUSH1 0x20 0000096c: PUSH1 0x04 0000096e: DUP3 0000096f: ADD 00000970: MSTORE 00000971: PUSH1 0x29 00000973: PUSH1 0x24 00000975: DUP3 00000976: ADD 00000977: MSTORE 00000978: PUSH32 0x45524331393637557067726164653a20756e737570706f727465642070726f78 00000999: PUSH1 0x44 0000099b: DUP3 0000099c: ADD 0000099d: MSTORE 0000099e: PUSH32 0x6961626c65555549440000000000000000000000000000000000000000000000 000009bf: PUSH1 0x64 000009c1: DUP3 000009c2: ADD 000009c3: MSTORE 000009c4: PUSH1 0x84 000009c6: ADD 000009c7: PUSH2 0x037b 000009ca: JUMP 000009cb: JUMPDEST 000009cc: POP 000009cd: PUSH2 0x0865 000009d0: DUP4 000009d1: DUP4 000009d2: DUP4 000009d3: PUSH2 0x0be6 000009d6: JUMP 000009d7: JUMPDEST 000009d8: PUSH1 0x00 000009da: DUP1 000009db: SLOAD 000009dc: PUSH2 0x0100 000009df: SWAP1 000009e0: DIV 000009e1: PUSH1 0xff 000009e3: AND 000009e4: ISZERO 000009e5: PUSH2 0x0a74 000009e8: JUMPI 000009e9: DUP2 000009ea: PUSH1 0xff 000009ec: AND 000009ed: PUSH1 0x01 000009ef: EQ 000009f0: DUP1 000009f1: ISZERO 000009f2: PUSH2 0x09fa 000009f5: JUMPI 000009f6: POP 000009f7: ADDRESS 000009f8: EXTCODESIZE 000009f9: ISZERO 000009fa: JUMPDEST 000009fb: PUSH2 0x0a6c 000009fe: JUMPI 000009ff: PUSH1 0x40 00000a01: MLOAD 00000a02: PUSH3 0x461bcd 00000a06: PUSH1 0xe5 00000a08: SHL 00000a09: DUP2 00000a0a: MSTORE 00000a0b: PUSH1 0x20 00000a0d: PUSH1 0x04 00000a0f: DUP3 00000a10: ADD 00000a11: MSTORE 00000a12: PUSH1 0x2e 00000a14: PUSH1 0x24 00000a16: DUP3 00000a17: ADD 00000a18: MSTORE 00000a19: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000a3a: PUSH1 0x44 00000a3c: DUP3 00000a3d: ADD 00000a3e: MSTORE 00000a3f: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00000a60: PUSH1 0x64 00000a62: DUP3 00000a63: ADD 00000a64: MSTORE 00000a65: PUSH1 0x84 00000a67: ADD 00000a68: PUSH2 0x037b 00000a6b: JUMP 00000a6c: JUMPDEST 00000a6d: POP 00000a6e: PUSH1 0x00 00000a70: SWAP2 00000a71: SWAP1 00000a72: POP 00000a73: JUMP 00000a74: JUMPDEST 00000a75: PUSH1 0x00 00000a77: SLOAD 00000a78: PUSH1 0xff 00000a7a: DUP1 00000a7b: DUP5 00000a7c: AND 00000a7d: SWAP2 00000a7e: AND 00000a7f: LT 00000a80: PUSH2 0x0af1 00000a83: JUMPI 00000a84: PUSH1 0x40 00000a86: MLOAD 00000a87: PUSH3 0x461bcd 00000a8b: PUSH1 0xe5 00000a8d: SHL 00000a8e: DUP2 00000a8f: MSTORE 00000a90: PUSH1 0x20 00000a92: PUSH1 0x04 00000a94: DUP3 00000a95: ADD 00000a96: MSTORE 00000a97: PUSH1 0x2e 00000a99: PUSH1 0x24 00000a9b: DUP3 00000a9c: ADD 00000a9d: MSTORE 00000a9e: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000abf: PUSH1 0x44 00000ac1: DUP3 00000ac2: ADD 00000ac3: MSTORE 00000ac4: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00000ae5: PUSH1 0x64 00000ae7: DUP3 00000ae8: ADD 00000ae9: MSTORE 00000aea: PUSH1 0x84 00000aec: ADD 00000aed: PUSH2 0x037b 00000af0: JUMP 00000af1: JUMPDEST 00000af2: POP 00000af3: PUSH1 0x00 00000af5: DUP1 00000af6: SLOAD 00000af7: PUSH1 0xff 00000af9: NOT 00000afa: AND 00000afb: PUSH1 0xff 00000afd: SWAP3 00000afe: SWAP1 00000aff: SWAP3 00000b00: AND 00000b01: SWAP2 00000b02: SWAP1 00000b03: SWAP2 00000b04: OR 00000b05: SWAP1 00000b06: SSTORE 00000b07: PUSH1 0x01 00000b09: SWAP1 00000b0a: JUMP 00000b0b: JUMPDEST 00000b0c: SWAP2 00000b0d: SWAP1 00000b0e: POP 00000b0f: JUMP 00000b10: JUMPDEST 00000b11: PUSH1 0x01 00000b13: PUSH1 0x01 00000b15: PUSH1 0xa0 00000b17: SHL 00000b18: SUB 00000b19: DUP2 00000b1a: AND 00000b1b: EXTCODESIZE 00000b1c: PUSH2 0x0b8d 00000b1f: JUMPI 00000b20: PUSH1 0x40 00000b22: MLOAD 00000b23: PUSH3 0x461bcd 00000b27: PUSH1 0xe5 00000b29: SHL 00000b2a: DUP2 00000b2b: MSTORE 00000b2c: PUSH1 0x20 00000b2e: PUSH1 0x04 00000b30: DUP3 00000b31: ADD 00000b32: MSTORE 00000b33: PUSH1 0x2d 00000b35: PUSH1 0x24 00000b37: DUP3 00000b38: ADD 00000b39: MSTORE 00000b3a: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 00000b5b: PUSH1 0x44 00000b5d: DUP3 00000b5e: ADD 00000b5f: MSTORE 00000b60: PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000 00000b81: PUSH1 0x64 00000b83: DUP3 00000b84: ADD 00000b85: MSTORE 00000b86: PUSH1 0x84 00000b88: ADD 00000b89: PUSH2 0x037b 00000b8c: JUMP 00000b8d: JUMPDEST 00000b8e: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000baf: DUP1 00000bb0: SLOAD 00000bb1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000bd2: AND 00000bd3: PUSH1 0x01 00000bd5: PUSH1 0x01 00000bd7: PUSH1 0xa0 00000bd9: SHL 00000bda: SUB 00000bdb: SWAP3 00000bdc: SWAP1 00000bdd: SWAP3 00000bde: AND 00000bdf: SWAP2 00000be0: SWAP1 00000be1: SWAP2 00000be2: OR 00000be3: SWAP1 00000be4: SSTORE 00000be5: JUMP 00000be6: JUMPDEST 00000be7: PUSH2 0x0bef 00000bea: DUP4 00000beb: PUSH2 0x0c0b 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: PUSH1 0x00 00000bf2: DUP3 00000bf3: MLOAD 00000bf4: GT 00000bf5: DUP1 00000bf6: PUSH2 0x0bfc 00000bf9: JUMPI 00000bfa: POP 00000bfb: DUP1 00000bfc: JUMPDEST 00000bfd: ISZERO 00000bfe: PUSH2 0x0865 00000c01: JUMPI 00000c02: PUSH2 0x07c8 00000c05: DUP4 00000c06: DUP4 00000c07: PUSH2 0x0c4b 00000c0a: JUMP 00000c0b: JUMPDEST 00000c0c: PUSH2 0x0c14 00000c0f: DUP2 00000c10: PUSH2 0x0b10 00000c13: JUMP 00000c14: JUMPDEST 00000c15: PUSH1 0x40 00000c17: MLOAD 00000c18: PUSH1 0x01 00000c1a: PUSH1 0x01 00000c1c: PUSH1 0xa0 00000c1e: SHL 00000c1f: SUB 00000c20: DUP3 00000c21: AND 00000c22: SWAP1 00000c23: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00000c44: SWAP1 00000c45: PUSH1 0x00 00000c47: SWAP1 00000c48: LOG2 00000c49: POP 00000c4a: JUMP 00000c4b: JUMPDEST 00000c4c: PUSH1 0x60 00000c4e: PUSH1 0x01 00000c50: PUSH1 0x01 00000c52: PUSH1 0xa0 00000c54: SHL 00000c55: SUB 00000c56: DUP4 00000c57: AND 00000c58: EXTCODESIZE 00000c59: PUSH2 0x0cca 00000c5c: JUMPI 00000c5d: PUSH1 0x40 00000c5f: MLOAD 00000c60: PUSH3 0x461bcd 00000c64: PUSH1 0xe5 00000c66: SHL 00000c67: DUP2 00000c68: MSTORE 00000c69: PUSH1 0x20 00000c6b: PUSH1 0x04 00000c6d: DUP3 00000c6e: ADD 00000c6f: MSTORE 00000c70: PUSH1 0x26 00000c72: PUSH1 0x24 00000c74: DUP3 00000c75: ADD 00000c76: MSTORE 00000c77: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f 00000c98: PUSH1 0x44 00000c9a: DUP3 00000c9b: ADD 00000c9c: MSTORE 00000c9d: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000 00000cbe: PUSH1 0x64 00000cc0: DUP3 00000cc1: ADD 00000cc2: MSTORE 00000cc3: PUSH1 0x84 00000cc5: ADD 00000cc6: PUSH2 0x037b 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: PUSH1 0x00 00000ccd: DUP1 00000cce: DUP5 00000ccf: PUSH1 0x01 00000cd1: PUSH1 0x01 00000cd3: PUSH1 0xa0 00000cd5: SHL 00000cd6: SUB 00000cd7: AND 00000cd8: DUP5 00000cd9: PUSH1 0x40 00000cdb: MLOAD 00000cdc: PUSH2 0x0ce5 00000cdf: SWAP2 00000ce0: SWAP1 00000ce1: PUSH2 0x10db 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: PUSH1 0x00 00000ce8: PUSH1 0x40 00000cea: MLOAD 00000ceb: DUP1 00000cec: DUP4 00000ced: SUB 00000cee: DUP2 00000cef: DUP6 00000cf0: GAS 00000cf1: DELEGATECALL 00000cf2: SWAP2 00000cf3: POP 00000cf4: POP 00000cf5: RETURNDATASIZE 00000cf6: DUP1 00000cf7: PUSH1 0x00 00000cf9: DUP2 00000cfa: EQ 00000cfb: PUSH2 0x0d20 00000cfe: JUMPI 00000cff: PUSH1 0x40 00000d01: MLOAD 00000d02: SWAP2 00000d03: POP 00000d04: PUSH1 0x1f 00000d06: NOT 00000d07: PUSH1 0x3f 00000d09: RETURNDATASIZE 00000d0a: ADD 00000d0b: AND 00000d0c: DUP3 00000d0d: ADD 00000d0e: PUSH1 0x40 00000d10: MSTORE 00000d11: RETURNDATASIZE 00000d12: DUP3 00000d13: MSTORE 00000d14: RETURNDATASIZE 00000d15: PUSH1 0x00 00000d17: PUSH1 0x20 00000d19: DUP5 00000d1a: ADD 00000d1b: RETURNDATACOPY 00000d1c: PUSH2 0x0d25 00000d1f: JUMP 00000d20: JUMPDEST 00000d21: PUSH1 0x60 00000d23: SWAP2 00000d24: POP 00000d25: JUMPDEST 00000d26: POP 00000d27: SWAP2 00000d28: POP 00000d29: SWAP2 00000d2a: POP 00000d2b: PUSH2 0x0d4d 00000d2e: DUP3 00000d2f: DUP3 00000d30: PUSH1 0x40 00000d32: MLOAD 00000d33: DUP1 00000d34: PUSH1 0x60 00000d36: ADD 00000d37: PUSH1 0x40 00000d39: MSTORE 00000d3a: DUP1 00000d3b: PUSH1 0x27 00000d3d: DUP2 00000d3e: MSTORE 00000d3f: PUSH1 0x20 00000d41: ADD 00000d42: PUSH2 0x110b 00000d45: PUSH1 0x27 00000d47: SWAP2 00000d48: CODECOPY 00000d49: PUSH2 0x0d56 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: SWAP6 00000d4f: SWAP5 00000d50: POP 00000d51: POP 00000d52: POP 00000d53: POP 00000d54: POP 00000d55: JUMP 00000d56: JUMPDEST 00000d57: PUSH1 0x60 00000d59: DUP4 00000d5a: ISZERO 00000d5b: PUSH2 0x0d65 00000d5e: JUMPI 00000d5f: POP 00000d60: DUP2 00000d61: PUSH2 0x0d8f 00000d64: JUMP 00000d65: JUMPDEST 00000d66: DUP3 00000d67: MLOAD 00000d68: ISZERO 00000d69: PUSH2 0x0d75 00000d6c: JUMPI 00000d6d: DUP3 00000d6e: MLOAD 00000d6f: DUP1 00000d70: DUP5 00000d71: PUSH1 0x20 00000d73: ADD 00000d74: REVERT 00000d75: JUMPDEST 00000d76: DUP2 00000d77: PUSH1 0x40 00000d79: MLOAD 00000d7a: PUSH3 0x461bcd 00000d7e: PUSH1 0xe5 00000d80: SHL 00000d81: DUP2 00000d82: MSTORE 00000d83: PUSH1 0x04 00000d85: ADD 00000d86: PUSH2 0x037b 00000d89: SWAP2 00000d8a: SWAP1 00000d8b: PUSH2 0x10f7 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: SWAP4 00000d91: SWAP3 00000d92: POP 00000d93: POP 00000d94: POP 00000d95: JUMP 00000d96: JUMPDEST 00000d97: DUP1 00000d98: CALLDATALOAD 00000d99: PUSH1 0x01 00000d9b: PUSH1 0x01 00000d9d: PUSH1 0xa0 00000d9f: SHL 00000da0: SUB 00000da1: DUP2 00000da2: AND 00000da3: DUP2 00000da4: EQ 00000da5: PUSH2 0x0b0b 00000da8: JUMPI 00000da9: PUSH1 0x00 00000dab: DUP1 00000dac: REVERT 00000dad: JUMPDEST 00000dae: PUSH1 0x00 00000db0: DUP1 00000db1: DUP4 00000db2: PUSH1 0x1f 00000db4: DUP5 00000db5: ADD 00000db6: SLT 00000db7: PUSH2 0x0dbf 00000dba: JUMPI 00000dbb: PUSH1 0x00 00000dbd: DUP1 00000dbe: REVERT 00000dbf: JUMPDEST 00000dc0: POP 00000dc1: DUP2 00000dc2: CALLDATALOAD 00000dc3: PUSH8 0xffffffffffffffff 00000dcc: DUP2 00000dcd: GT 00000dce: ISZERO 00000dcf: PUSH2 0x0dd7 00000dd2: JUMPI 00000dd3: PUSH1 0x00 00000dd5: DUP1 00000dd6: REVERT 00000dd7: JUMPDEST 00000dd8: PUSH1 0x20 00000dda: DUP4 00000ddb: ADD 00000ddc: SWAP2 00000ddd: POP 00000dde: DUP4 00000ddf: PUSH1 0x20 00000de1: DUP3 00000de2: DUP6 00000de3: ADD 00000de4: ADD 00000de5: GT 00000de6: ISZERO 00000de7: PUSH2 0x04c9 00000dea: JUMPI 00000deb: PUSH1 0x00 00000ded: DUP1 00000dee: REVERT 00000def: JUMPDEST 00000df0: PUSH1 0x00 00000df2: DUP1 00000df3: PUSH1 0x00 00000df5: PUSH1 0x40 00000df7: DUP5 00000df8: DUP7 00000df9: SUB 00000dfa: SLT 00000dfb: ISZERO 00000dfc: PUSH2 0x0e04 00000dff: JUMPI 00000e00: PUSH1 0x00 00000e02: DUP1 00000e03: REVERT 00000e04: JUMPDEST 00000e05: PUSH2 0x0e0d 00000e08: DUP5 00000e09: PUSH2 0x0d96 00000e0c: JUMP 00000e0d: JUMPDEST 00000e0e: SWAP3 00000e0f: POP 00000e10: PUSH1 0x20 00000e12: DUP5 00000e13: ADD 00000e14: CALLDATALOAD 00000e15: PUSH8 0xffffffffffffffff 00000e1e: DUP2 00000e1f: GT 00000e20: ISZERO 00000e21: PUSH2 0x0e29 00000e24: JUMPI 00000e25: PUSH1 0x00 00000e27: DUP1 00000e28: REVERT 00000e29: JUMPDEST 00000e2a: PUSH2 0x0e35 00000e2d: DUP7 00000e2e: DUP3 00000e2f: DUP8 00000e30: ADD 00000e31: PUSH2 0x0dad 00000e34: JUMP 00000e35: JUMPDEST 00000e36: SWAP5 00000e37: SWAP8 00000e38: SWAP1 00000e39: SWAP7 00000e3a: POP 00000e3b: SWAP4 00000e3c: SWAP5 00000e3d: POP 00000e3e: POP 00000e3f: POP 00000e40: POP 00000e41: JUMP 00000e42: JUMPDEST 00000e43: PUSH1 0x00 00000e45: JUMPDEST 00000e46: DUP4 00000e47: DUP2 00000e48: LT 00000e49: ISZERO 00000e4a: PUSH2 0x0e5d 00000e4d: JUMPI 00000e4e: DUP2 00000e4f: DUP2 00000e50: ADD 00000e51: MLOAD 00000e52: DUP4 00000e53: DUP3 00000e54: ADD 00000e55: MSTORE 00000e56: PUSH1 0x20 00000e58: ADD 00000e59: PUSH2 0x0e45 00000e5c: JUMP 00000e5d: JUMPDEST 00000e5e: DUP4 00000e5f: DUP2 00000e60: GT 00000e61: ISZERO 00000e62: PUSH2 0x07c8 00000e65: JUMPI 00000e66: POP 00000e67: POP 00000e68: PUSH1 0x00 00000e6a: SWAP2 00000e6b: ADD 00000e6c: MSTORE 00000e6d: JUMP 00000e6e: JUMPDEST 00000e6f: PUSH1 0x00 00000e71: DUP2 00000e72: MLOAD 00000e73: DUP1 00000e74: DUP5 00000e75: MSTORE 00000e76: PUSH2 0x0e86 00000e79: DUP2 00000e7a: PUSH1 0x20 00000e7c: DUP7 00000e7d: ADD 00000e7e: PUSH1 0x20 00000e80: DUP7 00000e81: ADD 00000e82: PUSH2 0x0e42 00000e85: JUMP 00000e86: JUMPDEST 00000e87: PUSH1 0x1f 00000e89: ADD 00000e8a: PUSH1 0x1f 00000e8c: NOT 00000e8d: AND 00000e8e: SWAP3 00000e8f: SWAP1 00000e90: SWAP3 00000e91: ADD 00000e92: PUSH1 0x20 00000e94: ADD 00000e95: SWAP3 00000e96: SWAP2 00000e97: POP 00000e98: POP 00000e99: JUMP 00000e9a: JUMPDEST 00000e9b: DUP3 00000e9c: ISZERO 00000e9d: ISZERO 00000e9e: DUP2 00000e9f: MSTORE 00000ea0: PUSH1 0x40 00000ea2: PUSH1 0x20 00000ea4: DUP3 00000ea5: ADD 00000ea6: MSTORE 00000ea7: PUSH1 0x00 00000ea9: PUSH2 0x0eb5 00000eac: PUSH1 0x40 00000eae: DUP4 00000eaf: ADD 00000eb0: DUP5 00000eb1: PUSH2 0x0e6e 00000eb4: JUMP 00000eb5: JUMPDEST 00000eb6: SWAP5 00000eb7: SWAP4 00000eb8: POP 00000eb9: POP 00000eba: POP 00000ebb: POP 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: PUSH1 0x00 00000ec0: DUP1 00000ec1: PUSH1 0x00 00000ec3: DUP1 00000ec4: PUSH1 0x00 00000ec6: PUSH1 0x80 00000ec8: DUP7 00000ec9: DUP9 00000eca: SUB 00000ecb: SLT 00000ecc: ISZERO 00000ecd: PUSH2 0x0ed5 00000ed0: JUMPI 00000ed1: PUSH1 0x00 00000ed3: DUP1 00000ed4: REVERT 00000ed5: JUMPDEST 00000ed6: PUSH2 0x0ede 00000ed9: DUP7 00000eda: PUSH2 0x0d96 00000edd: JUMP 00000ede: JUMPDEST 00000edf: SWAP5 00000ee0: POP 00000ee1: PUSH2 0x0eec 00000ee4: PUSH1 0x20 00000ee6: DUP8 00000ee7: ADD 00000ee8: PUSH2 0x0d96 00000eeb: JUMP 00000eec: JUMPDEST 00000eed: SWAP4 00000eee: POP 00000eef: PUSH1 0x40 00000ef1: DUP7 00000ef2: ADD 00000ef3: CALLDATALOAD 00000ef4: SWAP3 00000ef5: POP 00000ef6: PUSH1 0x60 00000ef8: DUP7 00000ef9: ADD 00000efa: CALLDATALOAD 00000efb: PUSH8 0xffffffffffffffff 00000f04: DUP2 00000f05: GT 00000f06: ISZERO 00000f07: PUSH2 0x0f0f 00000f0a: JUMPI 00000f0b: PUSH1 0x00 00000f0d: DUP1 00000f0e: REVERT 00000f0f: JUMPDEST 00000f10: PUSH2 0x0f1b 00000f13: DUP9 00000f14: DUP3 00000f15: DUP10 00000f16: ADD 00000f17: PUSH2 0x0dad 00000f1a: JUMP 00000f1b: JUMPDEST 00000f1c: SWAP7 00000f1d: SWAP10 00000f1e: SWAP6 00000f1f: SWAP9 00000f20: POP 00000f21: SWAP4 00000f22: SWAP7 00000f23: POP 00000f24: SWAP3 00000f25: SWAP5 00000f26: SWAP4 00000f27: SWAP3 00000f28: POP 00000f29: POP 00000f2a: POP 00000f2b: JUMP 00000f2c: JUMPDEST 00000f2d: PUSH1 0x00 00000f2f: PUSH1 0x20 00000f31: DUP3 00000f32: DUP5 00000f33: SUB 00000f34: SLT 00000f35: ISZERO 00000f36: PUSH2 0x0f3e 00000f39: JUMPI 00000f3a: PUSH1 0x00 00000f3c: DUP1 00000f3d: REVERT 00000f3e: JUMPDEST 00000f3f: PUSH2 0x0d8f 00000f42: DUP3 00000f43: PUSH2 0x0d96 00000f46: JUMP 00000f47: JUMPDEST 00000f48: PUSH1 0x00 00000f4a: DUP1 00000f4b: PUSH1 0x40 00000f4d: DUP4 00000f4e: DUP6 00000f4f: SUB 00000f50: SLT 00000f51: ISZERO 00000f52: PUSH2 0x0f5a 00000f55: JUMPI 00000f56: PUSH1 0x00 00000f58: DUP1 00000f59: REVERT 00000f5a: JUMPDEST 00000f5b: PUSH2 0x0f63 00000f5e: DUP4 00000f5f: PUSH2 0x0d96 00000f62: JUMP 00000f63: JUMPDEST 00000f64: SWAP5 00000f65: PUSH1 0x20 00000f67: SWAP4 00000f68: SWAP1 00000f69: SWAP4 00000f6a: ADD 00000f6b: CALLDATALOAD 00000f6c: SWAP4 00000f6d: POP 00000f6e: POP 00000f6f: POP 00000f70: JUMP 00000f71: JUMPDEST 00000f72: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000f93: PUSH1 0x00 00000f95: MSTORE 00000f96: PUSH1 0x41 00000f98: PUSH1 0x04 00000f9a: MSTORE 00000f9b: PUSH1 0x24 00000f9d: PUSH1 0x00 00000f9f: REVERT 00000fa0: JUMPDEST 00000fa1: PUSH1 0x00 00000fa3: DUP1 00000fa4: PUSH1 0x40 00000fa6: DUP4 00000fa7: DUP6 00000fa8: SUB 00000fa9: SLT 00000faa: ISZERO 00000fab: PUSH2 0x0fb3 00000fae: JUMPI 00000faf: PUSH1 0x00 00000fb1: DUP1 00000fb2: REVERT 00000fb3: JUMPDEST 00000fb4: PUSH2 0x0fbc 00000fb7: DUP4 00000fb8: PUSH2 0x0d96 00000fbb: JUMP 00000fbc: JUMPDEST 00000fbd: SWAP2 00000fbe: POP 00000fbf: PUSH1 0x20 00000fc1: DUP4 00000fc2: ADD 00000fc3: CALLDATALOAD 00000fc4: PUSH8 0xffffffffffffffff 00000fcd: DUP1 00000fce: DUP3 00000fcf: GT 00000fd0: ISZERO 00000fd1: PUSH2 0x0fd9 00000fd4: JUMPI 00000fd5: PUSH1 0x00 00000fd7: DUP1 00000fd8: REVERT 00000fd9: JUMPDEST 00000fda: DUP2 00000fdb: DUP6 00000fdc: ADD 00000fdd: SWAP2 00000fde: POP 00000fdf: DUP6 00000fe0: PUSH1 0x1f 00000fe2: DUP4 00000fe3: ADD 00000fe4: SLT 00000fe5: PUSH2 0x0fed 00000fe8: JUMPI 00000fe9: PUSH1 0x00 00000feb: DUP1 00000fec: REVERT 00000fed: JUMPDEST 00000fee: DUP2 00000fef: CALLDATALOAD 00000ff0: DUP2 00000ff1: DUP2 00000ff2: GT 00000ff3: ISZERO 00000ff4: PUSH2 0x0fff 00000ff7: JUMPI 00000ff8: PUSH2 0x0fff 00000ffb: PUSH2 0x0f71 00000ffe: JUMP 00000fff: JUMPDEST 00001000: PUSH1 0x40 00001002: MLOAD 00001003: PUSH1 0x1f 00001005: DUP3 00001006: ADD 00001007: PUSH1 0x1f 00001009: NOT 0000100a: SWAP1 0000100b: DUP2 0000100c: AND 0000100d: PUSH1 0x3f 0000100f: ADD 00001010: AND 00001011: DUP2 00001012: ADD 00001013: SWAP1 00001014: DUP4 00001015: DUP3 00001016: GT 00001017: DUP2 00001018: DUP4 00001019: LT 0000101a: OR 0000101b: ISZERO 0000101c: PUSH2 0x1027 0000101f: JUMPI 00001020: PUSH2 0x1027 00001023: PUSH2 0x0f71 00001026: JUMP 00001027: JUMPDEST 00001028: DUP2 00001029: PUSH1 0x40 0000102b: MSTORE 0000102c: DUP3 0000102d: DUP2 0000102e: MSTORE 0000102f: DUP9 00001030: PUSH1 0x20 00001032: DUP5 00001033: DUP8 00001034: ADD 00001035: ADD 00001036: GT 00001037: ISZERO 00001038: PUSH2 0x1040 0000103b: JUMPI 0000103c: PUSH1 0x00 0000103e: DUP1 0000103f: REVERT 00001040: JUMPDEST 00001041: DUP3 00001042: PUSH1 0x20 00001044: DUP7 00001045: ADD 00001046: PUSH1 0x20 00001048: DUP4 00001049: ADD 0000104a: CALLDATACOPY 0000104b: PUSH1 0x00 0000104d: PUSH1 0x20 0000104f: DUP5 00001050: DUP4 00001051: ADD 00001052: ADD 00001053: MSTORE 00001054: DUP1 00001055: SWAP6 00001056: POP 00001057: POP 00001058: POP 00001059: POP 0000105a: POP 0000105b: POP 0000105c: SWAP3 0000105d: POP 0000105e: SWAP3 0000105f: SWAP1 00001060: POP 00001061: JUMP 00001062: JUMPDEST 00001063: DUP2 00001064: DUP4 00001065: DUP3 00001066: CALLDATACOPY 00001067: PUSH1 0x00 00001069: SWAP2 0000106a: ADD 0000106b: SWAP1 0000106c: DUP2 0000106d: MSTORE 0000106e: SWAP2 0000106f: SWAP1 00001070: POP 00001071: JUMP 00001072: JUMPDEST 00001073: PUSH1 0x00 00001075: DUP2 00001076: MLOAD 00001077: PUSH1 0x20 00001079: DUP4 0000107a: ADD 0000107b: MLOAD 0000107c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000109d: DUP1 0000109e: DUP3 0000109f: AND 000010a0: SWAP4 000010a1: POP 000010a2: PUSH1 0x04 000010a4: DUP4 000010a5: LT 000010a6: ISZERO 000010a7: PUSH2 0x10ba 000010aa: JUMPI 000010ab: DUP1 000010ac: DUP2 000010ad: DUP5 000010ae: PUSH1 0x04 000010b0: SUB 000010b1: PUSH1 0x03 000010b3: SHL 000010b4: SHL 000010b5: DUP4 000010b6: AND 000010b7: AND 000010b8: SWAP4 000010b9: POP 000010ba: JUMPDEST 000010bb: POP 000010bc: POP 000010bd: POP 000010be: SWAP2 000010bf: SWAP1 000010c0: POP 000010c1: JUMP 000010c2: JUMPDEST 000010c3: PUSH1 0x00 000010c5: PUSH1 0x20 000010c7: DUP3 000010c8: DUP5 000010c9: SUB 000010ca: SLT 000010cb: ISZERO 000010cc: PUSH2 0x10d4 000010cf: JUMPI 000010d0: PUSH1 0x00 000010d2: DUP1 000010d3: REVERT 000010d4: JUMPDEST 000010d5: POP 000010d6: MLOAD 000010d7: SWAP2 000010d8: SWAP1 000010d9: POP 000010da: JUMP 000010db: JUMPDEST 000010dc: PUSH1 0x00 000010de: DUP3 000010df: MLOAD 000010e0: PUSH2 0x10ed 000010e3: DUP2 000010e4: DUP5 000010e5: PUSH1 0x20 000010e7: DUP8 000010e8: ADD 000010e9: PUSH2 0x0e42 000010ec: JUMP 000010ed: JUMPDEST 000010ee: SWAP2 000010ef: SWAP1 000010f0: SWAP2 000010f1: ADD 000010f2: SWAP3 000010f3: SWAP2 000010f4: POP 000010f5: POP 000010f6: JUMP 000010f7: JUMPDEST 000010f8: PUSH1 0x20 000010fa: DUP2 000010fb: MSTORE 000010fc: PUSH1 0x00 000010fe: PUSH2 0x0d8f 00001101: PUSH1 0x20 00001103: DUP4 00001104: ADD 00001105: DUP5 00001106: PUSH2 0x0e6e 00001109: JUMP 0000110a: INVALID 0000110b: COINBASE 0000110c: PUSH5 0x6472657373 00001112: GASPRICE 00001113: KECCAK256 00001114: PUSH13 0x6f772d6c6576656c2064656c65 00001122: PUSH8 0x6174652063616c6c 0000112b: KECCAK256 0000112c: PUSH7 0x61696c6564a264 00001134: PUSH10 0x706673582212202cbb61 0000113f: LOG3 00001140: TLOAD 00001141: SIGNEXTEND 00001142: SHL 00001143: BYTE 00001144: UNKNOWN(0xBC) 00001145: TLOAD 00001146: UNKNOWN(0x23) 00001147: ADDRESS 00001148: UNKNOWN(0xA9) 00001149: UNKNOWN(0xD3) 0000114a: SWAP15 0000114b: MUL 0000114c: UNKNOWN(0x25) 0000114d: UNKNOWN(0x23) 0000114e: UNKNOWN(0xCD) 0000114f: CLZ 00001150: PUSH5 0x3481d73033 00001156: SWAP15 00001157: SELFDESTRUCT 00001158: UNKNOWN(0xD1) 00001159: UNKNOWN(0xD5) 0000115a: SWAP12 0000115b: UNKNOWN(0x0F) 0000115c: PUSH5 0x736f6c6343 00001162: STOP 00001163: ADDMOD 00001164: UNKNOWN(0x0D) 00001165: STOP 00001166: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x326c787eb124749565235d89fbb63c4577dc6275117394980b200a95b8f81d6a
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 108,
"trace_id": "0x326c787eb124749565235d89fbb63c4577dc6275117394980b200a95b8f81d6a",
"confirmed": false,
"trace_mode": "callTracer",
"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": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6323d7af",
"selector": "0x6323d7af",
"calldata_variants": [
"0x6323d7af",
"0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd6dc687",
"selector": "0xcd6dc687",
"calldata_variants": [
"0xcd6dc687",
"0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4847a79c",
"selector": "0x4847a79c",
"calldata_variants": [
"0x4847a79c",
"0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4414c8",
"selector": "0x0f4414c8",
"calldata_variants": [
"0x0f4414c8",
"0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3313,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022
call_targets:
0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e"
],
"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": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6323d7af",
"selector": "0x6323d7af",
"calldata_variants": [
"0x6323d7af",
"0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd6dc687",
"selector": "0xcd6dc687",
"calldata_variants": [
"0xcd6dc687",
"0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4847a79c",
"selector": "0x4847a79c",
"calldata_variants": [
"0x4847a79c",
"0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4414c8",
"selector": "0x0f4414c8",
"calldata_variants": [
"0x0f4414c8",
"0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 563,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1199,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022
call_targets:
0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e"
],
"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": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6323d7af",
"selector": "0x6323d7af",
"calldata_variants": [
"0x6323d7af",
"0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd6dc687",
"selector": "0xcd6dc687",
"calldata_variants": [
"0xcd6dc687",
"0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4847a79c",
"selector": "0x4847a79c",
"calldata_variants": [
"0x4847a79c",
"0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4414c8",
"selector": "0x0f4414c8",
"calldata_variants": [
"0x0f4414c8",
"0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 563,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1199,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0x80088c6f1b9b1dc3fe139e1edce4a4d40e82965a6451a03f32393480a79804de
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 18,
"trace_id": "0x80088c6f1b9b1dc3fe139e1edce4a4d40e82965a6451a03f32393480a79804de",
"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": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6323d7af",
"selector": "0x6323d7af",
"calldata_variants": [
"0x6323d7af",
"0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd6dc687",
"selector": "0xcd6dc687",
"calldata_variants": [
"0xcd6dc687",
"0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4847a79c",
"selector": "0x4847a79c",
"calldata_variants": [
"0x4847a79c",
"0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4414c8",
"selector": "0x0f4414c8",
"calldata_variants": [
"0x0f4414c8",
"0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3659cfe6",
"selector": "0x3659cfe6",
"calldata_variants": [
"0x3659cfe6",
"0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | codex | Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded) | 75 | no | — |
viewevidence_json{
"evidence": "Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.",
"locations": [
"pc:0xcf1"
],
"recommendation": "Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.",
"exploit_scenario": "If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed."
}
|
| medium | reentrancy | codex | Low-level CALL with ETH value to computed target | 75 | no | — |
viewevidence_json{
"evidence": "CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.",
"locations": [
"pc:0x233",
"pc:0x4af"
],
"recommendation": "Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.",
"exploit_scenario": "Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths."
}
|
| medium | other | codex | SELFDESTRUCT opcode present and marked reachable | 75 | no | — |
viewevidence_json{
"evidence": "Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.",
"locations": [
"pc:0x110b"
],
"recommendation": "Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.",
"exploit_scenario": "If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality."
}
|