019b3836-3d4a-716f-9c1a-88a7ebc5859e
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 |
|---|---|---|---|---|
| 4701 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 4702 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 47984 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 47985 | capability.graph | complete | 1 / 3 | 1 week ago |
| 47986 | detector.run | complete | 1 / 3 | 1 week ago |
| 47987 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113284 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"Read BYTECODE_BUNDLE.json. Bytecode-only analysis suggests this is a payable deposit queue / payout scheme with owner-controlled parameters, a payout loop in the fallback/deposit path, and several unchecked low-level ETH CALLs. The strongest issues are a reentrancy window around queued payouts and accounting that advances even if a payout transfer fails. Selector inference is uncertain; the vulnerable path is the payable fallback/deposit logic rather than a named ABI function.","findings":[{"severity":"high","category":"reentrancy","title":"Queued payout is sent before the entry is marked paid","exploit_scenario":"An attacker deposits enough to become the next payable recipient. When the contract pays that entry, the attacker's fallback receives more than 1 ETH, then immediately reenters the payable fallback/deposit path with 1 ETH before the original payout is marked complete. Because the queue item and global counters are only updated after the external CALL returns, the same entry can be selected and paid again recursively until available balance is drained.","recommendation":"Apply checks-effects-interactions on the payout path: mark the entry paid and update queue/accounting before any external transfer, or move to a pull-payment claim model. Add a reentrancy guard around the deposit/payout flow.","evidence":"In the deposit/fallback path, the contract computes and executes a value-bearing CALL to the queued recipient at pc:0x8e3. The first observed bookkeeping write for that payout happens only afterward in the SSTORE sequence beginning at pc:0x8f7/pc:0x903, followed by user/global accounting writes at pc:0x951, pc:0x963, and pc:0x9f2. No guard is visible in the artifact. The contract also constrains/advertises its payout multiplier to 110%-150% (bound check at pc:0x32f-0x33f and embedded strings), so a recipient callback has enough ETH to reenter the payable path at pc:0x651.","locations":["pc:0x651","pc:0x8e3","pc:0x903","pc:0x951","pc:0x963","pc:0x9f2"]},{"severity":"medium","category":"other","title":"Payout accounting advances even if the ETH transfer fails","exploit_scenario":"A queued recipient can be a contract that reverts on receiving ETH or otherwise causes the CALL to fail. The contract does not check the CALL result, but still marks the queue item as paid and updates totals as if the transfer succeeded. The recipient loses its payout while the ETH stays in the contract balance and later accounting no longer reflects the obligation correctly.","recommendation":"Check the success flag of value-transferring CALLs and revert or leave the claim outstanding on failure. Prefer a pull-based withdraw pattern so failed transfers do not corrupt payout/accounting state.","evidence":"The payout CALL at pc:0x8e3 is immediately discarded without a success check at pc:0x8e4-pc:0x8e9. Despite that, the code proceeds with state changes that appear to finalize the payout: the queue-entry status byte is updated in the write sequence ending at pc:0x903, user/global totals are mutated around pc:0x93e-pc:0x963, and queue counters are updated at pc:0x9e7-pc:0x9f2. Other ETH CALLs at pc:0x9d, pc:0x690, and pc:0xa6b are also unchecked, but the payout path is the materially dangerous one.","locations":["pc:0x8e3","pc:0x903","pc:0x93e","pc:0x963","pc:0x9e7","pc:0x9f2"]}]}
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-hyjd74og
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c16-faf5-7453-89e4-65252b0c858c
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc "ls -la /tmp/codex-hyjd74og && printf '\\n---\\n' && rg --files /tmp/codex-hyjd74og && printf '\\n---\\n' && wc -c /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
total 192
drwx------ 2 noahkuhn noahkuhn 4096 Apr 5 05:21 .
drwxrwxrwt 270 nobody nogroup 24576 Apr 5 05:21 ..
-rw-rw-r-- 1 noahkuhn noahkuhn 156996 Apr 5 05:21 BYTECODE_BUNDLE.json
-rw-rw-r-- 1 noahkuhn noahkuhn 815 Apr 5 05:21 codex-output-schema.json
---
/tmp/codex-hyjd74og/codex-output-schema.json
/tmp/codex-hyjd74og/BYTECODE_BUNDLE.json
---
156996 /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json
exec
/bin/bash -lc "jq '.' /tmp/codex-hyjd74og/codex-output-schema.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
{
"type": "object",
"additionalProperties": false,
"required": [
"no_findings",
"summary",
"findings"
],
"properties": {
"no_findings": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"severity",
"category",
"title",
"evidence",
"locations",
"exploit_scenario",
"recommendation"
],
"properties": {
"severity": {
"type": "string",
"enum": [
"info",
"low",
"medium",
"high",
"critical"
]
},
"category": {
"type": "string",
"enum": [
"access_control",
"reentrancy",
"math",
"oracle",
"upgradeability",
"auth",
"other"
]
},
"title": {
"type": "string"
},
"exploit_scenario": {
"type": "string"
},
"recommendation": {
"type": "string"
},
"evidence": {
"type": "string"
},
"locations": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
exec
/bin/bash -lc "jq 'keys' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
[
"analysis_artifact",
"analysis_run",
"artifact",
"capability_graph",
"detector_findings",
"heuristics_summary"
]
exec
/bin/bash -lc "jq '{analysis_run, heuristics_summary, detector_findings_count:(.detector_findings|length), artifact_keys:(.artifact|keys), analysis_artifact_keys:(.analysis_artifact|keys), capability_graph_keys:(.capability_graph|keys)}' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
{
"analysis_run": {
"address": "0xf767fca8e65d03fe16d4e38810f5e5376c3372a8",
"block_number": null,
"chain_id": 1,
"child_links": [],
"created_at": "2025-12-19T20:03:57.000000Z",
"id": "019b3836-3d4a-716f-9c1a-88a7ebc5859e",
"parent_links": [],
"status": "running",
"updated_at": "2026-04-04T19:57:39.000000Z"
},
"heuristics_summary": {
"create2_count": 0,
"delegatecall_count": 0,
"flags": [],
"selfdestruct_count": 0
},
"detector_findings_count": 2,
"artifact_keys": [
"codehash",
"compiler_json",
"implementation_address",
"is_proxy",
"runtime_bytecode",
"verified_source"
],
"analysis_artifact_keys": [
"address",
"artifact_hash",
"artifact_json",
"block_number",
"chain_id",
"codehash",
"created_at",
"id",
"updated_at",
"version"
],
"capability_graph_keys": [
"address",
"block_number",
"chain_id",
"codehash",
"created_at",
"graph_hash",
"graph_json",
"id",
"updated_at",
"version"
]
}
exec
/bin/bash -lc "jq '.detector_findings' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
[
{
"confidence": 60,
"evidence_json": {
"call_count": 7,
"examples": [
{
"opcode": "CALL",
"pc": 157,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 376,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1419,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 7
},
"normalized_json": {
"sink": "CALL"
},
"severity": "high",
"title": "Untrusted CALL target/value reachable",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xf767fca8e65d03fe16d4e38810f5e5376c3372a8"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765",
"trace_mode": "callTracer"
}
},
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 7,
"examples": [
{
"opcode": "CALL",
"pc": 157,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 376,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1419,
"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",
"0xf767fca8e65d03fe16d4e38810f5e5376c3372a8"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765",
"trace_mode": "callTracer"
}
}
]
exec
/bin/bash -lc "jq '.capability_graph.graph_json | keys' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
[
"edges",
"nodes",
"version"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | keys' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
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 '.artifact' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
{
"codehash": "0x1660d853924c1a5aa6e0d494a7fe6d83fe22a4353db29e1d270e44122de066ce",
"compiler_json": {
"etherscan": {
"skipped": true
}
},
"implementation_address": null,
"is_proxy": false,
"runtime_bytecode": {
"full": "0x6060604052361561006c5760e060020a600035046330677b8381146100a55780636a1db1bf146101b15780637fef036e146101e15780638a65d8741461022d578063a6f9dae1146102da578063ced926701461030f578063da3c300d14610347578063f67abd87146103e2575b6105476100a3670de0b6b3a764000034101561065157604051600160a060020a03331690600090349082818181858883f150505050505b565b604080516020808201835260009091528151600354608082018452604382527f5468652063757272656e74206d756c7469706c696572206170706c6965642074928201929092527f6f20616c6c206465706f736974732e204d696e20313130252c206d6178203135928101929092527f30252e00000000000000000000000000000000000000000000000000000000006060830152905b60405180838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156101a25780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b610547600435600054600160a060020a039081163391909116141561030c57600254600590111561074c57610002565b604080516020808201835260009091528151600554818401909352601781527f546865206e756d626572206f66206465706f736974732e0000000000000000009181019190915261013c565b61054960043560408051602080820183526000808352600160a060020a0385811682526004909252928320548392911682146102d35750506040908190206002810154600191909101548251606081018452602e81527f55736572732073746174733a20746f74616c206465706f736974732c2070617960208201527f6f7574732072656365697665642e00000000000000000000000000000000000093810193909352915b9193909250565b610547600435600054600160a060020a039081163391909116141561030c5760008054600160a060020a031916821790555b50565b610547600435600054600160a060020a039081163391909116141561030c57606e81108061033d5750609681115b1561074757610002565b604080516020808201835260009091528151600254608082018452605482527f546865206665652070657263656e74616765206170706c69656420746f20616c928201929092527f6c206465706f736974732e2049742063616e206368616e676520746f20737065928101929092527f6564207061796f75747320286d6178203525292e00000000000000000000000060608301529061013c565b6105c560043560408051602081019091526000808252600554909182918291908510156105405760058054869081101561000257508054818452600487027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00154600160a060020a0316955066038d7ea4c6800091908790811015610002579060005260206000209060040201600050600201546005805492909104945090869081101561000257505060408051600487027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db30154608082018352604482527f456e74727920696e666f3a207573657220616464726573732c2065787065637460208301527f6564207061796f757420696e2046696e6e6579732c207061796f757420737461928201929092527f7475732e00000000000000000000000000000000000000000000000000000000606082015260ff91909116925090505b9193509193565b005b60405180848152602001838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105b55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6040518085600160a060020a03168152602001848152602001838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156106405780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6100a3670de0b6b3a76400006000808080348590111561069657604051600160a060020a033316908290670de0b6b3a763ffff1934019082818181858883f150505050505b600160a060020a0333811660009081526004602052604081205490911614156106dc57604060009081208054600160a060020a0319163317815560018101829055600201555b600580546001810180835582818380158290116107515760040281600402836000526020600020918201910161075191905b8082111561081e578054600160a060020a031916815560006001820181815560028301919091556003909101805460ff1916905561070e565b600355565b600255565b50505091909060005260206000209060040201600050604080516080810182523380825260208083018b9052600380546064908d020484860181905260006060959095018590528654600160a060020a0319168417875560018781018e905560028801919091559501805460ff19169055600160a060020a039091168252600490522081018054820190556006805491820180825590925082818380158290116108225781836000526020600020918201910161082291905b8082111561081e576000815560010161080a565b5090565b50505060009283525060055460209092206000199290920191015560018054600254606490810388020401815560065411610a185760005b60068054919550600591869081101561000257506000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f850154815481101561000257906000526020600020906004020160005060015460028201549194501115610a3357604051835460028501549350600160a060020a031690600090849082818181858883f193505050505060018360030160006101000a81548160ff02191690830217905550600460005060008460000160009054906101000a9004600160a060020a0316600160a060020a031681526020019081526020016000206000506002016000818150548092919060010191905055508160016000828282505403925050819055506001600660005080549050038410156109e657600680546000198101908110156100025750805460008290527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3e810154919086908110156100025750507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f8501555b600680546000198101808355909190828015829011610a2e57818360005260206000209182019101610a2e919061080a565b600654602319819004436000190140040661085a565b505050505b5060015430600160a060020a031631036000811115610a715760008054604051600160a060020a03919091169190839082818181858883f150505050505b505050505056",
"head": null,
"length": 5362,
"tail": null,
"truncated": false
},
"verified_source": false
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | {dispatcher_type, selectors, function_entries, functions, auth, sinks, callsites, storage}' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
{
"dispatcher_type": "selector_jump_table",
"selectors": [
"0x30677b83",
"0x6a1db1bf",
"0x7fef036e",
"0x8a65d874",
"0xa6f9dae1",
"0xced92670",
"0xda3c300d",
"0xf67abd87"
],
"function_entries": [
{
"entry_pc": null,
"selector": "0x30677b83"
},
{
"entry_pc": 2146370414,
"selector": "0x6a1db1bf"
},
{
"entry_pc": 2321930356,
"selector": "0x7fef036e"
},
{
"entry_pc": 2801392353,
"selector": "0x8a65d874"
},
{
"entry_pc": 3470337648,
"selector": "0xa6f9dae1"
},
{
"entry_pc": 3661377549,
"selector": "0xced92670"
},
{
"entry_pc": 4135239047,
"selector": "0xda3c300d"
},
{
"entry_pc": 1351,
"selector": "0xf67abd87"
}
],
"functions": [
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x30677b83",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2146370414,
"selector": "0x6a1db1bf",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2321930356,
"selector": "0x7fef036e",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2801392353,
"selector": "0x8a65d874",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3470337648,
"selector": "0xa6f9dae1",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3661377549,
"selector": "0xced92670",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 4135239047,
"selector": "0xda3c300d",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1351,
"selector": "0xf67abd87",
"sinks": {
"call": 7,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
}
],
"auth": {
"guards": []
},
"sinks": {
"call": 7,
"create": 0,
"create2": 0,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0,
"upgrade_slot_write_suspected": false
},
"callsites": [
{
"opcode": "CALL",
"pc": 157,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 376,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1419,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1558,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1680,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2275,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2667,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"storage": {
"keccak_count": 13,
"reads": 51,
"slots": [
{
"op": "SLOAD",
"pc": 186,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 442,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 467,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 502,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 739,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 765,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 792,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 860,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 1019,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1037,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1146,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1760,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 1921,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 2016,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2094,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 2113,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2116,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 2130,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2142,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2226,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2245,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000040"
},
{
"op": "SLOAD",
"pc": 2323,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 2396,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2413,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2427,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2538,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2587,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
"pc": 2615,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 2640,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 25
}
}
exec
/bin/bash -lc "jq '.capability_graph.graph_json' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json" in /tmp/codex-hyjd74og
succeeded in 0ms:
{
"edges": [
{
"from": "bb:0",
"to": "bb:108",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:165",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:31",
"type": "control_flow_fallthrough"
},
{
"from": "bb:31",
"to": "bb:433",
"type": "control_flow"
},
{
"from": "bb:31",
"to": "bb:42",
"type": "control_flow_fallthrough"
},
{
"from": "bb:42",
"to": "bb:481",
"type": "control_flow"
},
{
"from": "bb:42",
"to": "bb:53",
"type": "control_flow_fallthrough"
},
{
"from": "bb:53",
"to": "bb:557",
"type": "control_flow"
},
{
"from": "bb:53",
"to": "bb:64",
"type": "control_flow_fallthrough"
},
{
"from": "bb:64",
"to": "bb:730",
"type": "control_flow"
},
{
"from": "bb:64",
"to": "bb:75",
"type": "control_flow_fallthrough"
},
{
"from": "bb:75",
"to": "bb:783",
"type": "control_flow"
},
{
"from": "bb:75",
"to": "bb:86",
"type": "control_flow_fallthrough"
},
{
"from": "bb:86",
"to": "bb:839",
"type": "control_flow"
},
{
"from": "bb:86",
"to": "bb:97",
"type": "control_flow_fallthrough"
},
{
"from": "bb:97",
"to": "bb:994",
"type": "control_flow"
},
{
"from": "bb:97",
"to": "bb:108",
"type": "control_flow_fallthrough"
},
{
"from": "bb:108",
"to": "bb:1617",
"type": "control_flow"
},
{
"from": "bb:108",
"to": "bb:131",
"type": "control_flow_fallthrough"
},
{
"from": "bb:131",
"to": "bb:163",
"type": "control_flow_fallthrough"
},
{
"from": "bb:165",
"to": "bb:316",
"type": "control_flow_fallthrough"
},
{
"from": "bb:316",
"to": "bb:418",
"type": "control_flow"
},
{
"from": "bb:316",
"to": "bb:393",
"type": "control_flow_fallthrough"
},
{
"from": "bb:393",
"to": "bb:418",
"type": "control_flow_fallthrough"
},
{
"from": "bb:433",
"to": "bb:780",
"type": "control_flow"
},
{
"from": "bb:433",
"to": "bb:465",
"type": "control_flow_fallthrough"
},
{
"from": "bb:465",
"to": "bb:1868",
"type": "control_flow"
},
{
"from": "bb:465",
"to": "bb:477",
"type": "control_flow_fallthrough"
},
{
"from": "bb:481",
"to": "bb:316",
"type": "control_flow"
},
{
"from": "bb:557",
"to": "bb:723",
"type": "control_flow"
},
{
"from": "bb:557",
"to": "bb:612",
"type": "control_flow_fallthrough"
},
{
"from": "bb:612",
"to": "bb:723",
"type": "control_flow_fallthrough"
},
{
"from": "bb:730",
"to": "bb:780",
"type": "control_flow"
},
{
"from": "bb:730",
"to": "bb:762",
"type": "control_flow_fallthrough"
},
{
"from": "bb:762",
"to": "bb:780",
"type": "control_flow_fallthrough"
},
{
"from": "bb:783",
"to": "bb:780",
"type": "control_flow"
},
{
"from": "bb:783",
"to": "bb:815",
"type": "control_flow_fallthrough"
},
{
"from": "bb:815",
"to": "bb:829",
"type": "control_flow"
},
{
"from": "bb:815",
"to": "bb:824",
"type": "control_flow_fallthrough"
},
{
"from": "bb:824",
"to": "bb:829",
"type": "control_flow_fallthrough"
},
{
"from": "bb:829",
"to": "bb:1863",
"type": "control_flow"
},
{
"from": "bb:829",
"to": "bb:835",
"type": "control_flow_fallthrough"
},
{
"from": "bb:839",
"to": "bb:316",
"type": "control_flow"
},
{
"from": "bb:994",
"to": "bb:1344",
"type": "control_flow"
},
{
"from": "bb:994",
"to": "bb:1034",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1034",
"to": "bb:1047",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1047",
"to": "bb:1122",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1122",
"to": "bb:1163",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1163",
"to": "bb:1344",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1353",
"to": "bb:1461",
"type": "control_flow"
},
{
"from": "bb:1353",
"to": "bb:1436",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1436",
"to": "bb:1461",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1477",
"to": "bb:1600",
"type": "control_flow"
},
{
"from": "bb:1477",
"to": "bb:1575",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1575",
"to": "bb:1600",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1617",
"to": "bb:1686",
"type": "control_flow"
},
{
"from": "bb:1617",
"to": "bb:1644",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1644",
"to": "bb:1686",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1686",
"to": "bb:1756",
"type": "control_flow"
},
{
"from": "bb:1686",
"to": "bb:1722",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1722",
"to": "bb:1756",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1756",
"to": "bb:1873",
"type": "control_flow"
},
{
"from": "bb:1756",
"to": "bb:1780",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1780",
"to": "bb:1806",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1806",
"to": "bb:2078",
"type": "control_flow"
},
{
"from": "bb:1806",
"to": "bb:1815",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1815",
"to": "bb:1806",
"type": "control_flow"
},
{
"from": "bb:1873",
"to": "bb:2082",
"type": "control_flow"
},
{
"from": "bb:1873",
"to": "bb:2038",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2038",
"to": "bb:2058",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2058",
"to": "bb:2078",
"type": "control_flow"
},
{
"from": "bb:2058",
"to": "bb:2067",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2067",
"to": "bb:2058",
"type": "control_flow"
},
{
"from": "bb:2082",
"to": "bb:2584",
"type": "control_flow"
},
{
"from": "bb:2082",
"to": "bb:2136",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2136",
"to": "bb:2138",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2138",
"to": "bb:2158",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2158",
"to": "bb:2207",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2207",
"to": "bb:2611",
"type": "control_flow"
},
{
"from": "bb:2207",
"to": "bb:2241",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2241",
"to": "bb:2534",
"type": "control_flow"
},
{
"from": "bb:2241",
"to": "bb:2424",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2424",
"to": "bb:2441",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2441",
"to": "bb:2496",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2496",
"to": "bb:2534",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2534",
"to": "bb:2606",
"type": "control_flow"
},
{
"from": "bb:2534",
"to": "bb:2560",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2560",
"to": "bb:2058",
"type": "control_flow"
},
{
"from": "bb:2584",
"to": "bb:2138",
"type": "control_flow"
},
{
"from": "bb:2606",
"to": "bb:2611",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2611",
"to": "bb:2673",
"type": "control_flow"
},
{
"from": "bb:2611",
"to": "bb:2637",
"type": "control_flow_fallthrough"
},
{
"from": "bb:2637",
"to": "bb:2673",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x6a1db1bf",
"to": "bb:2146370414",
"type": "entry"
},
{
"from": "fn:0x7fef036e",
"to": "bb:2321930356",
"type": "entry"
},
{
"from": "fn:0x8a65d874",
"to": "bb:2801392353",
"type": "entry"
},
{
"from": "fn:0xa6f9dae1",
"to": "bb:3470337648",
"type": "entry"
},
{
"from": "fn:0xced92670",
"to": "bb:3661377549",
"type": "entry"
},
{
"from": "fn:0xda3c300d",
"to": "bb:4135239047",
"type": "entry"
},
{
"from": "fn:0xf67abd87",
"to": "bb:1351",
"type": "entry"
},
{
"from": "bb:131",
"to": "call:157",
"type": "contains"
},
{
"from": "call:157",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:316",
"to": "call:376",
"type": "contains"
},
{
"from": "call:376",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1353",
"to": "call:1419",
"type": "contains"
},
{
"from": "call:1419",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1477",
"to": "call:1558",
"type": "contains"
},
{
"from": "call:1558",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:1644",
"to": "call:1680",
"type": "contains"
},
{
"from": "call:1680",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:2241",
"to": "call:2275",
"type": "contains"
},
{
"from": "call:2275",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:2637",
"to": "call:2667",
"type": "contains"
},
{
"from": "call:2667",
"to": "sink:call",
"type": "capability"
}
],
"nodes": [
{
"end_pc": 10,
"hash": "0x700ae68e6e48f29f5039c54f12674c3a4ca8c5c3a2f54ca417214312e0b28325",
"id": "bb:0",
"start_pc": 0,
"type": "basic_block"
},
{
"end_pc": 30,
"hash": "0x65a9278cde7a03e69a6469fb88bd3dc39878efa6a367e5699095c0c19b7ff365",
"id": "bb:11",
"start_pc": 11,
"type": "basic_block"
},
{
"end_pc": 41,
"hash": "0x2f0f508f981b728a723074628983b070ab664dce78eb010fdebade92a3b12771",
"id": "bb:31",
"start_pc": 31,
"type": "basic_block"
},
{
"end_pc": 52,
"hash": "0x878c3b23ed887d853351c47c5a90254c4da3dfb85482518827c5c65b051e34ac",
"id": "bb:42",
"start_pc": 42,
"type": "basic_block"
},
{
"end_pc": 63,
"hash": "0xeac0dbed511e1145cef1cd96b5427a0e0e7d16ad92e6d81353ddab0b25386f2a",
"id": "bb:53",
"start_pc": 53,
"type": "basic_block"
},
{
"end_pc": 74,
"hash": "0xafb698459ea0d2bfe7406305d17e2ad9df166061eea29bfc66250555ac52f14c",
"id": "bb:64",
"start_pc": 64,
"type": "basic_block"
},
{
"end_pc": 85,
"hash": "0x6e8ca1c2636783439175fd95ea755257463c663597bf41e53b954147664fc8ef",
"id": "bb:75",
"start_pc": 75,
"type": "basic_block"
},
{
"end_pc": 96,
"hash": "0x3ada3247ec240c40b84d10ab306b6f48ee8dbeb1ff634c379648440e9639f369",
"id": "bb:86",
"start_pc": 86,
"type": "basic_block"
},
{
"end_pc": 107,
"hash": "0x2755c7a424b6574a7f68c894882f5faf7a5df91681f696d4dfe98e8dbf3e315a",
"id": "bb:97",
"start_pc": 97,
"type": "basic_block"
},
{
"end_pc": 130,
"hash": "0xf52763d6208933552de92804f32722707ded0aa291d1ce7742a9b29a31088688",
"id": "bb:108",
"start_pc": 108,
"type": "basic_block"
},
{
"end_pc": 162,
"hash": "0xfbe24ce4ae16351fc03c1ed6e07e0a0b28cffd46fc16b0cd6d056a7ea3b6b6de",
"id": "bb:131",
"start_pc": 131,
"type": "basic_block"
},
{
"end_pc": 164,
"hash": "0xa121d074ff03c8aa28b8755b1688d645e41e46df90a8a11a8efb5c4293eb9a3a",
"id": "bb:163",
"start_pc": 163,
"type": "basic_block"
},
{
"end_pc": 315,
"hash": "0x2692830ce54ea58b8408474f5f25c3284217eac5c2072f549e0a6bb8c728e578",
"id": "bb:165",
"start_pc": 165,
"type": "basic_block"
},
{
"end_pc": 392,
"hash": "0x1ec10fe67b2428f4b785ac0459976607c1e65815ae25b0db836c6b4cfff1914d",
"id": "bb:316",
"start_pc": 316,
"type": "basic_block"
},
{
"end_pc": 417,
"hash": "0xf452ac50afbd075b7a02a484f04c4ef5fabe5412afe1c9222accd8f2e83953d9",
"id": "bb:393",
"start_pc": 393,
"type": "basic_block"
},
{
"end_pc": 432,
"hash": "0x66d0220d71bdee69a0c975cc82ad7d9248e3e12aa938159587c49a5bb4afc802",
"id": "bb:418",
"start_pc": 418,
"type": "basic_block"
},
{
"end_pc": 464,
"hash": "0x4c890ca7f71c8f70d2ff6fac1a8843af8d7fb4a9634cd38d30ebe617e0e7f8bb",
"id": "bb:433",
"start_pc": 433,
"type": "basic_block"
},
{
"end_pc": 476,
"hash": "0x1256ea55a51dbb92b876a86f614bfdb6e199d2cd083dc2282e59254b81926cb2",
"id": "bb:465",
"start_pc": 465,
"type": "basic_block"
},
{
"end_pc": 480,
"hash": "0xd3af870c0425e94c24cf6b85fc9939cf5201a8ae47699537ba18692b2aea1558",
"id": "bb:477",
"start_pc": 477,
"type": "basic_block"
},
{
"end_pc": 556,
"hash": "0x965cb1bb69f7e941e04dd86fb96e250032d8edb7cf56c836a3068a6cf9d00372",
"id": "bb:481",
"start_pc": 481,
"type": "basic_block"
},
{
"end_pc": 611,
"hash": "0x9e7a27d7ac91b84b13018ea40ec5653973320ba29eac6ba3397f30f3de7eba7a",
"id": "bb:557",
"start_pc": 557,
"type": "basic_block"
},
{
"end_pc": 722,
"hash": "0xdc831531bca9d83418b51de336f47203247a5de4928b4e94c21a55ae32211c23",
"id": "bb:612",
"start_pc": 612,
"type": "basic_block"
},
{
"end_pc": 729,
"hash": "0x40e9e0f1414ffcdc964f7fa98cb9afd59ea9baf96b43e951db085700c53db61a",
"id": "bb:723",
"start_pc": 723,
"type": "basic_block"
},
{
"end_pc": 761,
"hash": "0xd8db6f3a88bb4336edd80e83a865edd563df2dd3dea49c63005a28254a6fe40d",
"id": "bb:730",
"start_pc": 730,
"type": "basic_block"
},
{
"end_pc": 779,
"hash": "0xc4afc43646c0f7f50601b9e12cf413eb22f1193abe514cdef91bceae5bbe06c0",
"id": "bb:762",
"start_pc": 762,
"type": "basic_block"
},
{
"end_pc": 782,
"hash": "0x99291fa94e2dc3892d774abe71cabc1ecbd2f57e6f142e2abf839f3772148c88",
"id": "bb:780",
"start_pc": 780,
"type": "basic_block"
},
{
"end_pc": 814,
"hash": "0x315a7880d015f64e37daf92a822537976952e015c7733fe837769f9a9db5de52",
"id": "bb:783",
"start_pc": 783,
"type": "basic_block"
},
{
"end_pc": 823,
"hash": "0x483915403e5bddd805c7e1af718449d312358ce09f3f6aa71b5adf098aa3aea3",
"id": "bb:815",
"start_pc": 815,
"type": "basic_block"
},
{
"end_pc": 828,
"hash": "0x7adf740adbb92e5277ea8ce1e5992071d7032829b66dae1c08f059173ceaf212",
"id": "bb:824",
"start_pc": 824,
"type": "basic_block"
},
{
"end_pc": 834,
"hash": "0xd2d3b821f0ca448267c576cf3ea1bfa29cf5f0541cc3ce46d3d66be4fab77da1",
"id": "bb:829",
"start_pc": 829,
"type": "basic_block"
},
{
"end_pc": 838,
"hash": "0x07f75742e03dcc5d7855f4e3715e16cda057699926bb85bb7d57cfbd32c982ff",
"id": "bb:835",
"start_pc": 835,
"type": "basic_block"
},
{
"end_pc": 993,
"hash": "0xb48eefb6ab939244d686f48101a1893f66fea46618ba64bb8a73e171e154ce86",
"id": "bb:839",
"start_pc": 839,
"type": "basic_block"
},
{
"end_pc": 1033,
"hash": "0x05120473173f0b19e6282af2a3d7bcf0b67cda0fe6672f96fc5ae0907a1120e2",
"id": "bb:994",
"start_pc": 994,
"type": "basic_block"
},
{
"end_pc": 1046,
"hash": "0xc76a895b924eec3a9ca1a646c80215de2e3f3bc1b216a005c2ad5c3867f0dcf4",
"id": "bb:1034",
"start_pc": 1034,
"type": "basic_block"
},
{
"end_pc": 1121,
"hash": "0xbb6f878db3e9ed5a9c2dc4d4b11c21769a8bbcd529d886a42cb7aa480661623c",
"id": "bb:1047",
"start_pc": 1047,
"type": "basic_block"
},
{
"end_pc": 1162,
"hash": "0x8419b6306502941dba661a589505a29f7f5c1afba7ffc6c02ce9712f0a65a38b",
"id": "bb:1122",
"start_pc": 1122,
"type": "basic_block"
},
{
"end_pc": 1343,
"hash": "0xee5ebbe8f9a54f28fb36b5b79b1503c20e16aad4bc709bc2429cc7eb942d806a",
"id": "bb:1163",
"start_pc": 1163,
"type": "basic_block"
},
{
"end_pc": 1350,
"hash": "0x79f1da60bffd95fb809ab84bb198f1a05cf795809875322ef59c3817df57757e",
"id": "bb:1344",
"start_pc": 1344,
"type": "basic_block"
},
{
"end_pc": 1352,
"hash": "0xa787b2e8c6d4ad56e3e3297ef5c175f6c80a84dc798423d2b9008a11dd8c75a6",
"id": "bb:1351",
"start_pc": 1351,
"type": "basic_block"
},
{
"end_pc": 1435,
"hash": "0x88e8c3bd39376096f72700db4ff31c636e0bf760ba9003c80eb3e6a0118088b4",
"id": "bb:1353",
"start_pc": 1353,
"type": "basic_block"
},
{
"end_pc": 1460,
"hash": "0x581fc3f2af3213f2cd7f121f679e467ea31bd5e9c682e732cc1010797e746105",
"id": "bb:1436",
"start_pc": 1436,
"type": "basic_block"
},
{
"end_pc": 1476,
"hash": "0x585de6016104d1d2cb8fad2ef6e0c6e5aeecd5482cf940fe3a1775afd847635f",
"id": "bb:1461",
"start_pc": 1461,
"type": "basic_block"
},
{
"end_pc": 1574,
"hash": "0xe13a91775f6d9d9464d7dd1f7aeaa04691eaf0f23ad1a706f07edb0fd37b33d3",
"id": "bb:1477",
"start_pc": 1477,
"type": "basic_block"
},
{
"end_pc": 1599,
"hash": "0xe2795e4188089805133423e8901e886d1da47092f24aaae1647b46f679b4ab07",
"id": "bb:1575",
"start_pc": 1575,
"type": "basic_block"
},
{
"end_pc": 1616,
"hash": "0x53515ceacab3240c9978a69f1fed987e70375414a50226b45a7d74825baa00da",
"id": "bb:1600",
"start_pc": 1600,
"type": "basic_block"
},
{
"end_pc": 1643,
"hash": "0xe36b4d9b40996a5eab54825b16fc243e7a0383b7642058fff5f75456e9f86e2e",
"id": "bb:1617",
"start_pc": 1617,
"type": "basic_block"
},
{
"end_pc": 1685,
"hash": "0x2f38653aa67be850b43926c8758232287559e20fdaa758a93a3384f9acdb6e3e",
"id": "bb:1644",
"start_pc": 1644,
"type": "basic_block"
},
{
"end_pc": 1721,
"hash": "0x2db5ec198a9eb1820536a1b313ee6d7ad677ad3cd6dcf41a4c90a507e8a93e7c",
"id": "bb:1686",
"start_pc": 1686,
"type": "basic_block"
},
{
"end_pc": 1755,
"hash": "0xeff45e9b8974c20ea6ce8abe54286b60e2de0294e88863af3bdf7a5f5ab59b02",
"id": "bb:1722",
"start_pc": 1722,
"type": "basic_block"
},
{
"end_pc": 1779,
"hash": "0xe9ff2f740c394197e394239d243460bee08c3b7738c0adba29bf0f55247cba39",
"id": "bb:1756",
"start_pc": 1756,
"type": "basic_block"
},
{
"end_pc": 1805,
"hash": "0x08e865ef975cc8a59d92c65ad6f79333d6b3e0d5f9692b99a2bae8af1fea0e42",
"id": "bb:1780",
"start_pc": 1780,
"type": "basic_block"
},
{
"end_pc": 1814,
"hash": "0xe763fb3fc635ee56039a694641c334ca9863c92487c64583e4573c4415bfd4a5",
"id": "bb:1806",
"start_pc": 1806,
"type": "basic_block"
},
{
"end_pc": 1862,
"hash": "0xc42e19db30ae605eb1e6d1da365fe7a5815119c4176441d02dcd7dc279a8173f",
"id": "bb:1815",
"start_pc": 1815,
"type": "basic_block"
},
{
"end_pc": 1867,
"hash": "0xdec0d7c6d1a02e4b90be722e04a2b8982b75a754371713d4a9abffebd80ca21f",
"id": "bb:1863",
"start_pc": 1863,
"type": "basic_block"
},
{
"end_pc": 1872,
"hash": "0xd64796257f4c3007bd3699348a5b593734ef07d751d8229b686ca060977004e6",
"id": "bb:1868",
"start_pc": 1868,
"type": "basic_block"
},
{
"end_pc": 2037,
"hash": "0x74493c4e7f859fda3344f92411f2bdb2cd0684352fbf75cbe059e1318d6578ba",
"id": "bb:1873",
"start_pc": 1873,
"type": "basic_block"
},
{
"end_pc": 2057,
"hash": "0x465c7cffcafc703e8a2248272ad2252b2ab5c7cde9a48cb50ac3534ba7bafd35",
"id": "bb:2038",
"start_pc": 2038,
"type": "basic_block"
},
{
"end_pc": 2066,
"hash": "0xf09432e428b7a83ff5a91d9ff5d95d39b49500ecc2e4dccd50a7ee91cb7fde90",
"id": "bb:2058",
"start_pc": 2058,
"type": "basic_block"
},
{
"end_pc": 2077,
"hash": "0x2eabefd9b2d56e6d42d6a4cd3f55a7dd54d970f47651aada94a181974e9fe8bf",
"id": "bb:2067",
"start_pc": 2067,
"type": "basic_block"
},
{
"end_pc": 2081,
"hash": "0xe3f045460f68e37fb6cbae39c5286b7f69d3a47be816a4e75b9188971a47160e",
"id": "bb:2078",
"start_pc": 2078,
"type": "basic_block"
},
{
"end_pc": 2135,
"hash": "0x0c35184d9ede6aa536dc74e048d3b73bbc0f5118a0b4dbe87db3910014821d64",
"id": "bb:2082",
"start_pc": 2082,
"type": "basic_block"
},
{
"end_pc": 2136,
"hash": "0x3db89b10985d5d02f5a78fcf9728ad7e44f327b3000d93b6a414bd4425e25c28",
"id": "bb:2136",
"start_pc": 2136,
"type": "basic_block"
},
{
"end_pc": 2157,
"hash": "0xc3fee58e0faa56edd4d98b3348f9706c326e67739517741f4a8db85be7b68d5a",
"id": "bb:2138",
"start_pc": 2138,
"type": "basic_block"
},
{
"end_pc": 2206,
"hash": "0xa8bcf4855572bf8898ad0cee3ba571fbb6b9557af5581cf1d17a501e6350fe56",
"id": "bb:2158",
"start_pc": 2158,
"type": "basic_block"
},
{
"end_pc": 2240,
"hash": "0x857c2975f0fb91306d40307a6cee19a287bff6fe9a1703ffccf2ebbf87551574",
"id": "bb:2207",
"start_pc": 2207,
"type": "basic_block"
},
{
"end_pc": 2423,
"hash": "0x336d07af0ce5c516344a84969f46e4c10919a385569ef12dd8770173dcb55f43",
"id": "bb:2241",
"start_pc": 2241,
"type": "basic_block"
},
{
"end_pc": 2440,
"hash": "0x5c881c450cbf7d6e08ab1eb2c78bdec26609e99d2c4c97f2c0ef6e04b1dff8a8",
"id": "bb:2424",
"start_pc": 2424,
"type": "basic_block"
},
{
"end_pc": 2495,
"hash": "0xde33836ca48c7746d25c97c450639fde6811b98b93a0bc71622f0c8d276ec45f",
"id": "bb:2441",
"start_pc": 2441,
"type": "basic_block"
},
{
"end_pc": 2533,
"hash": "0x2c181846b785f9cbc52755c9bfc2ee067c4335f587a3170bad627a82064994c3",
"id": "bb:2496",
"start_pc": 2496,
"type": "basic_block"
},
{
"end_pc": 2559,
"hash": "0x33f03312ac3bdbcd2f99e55af26111bd7e773bbb1c192bcb44454e79b75fb16c",
"id": "bb:2534",
"start_pc": 2534,
"type": "basic_block"
},
{
"end_pc": 2583,
"hash": "0xf937bb02f7f6d9970d3c594eda869149fc7b98780f01df657c1fb72f5ad5f8b9",
"id": "bb:2560",
"start_pc": 2560,
"type": "basic_block"
},
{
"end_pc": 2605,
"hash": "0x98cc586d5f98bd2bb859889b7f4ce40c27ff265cafcabd6d06018d036d58f170",
"id": "bb:2584",
"start_pc": 2584,
"type": "basic_block"
},
{
"end_pc": 2610,
"hash": "0xcbf4d8873b61c779f171f37affff0ae3645b65a4d08e1d0e03edb2cee0c0c0f8",
"id": "bb:2606",
"start_pc": 2606,
"type": "basic_block"
},
{
"end_pc": 2636,
"hash": "0xd577e657c0fabb2833e502d71d44b5a2dd44495b46471453415c4b239054f46f",
"id": "bb:2611",
"start_pc": 2611,
"type": "basic_block"
},
{
"end_pc": 2672,
"hash": "0xdc4b259fdb2c8d259eb906ab2aa49a3fccca6b8020eb12cc55f6a6f942e9f408",
"id": "bb:2637",
"start_pc": 2637,
"type": "basic_block"
},
{
"end_pc": 2679,
"hash": "0x5fc84ab740f7ffbe2e8adf4cc476f6e68c7778f739581f0c52a289d2b49ebe1a",
"id": "bb:2673",
"start_pc": 2673,
"type": "basic_block"
},
{
"id": "call:157",
"opcode": "CALL",
"pc": 157,
"type": "callsite"
},
{
"id": "call:376",
"opcode": "CALL",
"pc": 376,
"type": "callsite"
},
{
"id": "call:1419",
"opcode": "CALL",
"pc": 1419,
"type": "callsite"
},
{
"id": "call:1558",
"opcode": "CALL",
"pc": 1558,
"type": "callsite"
},
{
"id": "call:1680",
"opcode": "CALL",
"pc": 1680,
"type": "callsite"
},
{
"id": "call:2275",
"opcode": "CALL",
"pc": 2275,
"type": "callsite"
},
{
"id": "call:2667",
"opcode": "CALL",
"pc": 2667,
"type": "callsite"
},
{
"id": "sink:call",
"type": "sink"
},
{
"entry_pc": null,
"id": "fn:0x30677b83",
"selector": "0x30677b83",
"type": "function"
},
{
"entry_pc": 2146370414,
"id": "fn:0x6a1db1bf",
"selector": "0x6a1db1bf",
"type": "function"
},
{
"entry_pc": 2321930356,
"id": "fn:0x7fef036e",
"selector": "0x7fef036e",
"type": "function"
},
{
"entry_pc": 2801392353,
"id": "fn:0x8a65d874",
"selector": "0x8a65d874",
"type": "function"
},
{
"entry_pc": 3470337648,
"id": "fn:0xa6f9dae1",
"selector": "0xa6f9dae1",
"type": "function"
},
{
"entry_pc": 3661377549,
"id": "fn:0xced92670",
"selector": "0xced92670",
"type": "function"
},
{
"entry_pc": 4135239047,
"id": "fn:0xda3c300d",
"selector": "0xda3c300d",
"type": "function"
},
{
"entry_pc": 1351,
"id": "fn:0xf67abd87",
"selector": "0xf67abd87",
"type": "function"
}
],
"version": "capability_graph_v1"
}
exec
/bin/bash -lc 'which evm || which cast || which hevm || which forge || which python3 || which node' in /tmp/codex-hyjd74og
succeeded in 0ms:
/home/noahkuhn/.foundry/bin/cast
exec
/bin/bash -lc "cast --help | sed -n '1,120p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
A Swiss Army knife for interacting with Ethereum applications from the command line
Usage: cast [OPTIONS] <COMMAND>
Commands:
4byte Get the function signatures for the given selector from
<https://openchain.xyz> [aliases: 4, 4b]
4byte-calldata Decode ABI-encoded calldata using <https://openchain.xyz> [aliases: 4c,
4bc]
4byte-event Get the event signature for a given topic 0 from <https://openchain.xyz>
[aliases: 4e, 4be, topic0-event, t0e]
abi-encode ABI encode the given function argument, excluding the selector [aliases:
ae]
abi-encode-event ABI encode an event and its arguments to generate topics and data [aliases:
aee]
access-list Create an access list for a transaction [aliases: ac, acl]
address-zero Prints the zero address [aliases: --address-zero, az]
admin Fetch the EIP-1967 admin account [aliases: adm]
age Get the timestamp of a block [aliases: a]
artifact Generate an artifact file, that can be used to deploy a contract locally
[aliases: ar]
b2e-payload Convert Beacon payload to execution payload [aliases: b2e]
balance Get the balance of an account in wei [aliases: b]
base-fee Get the basefee of a block [aliases: ba, fee, basefee]
bind Generate a rust binding from a given ABI [aliases: bi]
block Get information about a block [aliases: bl]
block-number Get the latest block number [aliases: bn]
call Perform a call on an account without publishing a transaction [aliases: c]
calldata ABI-encode a function with arguments [aliases: cd]
chain Get the symbolic name of the current chain
chain-id Get the Ethereum chain ID [aliases: ci, cid]
client Get the current client version [aliases: cl]
code Get the runtime bytecode of a contract [aliases: co]
codehash Get the codehash for an account
codesize Get the runtime bytecode size of a contract [aliases: cs]
completions Generate shell completions script [aliases: com]
compute-address Compute the contract address from a given nonce and deployer address
[aliases: ca]
concat-hex Concatenate hex strings [aliases: --concat-hex, ch]
constructor-args Display constructor arguments used for the contract initialization
[aliases: cra]
create2 Generate a deterministic contract address using CREATE2 [aliases: c2]
creation-code Download a contract creation code from Etherscan and RPC [aliases: cc]
da-estimate Estimates the data availability size of a given opstack block
decode-abi Decode ABI-encoded input or output data [aliases: abi-decode, --abi-decode,
ad]
decode-calldata Decode ABI-encoded input data [aliases: calldata-decode, --calldata-decode,
cdd]
decode-error Decode custom error data [aliases: error-decode, --error-decode, erd]
decode-event Decode event data [aliases: event-decode, --event-decode, ed]
decode-string Decode ABI-encoded string [aliases: string-decode, --string-decode, sd]
decode-transaction Decodes a raw signed EIP 2718 typed transaction [aliases: dt, decode-tx]
disassemble Disassembles a hex-encoded bytecode into a human-readable representation
[aliases: da]
erc20-token ERC20 token operations [aliases: erc20]
estimate Estimate the gas cost of a transaction [aliases: e]
find-block Get the block number closest to the provided timestamp [aliases: f]
format-bytes32-string Formats a string into bytes32 encoding [aliases: --format-bytes32-string]
format-units Format a number from smallest unit to decimal with arbitrary decimals
[aliases: --format-units, fun]
from-bin Convert binary data into hex data [aliases: --from-bin, from-binx, fb]
from-fixed-point Convert a fixed point number into an integer [aliases: --from-fix, ff]
from-rlp Decodes RLP hex-encoded data [aliases: --from-rlp]
from-utf8 Convert UTF8 text to hex [aliases: --from-ascii, --from-utf8, from-ascii,
fu, fa]
from-wei Convert wei into an ETH amount [aliases: --from-wei, fw]
gas-price Get the current gas price [aliases: g]
hash-message Hash a message according to EIP-191 [aliases: --hash-message, hm]
hash-zero Prints the zero hash [aliases: --hash-zero, hz]
help Print this message or the help of the given subcommand(s)
implementation Fetch the EIP-1967 implementation for a contract Can read from the
implementation slot or the beacon slot [aliases: impl]
index Compute the storage slot for an entry in a mapping [aliases: in]
index-erc7201 Compute storage slots as specified by `ERC-7201: Namespaced Storage Layout`
[aliases: index7201, in7201]
interface Generate a Solidity interface from a given ABI [aliases: i]
keccak Hash arbitrary data using Keccak-256 [aliases: k, keccak256]
logs Get logs by signature or topic [aliases: l]
lookup-address Perform an ENS reverse lookup [aliases: la]
max-int Prints the maximum value of the given integer type [aliases: --max-int,
maxi]
max-uint Prints the maximum value of the given integer type [aliases: --max-uint,
maxu]
min-int Prints the minimum value of the given integer type [aliases: --min-int,
mini]
mktx Build and sign a transaction [aliases: m]
namehash Calculate the ENS namehash of a name [aliases: na, nh]
nonce Get the nonce for an account [aliases: n]
pad Pads hex data to a specified length [aliases: pd]
parse-bytes32-address Parses a checksummed address from bytes32 encoding. [aliases:
--parse-bytes32-address]
parse-bytes32-string Parses a string from bytes32 encoding [aliases: --parse-bytes32-string]
parse-units Convert a number from decimal to smallest unit with arbitrary decimals
[aliases: --parse-units, pun]
pretty-calldata Pretty print calldata [aliases: pc]
proof Generate a storage proof for a given storage slot [aliases: pr]
publish Publish a raw transaction to the network [aliases: p]
receipt Get the transaction receipt for a transaction [aliases: re]
recover-authority Recovery an EIP-7702 authority from a Authorization JSON string [aliases:
decode-auth]
resolve-name Perform an ENS lookup [aliases: rn]
rpc Perform a raw JSON-RPC request [aliases: rp]
run Runs a published transaction in a local environment and prints the trace
[aliases: r]
selectors Extracts function selectors and arguments from bytecode [aliases: sel]
send Sign and publish a transaction [aliases: s]
shl Perform a left shifting operation
shr Perform a right shifting operation
sig Get the selector for a function [aliases: si]
sig-event Generate event signatures from event string [aliases: se]
source Get the source code of a contract from a block explorer [aliases: et, src]
storage Get the raw value of a contract's storage slot [aliases: st]
storage-root Get the storage root for an account [aliases: sr]
to-ascii Convert hex data to an ASCII string [aliases: --to-ascii, tas, 2as]
to-base Converts a number of one base to another [aliases: --to-base, --to-radix,
to-radix, tr, 2r]
to-bytes32 Right-pads hex data to 32 bytes [aliases: --to-bytes32, tb, 2b]
to-check-sum-address Convert an address to a checksummed format (EIP-55) [aliases:
--to-checksum-address, --to-checksum, to-checksum, ta, 2a]
to-dec Converts a number of one base to decimal [aliases: --to-dec, td, 2d]
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1,260p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x006c
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x30677b83
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x00a5
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x6a1db1bf
00000025: EQ
00000026: PUSH2 0x01b1
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x7fef036e
00000030: EQ
00000031: PUSH2 0x01e1
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x8a65d874
0000003b: EQ
0000003c: PUSH2 0x022d
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0xa6f9dae1
00000046: EQ
00000047: PUSH2 0x02da
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0xced92670
00000051: EQ
00000052: PUSH2 0x030f
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0xda3c300d
0000005c: EQ
0000005d: PUSH2 0x0347
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0xf67abd87
00000067: EQ
00000068: PUSH2 0x03e2
0000006b: JUMPI
0000006c: JUMPDEST
0000006d: PUSH2 0x0547
00000070: PUSH2 0x00a3
00000073: PUSH8 0x0de0b6b3a7640000
0000007c: CALLVALUE
0000007d: LT
0000007e: ISZERO
0000007f: PUSH2 0x0651
00000082: JUMPI
00000083: PUSH1 0x40
00000085: MLOAD
00000086: PUSH1 0x01
00000088: PUSH1 0xa0
0000008a: PUSH1 0x02
0000008c: EXP
0000008d: SUB
0000008e: CALLER
0000008f: AND
00000090: SWAP1
00000091: PUSH1 0x00
00000093: SWAP1
00000094: CALLVALUE
00000095: SWAP1
00000096: DUP3
00000097: DUP2
00000098: DUP2
00000099: DUP2
0000009a: DUP6
0000009b: DUP9
0000009c: DUP4
0000009d: CALL
0000009e: POP
0000009f: POP
000000a0: POP
000000a1: POP
000000a2: POP
000000a3: JUMPDEST
000000a4: JUMP
000000a5: JUMPDEST
000000a6: PUSH1 0x40
000000a8: DUP1
000000a9: MLOAD
000000aa: PUSH1 0x20
000000ac: DUP1
000000ad: DUP3
000000ae: ADD
000000af: DUP4
000000b0: MSTORE
000000b1: PUSH1 0x00
000000b3: SWAP1
000000b4: SWAP2
000000b5: MSTORE
000000b6: DUP2
000000b7: MLOAD
000000b8: PUSH1 0x03
000000ba: SLOAD
000000bb: PUSH1 0x80
000000bd: DUP3
000000be: ADD
000000bf: DUP5
000000c0: MSTORE
000000c1: PUSH1 0x43
000000c3: DUP3
000000c4: MSTORE
000000c5: PUSH32 0x5468652063757272656e74206d756c7469706c696572206170706c6965642074
000000e6: SWAP3
000000e7: DUP3
000000e8: ADD
000000e9: SWAP3
000000ea: SWAP1
000000eb: SWAP3
000000ec: MSTORE
000000ed: PUSH32 0x6f20616c6c206465706f736974732e204d696e20313130252c206d6178203135
0000010e: SWAP3
0000010f: DUP2
00000110: ADD
00000111: SWAP3
00000112: SWAP1
00000113: SWAP3
00000114: MSTORE
00000115: PUSH32 0x30252e0000000000000000000000000000000000000000000000000000000000
00000136: PUSH1 0x60
00000138: DUP4
00000139: ADD
0000013a: MSTORE
0000013b: SWAP1
0000013c: JUMPDEST
0000013d: PUSH1 0x40
0000013f: MLOAD
00000140: DUP1
00000141: DUP4
00000142: DUP2
00000143: MSTORE
00000144: PUSH1 0x20
00000146: ADD
00000147: DUP1
00000148: PUSH1 0x20
0000014a: ADD
0000014b: DUP3
0000014c: DUP2
0000014d: SUB
0000014e: DUP3
0000014f: MSTORE
00000150: DUP4
00000151: DUP2
00000152: DUP2
00000153: MLOAD
00000154: DUP2
00000155: MSTORE
00000156: PUSH1 0x20
00000158: ADD
00000159: SWAP2
0000015a: POP
0000015b: DUP1
0000015c: MLOAD
0000015d: SWAP1
0000015e: PUSH1 0x20
00000160: ADD
00000161: SWAP1
00000162: DUP1
00000163: DUP4
00000164: DUP4
00000165: DUP3
00000166: SWAP1
00000167: PUSH1 0x00
00000169: PUSH1 0x04
0000016b: PUSH1 0x20
0000016d: DUP5
0000016e: PUSH1 0x1f
00000170: ADD
00000171: DIV
00000172: PUSH1 0x0f
00000174: MUL
00000175: PUSH1 0x03
00000177: ADD
00000178: CALL
00000179: POP
0000017a: SWAP1
0000017b: POP
0000017c: SWAP1
0000017d: DUP2
0000017e: ADD
0000017f: SWAP1
00000180: PUSH1 0x1f
00000182: AND
00000183: DUP1
00000184: ISZERO
00000185: PUSH2 0x01a2
00000188: JUMPI
00000189: DUP1
0000018a: DUP3
0000018b: SUB
0000018c: DUP1
0000018d: MLOAD
0000018e: PUSH1 0x01
00000190: DUP4
00000191: PUSH1 0x20
00000193: SUB
00000194: PUSH2 0x0100
00000197: EXP
00000198: SUB
00000199: NOT
0000019a: AND
0000019b: DUP2
0000019c: MSTORE
0000019d: PUSH1 0x20
0000019f: ADD
000001a0: SWAP2
000001a1: POP
000001a2: JUMPDEST
000001a3: POP
000001a4: SWAP4
000001a5: POP
000001a6: POP
000001a7: POP
000001a8: POP
000001a9: PUSH1 0x40
000001ab: MLOAD
000001ac: DUP1
000001ad: SWAP2
000001ae: SUB
000001af: SWAP1
000001b0: RETURN
000001b1: JUMPDEST
000001b2: PUSH2 0x0547
000001b5: PUSH1 0x04
000001b7: CALLDATALOAD
000001b8: PUSH1 0x00
000001ba: SLOAD
000001bb: PUSH1 0x01
000001bd: PUSH1 0xa0
000001bf: PUSH1 0x02
000001c1: EXP
000001c2: SUB
000001c3: SWAP1
000001c4: DUP2
000001c5: AND
000001c6: CALLER
000001c7: SWAP2
000001c8: SWAP1
000001c9: SWAP2
000001ca: AND
000001cb: EQ
000001cc: ISZERO
000001cd: PUSH2 0x030c
000001d0: JUMPI
000001d1: PUSH1 0x02
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'260,560p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
000001d1: PUSH1 0x02
000001d3: SLOAD
000001d4: PUSH1 0x05
000001d6: SWAP1
000001d7: GT
000001d8: ISZERO
000001d9: PUSH2 0x074c
000001dc: JUMPI
000001dd: PUSH2 0x0002
000001e0: JUMP
000001e1: JUMPDEST
000001e2: PUSH1 0x40
000001e4: DUP1
000001e5: MLOAD
000001e6: PUSH1 0x20
000001e8: DUP1
000001e9: DUP3
000001ea: ADD
000001eb: DUP4
000001ec: MSTORE
000001ed: PUSH1 0x00
000001ef: SWAP1
000001f0: SWAP2
000001f1: MSTORE
000001f2: DUP2
000001f3: MLOAD
000001f4: PUSH1 0x05
000001f6: SLOAD
000001f7: DUP2
000001f8: DUP5
000001f9: ADD
000001fa: SWAP1
000001fb: SWAP4
000001fc: MSTORE
000001fd: PUSH1 0x17
000001ff: DUP2
00000200: MSTORE
00000201: PUSH32 0x546865206e756d626572206f66206465706f736974732e000000000000000000
00000222: SWAP2
00000223: DUP2
00000224: ADD
00000225: SWAP2
00000226: SWAP1
00000227: SWAP2
00000228: MSTORE
00000229: PUSH2 0x013c
0000022c: JUMP
0000022d: JUMPDEST
0000022e: PUSH2 0x0549
00000231: PUSH1 0x04
00000233: CALLDATALOAD
00000234: PUSH1 0x40
00000236: DUP1
00000237: MLOAD
00000238: PUSH1 0x20
0000023a: DUP1
0000023b: DUP3
0000023c: ADD
0000023d: DUP4
0000023e: MSTORE
0000023f: PUSH1 0x00
00000241: DUP1
00000242: DUP4
00000243: MSTORE
00000244: PUSH1 0x01
00000246: PUSH1 0xa0
00000248: PUSH1 0x02
0000024a: EXP
0000024b: SUB
0000024c: DUP6
0000024d: DUP2
0000024e: AND
0000024f: DUP3
00000250: MSTORE
00000251: PUSH1 0x04
00000253: SWAP1
00000254: SWAP3
00000255: MSTORE
00000256: SWAP3
00000257: DUP4
00000258: KECCAK256
00000259: SLOAD
0000025a: DUP4
0000025b: SWAP3
0000025c: SWAP2
0000025d: AND
0000025e: DUP3
0000025f: EQ
00000260: PUSH2 0x02d3
00000263: JUMPI
00000264: POP
00000265: POP
00000266: PUSH1 0x40
00000268: SWAP1
00000269: DUP2
0000026a: SWAP1
0000026b: KECCAK256
0000026c: PUSH1 0x02
0000026e: DUP2
0000026f: ADD
00000270: SLOAD
00000271: PUSH1 0x01
00000273: SWAP2
00000274: SWAP1
00000275: SWAP2
00000276: ADD
00000277: SLOAD
00000278: DUP3
00000279: MLOAD
0000027a: PUSH1 0x60
0000027c: DUP2
0000027d: ADD
0000027e: DUP5
0000027f: MSTORE
00000280: PUSH1 0x2e
00000282: DUP2
00000283: MSTORE
00000284: PUSH32 0x55736572732073746174733a20746f74616c206465706f736974732c20706179
000002a5: PUSH1 0x20
000002a7: DUP3
000002a8: ADD
000002a9: MSTORE
000002aa: PUSH32 0x6f7574732072656365697665642e000000000000000000000000000000000000
000002cb: SWAP4
000002cc: DUP2
000002cd: ADD
000002ce: SWAP4
000002cf: SWAP1
000002d0: SWAP4
000002d1: MSTORE
000002d2: SWAP2
000002d3: JUMPDEST
000002d4: SWAP2
000002d5: SWAP4
000002d6: SWAP1
000002d7: SWAP3
000002d8: POP
000002d9: JUMP
000002da: JUMPDEST
000002db: PUSH2 0x0547
000002de: PUSH1 0x04
000002e0: CALLDATALOAD
000002e1: PUSH1 0x00
000002e3: SLOAD
000002e4: PUSH1 0x01
000002e6: PUSH1 0xa0
000002e8: PUSH1 0x02
000002ea: EXP
000002eb: SUB
000002ec: SWAP1
000002ed: DUP2
000002ee: AND
000002ef: CALLER
000002f0: SWAP2
000002f1: SWAP1
000002f2: SWAP2
000002f3: AND
000002f4: EQ
000002f5: ISZERO
000002f6: PUSH2 0x030c
000002f9: JUMPI
000002fa: PUSH1 0x00
000002fc: DUP1
000002fd: SLOAD
000002fe: PUSH1 0x01
00000300: PUSH1 0xa0
00000302: PUSH1 0x02
00000304: EXP
00000305: SUB
00000306: NOT
00000307: AND
00000308: DUP3
00000309: OR
0000030a: SWAP1
0000030b: SSTORE
0000030c: JUMPDEST
0000030d: POP
0000030e: JUMP
0000030f: JUMPDEST
00000310: PUSH2 0x0547
00000313: PUSH1 0x04
00000315: CALLDATALOAD
00000316: PUSH1 0x00
00000318: SLOAD
00000319: PUSH1 0x01
0000031b: PUSH1 0xa0
0000031d: PUSH1 0x02
0000031f: EXP
00000320: SUB
00000321: SWAP1
00000322: DUP2
00000323: AND
00000324: CALLER
00000325: SWAP2
00000326: SWAP1
00000327: SWAP2
00000328: AND
00000329: EQ
0000032a: ISZERO
0000032b: PUSH2 0x030c
0000032e: JUMPI
0000032f: PUSH1 0x6e
00000331: DUP2
00000332: LT
00000333: DUP1
00000334: PUSH2 0x033d
00000337: JUMPI
00000338: POP
00000339: PUSH1 0x96
0000033b: DUP2
0000033c: GT
0000033d: JUMPDEST
0000033e: ISZERO
0000033f: PUSH2 0x0747
00000342: JUMPI
00000343: PUSH2 0x0002
00000346: JUMP
00000347: JUMPDEST
00000348: PUSH1 0x40
0000034a: DUP1
0000034b: MLOAD
0000034c: PUSH1 0x20
0000034e: DUP1
0000034f: DUP3
00000350: ADD
00000351: DUP4
00000352: MSTORE
00000353: PUSH1 0x00
00000355: SWAP1
00000356: SWAP2
00000357: MSTORE
00000358: DUP2
00000359: MLOAD
0000035a: PUSH1 0x02
0000035c: SLOAD
0000035d: PUSH1 0x80
0000035f: DUP3
00000360: ADD
00000361: DUP5
00000362: MSTORE
00000363: PUSH1 0x54
00000365: DUP3
00000366: MSTORE
00000367: PUSH32 0x546865206665652070657263656e74616765206170706c69656420746f20616c
00000388: SWAP3
00000389: DUP3
0000038a: ADD
0000038b: SWAP3
0000038c: SWAP1
0000038d: SWAP3
0000038e: MSTORE
0000038f: PUSH32 0x6c206465706f736974732e2049742063616e206368616e676520746f20737065
000003b0: SWAP3
000003b1: DUP2
000003b2: ADD
000003b3: SWAP3
000003b4: SWAP1
000003b5: SWAP3
000003b6: MSTORE
000003b7: PUSH32 0x6564207061796f75747320286d6178203525292e000000000000000000000000
000003d8: PUSH1 0x60
000003da: DUP4
000003db: ADD
000003dc: MSTORE
000003dd: SWAP1
000003de: PUSH2 0x013c
000003e1: JUMP
000003e2: JUMPDEST
000003e3: PUSH2 0x05c5
000003e6: PUSH1 0x04
000003e8: CALLDATALOAD
000003e9: PUSH1 0x40
000003eb: DUP1
000003ec: MLOAD
000003ed: PUSH1 0x20
000003ef: DUP2
000003f0: ADD
000003f1: SWAP1
000003f2: SWAP2
000003f3: MSTORE
000003f4: PUSH1 0x00
000003f6: DUP1
000003f7: DUP3
000003f8: MSTORE
000003f9: PUSH1 0x05
000003fb: SLOAD
000003fc: SWAP1
000003fd: SWAP2
000003fe: DUP3
000003ff: SWAP2
00000400: DUP3
00000401: SWAP2
00000402: SWAP1
00000403: DUP6
00000404: LT
00000405: ISZERO
00000406: PUSH2 0x0540
00000409: JUMPI
0000040a: PUSH1 0x05
0000040c: DUP1
0000040d: SLOAD
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'560,900p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
0000040d: SLOAD
0000040e: DUP7
0000040f: SWAP1
00000410: DUP2
00000411: LT
00000412: ISZERO
00000413: PUSH2 0x0002
00000416: JUMPI
00000417: POP
00000418: DUP1
00000419: SLOAD
0000041a: DUP2
0000041b: DUP5
0000041c: MSTORE
0000041d: PUSH1 0x04
0000041f: DUP8
00000420: MUL
00000421: PUSH32 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0
00000442: ADD
00000443: SLOAD
00000444: PUSH1 0x01
00000446: PUSH1 0xa0
00000448: PUSH1 0x02
0000044a: EXP
0000044b: SUB
0000044c: AND
0000044d: SWAP6
0000044e: POP
0000044f: PUSH7 0x038d7ea4c68000
00000457: SWAP2
00000458: SWAP1
00000459: DUP8
0000045a: SWAP1
0000045b: DUP2
0000045c: LT
0000045d: ISZERO
0000045e: PUSH2 0x0002
00000461: JUMPI
00000462: SWAP1
00000463: PUSH1 0x00
00000465: MSTORE
00000466: PUSH1 0x20
00000468: PUSH1 0x00
0000046a: KECCAK256
0000046b: SWAP1
0000046c: PUSH1 0x04
0000046e: MUL
0000046f: ADD
00000470: PUSH1 0x00
00000472: POP
00000473: PUSH1 0x02
00000475: ADD
00000476: SLOAD
00000477: PUSH1 0x05
00000479: DUP1
0000047a: SLOAD
0000047b: SWAP3
0000047c: SWAP1
0000047d: SWAP2
0000047e: DIV
0000047f: SWAP5
00000480: POP
00000481: SWAP1
00000482: DUP7
00000483: SWAP1
00000484: DUP2
00000485: LT
00000486: ISZERO
00000487: PUSH2 0x0002
0000048a: JUMPI
0000048b: POP
0000048c: POP
0000048d: PUSH1 0x40
0000048f: DUP1
00000490: MLOAD
00000491: PUSH1 0x04
00000493: DUP8
00000494: MUL
00000495: PUSH32 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3
000004b6: ADD
000004b7: SLOAD
000004b8: PUSH1 0x80
000004ba: DUP3
000004bb: ADD
000004bc: DUP4
000004bd: MSTORE
000004be: PUSH1 0x44
000004c0: DUP3
000004c1: MSTORE
000004c2: PUSH32 0x456e74727920696e666f3a207573657220616464726573732c20657870656374
000004e3: PUSH1 0x20
000004e5: DUP4
000004e6: ADD
000004e7: MSTORE
000004e8: PUSH32 0x6564207061796f757420696e2046696e6e6579732c207061796f757420737461
00000509: SWAP3
0000050a: DUP3
0000050b: ADD
0000050c: SWAP3
0000050d: SWAP1
0000050e: SWAP3
0000050f: MSTORE
00000510: PUSH32 0x7475732e00000000000000000000000000000000000000000000000000000000
00000531: PUSH1 0x60
00000533: DUP3
00000534: ADD
00000535: MSTORE
00000536: PUSH1 0xff
00000538: SWAP2
00000539: SWAP1
0000053a: SWAP2
0000053b: AND
0000053c: SWAP3
0000053d: POP
0000053e: SWAP1
0000053f: POP
00000540: JUMPDEST
00000541: SWAP2
00000542: SWAP4
00000543: POP
00000544: SWAP2
00000545: SWAP4
00000546: JUMP
00000547: JUMPDEST
00000548: STOP
00000549: JUMPDEST
0000054a: PUSH1 0x40
0000054c: MLOAD
0000054d: DUP1
0000054e: DUP5
0000054f: DUP2
00000550: MSTORE
00000551: PUSH1 0x20
00000553: ADD
00000554: DUP4
00000555: DUP2
00000556: MSTORE
00000557: PUSH1 0x20
00000559: ADD
0000055a: DUP1
0000055b: PUSH1 0x20
0000055d: ADD
0000055e: DUP3
0000055f: DUP2
00000560: SUB
00000561: DUP3
00000562: MSTORE
00000563: DUP4
00000564: DUP2
00000565: DUP2
00000566: MLOAD
00000567: DUP2
00000568: MSTORE
00000569: PUSH1 0x20
0000056b: ADD
0000056c: SWAP2
0000056d: POP
0000056e: DUP1
0000056f: MLOAD
00000570: SWAP1
00000571: PUSH1 0x20
00000573: ADD
00000574: SWAP1
00000575: DUP1
00000576: DUP4
00000577: DUP4
00000578: DUP3
00000579: SWAP1
0000057a: PUSH1 0x00
0000057c: PUSH1 0x04
0000057e: PUSH1 0x20
00000580: DUP5
00000581: PUSH1 0x1f
00000583: ADD
00000584: DIV
00000585: PUSH1 0x0f
00000587: MUL
00000588: PUSH1 0x03
0000058a: ADD
0000058b: CALL
0000058c: POP
0000058d: SWAP1
0000058e: POP
0000058f: SWAP1
00000590: DUP2
00000591: ADD
00000592: SWAP1
00000593: PUSH1 0x1f
00000595: AND
00000596: DUP1
00000597: ISZERO
00000598: PUSH2 0x05b5
0000059b: JUMPI
0000059c: DUP1
0000059d: DUP3
0000059e: SUB
0000059f: DUP1
000005a0: MLOAD
000005a1: PUSH1 0x01
000005a3: DUP4
000005a4: PUSH1 0x20
000005a6: SUB
000005a7: PUSH2 0x0100
000005aa: EXP
000005ab: SUB
000005ac: NOT
000005ad: AND
000005ae: DUP2
000005af: MSTORE
000005b0: PUSH1 0x20
000005b2: ADD
000005b3: SWAP2
000005b4: POP
000005b5: JUMPDEST
000005b6: POP
000005b7: SWAP5
000005b8: POP
000005b9: POP
000005ba: POP
000005bb: POP
000005bc: POP
000005bd: PUSH1 0x40
000005bf: MLOAD
000005c0: DUP1
000005c1: SWAP2
000005c2: SUB
000005c3: SWAP1
000005c4: RETURN
000005c5: JUMPDEST
000005c6: PUSH1 0x40
000005c8: MLOAD
000005c9: DUP1
000005ca: DUP6
000005cb: PUSH1 0x01
000005cd: PUSH1 0xa0
000005cf: PUSH1 0x02
000005d1: EXP
000005d2: SUB
000005d3: AND
000005d4: DUP2
000005d5: MSTORE
000005d6: PUSH1 0x20
000005d8: ADD
000005d9: DUP5
000005da: DUP2
000005db: MSTORE
000005dc: PUSH1 0x20
000005de: ADD
000005df: DUP4
000005e0: DUP2
000005e1: MSTORE
000005e2: PUSH1 0x20
000005e4: ADD
000005e5: DUP1
000005e6: PUSH1 0x20
000005e8: ADD
000005e9: DUP3
000005ea: DUP2
000005eb: SUB
000005ec: DUP3
000005ed: MSTORE
000005ee: DUP4
000005ef: DUP2
000005f0: DUP2
000005f1: MLOAD
000005f2: DUP2
000005f3: MSTORE
000005f4: PUSH1 0x20
000005f6: ADD
000005f7: SWAP2
000005f8: POP
000005f9: DUP1
000005fa: MLOAD
000005fb: SWAP1
000005fc: PUSH1 0x20
000005fe: ADD
000005ff: SWAP1
00000600: DUP1
00000601: DUP4
00000602: DUP4
00000603: DUP3
00000604: SWAP1
00000605: PUSH1 0x00
00000607: PUSH1 0x04
00000609: PUSH1 0x20
0000060b: DUP5
0000060c: PUSH1 0x1f
0000060e: ADD
0000060f: DIV
00000610: PUSH1 0x0f
00000612: MUL
00000613: PUSH1 0x03
00000615: ADD
00000616: CALL
00000617: POP
00000618: SWAP1
00000619: POP
0000061a: SWAP1
0000061b: DUP2
0000061c: ADD
0000061d: SWAP1
0000061e: PUSH1 0x1f
00000620: AND
00000621: DUP1
00000622: ISZERO
00000623: PUSH2 0x0640
00000626: JUMPI
00000627: DUP1
00000628: DUP3
00000629: SUB
0000062a: DUP1
0000062b: MLOAD
0000062c: PUSH1 0x01
0000062e: DUP4
0000062f: PUSH1 0x20
00000631: SUB
00000632: PUSH2 0x0100
00000635: EXP
00000636: SUB
00000637: NOT
00000638: AND
00000639: DUP2
0000063a: MSTORE
0000063b: PUSH1 0x20
0000063d: ADD
0000063e: SWAP2
0000063f: POP
00000640: JUMPDEST
00000641: POP
00000642: SWAP6
00000643: POP
00000644: POP
00000645: POP
00000646: POP
00000647: POP
00000648: POP
00000649: PUSH1 0x40
0000064b: MLOAD
0000064c: DUP1
0000064d: SWAP2
0000064e: SUB
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'900,1240p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
0000064e: SUB
0000064f: SWAP1
00000650: RETURN
00000651: JUMPDEST
00000652: PUSH2 0x00a3
00000655: PUSH8 0x0de0b6b3a7640000
0000065e: PUSH1 0x00
00000660: DUP1
00000661: DUP1
00000662: DUP1
00000663: CALLVALUE
00000664: DUP6
00000665: SWAP1
00000666: GT
00000667: ISZERO
00000668: PUSH2 0x0696
0000066b: JUMPI
0000066c: PUSH1 0x40
0000066e: MLOAD
0000066f: PUSH1 0x01
00000671: PUSH1 0xa0
00000673: PUSH1 0x02
00000675: EXP
00000676: SUB
00000677: CALLER
00000678: AND
00000679: SWAP1
0000067a: DUP3
0000067b: SWAP1
0000067c: PUSH8 0x0de0b6b3a763ffff
00000685: NOT
00000686: CALLVALUE
00000687: ADD
00000688: SWAP1
00000689: DUP3
0000068a: DUP2
0000068b: DUP2
0000068c: DUP2
0000068d: DUP6
0000068e: DUP9
0000068f: DUP4
00000690: CALL
00000691: POP
00000692: POP
00000693: POP
00000694: POP
00000695: POP
00000696: JUMPDEST
00000697: PUSH1 0x01
00000699: PUSH1 0xa0
0000069b: PUSH1 0x02
0000069d: EXP
0000069e: SUB
0000069f: CALLER
000006a0: DUP2
000006a1: AND
000006a2: PUSH1 0x00
000006a4: SWAP1
000006a5: DUP2
000006a6: MSTORE
000006a7: PUSH1 0x04
000006a9: PUSH1 0x20
000006ab: MSTORE
000006ac: PUSH1 0x40
000006ae: DUP2
000006af: KECCAK256
000006b0: SLOAD
000006b1: SWAP1
000006b2: SWAP2
000006b3: AND
000006b4: EQ
000006b5: ISZERO
000006b6: PUSH2 0x06dc
000006b9: JUMPI
000006ba: PUSH1 0x40
000006bc: PUSH1 0x00
000006be: SWAP1
000006bf: DUP2
000006c0: KECCAK256
000006c1: DUP1
000006c2: SLOAD
000006c3: PUSH1 0x01
000006c5: PUSH1 0xa0
000006c7: PUSH1 0x02
000006c9: EXP
000006ca: SUB
000006cb: NOT
000006cc: AND
000006cd: CALLER
000006ce: OR
000006cf: DUP2
000006d0: SSTORE
000006d1: PUSH1 0x01
000006d3: DUP2
000006d4: ADD
000006d5: DUP3
000006d6: SWAP1
000006d7: SSTORE
000006d8: PUSH1 0x02
000006da: ADD
000006db: SSTORE
000006dc: JUMPDEST
000006dd: PUSH1 0x05
000006df: DUP1
000006e0: SLOAD
000006e1: PUSH1 0x01
000006e3: DUP2
000006e4: ADD
000006e5: DUP1
000006e6: DUP4
000006e7: SSTORE
000006e8: DUP3
000006e9: DUP2
000006ea: DUP4
000006eb: DUP1
000006ec: ISZERO
000006ed: DUP3
000006ee: SWAP1
000006ef: GT
000006f0: PUSH2 0x0751
000006f3: JUMPI
000006f4: PUSH1 0x04
000006f6: MUL
000006f7: DUP2
000006f8: PUSH1 0x04
000006fa: MUL
000006fb: DUP4
000006fc: PUSH1 0x00
000006fe: MSTORE
000006ff: PUSH1 0x20
00000701: PUSH1 0x00
00000703: KECCAK256
00000704: SWAP2
00000705: DUP3
00000706: ADD
00000707: SWAP2
00000708: ADD
00000709: PUSH2 0x0751
0000070c: SWAP2
0000070d: SWAP1
0000070e: JUMPDEST
0000070f: DUP1
00000710: DUP3
00000711: GT
00000712: ISZERO
00000713: PUSH2 0x081e
00000716: JUMPI
00000717: DUP1
00000718: SLOAD
00000719: PUSH1 0x01
0000071b: PUSH1 0xa0
0000071d: PUSH1 0x02
0000071f: EXP
00000720: SUB
00000721: NOT
00000722: AND
00000723: DUP2
00000724: SSTORE
00000725: PUSH1 0x00
00000727: PUSH1 0x01
00000729: DUP3
0000072a: ADD
0000072b: DUP2
0000072c: DUP2
0000072d: SSTORE
0000072e: PUSH1 0x02
00000730: DUP4
00000731: ADD
00000732: SWAP2
00000733: SWAP1
00000734: SWAP2
00000735: SSTORE
00000736: PUSH1 0x03
00000738: SWAP1
00000739: SWAP2
0000073a: ADD
0000073b: DUP1
0000073c: SLOAD
0000073d: PUSH1 0xff
0000073f: NOT
00000740: AND
00000741: SWAP1
00000742: SSTORE
00000743: PUSH2 0x070e
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH1 0x03
0000074a: SSTORE
0000074b: JUMP
0000074c: JUMPDEST
0000074d: PUSH1 0x02
0000074f: SSTORE
00000750: JUMP
00000751: JUMPDEST
00000752: POP
00000753: POP
00000754: POP
00000755: SWAP2
00000756: SWAP1
00000757: SWAP1
00000758: PUSH1 0x00
0000075a: MSTORE
0000075b: PUSH1 0x20
0000075d: PUSH1 0x00
0000075f: KECCAK256
00000760: SWAP1
00000761: PUSH1 0x04
00000763: MUL
00000764: ADD
00000765: PUSH1 0x00
00000767: POP
00000768: PUSH1 0x40
0000076a: DUP1
0000076b: MLOAD
0000076c: PUSH1 0x80
0000076e: DUP2
0000076f: ADD
00000770: DUP3
00000771: MSTORE
00000772: CALLER
00000773: DUP1
00000774: DUP3
00000775: MSTORE
00000776: PUSH1 0x20
00000778: DUP1
00000779: DUP4
0000077a: ADD
0000077b: DUP12
0000077c: SWAP1
0000077d: MSTORE
0000077e: PUSH1 0x03
00000780: DUP1
00000781: SLOAD
00000782: PUSH1 0x64
00000784: SWAP1
00000785: DUP14
00000786: MUL
00000787: DIV
00000788: DUP5
00000789: DUP7
0000078a: ADD
0000078b: DUP2
0000078c: SWAP1
0000078d: MSTORE
0000078e: PUSH1 0x00
00000790: PUSH1 0x60
00000792: SWAP6
00000793: SWAP1
00000794: SWAP6
00000795: ADD
00000796: DUP6
00000797: SWAP1
00000798: MSTORE
00000799: DUP7
0000079a: SLOAD
0000079b: PUSH1 0x01
0000079d: PUSH1 0xa0
0000079f: PUSH1 0x02
000007a1: EXP
000007a2: SUB
000007a3: NOT
000007a4: AND
000007a5: DUP5
000007a6: OR
000007a7: DUP8
000007a8: SSTORE
000007a9: PUSH1 0x01
000007ab: DUP8
000007ac: DUP2
000007ad: ADD
000007ae: DUP15
000007af: SWAP1
000007b0: SSTORE
000007b1: PUSH1 0x02
000007b3: DUP9
000007b4: ADD
000007b5: SWAP2
000007b6: SWAP1
000007b7: SWAP2
000007b8: SSTORE
000007b9: SWAP6
000007ba: ADD
000007bb: DUP1
000007bc: SLOAD
000007bd: PUSH1 0xff
000007bf: NOT
000007c0: AND
000007c1: SWAP1
000007c2: SSTORE
000007c3: PUSH1 0x01
000007c5: PUSH1 0xa0
000007c7: PUSH1 0x02
000007c9: EXP
000007ca: SUB
000007cb: SWAP1
000007cc: SWAP2
000007cd: AND
000007ce: DUP3
000007cf: MSTORE
000007d0: PUSH1 0x04
000007d2: SWAP1
000007d3: MSTORE
000007d4: KECCAK256
000007d5: DUP2
000007d6: ADD
000007d7: DUP1
000007d8: SLOAD
000007d9: DUP3
000007da: ADD
000007db: SWAP1
000007dc: SSTORE
000007dd: PUSH1 0x06
000007df: DUP1
000007e0: SLOAD
000007e1: SWAP2
000007e2: DUP3
000007e3: ADD
000007e4: DUP1
000007e5: DUP3
000007e6: SSTORE
000007e7: SWAP1
000007e8: SWAP3
000007e9: POP
000007ea: DUP3
000007eb: DUP2
000007ec: DUP4
000007ed: DUP1
000007ee: ISZERO
000007ef: DUP3
000007f0: SWAP1
000007f1: GT
000007f2: PUSH2 0x0822
000007f5: JUMPI
000007f6: DUP2
000007f7: DUP4
000007f8: PUSH1 0x00
000007fa: MSTORE
000007fb: PUSH1 0x20
000007fd: PUSH1 0x00
000007ff: KECCAK256
00000800: SWAP2
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1240,1460p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
00000800: SWAP2
00000801: DUP3
00000802: ADD
00000803: SWAP2
00000804: ADD
00000805: PUSH2 0x0822
00000808: SWAP2
00000809: SWAP1
0000080a: JUMPDEST
0000080b: DUP1
0000080c: DUP3
0000080d: GT
0000080e: ISZERO
0000080f: PUSH2 0x081e
00000812: JUMPI
00000813: PUSH1 0x00
00000815: DUP2
00000816: SSTORE
00000817: PUSH1 0x01
00000819: ADD
0000081a: PUSH2 0x080a
0000081d: JUMP
0000081e: JUMPDEST
0000081f: POP
00000820: SWAP1
00000821: JUMP
00000822: JUMPDEST
00000823: POP
00000824: POP
00000825: POP
00000826: PUSH1 0x00
00000828: SWAP3
00000829: DUP4
0000082a: MSTORE
0000082b: POP
0000082c: PUSH1 0x05
0000082e: SLOAD
0000082f: PUSH1 0x20
00000831: SWAP1
00000832: SWAP3
00000833: KECCAK256
00000834: PUSH1 0x00
00000836: NOT
00000837: SWAP3
00000838: SWAP1
00000839: SWAP3
0000083a: ADD
0000083b: SWAP2
0000083c: ADD
0000083d: SSTORE
0000083e: PUSH1 0x01
00000840: DUP1
00000841: SLOAD
00000842: PUSH1 0x02
00000844: SLOAD
00000845: PUSH1 0x64
00000847: SWAP1
00000848: DUP2
00000849: SUB
0000084a: DUP9
0000084b: MUL
0000084c: DIV
0000084d: ADD
0000084e: DUP2
0000084f: SSTORE
00000850: PUSH1 0x06
00000852: SLOAD
00000853: GT
00000854: PUSH2 0x0a18
00000857: JUMPI
00000858: PUSH1 0x00
0000085a: JUMPDEST
0000085b: PUSH1 0x06
0000085d: DUP1
0000085e: SLOAD
0000085f: SWAP2
00000860: SWAP6
00000861: POP
00000862: PUSH1 0x05
00000864: SWAP2
00000865: DUP7
00000866: SWAP1
00000867: DUP2
00000868: LT
00000869: ISZERO
0000086a: PUSH2 0x0002
0000086d: JUMPI
0000086e: POP
0000086f: PUSH1 0x00
00000871: MSTORE
00000872: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
00000893: DUP6
00000894: ADD
00000895: SLOAD
00000896: DUP2
00000897: SLOAD
00000898: DUP2
00000899: LT
0000089a: ISZERO
0000089b: PUSH2 0x0002
0000089e: JUMPI
0000089f: SWAP1
000008a0: PUSH1 0x00
000008a2: MSTORE
000008a3: PUSH1 0x20
000008a5: PUSH1 0x00
000008a7: KECCAK256
000008a8: SWAP1
000008a9: PUSH1 0x04
000008ab: MUL
000008ac: ADD
000008ad: PUSH1 0x00
000008af: POP
000008b0: PUSH1 0x01
000008b2: SLOAD
000008b3: PUSH1 0x02
000008b5: DUP3
000008b6: ADD
000008b7: SLOAD
000008b8: SWAP2
000008b9: SWAP5
000008ba: POP
000008bb: GT
000008bc: ISZERO
000008bd: PUSH2 0x0a33
000008c0: JUMPI
000008c1: PUSH1 0x40
000008c3: MLOAD
000008c4: DUP4
000008c5: SLOAD
000008c6: PUSH1 0x02
000008c8: DUP6
000008c9: ADD
000008ca: SLOAD
000008cb: SWAP4
000008cc: POP
000008cd: PUSH1 0x01
000008cf: PUSH1 0xa0
000008d1: PUSH1 0x02
000008d3: EXP
000008d4: SUB
000008d5: AND
000008d6: SWAP1
000008d7: PUSH1 0x00
000008d9: SWAP1
000008da: DUP5
000008db: SWAP1
000008dc: DUP3
000008dd: DUP2
000008de: DUP2
000008df: DUP2
000008e0: DUP6
000008e1: DUP9
000008e2: DUP4
000008e3: CALL
000008e4: SWAP4
000008e5: POP
000008e6: POP
000008e7: POP
000008e8: POP
000008e9: POP
000008ea: PUSH1 0x01
000008ec: DUP4
000008ed: PUSH1 0x03
000008ef: ADD
000008f0: PUSH1 0x00
000008f2: PUSH2 0x0100
000008f5: EXP
000008f6: DUP2
000008f7: SLOAD
000008f8: DUP2
000008f9: PUSH1 0xff
000008fb: MUL
000008fc: NOT
000008fd: AND
000008fe: SWAP1
000008ff: DUP4
00000900: MUL
00000901: OR
00000902: SWAP1
00000903: SSTORE
00000904: POP
00000905: PUSH1 0x04
00000907: PUSH1 0x00
00000909: POP
0000090a: PUSH1 0x00
0000090c: DUP5
0000090d: PUSH1 0x00
0000090f: ADD
00000910: PUSH1 0x00
00000912: SWAP1
00000913: SLOAD
00000914: SWAP1
00000915: PUSH2 0x0100
00000918: EXP
00000919: SWAP1
0000091a: DIV
0000091b: PUSH1 0x01
0000091d: PUSH1 0xa0
0000091f: PUSH1 0x02
00000921: EXP
00000922: SUB
00000923: AND
00000924: PUSH1 0x01
00000926: PUSH1 0xa0
00000928: PUSH1 0x02
0000092a: EXP
0000092b: SUB
0000092c: AND
0000092d: DUP2
0000092e: MSTORE
0000092f: PUSH1 0x20
00000931: ADD
00000932: SWAP1
00000933: DUP2
00000934: MSTORE
00000935: PUSH1 0x20
00000937: ADD
00000938: PUSH1 0x00
0000093a: KECCAK256
0000093b: PUSH1 0x00
exec
/bin/bash -lc 'BYTECODE=$(jq -r '"'.artifact.runtime_bytecode.full' /tmp/codex-hyjd74og/BYTECODE_BUNDLE.json); cast disassemble \""'$BYTECODE" | sed -n '"'1460,1700p'" in /tmp/codex-hyjd74og
succeeded in 0ms:
0000093b: PUSH1 0x00
0000093d: POP
0000093e: PUSH1 0x02
00000940: ADD
00000941: PUSH1 0x00
00000943: DUP2
00000944: DUP2
00000945: POP
00000946: SLOAD
00000947: DUP1
00000948: SWAP3
00000949: SWAP2
0000094a: SWAP1
0000094b: PUSH1 0x01
0000094d: ADD
0000094e: SWAP2
0000094f: SWAP1
00000950: POP
00000951: SSTORE
00000952: POP
00000953: DUP2
00000954: PUSH1 0x01
00000956: PUSH1 0x00
00000958: DUP3
00000959: DUP3
0000095a: DUP3
0000095b: POP
0000095c: SLOAD
0000095d: SUB
0000095e: SWAP3
0000095f: POP
00000960: POP
00000961: DUP2
00000962: SWAP1
00000963: SSTORE
00000964: POP
00000965: PUSH1 0x01
00000967: PUSH1 0x06
00000969: PUSH1 0x00
0000096b: POP
0000096c: DUP1
0000096d: SLOAD
0000096e: SWAP1
0000096f: POP
00000970: SUB
00000971: DUP5
00000972: LT
00000973: ISZERO
00000974: PUSH2 0x09e6
00000977: JUMPI
00000978: PUSH1 0x06
0000097a: DUP1
0000097b: SLOAD
0000097c: PUSH1 0x00
0000097e: NOT
0000097f: DUP2
00000980: ADD
00000981: SWAP1
00000982: DUP2
00000983: LT
00000984: ISZERO
00000985: PUSH2 0x0002
00000988: JUMPI
00000989: POP
0000098a: DUP1
0000098b: SLOAD
0000098c: PUSH1 0x00
0000098e: DUP3
0000098f: SWAP1
00000990: MSTORE
00000991: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3e
000009b2: DUP2
000009b3: ADD
000009b4: SLOAD
000009b5: SWAP2
000009b6: SWAP1
000009b7: DUP7
000009b8: SWAP1
000009b9: DUP2
000009ba: LT
000009bb: ISZERO
000009bc: PUSH2 0x0002
000009bf: JUMPI
000009c0: POP
000009c1: POP
000009c2: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
000009e3: DUP6
000009e4: ADD
000009e5: SSTORE
000009e6: JUMPDEST
000009e7: PUSH1 0x06
000009e9: DUP1
000009ea: SLOAD
000009eb: PUSH1 0x00
000009ed: NOT
000009ee: DUP2
000009ef: ADD
000009f0: DUP1
000009f1: DUP4
000009f2: SSTORE
000009f3: SWAP1
000009f4: SWAP2
000009f5: SWAP1
000009f6: DUP3
000009f7: DUP1
000009f8: ISZERO
000009f9: DUP3
000009fa: SWAP1
000009fb: GT
000009fc: PUSH2 0x0a2e
000009ff: JUMPI
00000a00: DUP2
00000a01: DUP4
00000a02: PUSH1 0x00
00000a04: MSTORE
00000a05: PUSH1 0x20
00000a07: PUSH1 0x00
00000a09: KECCAK256
00000a0a: SWAP2
00000a0b: DUP3
00000a0c: ADD
00000a0d: SWAP2
00000a0e: ADD
00000a0f: PUSH2 0x0a2e
00000a12: SWAP2
00000a13: SWAP1
00000a14: PUSH2 0x080a
00000a17: JUMP
00000a18: JUMPDEST
00000a19: PUSH1 0x06
00000a1b: SLOAD
00000a1c: PUSH1 0x23
00000a1e: NOT
00000a1f: DUP2
00000a20: SWAP1
00000a21: DIV
00000a22: NUMBER
00000a23: PUSH1 0x00
00000a25: NOT
00000a26: ADD
00000a27: BLOCKHASH
00000a28: DIV
00000a29: MOD
00000a2a: PUSH2 0x085a
00000a2d: JUMP
00000a2e: JUMPDEST
00000a2f: POP
00000a30: POP
00000a31: POP
00000a32: POP
00000a33: JUMPDEST
00000a34: POP
00000a35: PUSH1 0x01
00000a37: SLOAD
00000a38: ADDRESS
00000a39: PUSH1 0x01
00000a3b: PUSH1 0xa0
00000a3d: PUSH1 0x02
00000a3f: EXP
00000a40: SUB
00000a41: AND
00000a42: BALANCE
00000a43: SUB
00000a44: PUSH1 0x00
00000a46: DUP2
00000a47: GT
00000a48: ISZERO
00000a49: PUSH2 0x0a71
00000a4c: JUMPI
00000a4d: PUSH1 0x00
00000a4f: DUP1
00000a50: SLOAD
00000a51: PUSH1 0x40
00000a53: MLOAD
00000a54: PUSH1 0x01
00000a56: PUSH1 0xa0
00000a58: PUSH1 0x02
00000a5a: EXP
00000a5b: SUB
00000a5c: SWAP2
00000a5d: SWAP1
00000a5e: SWAP2
00000a5f: AND
00000a60: SWAP2
00000a61: SWAP1
00000a62: DUP4
00000a63: SWAP1
00000a64: DUP3
00000a65: DUP2
00000a66: DUP2
00000a67: DUP2
00000a68: DUP6
00000a69: DUP9
00000a6a: DUP4
00000a6b: CALL
00000a6c: POP
00000a6d: POP
00000a6e: POP
00000a6f: POP
00000a70: POP
00000a71: JUMPDEST
00000a72: POP
00000a73: POP
00000a74: POP
00000a75: POP
00000a76: POP
00000a77: JUMP
codex
{"no_findings":false,"summary":"Read BYTECODE_BUNDLE.json. Bytecode-only analysis suggests this is a payable deposit queue / payout scheme with owner-controlled parameters, a payout loop in the fallback/deposit path, and several unchecked low-level ETH CALLs. The strongest issues are a reentrancy window around queued payouts and accounting that advances even if a payout transfer fails. Selector inference is uncertain; the vulnerable path is the payable fallback/deposit logic rather than a named ABI function.","findings":[{"severity":"high","category":"reentrancy","title":"Queued payout is sent before the entry is marked paid","exploit_scenario":"An attacker deposits enough to become the next payable recipient. When the contract pays that entry, the attacker's fallback receives more than 1 ETH, then immediately reenters the payable fallback/deposit path with 1 ETH before the original payout is marked complete. Because the queue item and global counters are only updated after the external CALL returns, the same entry can be selected and paid again recursively until available balance is drained.","recommendation":"Apply checks-effects-interactions on the payout path: mark the entry paid and update queue/accounting before any external transfer, or move to a pull-payment claim model. Add a reentrancy guard around the deposit/payout flow.","evidence":"In the deposit/fallback path, the contract computes and executes a value-bearing CALL to the queued recipient at pc:0x8e3. The first observed bookkeeping write for that payout happens only afterward in the SSTORE sequence beginning at pc:0x8f7/pc:0x903, followed by user/global accounting writes at pc:0x951, pc:0x963, and pc:0x9f2. No guard is visible in the artifact. The contract also constrains/advertises its payout multiplier to 110%-150% (bound check at pc:0x32f-0x33f and embedded strings), so a recipient callback has enough ETH to reenter the payable path at pc:0x651.","locations":["pc:0x651","pc:0x8e3","pc:0x903","pc:0x951","pc:0x963","pc:0x9f2"]},{"severity":"medium","category":"other","title":"Payout accounting advances even if the ETH transfer fails","exploit_scenario":"A queued recipient can be a contract that reverts on receiving ETH or otherwise causes the CALL to fail. The contract does not check the CALL result, but still marks the queue item as paid and updates totals as if the transfer succeeded. The recipient loses its payout while the ETH stays in the contract balance and later accounting no longer reflects the obligation correctly.","recommendation":"Check the success flag of value-transferring CALLs and revert or leave the claim outstanding on failure. Prefer a pull-based withdraw pattern so failed transfers do not corrupt payout/accounting state.","evidence":"The payout CALL at pc:0x8e3 is immediately discarded without a success check at pc:0x8e4-pc:0x8e9. Despite that, the code proceeds with state changes that appear to finalize the payout: the queue-entry status byte is updated in the write sequence ending at pc:0x903, user/global totals are mutated around pc:0x93e-pc:0x963, and queue counters are updated at pc:0x9e7-pc:0x9f2. Other ETH CALLs at pc:0x9d, pc:0x690, and pc:0xa6b are also unchecked, but the payout path is the materially dangerous one.","locations":["pc:0x8e3","pc:0x903","pc:0x93e","pc:0x963","pc:0x9e7","pc:0x9f2"]}]}
tokens used
83,612
{
"codex": {
"ran_at": "2026-04-05T05:24:39.398233+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 5362,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Read BYTECODE_BUNDLE.json. Bytecode-only analysis suggests this is a payable deposit queue / payout scheme with owner-controlled parameters, a payout loop in the fallback/deposit path, and several unchecked low-level ETH CALLs. The strongest issues are a reentrancy window around queued payouts and accounting that advances even if a payout transfer fails. Selector inference is uncertain; the vulnerable path is the payable fallback/deposit logic rather than a named ABI function.",
"raw_final": {
"summary": "Read BYTECODE_BUNDLE.json. Bytecode-only analysis suggests this is a payable deposit queue / payout scheme with owner-controlled parameters, a payout loop in the fallback/deposit path, and several unchecked low-level ETH CALLs. The strongest issues are a reentrancy window around queued payouts and accounting that advances even if a payout transfer fails. Selector inference is uncertain; the vulnerable path is the payable fallback/deposit logic rather than a named ABI function.",
"findings": [
{
"title": "Queued payout is sent before the entry is marked paid",
"category": "reentrancy",
"evidence": "In the deposit/fallback path, the contract computes and executes a value-bearing CALL to the queued recipient at pc:0x8e3. The first observed bookkeeping write for that payout happens only afterward in the SSTORE sequence beginning at pc:0x8f7/pc:0x903, followed by user/global accounting writes at pc:0x951, pc:0x963, and pc:0x9f2. No guard is visible in the artifact. The contract also constrains/advertises its payout multiplier to 110%-150% (bound check at pc:0x32f-0x33f and embedded strings), so a recipient callback has enough ETH to reenter the payable path at pc:0x651.",
"severity": "high",
"locations": [
"pc:0x651",
"pc:0x8e3",
"pc:0x903",
"pc:0x951",
"pc:0x963",
"pc:0x9f2"
],
"recommendation": "Apply checks-effects-interactions on the payout path: mark the entry paid and update queue/accounting before any external transfer, or move to a pull-payment claim model. Add a reentrancy guard around the deposit/payout flow.",
"exploit_scenario": "An attacker deposits enough to become the next payable recipient. When the contract pays that entry, the attacker's fallback receives more than 1 ETH, then immediately reenters the payable fallback/deposit path with 1 ETH before the original payout is marked complete. Because the queue item and global counters are only updated after the external CALL returns, the same entry can be selected and paid again recursively until available balance is drained."
},
{
"title": "Payout accounting advances even if the ETH transfer fails",
"category": "other",
"evidence": "The payout CALL at pc:0x8e3 is immediately discarded without a success check at pc:0x8e4-pc:0x8e9. Despite that, the code proceeds with state changes that appear to finalize the payout: the queue-entry status byte is updated in the write sequence ending at pc:0x903, user/global totals are mutated around pc:0x93e-pc:0x963, and queue counters are updated at pc:0x9e7-pc:0x9f2. Other ETH CALLs at pc:0x9d, pc:0x690, and pc:0xa6b are also unchecked, but the payout path is the materially dangerous one.",
"severity": "medium",
"locations": [
"pc:0x8e3",
"pc:0x903",
"pc:0x93e",
"pc:0x963",
"pc:0x9e7",
"pc:0x9f2"
],
"recommendation": "Check the success flag of value-transferring CALLs and revert or leave the claim outstanding on failure. Prefer a pull-based withdraw pattern so failed transfers do not corrupt payout/accounting state.",
"exploit_scenario": "A queued recipient can be a contract that reverts on receiving ETH or otherwise causes the CALL to fail. The contract does not check the CALL result, but still marks the queue item as paid and updates totals as if the transfer succeeded. The recipient loses its payout while the ETH stays in the contract balance and later accounting no longer reflects the obligation correctly."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x006c 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x30677b83 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x00a5 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x6a1db1bf 00000025: EQ 00000026: PUSH2 0x01b1 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x7fef036e 00000030: EQ 00000031: PUSH2 0x01e1 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x8a65d874 0000003b: EQ 0000003c: PUSH2 0x022d 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0xa6f9dae1 00000046: EQ 00000047: PUSH2 0x02da 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0xced92670 00000051: EQ 00000052: PUSH2 0x030f 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0xda3c300d 0000005c: EQ 0000005d: PUSH2 0x0347 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0xf67abd87 00000067: EQ 00000068: PUSH2 0x03e2 0000006b: JUMPI 0000006c: JUMPDEST 0000006d: PUSH2 0x0547 00000070: PUSH2 0x00a3 00000073: PUSH8 0x0de0b6b3a7640000 0000007c: CALLVALUE 0000007d: LT 0000007e: ISZERO 0000007f: PUSH2 0x0651 00000082: JUMPI 00000083: PUSH1 0x40 00000085: MLOAD 00000086: PUSH1 0x01 00000088: PUSH1 0xa0 0000008a: PUSH1 0x02 0000008c: EXP 0000008d: SUB 0000008e: CALLER 0000008f: AND 00000090: SWAP1 00000091: PUSH1 0x00 00000093: SWAP1 00000094: CALLVALUE 00000095: SWAP1 00000096: DUP3 00000097: DUP2 00000098: DUP2 00000099: DUP2 0000009a: DUP6 0000009b: DUP9 0000009c: DUP4 0000009d: CALL 0000009e: POP 0000009f: POP 000000a0: POP 000000a1: POP 000000a2: POP 000000a3: JUMPDEST 000000a4: JUMP 000000a5: JUMPDEST 000000a6: PUSH1 0x40 000000a8: DUP1 000000a9: MLOAD 000000aa: PUSH1 0x20 000000ac: DUP1 000000ad: DUP3 000000ae: ADD 000000af: DUP4 000000b0: MSTORE 000000b1: PUSH1 0x00 000000b3: SWAP1 000000b4: SWAP2 000000b5: MSTORE 000000b6: DUP2 000000b7: MLOAD 000000b8: PUSH1 0x03 000000ba: SLOAD 000000bb: PUSH1 0x80 000000bd: DUP3 000000be: ADD 000000bf: DUP5 000000c0: MSTORE 000000c1: PUSH1 0x43 000000c3: DUP3 000000c4: MSTORE 000000c5: PUSH32 0x5468652063757272656e74206d756c7469706c696572206170706c6965642074 000000e6: SWAP3 000000e7: DUP3 000000e8: ADD 000000e9: SWAP3 000000ea: SWAP1 000000eb: SWAP3 000000ec: MSTORE 000000ed: PUSH32 0x6f20616c6c206465706f736974732e204d696e20313130252c206d6178203135 0000010e: SWAP3 0000010f: DUP2 00000110: ADD 00000111: SWAP3 00000112: SWAP1 00000113: SWAP3 00000114: MSTORE 00000115: PUSH32 0x30252e0000000000000000000000000000000000000000000000000000000000 00000136: PUSH1 0x60 00000138: DUP4 00000139: ADD 0000013a: MSTORE 0000013b: SWAP1 0000013c: JUMPDEST 0000013d: PUSH1 0x40 0000013f: MLOAD 00000140: DUP1 00000141: DUP4 00000142: DUP2 00000143: MSTORE 00000144: PUSH1 0x20 00000146: ADD 00000147: DUP1 00000148: PUSH1 0x20 0000014a: ADD 0000014b: DUP3 0000014c: DUP2 0000014d: SUB 0000014e: DUP3 0000014f: MSTORE 00000150: DUP4 00000151: DUP2 00000152: DUP2 00000153: MLOAD 00000154: DUP2 00000155: MSTORE 00000156: PUSH1 0x20 00000158: ADD 00000159: SWAP2 0000015a: POP 0000015b: DUP1 0000015c: MLOAD 0000015d: SWAP1 0000015e: PUSH1 0x20 00000160: ADD 00000161: SWAP1 00000162: DUP1 00000163: DUP4 00000164: DUP4 00000165: DUP3 00000166: SWAP1 00000167: PUSH1 0x00 00000169: PUSH1 0x04 0000016b: PUSH1 0x20 0000016d: DUP5 0000016e: PUSH1 0x1f 00000170: ADD 00000171: DIV 00000172: PUSH1 0x0f 00000174: MUL 00000175: PUSH1 0x03 00000177: ADD 00000178: CALL 00000179: POP 0000017a: SWAP1 0000017b: POP 0000017c: SWAP1 0000017d: DUP2 0000017e: ADD 0000017f: SWAP1 00000180: PUSH1 0x1f 00000182: AND 00000183: DUP1 00000184: ISZERO 00000185: PUSH2 0x01a2 00000188: JUMPI 00000189: DUP1 0000018a: DUP3 0000018b: SUB 0000018c: DUP1 0000018d: MLOAD 0000018e: PUSH1 0x01 00000190: DUP4 00000191: PUSH1 0x20 00000193: SUB 00000194: PUSH2 0x0100 00000197: EXP 00000198: SUB 00000199: NOT 0000019a: AND 0000019b: DUP2 0000019c: MSTORE 0000019d: PUSH1 0x20 0000019f: ADD 000001a0: SWAP2 000001a1: POP 000001a2: JUMPDEST 000001a3: POP 000001a4: SWAP4 000001a5: POP 000001a6: POP 000001a7: POP 000001a8: POP 000001a9: PUSH1 0x40 000001ab: MLOAD 000001ac: DUP1 000001ad: SWAP2 000001ae: SUB 000001af: SWAP1 000001b0: RETURN 000001b1: JUMPDEST 000001b2: PUSH2 0x0547 000001b5: PUSH1 0x04 000001b7: CALLDATALOAD 000001b8: PUSH1 0x00 000001ba: SLOAD 000001bb: PUSH1 0x01 000001bd: PUSH1 0xa0 000001bf: PUSH1 0x02 000001c1: EXP 000001c2: SUB 000001c3: SWAP1 000001c4: DUP2 000001c5: AND 000001c6: CALLER 000001c7: SWAP2 000001c8: SWAP1 000001c9: SWAP2 000001ca: AND 000001cb: EQ 000001cc: ISZERO 000001cd: PUSH2 0x030c 000001d0: JUMPI 000001d1: PUSH1 0x02 000001d3: SLOAD 000001d4: PUSH1 0x05 000001d6: SWAP1 000001d7: GT 000001d8: ISZERO 000001d9: PUSH2 0x074c 000001dc: JUMPI 000001dd: PUSH2 0x0002 000001e0: JUMP 000001e1: JUMPDEST 000001e2: PUSH1 0x40 000001e4: DUP1 000001e5: MLOAD 000001e6: PUSH1 0x20 000001e8: DUP1 000001e9: DUP3 000001ea: ADD 000001eb: DUP4 000001ec: MSTORE 000001ed: PUSH1 0x00 000001ef: SWAP1 000001f0: SWAP2 000001f1: MSTORE 000001f2: DUP2 000001f3: MLOAD 000001f4: PUSH1 0x05 000001f6: SLOAD 000001f7: DUP2 000001f8: DUP5 000001f9: ADD 000001fa: SWAP1 000001fb: SWAP4 000001fc: MSTORE 000001fd: PUSH1 0x17 000001ff: DUP2 00000200: MSTORE 00000201: PUSH32 0x546865206e756d626572206f66206465706f736974732e000000000000000000 00000222: SWAP2 00000223: DUP2 00000224: ADD 00000225: SWAP2 00000226: SWAP1 00000227: SWAP2 00000228: MSTORE 00000229: PUSH2 0x013c 0000022c: JUMP 0000022d: JUMPDEST 0000022e: PUSH2 0x0549 00000231: PUSH1 0x04 00000233: CALLDATALOAD 00000234: PUSH1 0x40 00000236: DUP1 00000237: MLOAD 00000238: PUSH1 0x20 0000023a: DUP1 0000023b: DUP3 0000023c: ADD 0000023d: DUP4 0000023e: MSTORE 0000023f: PUSH1 0x00 00000241: DUP1 00000242: DUP4 00000243: MSTORE 00000244: PUSH1 0x01 00000246: PUSH1 0xa0 00000248: PUSH1 0x02 0000024a: EXP 0000024b: SUB 0000024c: DUP6 0000024d: DUP2 0000024e: AND 0000024f: DUP3 00000250: MSTORE 00000251: PUSH1 0x04 00000253: SWAP1 00000254: SWAP3 00000255: MSTORE 00000256: SWAP3 00000257: DUP4 00000258: KECCAK256 00000259: SLOAD 0000025a: DUP4 0000025b: SWAP3 0000025c: SWAP2 0000025d: AND 0000025e: DUP3 0000025f: EQ 00000260: PUSH2 0x02d3 00000263: JUMPI 00000264: POP 00000265: POP 00000266: PUSH1 0x40 00000268: SWAP1 00000269: DUP2 0000026a: SWAP1 0000026b: KECCAK256 0000026c: PUSH1 0x02 0000026e: DUP2 0000026f: ADD 00000270: SLOAD 00000271: PUSH1 0x01 00000273: SWAP2 00000274: SWAP1 00000275: SWAP2 00000276: ADD 00000277: SLOAD 00000278: DUP3 00000279: MLOAD 0000027a: PUSH1 0x60 0000027c: DUP2 0000027d: ADD 0000027e: DUP5 0000027f: MSTORE 00000280: PUSH1 0x2e 00000282: DUP2 00000283: MSTORE 00000284: PUSH32 0x55736572732073746174733a20746f74616c206465706f736974732c20706179 000002a5: PUSH1 0x20 000002a7: DUP3 000002a8: ADD 000002a9: MSTORE 000002aa: PUSH32 0x6f7574732072656365697665642e000000000000000000000000000000000000 000002cb: SWAP4 000002cc: DUP2 000002cd: ADD 000002ce: SWAP4 000002cf: SWAP1 000002d0: SWAP4 000002d1: MSTORE 000002d2: SWAP2 000002d3: JUMPDEST 000002d4: SWAP2 000002d5: SWAP4 000002d6: SWAP1 000002d7: SWAP3 000002d8: POP 000002d9: JUMP 000002da: JUMPDEST 000002db: PUSH2 0x0547 000002de: PUSH1 0x04 000002e0: CALLDATALOAD 000002e1: PUSH1 0x00 000002e3: SLOAD 000002e4: PUSH1 0x01 000002e6: PUSH1 0xa0 000002e8: PUSH1 0x02 000002ea: EXP 000002eb: SUB 000002ec: SWAP1 000002ed: DUP2 000002ee: AND 000002ef: CALLER 000002f0: SWAP2 000002f1: SWAP1 000002f2: SWAP2 000002f3: AND 000002f4: EQ 000002f5: ISZERO 000002f6: PUSH2 0x030c 000002f9: JUMPI 000002fa: PUSH1 0x00 000002fc: DUP1 000002fd: SLOAD 000002fe: PUSH1 0x01 00000300: PUSH1 0xa0 00000302: PUSH1 0x02 00000304: EXP 00000305: SUB 00000306: NOT 00000307: AND 00000308: DUP3 00000309: OR 0000030a: SWAP1 0000030b: SSTORE 0000030c: JUMPDEST 0000030d: POP 0000030e: JUMP 0000030f: JUMPDEST 00000310: PUSH2 0x0547 00000313: PUSH1 0x04 00000315: CALLDATALOAD 00000316: PUSH1 0x00 00000318: SLOAD 00000319: PUSH1 0x01 0000031b: PUSH1 0xa0 0000031d: PUSH1 0x02 0000031f: EXP 00000320: SUB 00000321: SWAP1 00000322: DUP2 00000323: AND 00000324: CALLER 00000325: SWAP2 00000326: SWAP1 00000327: SWAP2 00000328: AND 00000329: EQ 0000032a: ISZERO 0000032b: PUSH2 0x030c 0000032e: JUMPI 0000032f: PUSH1 0x6e 00000331: DUP2 00000332: LT 00000333: DUP1 00000334: PUSH2 0x033d 00000337: JUMPI 00000338: POP 00000339: PUSH1 0x96 0000033b: DUP2 0000033c: GT 0000033d: JUMPDEST 0000033e: ISZERO 0000033f: PUSH2 0x0747 00000342: JUMPI 00000343: PUSH2 0x0002 00000346: JUMP 00000347: JUMPDEST 00000348: PUSH1 0x40 0000034a: DUP1 0000034b: MLOAD 0000034c: PUSH1 0x20 0000034e: DUP1 0000034f: DUP3 00000350: ADD 00000351: DUP4 00000352: MSTORE 00000353: PUSH1 0x00 00000355: SWAP1 00000356: SWAP2 00000357: MSTORE 00000358: DUP2 00000359: MLOAD 0000035a: PUSH1 0x02 0000035c: SLOAD 0000035d: PUSH1 0x80 0000035f: DUP3 00000360: ADD 00000361: DUP5 00000362: MSTORE 00000363: PUSH1 0x54 00000365: DUP3 00000366: MSTORE 00000367: PUSH32 0x546865206665652070657263656e74616765206170706c69656420746f20616c 00000388: SWAP3 00000389: DUP3 0000038a: ADD 0000038b: SWAP3 0000038c: SWAP1 0000038d: SWAP3 0000038e: MSTORE 0000038f: PUSH32 0x6c206465706f736974732e2049742063616e206368616e676520746f20737065 000003b0: SWAP3 000003b1: DUP2 000003b2: ADD 000003b3: SWAP3 000003b4: SWAP1 000003b5: SWAP3 000003b6: MSTORE 000003b7: PUSH32 0x6564207061796f75747320286d6178203525292e000000000000000000000000 000003d8: PUSH1 0x60 000003da: DUP4 000003db: ADD 000003dc: MSTORE 000003dd: SWAP1 000003de: PUSH2 0x013c 000003e1: JUMP 000003e2: JUMPDEST 000003e3: PUSH2 0x05c5 000003e6: PUSH1 0x04 000003e8: CALLDATALOAD 000003e9: PUSH1 0x40 000003eb: DUP1 000003ec: MLOAD 000003ed: PUSH1 0x20 000003ef: DUP2 000003f0: ADD 000003f1: SWAP1 000003f2: SWAP2 000003f3: MSTORE 000003f4: PUSH1 0x00 000003f6: DUP1 000003f7: DUP3 000003f8: MSTORE 000003f9: PUSH1 0x05 000003fb: SLOAD 000003fc: SWAP1 000003fd: SWAP2 000003fe: DUP3 000003ff: SWAP2 00000400: DUP3 00000401: SWAP2 00000402: SWAP1 00000403: DUP6 00000404: LT 00000405: ISZERO 00000406: PUSH2 0x0540 00000409: JUMPI 0000040a: PUSH1 0x05 0000040c: DUP1 0000040d: SLOAD 0000040e: DUP7 0000040f: SWAP1 00000410: DUP2 00000411: LT 00000412: ISZERO 00000413: PUSH2 0x0002 00000416: JUMPI 00000417: POP 00000418: DUP1 00000419: SLOAD 0000041a: DUP2 0000041b: DUP5 0000041c: MSTORE 0000041d: PUSH1 0x04 0000041f: DUP8 00000420: MUL 00000421: PUSH32 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0 00000442: ADD 00000443: SLOAD 00000444: PUSH1 0x01 00000446: PUSH1 0xa0 00000448: PUSH1 0x02 0000044a: EXP 0000044b: SUB 0000044c: AND 0000044d: SWAP6 0000044e: POP 0000044f: PUSH7 0x038d7ea4c68000 00000457: SWAP2 00000458: SWAP1 00000459: DUP8 0000045a: SWAP1 0000045b: DUP2 0000045c: LT 0000045d: ISZERO 0000045e: PUSH2 0x0002 00000461: JUMPI 00000462: SWAP1 00000463: PUSH1 0x00 00000465: MSTORE 00000466: PUSH1 0x20 00000468: PUSH1 0x00 0000046a: KECCAK256 0000046b: SWAP1 0000046c: PUSH1 0x04 0000046e: MUL 0000046f: ADD 00000470: PUSH1 0x00 00000472: POP 00000473: PUSH1 0x02 00000475: ADD 00000476: SLOAD 00000477: PUSH1 0x05 00000479: DUP1 0000047a: SLOAD 0000047b: SWAP3 0000047c: SWAP1 0000047d: SWAP2 0000047e: DIV 0000047f: SWAP5 00000480: POP 00000481: SWAP1 00000482: DUP7 00000483: SWAP1 00000484: DUP2 00000485: LT 00000486: ISZERO 00000487: PUSH2 0x0002 0000048a: JUMPI 0000048b: POP 0000048c: POP 0000048d: PUSH1 0x40 0000048f: DUP1 00000490: MLOAD 00000491: PUSH1 0x04 00000493: DUP8 00000494: MUL 00000495: PUSH32 0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3 000004b6: ADD 000004b7: SLOAD 000004b8: PUSH1 0x80 000004ba: DUP3 000004bb: ADD 000004bc: DUP4 000004bd: MSTORE 000004be: PUSH1 0x44 000004c0: DUP3 000004c1: MSTORE 000004c2: PUSH32 0x456e74727920696e666f3a207573657220616464726573732c20657870656374 000004e3: PUSH1 0x20 000004e5: DUP4 000004e6: ADD 000004e7: MSTORE 000004e8: PUSH32 0x6564207061796f757420696e2046696e6e6579732c207061796f757420737461 00000509: SWAP3 0000050a: DUP3 0000050b: ADD 0000050c: SWAP3 0000050d: SWAP1 0000050e: SWAP3 0000050f: MSTORE 00000510: PUSH32 0x7475732e00000000000000000000000000000000000000000000000000000000 00000531: PUSH1 0x60 00000533: DUP3 00000534: ADD 00000535: MSTORE 00000536: PUSH1 0xff 00000538: SWAP2 00000539: SWAP1 0000053a: SWAP2 0000053b: AND 0000053c: SWAP3 0000053d: POP 0000053e: SWAP1 0000053f: POP 00000540: JUMPDEST 00000541: SWAP2 00000542: SWAP4 00000543: POP 00000544: SWAP2 00000545: SWAP4 00000546: JUMP 00000547: JUMPDEST 00000548: STOP 00000549: JUMPDEST 0000054a: PUSH1 0x40 0000054c: MLOAD 0000054d: DUP1 0000054e: DUP5 0000054f: DUP2 00000550: MSTORE 00000551: PUSH1 0x20 00000553: ADD 00000554: DUP4 00000555: DUP2 00000556: MSTORE 00000557: PUSH1 0x20 00000559: ADD 0000055a: DUP1 0000055b: PUSH1 0x20 0000055d: ADD 0000055e: DUP3 0000055f: DUP2 00000560: SUB 00000561: DUP3 00000562: MSTORE 00000563: DUP4 00000564: DUP2 00000565: DUP2 00000566: MLOAD 00000567: DUP2 00000568: MSTORE 00000569: PUSH1 0x20 0000056b: ADD 0000056c: SWAP2 0000056d: POP 0000056e: DUP1 0000056f: MLOAD 00000570: SWAP1 00000571: PUSH1 0x20 00000573: ADD 00000574: SWAP1 00000575: DUP1 00000576: DUP4 00000577: DUP4 00000578: DUP3 00000579: SWAP1 0000057a: PUSH1 0x00 0000057c: PUSH1 0x04 0000057e: PUSH1 0x20 00000580: DUP5 00000581: PUSH1 0x1f 00000583: ADD 00000584: DIV 00000585: PUSH1 0x0f 00000587: MUL 00000588: PUSH1 0x03 0000058a: ADD 0000058b: CALL 0000058c: POP 0000058d: SWAP1 0000058e: POP 0000058f: SWAP1 00000590: DUP2 00000591: ADD 00000592: SWAP1 00000593: PUSH1 0x1f 00000595: AND 00000596: DUP1 00000597: ISZERO 00000598: PUSH2 0x05b5 0000059b: JUMPI 0000059c: DUP1 0000059d: DUP3 0000059e: SUB 0000059f: DUP1 000005a0: MLOAD 000005a1: PUSH1 0x01 000005a3: DUP4 000005a4: PUSH1 0x20 000005a6: SUB 000005a7: PUSH2 0x0100 000005aa: EXP 000005ab: SUB 000005ac: NOT 000005ad: AND 000005ae: DUP2 000005af: MSTORE 000005b0: PUSH1 0x20 000005b2: ADD 000005b3: SWAP2 000005b4: POP 000005b5: JUMPDEST 000005b6: POP 000005b7: SWAP5 000005b8: POP 000005b9: POP 000005ba: POP 000005bb: POP 000005bc: POP 000005bd: PUSH1 0x40 000005bf: MLOAD 000005c0: DUP1 000005c1: SWAP2 000005c2: SUB 000005c3: SWAP1 000005c4: RETURN 000005c5: JUMPDEST 000005c6: PUSH1 0x40 000005c8: MLOAD 000005c9: DUP1 000005ca: DUP6 000005cb: PUSH1 0x01 000005cd: PUSH1 0xa0 000005cf: PUSH1 0x02 000005d1: EXP 000005d2: SUB 000005d3: AND 000005d4: DUP2 000005d5: MSTORE 000005d6: PUSH1 0x20 000005d8: ADD 000005d9: DUP5 000005da: DUP2 000005db: MSTORE 000005dc: PUSH1 0x20 000005de: ADD 000005df: DUP4 000005e0: DUP2 000005e1: MSTORE 000005e2: PUSH1 0x20 000005e4: ADD 000005e5: DUP1 000005e6: PUSH1 0x20 000005e8: ADD 000005e9: DUP3 000005ea: DUP2 000005eb: SUB 000005ec: DUP3 000005ed: MSTORE 000005ee: DUP4 000005ef: DUP2 000005f0: DUP2 000005f1: MLOAD 000005f2: DUP2 000005f3: MSTORE 000005f4: PUSH1 0x20 000005f6: ADD 000005f7: SWAP2 000005f8: POP 000005f9: DUP1 000005fa: MLOAD 000005fb: SWAP1 000005fc: PUSH1 0x20 000005fe: ADD 000005ff: SWAP1 00000600: DUP1 00000601: DUP4 00000602: DUP4 00000603: DUP3 00000604: SWAP1 00000605: PUSH1 0x00 00000607: PUSH1 0x04 00000609: PUSH1 0x20 0000060b: DUP5 0000060c: PUSH1 0x1f 0000060e: ADD 0000060f: DIV 00000610: PUSH1 0x0f 00000612: MUL 00000613: PUSH1 0x03 00000615: ADD 00000616: CALL 00000617: POP 00000618: SWAP1 00000619: POP 0000061a: SWAP1 0000061b: DUP2 0000061c: ADD 0000061d: SWAP1 0000061e: PUSH1 0x1f 00000620: AND 00000621: DUP1 00000622: ISZERO 00000623: PUSH2 0x0640 00000626: JUMPI 00000627: DUP1 00000628: DUP3 00000629: SUB 0000062a: DUP1 0000062b: MLOAD 0000062c: PUSH1 0x01 0000062e: DUP4 0000062f: PUSH1 0x20 00000631: SUB 00000632: PUSH2 0x0100 00000635: EXP 00000636: SUB 00000637: NOT 00000638: AND 00000639: DUP2 0000063a: MSTORE 0000063b: PUSH1 0x20 0000063d: ADD 0000063e: SWAP2 0000063f: POP 00000640: JUMPDEST 00000641: POP 00000642: SWAP6 00000643: POP 00000644: POP 00000645: POP 00000646: POP 00000647: POP 00000648: POP 00000649: PUSH1 0x40 0000064b: MLOAD 0000064c: DUP1 0000064d: SWAP2 0000064e: SUB 0000064f: SWAP1 00000650: RETURN 00000651: JUMPDEST 00000652: PUSH2 0x00a3 00000655: PUSH8 0x0de0b6b3a7640000 0000065e: PUSH1 0x00 00000660: DUP1 00000661: DUP1 00000662: DUP1 00000663: CALLVALUE 00000664: DUP6 00000665: SWAP1 00000666: GT 00000667: ISZERO 00000668: PUSH2 0x0696 0000066b: JUMPI 0000066c: PUSH1 0x40 0000066e: MLOAD 0000066f: PUSH1 0x01 00000671: PUSH1 0xa0 00000673: PUSH1 0x02 00000675: EXP 00000676: SUB 00000677: CALLER 00000678: AND 00000679: SWAP1 0000067a: DUP3 0000067b: SWAP1 0000067c: PUSH8 0x0de0b6b3a763ffff 00000685: NOT 00000686: CALLVALUE 00000687: ADD 00000688: SWAP1 00000689: DUP3 0000068a: DUP2 0000068b: DUP2 0000068c: DUP2 0000068d: DUP6 0000068e: DUP9 0000068f: DUP4 00000690: CALL 00000691: POP 00000692: POP 00000693: POP 00000694: POP 00000695: POP 00000696: JUMPDEST 00000697: PUSH1 0x01 00000699: PUSH1 0xa0 0000069b: PUSH1 0x02 0000069d: EXP 0000069e: SUB 0000069f: CALLER 000006a0: DUP2 000006a1: AND 000006a2: PUSH1 0x00 000006a4: SWAP1 000006a5: DUP2 000006a6: MSTORE 000006a7: PUSH1 0x04 000006a9: PUSH1 0x20 000006ab: MSTORE 000006ac: PUSH1 0x40 000006ae: DUP2 000006af: KECCAK256 000006b0: SLOAD 000006b1: SWAP1 000006b2: SWAP2 000006b3: AND 000006b4: EQ 000006b5: ISZERO 000006b6: PUSH2 0x06dc 000006b9: JUMPI 000006ba: PUSH1 0x40 000006bc: PUSH1 0x00 000006be: SWAP1 000006bf: DUP2 000006c0: KECCAK256 000006c1: DUP1 000006c2: SLOAD 000006c3: PUSH1 0x01 000006c5: PUSH1 0xa0 000006c7: PUSH1 0x02 000006c9: EXP 000006ca: SUB 000006cb: NOT 000006cc: AND 000006cd: CALLER 000006ce: OR 000006cf: DUP2 000006d0: SSTORE 000006d1: PUSH1 0x01 000006d3: DUP2 000006d4: ADD 000006d5: DUP3 000006d6: SWAP1 000006d7: SSTORE 000006d8: PUSH1 0x02 000006da: ADD 000006db: SSTORE 000006dc: JUMPDEST 000006dd: PUSH1 0x05 000006df: DUP1 000006e0: SLOAD 000006e1: PUSH1 0x01 000006e3: DUP2 000006e4: ADD 000006e5: DUP1 000006e6: DUP4 000006e7: SSTORE 000006e8: DUP3 000006e9: DUP2 000006ea: DUP4 000006eb: DUP1 000006ec: ISZERO 000006ed: DUP3 000006ee: SWAP1 000006ef: GT 000006f0: PUSH2 0x0751 000006f3: JUMPI 000006f4: PUSH1 0x04 000006f6: MUL 000006f7: DUP2 000006f8: PUSH1 0x04 000006fa: MUL 000006fb: DUP4 000006fc: PUSH1 0x00 000006fe: MSTORE 000006ff: PUSH1 0x20 00000701: PUSH1 0x00 00000703: KECCAK256 00000704: SWAP2 00000705: DUP3 00000706: ADD 00000707: SWAP2 00000708: ADD 00000709: PUSH2 0x0751 0000070c: SWAP2 0000070d: SWAP1 0000070e: JUMPDEST 0000070f: DUP1 00000710: DUP3 00000711: GT 00000712: ISZERO 00000713: PUSH2 0x081e 00000716: JUMPI 00000717: DUP1 00000718: SLOAD 00000719: PUSH1 0x01 0000071b: PUSH1 0xa0 0000071d: PUSH1 0x02 0000071f: EXP 00000720: SUB 00000721: NOT 00000722: AND 00000723: DUP2 00000724: SSTORE 00000725: PUSH1 0x00 00000727: PUSH1 0x01 00000729: DUP3 0000072a: ADD 0000072b: DUP2 0000072c: DUP2 0000072d: SSTORE 0000072e: PUSH1 0x02 00000730: DUP4 00000731: ADD 00000732: SWAP2 00000733: SWAP1 00000734: SWAP2 00000735: SSTORE 00000736: PUSH1 0x03 00000738: SWAP1 00000739: SWAP2 0000073a: ADD 0000073b: DUP1 0000073c: SLOAD 0000073d: PUSH1 0xff 0000073f: NOT 00000740: AND 00000741: SWAP1 00000742: SSTORE 00000743: PUSH2 0x070e 00000746: JUMP 00000747: JUMPDEST 00000748: PUSH1 0x03 0000074a: SSTORE 0000074b: JUMP 0000074c: JUMPDEST 0000074d: PUSH1 0x02 0000074f: SSTORE 00000750: JUMP 00000751: JUMPDEST 00000752: POP 00000753: POP 00000754: POP 00000755: SWAP2 00000756: SWAP1 00000757: SWAP1 00000758: PUSH1 0x00 0000075a: MSTORE 0000075b: PUSH1 0x20 0000075d: PUSH1 0x00 0000075f: KECCAK256 00000760: SWAP1 00000761: PUSH1 0x04 00000763: MUL 00000764: ADD 00000765: PUSH1 0x00 00000767: POP 00000768: PUSH1 0x40 0000076a: DUP1 0000076b: MLOAD 0000076c: PUSH1 0x80 0000076e: DUP2 0000076f: ADD 00000770: DUP3 00000771: MSTORE 00000772: CALLER 00000773: DUP1 00000774: DUP3 00000775: MSTORE 00000776: PUSH1 0x20 00000778: DUP1 00000779: DUP4 0000077a: ADD 0000077b: DUP12 0000077c: SWAP1 0000077d: MSTORE 0000077e: PUSH1 0x03 00000780: DUP1 00000781: SLOAD 00000782: PUSH1 0x64 00000784: SWAP1 00000785: DUP14 00000786: MUL 00000787: DIV 00000788: DUP5 00000789: DUP7 0000078a: ADD 0000078b: DUP2 0000078c: SWAP1 0000078d: MSTORE 0000078e: PUSH1 0x00 00000790: PUSH1 0x60 00000792: SWAP6 00000793: SWAP1 00000794: SWAP6 00000795: ADD 00000796: DUP6 00000797: SWAP1 00000798: MSTORE 00000799: DUP7 0000079a: SLOAD 0000079b: PUSH1 0x01 0000079d: PUSH1 0xa0 0000079f: PUSH1 0x02 000007a1: EXP 000007a2: SUB 000007a3: NOT 000007a4: AND 000007a5: DUP5 000007a6: OR 000007a7: DUP8 000007a8: SSTORE 000007a9: PUSH1 0x01 000007ab: DUP8 000007ac: DUP2 000007ad: ADD 000007ae: DUP15 000007af: SWAP1 000007b0: SSTORE 000007b1: PUSH1 0x02 000007b3: DUP9 000007b4: ADD 000007b5: SWAP2 000007b6: SWAP1 000007b7: SWAP2 000007b8: SSTORE 000007b9: SWAP6 000007ba: ADD 000007bb: DUP1 000007bc: SLOAD 000007bd: PUSH1 0xff 000007bf: NOT 000007c0: AND 000007c1: SWAP1 000007c2: SSTORE 000007c3: PUSH1 0x01 000007c5: PUSH1 0xa0 000007c7: PUSH1 0x02 000007c9: EXP 000007ca: SUB 000007cb: SWAP1 000007cc: SWAP2 000007cd: AND 000007ce: DUP3 000007cf: MSTORE 000007d0: PUSH1 0x04 000007d2: SWAP1 000007d3: MSTORE 000007d4: KECCAK256 000007d5: DUP2 000007d6: ADD 000007d7: DUP1 000007d8: SLOAD 000007d9: DUP3 000007da: ADD 000007db: SWAP1 000007dc: SSTORE 000007dd: PUSH1 0x06 000007df: DUP1 000007e0: SLOAD 000007e1: SWAP2 000007e2: DUP3 000007e3: ADD 000007e4: DUP1 000007e5: DUP3 000007e6: SSTORE 000007e7: SWAP1 000007e8: SWAP3 000007e9: POP 000007ea: DUP3 000007eb: DUP2 000007ec: DUP4 000007ed: DUP1 000007ee: ISZERO 000007ef: DUP3 000007f0: SWAP1 000007f1: GT 000007f2: PUSH2 0x0822 000007f5: JUMPI 000007f6: DUP2 000007f7: DUP4 000007f8: PUSH1 0x00 000007fa: MSTORE 000007fb: PUSH1 0x20 000007fd: PUSH1 0x00 000007ff: KECCAK256 00000800: SWAP2 00000801: DUP3 00000802: ADD 00000803: SWAP2 00000804: ADD 00000805: PUSH2 0x0822 00000808: SWAP2 00000809: SWAP1 0000080a: JUMPDEST 0000080b: DUP1 0000080c: DUP3 0000080d: GT 0000080e: ISZERO 0000080f: PUSH2 0x081e 00000812: JUMPI 00000813: PUSH1 0x00 00000815: DUP2 00000816: SSTORE 00000817: PUSH1 0x01 00000819: ADD 0000081a: PUSH2 0x080a 0000081d: JUMP 0000081e: JUMPDEST 0000081f: POP 00000820: SWAP1 00000821: JUMP 00000822: JUMPDEST 00000823: POP 00000824: POP 00000825: POP 00000826: PUSH1 0x00 00000828: SWAP3 00000829: DUP4 0000082a: MSTORE 0000082b: POP 0000082c: PUSH1 0x05 0000082e: SLOAD 0000082f: PUSH1 0x20 00000831: SWAP1 00000832: SWAP3 00000833: KECCAK256 00000834: PUSH1 0x00 00000836: NOT 00000837: SWAP3 00000838: SWAP1 00000839: SWAP3 0000083a: ADD 0000083b: SWAP2 0000083c: ADD 0000083d: SSTORE 0000083e: PUSH1 0x01 00000840: DUP1 00000841: SLOAD 00000842: PUSH1 0x02 00000844: SLOAD 00000845: PUSH1 0x64 00000847: SWAP1 00000848: DUP2 00000849: SUB 0000084a: DUP9 0000084b: MUL 0000084c: DIV 0000084d: ADD 0000084e: DUP2 0000084f: SSTORE 00000850: PUSH1 0x06 00000852: SLOAD 00000853: GT 00000854: PUSH2 0x0a18 00000857: JUMPI 00000858: PUSH1 0x00 0000085a: JUMPDEST 0000085b: PUSH1 0x06 0000085d: DUP1 0000085e: SLOAD 0000085f: SWAP2 00000860: SWAP6 00000861: POP 00000862: PUSH1 0x05 00000864: SWAP2 00000865: DUP7 00000866: SWAP1 00000867: DUP2 00000868: LT 00000869: ISZERO 0000086a: PUSH2 0x0002 0000086d: JUMPI 0000086e: POP 0000086f: PUSH1 0x00 00000871: MSTORE 00000872: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f 00000893: DUP6 00000894: ADD 00000895: SLOAD 00000896: DUP2 00000897: SLOAD 00000898: DUP2 00000899: LT 0000089a: ISZERO 0000089b: PUSH2 0x0002 0000089e: JUMPI 0000089f: SWAP1 000008a0: PUSH1 0x00 000008a2: MSTORE 000008a3: PUSH1 0x20 000008a5: PUSH1 0x00 000008a7: KECCAK256 000008a8: SWAP1 000008a9: PUSH1 0x04 000008ab: MUL 000008ac: ADD 000008ad: PUSH1 0x00 000008af: POP 000008b0: PUSH1 0x01 000008b2: SLOAD 000008b3: PUSH1 0x02 000008b5: DUP3 000008b6: ADD 000008b7: SLOAD 000008b8: SWAP2 000008b9: SWAP5 000008ba: POP 000008bb: GT 000008bc: ISZERO 000008bd: PUSH2 0x0a33 000008c0: JUMPI 000008c1: PUSH1 0x40 000008c3: MLOAD 000008c4: DUP4 000008c5: SLOAD 000008c6: PUSH1 0x02 000008c8: DUP6 000008c9: ADD 000008ca: SLOAD 000008cb: SWAP4 000008cc: POP 000008cd: PUSH1 0x01 000008cf: PUSH1 0xa0 000008d1: PUSH1 0x02 000008d3: EXP 000008d4: SUB 000008d5: AND 000008d6: SWAP1 000008d7: PUSH1 0x00 000008d9: SWAP1 000008da: DUP5 000008db: SWAP1 000008dc: DUP3 000008dd: DUP2 000008de: DUP2 000008df: DUP2 000008e0: DUP6 000008e1: DUP9 000008e2: DUP4 000008e3: CALL 000008e4: SWAP4 000008e5: POP 000008e6: POP 000008e7: POP 000008e8: POP 000008e9: POP 000008ea: PUSH1 0x01 000008ec: DUP4 000008ed: PUSH1 0x03 000008ef: ADD 000008f0: PUSH1 0x00 000008f2: PUSH2 0x0100 000008f5: EXP 000008f6: DUP2 000008f7: SLOAD 000008f8: DUP2 000008f9: PUSH1 0xff 000008fb: MUL 000008fc: NOT 000008fd: AND 000008fe: SWAP1 000008ff: DUP4 00000900: MUL 00000901: OR 00000902: SWAP1 00000903: SSTORE 00000904: POP 00000905: PUSH1 0x04 00000907: PUSH1 0x00 00000909: POP 0000090a: PUSH1 0x00 0000090c: DUP5 0000090d: PUSH1 0x00 0000090f: ADD 00000910: PUSH1 0x00 00000912: SWAP1 00000913: SLOAD 00000914: SWAP1 00000915: PUSH2 0x0100 00000918: EXP 00000919: SWAP1 0000091a: DIV 0000091b: PUSH1 0x01 0000091d: PUSH1 0xa0 0000091f: PUSH1 0x02 00000921: EXP 00000922: SUB 00000923: AND 00000924: PUSH1 0x01 00000926: PUSH1 0xa0 00000928: PUSH1 0x02 0000092a: EXP 0000092b: SUB 0000092c: AND 0000092d: DUP2 0000092e: MSTORE 0000092f: PUSH1 0x20 00000931: ADD 00000932: SWAP1 00000933: DUP2 00000934: MSTORE 00000935: PUSH1 0x20 00000937: ADD 00000938: PUSH1 0x00 0000093a: KECCAK256 0000093b: PUSH1 0x00 0000093d: POP 0000093e: PUSH1 0x02 00000940: ADD 00000941: PUSH1 0x00 00000943: DUP2 00000944: DUP2 00000945: POP 00000946: SLOAD 00000947: DUP1 00000948: SWAP3 00000949: SWAP2 0000094a: SWAP1 0000094b: PUSH1 0x01 0000094d: ADD 0000094e: SWAP2 0000094f: SWAP1 00000950: POP 00000951: SSTORE 00000952: POP 00000953: DUP2 00000954: PUSH1 0x01 00000956: PUSH1 0x00 00000958: DUP3 00000959: DUP3 0000095a: DUP3 0000095b: POP 0000095c: SLOAD 0000095d: SUB 0000095e: SWAP3 0000095f: POP 00000960: POP 00000961: DUP2 00000962: SWAP1 00000963: SSTORE 00000964: POP 00000965: PUSH1 0x01 00000967: PUSH1 0x06 00000969: PUSH1 0x00 0000096b: POP 0000096c: DUP1 0000096d: SLOAD 0000096e: SWAP1 0000096f: POP 00000970: SUB 00000971: DUP5 00000972: LT 00000973: ISZERO 00000974: PUSH2 0x09e6 00000977: JUMPI 00000978: PUSH1 0x06 0000097a: DUP1 0000097b: SLOAD 0000097c: PUSH1 0x00 0000097e: NOT 0000097f: DUP2 00000980: ADD 00000981: SWAP1 00000982: DUP2 00000983: LT 00000984: ISZERO 00000985: PUSH2 0x0002 00000988: JUMPI 00000989: POP 0000098a: DUP1 0000098b: SLOAD 0000098c: PUSH1 0x00 0000098e: DUP3 0000098f: SWAP1 00000990: MSTORE 00000991: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3e 000009b2: DUP2 000009b3: ADD 000009b4: SLOAD 000009b5: SWAP2 000009b6: SWAP1 000009b7: DUP7 000009b8: SWAP1 000009b9: DUP2 000009ba: LT 000009bb: ISZERO 000009bc: PUSH2 0x0002 000009bf: JUMPI 000009c0: POP 000009c1: POP 000009c2: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f 000009e3: DUP6 000009e4: ADD 000009e5: SSTORE 000009e6: JUMPDEST 000009e7: PUSH1 0x06 000009e9: DUP1 000009ea: SLOAD 000009eb: PUSH1 0x00 000009ed: NOT 000009ee: DUP2 000009ef: ADD 000009f0: DUP1 000009f1: DUP4 000009f2: SSTORE 000009f3: SWAP1 000009f4: SWAP2 000009f5: SWAP1 000009f6: DUP3 000009f7: DUP1 000009f8: ISZERO 000009f9: DUP3 000009fa: SWAP1 000009fb: GT 000009fc: PUSH2 0x0a2e 000009ff: JUMPI 00000a00: DUP2 00000a01: DUP4 00000a02: PUSH1 0x00 00000a04: MSTORE 00000a05: PUSH1 0x20 00000a07: PUSH1 0x00 00000a09: KECCAK256 00000a0a: SWAP2 00000a0b: DUP3 00000a0c: ADD 00000a0d: SWAP2 00000a0e: ADD 00000a0f: PUSH2 0x0a2e 00000a12: SWAP2 00000a13: SWAP1 00000a14: PUSH2 0x080a 00000a17: JUMP 00000a18: JUMPDEST 00000a19: PUSH1 0x06 00000a1b: SLOAD 00000a1c: PUSH1 0x23 00000a1e: NOT 00000a1f: DUP2 00000a20: SWAP1 00000a21: DIV 00000a22: NUMBER 00000a23: PUSH1 0x00 00000a25: NOT 00000a26: ADD 00000a27: BLOCKHASH 00000a28: DIV 00000a29: MOD 00000a2a: PUSH2 0x085a 00000a2d: JUMP 00000a2e: JUMPDEST 00000a2f: POP 00000a30: POP 00000a31: POP 00000a32: POP 00000a33: JUMPDEST 00000a34: POP 00000a35: PUSH1 0x01 00000a37: SLOAD 00000a38: ADDRESS 00000a39: PUSH1 0x01 00000a3b: PUSH1 0xa0 00000a3d: PUSH1 0x02 00000a3f: EXP 00000a40: SUB 00000a41: AND 00000a42: BALANCE 00000a43: SUB 00000a44: PUSH1 0x00 00000a46: DUP2 00000a47: GT 00000a48: ISZERO 00000a49: PUSH2 0x0a71 00000a4c: JUMPI 00000a4d: PUSH1 0x00 00000a4f: DUP1 00000a50: SLOAD 00000a51: PUSH1 0x40 00000a53: MLOAD 00000a54: PUSH1 0x01 00000a56: PUSH1 0xa0 00000a58: PUSH1 0x02 00000a5a: EXP 00000a5b: SUB 00000a5c: SWAP2 00000a5d: SWAP1 00000a5e: SWAP2 00000a5f: AND 00000a60: SWAP2 00000a61: SWAP1 00000a62: DUP4 00000a63: SWAP1 00000a64: DUP3 00000a65: DUP2 00000a66: DUP2 00000a67: DUP2 00000a68: DUP6 00000a69: DUP9 00000a6a: DUP4 00000a6b: CALL 00000a6c: POP 00000a6d: POP 00000a6e: POP 00000a6f: POP 00000a70: POP 00000a71: JUMPDEST 00000a72: POP 00000a73: POP 00000a74: POP 00000a75: POP 00000a76: POP 00000a77: JUMP
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765
call_targets:
0x0000000000000000000000000000000000000004, 0xf767fca8e65d03fe16d4e38810f5e5376c3372a8
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xf767fca8e65d03fe16d4e38810f5e5376c3372a8"
],
"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": "0x30677b83",
"selector": "0x30677b83",
"calldata_variants": [
"0x30677b83",
"0x30677b830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a1db1bf",
"selector": "0x6a1db1bf",
"calldata_variants": [
"0x6a1db1bf",
"0x6a1db1bf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7fef036e",
"selector": "0x7fef036e",
"calldata_variants": [
"0x7fef036e",
"0x7fef036e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8a65d874",
"selector": "0x8a65d874",
"calldata_variants": [
"0x8a65d874",
"0x8a65d8740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xced92670",
"selector": "0xced92670",
"calldata_variants": [
"0xced92670",
"0xced926700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda3c300d",
"selector": "0xda3c300d",
"calldata_variants": [
"0xda3c300d",
"0xda3c300d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf67abd87",
"selector": "0xf67abd87",
"calldata_variants": [
"0xf67abd87",
"0xf67abd870000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 157,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 376,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1419,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 7,
"guards_detected": [],
"untrusted_call_count": 7
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765
call_targets:
0x0000000000000000000000000000000000000004, 0xf767fca8e65d03fe16d4e38810f5e5376c3372a8
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x24044db785316ef7c84209a92c2df7f755142df0b5d6adc64c8c6cf7cf069765",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0xf767fca8e65d03fe16d4e38810f5e5376c3372a8"
],
"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": "0x30677b83",
"selector": "0x30677b83",
"calldata_variants": [
"0x30677b83",
"0x30677b830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a1db1bf",
"selector": "0x6a1db1bf",
"calldata_variants": [
"0x6a1db1bf",
"0x6a1db1bf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7fef036e",
"selector": "0x7fef036e",
"calldata_variants": [
"0x7fef036e",
"0x7fef036e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8a65d874",
"selector": "0x8a65d874",
"calldata_variants": [
"0x8a65d874",
"0x8a65d8740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa6f9dae1",
"selector": "0xa6f9dae1",
"calldata_variants": [
"0xa6f9dae1",
"0xa6f9dae10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xced92670",
"selector": "0xced92670",
"calldata_variants": [
"0xced92670",
"0xced926700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda3c300d",
"selector": "0xda3c300d",
"calldata_variants": [
"0xda3c300d",
"0xda3c300d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf67abd87",
"selector": "0xf67abd87",
"calldata_variants": [
"0xf67abd87",
"0xf67abd870000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 157,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 376,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1419,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 7,
"guards_detected": []
}
|
| high | reentrancy | codex | Queued payout is sent before the entry is marked paid | 85 | no | — |
viewevidence_json{
"evidence": "In the deposit/fallback path, the contract computes and executes a value-bearing CALL to the queued recipient at pc:0x8e3. The first observed bookkeeping write for that payout happens only afterward in the SSTORE sequence beginning at pc:0x8f7/pc:0x903, followed by user/global accounting writes at pc:0x951, pc:0x963, and pc:0x9f2. No guard is visible in the artifact. The contract also constrains/advertises its payout multiplier to 110%-150% (bound check at pc:0x32f-0x33f and embedded strings), so a recipient callback has enough ETH to reenter the payable path at pc:0x651.",
"locations": [
"pc:0x651",
"pc:0x8e3",
"pc:0x903",
"pc:0x951",
"pc:0x963",
"pc:0x9f2"
],
"recommendation": "Apply checks-effects-interactions on the payout path: mark the entry paid and update queue/accounting before any external transfer, or move to a pull-payment claim model. Add a reentrancy guard around the deposit/payout flow.",
"exploit_scenario": "An attacker deposits enough to become the next payable recipient. When the contract pays that entry, the attacker's fallback receives more than 1 ETH, then immediately reenters the payable fallback/deposit path with 1 ETH before the original payout is marked complete. Because the queue item and global counters are only updated after the external CALL returns, the same entry can be selected and paid again recursively until available balance is drained."
}
|
| medium | other | codex | Payout accounting advances even if the ETH transfer fails | 75 | no | — |
viewevidence_json{
"evidence": "The payout CALL at pc:0x8e3 is immediately discarded without a success check at pc:0x8e4-pc:0x8e9. Despite that, the code proceeds with state changes that appear to finalize the payout: the queue-entry status byte is updated in the write sequence ending at pc:0x903, user/global totals are mutated around pc:0x93e-pc:0x963, and queue counters are updated at pc:0x9e7-pc:0x9f2. Other ETH CALLs at pc:0x9d, pc:0x690, and pc:0xa6b are also unchecked, but the payout path is the materially dangerous one.",
"locations": [
"pc:0x8e3",
"pc:0x903",
"pc:0x93e",
"pc:0x963",
"pc:0x9e7",
"pc:0x9f2"
],
"recommendation": "Check the success flag of value-transferring CALLs and revert or leave the claim outstanding on failure. Prefer a pull-based withdraw pattern so failed transfers do not corrupt payout/accounting state.",
"exploit_scenario": "A queued recipient can be a contract that reverts on receiving ETH or otherwise causes the CALL to fail. The contract does not check the CALL result, but still marks the queue item as paid and updates totals as if the transfer succeeded. The recipient loses its payout while the ETH stays in the contract balance and later accounting no longer reflects the obligation correctly."
}
|