019b3836-3ff6-7390-948c-69931f834a03
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 |
|---|---|---|---|---|
| 5137 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 5138 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 48832 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 48833 | capability.graph | complete | 1 / 3 | 1 week ago |
| 48834 | detector.run | complete | 1 / 3 | 1 week ago |
| 48835 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113307 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.","findings":[{"severity":"high","category":"access_control","title":"Owner-controlled source address can redirect public token payouts to arbitrary holder balances","exploit_scenario":"A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer.","recommendation":"Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.","evidence":"`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.","locations":["selector:0x7f2a8a80","selector:0xa6f2ae3a","selector:0xff9b3acf","pc:0x224","pc:0x6bc","pc:0x6de","pc:0x74a","pc:0x765","pc:0x777","pc:0x7a0"]},{"severity":"medium","category":"other","title":"`allowance()` appears to report the approved amount, not the remaining spendable amount","exploit_scenario":"A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns.","recommendation":"Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.","evidence":"The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","selector:0xdc3080f2","pc:0x390","pc:0x462","pc:0x633","pc:0x64a","pc:0x483","pc:0x499"]},{"severity":"medium","category":"other","title":"Token-for-ETH payout path ignores CALL failure after moving balances","exploit_scenario":"A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment.","recommendation":"Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.","evidence":"`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.","locations":["selector:0xe4849b32","pc:0x7e0","pc:0x801","pc:0x812","pc:0x829","pc:0x85b"]}]}
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-03j11m2y
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c73-57cc-7a41-8b39-ec768abb2bfd
--------
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.
→ Inspect BYTECODE_BUNDLE.json and identify key bytecode artifacts, selectors, storage slots, and detector findings
• Evaluate potential vulnerabilities from the bytecode evidence, focusing on proxy/upgradeability, access control, delegatecall, reentrancy, and unsafe external calls
• Produce JSON findings with severity, exploit scenario, evidence, and precise locations
exec
/bin/bash -lc "pwd && rg --files -g 'BYTECODE_BUNDLE.json' -g 'AGENTS.md' -g '*.json'" in /tmp/codex-03j11m2y
succeeded in 0ms:
/tmp/codex-03j11m2y
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'wc -c BYTECODE_BUNDLE.json && head -c 400 BYTECODE_BUNDLE.json' in /tmp/codex-03j11m2y
succeeded in 0ms:
192014 BYTECODE_BUNDLE.json
{
"analysis_artifact": {
"address": "0x2083ba165b902a02a6bf931287dfedd50a4ddd21",
"artifact_hash": "0x73fe6d0762ce7c38bbd2d29ca468a258d6399bf7e7f2c31ef7251d3d5f99f585",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 10,
"hash": "0x7b6ce063085d86d7a28c3db9177c7c3cbfb2c605a3b218fd361c15920a201f75",
exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
"analysis_artifact",
"analysis_run",
"artifact",
"capability_graph",
"detector_findings",
"heuristics_summary"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
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 '.detector_findings | length, map({id, title, severity, confidence})[:10]' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
3
[
{
"id": null,
"title": "Untrusted CALL target/value reachable",
"severity": "high",
"confidence": 60
},
{
"id": null,
"title": "ETH value transfer possible",
"severity": "high",
"confidence": 55
},
{
"id": null,
"title": "CREATE/CREATE2 reachable",
"severity": "medium",
"confidence": 45
}
]
exec
/bin/bash -lc "jq '.heuristics_summary | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
"create2_count",
"delegatecall_count",
"flags",
"selfdestruct_count"
]
exec
/bin/bash -lc "jq '{flags:.heuristics_summary.flags,delegatecall_count:.heuristics_summary.delegatecall_count,create2_count:.heuristics_summary.create2_count,selfdestruct_count:.heuristics_summary.selfdestruct_count,dispatcher:.analysis_artifact.artifact_json.dispatcher_type,selectors:.analysis_artifact.artifact_json.selectors,functions:.analysis_artifact.artifact_json.functions,entries:.analysis_artifact.artifact_json.function_entries}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"flags": [
"create_opcodes_present"
],
"delegatecall_count": 0,
"create2_count": 2,
"selfdestruct_count": 0,
"dispatcher": "selector_jump_table",
"selectors": [
"0x06fdde03",
"0x18160ddd",
"0x1fe9eabc",
"0x23b872dd",
"0x313ce567",
"0x41fa4876",
"0x70a08231",
"0x7f2a8a80",
"0x8da5cb5b",
"0x95d89b41",
"0xa6f2ae3a",
"0xa9059cbb",
"0xaa295de9",
"0xcae9ca51",
"0xdc3080f2",
"0xdd62ed3e",
"0xe4849b32",
"0xf2fde38b",
"0xff9b3acf"
],
"functions": [
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x06fdde03",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 535423676,
"selector": "0x18160ddd",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 599290589,
"selector": "0x1fe9eabc",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 826074471,
"selector": "0x23b872dd",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1106921590,
"selector": "0x313ce567",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1889567281,
"selector": "0x41fa4876",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2133494400,
"selector": "0x70a08231",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2376452955,
"selector": "0x7f2a8a80",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2514000705,
"selector": "0x8da5cb5b",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2800922170,
"selector": "0x95d89b41",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2835717307,
"selector": "0xa6f2ae3a",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2854837737,
"selector": "0xa9059cbb",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3404319313,
"selector": "0xaa295de9",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3694166258,
"selector": "0xcae9ca51",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3714247998,
"selector": "0xdc3080f2",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3833895730,
"selector": "0xdd62ed3e",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 4076725131,
"selector": "0xe4849b32",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": 4288363215,
"selector": "0xf2fde38b",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
},
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0xff9b3acf",
"sinks": {
"call": 6,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
}
],
"entries": [
{
"entry_pc": null,
"selector": "0x06fdde03"
},
{
"entry_pc": 535423676,
"selector": "0x18160ddd"
},
{
"entry_pc": 599290589,
"selector": "0x1fe9eabc"
},
{
"entry_pc": 826074471,
"selector": "0x23b872dd"
},
{
"entry_pc": 1106921590,
"selector": "0x313ce567"
},
{
"entry_pc": 1889567281,
"selector": "0x41fa4876"
},
{
"entry_pc": 2133494400,
"selector": "0x70a08231"
},
{
"entry_pc": 2376452955,
"selector": "0x7f2a8a80"
},
{
"entry_pc": 2514000705,
"selector": "0x8da5cb5b"
},
{
"entry_pc": 2800922170,
"selector": "0x95d89b41"
},
{
"entry_pc": 2835717307,
"selector": "0xa6f2ae3a"
},
{
"entry_pc": 2854837737,
"selector": "0xa9059cbb"
},
{
"entry_pc": 3404319313,
"selector": "0xaa295de9"
},
{
"entry_pc": 3694166258,
"selector": "0xcae9ca51"
},
{
"entry_pc": 3714247998,
"selector": "0xdc3080f2"
},
{
"entry_pc": 3833895730,
"selector": "0xdd62ed3e"
},
{
"entry_pc": 4076725131,
"selector": "0xe4849b32"
},
{
"entry_pc": 4288363215,
"selector": "0xf2fde38b"
},
{
"entry_pc": null,
"selector": "0xff9b3acf"
}
]
}
exec
/bin/bash -lc "jq '.detector_findings' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
{
"confidence": 60,
"evidence_json": {
"call_count": 6,
"examples": [
{
"opcode": "CALL",
"pc": 1037,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1105,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1351,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 6
},
"normalized_json": {
"sink": "CALL"
},
"severity": "high",
"title": "Untrusted CALL target/value reachable",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
"trace_mode": "callTracer"
}
},
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 6,
"examples": [
{
"opcode": "CALL",
"pc": 1037,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1105,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1351,
"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",
"0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
"trace_mode": "callTracer"
}
},
{
"confidence": 45,
"evidence_json": {
"create2_count": 2,
"create_count": 0
},
"normalized_json": {
"sink": "CREATE"
},
"severity": "medium",
"title": "CREATE/CREATE2 reachable",
"validated": false,
"validation_json": {
"attempts": 32,
"call_targets": null,
"classification": "no_sink",
"confirmed": false,
"errors": 0,
"matched_probe": null,
"sink": "CREATE",
"status": "unknown",
"target_varies": null,
"trace_id": "0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f",
"trace_mode": "structLogs"
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.sinks' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"call": 6,
"create": 0,
"create2": 2,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0,
"upgrade_slot_write_suspected": false
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
{
"opcode": "CALL",
"pc": 1037,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1105,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1351,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2089,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALLCODE",
"pc": 2360,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2378,
"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-03j11m2y
succeeded in 0ms:
{
"keccak_count": 30,
"reads": 38,
"slots": [
{
"op": "SLOAD",
"pc": 239,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 310,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 330,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 342,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 423,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 548,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 578,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 597,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 667,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 687,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 762,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SSTORE",
"pc": 912,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1255,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 1285,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1728,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1873,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1955,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2278,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 14
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1105 and .end_pc >= 1037) | {start_pc,end_pc,ops}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"start_pc": 765,
"end_pc": 1053,
"ops": null
}
{
"start_pc": 1054,
"end_pc": 1078,
"ops": null
}
{
"start_pc": 1079,
"end_pc": 1110,
"ops": null
}
exec
/bin/bash -lc "rg -n 'bytecode|disasm|opcodes|evm' BYTECODE_BUNDLE.json | head -n 50" in /tmp/codex-03j11m2y
succeeded in 0ms:
13: "opcodes": [
27: "opcodes": [
45: "opcodes": [
57: "opcodes": [
69: "opcodes": [
81: "opcodes": [
93: "opcodes": [
105: "opcodes": [
117: "opcodes": [
129: "opcodes": [
141: "opcodes": [
153: "opcodes": [
165: "opcodes": [
177: "opcodes": [
189: "opcodes": [
201: "opcodes": [
213: "opcodes": [
225: "opcodes": [
237: "opcodes": [
249: "opcodes": [
261: "opcodes": [
270: "opcodes": [
331: "opcodes": [
343: "opcodes": [
364: "opcodes": [
377: "opcodes": [
405: "opcodes": [
414: "opcodes": [
453: "opcodes": [
462: "opcodes": [
477: "opcodes": [
490: "opcodes": [
501: "opcodes": [
515: "opcodes": [
560: "opcodes": [
575: "opcodes": [
587: "opcodes": [
611: "opcodes": [
638: "opcodes": [
647: "opcodes": [
666: "opcodes": [
725: "opcodes": [
737: "opcodes": [
758: "opcodes": [
782: "opcodes": [
791: "opcodes": [
828: "opcodes": [
837: "opcodes": [
850: "opcodes": [
1085: "opcodes": [
exec
/bin/bash -lc "jq '.analysis_artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
"address",
"artifact_hash",
"artifact_json",
"block_number",
"chain_id",
"codehash",
"created_at",
"id",
"updated_at",
"version"
]
exec
/bin/bash -lc "jq '.artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
"codehash",
"compiler_json",
"implementation_address",
"is_proxy",
"runtime_bytecode",
"verified_source"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1050 and .end_pc >= 760) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"start_pc": 756,
"end_pc": 764,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"SLOAD",
"OP_81",
"JUMP"
]
}
{
"start_pc": 765,
"end_pc": 1053,
"opcodes": [
"JUMPDEST",
"PUSH1",
"OP_80",
"MLOAD",
"PUSH1",
"PUSH1",
"CALLDATALOAD",
"PUSH1",
"OP_81",
"OP_81",
"ADD",
"CALLDATALOAD",
"PUSH1",
"OP_81",
"ADD",
"OP_84",
"OP_90",
"DIV",
"OP_84",
"MUL",
"OP_85",
"ADD",
"OP_84",
"ADD",
"OP_90",
"OP_95",
"MSTORE",
"OP_84",
"OP_84",
"MSTORE",
"PUSH2",
"OP_94",
"OP_81",
"CALLDATALOAD",
"OP_94",
"PUSH1",
"OP_80",
"CALLDATALOAD",
"OP_95",
"OP_93",
"OP_94",
"PUSH1",
"OP_94",
"OP_92",
"OP_93",
"OP_91",
"ADD",
"OP_91",
"OP_81",
"OP_90",
"OP_84",
"ADD",
"OP_83",
"OP_82",
"OP_80",
"OP_82",
"OP_84",
"CALLDATACOPY",
"POP",
"OP_94",
"OP_96",
"POP",
"POP",
"POP",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"PUSH1",
"OP_83",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"CALLER",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"POP",
"PUSH1",
"OP_87",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"OP_84",
"OP_90",
"POP",
"OP_80",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"PUSH4",
"CALLER",
"OP_86",
"ADDRESS",
"OP_87",
"PUSH1",
"MLOAD",
"OP_85",
"PUSH1",
"PUSH1",
"EXP",
"MUL",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_80",
"OP_85",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_84",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_83",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_80",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"SUB",
"OP_82",
"MSTORE",
"OP_83",
"OP_81",
"OP_81",
"MLOAD",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"OP_80",
"OP_83",
"OP_83",
"OP_82",
"OP_90",
"PUSH1",
"PUSH1",
"PUSH1",
"OP_84",
"PUSH1",
"ADD",
"DIV",
"PUSH1",
"MUL",
"PUSH1",
"ADD",
"CALL",
"POP",
"OP_90",
"POP",
"OP_90",
"OP_81",
"ADD",
"OP_90",
"PUSH1",
"AND",
"OP_80",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc >= 1054 and .start_pc <= 1400) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"start_pc": 1054,
"end_pc": 1078,
"opcodes": [
"OP_80",
"OP_82",
"SUB",
"OP_80",
"MLOAD",
"PUSH1",
"OP_83",
"PUSH1",
"SUB",
"PUSH2",
"EXP",
"SUB",
"NOT",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP"
]
}
{
"start_pc": 1079,
"end_pc": 1110,
"opcodes": [
"JUMPDEST",
"POP",
"OP_95",
"POP",
"POP",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"PUSH1",
"OP_87",
"PUSH2",
"GAS",
"SUB",
"CALL",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1111,
"end_pc": 1123,
"opcodes": [
"POP",
"PUSH1",
"OP_97",
"OP_96",
"POP",
"POP",
"POP",
"POP",
"POP",
"POP",
"POP",
"JUMP"
]
}
{
"start_pc": 1124,
"end_pc": 1160,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"CALLDATALOAD",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"OP_80",
"OP_82",
"SHA3",
"OP_90",
"OP_92",
"MSTORE",
"PUSH1",
"CALLDATALOAD",
"OP_81",
"MSTORE",
"SHA3",
"SLOAD",
"PUSH2",
"OP_90",
"OP_81",
"JUMP"
]
}
{
"start_pc": 1161,
"end_pc": 1197,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"CALLDATALOAD",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"OP_80",
"OP_82",
"SHA3",
"OP_90",
"OP_92",
"MSTORE",
"PUSH1",
"CALLDATALOAD",
"OP_81",
"MSTORE",
"SHA3",
"SLOAD",
"PUSH2",
"OP_90",
"OP_81",
"JUMP"
]
}
{
"start_pc": 1198,
"end_pc": 1241,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"CALLDATALOAD",
"CALLER",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_81",
"SHA3",
"SLOAD",
"PUSH2",
"OP_90",
"OP_83",
"OP_90",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1242,
"end_pc": 1245,
"opcodes": [
"PUSH2",
"JUMP"
]
}
{
"start_pc": 1246,
"end_pc": 1274,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"CALLDATALOAD",
"PUSH1",
"SLOAD",
"CALLER",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"OP_90",
"OP_81",
"AND",
"OP_91",
"AND",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1275,
"end_pc": 1278,
"opcodes": [
"PUSH2",
"JUMP"
]
}
{
"start_pc": 1279,
"end_pc": 1296,
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"SLOAD",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_81",
"JUMP"
]
}
{
"start_pc": 1297,
"end_pc": 1367,
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_80",
"PUSH1",
"ADD",
"OP_82",
"OP_81",
"SUB",
"OP_82",
"MSTORE",
"OP_83",
"OP_81",
"OP_81",
"MLOAD",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP",
"OP_80",
"MLOAD",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"OP_80",
"OP_83",
"OP_83",
"OP_82",
"OP_90",
"PUSH1",
"PUSH1",
"PUSH1",
"OP_84",
"PUSH1",
"ADD",
"DIV",
"PUSH1",
"MUL",
"PUSH1",
"ADD",
"CALL",
"POP",
"OP_90",
"POP",
"OP_90",
"OP_81",
"ADD",
"OP_90",
"PUSH1",
"AND",
"OP_80",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 1368,
"end_pc": 1392,
"opcodes": [
"OP_80",
"OP_82",
"SUB",
"OP_80",
"MLOAD",
"PUSH1",
"OP_83",
"PUSH1",
"SUB",
"PUSH2",
"EXP",
"SUB",
"NOT",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_91",
"POP"
]
}
{
"start_pc": 1393,
"end_pc": 1406,
"opcodes": [
"JUMPDEST",
"POP",
"OP_92",
"POP",
"POP",
"POP",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"RETURN"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc >= 2000 and .start_pc <= 2400) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"start_pc": 2016,
"end_pc": 2144,
"opcodes": [
"JUMPDEST",
"ADDRESS",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"OP_90",
"OP_81",
"AND",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_80",
"OP_82",
"SHA3",
"OP_80",
"SLOAD",
"OP_87",
"ADD",
"OP_90",
"SSTORE",
"CALLER",
"OP_90",
"OP_92",
"AND",
"OP_80",
"OP_82",
"MSTORE",
"OP_82",
"OP_82",
"SHA3",
"OP_80",
"SLOAD",
"OP_87",
"OP_90",
"SUB",
"OP_90",
"SSTORE",
"OP_91",
"MLOAD",
"PUSH4",
"OP_84",
"AND",
"OP_86",
"MUL",
"OP_94",
"POP",
"OP_84",
"OP_90",
"OP_82",
"OP_81",
"OP_81",
"OP_81",
"OP_85",
"OP_88",
"OP_83",
"CALL",
"POP",
"POP",
"PUSH1",
"OP_80",
"MLOAD",
"OP_87",
"OP_81",
"MSTORE",
"OP_90",
"MLOAD",
"ADDRESS",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"AND",
"OP_94",
"OP_93",
"POP",
"PUSH1",
"OP_80",
"MLOAD",
"PUSH1",
"PUSH2",
"OP_83",
"CODECOPY",
"OP_81",
"MLOAD",
"OP_91",
"MSTORE",
"OP_92",
"POP",
"OP_90",
"OP_81",
"OP_90",
"SUB",
"PUSH1",
"ADD",
"OP_90",
"OP_A3",
"POP",
"OP_91",
"OP_90",
"POP",
"JUMP"
]
}
{
"start_pc": 2145,
"end_pc": 2179,
"opcodes": [
"JUMPDEST",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"OP_82",
"AND",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_90",
"SHA3",
"SLOAD",
"OP_81",
"OP_81",
"ADD",
"LT",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2180,
"end_pc": 2183,
"opcodes": [
"PUSH2",
"JUMP"
]
}
{
"start_pc": 2184,
"end_pc": 2273,
"opcodes": [
"JUMPDEST",
"CALLER",
"PUSH1",
"PUSH1",
"PUSH1",
"EXP",
"SUB",
"OP_90",
"OP_81",
"AND",
"PUSH1",
"OP_81",
"OP_81",
"MSTORE",
"PUSH1",
"PUSH1",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"OP_80",
"OP_83",
"SHA3",
"OP_80",
"SLOAD",
"OP_87",
"OP_90",
"SUB",
"OP_90",
"SSTORE",
"OP_93",
"OP_86",
"AND",
"OP_80",
"OP_83",
"MSTORE",
"OP_91",
"OP_84",
"OP_90",
"SHA3",
"OP_80",
"SLOAD",
"OP_86",
"ADD",
"OP_90",
"SSTORE",
"OP_83",
"MLOAD",
"OP_85",
"OP_81",
"MSTORE",
"OP_93",
"MLOAD",
"OP_91",
"OP_93",
"PUSH1",
"OP_80",
"MLOAD",
"PUSH1",
"PUSH2",
"OP_83",
"CODECOPY",
"OP_81",
"MLOAD",
"OP_91",
"MSTORE",
"OP_92",
"OP_90",
"OP_81",
"OP_90",
"SUB",
"OP_90",
"OP_91",
"ADD",
"OP_90",
"OP_A3",
"POP",
"POP",
"JUMP"
]
}
{
"start_pc": 2274,
"end_pc": 2307,
"opcodes": [
"JUMPDEST",
"PUSH1",
"OP_80",
"SLOAD",
"PUSH20",
"NOT",
"AND",
"OP_82",
"OR",
"OP_90",
"SSTORE",
"POP",
"JUMP"
]
}
{
"start_pc": 2308,
"end_pc": 2321,
"opcodes": [
"JUMPDEST",
"OP_82",
"ADD",
"OP_91",
"OP_90",
"PUSH1",
"MSTORE",
"PUSH1",
"PUSH1",
"SHA3",
"OP_90"
]
}
{
"start_pc": 2322,
"end_pc": 2341,
"opcodes": [
"JUMPDEST",
"OP_81",
"SLOAD",
"OP_81",
"MSTORE",
"OP_90",
"PUSH1",
"ADD",
"OP_90",
"PUSH1",
"ADD",
"OP_80",
"OP_83",
"GT",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 2342,
"end_pc": 2350,
"opcodes": [
"OP_82",
"OP_90",
"SUB",
"PUSH1",
"AND",
"OP_82",
"ADD",
"OP_91"
]
}
{
"start_pc": 2351,
"end_pc": 2358,
"opcodes": [
"JUMPDEST",
"POP",
"POP",
"POP",
"POP",
"POP",
"OP_81",
"JUMP"
]
}
{
"start_pc": 2359,
"end_pc": 2390,
"opcodes": [
"OP_DD",
"CALLCODE",
"MSTORE",
"OP_AD",
"SHL",
"OP_E2",
"OP_C8",
"OP_9B",
"PUSH10",
"CALL",
"PUSH4",
"CREATE2",
"GAS",
"OP_4D",
"CREATE2",
"OP_23",
"OP_B3",
"OP_EF"
]
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from==2359 or .to==2359 or .to==2360 or .to==2378 or .from==2274 or .to==2274 or .from==2016 or .to==2016)' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[:20]' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
[
{
"from": "bb:0",
"to": "bb:229",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:231",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:31",
"type": "control_flow_fallthrough"
},
{
"from": "bb:31",
"to": "bb:324",
"type": "control_flow"
},
{
"from": "bb:31",
"to": "bb:42",
"type": "control_flow_fallthrough"
},
{
"from": "bb:42",
"to": "bb:333",
"type": "control_flow"
},
{
"from": "bb:42",
"to": "bb:53",
"type": "control_flow_fallthrough"
},
{
"from": "bb:53",
"to": "bb:367",
"type": "control_flow"
},
{
"from": "bb:53",
"to": "bb:64",
"type": "control_flow_fallthrough"
},
{
"from": "bb:64",
"to": "bb:417",
"type": "control_flow"
},
{
"from": "bb:64",
"to": "bb:75",
"type": "control_flow_fallthrough"
},
{
"from": "bb:75",
"to": "bb:429",
"type": "control_flow"
},
{
"from": "bb:75",
"to": "bb:86",
"type": "control_flow_fallthrough"
},
{
"from": "bb:86",
"to": "bb:515",
"type": "control_flow"
},
{
"from": "bb:86",
"to": "bb:97",
"type": "control_flow_fallthrough"
},
{
"from": "bb:97",
"to": "bb:539",
"type": "control_flow"
},
{
"from": "bb:97",
"to": "bb:108",
"type": "control_flow_fallthrough"
},
{
"from": "bb:108",
"to": "bb:572",
"type": "control_flow"
},
{
"from": "bb:108",
"to": "bb:119",
"type": "control_flow_fallthrough"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from==\"bb:2016\" or .to==\"bb:2016\" or .from==\"bb:2274\" or .to==\"bb:2274\" or .from==\"bb:2359\" or .to==\"bb:2359\")' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"from": "bb:1198",
"to": "bb:2016",
"type": "control_flow"
}
{
"from": "bb:1246",
"to": "bb:2274",
"type": "control_flow"
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc < 230) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"start_pc": 0,
"end_pc": 10,
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"CALLDATASIZE",
"ISZERO",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 11,
"end_pc": 30,
"opcodes": [
"PUSH1",
"PUSH1",
"EXP",
"PUSH1",
"CALLDATALOAD",
"DIV",
"PUSH4",
"OP_81",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 31,
"end_pc": 41,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 42,
"end_pc": 52,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 53,
"end_pc": 63,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 64,
"end_pc": 74,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 75,
"end_pc": 85,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 86,
"end_pc": 96,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 97,
"end_pc": 107,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 108,
"end_pc": 118,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 119,
"end_pc": 129,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 130,
"end_pc": 140,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 141,
"end_pc": 151,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 152,
"end_pc": 162,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 163,
"end_pc": 173,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 174,
"end_pc": 184,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 185,
"end_pc": 195,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 196,
"end_pc": 206,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 207,
"end_pc": 217,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 218,
"end_pc": 228,
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
]
}
{
"start_pc": 229,
"end_pc": 230,
"opcodes": [
"JUMPDEST",
"STOP"
]
}
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode[:80], .artifact.is_proxy, .artifact.implementation_address, .artifact.verified_source' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
exited 5 in 0ms:
jq: error (at BYTECODE_BUNDLE.json:6827): Cannot index object with object
exec
/bin/bash -lc "jq '.artifact' BYTECODE_BUNDLE.json | head -n 80" in /tmp/codex-03j11m2y
succeeded in 0ms:
{
"codehash": "0xb02c55ff94032a472866554e1627f870c48120d167e58ef3b5e931559e830b5d",
"compiler_json": {
"etherscan": {
"skipped": true
}
},
"implementation_address": null,
"is_proxy": false,
"runtime_bytecode": {
"full": "0x606060405236156100e55760e060020a600035046306fdde0381146100e757806318160ddd146101445780631fe9eabc1461014d57806323b872dd1461016f578063313ce567146101a157806341fa4876146101ad57806370a08231146102035780637f2a8a801461021b5780638da5cb5b1461023c57806395d89b411461024e578063a6f2ae3a146102a9578063a9059cbb146102c5578063aa295de9146102f4578063cae9ca51146102fd578063dc3080f214610464578063dd62ed3e14610489578063e4849b32146104ae578063f2fde38b146104de578063ff9b3acf146104ff575b005b60408051600180546020600282841615610100026000190190921691909104601f8101829004820284018201909452838352610511939083018282801561092f5780601f106109045761010080835404028352916020019161092f565b61057f60045481565b6100e5600435600054600160a060020a0390811633909116146106b757610002565b61057f600435602435604435600160a060020a038316600090815260076020526040812054829010156105cc57610002565b61059160035460ff1681565b61057f6004356024355b600080805b838110156105c45760408051438390036000190140815260208101879052815190819003909101902060029006600014156101fb57600281900a909101905b6001016101bc565b61057f60043560076020526000908152604090205481565b6100e560043560005433600160a060020a039081169116146106bc57610002565b6105a7600054600160a060020a031681565b6105116002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b61057f600654349060009060649082908411156106de57610002565b6100e560043560243533600160a060020a03166000908152600760205260409020548190101561086157610002565b61057f60065481565b604080516020604435600481810135601f810184900484028501840190955284845261057f94813594602480359593946064949293910191819084018382808284375094965050505050505060006000836008600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156104375780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257506001979650505050505050565b60096020908152600435600090815260408082209092526024358152205461057f9081565b60086020908152600435600090815260408082209092526024358152205461057f9081565b61057f60043533600160a060020a031660009081526007602052604081205461138890839010156107e057610002565b6100e560043560005433600160a060020a039081169116146108e257610002565b6105a7600554600160a060020a031681565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff9092168252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b509392505050565b600160a060020a03831660009081526007602052604090205480830110156105f357610002565b600160a060020a03848116600081815260086020908152604080832033909516808452948252808320549383526009825280832094835293905291909120548301111561063f57610002565b600160a060020a038481166000818152600760209081526040808320805488900390558785168084528184208054890190558484526009835281842033909616845294825291829020805487019055815186815291516000805160206109378339815191529281900390910190a35060019392505050565b600655565b6005805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b60408051438152426020820152808201869052905190819003606001902061070790600a6101b7565b90506102008110610719576064840292505b61020081101561072b57612648840292505b33600160a060020a03908116600081815260076020908152604080832080548901905560055485168352808320805463ffffffff89169081019091553090951680845292819020805495890190950390945583518781529351929391926000805160206109378339815191529281900390910190a36005546040805163ffffffff851681529051600160a060020a0392831692301691600080516020610937833981519152919081900360200190a350505090565b30600160a060020a039081166000908152600760205260408082208054870190553390921680825282822080548790039055915163ffffffff841686029450849082818181858883f1505060408051878152905130600160a060020a031694935060008051602061093783398151915292509081900360200190a350919050565b600160a060020a038216600090815260076020526040902054818101101561088857610002565b33600160a060020a0390811660008181526007602090815260408083208054879003905593861680835291849020805486019055835185815293519193600080516020610937833981519152929081900390910190a35050565b6000805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b50505050508156ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"head": null,
"length": 4784,
"tail": null,
"truncated": false
},
"verified_source": false
}
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 106ms:
994 SUB
995 DUP3
996 MSTORE
997 DUP4
998 DUP2
999 DUP2
1000 MLOAD
1001 DUP2
1002 MSTORE
1003 PUSH1 0x20
1005 ADD
1006 SWAP2
1007 POP
1008 DUP1
1009 MLOAD
1010 SWAP1
1011 PUSH1 0x20
1013 ADD
1014 SWAP1
1015 DUP1
1016 DUP4
1017 DUP4
1018 DUP3
1019 SWAP1
1020 PUSH1 0x00
1022 PUSH1 0x04
1024 PUSH1 0x20
1026 DUP5
1027 PUSH1 0x1f
1029 ADD
1030 DIV
1031 PUSH1 0x0f
1033 MUL
1034 PUSH1 0x03
1036 ADD
1037 CALL
1038 POP
1039 SWAP1
1040 POP
1041 SWAP1
1042 DUP2
1043 ADD
1044 SWAP1
1045 PUSH1 0x1f
1047 AND
1048 DUP1
1049 ISZERO
1050 PUSH2 0x0437
1053 JUMPI
1054 DUP1
1055 DUP3
1056 SUB
1057 DUP1
1058 MLOAD
1059 PUSH1 0x01
1061 DUP4
1062 PUSH1 0x20
1064 SUB
1065 PUSH2 0x0100
1068 EXP
1069 SUB
1070 NOT
1071 AND
1072 DUP2
1073 MSTORE
1074 PUSH1 0x20
1076 ADD
1077 SWAP2
1078 POP
1079 JUMPDEST
1080 POP
---
1080 POP
1081 SWAP6
1082 POP
1083 POP
1084 POP
1085 POP
1086 POP
1087 POP
1088 PUSH1 0x00
1090 PUSH1 0x40
1092 MLOAD
1093 DUP1
1094 DUP4
1095 SUB
1096 DUP2
1097 PUSH1 0x00
1099 DUP8
1100 PUSH2 0x61da
1103 GAS
1104 SUB
1105 CALL
1106 ISZERO
1107 PUSH2 0x0002
1110 JUMPI
1111 POP
1112 PUSH1 0x01
1114 SWAP8
1115 SWAP7
1116 POP
1117 POP
1118 POP
1119 POP
1120 POP
1121 POP
1122 POP
1123 JUMP
1124 JUMPDEST
1125 PUSH1 0x09
1127 PUSH1 0x20
1129 SWAP1
1130 DUP2
---
1324 SWAP1
1325 PUSH1 0x20
1327 ADD
1328 SWAP1
1329 DUP1
1330 DUP4
1331 DUP4
1332 DUP3
1333 SWAP1
1334 PUSH1 0x00
1336 PUSH1 0x04
1338 PUSH1 0x20
1340 DUP5
1341 PUSH1 0x1f
1343 ADD
1344 DIV
1345 PUSH1 0x0f
1347 MUL
1348 PUSH1 0x03
1350 ADD
1351 CALL
1352 POP
1353 SWAP1
1354 POP
1355 SWAP1
1356 DUP2
1357 ADD
1358 SWAP1
1359 PUSH1 0x1f
1361 AND
1362 DUP1
1363 ISZERO
1364 PUSH2 0x0571
1367 JUMPI
1368 DUP1
1369 DUP3
1370 SUB
1371 DUP1
1372 MLOAD
1373 PUSH1 0x01
1375 DUP4
---
2060 DUP1
2061 SLOAD
2062 DUP8
2063 SWAP1
2064 SUB
2065 SWAP1
2066 SSTORE
2067 SWAP2
2068 MLOAD
2069 PUSH4 0xffffffff
2074 DUP5
2075 AND
2076 DUP7
2077 MUL
2078 SWAP5
2079 POP
2080 DUP5
2081 SWAP1
2082 DUP3
2083 DUP2
2084 DUP2
2085 DUP2
2086 DUP6
2087 DUP9
2088 DUP4
2089 CALL
2090 POP
2091 POP
2092 PUSH1 0x40
2094 DUP1
2095 MLOAD
2096 DUP8
2097 DUP2
2098 MSTORE
2099 SWAP1
2100 MLOAD
2101 ADDRESS
2102 PUSH1 0x01
2104 PUSH1 0xa0
2106 PUSH1 0x02
2108 EXP
2109 SUB
2110 AND
2111 SWAP5
2112 SWAP4
2113 POP
2114 PUSH1 0x00
2116 DUP1
2117 MLOAD
2118 PUSH1 0x20
2120 PUSH2 0x0937
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 1ms:
0 PUSH1 0x60
2 PUSH1 0x40
4 MSTORE
5 CALLDATASIZE
6 ISZERO
7 PUSH2 0x00e5
10 JUMPI
11 PUSH1 0xe0
13 PUSH1 0x02
15 EXP
16 PUSH1 0x00
18 CALLDATALOAD
19 DIV
20 PUSH4 0x06fdde03
25 DUP2
26 EQ
27 PUSH2 0x00e7
30 JUMPI
31 DUP1
32 PUSH4 0x18160ddd
37 EQ
38 PUSH2 0x0144
41 JUMPI
42 DUP1
43 PUSH4 0x1fe9eabc
48 EQ
49 PUSH2 0x014d
52 JUMPI
53 DUP1
54 PUSH4 0x23b872dd
59 EQ
60 PUSH2 0x016f
63 JUMPI
64 DUP1
65 PUSH4 0x313ce567
70 EQ
71 PUSH2 0x01a1
74 JUMPI
75 DUP1
76 PUSH4 0x41fa4876
81 EQ
82 PUSH2 0x01ad
85 JUMPI
86 DUP1
87 PUSH4 0x70a08231
92 EQ
93 PUSH2 0x0203
96 JUMPI
97 DUP1
98 PUSH4 0x7f2a8a80
103 EQ
104 PUSH2 0x021b
107 JUMPI
108 DUP1
109 PUSH4 0x8da5cb5b
114 EQ
115 PUSH2 0x023c
118 JUMPI
119 DUP1
120 PUSH4 0x95d89b41
125 EQ
126 PUSH2 0x024e
129 JUMPI
130 DUP1
131 PUSH4 0xa6f2ae3a
136 EQ
137 PUSH2 0x02a9
140 JUMPI
141 DUP1
142 PUSH4 0xa9059cbb
147 EQ
148 PUSH2 0x02c5
151 JUMPI
152 DUP1
153 PUSH4 0xaa295de9
158 EQ
159 PUSH2 0x02f4
162 JUMPI
163 DUP1
164 PUSH4 0xcae9ca51
169 EQ
170 PUSH2 0x02fd
173 JUMPI
174 DUP1
175 PUSH4 0xdc3080f2
180 EQ
181 PUSH2 0x0464
184 JUMPI
185 DUP1
186 PUSH4 0xdd62ed3e
191 EQ
192 PUSH2 0x0489
195 JUMPI
196 DUP1
197 PUSH4 0xe4849b32
202 EQ
203 PUSH2 0x04ae
206 JUMPI
207 DUP1
208 PUSH4 0xf2fde38b
213 EQ
214 PUSH2 0x04de
217 JUMPI
218 DUP1
219 PUSH4 0xff9b3acf
224 EQ
225 PUSH2 0x04ff
228 JUMPI
229 JUMPDEST
230 STOP
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 9ms:
ENTRY e7
231 JUMPDEST
232 PUSH1 0x40
234 DUP1
235 MLOAD
236 PUSH1 0x01
238 DUP1
239 SLOAD
240 PUSH1 0x20
242 PUSH1 0x02
244 DUP3
245 DUP5
246 AND
247 ISZERO
248 PUSH2 0x0100
251 MUL
252 PUSH1 0x00
254 NOT
255 ADD
256 SWAP1
257 SWAP3
258 AND
259 SWAP2
260 SWAP1
261 SWAP2
262 DIV
263 PUSH1 0x1f
265 DUP2
266 ADD
267 DUP3
268 SWAP1
269 DIV
270 DUP3
271 MUL
---
ENTRY 144
324 JUMPDEST
325 PUSH2 0x057f
328 PUSH1 0x04
330 SLOAD
331 DUP2
332 JUMP
333 JUMPDEST
334 PUSH2 0x00e5
337 PUSH1 0x04
339 CALLDATALOAD
340 PUSH1 0x00
342 SLOAD
343 PUSH1 0x01
345 PUSH1 0xa0
347 PUSH1 0x02
349 EXP
350 SUB
351 SWAP1
352 DUP2
353 AND
354 CALLER
355 SWAP1
356 SWAP2
357 AND
358 EQ
359 PUSH2 0x06b7
362 JUMPI
363 PUSH2 0x0002
---
ENTRY 14d
333 JUMPDEST
334 PUSH2 0x00e5
337 PUSH1 0x04
339 CALLDATALOAD
340 PUSH1 0x00
342 SLOAD
343 PUSH1 0x01
345 PUSH1 0xa0
347 PUSH1 0x02
349 EXP
350 SUB
351 SWAP1
352 DUP2
353 AND
354 CALLER
355 SWAP1
356 SWAP2
357 AND
358 EQ
359 PUSH2 0x06b7
362 JUMPI
363 PUSH2 0x0002
366 JUMP
367 JUMPDEST
368 PUSH2 0x057f
371 PUSH1 0x04
373 CALLDATALOAD
---
ENTRY 16f
367 JUMPDEST
368 PUSH2 0x057f
371 PUSH1 0x04
373 CALLDATALOAD
374 PUSH1 0x24
376 CALLDATALOAD
377 PUSH1 0x44
379 CALLDATALOAD
380 PUSH1 0x01
382 PUSH1 0xa0
384 PUSH1 0x02
386 EXP
387 SUB
388 DUP4
389 AND
390 PUSH1 0x00
392 SWAP1
393 DUP2
394 MSTORE
395 PUSH1 0x07
397 PUSH1 0x20
399 MSTORE
400 PUSH1 0x40
402 DUP2
403 SHA3
404 SLOAD
405 DUP3
406 SWAP1
407 LT
---
ENTRY 1a1
417 JUMPDEST
418 PUSH2 0x0591
421 PUSH1 0x03
423 SLOAD
424 PUSH1 0xff
426 AND
427 DUP2
428 JUMP
429 JUMPDEST
430 PUSH2 0x057f
433 PUSH1 0x04
435 CALLDATALOAD
436 PUSH1 0x24
438 CALLDATALOAD
439 JUMPDEST
440 PUSH1 0x00
442 DUP1
443 DUP1
444 JUMPDEST
445 DUP4
446 DUP2
447 LT
448 ISZERO
449 PUSH2 0x05c4
452 JUMPI
453 PUSH1 0x40
455 DUP1
456 MLOAD
457 NUMBER
---
ENTRY 1ad
429 JUMPDEST
430 PUSH2 0x057f
433 PUSH1 0x04
435 CALLDATALOAD
436 PUSH1 0x24
438 CALLDATALOAD
439 JUMPDEST
440 PUSH1 0x00
442 DUP1
443 DUP1
444 JUMPDEST
445 DUP4
446 DUP2
447 LT
448 ISZERO
449 PUSH2 0x05c4
452 JUMPI
453 PUSH1 0x40
455 DUP1
456 MLOAD
457 NUMBER
458 DUP4
459 SWAP1
460 SUB
461 PUSH1 0x00
463 NOT
464 ADD
465 BLOCKHASH
466 DUP2
467 MSTORE
468 PUSH1 0x20
---
ENTRY 203
515 JUMPDEST
516 PUSH2 0x057f
519 PUSH1 0x04
521 CALLDATALOAD
522 PUSH1 0x07
524 PUSH1 0x20
526 MSTORE
527 PUSH1 0x00
529 SWAP1
530 DUP2
531 MSTORE
532 PUSH1 0x40
534 SWAP1
535 SHA3
536 SLOAD
537 DUP2
538 JUMP
539 JUMPDEST
540 PUSH2 0x00e5
543 PUSH1 0x04
545 CALLDATALOAD
546 PUSH1 0x00
548 SLOAD
549 CALLER
550 PUSH1 0x01
552 PUSH1 0xa0
554 PUSH1 0x02
---
ENTRY 21b
539 JUMPDEST
540 PUSH2 0x00e5
543 PUSH1 0x04
545 CALLDATALOAD
546 PUSH1 0x00
548 SLOAD
549 CALLER
550 PUSH1 0x01
552 PUSH1 0xa0
554 PUSH1 0x02
556 EXP
557 SUB
558 SWAP1
559 DUP2
560 AND
561 SWAP2
562 AND
563 EQ
564 PUSH2 0x06bc
567 JUMPI
568 PUSH2 0x0002
571 JUMP
572 JUMPDEST
573 PUSH2 0x05a7
576 PUSH1 0x00
578 SLOAD
579 PUSH1 0x01
---
ENTRY 23c
572 JUMPDEST
573 PUSH2 0x05a7
576 PUSH1 0x00
578 SLOAD
579 PUSH1 0x01
581 PUSH1 0xa0
583 PUSH1 0x02
585 EXP
586 SUB
587 AND
588 DUP2
589 JUMP
590 JUMPDEST
591 PUSH2 0x0511
594 PUSH1 0x02
596 DUP1
597 SLOAD
598 PUSH1 0x40
600 DUP1
601 MLOAD
602 PUSH1 0x20
604 PUSH1 0x01
606 DUP5
607 AND
608 ISZERO
609 PUSH2 0x0100
612 MUL
---
ENTRY 24e
590 JUMPDEST
591 PUSH2 0x0511
594 PUSH1 0x02
596 DUP1
597 SLOAD
598 PUSH1 0x40
600 DUP1
601 MLOAD
602 PUSH1 0x20
604 PUSH1 0x01
606 DUP5
607 AND
608 ISZERO
609 PUSH2 0x0100
612 MUL
613 PUSH1 0x00
615 NOT
616 ADD
617 SWAP1
618 SWAP4
619 AND
620 DUP5
621 SWAP1
622 DIV
623 PUSH1 0x1f
625 DUP2
626 ADD
627 DUP5
628 SWAP1
629 DIV
630 DUP5
---
ENTRY 2a9
681 JUMPDEST
682 PUSH2 0x057f
685 PUSH1 0x06
687 SLOAD
688 CALLVALUE
689 SWAP1
690 PUSH1 0x00
692 SWAP1
693 PUSH1 0x64
695 SWAP1
696 DUP3
697 SWAP1
698 DUP5
699 GT
700 ISZERO
701 PUSH2 0x06de
704 JUMPI
705 PUSH2 0x0002
708 JUMP
709 JUMPDEST
710 PUSH2 0x00e5
713 PUSH1 0x04
715 CALLDATALOAD
716 PUSH1 0x24
718 CALLDATALOAD
719 CALLER
720 PUSH1 0x01
---
ENTRY 2c5
709 JUMPDEST
710 PUSH2 0x00e5
713 PUSH1 0x04
715 CALLDATALOAD
716 PUSH1 0x24
718 CALLDATALOAD
719 CALLER
720 PUSH1 0x01
722 PUSH1 0xa0
724 PUSH1 0x02
726 EXP
727 SUB
728 AND
729 PUSH1 0x00
731 SWAP1
732 DUP2
733 MSTORE
734 PUSH1 0x07
736 PUSH1 0x20
738 MSTORE
739 PUSH1 0x40
741 SWAP1
742 SHA3
743 SLOAD
744 DUP2
745 SWAP1
746 LT
747 ISZERO
748 PUSH2 0x0861
---
ENTRY 2f4
756 JUMPDEST
757 PUSH2 0x057f
760 PUSH1 0x06
762 SLOAD
763 DUP2
764 JUMP
765 JUMPDEST
766 PUSH1 0x40
768 DUP1
769 MLOAD
770 PUSH1 0x20
772 PUSH1 0x44
774 CALLDATALOAD
775 PUSH1 0x04
777 DUP2
778 DUP2
779 ADD
780 CALLDATALOAD
781 PUSH1 0x1f
783 DUP2
784 ADD
785 DUP5
786 SWAP1
787 DIV
788 DUP5
789 MUL
790 DUP6
791 ADD
792 DUP5
793 ADD
794 SWAP1
795 SWAP6
796 MSTORE
---
ENTRY 2fd
765 JUMPDEST
766 PUSH1 0x40
768 DUP1
769 MLOAD
770 PUSH1 0x20
772 PUSH1 0x44
774 CALLDATALOAD
775 PUSH1 0x04
777 DUP2
778 DUP2
779 ADD
780 CALLDATALOAD
781 PUSH1 0x1f
783 DUP2
784 ADD
785 DUP5
786 SWAP1
787 DIV
788 DUP5
789 MUL
790 DUP6
791 ADD
792 DUP5
793 ADD
794 SWAP1
795 SWAP6
796 MSTORE
797 DUP5
798 DUP5
799 MSTORE
800 PUSH2 0x057f
803 SWAP5
804 DUP2
805 CALLDATALOAD
---
ENTRY 464
1124 JUMPDEST
1125 PUSH1 0x09
1127 PUSH1 0x20
1129 SWAP1
1130 DUP2
1131 MSTORE
1132 PUSH1 0x04
1134 CALLDATALOAD
1135 PUSH1 0x00
1137 SWAP1
1138 DUP2
1139 MSTORE
1140 PUSH1 0x40
1142 DUP1
1143 DUP3
1144 SHA3
1145 SWAP1
1146 SWAP3
1147 MSTORE
1148 PUSH1 0x24
1150 CALLDATALOAD
1151 DUP2
1152 MSTORE
1153 SHA3
1154 SLOAD
1155 PUSH2 0x057f
1158 SWAP1
1159 DUP2
1160 JUMP
1161 JUMPDEST
1162 PUSH1 0x08
1164 PUSH1 0x20
---
ENTRY 489
1161 JUMPDEST
1162 PUSH1 0x08
1164 PUSH1 0x20
1166 SWAP1
1167 DUP2
1168 MSTORE
1169 PUSH1 0x04
1171 CALLDATALOAD
1172 PUSH1 0x00
1174 SWAP1
1175 DUP2
1176 MSTORE
1177 PUSH1 0x40
1179 DUP1
1180 DUP3
1181 SHA3
1182 SWAP1
1183 SWAP3
1184 MSTORE
1185 PUSH1 0x24
1187 CALLDATALOAD
1188 DUP2
1189 MSTORE
1190 SHA3
1191 SLOAD
1192 PUSH2 0x057f
1195 SWAP1
1196 DUP2
1197 JUMP
1198 JUMPDEST
1199 PUSH2 0x057f
---
ENTRY 4ae
1198 JUMPDEST
1199 PUSH2 0x057f
1202 PUSH1 0x04
1204 CALLDATALOAD
1205 CALLER
1206 PUSH1 0x01
1208 PUSH1 0xa0
1210 PUSH1 0x02
1212 EXP
1213 SUB
1214 AND
1215 PUSH1 0x00
1217 SWAP1
1218 DUP2
1219 MSTORE
1220 PUSH1 0x07
1222 PUSH1 0x20
1224 MSTORE
1225 PUSH1 0x40
1227 DUP2
1228 SHA3
1229 SLOAD
1230 PUSH2 0x1388
1233 SWAP1
1234 DUP4
1235 SWAP1
1236 LT
1237 ISZERO
1238 PUSH2 0x07e0
---
ENTRY 4de
1246 JUMPDEST
1247 PUSH2 0x00e5
1250 PUSH1 0x04
1252 CALLDATALOAD
1253 PUSH1 0x00
1255 SLOAD
1256 CALLER
1257 PUSH1 0x01
1259 PUSH1 0xa0
1261 PUSH1 0x02
1263 EXP
1264 SUB
1265 SWAP1
1266 DUP2
1267 AND
1268 SWAP2
1269 AND
1270 EQ
1271 PUSH2 0x08e2
1274 JUMPI
1275 PUSH2 0x0002
1278 JUMP
1279 JUMPDEST
1280 PUSH2 0x05a7
1283 PUSH1 0x05
1285 SLOAD
1286 PUSH1 0x01
---
ENTRY 4ff
1279 JUMPDEST
1280 PUSH2 0x05a7
1283 PUSH1 0x05
1285 SLOAD
1286 PUSH1 0x01
1288 PUSH1 0xa0
1290 PUSH1 0x02
1292 EXP
1293 SUB
1294 AND
1295 DUP2
1296 JUMP
1297 JUMPDEST
1298 PUSH1 0x40
1300 MLOAD
1301 DUP1
1302 DUP1
1303 PUSH1 0x20
1305 ADD
1306 DUP3
1307 DUP2
1308 SUB
1309 DUP3
1310 MSTORE
1311 DUP4
1312 DUP2
1313 DUP2
1314 MLOAD
1315 DUP2
1316 MSTORE
1317 PUSH1 0x20
1319 ADD
---
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 6ms:
333 JUMPDEST
334 PUSH2 0x00e5
337 PUSH1 0x04
339 CALLDATALOAD
340 PUSH1 0x00
342 SLOAD
343 PUSH1 0x01
345 PUSH1 0xa0
347 PUSH1 0x02
349 EXP
350 SUB
351 SWAP1
352 DUP2
353 AND
354 CALLER
355 SWAP1
356 SWAP2
357 AND
358 EQ
359 PUSH2 0x06b7
362 JUMPI
363 PUSH2 0x0002
366 JUMP
367 JUMPDEST
368 PUSH2 0x057f
371 PUSH1 0x04
373 CALLDATALOAD
374 PUSH1 0x24
376 CALLDATALOAD
377 PUSH1 0x44
379 CALLDATALOAD
380 PUSH1 0x01
382 PUSH1 0xa0
384 PUSH1 0x02
386 EXP
387 SUB
388 DUP4
389 AND
390 PUSH1 0x00
392 SWAP1
393 DUP2
394 MSTORE
395 PUSH1 0x07
397 PUSH1 0x20
399 MSTORE
400 PUSH1 0x40
402 DUP2
403 SHA3
404 SLOAD
405 DUP3
406 SWAP1
407 LT
408 ISZERO
409 PUSH2 0x05cc
412 JUMPI
413 PUSH2 0x0002
416 JUMP
417 JUMPDEST
418 PUSH2 0x0591
421 PUSH1 0x03
423 SLOAD
424 PUSH1 0xff
426 AND
427 DUP2
428 JUMP
429 JUMPDEST
430 PUSH2 0x057f
433 PUSH1 0x04
435 CALLDATALOAD
436 PUSH1 0x24
438 CALLDATALOAD
439 JUMPDEST
440 PUSH1 0x00
442 DUP1
443 DUP1
444 JUMPDEST
445 DUP4
446 DUP2
447 LT
448 ISZERO
449 PUSH2 0x05c4
452 JUMPI
453 PUSH1 0x40
455 DUP1
456 MLOAD
457 NUMBER
458 DUP4
459 SWAP1
460 SUB
461 PUSH1 0x00
463 NOT
464 ADD
465 BLOCKHASH
466 DUP2
467 MSTORE
468 PUSH1 0x20
470 DUP2
471 ADD
472 DUP8
473 SWAP1
474 MSTORE
475 DUP2
476 MLOAD
477 SWAP1
478 DUP2
479 SWAP1
480 SUB
481 SWAP1
482 SWAP2
483 ADD
484 SWAP1
485 SHA3
486 PUSH1 0x02
488 SWAP1
489 MOD
490 PUSH1 0x00
492 EQ
493 ISZERO
494 PUSH2 0x01fb
497 JUMPI
498 PUSH1 0x02
500 DUP2
501 SWAP1
502 EXP
503 SWAP1
504 SWAP2
505 ADD
506 SWAP1
507 JUMPDEST
508 PUSH1 0x01
510 ADD
511 PUSH2 0x01bc
514 JUMP
515 JUMPDEST
516 PUSH2 0x057f
519 PUSH1 0x04
521 CALLDATALOAD
522 PUSH1 0x07
524 PUSH1 0x20
526 MSTORE
527 PUSH1 0x00
529 SWAP1
530 DUP2
531 MSTORE
532 PUSH1 0x40
534 SWAP1
535 SHA3
536 SLOAD
537 DUP2
538 JUMP
539 JUMPDEST
540 PUSH2 0x00e5
543 PUSH1 0x04
545 CALLDATALOAD
546 PUSH1 0x00
548 SLOAD
549 CALLER
550 PUSH1 0x01
552 PUSH1 0xa0
554 PUSH1 0x02
556 EXP
557 SUB
558 SWAP1
559 DUP2
560 AND
561 SWAP2
562 AND
563 EQ
564 PUSH2 0x06bc
567 JUMPI
568 PUSH2 0x0002
571 JUMP
572 JUMPDEST
573 PUSH2 0x05a7
576 PUSH1 0x00
578 SLOAD
579 PUSH1 0x01
581 PUSH1 0xa0
583 PUSH1 0x02
585 EXP
586 SUB
587 AND
588 DUP2
589 JUMP
590 JUMPDEST
591 PUSH2 0x0511
594 PUSH1 0x02
596 DUP1
597 SLOAD
598 PUSH1 0x40
600 DUP1
601 MLOAD
602 PUSH1 0x20
604 PUSH1 0x01
606 DUP5
607 AND
608 ISZERO
609 PUSH2 0x0100
612 MUL
613 PUSH1 0x00
615 NOT
616 ADD
617 SWAP1
618 SWAP4
619 AND
620 DUP5
621 SWAP1
622 DIV
623 PUSH1 0x1f
625 DUP2
626 ADD
627 DUP5
628 SWAP1
629 DIV
630 DUP5
631 MUL
632 DUP3
633 ADD
634 DUP5
635 ADD
636 SWAP1
637 SWAP3
638 MSTORE
639 DUP2
640 DUP2
641 MSTORE
642 SWAP3
643 SWAP2
644 DUP4
645 ADD
646 DUP3
647 DUP3
648 DUP1
649 ISZERO
650 PUSH2 0x092f
653 JUMPI
654 DUP1
655 PUSH1 0x1f
657 LT
658 PUSH2 0x0904
661 JUMPI
662 PUSH2 0x0100
665 DUP1
666 DUP4
667 SLOAD
668 DIV
669 MUL
670 DUP4
671 MSTORE
672 SWAP2
673 PUSH1 0x20
675 ADD
676 SWAP2
677 PUSH2 0x092f
680 JUMP
681 JUMPDEST
682 PUSH2 0x057f
685 PUSH1 0x06
687 SLOAD
688 CALLVALUE
689 SWAP1
690 PUSH1 0x00
692 SWAP1
693 PUSH1 0x64
695 SWAP1
696 DUP3
697 SWAP1
698 DUP5
699 GT
700 ISZERO
701 PUSH2 0x06de
704 JUMPI
705 PUSH2 0x0002
708 JUMP
709 JUMPDEST
710 PUSH2 0x00e5
713 PUSH1 0x04
715 CALLDATALOAD
716 PUSH1 0x24
718 CALLDATALOAD
719 CALLER
720 PUSH1 0x01
722 PUSH1 0xa0
724 PUSH1 0x02
726 EXP
727 SUB
728 AND
729 PUSH1 0x00
731 SWAP1
732 DUP2
733 MSTORE
734 PUSH1 0x07
736 PUSH1 0x20
738 MSTORE
739 PUSH1 0x40
741 SWAP1
742 SHA3
743 SLOAD
744 DUP2
745 SWAP1
746 LT
747 ISZERO
748 PUSH2 0x0861
751 JUMPI
752 PUSH2 0x0002
755 JUMP
756 JUMPDEST
757 PUSH2 0x057f
760 PUSH1 0x06
--- 1710-2300 ---
1710 POP
1711 PUSH1 0x01
1713 SWAP4
1714 SWAP3
1715 POP
1716 POP
1717 POP
1718 JUMP
1719 JUMPDEST
1720 PUSH1 0x06
1722 SSTORE
1723 JUMP
1724 JUMPDEST
1725 PUSH1 0x05
1727 DUP1
1728 SLOAD
1729 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
1750 NOT
1751 AND
1752 DUP3
1753 OR
1754 SWAP1
1755 SSTORE
1756 POP
1757 JUMP
1758 JUMPDEST
1759 PUSH1 0x40
1761 DUP1
1762 MLOAD
1763 NUMBER
1764 DUP2
1765 MSTORE
1766 TIMESTAMP
1767 PUSH1 0x20
1769 DUP3
1770 ADD
1771 MSTORE
1772 DUP1
1773 DUP3
1774 ADD
1775 DUP7
1776 SWAP1
1777 MSTORE
1778 SWAP1
1779 MLOAD
1780 SWAP1
1781 DUP2
1782 SWAP1
1783 SUB
1784 PUSH1 0x60
1786 ADD
1787 SWAP1
1788 SHA3
1789 PUSH2 0x0707
1792 SWAP1
1793 PUSH1 0x0a
1795 PUSH2 0x01b7
1798 JUMP
1799 JUMPDEST
1800 SWAP1
1801 POP
1802 PUSH2 0x0200
1805 DUP2
1806 LT
1807 PUSH2 0x0719
1810 JUMPI
1811 PUSH1 0x64
1813 DUP5
1814 MUL
1815 SWAP3
1816 POP
1817 JUMPDEST
1818 PUSH2 0x0200
1821 DUP2
1822 LT
1823 ISZERO
1824 PUSH2 0x072b
1827 JUMPI
1828 PUSH2 0x2648
1831 DUP5
1832 MUL
1833 SWAP3
1834 POP
1835 JUMPDEST
1836 CALLER
1837 PUSH1 0x01
1839 PUSH1 0xa0
1841 PUSH1 0x02
1843 EXP
1844 SUB
1845 SWAP1
1846 DUP2
1847 AND
1848 PUSH1 0x00
1850 DUP2
1851 DUP2
1852 MSTORE
1853 PUSH1 0x07
1855 PUSH1 0x20
1857 SWAP1
1858 DUP2
1859 MSTORE
1860 PUSH1 0x40
1862 DUP1
1863 DUP4
1864 SHA3
1865 DUP1
1866 SLOAD
1867 DUP10
1868 ADD
1869 SWAP1
1870 SSTORE
1871 PUSH1 0x05
1873 SLOAD
1874 DUP6
1875 AND
1876 DUP4
1877 MSTORE
1878 DUP1
1879 DUP4
1880 SHA3
1881 DUP1
1882 SLOAD
1883 PUSH4 0xffffffff
1888 DUP10
1889 AND
1890 SWAP1
1891 DUP2
1892 ADD
1893 SWAP1
1894 SWAP2
1895 SSTORE
1896 ADDRESS
1897 SWAP1
1898 SWAP6
1899 AND
1900 DUP1
1901 DUP5
1902 MSTORE
1903 SWAP3
1904 DUP2
1905 SWAP1
1906 SHA3
1907 DUP1
1908 SLOAD
1909 SWAP6
1910 DUP10
1911 ADD
1912 SWAP1
1913 SWAP6
1914 SUB
1915 SWAP1
1916 SWAP5
1917 SSTORE
1918 DUP4
1919 MLOAD
1920 DUP8
1921 DUP2
1922 MSTORE
1923 SWAP4
1924 MLOAD
1925 SWAP3
1926 SWAP4
1927 SWAP2
1928 SWAP3
1929 PUSH1 0x00
1931 DUP1
1932 MLOAD
1933 PUSH1 0x20
1935 PUSH2 0x0937
1938 DUP4
1939 CODECOPY
1940 DUP2
1941 MLOAD
1942 SWAP2
1943 MSTORE
1944 SWAP3
1945 DUP2
1946 SWAP1
1947 SUB
1948 SWAP1
1949 SWAP2
1950 ADD
1951 SWAP1
1952 LOG3
1953 PUSH1 0x05
1955 SLOAD
1956 PUSH1 0x40
1958 DUP1
1959 MLOAD
1960 PUSH4 0xffffffff
1965 DUP6
1966 AND
1967 DUP2
1968 MSTORE
1969 SWAP1
1970 MLOAD
1971 PUSH1 0x01
1973 PUSH1 0xa0
1975 PUSH1 0x02
1977 EXP
1978 SUB
1979 SWAP3
1980 DUP4
1981 AND
1982 SWAP3
1983 ADDRESS
1984 AND
1985 SWAP2
1986 PUSH1 0x00
1988 DUP1
1989 MLOAD
1990 PUSH1 0x20
1992 PUSH2 0x0937
1995 DUP4
1996 CODECOPY
1997 DUP2
1998 MLOAD
1999 SWAP2
2000 MSTORE
2001 SWAP2
2002 SWAP1
2003 DUP2
2004 SWAP1
2005 SUB
2006 PUSH1 0x20
2008 ADD
2009 SWAP1
2010 LOG3
2011 POP
2012 POP
2013 POP
2014 SWAP1
2015 JUMP
2016 JUMPDEST
2017 ADDRESS
2018 PUSH1 0x01
2020 PUSH1 0xa0
2022 PUSH1 0x02
2024 EXP
2025 SUB
2026 SWAP1
2027 DUP2
2028 AND
2029 PUSH1 0x00
2031 SWAP1
2032 DUP2
2033 MSTORE
2034 PUSH1 0x07
2036 PUSH1 0x20
2038 MSTORE
2039 PUSH1 0x40
2041 DUP1
2042 DUP3
2043 SHA3
2044 DUP1
2045 SLOAD
2046 DUP8
2047 ADD
2048 SWAP1
2049 SSTORE
2050 CALLER
2051 SWAP1
2052 SWAP3
2053 AND
2054 DUP1
2055 DUP3
2056 MSTORE
2057 DUP3
2058 DUP3
2059 SHA3
2060 DUP1
2061 SLOAD
2062 DUP8
2063 SWAP1
2064 SUB
2065 SWAP1
2066 SSTORE
2067 SWAP2
2068 MLOAD
2069 PUSH4 0xffffffff
2074 DUP5
2075 AND
2076 DUP7
2077 MUL
2078 SWAP5
2079 POP
2080 DUP5
2081 SWAP1
2082 DUP3
2083 DUP2
2084 DUP2
2085 DUP2
2086 DUP6
2087 DUP9
2088 DUP4
2089 CALL
2090 POP
2091 POP
2092 PUSH1 0x40
2094 DUP1
2095 MLOAD
2096 DUP8
2097 DUP2
2098 MSTORE
2099 SWAP1
2100 MLOAD
2101 ADDRESS
2102 PUSH1 0x01
2104 PUSH1 0xa0
2106 PUSH1 0x02
2108 EXP
2109 SUB
2110 AND
2111 SWAP5
2112 SWAP4
2113 POP
2114 PUSH1 0x00
2116 DUP1
2117 MLOAD
2118 PUSH1 0x20
2120 PUSH2 0x0937
2123 DUP4
2124 CODECOPY
2125 DUP2
2126 MLOAD
2127 SWAP2
2128 MSTORE
2129 SWAP3
2130 POP
2131 SWAP1
2132 DUP2
2133 SWAP1
2134 SUB
2135 PUSH1 0x20
2137 ADD
2138 SWAP1
2139 LOG3
2140 POP
2141 SWAP2
2142 SWAP1
2143 POP
2144 JUMP
2145 JUMPDEST
2146 PUSH1 0x01
2148 PUSH1 0xa0
2150 PUSH1 0x02
2152 EXP
2153 SUB
2154 DUP3
2155 AND
2156 PUSH1 0x00
2158 SWAP1
2159 DUP2
2160 MSTORE
2161 PUSH1 0x07
2163 PUSH1 0x20
2165 MSTORE
2166 PUSH1 0x40
2168 SWAP1
2169 SHA3
2170 SLOAD
2171 DUP2
2172 DUP2
2173 ADD
2174 LT
2175 ISZERO
2176 PUSH2 0x0888
2179 JUMPI
2180 PUSH2 0x0002
2183 JUMP
2184 JUMPDEST
2185 CALLER
2186 PUSH1 0x01
2188 PUSH1 0xa0
2190 PUSH1 0x02
2192 EXP
2193 SUB
2194 SWAP1
2195 DUP2
2196 AND
2197 PUSH1 0x00
2199 DUP2
2200 DUP2
2201 MSTORE
2202 PUSH1 0x07
2204 PUSH1 0x20
2206 SWAP1
2207 DUP2
2208 MSTORE
2209 PUSH1 0x40
2211 DUP1
2212 DUP4
2213 SHA3
2214 DUP1
2215 SLOAD
2216 DUP8
2217 SWAP1
2218 SUB
2219 SWAP1
2220 SSTORE
2221 SWAP4
2222 DUP7
2223 AND
2224 DUP1
2225 DUP4
2226 MSTORE
2227 SWAP2
2228 DUP5
2229 SWAP1
2230 SHA3
2231 DUP1
2232 SLOAD
2233 DUP7
2234 ADD
2235 SWAP1
2236 SSTORE
2237 DUP4
2238 MLOAD
2239 DUP6
2240 DUP2
2241 MSTORE
2242 SWAP4
2243 MLOAD
2244 SWAP2
2245 SWAP4
2246 PUSH1 0x00
2248 DUP1
2249 MLOAD
2250 PUSH1 0x20
2252 PUSH2 0x0937
2255 DUP4
2256 CODECOPY
2257 DUP2
2258 MLOAD
2259 SWAP2
2260 MSTORE
2261 SWAP3
2262 SWAP1
2263 DUP2
2264 SWAP1
2265 SUB
2266 SWAP1
2267 SWAP2
2268 ADD
2269 SWAP1
2270 LOG3
2271 POP
2272 POP
2273 JUMP
2274 JUMPDEST
2275 PUSH1 0x00
2277 DUP1
2278 SLOAD
2279 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
2300 NOT
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 1ms:
2274 JUMPDEST
2275 PUSH1 0x00
2277 DUP1
2278 SLOAD
2279 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
2300 NOT
2301 AND
2302 DUP3
2303 OR
2304 SWAP1
2305 SSTORE
2306 POP
2307 JUMP
2308 JUMPDEST
2309 DUP3
2310 ADD
2311 SWAP2
2312 SWAP1
2313 PUSH1 0x00
2315 MSTORE
2316 PUSH1 0x20
2318 PUSH1 0x00
2320 SHA3
2321 SWAP1
2322 JUMPDEST
2323 DUP2
2324 SLOAD
2325 DUP2
2326 MSTORE
2327 SWAP1
2328 PUSH1 0x01
2330 ADD
2331 SWAP1
2332 PUSH1 0x20
2334 ADD
2335 DUP1
2336 DUP4
2337 GT
2338 PUSH2 0x0912
2341 JUMPI
2342 DUP3
2343 SWAP1
2344 SUB
2345 PUSH1 0x1f
2347 AND
2348 DUP3
2349 ADD
2350 SWAP2
2351 JUMPDEST
2352 POP
2353 POP
2354 POP
2355 POP
2356 POP
2357 DUP2
2358 JUMP
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 3ms:
2359 OP_dd
2360 CALLCODE
2361 MSTORE
2362 OP_ad
2363 SHL
2364 OP_e2
2365 OP_c8
2366 SWAP12
2367 PUSH10 0xc2b068fc378daa952ba7
2378 CALL
2379 PUSH4 0xc4a11628
2384 CREATE2
2385 GAS
2386 OP_4d
2387 CREATE2
2388 OP_23
2389 OP_b3
2390 OP_ef
byte len 2391
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 5ms:
765 JUMPDEST
766 PUSH1 0x40
768 DUP1
769 MLOAD
770 PUSH1 0x20
772 PUSH1 0x44
774 CALLDATALOAD
775 PUSH1 0x04
777 DUP2
778 DUP2
779 ADD
780 CALLDATALOAD
781 PUSH1 0x1f
783 DUP2
784 ADD
785 DUP5
786 SWAP1
787 DIV
788 DUP5
789 MUL
790 DUP6
791 ADD
792 DUP5
793 ADD
794 SWAP1
795 SWAP6
796 MSTORE
797 DUP5
798 DUP5
799 MSTORE
800 PUSH2 0x057f
803 SWAP5
804 DUP2
805 CALLDATALOAD
806 SWAP5
807 PUSH1 0x24
809 DUP1
810 CALLDATALOAD
811 SWAP6
812 SWAP4
813 SWAP5
814 PUSH1 0x64
816 SWAP5
817 SWAP3
818 SWAP4
819 SWAP2
820 ADD
821 SWAP2
822 DUP2
823 SWAP1
824 DUP5
825 ADD
826 DUP4
827 DUP3
828 DUP1
829 DUP3
830 DUP5
831 CALLDATACOPY
832 POP
833 SWAP5
834 SWAP7
835 POP
836 POP
837 POP
838 POP
839 POP
840 POP
841 POP
842 PUSH1 0x00
844 PUSH1 0x00
846 DUP4
847 PUSH1 0x08
849 PUSH1 0x00
851 POP
852 PUSH1 0x00
854 CALLER
855 PUSH1 0x01
857 PUSH1 0xa0
859 PUSH1 0x02
861 EXP
862 SUB
863 AND
864 DUP2
865 MSTORE
866 PUSH1 0x20
868 ADD
869 SWAP1
870 DUP2
871 MSTORE
872 PUSH1 0x20
874 ADD
875 PUSH1 0x00
877 SHA3
878 PUSH1 0x00
880 POP
881 PUSH1 0x00
883 DUP8
884 PUSH1 0x01
886 PUSH1 0xa0
888 PUSH1 0x02
890 EXP
891 SUB
892 AND
893 DUP2
894 MSTORE
895 PUSH1 0x20
897 ADD
898 SWAP1
899 DUP2
900 MSTORE
901 PUSH1 0x20
903 ADD
904 PUSH1 0x00
906 SHA3
907 PUSH1 0x00
909 POP
910 DUP2
911 SWAP1
912 SSTORE
913 POP
914 DUP5
915 SWAP1
916 POP
917 DUP1
918 PUSH1 0x01
920 PUSH1 0xa0
922 PUSH1 0x02
924 EXP
925 SUB
926 AND
927 PUSH4 0x8f4ffcb1
932 CALLER
933 DUP7
934 ADDRESS
935 DUP8
936 PUSH1 0x40
938 MLOAD
939 DUP6
940 PUSH1 0xe0
942 PUSH1 0x02
944 EXP
945 MUL
946 DUP2
947 MSTORE
948 PUSH1 0x04
950 ADD
951 DUP1
952 DUP6
953 PUSH1 0x01
955 PUSH1 0xa0
957 PUSH1 0x02
959 EXP
960 SUB
961 AND
962 DUP2
963 MSTORE
964 PUSH1 0x20
966 ADD
967 DUP5
968 DUP2
969 MSTORE
970 PUSH1 0x20
972 ADD
973 DUP4
974 PUSH1 0x01
976 PUSH1 0xa0
978 PUSH1 0x02
980 EXP
981 SUB
982 AND
983 DUP2
984 MSTORE
985 PUSH1 0x20
987 ADD
988 DUP1
989 PUSH1 0x20
991 ADD
992 DUP3
993 DUP2
994 SUB
995 DUP3
996 MSTORE
997 DUP4
998 DUP2
999 DUP2
1000 MLOAD
1001 DUP2
1002 MSTORE
1003 PUSH1 0x20
1005 ADD
1006 SWAP2
1007 POP
1008 DUP1
1009 MLOAD
1010 SWAP1
1011 PUSH1 0x20
1013 ADD
1014 SWAP1
1015 DUP1
1016 DUP4
1017 DUP4
1018 DUP3
1019 SWAP1
1020 PUSH1 0x00
1022 PUSH1 0x04
1024 PUSH1 0x20
1026 DUP5
1027 PUSH1 0x1f
1029 ADD
1030 DIV
1031 PUSH1 0x0f
1033 MUL
1034 PUSH1 0x03
1036 ADD
1037 CALL
1038 POP
1039 SWAP1
1040 POP
1041 SWAP1
1042 DUP2
1043 ADD
1044 SWAP1
1045 PUSH1 0x1f
1047 AND
1048 DUP1
1049 ISZERO
1050 PUSH2 0x0437
1053 JUMPI
1054 DUP1
1055 DUP3
1056 SUB
1057 DUP1
1058 MLOAD
1059 PUSH1 0x01
1061 DUP4
1062 PUSH1 0x20
1064 SUB
1065 PUSH2 0x0100
1068 EXP
1069 SUB
1070 NOT
1071 AND
1072 DUP2
1073 MSTORE
1074 PUSH1 0x20
1076 ADD
1077 SWAP2
1078 POP
1079 JUMPDEST
1080 POP
1081 SWAP6
1082 POP
1083 POP
1084 POP
1085 POP
1086 POP
1087 POP
1088 PUSH1 0x00
1090 PUSH1 0x40
1092 MLOAD
1093 DUP1
1094 DUP4
1095 SUB
1096 DUP2
1097 PUSH1 0x00
1099 DUP8
1100 PUSH2 0x61da
1103 GAS
1104 SUB
1105 CALL
1106 ISZERO
1107 PUSH2 0x0002
1110 JUMPI
1111 POP
1112 PUSH1 0x01
1114 SWAP8
1115 SWAP7
1116 POP
1117 POP
1118 POP
1119 POP
1120 POP
1121 POP
1122 POP
1123 JUMP
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 3ms:
681 JUMPDEST
682 PUSH2 0x057f
685 PUSH1 0x06
687 SLOAD
688 CALLVALUE
689 SWAP1
690 PUSH1 0x00
692 SWAP1
693 PUSH1 0x64
695 SWAP1
696 DUP3
697 SWAP1
698 DUP5
699 GT
700 ISZERO
701 PUSH2 0x06de
704 JUMPI
705 PUSH2 0x0002
708 JUMP
709 JUMPDEST
710 PUSH2 0x00e5
713 PUSH1 0x04
715 CALLDATALOAD
716 PUSH1 0x24
718 CALLDATALOAD
719 CALLER
720 PUSH1 0x01
722 PUSH1 0xa0
724 PUSH1 0x02
726 EXP
727 SUB
728 AND
729 PUSH1 0x00
731 SWAP1
732 DUP2
733 MSTORE
734 PUSH1 0x07
736 PUSH1 0x20
738 MSTORE
739 PUSH1 0x40
741 SWAP1
742 SHA3
743 SLOAD
744 DUP2
745 SWAP1
746 LT
747 ISZERO
748 PUSH2 0x0861
751 JUMPI
752 PUSH2 0x0002
755 JUMP
756 JUMPDEST
757 PUSH2 0x057f
760 PUSH1 0x06
762 SLOAD
763 DUP2
764 JUMP
765 JUMPDEST
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 2ms:
1407 JUMPDEST
1408 PUSH1 0x40
1410 DUP1
1411 MLOAD
1412 SWAP2
1413 DUP3
1414 MSTORE
1415 MLOAD
1416 SWAP1
1417 DUP2
1418 SWAP1
1419 SUB
1420 PUSH1 0x20
1422 ADD
1423 SWAP1
1424 RETURN
1425 JUMPDEST
1426 PUSH1 0x40
1428 DUP1
1429 MLOAD
1430 PUSH1 0xff
1432 SWAP1
1433 SWAP3
1434 AND
1435 DUP3
1436 MSTORE
1437 MLOAD
1438 SWAP1
1439 DUP2
1440 SWAP1
1441 SUB
1442 PUSH1 0x20
1444 ADD
1445 SWAP1
1446 RETURN
1447 JUMPDEST
1448 PUSH1 0x40
1450 DUP1
1451 MLOAD
1452 PUSH1 0x01
1454 PUSH1 0xa0
1456 PUSH1 0x02
1458 EXP
1459 SUB
1460 SWAP3
1461 SWAP1
1462 SWAP3
1463 AND
1464 DUP3
1465 MSTORE
1466 MLOAD
1467 SWAP1
1468 DUP2
1469 SWAP1
1470 SUB
1471 PUSH1 0x20
1473 ADD
1474 SWAP1
1475 RETURN
1476 JUMPDEST
1477 POP
1478 SWAP4
1479 SWAP3
1480 POP
1481 POP
1482 POP
1483 JUMP
1484 JUMPDEST
1485 PUSH1 0x01
1487 PUSH1 0xa0
1489 PUSH1 0x02
1491 EXP
1492 SUB
1493 DUP4
1494 AND
1495 PUSH1 0x00
1497 SWAP1
1498 DUP2
1499 MSTORE
1500 PUSH1 0x07
1502 PUSH1 0x20
1504 MSTORE
1505 PUSH1 0x40
1507 SWAP1
1508 SHA3
1509 SLOAD
1510 DUP1
1511 DUP4
1512 ADD
1513 LT
1514 ISZERO
1515 PUSH2 0x05f3
1518 JUMPI
1519 PUSH2 0x0002
1522 JUMP
1523 JUMPDEST
1524 PUSH1 0x01
1526 PUSH1 0xa0
1528 PUSH1 0x02
1530 EXP
1531 SUB
1532 DUP5
1533 DUP2
1534 AND
1535 PUSH1 0x00
1537 DUP2
1538 DUP2
1539 MSTORE
1540 PUSH1 0x08
1542 PUSH1 0x20
1544 SWAP1
1545 DUP2
1546 MSTORE
1547 PUSH1 0x40
1549 DUP1
1550 DUP4
1551 SHA3
1552 CALLER
1553 SWAP1
1554 SWAP6
1555 AND
1556 DUP1
1557 DUP5
1558 MSTORE
1559 SWAP5
1560 DUP3
1561 MSTORE
1562 DUP1
1563 DUP4
1564 SHA3
1565 SLOAD
1566 SWAP4
1567 DUP4
1568 MSTORE
1569 PUSH1 0x09
1571 DUP3
1572 MSTORE
1573 DUP1
1574 DUP4
1575 SHA3
1576 SWAP5
1577 DUP4
1578 MSTORE
1579 SWAP4
1580 SWAP1
1581 MSTORE
1582 SWAP2
1583 SWAP1
1584 SWAP2
1585 SHA3
1586 SLOAD
1587 DUP4
1588 ADD
1589 GT
1590 ISZERO
1591 PUSH2 0x063f
1594 JUMPI
1595 PUSH2 0x0002
1598 JUMP
1599 JUMPDEST
1600 PUSH1 0x01
1602 PUSH1 0xa0
1604 PUSH1 0x02
1606 EXP
1607 SUB
1608 DUP5
1609 DUP2
1610 AND
1611 PUSH1 0x00
1613 DUP2
1614 DUP2
1615 MSTORE
1616 PUSH1 0x07
1618 PUSH1 0x20
1620 SWAP1
1621 DUP2
1622 MSTORE
1623 PUSH1 0x40
1625 DUP1
1626 DUP4
1627 SHA3
1628 DUP1
1629 SLOAD
1630 DUP9
1631 SWAP1
1632 SUB
1633 SWAP1
1634 SSTORE
1635 DUP8
1636 DUP6
1637 AND
1638 DUP1
1639 DUP5
1640 MSTORE
1641 DUP2
1642 DUP5
1643 SHA3
1644 DUP1
1645 SLOAD
1646 DUP10
1647 ADD
1648 SWAP1
1649 SSTORE
1650 DUP5
1651 DUP5
1652 MSTORE
1653 PUSH1 0x09
1655 DUP4
1656 MSTORE
1657 DUP2
1658 DUP5
1659 SHA3
1660 CALLER
1661 SWAP1
1662 SWAP7
1663 AND
1664 DUP5
1665 MSTORE
1666 SWAP5
1667 DUP3
1668 MSTORE
1669 SWAP2
1670 DUP3
1671 SWAP1
1672 SHA3
1673 DUP1
1674 SLOAD
1675 DUP8
1676 ADD
1677 SWAP1
1678 SSTORE
1679 DUP2
1680 MLOAD
1681 DUP7
1682 DUP2
1683 MSTORE
1684 SWAP2
1685 MLOAD
1686 PUSH1 0x00
1688 DUP1
1689 MLOAD
1690 PUSH1 0x20
1692 PUSH2 0x0937
1695 DUP4
1696 CODECOPY
1697 DUP2
1698 MLOAD
1699 SWAP2
1700 MSTORE
1701 SWAP3
1702 DUP2
1703 SWAP1
1704 SUB
1705 SWAP1
1706 SWAP2
1707 ADD
1708 SWAP1
1709 LOG3
1710 POP
1711 PUSH1 0x01
1713 SWAP4
1714 SWAP3
1715 POP
1716 POP
1717 POP
1718 JUMP
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 1ms:
1198 JUMPDEST
1199 PUSH2 0x057f
1202 PUSH1 0x04
1204 CALLDATALOAD
1205 CALLER
1206 PUSH1 0x01
1208 PUSH1 0xa0
1210 PUSH1 0x02
1212 EXP
1213 SUB
1214 AND
1215 PUSH1 0x00
1217 SWAP1
1218 DUP2
1219 MSTORE
1220 PUSH1 0x07
1222 PUSH1 0x20
1224 MSTORE
1225 PUSH1 0x40
1227 DUP2
1228 SHA3
1229 SLOAD
1230 PUSH2 0x1388
1233 SWAP1
1234 DUP4
1235 SWAP1
1236 LT
1237 ISZERO
1238 PUSH2 0x07e0
1241 JUMPI
1242 PUSH2 0x0002
1245 JUMP
1246 JUMPDEST
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 10ms:
UNHANDLED 1198 JUMPDEST
stack: [ 'retpc' ]
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 15ms:
JUMPI 0x07e0 if ISZERO(LT(calldata[0x04],sload(keccak(mem@0x00,0x40))))
stack: [ 'retpc', '0x057f', 'calldata[0x04]', '0x00', '0x1388' ]
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 4ms:
SSTORE keccak(mem@0x00,0x40) = ADD(sload(keccak(mem@0x00,0x40)),amount)
SSTORE keccak(mem@0x00,0x40) = SUB(amount,ADD(sload(keccak(mem@0x00,0x40)),amount))
CALL to=AND(caller,SUB(0x01,EXP(0xa0,0x02))) value=MUL(AND(0xffffffff,0x1388),amount) inOff=mem[0x40] inSize=0x00 outOff=mem[0x40] outSize=0x00 gas=0x00
CODECOPY dest=0x00 off=0x0937 size=0x20
LOG3 mem[AND(address(this),SUB(0x01,EXP(0xa0,0x02))):AND(caller,SUB(0x01,EXP(0xa0,0x02)))] topics AND(caller,SUB(0x01,EXP(0xa0,0x02))), ADD(SUB(mem[0x40],mem[0x40]),0x20), mem[0x40]
JUMP 0x057f
stack: [ 'retpc', 'MUL(AND(0xffffffff,0x1388),amount)' ]
exec
js_repl in /tmp/codex-03j11m2y
succeeded in 2ms:
JUMPI 0x06de if ISZERO(GT(sload(0x06),callvalue))
[ 'retpc', '0x057f', 'callvalue', '0x00', '0x64', '0x00' ]
✓ Inspect BYTECODE_BUNDLE.json and identify key bytecode artifacts, selectors, storage slots, and detector findings
✓ Evaluate potential vulnerabilities from the bytecode evidence, focusing on proxy/upgradeability, access control, delegatecall, reentrancy, and unsafe external calls
→ Produce JSON findings with severity, exploit scenario, evidence, and precise locations
codex
{"no_findings":false,"summary":"Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.","findings":[{"severity":"high","category":"access_control","title":"Owner-controlled source address can redirect public token payouts to arbitrary holder balances","exploit_scenario":"A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer.","recommendation":"Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.","evidence":"`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.","locations":["selector:0x7f2a8a80","selector:0xa6f2ae3a","selector:0xff9b3acf","pc:0x224","pc:0x6bc","pc:0x6de","pc:0x74a","pc:0x765","pc:0x777","pc:0x7a0"]},{"severity":"medium","category":"other","title":"`allowance()` appears to report the approved amount, not the remaining spendable amount","exploit_scenario":"A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns.","recommendation":"Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.","evidence":"The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","selector:0xdc3080f2","pc:0x390","pc:0x462","pc:0x633","pc:0x64a","pc:0x483","pc:0x499"]},{"severity":"medium","category":"other","title":"Token-for-ETH payout path ignores CALL failure after moving balances","exploit_scenario":"A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment.","recommendation":"Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.","evidence":"`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.","locations":["selector:0xe4849b32","pc:0x7e0","pc:0x801","pc:0x812","pc:0x829","pc:0x85b"]}]}
tokens used
93,522
{
"codex": {
"ran_at": "2026-04-05T07:09:24.942317+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 4784,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.",
"raw_final": {
"summary": "Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.",
"findings": [
{
"title": "Owner-controlled source address can redirect public token payouts to arbitrary holder balances",
"category": "access_control",
"evidence": "`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.",
"severity": "high",
"locations": [
"selector:0x7f2a8a80",
"selector:0xa6f2ae3a",
"selector:0xff9b3acf",
"pc:0x224",
"pc:0x6bc",
"pc:0x6de",
"pc:0x74a",
"pc:0x765",
"pc:0x777",
"pc:0x7a0"
],
"recommendation": "Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.",
"exploit_scenario": "A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer."
},
{
"title": "`allowance()` appears to report the approved amount, not the remaining spendable amount",
"category": "other",
"evidence": "The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.",
"severity": "medium",
"locations": [
"selector:0xcae9ca51",
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"selector:0xdc3080f2",
"pc:0x390",
"pc:0x462",
"pc:0x633",
"pc:0x64a",
"pc:0x483",
"pc:0x499"
],
"recommendation": "Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.",
"exploit_scenario": "A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns."
},
{
"title": "Token-for-ETH payout path ignores CALL failure after moving balances",
"category": "other",
"evidence": "`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.",
"severity": "medium",
"locations": [
"selector:0xe4849b32",
"pc:0x7e0",
"pc:0x801",
"pc:0x812",
"pc:0x829",
"pc:0x85b"
],
"recommendation": "Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.",
"exploit_scenario": "A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00e5 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 0x00e7 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x18160ddd 00000025: EQ 00000026: PUSH2 0x0144 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x1fe9eabc 00000030: EQ 00000031: PUSH2 0x014d 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x23b872dd 0000003b: EQ 0000003c: PUSH2 0x016f 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x313ce567 00000046: EQ 00000047: PUSH2 0x01a1 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x41fa4876 00000051: EQ 00000052: PUSH2 0x01ad 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x70a08231 0000005c: EQ 0000005d: PUSH2 0x0203 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x7f2a8a80 00000067: EQ 00000068: PUSH2 0x021b 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x8da5cb5b 00000072: EQ 00000073: PUSH2 0x023c 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0x95d89b41 0000007d: EQ 0000007e: PUSH2 0x024e 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0xa6f2ae3a 00000088: EQ 00000089: PUSH2 0x02a9 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0xa9059cbb 00000093: EQ 00000094: PUSH2 0x02c5 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xaa295de9 0000009e: EQ 0000009f: PUSH2 0x02f4 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xcae9ca51 000000a9: EQ 000000aa: PUSH2 0x02fd 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xdc3080f2 000000b4: EQ 000000b5: PUSH2 0x0464 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xdd62ed3e 000000bf: EQ 000000c0: PUSH2 0x0489 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xe4849b32 000000ca: EQ 000000cb: PUSH2 0x04ae 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xf2fde38b 000000d5: EQ 000000d6: PUSH2 0x04de 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xff9b3acf 000000e0: EQ 000000e1: PUSH2 0x04ff 000000e4: JUMPI 000000e5: JUMPDEST 000000e6: STOP 000000e7: JUMPDEST 000000e8: PUSH1 0x40 000000ea: DUP1 000000eb: MLOAD 000000ec: PUSH1 0x01 000000ee: DUP1 000000ef: SLOAD 000000f0: PUSH1 0x20 000000f2: PUSH1 0x02 000000f4: DUP3 000000f5: DUP5 000000f6: AND 000000f7: ISZERO 000000f8: PUSH2 0x0100 000000fb: MUL 000000fc: PUSH1 0x00 000000fe: NOT 000000ff: ADD 00000100: SWAP1 00000101: SWAP3 00000102: AND 00000103: SWAP2 00000104: SWAP1 00000105: SWAP2 00000106: DIV 00000107: PUSH1 0x1f 00000109: DUP2 0000010a: ADD 0000010b: DUP3 0000010c: SWAP1 0000010d: DIV 0000010e: DUP3 0000010f: MUL 00000110: DUP5 00000111: ADD 00000112: DUP3 00000113: ADD 00000114: SWAP1 00000115: SWAP5 00000116: MSTORE 00000117: DUP4 00000118: DUP4 00000119: MSTORE 0000011a: PUSH2 0x0511 0000011d: SWAP4 0000011e: SWAP1 0000011f: DUP4 00000120: ADD 00000121: DUP3 00000122: DUP3 00000123: DUP1 00000124: ISZERO 00000125: PUSH2 0x092f 00000128: JUMPI 00000129: DUP1 0000012a: PUSH1 0x1f 0000012c: LT 0000012d: PUSH2 0x0904 00000130: JUMPI 00000131: PUSH2 0x0100 00000134: DUP1 00000135: DUP4 00000136: SLOAD 00000137: DIV 00000138: MUL 00000139: DUP4 0000013a: MSTORE 0000013b: SWAP2 0000013c: PUSH1 0x20 0000013e: ADD 0000013f: SWAP2 00000140: PUSH2 0x092f 00000143: JUMP 00000144: JUMPDEST 00000145: PUSH2 0x057f 00000148: PUSH1 0x04 0000014a: SLOAD 0000014b: DUP2 0000014c: JUMP 0000014d: JUMPDEST 0000014e: PUSH2 0x00e5 00000151: PUSH1 0x04 00000153: CALLDATALOAD 00000154: PUSH1 0x00 00000156: SLOAD 00000157: PUSH1 0x01 00000159: PUSH1 0xa0 0000015b: PUSH1 0x02 0000015d: EXP 0000015e: SUB 0000015f: SWAP1 00000160: DUP2 00000161: AND 00000162: CALLER 00000163: SWAP1 00000164: SWAP2 00000165: AND 00000166: EQ 00000167: PUSH2 0x06b7 0000016a: JUMPI 0000016b: PUSH2 0x0002 0000016e: JUMP 0000016f: JUMPDEST 00000170: PUSH2 0x057f 00000173: PUSH1 0x04 00000175: CALLDATALOAD 00000176: PUSH1 0x24 00000178: CALLDATALOAD 00000179: PUSH1 0x44 0000017b: CALLDATALOAD 0000017c: PUSH1 0x01 0000017e: PUSH1 0xa0 00000180: PUSH1 0x02 00000182: EXP 00000183: SUB 00000184: DUP4 00000185: AND 00000186: PUSH1 0x00 00000188: SWAP1 00000189: DUP2 0000018a: MSTORE 0000018b: PUSH1 0x07 0000018d: PUSH1 0x20 0000018f: MSTORE 00000190: PUSH1 0x40 00000192: DUP2 00000193: KECCAK256 00000194: SLOAD 00000195: DUP3 00000196: SWAP1 00000197: LT 00000198: ISZERO 00000199: PUSH2 0x05cc 0000019c: JUMPI 0000019d: PUSH2 0x0002 000001a0: JUMP 000001a1: JUMPDEST 000001a2: PUSH2 0x0591 000001a5: PUSH1 0x03 000001a7: SLOAD 000001a8: PUSH1 0xff 000001aa: AND 000001ab: DUP2 000001ac: JUMP 000001ad: JUMPDEST 000001ae: PUSH2 0x057f 000001b1: PUSH1 0x04 000001b3: CALLDATALOAD 000001b4: PUSH1 0x24 000001b6: CALLDATALOAD 000001b7: JUMPDEST 000001b8: PUSH1 0x00 000001ba: DUP1 000001bb: DUP1 000001bc: JUMPDEST 000001bd: DUP4 000001be: DUP2 000001bf: LT 000001c0: ISZERO 000001c1: PUSH2 0x05c4 000001c4: JUMPI 000001c5: PUSH1 0x40 000001c7: DUP1 000001c8: MLOAD 000001c9: NUMBER 000001ca: DUP4 000001cb: SWAP1 000001cc: SUB 000001cd: PUSH1 0x00 000001cf: NOT 000001d0: ADD 000001d1: BLOCKHASH 000001d2: DUP2 000001d3: MSTORE 000001d4: PUSH1 0x20 000001d6: DUP2 000001d7: ADD 000001d8: DUP8 000001d9: SWAP1 000001da: MSTORE 000001db: DUP2 000001dc: MLOAD 000001dd: SWAP1 000001de: DUP2 000001df: SWAP1 000001e0: SUB 000001e1: SWAP1 000001e2: SWAP2 000001e3: ADD 000001e4: SWAP1 000001e5: KECCAK256 000001e6: PUSH1 0x02 000001e8: SWAP1 000001e9: MOD 000001ea: PUSH1 0x00 000001ec: EQ 000001ed: ISZERO 000001ee: PUSH2 0x01fb 000001f1: JUMPI 000001f2: PUSH1 0x02 000001f4: DUP2 000001f5: SWAP1 000001f6: EXP 000001f7: SWAP1 000001f8: SWAP2 000001f9: ADD 000001fa: SWAP1 000001fb: JUMPDEST 000001fc: PUSH1 0x01 000001fe: ADD 000001ff: PUSH2 0x01bc 00000202: JUMP 00000203: JUMPDEST 00000204: PUSH2 0x057f 00000207: PUSH1 0x04 00000209: CALLDATALOAD 0000020a: PUSH1 0x07 0000020c: PUSH1 0x20 0000020e: MSTORE 0000020f: PUSH1 0x00 00000211: SWAP1 00000212: DUP2 00000213: MSTORE 00000214: PUSH1 0x40 00000216: SWAP1 00000217: KECCAK256 00000218: SLOAD 00000219: DUP2 0000021a: JUMP 0000021b: JUMPDEST 0000021c: PUSH2 0x00e5 0000021f: PUSH1 0x04 00000221: CALLDATALOAD 00000222: PUSH1 0x00 00000224: SLOAD 00000225: CALLER 00000226: PUSH1 0x01 00000228: PUSH1 0xa0 0000022a: PUSH1 0x02 0000022c: EXP 0000022d: SUB 0000022e: SWAP1 0000022f: DUP2 00000230: AND 00000231: SWAP2 00000232: AND 00000233: EQ 00000234: PUSH2 0x06bc 00000237: JUMPI 00000238: PUSH2 0x0002 0000023b: JUMP 0000023c: JUMPDEST 0000023d: PUSH2 0x05a7 00000240: PUSH1 0x00 00000242: SLOAD 00000243: PUSH1 0x01 00000245: PUSH1 0xa0 00000247: PUSH1 0x02 00000249: EXP 0000024a: SUB 0000024b: AND 0000024c: DUP2 0000024d: JUMP 0000024e: JUMPDEST 0000024f: PUSH2 0x0511 00000252: PUSH1 0x02 00000254: DUP1 00000255: SLOAD 00000256: PUSH1 0x40 00000258: DUP1 00000259: MLOAD 0000025a: PUSH1 0x20 0000025c: PUSH1 0x01 0000025e: DUP5 0000025f: AND 00000260: ISZERO 00000261: PUSH2 0x0100 00000264: MUL 00000265: PUSH1 0x00 00000267: NOT 00000268: ADD 00000269: SWAP1 0000026a: SWAP4 0000026b: AND 0000026c: DUP5 0000026d: SWAP1 0000026e: DIV 0000026f: PUSH1 0x1f 00000271: DUP2 00000272: ADD 00000273: DUP5 00000274: SWAP1 00000275: DIV 00000276: DUP5 00000277: MUL 00000278: DUP3 00000279: ADD 0000027a: DUP5 0000027b: ADD 0000027c: SWAP1 0000027d: SWAP3 0000027e: MSTORE 0000027f: DUP2 00000280: DUP2 00000281: MSTORE 00000282: SWAP3 00000283: SWAP2 00000284: DUP4 00000285: ADD 00000286: DUP3 00000287: DUP3 00000288: DUP1 00000289: ISZERO 0000028a: PUSH2 0x092f 0000028d: JUMPI 0000028e: DUP1 0000028f: PUSH1 0x1f 00000291: LT 00000292: PUSH2 0x0904 00000295: JUMPI 00000296: PUSH2 0x0100 00000299: DUP1 0000029a: DUP4 0000029b: SLOAD 0000029c: DIV 0000029d: MUL 0000029e: DUP4 0000029f: MSTORE 000002a0: SWAP2 000002a1: PUSH1 0x20 000002a3: ADD 000002a4: SWAP2 000002a5: PUSH2 0x092f 000002a8: JUMP 000002a9: JUMPDEST 000002aa: PUSH2 0x057f 000002ad: PUSH1 0x06 000002af: SLOAD 000002b0: CALLVALUE 000002b1: SWAP1 000002b2: PUSH1 0x00 000002b4: SWAP1 000002b5: PUSH1 0x64 000002b7: SWAP1 000002b8: DUP3 000002b9: SWAP1 000002ba: DUP5 000002bb: GT 000002bc: ISZERO 000002bd: PUSH2 0x06de 000002c0: JUMPI 000002c1: PUSH2 0x0002 000002c4: JUMP 000002c5: JUMPDEST 000002c6: PUSH2 0x00e5 000002c9: PUSH1 0x04 000002cb: CALLDATALOAD 000002cc: PUSH1 0x24 000002ce: CALLDATALOAD 000002cf: CALLER 000002d0: PUSH1 0x01 000002d2: PUSH1 0xa0 000002d4: PUSH1 0x02 000002d6: EXP 000002d7: SUB 000002d8: AND 000002d9: PUSH1 0x00 000002db: SWAP1 000002dc: DUP2 000002dd: MSTORE 000002de: PUSH1 0x07 000002e0: PUSH1 0x20 000002e2: MSTORE 000002e3: PUSH1 0x40 000002e5: SWAP1 000002e6: KECCAK256 000002e7: SLOAD 000002e8: DUP2 000002e9: SWAP1 000002ea: LT 000002eb: ISZERO 000002ec: PUSH2 0x0861 000002ef: JUMPI 000002f0: PUSH2 0x0002 000002f3: JUMP 000002f4: JUMPDEST 000002f5: PUSH2 0x057f 000002f8: PUSH1 0x06 000002fa: SLOAD 000002fb: DUP2 000002fc: JUMP 000002fd: JUMPDEST 000002fe: PUSH1 0x40 00000300: DUP1 00000301: MLOAD 00000302: PUSH1 0x20 00000304: PUSH1 0x44 00000306: CALLDATALOAD 00000307: PUSH1 0x04 00000309: DUP2 0000030a: DUP2 0000030b: ADD 0000030c: CALLDATALOAD 0000030d: PUSH1 0x1f 0000030f: DUP2 00000310: ADD 00000311: DUP5 00000312: SWAP1 00000313: DIV 00000314: DUP5 00000315: MUL 00000316: DUP6 00000317: ADD 00000318: DUP5 00000319: ADD 0000031a: SWAP1 0000031b: SWAP6 0000031c: MSTORE 0000031d: DUP5 0000031e: DUP5 0000031f: MSTORE 00000320: PUSH2 0x057f 00000323: SWAP5 00000324: DUP2 00000325: CALLDATALOAD 00000326: SWAP5 00000327: PUSH1 0x24 00000329: DUP1 0000032a: CALLDATALOAD 0000032b: SWAP6 0000032c: SWAP4 0000032d: SWAP5 0000032e: PUSH1 0x64 00000330: SWAP5 00000331: SWAP3 00000332: SWAP4 00000333: SWAP2 00000334: ADD 00000335: SWAP2 00000336: DUP2 00000337: SWAP1 00000338: DUP5 00000339: ADD 0000033a: DUP4 0000033b: DUP3 0000033c: DUP1 0000033d: DUP3 0000033e: DUP5 0000033f: CALLDATACOPY 00000340: POP 00000341: SWAP5 00000342: SWAP7 00000343: POP 00000344: POP 00000345: POP 00000346: POP 00000347: POP 00000348: POP 00000349: POP 0000034a: PUSH1 0x00 0000034c: PUSH1 0x00 0000034e: DUP4 0000034f: PUSH1 0x08 00000351: PUSH1 0x00 00000353: POP 00000354: PUSH1 0x00 00000356: CALLER 00000357: PUSH1 0x01 00000359: PUSH1 0xa0 0000035b: PUSH1 0x02 0000035d: EXP 0000035e: SUB 0000035f: AND 00000360: DUP2 00000361: MSTORE 00000362: PUSH1 0x20 00000364: ADD 00000365: SWAP1 00000366: DUP2 00000367: MSTORE 00000368: PUSH1 0x20 0000036a: ADD 0000036b: PUSH1 0x00 0000036d: KECCAK256 0000036e: PUSH1 0x00 00000370: POP 00000371: PUSH1 0x00 00000373: DUP8 00000374: PUSH1 0x01 00000376: PUSH1 0xa0 00000378: PUSH1 0x02 0000037a: EXP 0000037b: SUB 0000037c: AND 0000037d: DUP2 0000037e: MSTORE 0000037f: PUSH1 0x20 00000381: ADD 00000382: SWAP1 00000383: DUP2 00000384: MSTORE 00000385: PUSH1 0x20 00000387: ADD 00000388: PUSH1 0x00 0000038a: KECCAK256 0000038b: PUSH1 0x00 0000038d: POP 0000038e: DUP2 0000038f: SWAP1 00000390: SSTORE 00000391: POP 00000392: DUP5 00000393: SWAP1 00000394: POP 00000395: DUP1 00000396: PUSH1 0x01 00000398: PUSH1 0xa0 0000039a: PUSH1 0x02 0000039c: EXP 0000039d: SUB 0000039e: AND 0000039f: PUSH4 0x8f4ffcb1 000003a4: CALLER 000003a5: DUP7 000003a6: ADDRESS 000003a7: DUP8 000003a8: PUSH1 0x40 000003aa: MLOAD 000003ab: DUP6 000003ac: PUSH1 0xe0 000003ae: PUSH1 0x02 000003b0: EXP 000003b1: MUL 000003b2: DUP2 000003b3: MSTORE 000003b4: PUSH1 0x04 000003b6: ADD 000003b7: DUP1 000003b8: DUP6 000003b9: PUSH1 0x01 000003bb: PUSH1 0xa0 000003bd: PUSH1 0x02 000003bf: EXP 000003c0: SUB 000003c1: AND 000003c2: DUP2 000003c3: MSTORE 000003c4: PUSH1 0x20 000003c6: ADD 000003c7: DUP5 000003c8: DUP2 000003c9: MSTORE 000003ca: PUSH1 0x20 000003cc: ADD 000003cd: DUP4 000003ce: PUSH1 0x01 000003d0: PUSH1 0xa0 000003d2: PUSH1 0x02 000003d4: EXP 000003d5: SUB 000003d6: AND 000003d7: DUP2 000003d8: MSTORE 000003d9: PUSH1 0x20 000003db: ADD 000003dc: DUP1 000003dd: PUSH1 0x20 000003df: ADD 000003e0: DUP3 000003e1: DUP2 000003e2: SUB 000003e3: DUP3 000003e4: MSTORE 000003e5: DUP4 000003e6: DUP2 000003e7: DUP2 000003e8: MLOAD 000003e9: DUP2 000003ea: MSTORE 000003eb: PUSH1 0x20 000003ed: ADD 000003ee: SWAP2 000003ef: POP 000003f0: DUP1 000003f1: MLOAD 000003f2: SWAP1 000003f3: PUSH1 0x20 000003f5: ADD 000003f6: SWAP1 000003f7: DUP1 000003f8: DUP4 000003f9: DUP4 000003fa: DUP3 000003fb: SWAP1 000003fc: PUSH1 0x00 000003fe: PUSH1 0x04 00000400: PUSH1 0x20 00000402: DUP5 00000403: PUSH1 0x1f 00000405: ADD 00000406: DIV 00000407: PUSH1 0x0f 00000409: MUL 0000040a: PUSH1 0x03 0000040c: ADD 0000040d: CALL 0000040e: POP 0000040f: SWAP1 00000410: POP 00000411: SWAP1 00000412: DUP2 00000413: ADD 00000414: SWAP1 00000415: PUSH1 0x1f 00000417: AND 00000418: DUP1 00000419: ISZERO 0000041a: PUSH2 0x0437 0000041d: JUMPI 0000041e: DUP1 0000041f: DUP3 00000420: SUB 00000421: DUP1 00000422: MLOAD 00000423: PUSH1 0x01 00000425: DUP4 00000426: PUSH1 0x20 00000428: SUB 00000429: PUSH2 0x0100 0000042c: EXP 0000042d: SUB 0000042e: NOT 0000042f: AND 00000430: DUP2 00000431: MSTORE 00000432: PUSH1 0x20 00000434: ADD 00000435: SWAP2 00000436: POP 00000437: JUMPDEST 00000438: POP 00000439: SWAP6 0000043a: POP 0000043b: POP 0000043c: POP 0000043d: POP 0000043e: POP 0000043f: POP 00000440: PUSH1 0x00 00000442: PUSH1 0x40 00000444: MLOAD 00000445: DUP1 00000446: DUP4 00000447: SUB 00000448: DUP2 00000449: PUSH1 0x00 0000044b: DUP8 0000044c: PUSH2 0x61da 0000044f: GAS 00000450: SUB 00000451: CALL 00000452: ISZERO 00000453: PUSH2 0x0002 00000456: JUMPI 00000457: POP 00000458: PUSH1 0x01 0000045a: SWAP8 0000045b: SWAP7 0000045c: POP 0000045d: POP 0000045e: POP 0000045f: POP 00000460: POP 00000461: POP 00000462: POP 00000463: JUMP 00000464: JUMPDEST 00000465: PUSH1 0x09 00000467: PUSH1 0x20 00000469: SWAP1 0000046a: DUP2 0000046b: MSTORE 0000046c: PUSH1 0x04 0000046e: CALLDATALOAD 0000046f: PUSH1 0x00 00000471: SWAP1 00000472: DUP2 00000473: MSTORE 00000474: PUSH1 0x40 00000476: DUP1 00000477: DUP3 00000478: KECCAK256 00000479: SWAP1 0000047a: SWAP3 0000047b: MSTORE 0000047c: PUSH1 0x24 0000047e: CALLDATALOAD 0000047f: DUP2 00000480: MSTORE 00000481: KECCAK256 00000482: SLOAD 00000483: PUSH2 0x057f 00000486: SWAP1 00000487: DUP2 00000488: JUMP 00000489: JUMPDEST 0000048a: PUSH1 0x08 0000048c: PUSH1 0x20 0000048e: SWAP1 0000048f: DUP2 00000490: MSTORE 00000491: PUSH1 0x04 00000493: CALLDATALOAD 00000494: PUSH1 0x00 00000496: SWAP1 00000497: DUP2 00000498: MSTORE 00000499: PUSH1 0x40 0000049b: DUP1 0000049c: DUP3 0000049d: KECCAK256 0000049e: SWAP1 0000049f: SWAP3 000004a0: MSTORE 000004a1: PUSH1 0x24 000004a3: CALLDATALOAD 000004a4: DUP2 000004a5: MSTORE 000004a6: KECCAK256 000004a7: SLOAD 000004a8: PUSH2 0x057f 000004ab: SWAP1 000004ac: DUP2 000004ad: JUMP 000004ae: JUMPDEST 000004af: PUSH2 0x057f 000004b2: PUSH1 0x04 000004b4: CALLDATALOAD 000004b5: CALLER 000004b6: PUSH1 0x01 000004b8: PUSH1 0xa0 000004ba: PUSH1 0x02 000004bc: EXP 000004bd: SUB 000004be: AND 000004bf: PUSH1 0x00 000004c1: SWAP1 000004c2: DUP2 000004c3: MSTORE 000004c4: PUSH1 0x07 000004c6: PUSH1 0x20 000004c8: MSTORE 000004c9: PUSH1 0x40 000004cb: DUP2 000004cc: KECCAK256 000004cd: SLOAD 000004ce: PUSH2 0x1388 000004d1: SWAP1 000004d2: DUP4 000004d3: SWAP1 000004d4: LT 000004d5: ISZERO 000004d6: PUSH2 0x07e0 000004d9: JUMPI 000004da: PUSH2 0x0002 000004dd: JUMP 000004de: JUMPDEST 000004df: PUSH2 0x00e5 000004e2: PUSH1 0x04 000004e4: CALLDATALOAD 000004e5: PUSH1 0x00 000004e7: SLOAD 000004e8: CALLER 000004e9: PUSH1 0x01 000004eb: PUSH1 0xa0 000004ed: PUSH1 0x02 000004ef: EXP 000004f0: SUB 000004f1: SWAP1 000004f2: DUP2 000004f3: AND 000004f4: SWAP2 000004f5: AND 000004f6: EQ 000004f7: PUSH2 0x08e2 000004fa: JUMPI 000004fb: PUSH2 0x0002 000004fe: JUMP 000004ff: JUMPDEST 00000500: PUSH2 0x05a7 00000503: PUSH1 0x05 00000505: SLOAD 00000506: PUSH1 0x01 00000508: PUSH1 0xa0 0000050a: PUSH1 0x02 0000050c: EXP 0000050d: SUB 0000050e: AND 0000050f: DUP2 00000510: JUMP 00000511: JUMPDEST 00000512: PUSH1 0x40 00000514: MLOAD 00000515: DUP1 00000516: DUP1 00000517: PUSH1 0x20 00000519: ADD 0000051a: DUP3 0000051b: DUP2 0000051c: SUB 0000051d: DUP3 0000051e: MSTORE 0000051f: DUP4 00000520: DUP2 00000521: DUP2 00000522: MLOAD 00000523: DUP2 00000524: MSTORE 00000525: PUSH1 0x20 00000527: ADD 00000528: SWAP2 00000529: POP 0000052a: DUP1 0000052b: MLOAD 0000052c: SWAP1 0000052d: PUSH1 0x20 0000052f: ADD 00000530: SWAP1 00000531: DUP1 00000532: DUP4 00000533: DUP4 00000534: DUP3 00000535: SWAP1 00000536: PUSH1 0x00 00000538: PUSH1 0x04 0000053a: PUSH1 0x20 0000053c: DUP5 0000053d: PUSH1 0x1f 0000053f: ADD 00000540: DIV 00000541: PUSH1 0x0f 00000543: MUL 00000544: PUSH1 0x03 00000546: ADD 00000547: CALL 00000548: POP 00000549: SWAP1 0000054a: POP 0000054b: SWAP1 0000054c: DUP2 0000054d: ADD 0000054e: SWAP1 0000054f: PUSH1 0x1f 00000551: AND 00000552: DUP1 00000553: ISZERO 00000554: PUSH2 0x0571 00000557: JUMPI 00000558: DUP1 00000559: DUP3 0000055a: SUB 0000055b: DUP1 0000055c: MLOAD 0000055d: PUSH1 0x01 0000055f: DUP4 00000560: PUSH1 0x20 00000562: SUB 00000563: PUSH2 0x0100 00000566: EXP 00000567: SUB 00000568: NOT 00000569: AND 0000056a: DUP2 0000056b: MSTORE 0000056c: PUSH1 0x20 0000056e: ADD 0000056f: SWAP2 00000570: POP 00000571: JUMPDEST 00000572: POP 00000573: SWAP3 00000574: POP 00000575: POP 00000576: POP 00000577: PUSH1 0x40 00000579: MLOAD 0000057a: DUP1 0000057b: SWAP2 0000057c: SUB 0000057d: SWAP1 0000057e: RETURN 0000057f: JUMPDEST 00000580: PUSH1 0x40 00000582: DUP1 00000583: MLOAD 00000584: SWAP2 00000585: DUP3 00000586: MSTORE 00000587: MLOAD 00000588: SWAP1 00000589: DUP2 0000058a: SWAP1 0000058b: SUB 0000058c: PUSH1 0x20 0000058e: ADD 0000058f: SWAP1 00000590: RETURN 00000591: JUMPDEST 00000592: PUSH1 0x40 00000594: DUP1 00000595: MLOAD 00000596: PUSH1 0xff 00000598: SWAP1 00000599: SWAP3 0000059a: AND 0000059b: DUP3 0000059c: MSTORE 0000059d: MLOAD 0000059e: SWAP1 0000059f: DUP2 000005a0: SWAP1 000005a1: SUB 000005a2: PUSH1 0x20 000005a4: ADD 000005a5: SWAP1 000005a6: RETURN 000005a7: JUMPDEST 000005a8: PUSH1 0x40 000005aa: DUP1 000005ab: MLOAD 000005ac: PUSH1 0x01 000005ae: PUSH1 0xa0 000005b0: PUSH1 0x02 000005b2: EXP 000005b3: SUB 000005b4: SWAP3 000005b5: SWAP1 000005b6: SWAP3 000005b7: AND 000005b8: DUP3 000005b9: MSTORE 000005ba: MLOAD 000005bb: SWAP1 000005bc: DUP2 000005bd: SWAP1 000005be: SUB 000005bf: PUSH1 0x20 000005c1: ADD 000005c2: SWAP1 000005c3: RETURN 000005c4: JUMPDEST 000005c5: POP 000005c6: SWAP4 000005c7: SWAP3 000005c8: POP 000005c9: POP 000005ca: POP 000005cb: JUMP 000005cc: JUMPDEST 000005cd: PUSH1 0x01 000005cf: PUSH1 0xa0 000005d1: PUSH1 0x02 000005d3: EXP 000005d4: SUB 000005d5: DUP4 000005d6: AND 000005d7: PUSH1 0x00 000005d9: SWAP1 000005da: DUP2 000005db: MSTORE 000005dc: PUSH1 0x07 000005de: PUSH1 0x20 000005e0: MSTORE 000005e1: PUSH1 0x40 000005e3: SWAP1 000005e4: KECCAK256 000005e5: SLOAD 000005e6: DUP1 000005e7: DUP4 000005e8: ADD 000005e9: LT 000005ea: ISZERO 000005eb: PUSH2 0x05f3 000005ee: JUMPI 000005ef: PUSH2 0x0002 000005f2: JUMP 000005f3: JUMPDEST 000005f4: PUSH1 0x01 000005f6: PUSH1 0xa0 000005f8: PUSH1 0x02 000005fa: EXP 000005fb: SUB 000005fc: DUP5 000005fd: DUP2 000005fe: AND 000005ff: PUSH1 0x00 00000601: DUP2 00000602: DUP2 00000603: MSTORE 00000604: PUSH1 0x08 00000606: PUSH1 0x20 00000608: SWAP1 00000609: DUP2 0000060a: MSTORE 0000060b: PUSH1 0x40 0000060d: DUP1 0000060e: DUP4 0000060f: KECCAK256 00000610: CALLER 00000611: SWAP1 00000612: SWAP6 00000613: AND 00000614: DUP1 00000615: DUP5 00000616: MSTORE 00000617: SWAP5 00000618: DUP3 00000619: MSTORE 0000061a: DUP1 0000061b: DUP4 0000061c: KECCAK256 0000061d: SLOAD 0000061e: SWAP4 0000061f: DUP4 00000620: MSTORE 00000621: PUSH1 0x09 00000623: DUP3 00000624: MSTORE 00000625: DUP1 00000626: DUP4 00000627: KECCAK256 00000628: SWAP5 00000629: DUP4 0000062a: MSTORE 0000062b: SWAP4 0000062c: SWAP1 0000062d: MSTORE 0000062e: SWAP2 0000062f: SWAP1 00000630: SWAP2 00000631: KECCAK256 00000632: SLOAD 00000633: DUP4 00000634: ADD 00000635: GT 00000636: ISZERO 00000637: PUSH2 0x063f 0000063a: JUMPI 0000063b: PUSH2 0x0002 0000063e: JUMP 0000063f: JUMPDEST 00000640: PUSH1 0x01 00000642: PUSH1 0xa0 00000644: PUSH1 0x02 00000646: EXP 00000647: SUB 00000648: DUP5 00000649: DUP2 0000064a: AND 0000064b: PUSH1 0x00 0000064d: DUP2 0000064e: DUP2 0000064f: MSTORE 00000650: PUSH1 0x07 00000652: PUSH1 0x20 00000654: SWAP1 00000655: DUP2 00000656: MSTORE 00000657: PUSH1 0x40 00000659: DUP1 0000065a: DUP4 0000065b: KECCAK256 0000065c: DUP1 0000065d: SLOAD 0000065e: DUP9 0000065f: SWAP1 00000660: SUB 00000661: SWAP1 00000662: SSTORE 00000663: DUP8 00000664: DUP6 00000665: AND 00000666: DUP1 00000667: DUP5 00000668: MSTORE 00000669: DUP2 0000066a: DUP5 0000066b: KECCAK256 0000066c: DUP1 0000066d: SLOAD 0000066e: DUP10 0000066f: ADD 00000670: SWAP1 00000671: SSTORE 00000672: DUP5 00000673: DUP5 00000674: MSTORE 00000675: PUSH1 0x09 00000677: DUP4 00000678: MSTORE 00000679: DUP2 0000067a: DUP5 0000067b: KECCAK256 0000067c: CALLER 0000067d: SWAP1 0000067e: SWAP7 0000067f: AND 00000680: DUP5 00000681: MSTORE 00000682: SWAP5 00000683: DUP3 00000684: MSTORE 00000685: SWAP2 00000686: DUP3 00000687: SWAP1 00000688: KECCAK256 00000689: DUP1 0000068a: SLOAD 0000068b: DUP8 0000068c: ADD 0000068d: SWAP1 0000068e: SSTORE 0000068f: DUP2 00000690: MLOAD 00000691: DUP7 00000692: DUP2 00000693: MSTORE 00000694: SWAP2 00000695: MLOAD 00000696: PUSH1 0x00 00000698: DUP1 00000699: MLOAD 0000069a: PUSH1 0x20 0000069c: PUSH2 0x0937 0000069f: DUP4 000006a0: CODECOPY 000006a1: DUP2 000006a2: MLOAD 000006a3: SWAP2 000006a4: MSTORE 000006a5: SWAP3 000006a6: DUP2 000006a7: SWAP1 000006a8: SUB 000006a9: SWAP1 000006aa: SWAP2 000006ab: ADD 000006ac: SWAP1 000006ad: LOG3 000006ae: POP 000006af: PUSH1 0x01 000006b1: SWAP4 000006b2: SWAP3 000006b3: POP 000006b4: POP 000006b5: POP 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH1 0x06 000006ba: SSTORE 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH1 0x05 000006bf: DUP1 000006c0: SLOAD 000006c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006d6: NOT 000006d7: AND 000006d8: DUP3 000006d9: OR 000006da: SWAP1 000006db: SSTORE 000006dc: POP 000006dd: JUMP 000006de: JUMPDEST 000006df: PUSH1 0x40 000006e1: DUP1 000006e2: MLOAD 000006e3: NUMBER 000006e4: DUP2 000006e5: MSTORE 000006e6: TIMESTAMP 000006e7: PUSH1 0x20 000006e9: DUP3 000006ea: ADD 000006eb: MSTORE 000006ec: DUP1 000006ed: DUP3 000006ee: ADD 000006ef: DUP7 000006f0: SWAP1 000006f1: MSTORE 000006f2: SWAP1 000006f3: MLOAD 000006f4: SWAP1 000006f5: DUP2 000006f6: SWAP1 000006f7: SUB 000006f8: PUSH1 0x60 000006fa: ADD 000006fb: SWAP1 000006fc: KECCAK256 000006fd: PUSH2 0x0707 00000700: SWAP1 00000701: PUSH1 0x0a 00000703: PUSH2 0x01b7 00000706: JUMP 00000707: JUMPDEST 00000708: SWAP1 00000709: POP 0000070a: PUSH2 0x0200 0000070d: DUP2 0000070e: LT 0000070f: PUSH2 0x0719 00000712: JUMPI 00000713: PUSH1 0x64 00000715: DUP5 00000716: MUL 00000717: SWAP3 00000718: POP 00000719: JUMPDEST 0000071a: PUSH2 0x0200 0000071d: DUP2 0000071e: LT 0000071f: ISZERO 00000720: PUSH2 0x072b 00000723: JUMPI 00000724: PUSH2 0x2648 00000727: DUP5 00000728: MUL 00000729: SWAP3 0000072a: POP 0000072b: JUMPDEST 0000072c: CALLER 0000072d: PUSH1 0x01 0000072f: PUSH1 0xa0 00000731: PUSH1 0x02 00000733: EXP 00000734: SUB 00000735: SWAP1 00000736: DUP2 00000737: AND 00000738: PUSH1 0x00 0000073a: DUP2 0000073b: DUP2 0000073c: MSTORE 0000073d: PUSH1 0x07 0000073f: PUSH1 0x20 00000741: SWAP1 00000742: DUP2 00000743: MSTORE 00000744: PUSH1 0x40 00000746: DUP1 00000747: DUP4 00000748: KECCAK256 00000749: DUP1 0000074a: SLOAD 0000074b: DUP10 0000074c: ADD 0000074d: SWAP1 0000074e: SSTORE 0000074f: PUSH1 0x05 00000751: SLOAD 00000752: DUP6 00000753: AND 00000754: DUP4 00000755: MSTORE 00000756: DUP1 00000757: DUP4 00000758: KECCAK256 00000759: DUP1 0000075a: SLOAD 0000075b: PUSH4 0xffffffff 00000760: DUP10 00000761: AND 00000762: SWAP1 00000763: DUP2 00000764: ADD 00000765: SWAP1 00000766: SWAP2 00000767: SSTORE 00000768: ADDRESS 00000769: SWAP1 0000076a: SWAP6 0000076b: AND 0000076c: DUP1 0000076d: DUP5 0000076e: MSTORE 0000076f: SWAP3 00000770: DUP2 00000771: SWAP1 00000772: KECCAK256 00000773: DUP1 00000774: SLOAD 00000775: SWAP6 00000776: DUP10 00000777: ADD 00000778: SWAP1 00000779: SWAP6 0000077a: SUB 0000077b: SWAP1 0000077c: SWAP5 0000077d: SSTORE 0000077e: DUP4 0000077f: MLOAD 00000780: DUP8 00000781: DUP2 00000782: MSTORE 00000783: SWAP4 00000784: MLOAD 00000785: SWAP3 00000786: SWAP4 00000787: SWAP2 00000788: SWAP3 00000789: PUSH1 0x00 0000078b: DUP1 0000078c: MLOAD 0000078d: PUSH1 0x20 0000078f: PUSH2 0x0937 00000792: DUP4 00000793: CODECOPY 00000794: DUP2 00000795: MLOAD 00000796: SWAP2 00000797: MSTORE 00000798: SWAP3 00000799: DUP2 0000079a: SWAP1 0000079b: SUB 0000079c: SWAP1 0000079d: SWAP2 0000079e: ADD 0000079f: SWAP1 000007a0: LOG3 000007a1: PUSH1 0x05 000007a3: SLOAD 000007a4: PUSH1 0x40 000007a6: DUP1 000007a7: MLOAD 000007a8: PUSH4 0xffffffff 000007ad: DUP6 000007ae: AND 000007af: DUP2 000007b0: MSTORE 000007b1: SWAP1 000007b2: MLOAD 000007b3: PUSH1 0x01 000007b5: PUSH1 0xa0 000007b7: PUSH1 0x02 000007b9: EXP 000007ba: SUB 000007bb: SWAP3 000007bc: DUP4 000007bd: AND 000007be: SWAP3 000007bf: ADDRESS 000007c0: AND 000007c1: SWAP2 000007c2: PUSH1 0x00 000007c4: DUP1 000007c5: MLOAD 000007c6: PUSH1 0x20 000007c8: PUSH2 0x0937 000007cb: DUP4 000007cc: CODECOPY 000007cd: DUP2 000007ce: MLOAD 000007cf: SWAP2 000007d0: MSTORE 000007d1: SWAP2 000007d2: SWAP1 000007d3: DUP2 000007d4: SWAP1 000007d5: SUB 000007d6: PUSH1 0x20 000007d8: ADD 000007d9: SWAP1 000007da: LOG3 000007db: POP 000007dc: POP 000007dd: POP 000007de: SWAP1 000007df: JUMP 000007e0: JUMPDEST 000007e1: ADDRESS 000007e2: PUSH1 0x01 000007e4: PUSH1 0xa0 000007e6: PUSH1 0x02 000007e8: EXP 000007e9: SUB 000007ea: SWAP1 000007eb: DUP2 000007ec: AND 000007ed: PUSH1 0x00 000007ef: SWAP1 000007f0: DUP2 000007f1: MSTORE 000007f2: PUSH1 0x07 000007f4: PUSH1 0x20 000007f6: MSTORE 000007f7: PUSH1 0x40 000007f9: DUP1 000007fa: DUP3 000007fb: KECCAK256 000007fc: DUP1 000007fd: SLOAD 000007fe: DUP8 000007ff: ADD 00000800: SWAP1 00000801: SSTORE 00000802: CALLER 00000803: SWAP1 00000804: SWAP3 00000805: AND 00000806: DUP1 00000807: DUP3 00000808: MSTORE 00000809: DUP3 0000080a: DUP3 0000080b: KECCAK256 0000080c: DUP1 0000080d: SLOAD 0000080e: DUP8 0000080f: SWAP1 00000810: SUB 00000811: SWAP1 00000812: SSTORE 00000813: SWAP2 00000814: MLOAD 00000815: PUSH4 0xffffffff 0000081a: DUP5 0000081b: AND 0000081c: DUP7 0000081d: MUL 0000081e: SWAP5 0000081f: POP 00000820: DUP5 00000821: SWAP1 00000822: DUP3 00000823: DUP2 00000824: DUP2 00000825: DUP2 00000826: DUP6 00000827: DUP9 00000828: DUP4 00000829: CALL 0000082a: POP 0000082b: POP 0000082c: PUSH1 0x40 0000082e: DUP1 0000082f: MLOAD 00000830: DUP8 00000831: DUP2 00000832: MSTORE 00000833: SWAP1 00000834: MLOAD 00000835: ADDRESS 00000836: PUSH1 0x01 00000838: PUSH1 0xa0 0000083a: PUSH1 0x02 0000083c: EXP 0000083d: SUB 0000083e: AND 0000083f: SWAP5 00000840: SWAP4 00000841: POP 00000842: PUSH1 0x00 00000844: DUP1 00000845: MLOAD 00000846: PUSH1 0x20 00000848: PUSH2 0x0937 0000084b: DUP4 0000084c: CODECOPY 0000084d: DUP2 0000084e: MLOAD 0000084f: SWAP2 00000850: MSTORE 00000851: SWAP3 00000852: POP 00000853: SWAP1 00000854: DUP2 00000855: SWAP1 00000856: SUB 00000857: PUSH1 0x20 00000859: ADD 0000085a: SWAP1 0000085b: LOG3 0000085c: POP 0000085d: SWAP2 0000085e: SWAP1 0000085f: POP 00000860: JUMP 00000861: JUMPDEST 00000862: PUSH1 0x01 00000864: PUSH1 0xa0 00000866: PUSH1 0x02 00000868: EXP 00000869: SUB 0000086a: DUP3 0000086b: AND 0000086c: PUSH1 0x00 0000086e: SWAP1 0000086f: DUP2 00000870: MSTORE 00000871: PUSH1 0x07 00000873: PUSH1 0x20 00000875: MSTORE 00000876: PUSH1 0x40 00000878: SWAP1 00000879: KECCAK256 0000087a: SLOAD 0000087b: DUP2 0000087c: DUP2 0000087d: ADD 0000087e: LT 0000087f: ISZERO 00000880: PUSH2 0x0888 00000883: JUMPI 00000884: PUSH2 0x0002 00000887: JUMP 00000888: JUMPDEST 00000889: CALLER 0000088a: PUSH1 0x01 0000088c: PUSH1 0xa0 0000088e: PUSH1 0x02 00000890: EXP 00000891: SUB 00000892: SWAP1 00000893: DUP2 00000894: AND 00000895: PUSH1 0x00 00000897: DUP2 00000898: DUP2 00000899: MSTORE 0000089a: PUSH1 0x07 0000089c: PUSH1 0x20 0000089e: SWAP1 0000089f: DUP2 000008a0: MSTORE 000008a1: PUSH1 0x40 000008a3: DUP1 000008a4: DUP4 000008a5: KECCAK256 000008a6: DUP1 000008a7: SLOAD 000008a8: DUP8 000008a9: SWAP1 000008aa: SUB 000008ab: SWAP1 000008ac: SSTORE 000008ad: SWAP4 000008ae: DUP7 000008af: AND 000008b0: DUP1 000008b1: DUP4 000008b2: MSTORE 000008b3: SWAP2 000008b4: DUP5 000008b5: SWAP1 000008b6: KECCAK256 000008b7: DUP1 000008b8: SLOAD 000008b9: DUP7 000008ba: ADD 000008bb: SWAP1 000008bc: SSTORE 000008bd: DUP4 000008be: MLOAD 000008bf: DUP6 000008c0: DUP2 000008c1: MSTORE 000008c2: SWAP4 000008c3: MLOAD 000008c4: SWAP2 000008c5: SWAP4 000008c6: PUSH1 0x00 000008c8: DUP1 000008c9: MLOAD 000008ca: PUSH1 0x20 000008cc: PUSH2 0x0937 000008cf: DUP4 000008d0: CODECOPY 000008d1: DUP2 000008d2: MLOAD 000008d3: SWAP2 000008d4: MSTORE 000008d5: SWAP3 000008d6: SWAP1 000008d7: DUP2 000008d8: SWAP1 000008d9: SUB 000008da: SWAP1 000008db: SWAP2 000008dc: ADD 000008dd: SWAP1 000008de: LOG3 000008df: POP 000008e0: POP 000008e1: JUMP 000008e2: JUMPDEST 000008e3: PUSH1 0x00 000008e5: DUP1 000008e6: SLOAD 000008e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008fc: NOT 000008fd: AND 000008fe: DUP3 000008ff: OR 00000900: SWAP1 00000901: SSTORE 00000902: POP 00000903: JUMP 00000904: JUMPDEST 00000905: DUP3 00000906: ADD 00000907: SWAP2 00000908: SWAP1 00000909: PUSH1 0x00 0000090b: MSTORE 0000090c: PUSH1 0x20 0000090e: PUSH1 0x00 00000910: KECCAK256 00000911: SWAP1 00000912: JUMPDEST 00000913: DUP2 00000914: SLOAD 00000915: DUP2 00000916: MSTORE 00000917: SWAP1 00000918: PUSH1 0x01 0000091a: ADD 0000091b: SWAP1 0000091c: PUSH1 0x20 0000091e: ADD 0000091f: DUP1 00000920: DUP4 00000921: GT 00000922: PUSH2 0x0912 00000925: JUMPI 00000926: DUP3 00000927: SWAP1 00000928: SUB 00000929: PUSH1 0x1f 0000092b: AND 0000092c: DUP3 0000092d: ADD 0000092e: SWAP2 0000092f: JUMPDEST 00000930: POP 00000931: POP 00000932: POP 00000933: POP 00000934: POP 00000935: DUP2 00000936: JUMP 00000937: UNKNOWN(0xDD) 00000938: CALLCODE 00000939: MSTORE 0000093a: UNKNOWN(0xAD) 0000093b: SHL 0000093c: UNKNOWN(0xE2) 0000093d: UNKNOWN(0xC8) 0000093e: SWAP12 0000093f: PUSH10 0xc2b068fc378daa952ba7 0000094a: CALL 0000094b: PUSH4 0xc4a11628 00000950: CREATE2 00000951: GAS 00000952: UNKNOWN(0x4D) 00000953: CREATE2 00000954: UNKNOWN(0x23) 00000955: UNKNOWN(0xB3) 00000956: UNKNOWN(0xEF)
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: 0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c
call_targets:
0x0000000000000000000000000000000000000004, 0x2083ba165b902a02a6bf931287dfedd50a4ddd21
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
],
"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": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f2a8a80",
"selector": "0x7f2a8a80",
"calldata_variants": [
"0x7f2a8a80",
"0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1037,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1105,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1351,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c
call_targets:
0x0000000000000000000000000000000000000004, 0x2083ba165b902a02a6bf931287dfedd50a4ddd21
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
],
"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": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f2a8a80",
"selector": "0x7f2a8a80",
"calldata_variants": [
"0x7f2a8a80",
"0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1037,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1105,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1351,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| high | access_control | codex | Owner-controlled source address can redirect public token payouts to arbitrary holder balances | 85 | no | — |
viewevidence_json{
"evidence": "`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.",
"locations": [
"selector:0x7f2a8a80",
"selector:0xa6f2ae3a",
"selector:0xff9b3acf",
"pc:0x224",
"pc:0x6bc",
"pc:0x6de",
"pc:0x74a",
"pc:0x765",
"pc:0x777",
"pc:0x7a0"
],
"recommendation": "Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.",
"exploit_scenario": "A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1fe9eabc",
"selector": "0x1fe9eabc",
"calldata_variants": [
"0x1fe9eabc",
"0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41fa4876",
"selector": "0x41fa4876",
"calldata_variants": [
"0x41fa4876",
"0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7f2a8a80",
"selector": "0x7f2a8a80",
"calldata_variants": [
"0x7f2a8a80",
"0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| medium | other | codex | `allowance()` appears to report the approved amount, not the remaining spendable amount | 75 | no | — |
viewevidence_json{
"evidence": "The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.",
"locations": [
"selector:0xcae9ca51",
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"selector:0xdc3080f2",
"pc:0x390",
"pc:0x462",
"pc:0x633",
"pc:0x64a",
"pc:0x483",
"pc:0x499"
],
"recommendation": "Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.",
"exploit_scenario": "A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns."
}
|
| medium | other | codex | Token-for-ETH payout path ignores CALL failure after moving balances | 75 | no | — |
viewevidence_json{
"evidence": "`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.",
"locations": [
"selector:0xe4849b32",
"pc:0x7e0",
"pc:0x801",
"pc:0x812",
"pc:0x829",
"pc:0x85b"
],
"recommendation": "Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.",
"exploit_scenario": "A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment."
}
|