019b3836-330c-7234-bf43-76d468452bb2
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 |
|---|---|---|---|---|
| 3045 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 3046 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 45928 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 45929 | capability.graph | complete | 1 / 3 | 1 week ago |
| 45930 | detector.run | complete | 1 / 3 | 1 week ago |
| 45931 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113252 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"Runtime bytecode matches a legacy ERC20-like token with an extra hook-enabled transfer path and no proxy/delegatecall logic. The strongest bytecode-level risks are a user-controlled external callback reachable from selector 0xcae9ca51 and non-standard delegated-spend accounting around selectors 0x23b872dd/0xdd62ed3e. Because this is bytecode-only analysis, selector intent and storage-role names remain inferred rather than proven.","findings":[{"severity":"medium","category":"auth","title":"`transferFrom` authorization appears non-standard and likely irrevocable","exploit_scenario":"A wallet or dApp treats this contract as a standard ERC20 because it exposes `transferFrom(address,address,uint256)` and `allowance(address,address)`. However, the runtime never exposes an `approve`-like selector and the `transferFrom` path appears to compare two different nested mappings, then increment only one of them after spending. If constructor-seeded spending rights exist, the owner may have no runtime way to revoke them; if integrators rely on `allowance()` as remaining spendable amount, they can overestimate available authorization and build unsafe flows around stale approvals.","recommendation":"Do not integrate this token as a standard ERC20 allowance model without validating the constructor and any off-bytecode setup. If the design is intentional, document that `allowance()` is not a remaining allowance and expose an explicit revocation/update path. Otherwise, add a standard `approve`/decrementing allowance mechanism and ensure `allowance(owner,spender)` reflects remaining spendable authorization.","evidence":"Selector `0xdd62ed3e` reads a slot-4 two-key mapping at pc 0x341-0x35e, but no runtime selector resembling `0x095ea7b3` is present and no runtime write to that slot family was identified. In `transferFrom` (`0x23b872dd`), the bytecode checks one nested mapping rooted at slot 4 and another rooted at slot 5 around pc 0x521-0x557, then later updates only the slot-5 rooted mapping at pc 0x5bb-0x605. This is inconsistent with standard ERC20 behavior where `allowance()` returns the remaining amount and is decremented by `transferFrom`.","locations":["selector:0x23b872dd","selector:0xdd62ed3e","pc:0x341","pc:0x521","pc:0x5bb"]},{"severity":"low","category":"reentrancy","title":"Hook-enabled transfer path performs an unguarded external call to a user-influenced target","exploit_scenario":"A caller reaches selector `0xcae9ca51` with a malicious recipient contract. The routine updates token state first, then forwards nearly all remaining gas to an external call at pc 0x30c. The recipient can reenter public functions while the outer frame is still active. Bytecode alone does not prove a direct drain path beyond normal token movement, but any surrounding assumptions of single-step execution or non-reentrancy are unsafe on this path.","recommendation":"Treat selector `0xcae9ca51` as a reentrant entrypoint. Add a reentrancy guard or restructure so all invariants are finalized before the callback and only the minimal required gas/interface is forwarded. If the hook is intentional, clearly scope and document which callbacks are allowed.","evidence":"Dispatcher sends selector `0xcae9ca51` to pc 0x1bd. Inside that routine, storage is mutated before the external interaction (for example an `SSTORE` at pc 0x24b), then a `CALL` is executed at pc 0x30c with `GAS`, `PUSH2 0x61da`, `SUB`, `CALL`, and no detected guard (`auth.guards` is empty). The detector reported multiple CALLs, but the calls at pc 0x2c8 and pc 0x39d are likely old-Solidity identity-precompile helpers; the meaningful user-controlled callback is the call at pc 0x30c.","locations":["selector:0xcae9ca51","pc:0x24b","pc:0x30c"]}]}
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-prbqx98r
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5ba6-7736-78c2-92b2-4366dc121de9
--------
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.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc 'pwd && rg --files' in /tmp/codex-prbqx98r
succeeded in 0ms:
/tmp/codex-prbqx98r
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'wc -c BYTECODE_BUNDLE.json' in /tmp/codex-prbqx98r
succeeded in 0ms:
84463 BYTECODE_BUNDLE.json
exec
/bin/bash -lc 'wc -c codex-output-schema.json' in /tmp/codex-prbqx98r
succeeded in 0ms:
815 codex-output-schema.json
exec
/bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-prbqx98r
succeeded in 0ms:
{"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
"analysis_artifact",
"analysis_run",
"artifact",
"capability_graph",
"detector_findings",
"heuristics_summary"
]
exec
/bin/bash -lc "jq '{artifact: .artifact, heuristics_summary: .heuristics_summary, detector_findings: .detector_findings, analysis_run: .analysis_run, analysis_artifact_keys: (.analysis_artifact|keys), capability_graph_keys: (.capability_graph|keys)}' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
{
"artifact": {
"codehash": "0x874efed0297ce2055816a3736c8d2293d47cabbd37cf73418ace9a48771a70c9",
"compiler_json": {
"etherscan": {
"skipped": true
}
},
"implementation_address": null,
"is_proxy": false,
"runtime_bytecode": {
"full": "0x606060405236156100775760e060020a600035046306fdde03811461007f57806323b872dd146100dc578063313ce5671461010e57806370a082311461011a57806395d89b4114610132578063a9059cbb1461018e578063cae9ca51146101bd578063dc3080f21461031c578063dd62ed3e14610341575b610365610002565b61036760008054602060026001831615610100026000190190921691909104601f8101829004909102608090810160405260608281529291908282801561041c5780601f106103f15761010080835404028352916020019161041c565b6103d5600435602435604435600160a060020a038316600090815260036020526040812054829010156104f357610002565b6103e760025460ff1681565b6103d560043560036020526000908152604090205481565b610367600180546020600282841615610100026000190190921691909104601f8101829004909102608090810160405260608281529291908282801561041c5780601f106103f15761010080835404028352916020019161041c565b610365600435602435600160a060020a0333166000908152600360205260409020548190101561042457610002565b60806020604435600481810135601f8101849004909302840160405260608381526103d5948235946024803595606494939101919081908382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156102f25780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546103d59081565b60046020818152903560009081526040808220909252602435815220546103d59081565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6060908152602090f35b820191906000526020600020905b8154815290600101906020018083116103ff57829003601f168201915b505050505081565b600160a060020a03821660009081526040902054808201101561044657610002565b806003600050600033600160a060020a03168152602001908152602001600020600082828250540392505081905550806003600050600084600160a060020a0316815260200190815260200160002060008282825054019250508190555081600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600160a060020a03831681526040812054808301101561051257610002565b600160a060020a0380851680835260046020908152604080852033949094168086529382528085205492855260058252808520938552929052908220548301111561055c57610002565b816003600050600086600160a060020a03168152602001908152602001600020600082828250540392505081905550816003600050600085600160a060020a03168152602001908152602001600020600082828250540192505081905550816005600050600086600160a060020a03168152602001908152602001600020600050600033600160a060020a0316815260200190815260200160002060008282825054019250508190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3939250505056",
"head": null,
"length": 3250,
"tail": null,
"truncated": false
},
"verified_source": false
},
"heuristics_summary": {
"create2_count": 0,
"delegatecall_count": 0,
"flags": [],
"selfdestruct_count": 0
},
"detector_findings": [
{
"confidence": 60,
"evidence_json": {
"call_count": 3,
"examples": [
{
"opcode": "CALL",
"pc": 712,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 780,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 925,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 3
},
"normalized_json": {
"sink": "CALL"
},
"severity": "high",
"title": "Untrusted CALL target/value reachable",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5",
"trace_mode": "callTracer"
}
},
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 3,
"examples": [
{
"opcode": "CALL",
"pc": 712,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 780,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 925,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": []
},
"normalized_json": {
"sink": "CALL",
"value": "nonzero"
},
"severity": "high",
"title": "ETH value transfer possible",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5",
"trace_mode": "callTracer"
}
}
],
"analysis_run": {
"address": "0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8",
"block_number": null,
"chain_id": 1,
"child_links": [],
"created_at": "2025-12-19T20:03:54.000000Z",
"id": "019b3836-330c-7234-bf43-76d468452bb2",
"parent_links": [],
"status": "running",
"updated_at": "2026-04-04T19:54:28.000000Z"
},
"analysis_artifact_keys": [
"address",
"artifact_hash",
"artifact_json",
"block_number",
"chain_id",
"codehash",
"created_at",
"id",
"updated_at",
"version"
],
"capability_graph_keys": [
"address",
"block_number",
"chain_id",
"codehash",
"created_at",
"graph_hash",
"graph_json",
"id",
"updated_at",
"version"
]
}
✓ Inspect BYTECODE_BUNDLE structure and extract selector/call/storage evidence
→ Reason through runtime control flow and identify concrete security risks from bytecode artifacts
• Produce JSON findings with calibrated severity and explicit bytecode uncertainty
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
"auth",
"basic_blocks",
"callsites",
"cfg_edges",
"cfg_hash",
"dispatcher_type",
"function_entries",
"functions",
"selectors",
"sinks",
"storage",
"version"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.selectors' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
"0x06fdde03",
"0x23b872dd",
"0x313ce567",
"0x70a08231",
"0x95d89b41",
"0xa9059cbb",
"0xcae9ca51",
"0xdc3080f2",
"0xdd62ed3e"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.function_entries' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
{
"entry_pc": null,
"selector": "0x06fdde03"
},
{
"entry_pc": 826074471,
"selector": "0x23b872dd"
},
{
"entry_pc": 1889567281,
"selector": "0x313ce567"
},
{
"entry_pc": 2514000705,
"selector": "0x70a08231"
},
{
"entry_pc": 2835717307,
"selector": "0x95d89b41"
},
{
"entry_pc": 3404319313,
"selector": "0xa9059cbb"
},
{
"entry_pc": 3694166258,
"selector": "0xcae9ca51"
},
{
"entry_pc": 3714247998,
"selector": "0xdc3080f2"
},
{
"entry_pc": 869,
"selector": "0xdd62ed3e"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
{
"opcode": "CALL",
"pc": 712,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 780,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 925,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
{
"keccak_count": 22,
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.auth' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
{
"guards": []
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.sinks' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
{
"call": 3,
"create": 0,
"create2": 0,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0,
"upgrade_slot_write_suspected": false
}
exec
/bin/bash -lc "jq '.capability_graph.graph_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
"edges",
"nodes",
"version"
]
exec
/bin/bash -lc "jq '.capability_graph.graph_json' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
{
"edges": [
{
"from": "bb:0",
"to": "bb:119",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:127",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:31",
"type": "control_flow_fallthrough"
},
{
"from": "bb:31",
"to": "bb:220",
"type": "control_flow"
},
{
"from": "bb:31",
"to": "bb:42",
"type": "control_flow_fallthrough"
},
{
"from": "bb:42",
"to": "bb:270",
"type": "control_flow"
},
{
"from": "bb:42",
"to": "bb:53",
"type": "control_flow_fallthrough"
},
{
"from": "bb:53",
"to": "bb:282",
"type": "control_flow"
},
{
"from": "bb:53",
"to": "bb:64",
"type": "control_flow_fallthrough"
},
{
"from": "bb:64",
"to": "bb:306",
"type": "control_flow"
},
{
"from": "bb:64",
"to": "bb:75",
"type": "control_flow_fallthrough"
},
{
"from": "bb:75",
"to": "bb:398",
"type": "control_flow"
},
{
"from": "bb:75",
"to": "bb:86",
"type": "control_flow_fallthrough"
},
{
"from": "bb:86",
"to": "bb:445",
"type": "control_flow"
},
{
"from": "bb:86",
"to": "bb:97",
"type": "control_flow_fallthrough"
},
{
"from": "bb:97",
"to": "bb:796",
"type": "control_flow"
},
{
"from": "bb:97",
"to": "bb:108",
"type": "control_flow_fallthrough"
},
{
"from": "bb:108",
"to": "bb:833",
"type": "control_flow"
},
{
"from": "bb:108",
"to": "bb:119",
"type": "control_flow_fallthrough"
},
{
"from": "bb:127",
"to": "bb:1052",
"type": "control_flow"
},
{
"from": "bb:127",
"to": "bb:193",
"type": "control_flow_fallthrough"
},
{
"from": "bb:193",
"to": "bb:1009",
"type": "control_flow"
},
{
"from": "bb:193",
"to": "bb:201",
"type": "control_flow_fallthrough"
},
{
"from": "bb:201",
"to": "bb:1052",
"type": "control_flow"
},
{
"from": "bb:220",
"to": "bb:1267",
"type": "control_flow"
},
{
"from": "bb:220",
"to": "bb:266",
"type": "control_flow_fallthrough"
},
{
"from": "bb:306",
"to": "bb:1052",
"type": "control_flow"
},
{
"from": "bb:306",
"to": "bb:371",
"type": "control_flow_fallthrough"
},
{
"from": "bb:371",
"to": "bb:1009",
"type": "control_flow"
},
{
"from": "bb:371",
"to": "bb:379",
"type": "control_flow_fallthrough"
},
{
"from": "bb:379",
"to": "bb:1052",
"type": "control_flow"
},
{
"from": "bb:398",
"to": "bb:1060",
"type": "control_flow"
},
{
"from": "bb:398",
"to": "bb:441",
"type": "control_flow_fallthrough"
},
{
"from": "bb:445",
"to": "bb:754",
"type": "control_flow"
},
{
"from": "bb:445",
"to": "bb:729",
"type": "control_flow_fallthrough"
},
{
"from": "bb:729",
"to": "bb:754",
"type": "control_flow_fallthrough"
},
{
"from": "bb:754",
"to": "bb:786",
"type": "control_flow_fallthrough"
},
{
"from": "bb:871",
"to": "bb:967",
"type": "control_flow"
},
{
"from": "bb:871",
"to": "bb:942",
"type": "control_flow_fallthrough"
},
{
"from": "bb:942",
"to": "bb:967",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1009",
"to": "bb:1023",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1023",
"to": "bb:1023",
"type": "control_flow"
},
{
"from": "bb:1023",
"to": "bb:1043",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1043",
"to": "bb:1052",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1060",
"to": "bb:1094",
"type": "control_flow"
},
{
"from": "bb:1060",
"to": "bb:1090",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1267",
"to": "bb:1298",
"type": "control_flow"
},
{
"from": "bb:1267",
"to": "bb:1294",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1298",
"to": "bb:1372",
"type": "control_flow"
},
{
"from": "bb:1298",
"to": "bb:1368",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x23b872dd",
"to": "bb:826074471",
"type": "entry"
},
{
"from": "fn:0x313ce567",
"to": "bb:1889567281",
"type": "entry"
},
{
"from": "fn:0x70a08231",
"to": "bb:2514000705",
"type": "entry"
},
{
"from": "fn:0x95d89b41",
"to": "bb:2835717307",
"type": "entry"
},
{
"from": "fn:0xa9059cbb",
"to": "bb:3404319313",
"type": "entry"
},
{
"from": "fn:0xcae9ca51",
"to": "bb:3694166258",
"type": "entry"
},
{
"from": "fn:0xdc3080f2",
"to": "bb:3714247998",
"type": "entry"
},
{
"from": "fn:0xdd62ed3e",
"to": "bb:869",
"type": "entry"
},
{
"from": "bb:445",
"to": "call:712",
"type": "contains"
},
{
"from": "call:712",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:754",
"to": "call:780",
"type": "contains"
},
{
"from": "call:780",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:871",
"to": "call:925",
"type": "contains"
},
{
"from": "call:925",
"to": "sink:call",
"type": "capability"
}
],
"nodes": [
{
"end_pc": 10,
"hash": "0xda891681de0e2b3d574fbc2e6752bd7a6c50949b7c8f0e66f5e152fca339e5bb",
"id": "bb:0",
"start_pc": 0,
"type": "basic_block"
},
{
"end_pc": 30,
"hash": "0x0343c66c992fc9a4c8503f012ff68e290b9a312191eba5b0b8a306142ff00f3c",
"id": "bb:11",
"start_pc": 11,
"type": "basic_block"
},
{
"end_pc": 41,
"hash": "0xe4a2a78f8950ed63683b804061fb60e06e08588285fb9b3253a672d2132a1193",
"id": "bb:31",
"start_pc": 31,
"type": "basic_block"
},
{
"end_pc": 52,
"hash": "0x752a9904e5afd23801f771418b9c90fe3796babbce70e90c3c39fb21f506f4ec",
"id": "bb:42",
"start_pc": 42,
"type": "basic_block"
},
{
"end_pc": 63,
"hash": "0x4b0ec7be87772895a3ed653adb67737eb056c70686c3ac6c27506a6f17382896",
"id": "bb:53",
"start_pc": 53,
"type": "basic_block"
},
{
"end_pc": 74,
"hash": "0xf0f2e3b39cdab3ec2f3f442e1c644e1e571921fed2bf26c1f910006798933aa0",
"id": "bb:64",
"start_pc": 64,
"type": "basic_block"
},
{
"end_pc": 85,
"hash": "0x9d023b9e7a99db6d9f4c6273312ced45f3227b5a37be37eb6dd74f177d375bc9",
"id": "bb:75",
"start_pc": 75,
"type": "basic_block"
},
{
"end_pc": 96,
"hash": "0x52c4eb52d31a3dac316ec8170cd135c991d20d47a07ff4ea42305b4616c62d5f",
"id": "bb:86",
"start_pc": 86,
"type": "basic_block"
},
{
"end_pc": 107,
"hash": "0xd6edf2c52a9c50603b1675b631899baf0ccb91474fa0507ba0696c9089d7a916",
"id": "bb:97",
"start_pc": 97,
"type": "basic_block"
},
{
"end_pc": 118,
"hash": "0x4411a538b7f5b0c2edf5f9bc731a7e6e08b9ed1d373d25d2cae0440f7e6f866a",
"id": "bb:108",
"start_pc": 108,
"type": "basic_block"
},
{
"end_pc": 126,
"hash": "0x7d89dda3d0e9e4026fa799e06f15658b5e0c0bdeb160aa8932fe100a5a4104f3",
"id": "bb:119",
"start_pc": 119,
"type": "basic_block"
},
{
"end_pc": 192,
"hash": "0xd8efafa5c2d69cae7a3394f72e34adb5fb491d920ba4abab2c968099325a2ca2",
"id": "bb:127",
"start_pc": 127,
"type": "basic_block"
},
{
"end_pc": 200,
"hash": "0xaab5b85718983e598a7877cbdf95ddc645b3b4a1a51127e103e5153ba06d7598",
"id": "bb:193",
"start_pc": 193,
"type": "basic_block"
},
{
"end_pc": 219,
"hash": "0x2e794b922f2e688929521016738957b2566468ea69b3419d8d40755853cff20c",
"id": "bb:201",
"start_pc": 201,
"type": "basic_block"
},
{
"end_pc": 265,
"hash": "0x190bf08b5e08d77b3005616766a2ab7fa4adb77ba20b16951d4633d8293f7ebf",
"id": "bb:220",
"start_pc": 220,
"type": "basic_block"
},
{
"end_pc": 269,
"hash": "0x52ba0293f3ad0d0d22b2cd189312666c2f198fe85fd7e8cf364ca30124e6b6de",
"id": "bb:266",
"start_pc": 266,
"type": "basic_block"
},
{
"end_pc": 281,
"hash": "0x9362fd1a8491aafd33b18515eb8ae7f6ce985746e9a8743c6fc6c84b7c52c518",
"id": "bb:270",
"start_pc": 270,
"type": "basic_block"
},
{
"end_pc": 305,
"hash": "0xbb87a2a93bcc6d42ab9c1e8a369ca3651c37d9a9372dc06f6964d3866ab8b291",
"id": "bb:282",
"start_pc": 282,
"type": "basic_block"
},
{
"end_pc": 370,
"hash": "0x1f128a54ab36e4a650a39c43969da7a18d0606125668c0a3aa64a761d230287a",
"id": "bb:306",
"start_pc": 306,
"type": "basic_block"
},
{
"end_pc": 378,
"hash": "0x58b1c56e0bff7ba093cef9b7a74d11611cf4b15773f76d97991c3d49c38766a6",
"id": "bb:371",
"start_pc": 371,
"type": "basic_block"
},
{
"end_pc": 397,
"hash": "0xe9187216f47e087c3deca70ab4be2937fbf4de2fca127d2dfd92abe17b4781fa",
"id": "bb:379",
"start_pc": 379,
"type": "basic_block"
},
{
"end_pc": 440,
"hash": "0xa101c9d6bb187e5dd34f4e8bfce81941261c9b79f1205d8650c4885bb3726448",
"id": "bb:398",
"start_pc": 398,
"type": "basic_block"
},
{
"end_pc": 444,
"hash": "0x97405cdd6e6b60c9e9daa38cfb2e6d1ae50968b4bd9967a97fd59f851bba10c4",
"id": "bb:441",
"start_pc": 441,
"type": "basic_block"
},
{
"end_pc": 728,
"hash": "0x4c004680333ea937e41a95e0aaa7be8791bcc43b3d6e6b44ac5f9f25fec29fb6",
"id": "bb:445",
"start_pc": 445,
"type": "basic_block"
},
{
"end_pc": 753,
"hash": "0x6c0260a2c143f4bf49ef1833a76637a7016a5027a6eb39e9b989cd2fa2ad3bc9",
"id": "bb:729",
"start_pc": 729,
"type": "basic_block"
},
{
"end_pc": 785,
"hash": "0xbffc64f35b18e95e2103ddef4b4c5fdccee241aff0e0782c74d7b7bb3e9692bb",
"id": "bb:754",
"start_pc": 754,
"type": "basic_block"
},
{
"end_pc": 795,
"hash": "0xd31cae8e0c5c35d864bd5508dadbe36913d0b7616723327ad7fa8cbf04a9d090",
"id": "bb:786",
"start_pc": 786,
"type": "basic_block"
},
{
"end_pc": 832,
"hash": "0x671f80614b2161acd8baa164519b56d80b0369a1cfcd4471f9660911fdec58ed",
"id": "bb:796",
"start_pc": 796,
"type": "basic_block"
},
{
"end_pc": 868,
"hash": "0x4967a576c664bf96bf266de1e139b435ea940fc359da4af5fde4d4a32032cb10",
"id": "bb:833",
"start_pc": 833,
"type": "basic_block"
},
{
"end_pc": 870,
"hash": "0x5cf4c5f8e3b1ba7f3983055ae21aff82972bf273cf483cb99b22716738730c8f",
"id": "bb:869",
"start_pc": 869,
"type": "basic_block"
},
{
"end_pc": 941,
"hash": "0x4e015292933284ecba012bf1ac6370f2ee89eaecf8846a17e70652092e826368",
"id": "bb:871",
"start_pc": 871,
"type": "basic_block"
},
{
"end_pc": 966,
"hash": "0x726883ac335db6396460a65951f8781b271477760da9f313537d6d2c8f4c2787",
"id": "bb:942",
"start_pc": 942,
"type": "basic_block"
},
{
"end_pc": 980,
"hash": "0x6e647b035fdb58d4be1d1d7fe777d3d819158f76ffe11d2517debc73a4271c9d",
"id": "bb:967",
"start_pc": 967,
"type": "basic_block"
},
{
"end_pc": 998,
"hash": "0xe72f2d49734f00bbcdcd0e24a06397f3639aa1d959474ef092b3e85596206ed4",
"id": "bb:981",
"start_pc": 981,
"type": "basic_block"
},
{
"end_pc": 1008,
"hash": "0xca01593542ab5509a9e9f91cd2fe5d9ff3fefd59976afd43d053e24d9681d7ad",
"id": "bb:999",
"start_pc": 999,
"type": "basic_block"
},
{
"end_pc": 1022,
"hash": "0x3487ce969fde324c21ec4897a771b6a6c9366d06c0ccf7c7eb59128e3da699d9",
"id": "bb:1009",
"start_pc": 1009,
"type": "basic_block"
},
{
"end_pc": 1042,
"hash": "0x9843d5bef793075e621a5db739863e9598a10bb1dac83aff33020ccd4235e068",
"id": "bb:1023",
"start_pc": 1023,
"type": "basic_block"
},
{
"end_pc": 1051,
"hash": "0x538abb38eabdfe29129b607eb8ae0b8d2e44521c45ee2c110943f458fd664324",
"id": "bb:1043",
"start_pc": 1043,
"type": "basic_block"
},
{
"end_pc": 1059,
"hash": "0x472c08278b028b0cdb59aad605c5706d03de3e93dcdf16a3641f8a640a00e731",
"id": "bb:1052",
"start_pc": 1052,
"type": "basic_block"
},
{
"end_pc": 1089,
"hash": "0x5c8c6f156ae992e2a7da3273c349575c878684bc6e974dcab67cad2204a8ac15",
"id": "bb:1060",
"start_pc": 1060,
"type": "basic_block"
},
{
"end_pc": 1093,
"hash": "0x027da33ba0ef47e5382be6e0e7e5f7de28c5fa90f629adef43b8d86b4fdc7dbf",
"id": "bb:1090",
"start_pc": 1090,
"type": "basic_block"
},
{
"end_pc": 1266,
"hash": "0x5798335e65fa03c08b530140688de4533b35e5acc6a62cf1bbb7f4a3b8990728",
"id": "bb:1094",
"start_pc": 1094,
"type": "basic_block"
},
{
"end_pc": 1293,
"hash": "0x1efeed91c466c5566d1ebe14449767f50a1426b1e1762279016703ac747c47c2",
"id": "bb:1267",
"start_pc": 1267,
"type": "basic_block"
},
{
"end_pc": 1297,
"hash": "0xde573111b2e71d42614970a01648d50ed903636ae22a28be2f9f344df8c3a808",
"id": "bb:1294",
"start_pc": 1294,
"type": "basic_block"
},
{
"end_pc": 1367,
"hash": "0xc6099e4bd9cdeda0d19333ac44aa52a84c0014cf573ae2bac4ba956c98bbef7c",
"id": "bb:1298",
"start_pc": 1298,
"type": "basic_block"
},
{
"end_pc": 1371,
"hash": "0xe2811e1ab2e138a0c1623f56ff5e31cf15a81dd9389e0ed886e676b2ee65e741",
"id": "bb:1368",
"start_pc": 1368,
"type": "basic_block"
},
{
"end_pc": 1623,
"hash": "0x6aa5714a3416ed580f6559a1e111b4bd0099b7d16b65705910a895433cc3041c",
"id": "bb:1372",
"start_pc": 1372,
"type": "basic_block"
},
{
"id": "call:712",
"opcode": "CALL",
"pc": 712,
"type": "callsite"
},
{
"id": "call:780",
"opcode": "CALL",
"pc": 780,
"type": "callsite"
},
{
"id": "call:925",
"opcode": "CALL",
"pc": 925,
"type": "callsite"
},
{
"id": "sink:call",
"type": "sink"
},
{
"entry_pc": null,
"id": "fn:0x06fdde03",
"selector": "0x06fdde03",
"type": "function"
},
{
"entry_pc": 826074471,
"id": "fn:0x23b872dd",
"selector": "0x23b872dd",
"type": "function"
},
{
"entry_pc": 1889567281,
"id": "fn:0x313ce567",
"selector": "0x313ce567",
"type": "function"
},
{
"entry_pc": 2514000705,
"id": "fn:0x70a08231",
"selector": "0x70a08231",
"type": "function"
},
{
"entry_pc": 2835717307,
"id": "fn:0x95d89b41",
"selector": "0x95d89b41",
"type": "function"
},
{
"entry_pc": 3404319313,
"id": "fn:0xa9059cbb",
"selector": "0xa9059cbb",
"type": "function"
},
{
"entry_pc": 3694166258,
"id": "fn:0xcae9ca51",
"selector": "0xcae9ca51",
"type": "function"
},
{
"entry_pc": 3714247998,
"id": "fn:0xdc3080f2",
"selector": "0xdc3080f2",
"type": "function"
},
{
"entry_pc": 869,
"id": "fn:0xdd62ed3e",
"selector": "0xdd62ed3e",
"type": "function"
}
],
"version": "capability_graph_v1"
}
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json | sed 's/"'^0x//'"' | awk '{print substr("'$0,1,200) "..."}'"'" in /tmp/codex-prbqx98r
succeeded in 0ms:
606060405236156100775760e060020a600035046306fdde03811461007f57806323b872dd146100dc578063313ce5671461010e57806370a082311461011a57806395d89b4114610132578063a9059cbb1461018e578063cae9ca51146101bd578063dc...
exec
/bin/bash -lc "node -e 'const fs=require(\"fs\");const x=JSON.parse(fs.readFileSync(\"BYTECODE_BUNDLE.json\",\"utf8\")).artifact.runtime_bytecode.full.slice(2); console.log(x.length/2)'" in /tmp/codex-prbqx98r
succeeded in 0ms:
1624
exec
js_repl in /tmp/codex-prbqx98r
succeeded in 182ms:
[
{
"pc": 430,
"op": "SWAP1"
},
{
"pc": 431,
"op": "SHA3"
},
{
"pc": 432,
"op": "SLOAD"
},
{
"pc": 433,
"op": "DUP2"
},
{
"pc": 434,
"op": "SWAP1"
},
{
"pc": 435,
"op": "LT"
},
{
"pc": 436,
"op": "ISZERO"
},
{
"pc": 437,
"op": "PUSH2",
"arg": "0x0424"
},
{
"pc": 440,
"op": "JUMPI"
},
{
"pc": 441,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 444,
"op": "JUMP"
},
{
"pc": 445,
"op": "JUMPDEST"
},
{
"pc": 446,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 448,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 450,
"op": "PUSH1",
"arg": "0x44"
},
{
"pc": 452,
"op": "CALLDATALOAD"
},
{
"pc": 453,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 455,
"op": "DUP2"
},
{
"pc": 456,
"op": "DUP2"
},
{
"pc": 457,
"op": "ADD"
},
{
"pc": 458,
"op": "CALLDATALOAD"
},
{
"pc": 459,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 461,
"op": "DUP2"
},
{
"pc": 462,
"op": "ADD"
},
{
"pc": 463,
"op": "DUP5"
},
{
"pc": 464,
"op": "SWAP1"
},
{
"pc": 465,
"op": "DIV"
},
{
"pc": 466,
"op": "SWAP1"
},
{
"pc": 467,
"op": "SWAP4"
},
{
"pc": 468,
"op": "MUL"
},
{
"pc": 469,
"op": "DUP5"
},
{
"pc": 470,
"op": "ADD"
},
{
"pc": 471,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 473,
"op": "MSTORE"
},
{
"pc": 474,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 476,
"op": "DUP4"
},
{
"pc": 477,
"op": "DUP2"
},
{
"pc": 478,
"op": "MSTORE"
},
{
"pc": 479,
"op": "PUSH2",
"arg": "0x03d5"
},
{
"pc": 482,
"op": "SWAP5"
},
{
"pc": 483,
"op": "DUP3"
},
{
"pc": 484,
"op": "CALLDATALOAD"
},
{
"pc": 485,
"op": "SWAP5"
},
{
"pc": 486,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 488,
"op": "DUP1"
},
{
"pc": 489,
"op": "CALLDATALOAD"
},
{
"pc": 490,
"op": "SWAP6"
},
{
"pc": 491,
"op": "PUSH1",
"arg": "0x64"
},
{
"pc": 493,
"op": "SWAP5"
},
{
"pc": 494,
"op": "SWAP4"
},
{
"pc": 495,
"op": "SWAP2"
},
{
"pc": 496,
"op": "ADD"
},
{
"pc": 497,
"op": "SWAP2"
},
{
"pc": 498,
"op": "SWAP1"
},
{
"pc": 499,
"op": "DUP2"
},
{
"pc": 500,
"op": "SWAP1"
},
{
"pc": 501,
"op": "DUP4"
},
{
"pc": 502,
"op": "DUP3"
},
{
"pc": 503,
"op": "DUP1"
},
{
"pc": 504,
"op": "DUP3"
},
{
"pc": 505,
"op": "DUP5"
},
{
"pc": 506,
"op": "CALLDATACOPY"
},
{
"pc": 507,
"op": "POP"
},
{
"pc": 508,
"op": "SWAP5"
},
{
"pc": 509,
"op": "SWAP7"
},
{
"pc": 510,
"op": "POP"
},
{
"pc": 511,
"op": "POP"
},
{
"pc": 512,
"op": "POP"
},
{
"pc": 513,
"op": "POP"
},
{
"pc": 514,
"op": "POP"
},
{
"pc": 515,
"op": "POP"
},
{
"pc": 516,
"op": "POP"
},
{
"pc": 517,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 519,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 521,
"op": "DUP4"
},
{
"pc": 522,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 524,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 526,
"op": "POP"
},
{
"pc": 527,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 529,
"op": "CALLER"
},
{
"pc": 530,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 532,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 534,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 536,
"op": "EXP"
},
{
"pc": 537,
"op": "SUB"
},
{
"pc": 538,
"op": "AND"
},
{
"pc": 539,
"op": "DUP2"
},
{
"pc": 540,
"op": "MSTORE"
},
{
"pc": 541,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 543,
"op": "ADD"
},
{
"pc": 544,
"op": "SWAP1"
},
{
"pc": 545,
"op": "DUP2"
},
{
"pc": 546,
"op": "MSTORE"
},
{
"pc": 547,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 549,
"op": "ADD"
},
{
"pc": 550,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 552,
"op": "SHA3"
},
{
"pc": 553,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 555,
"op": "POP"
},
{
"pc": 556,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 558,
"op": "DUP8"
},
{
"pc": 559,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 561,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 563,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 565,
"op": "EXP"
},
{
"pc": 566,
"op": "SUB"
},
{
"pc": 567,
"op": "AND"
},
{
"pc": 568,
"op": "DUP2"
},
{
"pc": 569,
"op": "MSTORE"
},
{
"pc": 570,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 572,
"op": "ADD"
},
{
"pc": 573,
"op": "SWAP1"
},
{
"pc": 574,
"op": "DUP2"
},
{
"pc": 575,
"op": "MSTORE"
},
{
"pc": 576,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 578,
"op": "ADD"
},
{
"pc": 579,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 581,
"op": "SHA3"
},
{
"pc": 582,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 584,
"op": "POP"
},
{
"pc": 585,
"op": "DUP2"
},
{
"pc": 586,
"op": "SWAP1"
},
{
"pc": 587,
"op": "SSTORE"
},
{
"pc": 588,
"op": "POP"
},
{
"pc": 589,
"op": "DUP5"
},
{
"pc": 590,
"op": "SWAP1"
},
{
"pc": 591,
"op": "POP"
},
{
"pc": 592,
"op": "DUP1"
},
{
"pc": 593,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 595,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 597,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 599,
"op": "EXP"
},
{
"pc": 600,
"op": "SUB"
},
{
"pc": 601,
"op": "AND"
},
{
"pc": 602,
"op": "PUSH4",
"arg": "0x8f4ffcb1"
},
{
"pc": 607,
"op": "CALLER"
},
{
"pc": 608,
"op": "DUP7"
},
{
"pc": 609,
"op": "ADDRESS"
},
{
"pc": 610,
"op": "DUP8"
},
{
"pc": 611,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 613,
"op": "MLOAD"
},
{
"pc": 614,
"op": "DUP6"
},
{
"pc": 615,
"op": "PUSH1",
"arg": "0xe0"
},
{
"pc": 617,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 619,
"op": "EXP"
},
{
"pc": 620,
"op": "MUL"
},
{
"pc": 621,
"op": "DUP2"
},
{
"pc": 622,
"op": "MSTORE"
},
{
"pc": 623,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 625,
"op": "ADD"
},
{
"pc": 626,
"op": "DUP1"
},
{
"pc": 627,
"op": "DUP6"
},
{
"pc": 628,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 630,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 632,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 634,
"op": "EXP"
},
{
"pc": 635,
"op": "SUB"
},
{
"pc": 636,
"op": "AND"
},
{
"pc": 637,
"op": "DUP2"
},
{
"pc": 638,
"op": "MSTORE"
},
{
"pc": 639,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 641,
"op": "ADD"
},
{
"pc": 642,
"op": "DUP5"
},
{
"pc": 643,
"op": "DUP2"
},
{
"pc": 644,
"op": "MSTORE"
},
{
"pc": 645,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 647,
"op": "ADD"
},
{
"pc": 648,
"op": "DUP4"
},
{
"pc": 649,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 651,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 653,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 655,
"op": "EXP"
},
{
"pc": 656,
"op": "SUB"
},
{
"pc": 657,
"op": "AND"
},
{
"pc": 658,
"op": "DUP2"
},
{
"pc": 659,
"op": "MSTORE"
},
{
"pc": 660,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 662,
"op": "ADD"
},
{
"pc": 663,
"op": "DUP1"
},
{
"pc": 664,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 666,
"op": "ADD"
},
{
"pc": 667,
"op": "DUP3"
},
{
"pc": 668,
"op": "DUP2"
},
{
"pc": 669,
"op": "SUB"
},
{
"pc": 670,
"op": "DUP3"
},
{
"pc": 671,
"op": "MSTORE"
},
{
"pc": 672,
"op": "DUP4"
},
{
"pc": 673,
"op": "DUP2"
},
{
"pc": 674,
"op": "DUP2"
},
{
"pc": 675,
"op": "MLOAD"
},
{
"pc": 676,
"op": "DUP2"
},
{
"pc": 677,
"op": "MSTORE"
},
{
"pc": 678,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 680,
"op": "ADD"
},
{
"pc": 681,
"op": "SWAP2"
},
{
"pc": 682,
"op": "POP"
},
{
"pc": 683,
"op": "DUP1"
},
{
"pc": 684,
"op": "MLOAD"
},
{
"pc": 685,
"op": "SWAP1"
},
{
"pc": 686,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 688,
"op": "ADD"
},
{
"pc": 689,
"op": "SWAP1"
},
{
"pc": 690,
"op": "DUP1"
},
{
"pc": 691,
"op": "DUP4"
},
{
"pc": 692,
"op": "DUP4"
},
{
"pc": 693,
"op": "DUP3"
},
{
"pc": 694,
"op": "SWAP1"
},
{
"pc": 695,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 697,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 699,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 701,
"op": "DUP5"
},
{
"pc": 702,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 704,
"op": "ADD"
},
{
"pc": 705,
"op": "DIV"
},
{
"pc": 706,
"op": "PUSH1",
"arg": "0x0f"
},
{
"pc": 708,
"op": "MUL"
},
{
"pc": 709,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 711,
"op": "ADD"
},
{
"pc": 712,
"op": "CALL"
},
{
"pc": 713,
"op": "POP"
},
{
"pc": 714,
"op": "SWAP1"
},
{
"pc": 715,
"op": "POP"
},
{
"pc": 716,
"op": "SWAP1"
},
{
"pc": 717,
"op": "DUP2"
},
{
"pc": 718,
"op": "ADD"
},
{
"pc": 719,
"op": "SWAP1"
},
{
"pc": 720,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 722,
"op": "AND"
},
{
"pc": 723,
"op": "DUP1"
},
{
"pc": 724,
"op": "ISZERO"
},
{
"pc": 725,
"op": "PUSH2",
"arg": "0x02f2"
},
{
"pc": 728,
"op": "JUMPI"
},
{
"pc": 729,
"op": "DUP1"
},
{
"pc": 730,
"op": "DUP3"
},
{
"pc": 731,
"op": "SUB"
},
{
"pc": 732,
"op": "DUP1"
},
{
"pc": 733,
"op": "MLOAD"
},
{
"pc": 734,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 736,
"op": "DUP4"
},
{
"pc": 737,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 739,
"op": "SUB"
},
{
"pc": 740,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 743,
"op": "EXP"
},
{
"pc": 744,
"op": "SUB"
},
{
"pc": 745,
"op": "NOT"
},
{
"pc": 746,
"op": "AND"
},
{
"pc": 747,
"op": "DUP2"
},
{
"pc": 748,
"op": "MSTORE"
},
{
"pc": 749,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 751,
"op": "ADD"
},
{
"pc": 752,
"op": "SWAP2"
},
{
"pc": 753,
"op": "POP"
},
{
"pc": 754,
"op": "JUMPDEST"
},
{
"pc": 755,
"op": "POP"
},
{
"pc": 756,
"op": "SWAP6"
},
{
"pc": 757,
"op": "POP"
},
{
"pc": 758,
"op": "POP"
},
{
"pc": 759,
"op": "POP"
},
{
"pc": 760,
"op": "POP"
},
{
"pc": 761,
"op": "POP"
},
{
"pc": 762,
"op": "POP"
},
{
"pc": 763,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 765,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 767,
"op": "MLOAD"
},
{
"pc": 768,
"op": "DUP1"
},
{
"pc": 769,
"op": "DUP4"
},
{
"pc": 770,
"op": "SUB"
},
{
"pc": 771,
"op": "DUP2"
},
{
"pc": 772,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 774,
"op": "DUP8"
},
{
"pc": 775,
"op": "PUSH2",
"arg": "0x61da"
},
{
"pc": 778,
"op": "GAS"
},
{
"pc": 779,
"op": "SUB"
},
{
"pc": 780,
"op": "CALL"
},
{
"pc": 781,
"op": "ISZERO"
},
{
"pc": 782,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 785,
"op": "JUMPI"
},
{
"pc": 786,
"op": "POP"
},
{
"pc": 787,
"op": "POP"
},
{
"pc": 788,
"op": "POP"
},
{
"pc": 789,
"op": "POP"
},
{
"pc": 790,
"op": "SWAP4"
},
{
"pc": 791,
"op": "SWAP3"
},
{
"pc": 792,
"op": "POP"
},
{
"pc": 793,
"op": "POP"
},
{
"pc": 794,
"op": "POP"
},
{
"pc": 795,
"op": "JUMP"
},
{
"pc": 796,
"op": "JUMPDEST"
},
{
"pc": 797,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 799,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 801,
"op": "SWAP1"
},
{
"pc": 802,
"op": "DUP2"
},
{
"pc": 803,
"op": "MSTORE"
},
{
"pc": 804,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 806,
"op": "CALLDATALOAD"
},
{
"pc": 807,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 809,
"op": "SWAP1"
},
{
"pc": 810,
"op": "DUP2"
},
{
"pc": 811,
"op": "MSTORE"
},
{
"pc": 812,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 814,
"op": "DUP1"
},
{
"pc": 815,
"op": "DUP3"
},
{
"pc": 816,
"op": "SHA3"
},
{
"pc": 817,
"op": "SWAP1"
},
{
"pc": 818,
"op": "SWAP3"
},
{
"pc": 819,
"op": "MSTORE"
},
{
"pc": 820,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 822,
"op": "CALLDATALOAD"
},
{
"pc": 823,
"op": "DUP2"
},
{
"pc": 824,
"op": "MSTORE"
},
{
"pc": 825,
"op": "SHA3"
},
{
"pc": 826,
"op": "SLOAD"
},
{
"pc": 827,
"op": "PUSH2",
"arg": "0x03d5"
},
{
"pc": 830,
"op": "SWAP1"
},
{
"pc": 831,
"op": "DUP2"
},
{
"pc": 832,
"op": "JUMP"
},
{
"pc": 833,
"op": "JUMPDEST"
},
{
"pc": 834,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 836,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 838,
"op": "DUP2"
},
{
"pc": 839,
"op": "DUP2"
},
{
"pc": 840,
"op": "MSTORE"
},
{
"pc": 841,
"op": "SWAP1"
},
{
"pc": 842,
"op": "CALLDATALOAD"
},
{
"pc": 843,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 845,
"op": "SWAP1"
},
{
"pc": 846,
"op": "DUP2"
},
{
"pc": 847,
"op": "MSTORE"
},
{
"pc": 848,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 850,
"op": "DUP1"
},
{
"pc": 851,
"op": "DUP3"
},
{
"pc": 852,
"op": "SHA3"
},
{
"pc": 853,
"op": "SWAP1"
},
{
"pc": 854,
"op": "SWAP3"
},
{
"pc": 855,
"op": "MSTORE"
},
{
"pc": 856,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 858,
"op": "CALLDATALOAD"
},
{
"pc": 859,
"op": "DUP2"
},
{
"pc": 860,
"op": "MSTORE"
},
{
"pc": 861,
"op": "SHA3"
},
{
"pc": 862,
"op": "SLOAD"
},
{
"pc": 863,
"op": "PUSH2",
"arg": "0x03d5"
},
{
"pc": 866,
"op": "SWAP1"
},
{
"pc": 867,
"op": "DUP2"
},
{
"pc": 868,
"op": "JUMP"
},
{
"pc": 869,
"op": "JUMPDEST"
},
{
"pc": 870,
"op": "STOP"
},
{
"pc": 871,
"op": "JUMPDEST"
},
{
"pc": 872,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 874,
"op": "MLOAD"
},
{
"pc": 875,
"op": "DUP1"
},
{
"pc": 876,
"op": "DUP1"
},
{
"pc": 877,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 879,
"op": "ADD"
},
{
"pc": 880,
"op": "DUP3"
},
{
"pc": 881,
"op": "DUP2"
},
{
"pc": 882,
"op": "SUB"
},
{
"pc": 883,
"op": "DUP3"
},
{
"pc": 884,
"op": "MSTORE"
},
{
"pc": 885,
"op": "DUP4"
},
{
"pc": 886,
"op": "DUP2"
},
{
"pc": 887,
"op": "DUP2"
},
{
"pc": 888,
"op": "MLOAD"
},
{
"pc": 889,
"op": "DUP2"
},
{
"pc": 890,
"op": "MSTORE"
},
{
"pc": 891,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 893,
"op": "ADD"
},
{
"pc": 894,
"op": "SWAP2"
},
{
"pc": 895,
"op": "POP"
},
{
"pc": 896,
"op": "DUP1"
},
{
"pc": 897,
"op": "MLOAD"
},
{
"pc": 898,
"op": "SWAP1"
},
{
"pc": 899,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 901,
"op": "ADD"
},
{
"pc": 902,
"op": "SWAP1"
},
{
"pc": 903,
"op": "DUP1"
},
{
"pc": 904,
"op": "DUP4"
},
{
"pc": 905,
"op": "DUP4"
},
{
"pc": 906,
"op": "DUP3"
},
{
"pc": 907,
"op": "SWAP1"
},
{
"pc": 908,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 910,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 912,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 914,
"op": "DUP5"
},
{
"pc": 915,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 917,
"op": "ADD"
},
{
"pc": 918,
"op": "DIV"
},
{
"pc": 919,
"op": "PUSH1",
"arg": "0x0f"
},
{
"pc": 921,
"op": "MUL"
},
{
"pc": 922,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 924,
"op": "ADD"
},
{
"pc": 925,
"op": "CALL"
},
{
"pc": 926,
"op": "POP"
},
{
"pc": 927,
"op": "SWAP1"
},
{
"pc": 928,
"op": "POP"
},
{
"pc": 929,
"op": "SWAP1"
},
{
"pc": 930,
"op": "DUP2"
},
{
"pc": 931,
"op": "ADD"
},
{
"pc": 932,
"op": "SWAP1"
},
{
"pc": 933,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 935,
"op": "AND"
},
{
"pc": 936,
"op": "DUP1"
},
{
"pc": 937,
"op": "ISZERO"
},
{
"pc": 938,
"op": "PUSH2",
"arg": "0x03c7"
},
{
"pc": 941,
"op": "JUMPI"
},
{
"pc": 942,
"op": "DUP1"
},
{
"pc": 943,
"op": "DUP3"
},
{
"pc": 944,
"op": "SUB"
},
{
"pc": 945,
"op": "DUP1"
},
{
"pc": 946,
"op": "MLOAD"
},
{
"pc": 947,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 949,
"op": "DUP4"
},
{
"pc": 950,
"op": "PUSH1",
"arg": "0x20"
}
]
exec
js_repl in /tmp/codex-prbqx98r
succeeded in 2ms:
[
{
"pc": 0,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 2,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 4,
"op": "MSTORE"
},
{
"pc": 5,
"op": "CALLDATASIZE"
},
{
"pc": 6,
"op": "ISZERO"
},
{
"pc": 7,
"op": "PUSH2",
"arg": "0x0077"
},
{
"pc": 10,
"op": "JUMPI"
},
{
"pc": 11,
"op": "PUSH1",
"arg": "0xe0"
},
{
"pc": 13,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 15,
"op": "EXP"
},
{
"pc": 16,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 18,
"op": "CALLDATALOAD"
},
{
"pc": 19,
"op": "DIV"
},
{
"pc": 20,
"op": "PUSH4",
"arg": "0x06fdde03"
},
{
"pc": 25,
"op": "DUP2"
},
{
"pc": 26,
"op": "EQ"
},
{
"pc": 27,
"op": "PUSH2",
"arg": "0x007f"
},
{
"pc": 30,
"op": "JUMPI"
},
{
"pc": 31,
"op": "DUP1"
},
{
"pc": 32,
"op": "PUSH4",
"arg": "0x23b872dd"
},
{
"pc": 37,
"op": "EQ"
},
{
"pc": 38,
"op": "PUSH2",
"arg": "0x00dc"
},
{
"pc": 41,
"op": "JUMPI"
},
{
"pc": 42,
"op": "DUP1"
},
{
"pc": 43,
"op": "PUSH4",
"arg": "0x313ce567"
},
{
"pc": 48,
"op": "EQ"
},
{
"pc": 49,
"op": "PUSH2",
"arg": "0x010e"
},
{
"pc": 52,
"op": "JUMPI"
},
{
"pc": 53,
"op": "DUP1"
},
{
"pc": 54,
"op": "PUSH4",
"arg": "0x70a08231"
},
{
"pc": 59,
"op": "EQ"
},
{
"pc": 60,
"op": "PUSH2",
"arg": "0x011a"
},
{
"pc": 63,
"op": "JUMPI"
},
{
"pc": 64,
"op": "DUP1"
},
{
"pc": 65,
"op": "PUSH4",
"arg": "0x95d89b41"
},
{
"pc": 70,
"op": "EQ"
},
{
"pc": 71,
"op": "PUSH2",
"arg": "0x0132"
},
{
"pc": 74,
"op": "JUMPI"
},
{
"pc": 75,
"op": "DUP1"
},
{
"pc": 76,
"op": "PUSH4",
"arg": "0xa9059cbb"
},
{
"pc": 81,
"op": "EQ"
},
{
"pc": 82,
"op": "PUSH2",
"arg": "0x018e"
},
{
"pc": 85,
"op": "JUMPI"
},
{
"pc": 86,
"op": "DUP1"
},
{
"pc": 87,
"op": "PUSH4",
"arg": "0xcae9ca51"
},
{
"pc": 92,
"op": "EQ"
},
{
"pc": 93,
"op": "PUSH2",
"arg": "0x01bd"
},
{
"pc": 96,
"op": "JUMPI"
},
{
"pc": 97,
"op": "DUP1"
},
{
"pc": 98,
"op": "PUSH4",
"arg": "0xdc3080f2"
},
{
"pc": 103,
"op": "EQ"
},
{
"pc": 104,
"op": "PUSH2",
"arg": "0x031c"
},
{
"pc": 107,
"op": "JUMPI"
},
{
"pc": 108,
"op": "DUP1"
},
{
"pc": 109,
"op": "PUSH4",
"arg": "0xdd62ed3e"
},
{
"pc": 114,
"op": "EQ"
},
{
"pc": 115,
"op": "PUSH2",
"arg": "0x0341"
},
{
"pc": 118,
"op": "JUMPI"
},
{
"pc": 119,
"op": "JUMPDEST"
},
{
"pc": 120,
"op": "PUSH2",
"arg": "0x0365"
},
{
"pc": 123,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 126,
"op": "JUMP"
},
{
"pc": 127,
"op": "JUMPDEST"
},
{
"pc": 128,
"op": "PUSH2",
"arg": "0x0367"
},
{
"pc": 131,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 133,
"op": "DUP1"
},
{
"pc": 134,
"op": "SLOAD"
},
{
"pc": 135,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 137,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 139,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 141,
"op": "DUP4"
},
{
"pc": 142,
"op": "AND"
},
{
"pc": 143,
"op": "ISZERO"
},
{
"pc": 144,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 147,
"op": "MUL"
},
{
"pc": 148,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 150,
"op": "NOT"
},
{
"pc": 151,
"op": "ADD"
},
{
"pc": 152,
"op": "SWAP1"
},
{
"pc": 153,
"op": "SWAP3"
},
{
"pc": 154,
"op": "AND"
},
{
"pc": 155,
"op": "SWAP2"
},
{
"pc": 156,
"op": "SWAP1"
},
{
"pc": 157,
"op": "SWAP2"
},
{
"pc": 158,
"op": "DIV"
},
{
"pc": 159,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 161,
"op": "DUP2"
},
{
"pc": 162,
"op": "ADD"
},
{
"pc": 163,
"op": "DUP3"
},
{
"pc": 164,
"op": "SWAP1"
},
{
"pc": 165,
"op": "DIV"
},
{
"pc": 166,
"op": "SWAP1"
},
{
"pc": 167,
"op": "SWAP2"
},
{
"pc": 168,
"op": "MUL"
},
{
"pc": 169,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 171,
"op": "SWAP1"
},
{
"pc": 172,
"op": "DUP2"
},
{
"pc": 173,
"op": "ADD"
},
{
"pc": 174,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 176,
"op": "MSTORE"
},
{
"pc": 177,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 179,
"op": "DUP3"
},
{
"pc": 180,
"op": "DUP2"
},
{
"pc": 181,
"op": "MSTORE"
},
{
"pc": 182,
"op": "SWAP3"
},
{
"pc": 183,
"op": "SWAP2"
},
{
"pc": 184,
"op": "SWAP1"
},
{
"pc": 185,
"op": "DUP3"
},
{
"pc": 186,
"op": "DUP3"
},
{
"pc": 187,
"op": "DUP1"
},
{
"pc": 188,
"op": "ISZERO"
},
{
"pc": 189,
"op": "PUSH2",
"arg": "0x041c"
},
{
"pc": 192,
"op": "JUMPI"
},
{
"pc": 193,
"op": "DUP1"
},
{
"pc": 194,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 196,
"op": "LT"
},
{
"pc": 197,
"op": "PUSH2",
"arg": "0x03f1"
},
{
"pc": 200,
"op": "JUMPI"
},
{
"pc": 201,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 204,
"op": "DUP1"
},
{
"pc": 205,
"op": "DUP4"
},
{
"pc": 206,
"op": "SLOAD"
},
{
"pc": 207,
"op": "DIV"
},
{
"pc": 208,
"op": "MUL"
},
{
"pc": 209,
"op": "DUP4"
},
{
"pc": 210,
"op": "MSTORE"
},
{
"pc": 211,
"op": "SWAP2"
},
{
"pc": 212,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 214,
"op": "ADD"
},
{
"pc": 215,
"op": "SWAP2"
},
{
"pc": 216,
"op": "PUSH2",
"arg": "0x041c"
},
{
"pc": 219,
"op": "JUMP"
},
{
"pc": 220,
"op": "JUMPDEST"
},
{
"pc": 221,
"op": "PUSH2",
"arg": "0x03d5"
},
{
"pc": 224,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 226,
"op": "CALLDATALOAD"
},
{
"pc": 227,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 229,
"op": "CALLDATALOAD"
},
{
"pc": 230,
"op": "PUSH1",
"arg": "0x44"
},
{
"pc": 232,
"op": "CALLDATALOAD"
},
{
"pc": 233,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 235,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 237,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 239,
"op": "EXP"
},
{
"pc": 240,
"op": "SUB"
},
{
"pc": 241,
"op": "DUP4"
},
{
"pc": 242,
"op": "AND"
},
{
"pc": 243,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 245,
"op": "SWAP1"
},
{
"pc": 246,
"op": "DUP2"
},
{
"pc": 247,
"op": "MSTORE"
},
{
"pc": 248,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 250,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 252,
"op": "MSTORE"
},
{
"pc": 253,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 255,
"op": "DUP2"
},
{
"pc": 256,
"op": "SHA3"
},
{
"pc": 257,
"op": "SLOAD"
},
{
"pc": 258,
"op": "DUP3"
},
{
"pc": 259,
"op": "SWAP1"
},
{
"pc": 260,
"op": "LT"
},
{
"pc": 261,
"op": "ISZERO"
},
{
"pc": 262,
"op": "PUSH2",
"arg": "0x04f3"
},
{
"pc": 265,
"op": "JUMPI"
},
{
"pc": 266,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 269,
"op": "JUMP"
},
{
"pc": 270,
"op": "JUMPDEST"
},
{
"pc": 271,
"op": "PUSH2",
"arg": "0x03e7"
},
{
"pc": 274,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 276,
"op": "SLOAD"
},
{
"pc": 277,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 279,
"op": "AND"
},
{
"pc": 280,
"op": "DUP2"
},
{
"pc": 281,
"op": "JUMP"
},
{
"pc": 282,
"op": "JUMPDEST"
},
{
"pc": 283,
"op": "PUSH2",
"arg": "0x03d5"
},
{
"pc": 286,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 288,
"op": "CALLDATALOAD"
},
{
"pc": 289,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 291,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 293,
"op": "MSTORE"
},
{
"pc": 294,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 296,
"op": "SWAP1"
},
{
"pc": 297,
"op": "DUP2"
},
{
"pc": 298,
"op": "MSTORE"
},
{
"pc": 299,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 301,
"op": "SWAP1"
},
{
"pc": 302,
"op": "SHA3"
},
{
"pc": 303,
"op": "SLOAD"
},
{
"pc": 304,
"op": "DUP2"
},
{
"pc": 305,
"op": "JUMP"
},
{
"pc": 306,
"op": "JUMPDEST"
},
{
"pc": 307,
"op": "PUSH2",
"arg": "0x0367"
},
{
"pc": 310,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 312,
"op": "DUP1"
},
{
"pc": 313,
"op": "SLOAD"
},
{
"pc": 314,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 316,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 318,
"op": "DUP3"
},
{
"pc": 319,
"op": "DUP5"
},
{
"pc": 320,
"op": "AND"
},
{
"pc": 321,
"op": "ISZERO"
},
{
"pc": 322,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 325,
"op": "MUL"
},
{
"pc": 326,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 328,
"op": "NOT"
},
{
"pc": 329,
"op": "ADD"
},
{
"pc": 330,
"op": "SWAP1"
},
{
"pc": 331,
"op": "SWAP3"
},
{
"pc": 332,
"op": "AND"
},
{
"pc": 333,
"op": "SWAP2"
},
{
"pc": 334,
"op": "SWAP1"
},
{
"pc": 335,
"op": "SWAP2"
},
{
"pc": 336,
"op": "DIV"
},
{
"pc": 337,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 339,
"op": "DUP2"
},
{
"pc": 340,
"op": "ADD"
},
{
"pc": 341,
"op": "DUP3"
},
{
"pc": 342,
"op": "SWAP1"
},
{
"pc": 343,
"op": "DIV"
},
{
"pc": 344,
"op": "SWAP1"
},
{
"pc": 345,
"op": "SWAP2"
},
{
"pc": 346,
"op": "MUL"
},
{
"pc": 347,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 349,
"op": "SWAP1"
},
{
"pc": 350,
"op": "DUP2"
},
{
"pc": 351,
"op": "ADD"
},
{
"pc": 352,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 354,
"op": "MSTORE"
},
{
"pc": 355,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 357,
"op": "DUP3"
},
{
"pc": 358,
"op": "DUP2"
},
{
"pc": 359,
"op": "MSTORE"
},
{
"pc": 360,
"op": "SWAP3"
},
{
"pc": 361,
"op": "SWAP2"
},
{
"pc": 362,
"op": "SWAP1"
},
{
"pc": 363,
"op": "DUP3"
},
{
"pc": 364,
"op": "DUP3"
},
{
"pc": 365,
"op": "DUP1"
},
{
"pc": 366,
"op": "ISZERO"
},
{
"pc": 367,
"op": "PUSH2",
"arg": "0x041c"
},
{
"pc": 370,
"op": "JUMPI"
},
{
"pc": 371,
"op": "DUP1"
},
{
"pc": 372,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 374,
"op": "LT"
},
{
"pc": 375,
"op": "PUSH2",
"arg": "0x03f1"
},
{
"pc": 378,
"op": "JUMPI"
},
{
"pc": 379,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 382,
"op": "DUP1"
},
{
"pc": 383,
"op": "DUP4"
},
{
"pc": 384,
"op": "SLOAD"
},
{
"pc": 385,
"op": "DIV"
},
{
"pc": 386,
"op": "MUL"
},
{
"pc": 387,
"op": "DUP4"
},
{
"pc": 388,
"op": "MSTORE"
},
{
"pc": 389,
"op": "SWAP2"
},
{
"pc": 390,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 392,
"op": "ADD"
},
{
"pc": 393,
"op": "SWAP2"
},
{
"pc": 394,
"op": "PUSH2",
"arg": "0x041c"
},
{
"pc": 397,
"op": "JUMP"
},
{
"pc": 398,
"op": "JUMPDEST"
},
{
"pc": 399,
"op": "PUSH2",
"arg": "0x0365"
},
{
"pc": 402,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 404,
"op": "CALLDATALOAD"
},
{
"pc": 405,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 407,
"op": "CALLDATALOAD"
},
{
"pc": 408,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 410,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 412,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 414,
"op": "EXP"
},
{
"pc": 415,
"op": "SUB"
},
{
"pc": 416,
"op": "CALLER"
},
{
"pc": 417,
"op": "AND"
},
{
"pc": 418,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 420,
"op": "SWAP1"
},
{
"pc": 421,
"op": "DUP2"
},
{
"pc": 422,
"op": "MSTORE"
},
{
"pc": 423,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 425,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 427,
"op": "MSTORE"
},
{
"pc": 428,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 430,
"op": "SWAP1"
}
]
exec
js_repl in /tmp/codex-prbqx98r
succeeded in 1ms:
[
{
"pc": 950,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 952,
"op": "SUB"
},
{
"pc": 953,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 956,
"op": "EXP"
},
{
"pc": 957,
"op": "SUB"
},
{
"pc": 958,
"op": "NOT"
},
{
"pc": 959,
"op": "AND"
},
{
"pc": 960,
"op": "DUP2"
},
{
"pc": 961,
"op": "MSTORE"
},
{
"pc": 962,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 964,
"op": "ADD"
},
{
"pc": 965,
"op": "SWAP2"
},
{
"pc": 966,
"op": "POP"
},
{
"pc": 967,
"op": "JUMPDEST"
},
{
"pc": 968,
"op": "POP"
},
{
"pc": 969,
"op": "SWAP3"
},
{
"pc": 970,
"op": "POP"
},
{
"pc": 971,
"op": "POP"
},
{
"pc": 972,
"op": "POP"
},
{
"pc": 973,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 975,
"op": "MLOAD"
},
{
"pc": 976,
"op": "DUP1"
},
{
"pc": 977,
"op": "SWAP2"
},
{
"pc": 978,
"op": "SUB"
},
{
"pc": 979,
"op": "SWAP1"
},
{
"pc": 980,
"op": "RETURN"
},
{
"pc": 981,
"op": "JUMPDEST"
},
{
"pc": 982,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 984,
"op": "DUP1"
},
{
"pc": 985,
"op": "MLOAD"
},
{
"pc": 986,
"op": "SWAP2"
},
{
"pc": 987,
"op": "DUP3"
},
{
"pc": 988,
"op": "MSTORE"
},
{
"pc": 989,
"op": "MLOAD"
},
{
"pc": 990,
"op": "SWAP1"
},
{
"pc": 991,
"op": "DUP2"
},
{
"pc": 992,
"op": "SWAP1"
},
{
"pc": 993,
"op": "SUB"
},
{
"pc": 994,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 996,
"op": "ADD"
},
{
"pc": 997,
"op": "SWAP1"
},
{
"pc": 998,
"op": "RETURN"
},
{
"pc": 999,
"op": "JUMPDEST"
},
{
"pc": 1000,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 1002,
"op": "SWAP1"
},
{
"pc": 1003,
"op": "DUP2"
},
{
"pc": 1004,
"op": "MSTORE"
},
{
"pc": 1005,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1007,
"op": "SWAP1"
},
{
"pc": 1008,
"op": "RETURN"
},
{
"pc": 1009,
"op": "JUMPDEST"
},
{
"pc": 1010,
"op": "DUP3"
},
{
"pc": 1011,
"op": "ADD"
},
{
"pc": 1012,
"op": "SWAP2"
},
{
"pc": 1013,
"op": "SWAP1"
},
{
"pc": 1014,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1016,
"op": "MSTORE"
},
{
"pc": 1017,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1019,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1021,
"op": "SHA3"
},
{
"pc": 1022,
"op": "SWAP1"
},
{
"pc": 1023,
"op": "JUMPDEST"
},
{
"pc": 1024,
"op": "DUP2"
},
{
"pc": 1025,
"op": "SLOAD"
},
{
"pc": 1026,
"op": "DUP2"
},
{
"pc": 1027,
"op": "MSTORE"
},
{
"pc": 1028,
"op": "SWAP1"
},
{
"pc": 1029,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1031,
"op": "ADD"
},
{
"pc": 1032,
"op": "SWAP1"
},
{
"pc": 1033,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1035,
"op": "ADD"
},
{
"pc": 1036,
"op": "DUP1"
},
{
"pc": 1037,
"op": "DUP4"
},
{
"pc": 1038,
"op": "GT"
},
{
"pc": 1039,
"op": "PUSH2",
"arg": "0x03ff"
},
{
"pc": 1042,
"op": "JUMPI"
},
{
"pc": 1043,
"op": "DUP3"
},
{
"pc": 1044,
"op": "SWAP1"
},
{
"pc": 1045,
"op": "SUB"
},
{
"pc": 1046,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 1048,
"op": "AND"
},
{
"pc": 1049,
"op": "DUP3"
},
{
"pc": 1050,
"op": "ADD"
},
{
"pc": 1051,
"op": "SWAP2"
},
{
"pc": 1052,
"op": "JUMPDEST"
},
{
"pc": 1053,
"op": "POP"
},
{
"pc": 1054,
"op": "POP"
},
{
"pc": 1055,
"op": "POP"
},
{
"pc": 1056,
"op": "POP"
},
{
"pc": 1057,
"op": "POP"
},
{
"pc": 1058,
"op": "DUP2"
},
{
"pc": 1059,
"op": "JUMP"
},
{
"pc": 1060,
"op": "JUMPDEST"
},
{
"pc": 1061,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1063,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1065,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1067,
"op": "EXP"
},
{
"pc": 1068,
"op": "SUB"
},
{
"pc": 1069,
"op": "DUP3"
},
{
"pc": 1070,
"op": "AND"
},
{
"pc": 1071,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1073,
"op": "SWAP1"
},
{
"pc": 1074,
"op": "DUP2"
},
{
"pc": 1075,
"op": "MSTORE"
},
{
"pc": 1076,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1078,
"op": "SWAP1"
},
{
"pc": 1079,
"op": "SHA3"
},
{
"pc": 1080,
"op": "SLOAD"
},
{
"pc": 1081,
"op": "DUP1"
},
{
"pc": 1082,
"op": "DUP3"
},
{
"pc": 1083,
"op": "ADD"
},
{
"pc": 1084,
"op": "LT"
},
{
"pc": 1085,
"op": "ISZERO"
},
{
"pc": 1086,
"op": "PUSH2",
"arg": "0x0446"
},
{
"pc": 1089,
"op": "JUMPI"
},
{
"pc": 1090,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1093,
"op": "JUMP"
},
{
"pc": 1094,
"op": "JUMPDEST"
},
{
"pc": 1095,
"op": "DUP1"
},
{
"pc": 1096,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1098,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1100,
"op": "POP"
},
{
"pc": 1101,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1103,
"op": "CALLER"
},
{
"pc": 1104,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1106,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1108,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1110,
"op": "EXP"
},
{
"pc": 1111,
"op": "SUB"
},
{
"pc": 1112,
"op": "AND"
},
{
"pc": 1113,
"op": "DUP2"
},
{
"pc": 1114,
"op": "MSTORE"
},
{
"pc": 1115,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1117,
"op": "ADD"
},
{
"pc": 1118,
"op": "SWAP1"
},
{
"pc": 1119,
"op": "DUP2"
},
{
"pc": 1120,
"op": "MSTORE"
},
{
"pc": 1121,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1123,
"op": "ADD"
},
{
"pc": 1124,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1126,
"op": "SHA3"
},
{
"pc": 1127,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1129,
"op": "DUP3"
},
{
"pc": 1130,
"op": "DUP3"
},
{
"pc": 1131,
"op": "DUP3"
},
{
"pc": 1132,
"op": "POP"
},
{
"pc": 1133,
"op": "SLOAD"
},
{
"pc": 1134,
"op": "SUB"
},
{
"pc": 1135,
"op": "SWAP3"
},
{
"pc": 1136,
"op": "POP"
},
{
"pc": 1137,
"op": "POP"
},
{
"pc": 1138,
"op": "DUP2"
},
{
"pc": 1139,
"op": "SWAP1"
},
{
"pc": 1140,
"op": "SSTORE"
},
{
"pc": 1141,
"op": "POP"
},
{
"pc": 1142,
"op": "DUP1"
},
{
"pc": 1143,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1145,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1147,
"op": "POP"
},
{
"pc": 1148,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1150,
"op": "DUP5"
},
{
"pc": 1151,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1153,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1155,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1157,
"op": "EXP"
},
{
"pc": 1158,
"op": "SUB"
},
{
"pc": 1159,
"op": "AND"
},
{
"pc": 1160,
"op": "DUP2"
},
{
"pc": 1161,
"op": "MSTORE"
},
{
"pc": 1162,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1164,
"op": "ADD"
},
{
"pc": 1165,
"op": "SWAP1"
},
{
"pc": 1166,
"op": "DUP2"
},
{
"pc": 1167,
"op": "MSTORE"
},
{
"pc": 1168,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1170,
"op": "ADD"
},
{
"pc": 1171,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1173,
"op": "SHA3"
},
{
"pc": 1174,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1176,
"op": "DUP3"
},
{
"pc": 1177,
"op": "DUP3"
},
{
"pc": 1178,
"op": "DUP3"
},
{
"pc": 1179,
"op": "POP"
},
{
"pc": 1180,
"op": "SLOAD"
},
{
"pc": 1181,
"op": "ADD"
},
{
"pc": 1182,
"op": "SWAP3"
},
{
"pc": 1183,
"op": "POP"
},
{
"pc": 1184,
"op": "POP"
},
{
"pc": 1185,
"op": "DUP2"
},
{
"pc": 1186,
"op": "SWAP1"
},
{
"pc": 1187,
"op": "SSTORE"
},
{
"pc": 1188,
"op": "POP"
},
{
"pc": 1189,
"op": "DUP2"
},
{
"pc": 1190,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1192,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1194,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1196,
"op": "EXP"
},
{
"pc": 1197,
"op": "SUB"
},
{
"pc": 1198,
"op": "AND"
},
{
"pc": 1199,
"op": "CALLER"
},
{
"pc": 1200,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1202,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1204,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1206,
"op": "EXP"
},
{
"pc": 1207,
"op": "SUB"
},
{
"pc": 1208,
"op": "AND"
},
{
"pc": 1209,
"op": "PUSH32",
"arg": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
},
{
"pc": 1242,
"op": "DUP4"
},
{
"pc": 1243,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1245,
"op": "MLOAD"
},
{
"pc": 1246,
"op": "DUP1"
},
{
"pc": 1247,
"op": "DUP3"
},
{
"pc": 1248,
"op": "DUP2"
},
{
"pc": 1249,
"op": "MSTORE"
},
{
"pc": 1250,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1252,
"op": "ADD"
},
{
"pc": 1253,
"op": "SWAP2"
},
{
"pc": 1254,
"op": "POP"
},
{
"pc": 1255,
"op": "POP"
},
{
"pc": 1256,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1258,
"op": "MLOAD"
},
{
"pc": 1259,
"op": "DUP1"
},
{
"pc": 1260,
"op": "SWAP2"
},
{
"pc": 1261,
"op": "SUB"
},
{
"pc": 1262,
"op": "SWAP1"
},
{
"pc": 1263,
"op": "LOG3"
},
{
"pc": 1264,
"op": "POP"
},
{
"pc": 1265,
"op": "POP"
},
{
"pc": 1266,
"op": "JUMP"
},
{
"pc": 1267,
"op": "JUMPDEST"
},
{
"pc": 1268,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1270,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1272,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1274,
"op": "EXP"
},
{
"pc": 1275,
"op": "SUB"
},
{
"pc": 1276,
"op": "DUP4"
},
{
"pc": 1277,
"op": "AND"
},
{
"pc": 1278,
"op": "DUP2"
},
{
"pc": 1279,
"op": "MSTORE"
},
{
"pc": 1280,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1282,
"op": "DUP2"
},
{
"pc": 1283,
"op": "SHA3"
},
{
"pc": 1284,
"op": "SLOAD"
},
{
"pc": 1285,
"op": "DUP1"
},
{
"pc": 1286,
"op": "DUP4"
},
{
"pc": 1287,
"op": "ADD"
},
{
"pc": 1288,
"op": "LT"
},
{
"pc": 1289,
"op": "ISZERO"
},
{
"pc": 1290,
"op": "PUSH2",
"arg": "0x0512"
},
{
"pc": 1293,
"op": "JUMPI"
},
{
"pc": 1294,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1297,
"op": "JUMP"
},
{
"pc": 1298,
"op": "JUMPDEST"
},
{
"pc": 1299,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1301,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1303,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1305,
"op": "EXP"
},
{
"pc": 1306,
"op": "SUB"
},
{
"pc": 1307,
"op": "DUP1"
},
{
"pc": 1308,
"op": "DUP6"
},
{
"pc": 1309,
"op": "AND"
},
{
"pc": 1310,
"op": "DUP1"
},
{
"pc": 1311,
"op": "DUP4"
},
{
"pc": 1312,
"op": "MSTORE"
},
{
"pc": 1313,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 1315,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1317,
"op": "SWAP1"
},
{
"pc": 1318,
"op": "DUP2"
},
{
"pc": 1319,
"op": "MSTORE"
},
{
"pc": 1320,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1322,
"op": "DUP1"
},
{
"pc": 1323,
"op": "DUP6"
},
{
"pc": 1324,
"op": "SHA3"
},
{
"pc": 1325,
"op": "CALLER"
},
{
"pc": 1326,
"op": "SWAP5"
},
{
"pc": 1327,
"op": "SWAP1"
},
{
"pc": 1328,
"op": "SWAP5"
},
{
"pc": 1329,
"op": "AND"
},
{
"pc": 1330,
"op": "DUP1"
},
{
"pc": 1331,
"op": "DUP7"
},
{
"pc": 1332,
"op": "MSTORE"
},
{
"pc": 1333,
"op": "SWAP4"
},
{
"pc": 1334,
"op": "DUP3"
},
{
"pc": 1335,
"op": "MSTORE"
},
{
"pc": 1336,
"op": "DUP1"
},
{
"pc": 1337,
"op": "DUP6"
},
{
"pc": 1338,
"op": "SHA3"
},
{
"pc": 1339,
"op": "SLOAD"
},
{
"pc": 1340,
"op": "SWAP3"
},
{
"pc": 1341,
"op": "DUP6"
},
{
"pc": 1342,
"op": "MSTORE"
},
{
"pc": 1343,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1345,
"op": "DUP3"
},
{
"pc": 1346,
"op": "MSTORE"
},
{
"pc": 1347,
"op": "DUP1"
},
{
"pc": 1348,
"op": "DUP6"
},
{
"pc": 1349,
"op": "SHA3"
},
{
"pc": 1350,
"op": "SWAP4"
},
{
"pc": 1351,
"op": "DUP6"
},
{
"pc": 1352,
"op": "MSTORE"
},
{
"pc": 1353,
"op": "SWAP3"
},
{
"pc": 1354,
"op": "SWAP1"
},
{
"pc": 1355,
"op": "MSTORE"
},
{
"pc": 1356,
"op": "SWAP1"
},
{
"pc": 1357,
"op": "DUP3"
},
{
"pc": 1358,
"op": "SHA3"
},
{
"pc": 1359,
"op": "SLOAD"
},
{
"pc": 1360,
"op": "DUP4"
},
{
"pc": 1361,
"op": "ADD"
},
{
"pc": 1362,
"op": "GT"
},
{
"pc": 1363,
"op": "ISZERO"
},
{
"pc": 1364,
"op": "PUSH2",
"arg": "0x055c"
},
{
"pc": 1367,
"op": "JUMPI"
},
{
"pc": 1368,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1371,
"op": "JUMP"
},
{
"pc": 1372,
"op": "JUMPDEST"
},
{
"pc": 1373,
"op": "DUP2"
},
{
"pc": 1374,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1376,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1378,
"op": "POP"
},
{
"pc": 1379,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1381,
"op": "DUP7"
},
{
"pc": 1382,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1384,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1386,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1388,
"op": "EXP"
},
{
"pc": 1389,
"op": "SUB"
},
{
"pc": 1390,
"op": "AND"
},
{
"pc": 1391,
"op": "DUP2"
},
{
"pc": 1392,
"op": "MSTORE"
},
{
"pc": 1393,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1395,
"op": "ADD"
},
{
"pc": 1396,
"op": "SWAP1"
},
{
"pc": 1397,
"op": "DUP2"
},
{
"pc": 1398,
"op": "MSTORE"
},
{
"pc": 1399,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1401,
"op": "ADD"
},
{
"pc": 1402,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1404,
"op": "SHA3"
},
{
"pc": 1405,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1407,
"op": "DUP3"
},
{
"pc": 1408,
"op": "DUP3"
},
{
"pc": 1409,
"op": "DUP3"
},
{
"pc": 1410,
"op": "POP"
},
{
"pc": 1411,
"op": "SLOAD"
},
{
"pc": 1412,
"op": "SUB"
},
{
"pc": 1413,
"op": "SWAP3"
},
{
"pc": 1414,
"op": "POP"
},
{
"pc": 1415,
"op": "POP"
},
{
"pc": 1416,
"op": "DUP2"
},
{
"pc": 1417,
"op": "SWAP1"
},
{
"pc": 1418,
"op": "SSTORE"
},
{
"pc": 1419,
"op": "POP"
},
{
"pc": 1420,
"op": "DUP2"
},
{
"pc": 1421,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1423,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1425,
"op": "POP"
},
{
"pc": 1426,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1428,
"op": "DUP6"
},
{
"pc": 1429,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1431,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1433,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1435,
"op": "EXP"
},
{
"pc": 1436,
"op": "SUB"
},
{
"pc": 1437,
"op": "AND"
},
{
"pc": 1438,
"op": "DUP2"
},
{
"pc": 1439,
"op": "MSTORE"
},
{
"pc": 1440,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1442,
"op": "ADD"
},
{
"pc": 1443,
"op": "SWAP1"
},
{
"pc": 1444,
"op": "DUP2"
},
{
"pc": 1445,
"op": "MSTORE"
},
{
"pc": 1446,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1448,
"op": "ADD"
},
{
"pc": 1449,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1451,
"op": "SHA3"
},
{
"pc": 1452,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1454,
"op": "DUP3"
},
{
"pc": 1455,
"op": "DUP3"
},
{
"pc": 1456,
"op": "DUP3"
},
{
"pc": 1457,
"op": "POP"
},
{
"pc": 1458,
"op": "SLOAD"
},
{
"pc": 1459,
"op": "ADD"
},
{
"pc": 1460,
"op": "SWAP3"
},
{
"pc": 1461,
"op": "POP"
},
{
"pc": 1462,
"op": "POP"
},
{
"pc": 1463,
"op": "DUP2"
},
{
"pc": 1464,
"op": "SWAP1"
},
{
"pc": 1465,
"op": "SSTORE"
},
{
"pc": 1466,
"op": "POP"
},
{
"pc": 1467,
"op": "DUP2"
},
{
"pc": 1468,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1470,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1472,
"op": "POP"
},
{
"pc": 1473,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1475,
"op": "DUP7"
},
{
"pc": 1476,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1478,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1480,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1482,
"op": "EXP"
},
{
"pc": 1483,
"op": "SUB"
},
{
"pc": 1484,
"op": "AND"
},
{
"pc": 1485,
"op": "DUP2"
},
{
"pc": 1486,
"op": "MSTORE"
},
{
"pc": 1487,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1489,
"op": "ADD"
},
{
"pc": 1490,
"op": "SWAP1"
},
{
"pc": 1491,
"op": "DUP2"
},
{
"pc": 1492,
"op": "MSTORE"
},
{
"pc": 1493,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1495,
"op": "ADD"
},
{
"pc": 1496,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1498,
"op": "SHA3"
},
{
"pc": 1499,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1501,
"op": "POP"
},
{
"pc": 1502,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1504,
"op": "CALLER"
},
{
"pc": 1505,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1507,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1509,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1511,
"op": "EXP"
},
{
"pc": 1512,
"op": "SUB"
},
{
"pc": 1513,
"op": "AND"
},
{
"pc": 1514,
"op": "DUP2"
},
{
"pc": 1515,
"op": "MSTORE"
},
{
"pc": 1516,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1518,
"op": "ADD"
},
{
"pc": 1519,
"op": "SWAP1"
},
{
"pc": 1520,
"op": "DUP2"
},
{
"pc": 1521,
"op": "MSTORE"
},
{
"pc": 1522,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1524,
"op": "ADD"
},
{
"pc": 1525,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1527,
"op": "SHA3"
},
{
"pc": 1528,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1530,
"op": "DUP3"
},
{
"pc": 1531,
"op": "DUP3"
},
{
"pc": 1532,
"op": "DUP3"
},
{
"pc": 1533,
"op": "POP"
},
{
"pc": 1534,
"op": "SLOAD"
},
{
"pc": 1535,
"op": "ADD"
},
{
"pc": 1536,
"op": "SWAP3"
},
{
"pc": 1537,
"op": "POP"
},
{
"pc": 1538,
"op": "POP"
},
{
"pc": 1539,
"op": "DUP2"
},
{
"pc": 1540,
"op": "SWAP1"
},
{
"pc": 1541,
"op": "SSTORE"
},
{
"pc": 1542,
"op": "POP"
},
{
"pc": 1543,
"op": "DUP3"
},
{
"pc": 1544,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1546,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1548,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1550,
"op": "EXP"
},
{
"pc": 1551,
"op": "SUB"
},
{
"pc": 1552,
"op": "AND"
},
{
"pc": 1553,
"op": "CALLER"
},
{
"pc": 1554,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1556,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1558,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1560,
"op": "EXP"
},
{
"pc": 1561,
"op": "SUB"
},
{
"pc": 1562,
"op": "AND"
},
{
"pc": 1563,
"op": "PUSH32",
"arg": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
},
{
"pc": 1596,
"op": "DUP5"
},
{
"pc": 1597,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1599,
"op": "MLOAD"
},
{
"pc": 1600,
"op": "DUP1"
},
{
"pc": 1601,
"op": "DUP3"
},
{
"pc": 1602,
"op": "DUP2"
},
{
"pc": 1603,
"op": "MSTORE"
},
{
"pc": 1604,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1606,
"op": "ADD"
},
{
"pc": 1607,
"op": "SWAP2"
},
{
"pc": 1608,
"op": "POP"
},
{
"pc": 1609,
"op": "POP"
},
{
"pc": 1610,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1612,
"op": "MLOAD"
},
{
"pc": 1613,
"op": "DUP1"
},
{
"pc": 1614,
"op": "SWAP2"
},
{
"pc": 1615,
"op": "SUB"
},
{
"pc": 1616,
"op": "SWAP1"
},
{
"pc": 1617,
"op": "LOG3"
},
{
"pc": 1618,
"op": "SWAP4"
},
{
"pc": 1619,
"op": "SWAP3"
},
{
"pc": 1620,
"op": "POP"
},
{
"pc": 1621,
"op": "POP"
},
{
"pc": 1622,
"op": "POP"
},
{
"pc": 1623,
"op": "JUMP"
}
]
exec
js_repl in /tmp/codex-prbqx98r
succeeded in 10ms:
220 JUMPDEST => ["JUMPDEST?"]
221 PUSH2 0x03d5 => ["JUMPDEST?","0x03d5"]
224 PUSH1 0x04 => ["JUMPDEST?","0x03d5","0x04"]
226 CALLDATALOAD => ["JUMPDEST?","0x03d5","cd[0x04]"]
227 PUSH1 0x24 => ["JUMPDEST?","0x03d5","cd[0x04]","0x24"]
229 CALLDATALOAD => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]"]
230 PUSH1 0x44 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","0x44"]
232 CALLDATALOAD => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]"]
233 PUSH1 0x01 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x01"]
235 PUSH1 0xa0 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x01","0xa0"]
237 PUSH1 0x02 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x01","0xa0","0x02"]
239 EXP => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x01","(0xa0**0x02)"]
240 SUB => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","(0x01-(0xa0**0x02))"]
241 DUP4 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","(0x01-(0xa0**0x02))","cd[0x04]"]
242 AND => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","((0x01-(0xa0**0x02))&cd[0x04])"]
243 PUSH1 0x00 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","((0x01-(0xa0**0x02))&cd[0x04])","0x00"]
245 SWAP1 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","((0x01-(0xa0**0x02))&cd[0x04])"]
246 DUP2 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","((0x01-(0xa0**0x02))&cd[0x04])","0x00"]
247 MSTORE => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00"]
248 PUSH1 0x03 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","0x03"]
250 PUSH1 0x20 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","0x03","0x20"]
252 MSTORE => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00"]
253 PUSH1 0x40 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","0x40"]
255 DUP2 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","0x40","0x00"]
256 SHA3 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","keccak(0x40,0x00)"]
257 SLOAD => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","s[keccak(0x40,0x00)]"]
258 DUP3 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","s[keccak(0x40,0x00)]","cd[0x44]"]
259 SWAP1 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","cd[0x44]","s[keccak(0x40,0x00)]"]
260 LT => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","(cd[0x44]<s[keccak(0x40,0x00)])"]
261 ISZERO => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","iszero((cd[0x44]<s[keccak(0x40,0x00)]))"]
262 PUSH2 0x04f3 => ["JUMPDEST?","0x03d5","cd[0x04]","cd[0x24]","cd[0x44]","0x00","iszero((cd[0x44]<s[keccak(0x40,0x00)]))","0x04f3"]
{
pc: 265,
name: 'JUMPI',
arg: null,
before: [
'JUMPDEST?',
'0x03d5',
'cd[0x04]',
'cd[0x24]',
'cd[0x44]',
'0x00',
'iszero((cd[0x44]<s[keccak(0x40,0x00)]))',
'0x04f3'
],
after: [ 'JUMPDEST?', '0x03d5', 'cd[0x04]', 'cd[0x24]', 'cd[0x44]', '0x00' ],
jump: '0x04f3',
cond: 'iszero((cd[0x44]<s[keccak(0x40,0x00)]))'
}
exec
js_repl in /tmp/codex-prbqx98r
succeeded in 1ms:
398 JUMPDEST => ["JUMPDEST?"]
399 PUSH2 0x0365 => ["JUMPDEST?","0x0365"]
402 PUSH1 0x04 => ["JUMPDEST?","0x0365","0x04"]
404 CALLDATALOAD => ["JUMPDEST?","0x0365","cd[0x04]"]
405 PUSH1 0x24 => ["JUMPDEST?","0x0365","cd[0x04]","0x24"]
407 CALLDATALOAD => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]"]
408 PUSH1 0x01 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x01"]
410 PUSH1 0xa0 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x01","0xa0"]
412 PUSH1 0x02 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x01","0xa0","0x02"]
414 EXP => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x01","(0xa0**0x02)"]
415 SUB => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","(0x01-(0xa0**0x02))"]
416 CALLER => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","(0x01-(0xa0**0x02))","caller"]
417 AND => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","((0x01-(0xa0**0x02))&caller)"]
418 PUSH1 0x00 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","((0x01-(0xa0**0x02))&caller)","0x00"]
420 SWAP1 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00","((0x01-(0xa0**0x02))&caller)"]
421 DUP2 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00","((0x01-(0xa0**0x02))&caller)","0x00"]
422 MSTORE => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00"]
423 PUSH1 0x03 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00","0x03"]
425 PUSH1 0x20 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00","0x03","0x20"]
427 MSTORE => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00"]
428 PUSH1 0x40 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x00","0x40"]
430 SWAP1 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","0x40","0x00"]
431 SHA3 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","keccak(0x40,0x00)"]
432 SLOAD => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","s[keccak(0x40,0x00)]"]
433 DUP2 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","s[keccak(0x40,0x00)]","cd[0x24]"]
434 SWAP1 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","cd[0x24]","s[keccak(0x40,0x00)]"]
435 LT => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","(cd[0x24]<s[keccak(0x40,0x00)])"]
436 ISZERO => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","iszero((cd[0x24]<s[keccak(0x40,0x00)]))"]
437 PUSH2 0x0424 => ["JUMPDEST?","0x0365","cd[0x04]","cd[0x24]","iszero((cd[0x24]<s[keccak(0x40,0x00)]))","0x0424"]
{
pc: 440,
name: 'JUMPI',
arg: null,
before: [
'JUMPDEST?',
'0x0365',
'cd[0x04]',
'cd[0x24]',
'iszero((cd[0x24]<s[keccak(0x40,0x00)]))',
'0x0424'
],
after: [ 'JUMPDEST?', '0x0365', 'cd[0x04]', 'cd[0x24]' ],
jump: '0x0424',
cond: 'iszero((cd[0x24]<s[keccak(0x40,0x00)]))'
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.functions' BYTECODE_BUNDLE.json" in /tmp/codex-prbqx98r
succeeded in 0ms:
[
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x06fdde03",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 826074471,
"selector": "0x23b872dd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1889567281,
"selector": "0x313ce567",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2514000705,
"selector": "0x70a08231",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2835717307,
"selector": "0x95d89b41",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3404319313,
"selector": "0xa9059cbb",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3694166258,
"selector": "0xcae9ca51",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3714247998,
"selector": "0xdc3080f2",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 869,
"selector": "0xdd62ed3e",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 20,
"slots": [
{
"op": "SLOAD",
"pc": 134,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 206,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 276,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 313,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 384,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
}
]
codex
{"no_findings":false,"summary":"Runtime bytecode matches a legacy ERC20-like token with an extra hook-enabled transfer path and no proxy/delegatecall logic. The strongest bytecode-level risks are a user-controlled external callback reachable from selector 0xcae9ca51 and non-standard delegated-spend accounting around selectors 0x23b872dd/0xdd62ed3e. Because this is bytecode-only analysis, selector intent and storage-role names remain inferred rather than proven.","findings":[{"severity":"medium","category":"auth","title":"`transferFrom` authorization appears non-standard and likely irrevocable","exploit_scenario":"A wallet or dApp treats this contract as a standard ERC20 because it exposes `transferFrom(address,address,uint256)` and `allowance(address,address)`. However, the runtime never exposes an `approve`-like selector and the `transferFrom` path appears to compare two different nested mappings, then increment only one of them after spending. If constructor-seeded spending rights exist, the owner may have no runtime way to revoke them; if integrators rely on `allowance()` as remaining spendable amount, they can overestimate available authorization and build unsafe flows around stale approvals.","recommendation":"Do not integrate this token as a standard ERC20 allowance model without validating the constructor and any off-bytecode setup. If the design is intentional, document that `allowance()` is not a remaining allowance and expose an explicit revocation/update path. Otherwise, add a standard `approve`/decrementing allowance mechanism and ensure `allowance(owner,spender)` reflects remaining spendable authorization.","evidence":"Selector `0xdd62ed3e` reads a slot-4 two-key mapping at pc 0x341-0x35e, but no runtime selector resembling `0x095ea7b3` is present and no runtime write to that slot family was identified. In `transferFrom` (`0x23b872dd`), the bytecode checks one nested mapping rooted at slot 4 and another rooted at slot 5 around pc 0x521-0x557, then later updates only the slot-5 rooted mapping at pc 0x5bb-0x605. This is inconsistent with standard ERC20 behavior where `allowance()` returns the remaining amount and is decremented by `transferFrom`.","locations":["selector:0x23b872dd","selector:0xdd62ed3e","pc:0x341","pc:0x521","pc:0x5bb"]},{"severity":"low","category":"reentrancy","title":"Hook-enabled transfer path performs an unguarded external call to a user-influenced target","exploit_scenario":"A caller reaches selector `0xcae9ca51` with a malicious recipient contract. The routine updates token state first, then forwards nearly all remaining gas to an external call at pc 0x30c. The recipient can reenter public functions while the outer frame is still active. Bytecode alone does not prove a direct drain path beyond normal token movement, but any surrounding assumptions of single-step execution or non-reentrancy are unsafe on this path.","recommendation":"Treat selector `0xcae9ca51` as a reentrant entrypoint. Add a reentrancy guard or restructure so all invariants are finalized before the callback and only the minimal required gas/interface is forwarded. If the hook is intentional, clearly scope and document which callbacks are allowed.","evidence":"Dispatcher sends selector `0xcae9ca51` to pc 0x1bd. Inside that routine, storage is mutated before the external interaction (for example an `SSTORE` at pc 0x24b), then a `CALL` is executed at pc 0x30c with `GAS`, `PUSH2 0x61da`, `SUB`, `CALL`, and no detected guard (`auth.guards` is empty). The detector reported multiple CALLs, but the calls at pc 0x2c8 and pc 0x39d are likely old-Solidity identity-precompile helpers; the meaningful user-controlled callback is the call at pc 0x30c.","locations":["selector:0xcae9ca51","pc:0x24b","pc:0x30c"]}]}
tokens used
85,905
{
"codex": {
"ran_at": "2026-04-05T03:23:51.498004+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 3250,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Runtime bytecode matches a legacy ERC20-like token with an extra hook-enabled transfer path and no proxy/delegatecall logic. The strongest bytecode-level risks are a user-controlled external callback reachable from selector 0xcae9ca51 and non-standard delegated-spend accounting around selectors 0x23b872dd/0xdd62ed3e. Because this is bytecode-only analysis, selector intent and storage-role names remain inferred rather than proven.",
"raw_final": {
"summary": "Runtime bytecode matches a legacy ERC20-like token with an extra hook-enabled transfer path and no proxy/delegatecall logic. The strongest bytecode-level risks are a user-controlled external callback reachable from selector 0xcae9ca51 and non-standard delegated-spend accounting around selectors 0x23b872dd/0xdd62ed3e. Because this is bytecode-only analysis, selector intent and storage-role names remain inferred rather than proven.",
"findings": [
{
"title": "`transferFrom` authorization appears non-standard and likely irrevocable",
"category": "auth",
"evidence": "Selector `0xdd62ed3e` reads a slot-4 two-key mapping at pc 0x341-0x35e, but no runtime selector resembling `0x095ea7b3` is present and no runtime write to that slot family was identified. In `transferFrom` (`0x23b872dd`), the bytecode checks one nested mapping rooted at slot 4 and another rooted at slot 5 around pc 0x521-0x557, then later updates only the slot-5 rooted mapping at pc 0x5bb-0x605. This is inconsistent with standard ERC20 behavior where `allowance()` returns the remaining amount and is decremented by `transferFrom`.",
"severity": "medium",
"locations": [
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"pc:0x341",
"pc:0x521",
"pc:0x5bb"
],
"recommendation": "Do not integrate this token as a standard ERC20 allowance model without validating the constructor and any off-bytecode setup. If the design is intentional, document that `allowance()` is not a remaining allowance and expose an explicit revocation/update path. Otherwise, add a standard `approve`/decrementing allowance mechanism and ensure `allowance(owner,spender)` reflects remaining spendable authorization.",
"exploit_scenario": "A wallet or dApp treats this contract as a standard ERC20 because it exposes `transferFrom(address,address,uint256)` and `allowance(address,address)`. However, the runtime never exposes an `approve`-like selector and the `transferFrom` path appears to compare two different nested mappings, then increment only one of them after spending. If constructor-seeded spending rights exist, the owner may have no runtime way to revoke them; if integrators rely on `allowance()` as remaining spendable amount, they can overestimate available authorization and build unsafe flows around stale approvals."
},
{
"title": "Hook-enabled transfer path performs an unguarded external call to a user-influenced target",
"category": "reentrancy",
"evidence": "Dispatcher sends selector `0xcae9ca51` to pc 0x1bd. Inside that routine, storage is mutated before the external interaction (for example an `SSTORE` at pc 0x24b), then a `CALL` is executed at pc 0x30c with `GAS`, `PUSH2 0x61da`, `SUB`, `CALL`, and no detected guard (`auth.guards` is empty). The detector reported multiple CALLs, but the calls at pc 0x2c8 and pc 0x39d are likely old-Solidity identity-precompile helpers; the meaningful user-controlled callback is the call at pc 0x30c.",
"severity": "low",
"locations": [
"selector:0xcae9ca51",
"pc:0x24b",
"pc:0x30c"
],
"recommendation": "Treat selector `0xcae9ca51` as a reentrant entrypoint. Add a reentrancy guard or restructure so all invariants are finalized before the callback and only the minimal required gas/interface is forwarded. If the hook is intentional, clearly scope and document which callbacks are allowed.",
"exploit_scenario": "A caller reaches selector `0xcae9ca51` with a malicious recipient contract. The routine updates token state first, then forwards nearly all remaining gas to an external call at pc 0x30c. The recipient can reenter public functions while the outer frame is still active. Bytecode alone does not prove a direct drain path beyond normal token movement, but any surrounding assumptions of single-step execution or non-reentrancy are unsafe on this path."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x0077 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x06fdde03 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x007f 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x23b872dd 00000025: EQ 00000026: PUSH2 0x00dc 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x313ce567 00000030: EQ 00000031: PUSH2 0x010e 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x70a08231 0000003b: EQ 0000003c: PUSH2 0x011a 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x95d89b41 00000046: EQ 00000047: PUSH2 0x0132 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0xa9059cbb 00000051: EQ 00000052: PUSH2 0x018e 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0xcae9ca51 0000005c: EQ 0000005d: PUSH2 0x01bd 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0xdc3080f2 00000067: EQ 00000068: PUSH2 0x031c 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0xdd62ed3e 00000072: EQ 00000073: PUSH2 0x0341 00000076: JUMPI 00000077: JUMPDEST 00000078: PUSH2 0x0365 0000007b: PUSH2 0x0002 0000007e: JUMP 0000007f: JUMPDEST 00000080: PUSH2 0x0367 00000083: PUSH1 0x00 00000085: DUP1 00000086: SLOAD 00000087: PUSH1 0x20 00000089: PUSH1 0x02 0000008b: PUSH1 0x01 0000008d: DUP4 0000008e: AND 0000008f: ISZERO 00000090: PUSH2 0x0100 00000093: MUL 00000094: PUSH1 0x00 00000096: NOT 00000097: ADD 00000098: SWAP1 00000099: SWAP3 0000009a: AND 0000009b: SWAP2 0000009c: SWAP1 0000009d: SWAP2 0000009e: DIV 0000009f: PUSH1 0x1f 000000a1: DUP2 000000a2: ADD 000000a3: DUP3 000000a4: SWAP1 000000a5: DIV 000000a6: SWAP1 000000a7: SWAP2 000000a8: MUL 000000a9: PUSH1 0x80 000000ab: SWAP1 000000ac: DUP2 000000ad: ADD 000000ae: PUSH1 0x40 000000b0: MSTORE 000000b1: PUSH1 0x60 000000b3: DUP3 000000b4: DUP2 000000b5: MSTORE 000000b6: SWAP3 000000b7: SWAP2 000000b8: SWAP1 000000b9: DUP3 000000ba: DUP3 000000bb: DUP1 000000bc: ISZERO 000000bd: PUSH2 0x041c 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH1 0x1f 000000c4: LT 000000c5: PUSH2 0x03f1 000000c8: JUMPI 000000c9: PUSH2 0x0100 000000cc: DUP1 000000cd: DUP4 000000ce: SLOAD 000000cf: DIV 000000d0: MUL 000000d1: DUP4 000000d2: MSTORE 000000d3: SWAP2 000000d4: PUSH1 0x20 000000d6: ADD 000000d7: SWAP2 000000d8: PUSH2 0x041c 000000db: JUMP 000000dc: JUMPDEST 000000dd: PUSH2 0x03d5 000000e0: PUSH1 0x04 000000e2: CALLDATALOAD 000000e3: PUSH1 0x24 000000e5: CALLDATALOAD 000000e6: PUSH1 0x44 000000e8: CALLDATALOAD 000000e9: PUSH1 0x01 000000eb: PUSH1 0xa0 000000ed: PUSH1 0x02 000000ef: EXP 000000f0: SUB 000000f1: DUP4 000000f2: AND 000000f3: PUSH1 0x00 000000f5: SWAP1 000000f6: DUP2 000000f7: MSTORE 000000f8: PUSH1 0x03 000000fa: PUSH1 0x20 000000fc: MSTORE 000000fd: PUSH1 0x40 000000ff: DUP2 00000100: KECCAK256 00000101: SLOAD 00000102: DUP3 00000103: SWAP1 00000104: LT 00000105: ISZERO 00000106: PUSH2 0x04f3 00000109: JUMPI 0000010a: PUSH2 0x0002 0000010d: JUMP 0000010e: JUMPDEST 0000010f: PUSH2 0x03e7 00000112: PUSH1 0x02 00000114: SLOAD 00000115: PUSH1 0xff 00000117: AND 00000118: DUP2 00000119: JUMP 0000011a: JUMPDEST 0000011b: PUSH2 0x03d5 0000011e: PUSH1 0x04 00000120: CALLDATALOAD 00000121: PUSH1 0x03 00000123: PUSH1 0x20 00000125: MSTORE 00000126: PUSH1 0x00 00000128: SWAP1 00000129: DUP2 0000012a: MSTORE 0000012b: PUSH1 0x40 0000012d: SWAP1 0000012e: KECCAK256 0000012f: SLOAD 00000130: DUP2 00000131: JUMP 00000132: JUMPDEST 00000133: PUSH2 0x0367 00000136: PUSH1 0x01 00000138: DUP1 00000139: SLOAD 0000013a: PUSH1 0x20 0000013c: PUSH1 0x02 0000013e: DUP3 0000013f: DUP5 00000140: AND 00000141: ISZERO 00000142: PUSH2 0x0100 00000145: MUL 00000146: PUSH1 0x00 00000148: NOT 00000149: ADD 0000014a: SWAP1 0000014b: SWAP3 0000014c: AND 0000014d: SWAP2 0000014e: SWAP1 0000014f: SWAP2 00000150: DIV 00000151: PUSH1 0x1f 00000153: DUP2 00000154: ADD 00000155: DUP3 00000156: SWAP1 00000157: DIV 00000158: SWAP1 00000159: SWAP2 0000015a: MUL 0000015b: PUSH1 0x80 0000015d: SWAP1 0000015e: DUP2 0000015f: ADD 00000160: PUSH1 0x40 00000162: MSTORE 00000163: PUSH1 0x60 00000165: DUP3 00000166: DUP2 00000167: MSTORE 00000168: SWAP3 00000169: SWAP2 0000016a: SWAP1 0000016b: DUP3 0000016c: DUP3 0000016d: DUP1 0000016e: ISZERO 0000016f: PUSH2 0x041c 00000172: JUMPI 00000173: DUP1 00000174: PUSH1 0x1f 00000176: LT 00000177: PUSH2 0x03f1 0000017a: JUMPI 0000017b: PUSH2 0x0100 0000017e: DUP1 0000017f: DUP4 00000180: SLOAD 00000181: DIV 00000182: MUL 00000183: DUP4 00000184: MSTORE 00000185: SWAP2 00000186: PUSH1 0x20 00000188: ADD 00000189: SWAP2 0000018a: PUSH2 0x041c 0000018d: JUMP 0000018e: JUMPDEST 0000018f: PUSH2 0x0365 00000192: PUSH1 0x04 00000194: CALLDATALOAD 00000195: PUSH1 0x24 00000197: CALLDATALOAD 00000198: PUSH1 0x01 0000019a: PUSH1 0xa0 0000019c: PUSH1 0x02 0000019e: EXP 0000019f: SUB 000001a0: CALLER 000001a1: AND 000001a2: PUSH1 0x00 000001a4: SWAP1 000001a5: DUP2 000001a6: MSTORE 000001a7: PUSH1 0x03 000001a9: PUSH1 0x20 000001ab: MSTORE 000001ac: PUSH1 0x40 000001ae: SWAP1 000001af: KECCAK256 000001b0: SLOAD 000001b1: DUP2 000001b2: SWAP1 000001b3: LT 000001b4: ISZERO 000001b5: PUSH2 0x0424 000001b8: JUMPI 000001b9: PUSH2 0x0002 000001bc: JUMP 000001bd: JUMPDEST 000001be: PUSH1 0x80 000001c0: PUSH1 0x20 000001c2: PUSH1 0x44 000001c4: CALLDATALOAD 000001c5: PUSH1 0x04 000001c7: DUP2 000001c8: DUP2 000001c9: ADD 000001ca: CALLDATALOAD 000001cb: PUSH1 0x1f 000001cd: DUP2 000001ce: ADD 000001cf: DUP5 000001d0: SWAP1 000001d1: DIV 000001d2: SWAP1 000001d3: SWAP4 000001d4: MUL 000001d5: DUP5 000001d6: ADD 000001d7: PUSH1 0x40 000001d9: MSTORE 000001da: PUSH1 0x60 000001dc: DUP4 000001dd: DUP2 000001de: MSTORE 000001df: PUSH2 0x03d5 000001e2: SWAP5 000001e3: DUP3 000001e4: CALLDATALOAD 000001e5: SWAP5 000001e6: PUSH1 0x24 000001e8: DUP1 000001e9: CALLDATALOAD 000001ea: SWAP6 000001eb: PUSH1 0x64 000001ed: SWAP5 000001ee: SWAP4 000001ef: SWAP2 000001f0: ADD 000001f1: SWAP2 000001f2: SWAP1 000001f3: DUP2 000001f4: SWAP1 000001f5: DUP4 000001f6: DUP3 000001f7: DUP1 000001f8: DUP3 000001f9: DUP5 000001fa: CALLDATACOPY 000001fb: POP 000001fc: SWAP5 000001fd: SWAP7 000001fe: POP 000001ff: POP 00000200: POP 00000201: POP 00000202: POP 00000203: POP 00000204: POP 00000205: PUSH1 0x00 00000207: PUSH1 0x00 00000209: DUP4 0000020a: PUSH1 0x04 0000020c: PUSH1 0x00 0000020e: POP 0000020f: PUSH1 0x00 00000211: CALLER 00000212: PUSH1 0x01 00000214: PUSH1 0xa0 00000216: PUSH1 0x02 00000218: EXP 00000219: SUB 0000021a: AND 0000021b: DUP2 0000021c: MSTORE 0000021d: PUSH1 0x20 0000021f: ADD 00000220: SWAP1 00000221: DUP2 00000222: MSTORE 00000223: PUSH1 0x20 00000225: ADD 00000226: PUSH1 0x00 00000228: KECCAK256 00000229: PUSH1 0x00 0000022b: POP 0000022c: PUSH1 0x00 0000022e: DUP8 0000022f: PUSH1 0x01 00000231: PUSH1 0xa0 00000233: PUSH1 0x02 00000235: EXP 00000236: SUB 00000237: AND 00000238: DUP2 00000239: MSTORE 0000023a: PUSH1 0x20 0000023c: ADD 0000023d: SWAP1 0000023e: DUP2 0000023f: MSTORE 00000240: PUSH1 0x20 00000242: ADD 00000243: PUSH1 0x00 00000245: KECCAK256 00000246: PUSH1 0x00 00000248: POP 00000249: DUP2 0000024a: SWAP1 0000024b: SSTORE 0000024c: POP 0000024d: DUP5 0000024e: SWAP1 0000024f: POP 00000250: DUP1 00000251: PUSH1 0x01 00000253: PUSH1 0xa0 00000255: PUSH1 0x02 00000257: EXP 00000258: SUB 00000259: AND 0000025a: PUSH4 0x8f4ffcb1 0000025f: CALLER 00000260: DUP7 00000261: ADDRESS 00000262: DUP8 00000263: PUSH1 0x40 00000265: MLOAD 00000266: DUP6 00000267: PUSH1 0xe0 00000269: PUSH1 0x02 0000026b: EXP 0000026c: MUL 0000026d: DUP2 0000026e: MSTORE 0000026f: PUSH1 0x04 00000271: ADD 00000272: DUP1 00000273: DUP6 00000274: PUSH1 0x01 00000276: PUSH1 0xa0 00000278: PUSH1 0x02 0000027a: EXP 0000027b: SUB 0000027c: AND 0000027d: DUP2 0000027e: MSTORE 0000027f: PUSH1 0x20 00000281: ADD 00000282: DUP5 00000283: DUP2 00000284: MSTORE 00000285: PUSH1 0x20 00000287: ADD 00000288: DUP4 00000289: PUSH1 0x01 0000028b: PUSH1 0xa0 0000028d: PUSH1 0x02 0000028f: EXP 00000290: SUB 00000291: AND 00000292: DUP2 00000293: MSTORE 00000294: PUSH1 0x20 00000296: ADD 00000297: DUP1 00000298: PUSH1 0x20 0000029a: ADD 0000029b: DUP3 0000029c: DUP2 0000029d: SUB 0000029e: DUP3 0000029f: MSTORE 000002a0: DUP4 000002a1: DUP2 000002a2: DUP2 000002a3: MLOAD 000002a4: DUP2 000002a5: MSTORE 000002a6: PUSH1 0x20 000002a8: ADD 000002a9: SWAP2 000002aa: POP 000002ab: DUP1 000002ac: MLOAD 000002ad: SWAP1 000002ae: PUSH1 0x20 000002b0: ADD 000002b1: SWAP1 000002b2: DUP1 000002b3: DUP4 000002b4: DUP4 000002b5: DUP3 000002b6: SWAP1 000002b7: PUSH1 0x00 000002b9: PUSH1 0x04 000002bb: PUSH1 0x20 000002bd: DUP5 000002be: PUSH1 0x1f 000002c0: ADD 000002c1: DIV 000002c2: PUSH1 0x0f 000002c4: MUL 000002c5: PUSH1 0x03 000002c7: ADD 000002c8: CALL 000002c9: POP 000002ca: SWAP1 000002cb: POP 000002cc: SWAP1 000002cd: DUP2 000002ce: ADD 000002cf: SWAP1 000002d0: PUSH1 0x1f 000002d2: AND 000002d3: DUP1 000002d4: ISZERO 000002d5: PUSH2 0x02f2 000002d8: JUMPI 000002d9: DUP1 000002da: DUP3 000002db: SUB 000002dc: DUP1 000002dd: MLOAD 000002de: PUSH1 0x01 000002e0: DUP4 000002e1: PUSH1 0x20 000002e3: SUB 000002e4: PUSH2 0x0100 000002e7: EXP 000002e8: SUB 000002e9: NOT 000002ea: AND 000002eb: DUP2 000002ec: MSTORE 000002ed: PUSH1 0x20 000002ef: ADD 000002f0: SWAP2 000002f1: POP 000002f2: JUMPDEST 000002f3: POP 000002f4: SWAP6 000002f5: POP 000002f6: POP 000002f7: POP 000002f8: POP 000002f9: POP 000002fa: POP 000002fb: PUSH1 0x00 000002fd: PUSH1 0x40 000002ff: MLOAD 00000300: DUP1 00000301: DUP4 00000302: SUB 00000303: DUP2 00000304: PUSH1 0x00 00000306: DUP8 00000307: PUSH2 0x61da 0000030a: GAS 0000030b: SUB 0000030c: CALL 0000030d: ISZERO 0000030e: PUSH2 0x0002 00000311: JUMPI 00000312: POP 00000313: POP 00000314: POP 00000315: POP 00000316: SWAP4 00000317: SWAP3 00000318: POP 00000319: POP 0000031a: POP 0000031b: JUMP 0000031c: JUMPDEST 0000031d: PUSH1 0x05 0000031f: PUSH1 0x20 00000321: SWAP1 00000322: DUP2 00000323: MSTORE 00000324: PUSH1 0x04 00000326: CALLDATALOAD 00000327: PUSH1 0x00 00000329: SWAP1 0000032a: DUP2 0000032b: MSTORE 0000032c: PUSH1 0x40 0000032e: DUP1 0000032f: DUP3 00000330: KECCAK256 00000331: SWAP1 00000332: SWAP3 00000333: MSTORE 00000334: PUSH1 0x24 00000336: CALLDATALOAD 00000337: DUP2 00000338: MSTORE 00000339: KECCAK256 0000033a: SLOAD 0000033b: PUSH2 0x03d5 0000033e: SWAP1 0000033f: DUP2 00000340: JUMP 00000341: JUMPDEST 00000342: PUSH1 0x04 00000344: PUSH1 0x20 00000346: DUP2 00000347: DUP2 00000348: MSTORE 00000349: SWAP1 0000034a: CALLDATALOAD 0000034b: PUSH1 0x00 0000034d: SWAP1 0000034e: DUP2 0000034f: MSTORE 00000350: PUSH1 0x40 00000352: DUP1 00000353: DUP3 00000354: KECCAK256 00000355: SWAP1 00000356: SWAP3 00000357: MSTORE 00000358: PUSH1 0x24 0000035a: CALLDATALOAD 0000035b: DUP2 0000035c: MSTORE 0000035d: KECCAK256 0000035e: SLOAD 0000035f: PUSH2 0x03d5 00000362: SWAP1 00000363: DUP2 00000364: JUMP 00000365: JUMPDEST 00000366: STOP 00000367: JUMPDEST 00000368: PUSH1 0x40 0000036a: MLOAD 0000036b: DUP1 0000036c: DUP1 0000036d: PUSH1 0x20 0000036f: ADD 00000370: DUP3 00000371: DUP2 00000372: SUB 00000373: DUP3 00000374: MSTORE 00000375: DUP4 00000376: DUP2 00000377: DUP2 00000378: MLOAD 00000379: DUP2 0000037a: MSTORE 0000037b: PUSH1 0x20 0000037d: ADD 0000037e: SWAP2 0000037f: POP 00000380: DUP1 00000381: MLOAD 00000382: SWAP1 00000383: PUSH1 0x20 00000385: ADD 00000386: SWAP1 00000387: DUP1 00000388: DUP4 00000389: DUP4 0000038a: DUP3 0000038b: SWAP1 0000038c: PUSH1 0x00 0000038e: PUSH1 0x04 00000390: PUSH1 0x20 00000392: DUP5 00000393: PUSH1 0x1f 00000395: ADD 00000396: DIV 00000397: PUSH1 0x0f 00000399: MUL 0000039a: PUSH1 0x03 0000039c: ADD 0000039d: CALL 0000039e: POP 0000039f: SWAP1 000003a0: POP 000003a1: SWAP1 000003a2: DUP2 000003a3: ADD 000003a4: SWAP1 000003a5: PUSH1 0x1f 000003a7: AND 000003a8: DUP1 000003a9: ISZERO 000003aa: PUSH2 0x03c7 000003ad: JUMPI 000003ae: DUP1 000003af: DUP3 000003b0: SUB 000003b1: DUP1 000003b2: MLOAD 000003b3: PUSH1 0x01 000003b5: DUP4 000003b6: PUSH1 0x20 000003b8: SUB 000003b9: PUSH2 0x0100 000003bc: EXP 000003bd: SUB 000003be: NOT 000003bf: AND 000003c0: DUP2 000003c1: MSTORE 000003c2: PUSH1 0x20 000003c4: ADD 000003c5: SWAP2 000003c6: POP 000003c7: JUMPDEST 000003c8: POP 000003c9: SWAP3 000003ca: POP 000003cb: POP 000003cc: POP 000003cd: PUSH1 0x40 000003cf: MLOAD 000003d0: DUP1 000003d1: SWAP2 000003d2: SUB 000003d3: SWAP1 000003d4: RETURN 000003d5: JUMPDEST 000003d6: PUSH1 0x40 000003d8: DUP1 000003d9: MLOAD 000003da: SWAP2 000003db: DUP3 000003dc: MSTORE 000003dd: MLOAD 000003de: SWAP1 000003df: DUP2 000003e0: SWAP1 000003e1: SUB 000003e2: PUSH1 0x20 000003e4: ADD 000003e5: SWAP1 000003e6: RETURN 000003e7: JUMPDEST 000003e8: PUSH1 0x60 000003ea: SWAP1 000003eb: DUP2 000003ec: MSTORE 000003ed: PUSH1 0x20 000003ef: SWAP1 000003f0: RETURN 000003f1: JUMPDEST 000003f2: DUP3 000003f3: ADD 000003f4: SWAP2 000003f5: SWAP1 000003f6: PUSH1 0x00 000003f8: MSTORE 000003f9: PUSH1 0x20 000003fb: PUSH1 0x00 000003fd: KECCAK256 000003fe: SWAP1 000003ff: JUMPDEST 00000400: DUP2 00000401: SLOAD 00000402: DUP2 00000403: MSTORE 00000404: SWAP1 00000405: PUSH1 0x01 00000407: ADD 00000408: SWAP1 00000409: PUSH1 0x20 0000040b: ADD 0000040c: DUP1 0000040d: DUP4 0000040e: GT 0000040f: PUSH2 0x03ff 00000412: JUMPI 00000413: DUP3 00000414: SWAP1 00000415: SUB 00000416: PUSH1 0x1f 00000418: AND 00000419: DUP3 0000041a: ADD 0000041b: SWAP2 0000041c: JUMPDEST 0000041d: POP 0000041e: POP 0000041f: POP 00000420: POP 00000421: POP 00000422: DUP2 00000423: JUMP 00000424: JUMPDEST 00000425: PUSH1 0x01 00000427: PUSH1 0xa0 00000429: PUSH1 0x02 0000042b: EXP 0000042c: SUB 0000042d: DUP3 0000042e: AND 0000042f: PUSH1 0x00 00000431: SWAP1 00000432: DUP2 00000433: MSTORE 00000434: PUSH1 0x40 00000436: SWAP1 00000437: KECCAK256 00000438: SLOAD 00000439: DUP1 0000043a: DUP3 0000043b: ADD 0000043c: LT 0000043d: ISZERO 0000043e: PUSH2 0x0446 00000441: JUMPI 00000442: PUSH2 0x0002 00000445: JUMP 00000446: JUMPDEST 00000447: DUP1 00000448: PUSH1 0x03 0000044a: PUSH1 0x00 0000044c: POP 0000044d: PUSH1 0x00 0000044f: CALLER 00000450: PUSH1 0x01 00000452: PUSH1 0xa0 00000454: PUSH1 0x02 00000456: EXP 00000457: SUB 00000458: AND 00000459: DUP2 0000045a: MSTORE 0000045b: PUSH1 0x20 0000045d: ADD 0000045e: SWAP1 0000045f: DUP2 00000460: MSTORE 00000461: PUSH1 0x20 00000463: ADD 00000464: PUSH1 0x00 00000466: KECCAK256 00000467: PUSH1 0x00 00000469: DUP3 0000046a: DUP3 0000046b: DUP3 0000046c: POP 0000046d: SLOAD 0000046e: SUB 0000046f: SWAP3 00000470: POP 00000471: POP 00000472: DUP2 00000473: SWAP1 00000474: SSTORE 00000475: POP 00000476: DUP1 00000477: PUSH1 0x03 00000479: PUSH1 0x00 0000047b: POP 0000047c: PUSH1 0x00 0000047e: DUP5 0000047f: PUSH1 0x01 00000481: PUSH1 0xa0 00000483: PUSH1 0x02 00000485: EXP 00000486: SUB 00000487: AND 00000488: DUP2 00000489: MSTORE 0000048a: PUSH1 0x20 0000048c: ADD 0000048d: SWAP1 0000048e: DUP2 0000048f: MSTORE 00000490: PUSH1 0x20 00000492: ADD 00000493: PUSH1 0x00 00000495: KECCAK256 00000496: PUSH1 0x00 00000498: DUP3 00000499: DUP3 0000049a: DUP3 0000049b: POP 0000049c: SLOAD 0000049d: ADD 0000049e: SWAP3 0000049f: POP 000004a0: POP 000004a1: DUP2 000004a2: SWAP1 000004a3: SSTORE 000004a4: POP 000004a5: DUP2 000004a6: PUSH1 0x01 000004a8: PUSH1 0xa0 000004aa: PUSH1 0x02 000004ac: EXP 000004ad: SUB 000004ae: AND 000004af: CALLER 000004b0: PUSH1 0x01 000004b2: PUSH1 0xa0 000004b4: PUSH1 0x02 000004b6: EXP 000004b7: SUB 000004b8: AND 000004b9: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000004da: DUP4 000004db: PUSH1 0x40 000004dd: MLOAD 000004de: DUP1 000004df: DUP3 000004e0: DUP2 000004e1: MSTORE 000004e2: PUSH1 0x20 000004e4: ADD 000004e5: SWAP2 000004e6: POP 000004e7: POP 000004e8: PUSH1 0x40 000004ea: MLOAD 000004eb: DUP1 000004ec: SWAP2 000004ed: SUB 000004ee: SWAP1 000004ef: LOG3 000004f0: POP 000004f1: POP 000004f2: JUMP 000004f3: JUMPDEST 000004f4: PUSH1 0x01 000004f6: PUSH1 0xa0 000004f8: PUSH1 0x02 000004fa: EXP 000004fb: SUB 000004fc: DUP4 000004fd: AND 000004fe: DUP2 000004ff: MSTORE 00000500: PUSH1 0x40 00000502: DUP2 00000503: KECCAK256 00000504: SLOAD 00000505: DUP1 00000506: DUP4 00000507: ADD 00000508: LT 00000509: ISZERO 0000050a: PUSH2 0x0512 0000050d: JUMPI 0000050e: PUSH2 0x0002 00000511: JUMP 00000512: JUMPDEST 00000513: PUSH1 0x01 00000515: PUSH1 0xa0 00000517: PUSH1 0x02 00000519: EXP 0000051a: SUB 0000051b: DUP1 0000051c: DUP6 0000051d: AND 0000051e: DUP1 0000051f: DUP4 00000520: MSTORE 00000521: PUSH1 0x04 00000523: PUSH1 0x20 00000525: SWAP1 00000526: DUP2 00000527: MSTORE 00000528: PUSH1 0x40 0000052a: DUP1 0000052b: DUP6 0000052c: KECCAK256 0000052d: CALLER 0000052e: SWAP5 0000052f: SWAP1 00000530: SWAP5 00000531: AND 00000532: DUP1 00000533: DUP7 00000534: MSTORE 00000535: SWAP4 00000536: DUP3 00000537: MSTORE 00000538: DUP1 00000539: DUP6 0000053a: KECCAK256 0000053b: SLOAD 0000053c: SWAP3 0000053d: DUP6 0000053e: MSTORE 0000053f: PUSH1 0x05 00000541: DUP3 00000542: MSTORE 00000543: DUP1 00000544: DUP6 00000545: KECCAK256 00000546: SWAP4 00000547: DUP6 00000548: MSTORE 00000549: SWAP3 0000054a: SWAP1 0000054b: MSTORE 0000054c: SWAP1 0000054d: DUP3 0000054e: KECCAK256 0000054f: SLOAD 00000550: DUP4 00000551: ADD 00000552: GT 00000553: ISZERO 00000554: PUSH2 0x055c 00000557: JUMPI 00000558: PUSH2 0x0002 0000055b: JUMP 0000055c: JUMPDEST 0000055d: DUP2 0000055e: PUSH1 0x03 00000560: PUSH1 0x00 00000562: POP 00000563: PUSH1 0x00 00000565: DUP7 00000566: PUSH1 0x01 00000568: PUSH1 0xa0 0000056a: PUSH1 0x02 0000056c: EXP 0000056d: SUB 0000056e: AND 0000056f: DUP2 00000570: MSTORE 00000571: PUSH1 0x20 00000573: ADD 00000574: SWAP1 00000575: DUP2 00000576: MSTORE 00000577: PUSH1 0x20 00000579: ADD 0000057a: PUSH1 0x00 0000057c: KECCAK256 0000057d: PUSH1 0x00 0000057f: DUP3 00000580: DUP3 00000581: DUP3 00000582: POP 00000583: SLOAD 00000584: SUB 00000585: SWAP3 00000586: POP 00000587: POP 00000588: DUP2 00000589: SWAP1 0000058a: SSTORE 0000058b: POP 0000058c: DUP2 0000058d: PUSH1 0x03 0000058f: PUSH1 0x00 00000591: POP 00000592: PUSH1 0x00 00000594: DUP6 00000595: PUSH1 0x01 00000597: PUSH1 0xa0 00000599: PUSH1 0x02 0000059b: EXP 0000059c: SUB 0000059d: AND 0000059e: DUP2 0000059f: MSTORE 000005a0: PUSH1 0x20 000005a2: ADD 000005a3: SWAP1 000005a4: DUP2 000005a5: MSTORE 000005a6: PUSH1 0x20 000005a8: ADD 000005a9: PUSH1 0x00 000005ab: KECCAK256 000005ac: PUSH1 0x00 000005ae: DUP3 000005af: DUP3 000005b0: DUP3 000005b1: POP 000005b2: SLOAD 000005b3: ADD 000005b4: SWAP3 000005b5: POP 000005b6: POP 000005b7: DUP2 000005b8: SWAP1 000005b9: SSTORE 000005ba: POP 000005bb: DUP2 000005bc: PUSH1 0x05 000005be: PUSH1 0x00 000005c0: POP 000005c1: PUSH1 0x00 000005c3: DUP7 000005c4: PUSH1 0x01 000005c6: PUSH1 0xa0 000005c8: PUSH1 0x02 000005ca: EXP 000005cb: SUB 000005cc: AND 000005cd: DUP2 000005ce: MSTORE 000005cf: PUSH1 0x20 000005d1: ADD 000005d2: SWAP1 000005d3: DUP2 000005d4: MSTORE 000005d5: PUSH1 0x20 000005d7: ADD 000005d8: PUSH1 0x00 000005da: KECCAK256 000005db: PUSH1 0x00 000005dd: POP 000005de: PUSH1 0x00 000005e0: CALLER 000005e1: PUSH1 0x01 000005e3: PUSH1 0xa0 000005e5: PUSH1 0x02 000005e7: EXP 000005e8: SUB 000005e9: AND 000005ea: DUP2 000005eb: MSTORE 000005ec: PUSH1 0x20 000005ee: ADD 000005ef: SWAP1 000005f0: DUP2 000005f1: MSTORE 000005f2: PUSH1 0x20 000005f4: ADD 000005f5: PUSH1 0x00 000005f7: KECCAK256 000005f8: PUSH1 0x00 000005fa: DUP3 000005fb: DUP3 000005fc: DUP3 000005fd: POP 000005fe: SLOAD 000005ff: ADD 00000600: SWAP3 00000601: POP 00000602: POP 00000603: DUP2 00000604: SWAP1 00000605: SSTORE 00000606: POP 00000607: DUP3 00000608: PUSH1 0x01 0000060a: PUSH1 0xa0 0000060c: PUSH1 0x02 0000060e: EXP 0000060f: SUB 00000610: AND 00000611: CALLER 00000612: PUSH1 0x01 00000614: PUSH1 0xa0 00000616: PUSH1 0x02 00000618: EXP 00000619: SUB 0000061a: AND 0000061b: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000063c: DUP5 0000063d: PUSH1 0x40 0000063f: MLOAD 00000640: DUP1 00000641: DUP3 00000642: DUP2 00000643: MSTORE 00000644: PUSH1 0x20 00000646: ADD 00000647: SWAP2 00000648: POP 00000649: POP 0000064a: PUSH1 0x40 0000064c: MLOAD 0000064d: DUP1 0000064e: SWAP2 0000064f: SUB 00000650: SWAP1 00000651: LOG3 00000652: SWAP4 00000653: SWAP3 00000654: POP 00000655: POP 00000656: POP 00000657: JUMP
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5
call_targets:
0x0000000000000000000000000000000000000004, 0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcae9ca51",
"selector": "0xcae9ca51",
"calldata_variants": [
"0xcae9ca51",
"0xcae9ca510000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc3080f2",
"selector": "0xdc3080f2",
"calldata_variants": [
"0xdc3080f2",
"0xdc3080f20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 712,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 780,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 925,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5
call_targets:
0x0000000000000000000000000000000000000004, 0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x2c47eeb51384c32c5287ea88aaa2fc1dd94977c528f07772152ab8659cf183f5",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xb6eec1405170fe0f4e0a5dc229ce1b42014886a8"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcae9ca51",
"selector": "0xcae9ca51",
"calldata_variants": [
"0xcae9ca51",
"0xcae9ca510000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc3080f2",
"selector": "0xdc3080f2",
"calldata_variants": [
"0xdc3080f2",
"0xdc3080f20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 712,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 780,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 925,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | auth | codex | `transferFrom` authorization appears non-standard and likely irrevocable | 75 | no | — |
viewevidence_json{
"evidence": "Selector `0xdd62ed3e` reads a slot-4 two-key mapping at pc 0x341-0x35e, but no runtime selector resembling `0x095ea7b3` is present and no runtime write to that slot family was identified. In `transferFrom` (`0x23b872dd`), the bytecode checks one nested mapping rooted at slot 4 and another rooted at slot 5 around pc 0x521-0x557, then later updates only the slot-5 rooted mapping at pc 0x5bb-0x605. This is inconsistent with standard ERC20 behavior where `allowance()` returns the remaining amount and is decremented by `transferFrom`.",
"locations": [
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"pc:0x341",
"pc:0x521",
"pc:0x5bb"
],
"recommendation": "Do not integrate this token as a standard ERC20 allowance model without validating the constructor and any off-bytecode setup. If the design is intentional, document that `allowance()` is not a remaining allowance and expose an explicit revocation/update path. Otherwise, add a standard `approve`/decrementing allowance mechanism and ensure `allowance(owner,spender)` reflects remaining spendable authorization.",
"exploit_scenario": "A wallet or dApp treats this contract as a standard ERC20 because it exposes `transferFrom(address,address,uint256)` and `allowance(address,address)`. However, the runtime never exposes an `approve`-like selector and the `transferFrom` path appears to compare two different nested mappings, then increment only one of them after spending. If constructor-seeded spending rights exist, the owner may have no runtime way to revoke them; if integrators rely on `allowance()` as remaining spendable amount, they can overestimate available authorization and build unsafe flows around stale approvals."
}
|
| low | reentrancy | codex | Hook-enabled transfer path performs an unguarded external call to a user-influenced target | 65 | no | — |
viewevidence_json{
"evidence": "Dispatcher sends selector `0xcae9ca51` to pc 0x1bd. Inside that routine, storage is mutated before the external interaction (for example an `SSTORE` at pc 0x24b), then a `CALL` is executed at pc 0x30c with `GAS`, `PUSH2 0x61da`, `SUB`, `CALL`, and no detected guard (`auth.guards` is empty). The detector reported multiple CALLs, but the calls at pc 0x2c8 and pc 0x39d are likely old-Solidity identity-precompile helpers; the meaningful user-controlled callback is the call at pc 0x30c.",
"locations": [
"selector:0xcae9ca51",
"pc:0x24b",
"pc:0x30c"
],
"recommendation": "Treat selector `0xcae9ca51` as a reentrant entrypoint. Add a reentrancy guard or restructure so all invariants are finalized before the callback and only the minimal required gas/interface is forwarded. If the hook is intentional, clearly scope and document which callbacks are allowed.",
"exploit_scenario": "A caller reaches selector `0xcae9ca51` with a malicious recipient contract. The routine updates token state first, then forwards nearly all remaining gas to an external call at pc 0x30c. The recipient can reenter public functions while the outer frame is still active. Bytecode alone does not prove a direct drain path beyond normal token movement, but any surrounding assumptions of single-step execution or non-reentrancy are unsafe on this path."
}
|