019b3831-b4e0-71c5-8142-0d761b2b7ab8
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 |
|---|---|---|---|---|
| 57 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 58 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 43027 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 43028 | capability.graph | complete | 1 / 3 | 1 week ago |
| 43029 | detector.run | complete | 1 / 3 | 1 week ago |
| 43030 | validation.fork | complete | 1 / 3 | 1 week ago |
| 44684 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).","findings":[{"severity":"high","category":"math","title":"Cooldown/lock check uses reversed subtraction, collapsing the wait period","exploit_scenario":"Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended.","recommendation":"Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.","evidence":"At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.","locations":["pc:0x621","pc:0x622","pc:0x625","pc:0x626","pc:0x7fb","pc:0x80c","pc:0x80f","pc:0x973","pc:0x9a4","pc:0x9a7","selector:0x3ccfd60b","selector:0x959499b6","selector:0x8351a0d4"]},{"severity":"medium","category":"other","title":"Fallback/unknown-selector path silently accepts ETH without crediting sender","exploit_scenario":"A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective.","recommendation":"Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.","evidence":"`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).","locations":["pc:0x5","pc:0x7","pc:0xff","pc:0x103","pc:0x104","pc:0x5a4","selector:0xd0e30db0","selector:0x0de9cacd"]},{"severity":"low","category":"other","title":"ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients","exploit_scenario":"The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users.","recommendation":"Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.","evidence":"Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.","locations":["pc:0x8cb","pc:0xa01","selector:0x3ccfd60b","selector:0x959499b6"]}]}
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-h9rar2qn
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5a09-776d-78e0-ad44-1988141663f9
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc pwd in /tmp/codex-h9rar2qn
succeeded in 0ms:
/tmp/codex-h9rar2qn
exec
/bin/bash -lc 'rg --files' in /tmp/codex-h9rar2qn
succeeded in 0ms:
codex-output-schema.json
BYTECODE_BUNDLE.json
exec
/bin/bash -lc "sed -n '1,260p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
{
"analysis_artifact": {
"address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"artifact_hash": "0x133b743085ce7d1fca5259afc54948e5e13fd3a5521cba7c10ddde7ac4b254e2",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 10,
"hash": "0xf336db1ca08fe797ccf50bdaaa65326fa7e12bf90f0d2e021619d898eb4a7e84",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"CALLDATASIZE",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 0
},
{
"end_pc": 56,
"hash": "0x2798806f4363a706abe40122c73de70c90f1dfd040aa05c5d02e1bd34aba9c50",
"opcodes": [
"PUSH1",
"CALLDATALOAD",
"PUSH29",
"OP_90",
"DIV",
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 11
},
{
"end_pc": 67,
"hash": "0x10e4b33cf1c0b16666e1bb30b5bdd930e8a0ec4f81105b3b1dc8729719ba91d6",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 57
},
{
"end_pc": 78,
"hash": "0xec9e6245c12c844e20f8b5265a4e2fad67f5e62488b34458cb86f19c5411c39e",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 68
},
{
"end_pc": 89,
"hash": "0x91b1c04ba5395a70a3005b6b909e41d31e2f7c8417918bb65ae4459ff7e89eb8",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 79
},
{
"end_pc": 100,
"hash": "0x80de406eeb9c3150b4307ac6240df7744a36fd15ba015640857e4b2c93db6576",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 90
},
{
"end_pc": 111,
"hash": "0x1c47a21e30b61917cd306dbe6eee72530d831b5fc78d550aa059d0ab2d2cb687",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 101
},
{
"end_pc": 122,
"hash": "0x9091bee25124e916ec9ae8385b941c8347c10270250b6c0a559618f3c6feb2c5",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 112
},
{
"end_pc": 133,
"hash": "0x2b1aae06b00dd90f6f3114d27ef2deed4023c1b6fd0ecfa262161908eb39353d",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 123
},
{
"end_pc": 144,
"hash": "0x42b81294903e05a9dabe6db81e5cd3b07a78c14617fb143f1745589302f55f23",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 134
},
{
"end_pc": 155,
"hash": "0x1eba687776fa4787f27d5cb4e2b69980f647b72a713acc9dad31c6188113ec00",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 145
},
{
"end_pc": 166,
"hash": "0xa90c2430b3dc03504cb81c13c8bd51ad644442eaf12b808e6ee36e29eb1ecf5b",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 156
},
{
"end_pc": 177,
"hash": "0x72970614c1e7604b82c467cb70c7f8e0cd952c0c0dda4f40072eeaeb3fd17374",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 167
},
{
"end_pc": 188,
"hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 178
},
{
"end_pc": 199,
"hash": "0x28a303a8a96dde8a496b90fd076616569bb88a1e24fccfa4911b8862e7c5daef",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 189
},
{
"end_pc": 210,
"hash": "0x72e526d03b976768c9ecc521048ff1ee1be65e3df9c8752a0fe489dc0930ed97",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 200
},
{
"end_pc": 221,
"hash": "0x7e31ac2bfffb4e252cca67adb14868a343a0ea7fc01890acdb51470569a9349f",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 211
},
{
"end_pc": 232,
"hash": "0xd745f724e876a814e3264e895dd0fb2be06ac7bdf02c4d7e5b4967a700fa349d",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 222
},
{
"end_pc": 243,
"hash": "0x37f39d4975d6ffda50e3a2cf4e5b92381f40d7525b59f2d154c52e7dcb288043",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 233
},
{
"end_pc": 254,
"hash": "0x7241e7c748473c46315eef5fb8e0e5c4eb6b2e5f273760e2adc279cf557f0866",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 244
},
{
"end_pc": 258,
"hash": "0xedd5fb9222fbdb522830ec1fdc4f746554a69f5e9e222481bad2b917bcd1417f",
"opcodes": [
exec
/bin/bash -lc "sed -n '1,220p' codex-output-schema.json" in /tmp/codex-h9rar2qn
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 'wc -l BYTECODE_BUNDLE.json' in /tmp/codex-h9rar2qn
succeeded in 0ms:
7954 BYTECODE_BUNDLE.json
exec
/bin/bash -lc "rg -n 'detector|selector|delegatecall|callsite|storage|proxy|EIP|1967|beacon|selfdestruct|reentr|upgrade|admin|owner|auth|external_calls|findings|DELEGATECALL|CALLCODE|STATICCALL|CALL\\b' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
6: "auth": {
1650: "CALL",
1904: "CALL",
2121: "CALL",
2292: "callsites": [
2294: "opcode": "CALL",
2301: "opcode": "CALL",
2308: "opcode": "CALL",
2773: "dispatcher_type": "selector_jump_table",
2777: "selector": "0x0de9cacd"
2781: "selector": "0x12065fe0"
2785: "selector": "0x13060833"
2789: "selector": "0x27e235e3"
2793: "selector": "0x3ccfd60b"
2797: "selector": "0x481c6a75"
2801: "selector": "0x4afdd0e7"
2805: "selector": "0x5294010f"
2809: "selector": "0x679dffb4"
2813: "selector": "0x8351a0d4"
2817: "selector": "0x8b3aa967"
2821: "selector": "0x959499b6"
2825: "selector": "0x978bbdb9"
2829: "selector": "0xbbd4e8c9"
2833: "selector": "0xd0e30db0"
2837: "selector": "0xd9607482"
2841: "selector": "0xea362937"
2845: "selector": "0xedf26d9b"
2849: "selector": "0xfc7e286d"
2854: "auth": {
2858: "selector": "0x0de9cacd",
2861: "delegatecall": 0,
2862: "selfdestruct": 0,
2865: "storage": {
3028: "auth": {
3032: "selector": "0x12065fe0",
3035: "delegatecall": 0,
3036: "selfdestruct": 0,
3039: "storage": {
3202: "auth": {
3206: "selector": "0x13060833",
3209: "delegatecall": 0,
3210: "selfdestruct": 0,
3213: "storage": {
3376: "auth": {
3380: "selector": "0x27e235e3",
3383: "delegatecall": 0,
3384: "selfdestruct": 0,
3387: "storage": {
3550: "auth": {
3554: "selector": "0x3ccfd60b",
3557: "delegatecall": 0,
3558: "selfdestruct": 0,
3561: "storage": {
3724: "auth": {
3728: "selector": "0x481c6a75",
3731: "delegatecall": 0,
3732: "selfdestruct": 0,
3735: "storage": {
3898: "auth": {
3902: "selector": "0x4afdd0e7",
3905: "delegatecall": 0,
3906: "selfdestruct": 0,
3909: "storage": {
4072: "auth": {
4076: "selector": "0x5294010f",
4079: "delegatecall": 0,
4080: "selfdestruct": 0,
4083: "storage": {
4246: "auth": {
4250: "selector": "0x679dffb4",
4253: "delegatecall": 0,
4254: "selfdestruct": 0,
4257: "storage": {
4420: "auth": {
4424: "selector": "0x8351a0d4",
4427: "delegatecall": 0,
4428: "selfdestruct": 0,
4431: "storage": {
4594: "auth": {
4598: "selector": "0x8b3aa967",
4601: "delegatecall": 0,
4602: "selfdestruct": 0,
4605: "storage": {
4768: "auth": {
4772: "selector": "0x959499b6",
4775: "delegatecall": 0,
4776: "selfdestruct": 0,
4779: "storage": {
4942: "auth": {
4946: "selector": "0x978bbdb9",
4949: "delegatecall": 0,
4950: "selfdestruct": 0,
4953: "storage": {
5116: "auth": {
5120: "selector": "0xbbd4e8c9",
5123: "delegatecall": 0,
5124: "selfdestruct": 0,
5127: "storage": {
5290: "auth": {
5294: "selector": "0xd0e30db0",
5297: "delegatecall": 0,
5298: "selfdestruct": 0,
5301: "storage": {
5464: "auth": {
5468: "selector": "0xd9607482",
5471: "delegatecall": 0,
5472: "selfdestruct": 0,
5475: "storage": {
5638: "auth": {
5642: "selector": "0xea362937",
5645: "delegatecall": 0,
5646: "selfdestruct": 0,
5649: "storage": {
5812: "auth": {
5816: "selector": "0xedf26d9b",
5819: "delegatecall": 0,
5820: "selfdestruct": 0,
5823: "storage": {
5986: "auth": {
5990: "selector": "0xfc7e286d",
5993: "delegatecall": 0,
5994: "selfdestruct": 0,
5997: "storage": {
6160: "selectors": [
6185: "delegatecall": 0,
6186: "selfdestruct": 0,
6188: "upgrade_slot_write_suspected": false
6190: "storage": {
6381: "is_proxy": false,
7700: "opcode": "CALL",
7702: "type": "callsite"
7706: "opcode": "CALL",
7708: "type": "callsite"
7712: "opcode": "CALL",
7714: "type": "callsite"
7723: "selector": "0x0de9cacd",
7729: "selector": "0x12065fe0",
7735: "selector": "0x13060833",
7741: "selector": "0x27e235e3",
7747: "selector": "0x3ccfd60b",
7753: "selector": "0x481c6a75",
7759: "selector": "0x4afdd0e7",
7765: "selector": "0x5294010f",
7771: "selector": "0x679dffb4",
7777: "selector": "0x8351a0d4",
7783: "selector": "0x8b3aa967",
7789: "selector": "0x959499b6",
7795: "selector": "0x978bbdb9",
7801: "selector": "0xbbd4e8c9",
7807: "selector": "0xd0e30db0",
7813: "selector": "0xd9607482",
7819: "selector": "0xea362937",
7825: "selector": "0xedf26d9b",
7831: "selector": "0xfc7e286d",
7841: "detector_findings": [
7848: "opcode": "CALL",
7855: "opcode": "CALL",
7862: "opcode": "CALL",
7873: "sink": "CALL"
7876: "title": "Untrusted CALL target/value reachable",
7888: "sink": "CALL",
7901: "opcode": "CALL",
7908: "opcode": "CALL",
7915: "opcode": "CALL",
7925: "sink": "CALL",
7941: "sink": "CALL",
7951: "delegatecall_count": 0,
7953: "selfdestruct_count": 0
exec
/bin/bash -lc "sed -n '2288,2325p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
],
"start_pc": 2781
}
],
"callsites": [
{
"opcode": "CALL",
"pc": 1812,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2251,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2561,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"cfg_edges": [
{
"from": "bb:0",
"to": "bb:259",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
exec
/bin/bash -lc "sed -n '2770,2868p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
}
],
"cfg_hash": "0x5a18b6de2b21725b02f1bbd48f48ce3017dc2a59f3ec0da63345c6842732cef8",
"dispatcher_type": "selector_jump_table",
"function_entries": [
{
"entry_pc": 302407648,
"selector": "0x0de9cacd"
},
{
"entry_pc": 319162419,
"selector": "0x12065fe0"
},
{
"entry_pc": 669136355,
"selector": "0x13060833"
},
{
"entry_pc": 1020253707,
"selector": "0x27e235e3"
},
{
"entry_pc": 1209821813,
"selector": "0x3ccfd60b"
},
{
"entry_pc": 1258148071,
"selector": "0x481c6a75"
},
{
"entry_pc": 1385431311,
"selector": "0x4afdd0e7"
},
{
"entry_pc": 1738407860,
"selector": "0x5294010f"
},
{
"entry_pc": 2203164884,
"selector": "0x679dffb4"
},
{
"entry_pc": 2335877479,
"selector": "0x8351a0d4"
},
{
"entry_pc": 2509543862,
"selector": "0x8b3aa967"
},
{
"entry_pc": 2542517689,
"selector": "0x959499b6"
},
{
"entry_pc": 3151292617,
"selector": "0x978bbdb9"
},
{
"entry_pc": 3504541104,
"selector": "0xbbd4e8c9"
},
{
"entry_pc": 3646977154,
"selector": "0xd0e30db0"
},
{
"entry_pc": 3929418039,
"selector": "0xd9607482"
},
{
"entry_pc": 3992087963,
"selector": "0xea362937"
},
{
"entry_pc": 4236126317,
"selector": "0xedf26d9b"
},
{
"entry_pc": null,
"selector": "0xfc7e286d"
}
],
"functions": [
{
"auth": {
"guards": []
},
"entry_pc": 302407648,
"selector": "0x0de9cacd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 49,
"slots": [
{
exec
/bin/bash -lc "sed -n '6160,6215p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"selectors": [
"0x0de9cacd",
"0x12065fe0",
"0x13060833",
"0x27e235e3",
"0x3ccfd60b",
"0x481c6a75",
"0x4afdd0e7",
"0x5294010f",
"0x679dffb4",
"0x8351a0d4",
"0x8b3aa967",
"0x959499b6",
"0x978bbdb9",
"0xbbd4e8c9",
"0xd0e30db0",
"0xd9607482",
"0xea362937",
"0xedf26d9b",
"0xfc7e286d"
],
"sinks": {
"call": 3,
"create": 0,
"create2": 0,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0,
"upgrade_slot_write_suspected": false
},
"storage": {
"keccak_count": 25,
"reads": 49,
"slots": [
{
"op": "SLOAD",
"pc": 942,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 951,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 960,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
},
{
"op": "SLOAD",
"pc": 969,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
},
{
"op": "SLOAD",
exec
/bin/bash -lc "sed -n '7841,7954p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"detector_findings": [
{
"confidence": 60,
"evidence_json": {
"call_count": 3,
"examples": [
{
"opcode": "CALL",
"pc": 1812,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2251,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2561,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 3
},
"normalized_json": {
"sink": "CALL"
},
"severity": "high",
"title": "Untrusted CALL target/value reachable",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"0xee291517c6290faf94dee71647c27b9737b2a2d2"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
"trace_mode": "callTracer"
}
},
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 3,
"examples": [
{
"opcode": "CALL",
"pc": 1812,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2251,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 2561,
"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": [
"0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"0xee291517c6290faf94dee71647c27b9737b2a2d2"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
"trace_mode": "callTracer"
}
}
],
"heuristics_summary": {
"create2_count": 0,
"delegatecall_count": 0,
"flags": [],
"selfdestruct_count": 0
}
exec
/bin/bash -lc "rg -n '1812|2251|2561|0xee291517c6290faf94dee71647c27b9737b2a2d2|0x4f0255319faa4a7915856300f5ff98a2fe86ae97|942|951|960|969' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
3: "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
175: "hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
312: "hash": "0xa0e960585bbedae271178bcaa0ae42c95c208977deac1f70aa6442d051e78d77",
356: "hash": "0xdff6332724fc859ba624854f4a6829d7f96046693a2e706c90d9b2f78ea70ec0",
448: "hash": "0xc1dd9fc3d89426be78cab80a7b14322f37769ed43cb8b5d024c72da22234c358",
502: "hash": "0xe8ea0761ba35708495496541403cffd5d4bdcf89c9965e87951b0b364efe6abb",
2096: "hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
2295: "pc": 1812,
2302: "pc": 2251,
2309: "pc": 2561,
2837: "selector": "0xd9607482"
2870: "pc": 942,
2875: "pc": 951,
2880: "pc": 960,
2885: "pc": 969,
3044: "pc": 942,
3049: "pc": 951,
3054: "pc": 960,
3059: "pc": 969,
3218: "pc": 942,
3223: "pc": 951,
3228: "pc": 960,
3233: "pc": 969,
3392: "pc": 942,
3397: "pc": 951,
3402: "pc": 960,
3407: "pc": 969,
3566: "pc": 942,
3571: "pc": 951,
3576: "pc": 960,
3581: "pc": 969,
3740: "pc": 942,
3745: "pc": 951,
3750: "pc": 960,
3755: "pc": 969,
3914: "pc": 942,
3919: "pc": 951,
3924: "pc": 960,
3929: "pc": 969,
4088: "pc": 942,
4093: "pc": 951,
4098: "pc": 960,
4103: "pc": 969,
4262: "pc": 942,
4267: "pc": 951,
4272: "pc": 960,
4277: "pc": 969,
4436: "pc": 942,
4441: "pc": 951,
4446: "pc": 960,
4451: "pc": 969,
4610: "pc": 942,
4615: "pc": 951,
4620: "pc": 960,
4625: "pc": 969,
4784: "pc": 942,
4789: "pc": 951,
4794: "pc": 960,
4799: "pc": 969,
4958: "pc": 942,
4963: "pc": 951,
4968: "pc": 960,
4973: "pc": 969,
5132: "pc": 942,
5137: "pc": 951,
5142: "pc": 960,
5147: "pc": 969,
5306: "pc": 942,
5311: "pc": 951,
5316: "pc": 960,
5321: "pc": 969,
5468: "selector": "0xd9607482",
5480: "pc": 942,
5485: "pc": 951,
5490: "pc": 960,
5495: "pc": 969,
5654: "pc": 942,
5659: "pc": 951,
5664: "pc": 960,
5669: "pc": 969,
5828: "pc": 942,
5833: "pc": 951,
5838: "pc": 960,
5843: "pc": 969,
6002: "pc": 942,
6007: "pc": 951,
6012: "pc": 960,
6017: "pc": 969,
6176: "0xd9607482",
6196: "pc": 942,
6201: "pc": 951,
6206: "pc": 960,
6211: "pc": 969,
6363: "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
6383: "full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
6392: "address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
6931: "from": "fn:0xd9607482",
6947: "to": "call:1812",
6951: "from": "call:1812",
6957: "to": "call:2251",
6961: "from": "call:2251",
6967: "to": "call:2561",
6971: "from": "call:2561",
7070: "hash": "0x5fa3a4ed6041e2671e094c40fa97ea6c3d158a3ae5ef3f182d9420d1db01f26e",
7154: "hash": "0xa0e960585bbedae271178bcaa0ae42c95c208977deac1f70aa6442d051e78d77",
7168: "hash": "0xdff6332724fc859ba624854f4a6829d7f96046693a2e706c90d9b2f78ea70ec0",
7203: "hash": "0xc1dd9fc3d89426be78cab80a7b14322f37769ed43cb8b5d024c72da22234c358",
7224: "hash": "0xe8ea0761ba35708495496541403cffd5d4bdcf89c9965e87951b0b364efe6abb",
7651: "hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
7699: "id": "call:1812",
7701: "pc": 1812,
7705: "id": "call:2251",
7707: "pc": 2251,
7711: "id": "call:2561",
7713: "pc": 2561,
7812: "id": "fn:0xd9607482",
7813: "selector": "0xd9607482",
7849: "pc": 1812,
7856: "pc": 2251,
7863: "pc": 2561,
7881: "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
7882: "0xee291517c6290faf94dee71647c27b9737b2a2d2"
7902: "pc": 1812,
7909: "pc": 2251,
7916: "pc": 2561,
7934: "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
7935: "0xee291517c6290faf94dee71647c27b9737b2a2d2"
exec
/bin/bash -lc "sed -n '1560,1705p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"POP",
"SLOAD",
"MUL",
"DIV",
"MUL",
"DIV",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"CALLER",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"POP",
"SLOAD",
"MUL",
"DIV",
"SUB",
"PUSH1",
"PUSH1",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
"DIV",
"PUSH20",
"AND",
"PUSH20",
"AND",
"PUSH1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"CALLER",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"OP_82",
"OP_82",
"OP_82",
"POP",
"SLOAD",
"ADD",
"OP_92",
"POP",
"POP",
"OP_81",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"CALLER",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
exec
/bin/bash -lc "sed -n '1860,1935p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"PUSH20",
"AND",
"PUSH1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"PUSH1",
"POP",
"PUSH1",
"CALLER",
"PUSH20",
"AND",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"OP_90",
"OP_81",
"MSTORE",
"PUSH1",
"ADD",
"PUSH1",
"SHA3",
"PUSH1",
"POP",
"SLOAD",
"ADD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH1",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
"PUSH1",
"OP_90",
"SLOAD",
"OP_90",
"PUSH2",
"EXP",
"OP_90",
exec
/bin/bash -lc "sed -n '2080,2145p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"PUSH1",
"POP",
"SLOAD",
"ADDRESS",
"PUSH20",
"AND",
"BALANCE",
"GT",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 2476
},
{
"end_pc": 2610,
"hash": "0xf23b1ef87c37af42d82aa1094203c5061f993d5a6de08330fcf6dabade2ec52b",
"opcodes": [
"CALLER",
"PUSH20",
"AND",
"PUSH1",
"PUSH1",
"PUSH1",
"POP",
"SLOAD",
"PUSH1",
"MLOAD",
"OP_80",
"OP_90",
"POP",
"PUSH1",
"PUSH1",
"MLOAD",
"OP_80",
"OP_83",
"SUB",
"OP_81",
"OP_85",
"OP_88",
"OP_88",
"CALL",
"OP_93",
"POP",
"POP",
"POP",
"POP",
"PUSH1",
"PUSH1",
"PUSH2",
"EXP",
"OP_81",
"SLOAD",
"OP_81",
"PUSH1",
"MUL",
"NOT",
"AND",
"OP_90",
"OP_83",
"MUL",
"OR",
"OP_90",
"SSTORE",
"POP",
"PUSH1",
exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:42.000298Z ERROR codex_core::tools::router: error=Cannot read properties of undefined (reading 'full')
exited 1 in 159ms:
Cannot read properties of undefined (reading 'full')
exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:45.997233Z ERROR codex_core::tools::router: error=Identifier 'fs' has already been declared
exited 1 in 7ms:
Identifier 'fs' has already been declared
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 3ms:
[
'analysis_artifact',
'analysis_run',
'artifact',
'capability_graph',
'detector_findings',
'heuristics_summary'
]
[
'address',
'artifact_hash',
'artifact_json',
'block_number',
'chain_id',
'codehash',
'created_at',
'id',
'updated_at',
'version'
]
[
'auth',
'basic_blocks',
'callsites',
'cfg_edges',
'cfg_hash',
'dispatcher_type',
'function_entries',
'functions',
'selectors',
'sinks',
'storage',
'version'
]
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 5ms:
object [
'codehash',
'compiler_json',
'implementation_address',
'is_proxy',
'runtime_bytecode',
'verified_source'
]
exec
js_repl in /tmp/codex-h9rar2qn
2026-04-04T19:48:55.770491Z ERROR codex_core::tools::router: error=names is not defined
exited 1 in 13ms:
names is not defined
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 11ms:
{
"len": 1560,
"around1812": [
{
"pc": 1720,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1722,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1724,
"op": "POP"
},
{
"pc": 1725,
"op": "DUP2"
},
{
"pc": 1726,
"op": "SWAP1"
},
{
"pc": 1727,
"op": "SSTORE"
},
{
"pc": 1728,
"op": "POP"
},
{
"pc": 1729,
"op": "PUSH1",
"arg": "0x09"
},
{
"pc": 1731,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1733,
"op": "SWAP1"
},
{
"pc": 1734,
"op": "SLOAD"
},
{
"pc": 1735,
"op": "SWAP1"
},
{
"pc": 1736,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 1739,
"op": "EXP"
},
{
"pc": 1740,
"op": "SWAP1"
},
{
"pc": 1741,
"op": "DIV"
},
{
"pc": 1742,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1763,
"op": "AND"
},
{
"pc": 1764,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1785,
"op": "AND"
},
{
"pc": 1786,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1788,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1790,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1792,
"op": "POP"
},
{
"pc": 1793,
"op": "SLOAD"
},
{
"pc": 1794,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1796,
"op": "MLOAD"
},
{
"pc": 1797,
"op": "DUP1"
},
{
"pc": 1798,
"op": "SWAP1"
},
{
"pc": 1799,
"op": "POP"
},
{
"pc": 1800,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1802,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1804,
"op": "MLOAD"
},
{
"pc": 1805,
"op": "DUP1"
},
{
"pc": 1806,
"op": "DUP4"
},
{
"pc": 1807,
"op": "SUB"
},
{
"pc": 1808,
"op": "DUP2"
},
{
"pc": 1809,
"op": "DUP6"
},
{
"pc": 1810,
"op": "DUP9"
},
{
"pc": 1811,
"op": "DUP9"
},
{
"pc": 1812,
"op": "CALL"
},
{
"pc": 1813,
"op": "SWAP4"
},
{
"pc": 1814,
"op": "POP"
},
{
"pc": 1815,
"op": "POP"
},
{
"pc": 1816,
"op": "POP"
},
{
"pc": 1817,
"op": "POP"
},
{
"pc": 1818,
"op": "POP"
},
{
"pc": 1819,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1821,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1823,
"op": "POP"
},
{
"pc": 1824,
"op": "SLOAD"
},
{
"pc": 1825,
"op": "PUSH1",
"arg": "0x0d"
},
{
"pc": 1827,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1829,
"op": "POP"
},
{
"pc": 1830,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1832,
"op": "CALLER"
},
{
"pc": 1833,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1854,
"op": "AND"
},
{
"pc": 1855,
"op": "DUP2"
},
{
"pc": 1856,
"op": "MSTORE"
},
{
"pc": 1857,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1859,
"op": "ADD"
},
{
"pc": 1860,
"op": "SWAP1"
},
{
"pc": 1861,
"op": "DUP2"
},
{
"pc": 1862,
"op": "MSTORE"
},
{
"pc": 1863,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1865,
"op": "ADD"
},
{
"pc": 1866,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1868,
"op": "SHA3"
},
{
"pc": 1869,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1871,
"op": "DUP3"
},
{
"pc": 1872,
"op": "DUP3"
},
{
"pc": 1873,
"op": "DUP3"
},
{
"pc": 1874,
"op": "POP"
},
{
"pc": 1875,
"op": "SLOAD"
},
{
"pc": 1876,
"op": "ADD"
},
{
"pc": 1877,
"op": "SWAP3"
},
{
"pc": 1878,
"op": "POP"
},
{
"pc": 1879,
"op": "POP"
},
{
"pc": 1880,
"op": "DUP2"
},
{
"pc": 1881,
"op": "SWAP1"
}
],
"around2251": [
{
"pc": 2188,
"op": "POP"
},
{
"pc": 2189,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2191,
"op": "CALLER"
},
{
"pc": 2192,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2213,
"op": "AND"
},
{
"pc": 2214,
"op": "DUP2"
},
{
"pc": 2215,
"op": "MSTORE"
},
{
"pc": 2216,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2218,
"op": "ADD"
},
{
"pc": 2219,
"op": "SWAP1"
},
{
"pc": 2220,
"op": "DUP2"
},
{
"pc": 2221,
"op": "MSTORE"
},
{
"pc": 2222,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2224,
"op": "ADD"
},
{
"pc": 2225,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2227,
"op": "SHA3"
},
{
"pc": 2228,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2230,
"op": "POP"
},
{
"pc": 2231,
"op": "SLOAD"
},
{
"pc": 2232,
"op": "ADD"
},
{
"pc": 2233,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2235,
"op": "MLOAD"
},
{
"pc": 2236,
"op": "DUP1"
},
{
"pc": 2237,
"op": "SWAP1"
},
{
"pc": 2238,
"op": "POP"
},
{
"pc": 2239,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2241,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2243,
"op": "MLOAD"
},
{
"pc": 2244,
"op": "DUP1"
},
{
"pc": 2245,
"op": "DUP4"
},
{
"pc": 2246,
"op": "SUB"
},
{
"pc": 2247,
"op": "DUP2"
},
{
"pc": 2248,
"op": "DUP6"
},
{
"pc": 2249,
"op": "DUP9"
},
{
"pc": 2250,
"op": "DUP9"
},
{
"pc": 2251,
"op": "CALL"
},
{
"pc": 2252,
"op": "SWAP4"
},
{
"pc": 2253,
"op": "POP"
},
{
"pc": 2254,
"op": "POP"
},
{
"pc": 2255,
"op": "POP"
},
{
"pc": 2256,
"op": "POP"
},
{
"pc": 2257,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2259,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2261,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2264,
"op": "EXP"
},
{
"pc": 2265,
"op": "DUP2"
},
{
"pc": 2266,
"op": "SLOAD"
},
{
"pc": 2267,
"op": "DUP2"
},
{
"pc": 2268,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2270,
"op": "MUL"
},
{
"pc": 2271,
"op": "NOT"
},
{
"pc": 2272,
"op": "AND"
},
{
"pc": 2273,
"op": "SWAP1"
},
{
"pc": 2274,
"op": "DUP4"
},
{
"pc": 2275,
"op": "MUL"
},
{
"pc": 2276,
"op": "OR"
},
{
"pc": 2277,
"op": "SWAP1"
},
{
"pc": 2278,
"op": "SSTORE"
},
{
"pc": 2279,
"op": "POP"
},
{
"pc": 2280,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2282,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2284,
"op": "SWAP1"
},
{
"pc": 2285,
"op": "SLOAD"
},
{
"pc": 2286,
"op": "SWAP1"
},
{
"pc": 2287,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2290,
"op": "EXP"
},
{
"pc": 2291,
"op": "SWAP1"
},
{
"pc": 2292,
"op": "DIV"
},
{
"pc": 2293,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2295,
"op": "AND"
},
{
"pc": 2296,
"op": "ISZERO"
}
],
"around2561": [
{
"pc": 2476,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2478,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2480,
"op": "POP"
},
{
"pc": 2481,
"op": "SLOAD"
},
{
"pc": 2482,
"op": "ADDRESS"
},
{
"pc": 2483,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2504,
"op": "AND"
},
{
"pc": 2505,
"op": "BALANCE"
},
{
"pc": 2506,
"op": "GT"
},
{
"pc": 2507,
"op": "ISZERO"
},
{
"pc": 2508,
"op": "PUSH2",
"arg": "0x0adb"
},
{
"pc": 2511,
"op": "JUMPI"
},
{
"pc": 2512,
"op": "CALLER"
},
{
"pc": 2513,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2534,
"op": "AND"
},
{
"pc": 2535,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2537,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2539,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2541,
"op": "POP"
},
{
"pc": 2542,
"op": "SLOAD"
},
{
"pc": 2543,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2545,
"op": "MLOAD"
},
{
"pc": 2546,
"op": "DUP1"
},
{
"pc": 2547,
"op": "SWAP1"
},
{
"pc": 2548,
"op": "POP"
},
{
"pc": 2549,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2551,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2553,
"op": "MLOAD"
},
{
"pc": 2554,
"op": "DUP1"
},
{
"pc": 2555,
"op": "DUP4"
},
{
"pc": 2556,
"op": "SUB"
},
{
"pc": 2557,
"op": "DUP2"
},
{
"pc": 2558,
"op": "DUP6"
},
{
"pc": 2559,
"op": "DUP9"
},
{
"pc": 2560,
"op": "DUP9"
},
{
"pc": 2561,
"op": "CALL"
},
{
"pc": 2562,
"op": "SWAP4"
},
{
"pc": 2563,
"op": "POP"
},
{
"pc": 2564,
"op": "POP"
},
{
"pc": 2565,
"op": "POP"
},
{
"pc": 2566,
"op": "POP"
},
{
"pc": 2567,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2569,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2571,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2574,
"op": "EXP"
},
{
"pc": 2575,
"op": "DUP2"
},
{
"pc": 2576,
"op": "SLOAD"
},
{
"pc": 2577,
"op": "DUP2"
},
{
"pc": 2578,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2580,
"op": "MUL"
},
{
"pc": 2581,
"op": "NOT"
},
{
"pc": 2582,
"op": "AND"
},
{
"pc": 2583,
"op": "SWAP1"
},
{
"pc": 2584,
"op": "DUP4"
},
{
"pc": 2585,
"op": "MUL"
},
{
"pc": 2586,
"op": "OR"
},
{
"pc": 2587,
"op": "SWAP1"
},
{
"pc": 2588,
"op": "SSTORE"
},
{
"pc": 2589,
"op": "POP"
},
{
"pc": 2590,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2592,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2594,
"op": "SWAP1"
},
{
"pc": 2595,
"op": "SLOAD"
},
{
"pc": 2596,
"op": "SWAP1"
},
{
"pc": 2597,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2600,
"op": "EXP"
},
{
"pc": 2601,
"op": "SWAP1"
},
{
"pc": 2602,
"op": "DIV"
},
{
"pc": 2603,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2605,
"op": "AND"
},
{
"pc": 2606,
"op": "ISZERO"
}
]
}
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 11ms:
{
"f543": [
{
"pc": 1347,
"op": "JUMPDEST"
},
{
"pc": 1348,
"op": "PUSH1",
"arg": "0x07"
},
{
"pc": 1350,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1352,
"op": "DUP2"
},
{
"pc": 1353,
"op": "DUP2"
},
{
"pc": 1354,
"op": "POP"
},
{
"pc": 1355,
"op": "SLOAD"
},
{
"pc": 1356,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1358,
"op": "ADD"
},
{
"pc": 1359,
"op": "SWAP2"
},
{
"pc": 1360,
"op": "SWAP1"
},
{
"pc": 1361,
"op": "POP"
},
{
"pc": 1362,
"op": "DUP2"
},
{
"pc": 1363,
"op": "SWAP1"
},
{
"pc": 1364,
"op": "SSTORE"
},
{
"pc": 1365,
"op": "POP"
},
{
"pc": 1366,
"op": "TIMESTAMP"
},
{
"pc": 1367,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1369,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1371,
"op": "POP"
},
{
"pc": 1372,
"op": "DUP2"
},
{
"pc": 1373,
"op": "SWAP1"
},
{
"pc": 1374,
"op": "SSTORE"
},
{
"pc": 1375,
"op": "POP"
},
{
"pc": 1376,
"op": "CALLER"
},
{
"pc": 1377,
"op": "PUSH1",
"arg": "0x0e"
},
{
"pc": 1379,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1381,
"op": "POP"
},
{
"pc": 1382,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1384,
"op": "PUSH1",
"arg": "0x07"
},
{
"pc": 1386,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1388,
"op": "POP"
},
{
"pc": 1389,
"op": "SLOAD"
},
{
"pc": 1390,
"op": "DUP2"
},
{
"pc": 1391,
"op": "MSTORE"
},
{
"pc": 1392,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1394,
"op": "ADD"
},
{
"pc": 1395,
"op": "SWAP1"
},
{
"pc": 1396,
"op": "DUP2"
},
{
"pc": 1397,
"op": "MSTORE"
},
{
"pc": 1398,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1400,
"op": "ADD"
},
{
"pc": 1401,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1403,
"op": "SHA3"
},
{
"pc": 1404,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1406,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 1409,
"op": "EXP"
},
{
"pc": 1410,
"op": "DUP2"
},
{
"pc": 1411,
"op": "SLOAD"
},
{
"pc": 1412,
"op": "DUP2"
},
{
"pc": 1413,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1434,
"op": "MUL"
},
{
"pc": 1435,
"op": "NOT"
},
{
"pc": 1436,
"op": "AND"
},
{
"pc": 1437,
"op": "SWAP1"
},
{
"pc": 1438,
"op": "DUP4"
},
{
"pc": 1439,
"op": "MUL"
},
{
"pc": 1440,
"op": "OR"
},
{
"pc": 1441,
"op": "SWAP1"
},
{
"pc": 1442,
"op": "SSTORE"
},
{
"pc": 1443,
"op": "POP"
},
{
"pc": 1444,
"op": "CALLVALUE"
},
{
"pc": 1445,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 1447,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1449,
"op": "POP"
},
{
"pc": 1450,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1452,
"op": "CALLER"
},
{
"pc": 1453,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1474,
"op": "AND"
},
{
"pc": 1475,
"op": "DUP2"
},
{
"pc": 1476,
"op": "MSTORE"
},
{
"pc": 1477,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1479,
"op": "ADD"
},
{
"pc": 1480,
"op": "SWAP1"
},
{
"pc": 1481,
"op": "DUP2"
},
{
"pc": 1482,
"op": "MSTORE"
},
{
"pc": 1483,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1485,
"op": "ADD"
},
{
"pc": 1486,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1488,
"op": "SHA3"
},
{
"pc": 1489,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1491,
"op": "DUP3"
},
{
"pc": 1492,
"op": "DUP3"
},
{
"pc": 1493,
"op": "DUP3"
},
{
"pc": 1494,
"op": "POP"
},
{
"pc": 1495,
"op": "SLOAD"
},
{
"pc": 1496,
"op": "ADD"
},
{
"pc": 1497,
"op": "SWAP3"
},
{
"pc": 1498,
"op": "POP"
},
{
"pc": 1499,
"op": "POP"
},
{
"pc": 1500,
"op": "DUP2"
},
{
"pc": 1501,
"op": "SWAP1"
},
{
"pc": 1502,
"op": "SSTORE"
},
{
"pc": 1503,
"op": "POP"
},
{
"pc": 1504,
"op": "PUSH2",
"arg": "0x05e7"
},
{
"pc": 1507,
"op": "PUSH2",
"arg": "0x05ea"
},
{
"pc": 1510,
"op": "JUMP"
},
{
"pc": 1511,
"op": "JUMPDEST"
},
{
"pc": 1512,
"op": "JUMPDEST"
},
{
"pc": 1513,
"op": "JUMP"
}
],
"f5ea": [
{
"pc": 1514,
"op": "JUMPDEST"
},
{
"pc": 1515,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 1517,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1519,
"op": "POP"
},
{
"pc": 1520,
"op": "SLOAD"
},
{
"pc": 1521,
"op": "PUSH1",
"arg": "0x0b"
},
{
"pc": 1523,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1525,
"op": "POP"
},
{
"pc": 1526,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1528,
"op": "CALLER"
},
{
"pc": 1529,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1550,
"op": "AND"
},
{
"pc": 1551,
"op": "DUP2"
},
{
"pc": 1552,
"op": "MSTORE"
},
{
"pc": 1553,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1555,
"op": "ADD"
},
{
"pc": 1556,
"op": "SWAP1"
},
{
"pc": 1557,
"op": "DUP2"
},
{
"pc": 1558,
"op": "MSTORE"
},
{
"pc": 1559,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1561,
"op": "ADD"
},
{
"pc": 1562,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1564,
"op": "SHA3"
},
{
"pc": 1565,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1567,
"op": "POP"
},
{
"pc": 1568,
"op": "SLOAD"
},
{
"pc": 1569,
"op": "TIMESTAMP"
},
{
"pc": 1570,
"op": "SUB"
},
{
"pc": 1571,
"op": "LT"
},
{
"pc": 1572,
"op": "ISZERO"
},
{
"pc": 1573,
"op": "ISZERO"
},
{
"pc": 1574,
"op": "PUSH2",
"arg": "0x07d1"
},
{
"pc": 1577,
"op": "JUMPI"
},
{
"pc": 1578,
"op": "PUSH1",
"arg": "0x64"
},
{
"pc": 1580,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 1582,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1584,
"op": "POP"
},
{
"pc": 1585,
"op": "SLOAD"
},
{
"pc": 1586,
"op": "PUSH1",
"arg": "0x64"
},
{
"pc": 1588,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1590,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1592,
"op": "POP"
},
{
"pc": 1593,
"op": "SLOAD"
},
{
"pc": 1594,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 1596,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1598,
"op": "POP"
},
{
"pc": 1599,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1601,
"op": "CALLER"
},
{
"pc": 1602,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1623,
"op": "AND"
},
{
"pc": 1624,
"op": "DUP2"
},
{
"pc": 1625,
"op": "MSTORE"
},
{
"pc": 1626,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1628,
"op": "ADD"
},
{
"pc": 1629,
"op": "SWAP1"
},
{
"pc": 1630,
"op": "DUP2"
},
{
"pc": 1631,
"op": "MSTORE"
},
{
"pc": 1632,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1634,
"op": "ADD"
},
{
"pc": 1635,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1637,
"op": "SHA3"
},
{
"pc": 1638,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1640,
"op": "POP"
},
{
"pc": 1641,
"op": "SLOAD"
},
{
"pc": 1642,
"op": "MUL"
},
{
"pc": 1643,
"op": "DIV"
},
{
"pc": 1644,
"op": "MUL"
},
{
"pc": 1645,
"op": "DIV"
},
{
"pc": 1646,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1648,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1650,
"op": "POP"
},
{
"pc": 1651,
"op": "DUP2"
},
{
"pc": 1652,
"op": "SWAP1"
},
{
"pc": 1653,
"op": "SSTORE"
},
{
"pc": 1654,
"op": "POP"
},
{
"pc": 1655,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1657,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1659,
"op": "POP"
},
{
"pc": 1660,
"op": "SLOAD"
},
{
"pc": 1661,
"op": "PUSH1",
"arg": "0x64"
},
{
"pc": 1663,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1665,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1667,
"op": "POP"
},
{
"pc": 1668,
"op": "SLOAD"
},
{
"pc": 1669,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 1671,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1673,
"op": "POP"
},
{
"pc": 1674,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1676,
"op": "CALLER"
},
{
"pc": 1677,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1698,
"op": "AND"
},
{
"pc": 1699,
"op": "DUP2"
},
{
"pc": 1700,
"op": "MSTORE"
},
{
"pc": 1701,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1703,
"op": "ADD"
},
{
"pc": 1704,
"op": "SWAP1"
},
{
"pc": 1705,
"op": "DUP2"
},
{
"pc": 1706,
"op": "MSTORE"
},
{
"pc": 1707,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1709,
"op": "ADD"
},
{
"pc": 1710,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1712,
"op": "SHA3"
},
{
"pc": 1713,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1715,
"op": "POP"
},
{
"pc": 1716,
"op": "SLOAD"
},
{
"pc": 1717,
"op": "MUL"
},
{
"pc": 1718,
"op": "DIV"
},
{
"pc": 1719,
"op": "SUB"
},
{
"pc": 1720,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1722,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1724,
"op": "POP"
},
{
"pc": 1725,
"op": "DUP2"
},
{
"pc": 1726,
"op": "SWAP1"
},
{
"pc": 1727,
"op": "SSTORE"
},
{
"pc": 1728,
"op": "POP"
},
{
"pc": 1729,
"op": "PUSH1",
"arg": "0x09"
},
{
"pc": 1731,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1733,
"op": "SWAP1"
},
{
"pc": 1734,
"op": "SLOAD"
},
{
"pc": 1735,
"op": "SWAP1"
},
{
"pc": 1736,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 1739,
"op": "EXP"
},
{
"pc": 1740,
"op": "SWAP1"
},
{
"pc": 1741,
"op": "DIV"
},
{
"pc": 1742,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1763,
"op": "AND"
},
{
"pc": 1764,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1785,
"op": "AND"
},
{
"pc": 1786,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1788,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1790,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1792,
"op": "POP"
},
{
"pc": 1793,
"op": "SLOAD"
},
{
"pc": 1794,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1796,
"op": "MLOAD"
},
{
"pc": 1797,
"op": "DUP1"
},
{
"pc": 1798,
"op": "SWAP1"
},
{
"pc": 1799,
"op": "POP"
},
{
"pc": 1800,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1802,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1804,
"op": "MLOAD"
},
{
"pc": 1805,
"op": "DUP1"
},
{
"pc": 1806,
"op": "DUP4"
},
{
"pc": 1807,
"op": "SUB"
},
{
"pc": 1808,
"op": "DUP2"
},
{
"pc": 1809,
"op": "DUP6"
},
{
"pc": 1810,
"op": "DUP9"
},
{
"pc": 1811,
"op": "DUP9"
},
{
"pc": 1812,
"op": "CALL"
},
{
"pc": 1813,
"op": "SWAP4"
},
{
"pc": 1814,
"op": "POP"
},
{
"pc": 1815,
"op": "POP"
},
{
"pc": 1816,
"op": "POP"
},
{
"pc": 1817,
"op": "POP"
},
{
"pc": 1818,
"op": "POP"
},
{
"pc": 1819,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1821,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1823,
"op": "POP"
},
{
"pc": 1824,
"op": "SLOAD"
},
{
"pc": 1825,
"op": "PUSH1",
"arg": "0x0d"
},
{
"pc": 1827,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1829,
"op": "POP"
},
{
"pc": 1830,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1832,
"op": "CALLER"
},
{
"pc": 1833,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1854,
"op": "AND"
},
{
"pc": 1855,
"op": "DUP2"
},
{
"pc": 1856,
"op": "MSTORE"
},
{
"pc": 1857,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1859,
"op": "ADD"
},
{
"pc": 1860,
"op": "SWAP1"
},
{
"pc": 1861,
"op": "DUP2"
},
{
"pc": 1862,
"op": "MSTORE"
},
{
"pc": 1863,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1865,
"op": "ADD"
},
{
"pc": 1866,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1868,
"op": "SHA3"
},
{
"pc": 1869,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1871,
"op": "DUP3"
},
{
"pc": 1872,
"op": "DUP3"
},
{
"pc": 1873,
"op": "DUP3"
},
{
"pc": 1874,
"op": "POP"
},
{
"pc": 1875,
"op": "SLOAD"
},
{
"pc": 1876,
"op": "ADD"
},
{
"pc": 1877,
"op": "SWAP3"
},
{
"pc": 1878,
"op": "POP"
},
{
"pc": 1879,
"op": "POP"
},
{
"pc": 1880,
"op": "DUP2"
},
{
"pc": 1881,
"op": "SWAP1"
},
{
"pc": 1882,
"op": "SSTORE"
},
{
"pc": 1883,
"op": "POP"
},
{
"pc": 1884,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1886,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1888,
"op": "POP"
},
{
"pc": 1889,
"op": "SLOAD"
},
{
"pc": 1890,
"op": "PUSH1",
"arg": "0x0c"
},
{
"pc": 1892,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1894,
"op": "POP"
},
{
"pc": 1895,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1897,
"op": "CALLER"
},
{
"pc": 1898,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1919,
"op": "AND"
},
{
"pc": 1920,
"op": "DUP2"
},
{
"pc": 1921,
"op": "MSTORE"
},
{
"pc": 1922,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1924,
"op": "ADD"
},
{
"pc": 1925,
"op": "SWAP1"
},
{
"pc": 1926,
"op": "DUP2"
},
{
"pc": 1927,
"op": "MSTORE"
},
{
"pc": 1928,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1930,
"op": "ADD"
},
{
"pc": 1931,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1933,
"op": "SHA3"
},
{
"pc": 1934,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1936,
"op": "DUP3"
},
{
"pc": 1937,
"op": "DUP3"
},
{
"pc": 1938,
"op": "DUP3"
},
{
"pc": 1939,
"op": "POP"
},
{
"pc": 1940,
"op": "SLOAD"
},
{
"pc": 1941,
"op": "ADD"
},
{
"pc": 1942,
"op": "SWAP3"
},
{
"pc": 1943,
"op": "POP"
},
{
"pc": 1944,
"op": "POP"
},
{
"pc": 1945,
"op": "DUP2"
},
{
"pc": 1946,
"op": "SWAP1"
},
{
"pc": 1947,
"op": "SSTORE"
},
{
"pc": 1948,
"op": "POP"
},
{
"pc": 1949,
"op": "TIMESTAMP"
},
{
"pc": 1950,
"op": "PUSH1",
"arg": "0x0b"
},
{
"pc": 1952,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1954,
"op": "POP"
},
{
"pc": 1955,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1957,
"op": "CALLER"
},
{
"pc": 1958,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1979,
"op": "AND"
},
{
"pc": 1980,
"op": "DUP2"
},
{
"pc": 1981,
"op": "MSTORE"
},
{
"pc": 1982,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1984,
"op": "ADD"
},
{
"pc": 1985,
"op": "SWAP1"
},
{
"pc": 1986,
"op": "DUP2"
},
{
"pc": 1987,
"op": "MSTORE"
},
{
"pc": 1988,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1990,
"op": "ADD"
},
{
"pc": 1991,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1993,
"op": "SHA3"
},
{
"pc": 1994,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1996,
"op": "POP"
},
{
"pc": 1997,
"op": "DUP2"
},
{
"pc": 1998,
"op": "SWAP1"
},
{
"pc": 1999,
"op": "SSTORE"
},
{
"pc": 2000,
"op": "POP"
},
{
"pc": 2001,
"op": "JUMPDEST"
},
{
"pc": 2002,
"op": "JUMPDEST"
},
{
"pc": 2003,
"op": "JUMP"
}
],
"f7d4": [
{
"pc": 2004,
"op": "JUMPDEST"
},
{
"pc": 2005,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 2007,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2009,
"op": "POP"
},
{
"pc": 2010,
"op": "SLOAD"
},
{
"pc": 2011,
"op": "PUSH1",
"arg": "0x0b"
},
{
"pc": 2013,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2015,
"op": "POP"
},
{
"pc": 2016,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2018,
"op": "CALLER"
},
{
"pc": 2019,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2040,
"op": "AND"
},
{
"pc": 2041,
"op": "DUP2"
},
{
"pc": 2042,
"op": "MSTORE"
},
{
"pc": 2043,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2045,
"op": "ADD"
},
{
"pc": 2046,
"op": "SWAP1"
},
{
"pc": 2047,
"op": "DUP2"
},
{
"pc": 2048,
"op": "MSTORE"
},
{
"pc": 2049,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2051,
"op": "ADD"
},
{
"pc": 2052,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2054,
"op": "SHA3"
},
{
"pc": 2055,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2057,
"op": "POP"
},
{
"pc": 2058,
"op": "SLOAD"
},
{
"pc": 2059,
"op": "TIMESTAMP"
},
{
"pc": 2060,
"op": "SUB"
},
{
"pc": 2061,
"op": "LT"
},
{
"pc": 2062,
"op": "ISZERO"
},
{
"pc": 2063,
"op": "ISZERO"
},
{
"pc": 2064,
"op": "PUSH2",
"arg": "0x0969"
},
{
"pc": 2067,
"op": "JUMPI"
},
{
"pc": 2068,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2070,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2072,
"op": "POP"
},
{
"pc": 2073,
"op": "SLOAD"
},
{
"pc": 2074,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 2076,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2078,
"op": "POP"
},
{
"pc": 2079,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2081,
"op": "CALLER"
},
{
"pc": 2082,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2103,
"op": "AND"
},
{
"pc": 2104,
"op": "DUP2"
},
{
"pc": 2105,
"op": "MSTORE"
},
{
"pc": 2106,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2108,
"op": "ADD"
},
{
"pc": 2109,
"op": "SWAP1"
},
{
"pc": 2110,
"op": "DUP2"
},
{
"pc": 2111,
"op": "MSTORE"
},
{
"pc": 2112,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2114,
"op": "ADD"
},
{
"pc": 2115,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2117,
"op": "SHA3"
},
{
"pc": 2118,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2120,
"op": "POP"
},
{
"pc": 2121,
"op": "SLOAD"
},
{
"pc": 2122,
"op": "ADD"
},
{
"pc": 2123,
"op": "ADDRESS"
},
{
"pc": 2124,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2145,
"op": "AND"
},
{
"pc": 2146,
"op": "BALANCE"
},
{
"pc": 2147,
"op": "GT"
},
{
"pc": 2148,
"op": "ISZERO"
},
{
"pc": 2149,
"op": "PUSH2",
"arg": "0x0968"
},
{
"pc": 2152,
"op": "JUMPI"
},
{
"pc": 2153,
"op": "CALLER"
},
{
"pc": 2154,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2175,
"op": "AND"
},
{
"pc": 2176,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2178,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2180,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2182,
"op": "POP"
},
{
"pc": 2183,
"op": "SLOAD"
},
{
"pc": 2184,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 2186,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2188,
"op": "POP"
},
{
"pc": 2189,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2191,
"op": "CALLER"
},
{
"pc": 2192,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2213,
"op": "AND"
},
{
"pc": 2214,
"op": "DUP2"
},
{
"pc": 2215,
"op": "MSTORE"
},
{
"pc": 2216,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2218,
"op": "ADD"
},
{
"pc": 2219,
"op": "SWAP1"
},
{
"pc": 2220,
"op": "DUP2"
},
{
"pc": 2221,
"op": "MSTORE"
},
{
"pc": 2222,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2224,
"op": "ADD"
},
{
"pc": 2225,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2227,
"op": "SHA3"
},
{
"pc": 2228,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2230,
"op": "POP"
},
{
"pc": 2231,
"op": "SLOAD"
},
{
"pc": 2232,
"op": "ADD"
},
{
"pc": 2233,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2235,
"op": "MLOAD"
},
{
"pc": 2236,
"op": "DUP1"
},
{
"pc": 2237,
"op": "SWAP1"
},
{
"pc": 2238,
"op": "POP"
},
{
"pc": 2239,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2241,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2243,
"op": "MLOAD"
},
{
"pc": 2244,
"op": "DUP1"
},
{
"pc": 2245,
"op": "DUP4"
},
{
"pc": 2246,
"op": "SUB"
},
{
"pc": 2247,
"op": "DUP2"
},
{
"pc": 2248,
"op": "DUP6"
},
{
"pc": 2249,
"op": "DUP9"
},
{
"pc": 2250,
"op": "DUP9"
},
{
"pc": 2251,
"op": "CALL"
},
{
"pc": 2252,
"op": "SWAP4"
},
{
"pc": 2253,
"op": "POP"
},
{
"pc": 2254,
"op": "POP"
},
{
"pc": 2255,
"op": "POP"
},
{
"pc": 2256,
"op": "POP"
},
{
"pc": 2257,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2259,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2261,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2264,
"op": "EXP"
},
{
"pc": 2265,
"op": "DUP2"
},
{
"pc": 2266,
"op": "SLOAD"
},
{
"pc": 2267,
"op": "DUP2"
},
{
"pc": 2268,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2270,
"op": "MUL"
},
{
"pc": 2271,
"op": "NOT"
},
{
"pc": 2272,
"op": "AND"
},
{
"pc": 2273,
"op": "SWAP1"
},
{
"pc": 2274,
"op": "DUP4"
},
{
"pc": 2275,
"op": "MUL"
},
{
"pc": 2276,
"op": "OR"
},
{
"pc": 2277,
"op": "SWAP1"
},
{
"pc": 2278,
"op": "SSTORE"
},
{
"pc": 2279,
"op": "POP"
},
{
"pc": 2280,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2282,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2284,
"op": "SWAP1"
},
{
"pc": 2285,
"op": "SLOAD"
},
{
"pc": 2286,
"op": "SWAP1"
},
{
"pc": 2287,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2290,
"op": "EXP"
},
{
"pc": 2291,
"op": "SWAP1"
},
{
"pc": 2292,
"op": "DIV"
},
{
"pc": 2293,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2295,
"op": "AND"
},
{
"pc": 2296,
"op": "ISZERO"
},
{
"pc": 2297,
"op": "PUSH2",
"arg": "0x0967"
},
{
"pc": 2300,
"op": "JUMPI"
},
{
"pc": 2301,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2303,
"op": "PUSH1",
"arg": "0x0d"
},
{
"pc": 2305,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2307,
"op": "POP"
},
{
"pc": 2308,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2310,
"op": "CALLER"
},
{
"pc": 2311,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2332,
"op": "AND"
},
{
"pc": 2333,
"op": "DUP2"
},
{
"pc": 2334,
"op": "MSTORE"
},
{
"pc": 2335,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2337,
"op": "ADD"
},
{
"pc": 2338,
"op": "SWAP1"
},
{
"pc": 2339,
"op": "DUP2"
},
{
"pc": 2340,
"op": "MSTORE"
},
{
"pc": 2341,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2343,
"op": "ADD"
},
{
"pc": 2344,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2346,
"op": "SHA3"
},
{
"pc": 2347,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2349,
"op": "POP"
},
{
"pc": 2350,
"op": "DUP2"
},
{
"pc": 2351,
"op": "SWAP1"
},
{
"pc": 2352,
"op": "SSTORE"
},
{
"pc": 2353,
"op": "POP"
},
{
"pc": 2354,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2356,
"op": "PUSH1",
"arg": "0x0a"
},
{
"pc": 2358,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2360,
"op": "POP"
},
{
"pc": 2361,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2363,
"op": "CALLER"
},
{
"pc": 2364,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2385,
"op": "AND"
},
{
"pc": 2386,
"op": "DUP2"
},
{
"pc": 2387,
"op": "MSTORE"
},
{
"pc": 2388,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2390,
"op": "ADD"
},
{
"pc": 2391,
"op": "SWAP1"
},
{
"pc": 2392,
"op": "DUP2"
},
{
"pc": 2393,
"op": "MSTORE"
},
{
"pc": 2394,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2396,
"op": "ADD"
},
{
"pc": 2397,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2399,
"op": "SHA3"
},
{
"pc": 2400,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2402,
"op": "POP"
},
{
"pc": 2403,
"op": "DUP2"
},
{
"pc": 2404,
"op": "SWAP1"
},
{
"pc": 2405,
"op": "SSTORE"
},
{
"pc": 2406,
"op": "POP"
},
{
"pc": 2407,
"op": "JUMPDEST"
},
{
"pc": 2408,
"op": "JUMPDEST"
},
{
"pc": 2409,
"op": "JUMPDEST"
},
{
"pc": 2410,
"op": "JUMPDEST"
},
{
"pc": 2411,
"op": "JUMP"
}
],
"f96c": [
{
"pc": 2412,
"op": "JUMPDEST"
},
{
"pc": 2413,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 2415,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2417,
"op": "POP"
},
{
"pc": 2418,
"op": "SLOAD"
},
{
"pc": 2419,
"op": "PUSH1",
"arg": "0x0b"
},
{
"pc": 2421,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2423,
"op": "POP"
},
{
"pc": 2424,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2426,
"op": "CALLER"
},
{
"pc": 2427,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2448,
"op": "AND"
},
{
"pc": 2449,
"op": "DUP2"
},
{
"pc": 2450,
"op": "MSTORE"
},
{
"pc": 2451,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2453,
"op": "ADD"
},
{
"pc": 2454,
"op": "SWAP1"
},
{
"pc": 2455,
"op": "DUP2"
},
{
"pc": 2456,
"op": "MSTORE"
},
{
"pc": 2457,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2459,
"op": "ADD"
},
{
"pc": 2460,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2462,
"op": "SHA3"
},
{
"pc": 2463,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2465,
"op": "POP"
},
{
"pc": 2466,
"op": "SLOAD"
},
{
"pc": 2467,
"op": "TIMESTAMP"
},
{
"pc": 2468,
"op": "SUB"
},
{
"pc": 2469,
"op": "LT"
},
{
"pc": 2470,
"op": "ISZERO"
},
{
"pc": 2471,
"op": "ISZERO"
},
{
"pc": 2472,
"op": "PUSH2",
"arg": "0x0adc"
},
{
"pc": 2475,
"op": "JUMPI"
},
{
"pc": 2476,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2478,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2480,
"op": "POP"
},
{
"pc": 2481,
"op": "SLOAD"
},
{
"pc": 2482,
"op": "ADDRESS"
},
{
"pc": 2483,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2504,
"op": "AND"
},
{
"pc": 2505,
"op": "BALANCE"
},
{
"pc": 2506,
"op": "GT"
},
{
"pc": 2507,
"op": "ISZERO"
},
{
"pc": 2508,
"op": "PUSH2",
"arg": "0x0adb"
},
{
"pc": 2511,
"op": "JUMPI"
},
{
"pc": 2512,
"op": "CALLER"
},
{
"pc": 2513,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2534,
"op": "AND"
},
{
"pc": 2535,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2537,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 2539,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2541,
"op": "POP"
},
{
"pc": 2542,
"op": "SLOAD"
},
{
"pc": 2543,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2545,
"op": "MLOAD"
},
{
"pc": 2546,
"op": "DUP1"
},
{
"pc": 2547,
"op": "SWAP1"
},
{
"pc": 2548,
"op": "POP"
},
{
"pc": 2549,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2551,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 2553,
"op": "MLOAD"
},
{
"pc": 2554,
"op": "DUP1"
},
{
"pc": 2555,
"op": "DUP4"
},
{
"pc": 2556,
"op": "SUB"
},
{
"pc": 2557,
"op": "DUP2"
},
{
"pc": 2558,
"op": "DUP6"
},
{
"pc": 2559,
"op": "DUP9"
},
{
"pc": 2560,
"op": "DUP9"
},
{
"pc": 2561,
"op": "CALL"
},
{
"pc": 2562,
"op": "SWAP4"
},
{
"pc": 2563,
"op": "POP"
},
{
"pc": 2564,
"op": "POP"
},
{
"pc": 2565,
"op": "POP"
},
{
"pc": 2566,
"op": "POP"
},
{
"pc": 2567,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2569,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2571,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2574,
"op": "EXP"
},
{
"pc": 2575,
"op": "DUP2"
},
{
"pc": 2576,
"op": "SLOAD"
},
{
"pc": 2577,
"op": "DUP2"
},
{
"pc": 2578,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2580,
"op": "MUL"
},
{
"pc": 2581,
"op": "NOT"
},
{
"pc": 2582,
"op": "AND"
},
{
"pc": 2583,
"op": "SWAP1"
},
{
"pc": 2584,
"op": "DUP4"
},
{
"pc": 2585,
"op": "MUL"
},
{
"pc": 2586,
"op": "OR"
},
{
"pc": 2587,
"op": "SWAP1"
},
{
"pc": 2588,
"op": "SSTORE"
},
{
"pc": 2589,
"op": "POP"
},
{
"pc": 2590,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2592,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2594,
"op": "SWAP1"
},
{
"pc": 2595,
"op": "SLOAD"
},
{
"pc": 2596,
"op": "SWAP1"
},
{
"pc": 2597,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 2600,
"op": "EXP"
},
{
"pc": 2601,
"op": "SWAP1"
},
{
"pc": 2602,
"op": "DIV"
},
{
"pc": 2603,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 2605,
"op": "AND"
},
{
"pc": 2606,
"op": "ISZERO"
},
{
"pc": 2607,
"op": "PUSH2",
"arg": "0x0ada"
},
{
"pc": 2610,
"op": "JUMPI"
},
{
"pc": 2611,
"op": "TIMESTAMP"
},
{
"pc": 2612,
"op": "PUSH1",
"arg": "0x0b"
},
{
"pc": 2614,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2616,
"op": "POP"
},
{
"pc": 2617,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2619,
"op": "CALLER"
},
{
"pc": 2620,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2641,
"op": "AND"
},
{
"pc": 2642,
"op": "DUP2"
},
{
"pc": 2643,
"op": "MSTORE"
},
{
"pc": 2644,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2646,
"op": "ADD"
},
{
"pc": 2647,
"op": "SWAP1"
},
{
"pc": 2648,
"op": "DUP2"
},
{
"pc": 2649,
"op": "MSTORE"
},
{
"pc": 2650,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2652,
"op": "ADD"
},
{
"pc": 2653,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2655,
"op": "SHA3"
},
{
"pc": 2656,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2658,
"op": "POP"
},
{
"pc": 2659,
"op": "DUP2"
},
{
"pc": 2660,
"op": "SWAP1"
},
{
"pc": 2661,
"op": "SSTORE"
},
{
"pc": 2662,
"op": "POP"
},
{
"pc": 2663,
"op": "PUSH1",
"arg": "0x0d"
},
{
"pc": 2665,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2667,
"op": "POP"
},
{
"pc": 2668,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2670,
"op": "CALLER"
},
{
"pc": 2671,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2692,
"op": "AND"
},
{
"pc": 2693,
"op": "DUP2"
},
{
"pc": 2694,
"op": "MSTORE"
},
{
"pc": 2695,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2697,
"op": "ADD"
},
{
"pc": 2698,
"op": "SWAP1"
},
{
"pc": 2699,
"op": "DUP2"
},
{
"pc": 2700,
"op": "MSTORE"
},
{
"pc": 2701,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2703,
"op": "ADD"
},
{
"pc": 2704,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2706,
"op": "SHA3"
},
{
"pc": 2707,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2709,
"op": "POP"
},
{
"pc": 2710,
"op": "SLOAD"
},
{
"pc": 2711,
"op": "PUSH1",
"arg": "0x0d"
},
{
"pc": 2713,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2715,
"op": "POP"
},
{
"pc": 2716,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2718,
"op": "CALLER"
},
{
"pc": 2719,
"op": "PUSH20",
"arg": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2740,
"op": "AND"
},
{
"pc": 2741,
"op": "DUP2"
},
{
"pc": 2742,
"op": "MSTORE"
},
{
"pc": 2743,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2745,
"op": "ADD"
},
{
"pc": 2746,
"op": "SWAP1"
},
{
"pc": 2747,
"op": "DUP2"
},
{
"pc": 2748,
"op": "MSTORE"
},
{
"pc": 2749,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 2751,
"op": "ADD"
},
{
"pc": 2752,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2754,
"op": "SHA3"
},
{
"pc": 2755,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 2757,
"op": "DUP3"
},
{
"pc": 2758,
"op": "DUP3"
},
{
"pc": 2759,
"op": "DUP3"
},
{
"pc": 2760,
"op": "POP"
},
{
"pc": 2761,
"op": "SLOAD"
},
{
"pc": 2762,
"op": "SUB"
},
{
"pc": 2763,
"op": "SWAP3"
},
{
"pc": 2764,
"op": "POP"
},
{
"pc": 2765,
"op": "POP"
},
{
"pc": 2766,
"op": "DUP2"
},
{
"pc": 2767,
"op": "SWAP1"
},
{
"pc": 2768,
"op": "SSTORE"
},
{
"pc": 2769,
"op": "POP"
},
{
"pc": 2770,
"op": "PUSH2",
"arg": "0x0ad9"
},
{
"pc": 2773,
"op": "PUSH2",
"arg": "0x05ea"
},
{
"pc": 2776,
"op": "JUMP"
},
{
"pc": 2777,
"op": "JUMPDEST"
},
{
"pc": 2778,
"op": "JUMPDEST"
},
{
"pc": 2779,
"op": "JUMPDEST"
},
{
"pc": 2780,
"op": "JUMPDEST"
}
]
}
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 1ms:
[
{
"pc": 0,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 2,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 4,
"op": "MSTORE"
},
{
"pc": 5,
"op": "CALLDATASIZE"
},
{
"pc": 6,
"op": "ISZERO"
},
{
"pc": 7,
"op": "PUSH2",
"arg": "0x0103"
},
{
"pc": 10,
"op": "JUMPI"
},
{
"pc": 11,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 13,
"op": "CALLDATALOAD"
},
{
"pc": 14,
"op": "PUSH29",
"arg": "0x0100000000000000000000000000000000000000000000000000000000"
},
{
"pc": 44,
"op": "SWAP1"
},
{
"pc": 45,
"op": "DIV"
},
{
"pc": 46,
"op": "DUP1"
},
{
"pc": 47,
"op": "PUSH4",
"arg": "0x0de9cacd"
},
{
"pc": 52,
"op": "EQ"
},
{
"pc": 53,
"op": "PUSH2",
"arg": "0x0105"
},
{
"pc": 56,
"op": "JUMPI"
},
{
"pc": 57,
"op": "DUP1"
},
{
"pc": 58,
"op": "PUSH4",
"arg": "0x12065fe0"
},
{
"pc": 63,
"op": "EQ"
},
{
"pc": 64,
"op": "PUSH2",
"arg": "0x0112"
},
{
"pc": 67,
"op": "JUMPI"
},
{
"pc": 68,
"op": "DUP1"
},
{
"pc": 69,
"op": "PUSH4",
"arg": "0x13060833"
},
{
"pc": 74,
"op": "EQ"
},
{
"pc": 75,
"op": "PUSH2",
"arg": "0x0133"
},
{
"pc": 78,
"op": "JUMPI"
},
{
"pc": 79,
"op": "DUP1"
},
{
"pc": 80,
"op": "PUSH4",
"arg": "0x27e235e3"
},
{
"pc": 85,
"op": "EQ"
},
{
"pc": 86,
"op": "PUSH2",
"arg": "0x015a"
},
{
"pc": 89,
"op": "JUMPI"
},
{
"pc": 90,
"op": "DUP1"
},
{
"pc": 91,
"op": "PUSH4",
"arg": "0x3ccfd60b"
},
{
"pc": 96,
"op": "EQ"
},
{
"pc": 97,
"op": "PUSH2",
"arg": "0x0181"
},
{
"pc": 100,
"op": "JUMPI"
},
{
"pc": 101,
"op": "DUP1"
},
{
"pc": 102,
"op": "PUSH4",
"arg": "0x481c6a75"
},
{
"pc": 107,
"op": "EQ"
},
{
"pc": 108,
"op": "PUSH2",
"arg": "0x018e"
},
{
"pc": 111,
"op": "JUMPI"
},
{
"pc": 112,
"op": "DUP1"
},
{
"pc": 113,
"op": "PUSH4",
"arg": "0x4afdd0e7"
},
{
"pc": 118,
"op": "EQ"
},
{
"pc": 119,
"op": "PUSH2",
"arg": "0x01c5"
},
{
"pc": 122,
"op": "JUMPI"
},
{
"pc": 123,
"op": "DUP1"
},
{
"pc": 124,
"op": "PUSH4",
"arg": "0x5294010f"
},
{
"pc": 129,
"op": "EQ"
},
{
"pc": 130,
"op": "PUSH2",
"arg": "0x01e6"
},
{
"pc": 133,
"op": "JUMPI"
},
{
"pc": 134,
"op": "DUP1"
},
{
"pc": 135,
"op": "PUSH4",
"arg": "0x679dffb4"
},
{
"pc": 140,
"op": "EQ"
},
{
"pc": 141,
"op": "PUSH2",
"arg": "0x0207"
},
{
"pc": 144,
"op": "JUMPI"
},
{
"pc": 145,
"op": "DUP1"
},
{
"pc": 146,
"op": "PUSH4",
"arg": "0x8351a0d4"
},
{
"pc": 151,
"op": "EQ"
},
{
"pc": 152,
"op": "PUSH2",
"arg": "0x0228"
},
{
"pc": 155,
"op": "JUMPI"
},
{
"pc": 156,
"op": "DUP1"
},
{
"pc": 157,
"op": "PUSH4",
"arg": "0x8b3aa967"
},
{
"pc": 162,
"op": "EQ"
},
{
"pc": 163,
"op": "PUSH2",
"arg": "0x0249"
},
{
"pc": 166,
"op": "JUMPI"
},
{
"pc": 167,
"op": "DUP1"
},
{
"pc": 168,
"op": "PUSH4",
"arg": "0x959499b6"
},
{
"pc": 173,
"op": "EQ"
},
{
"pc": 174,
"op": "PUSH2",
"arg": "0x026a"
},
{
"pc": 177,
"op": "JUMPI"
},
{
"pc": 178,
"op": "DUP1"
},
{
"pc": 179,
"op": "PUSH4",
"arg": "0x978bbdb9"
},
{
"pc": 184,
"op": "EQ"
},
{
"pc": 185,
"op": "PUSH2",
"arg": "0x0277"
},
{
"pc": 188,
"op": "JUMPI"
},
{
"pc": 189,
"op": "DUP1"
},
{
"pc": 190,
"op": "PUSH4",
"arg": "0xbbd4e8c9"
},
{
"pc": 195,
"op": "EQ"
},
{
"pc": 196,
"op": "PUSH2",
"arg": "0x0298"
},
{
"pc": 199,
"op": "JUMPI"
},
{
"pc": 200,
"op": "DUP1"
},
{
"pc": 201,
"op": "PUSH4",
"arg": "0xd0e30db0"
},
{
"pc": 206,
"op": "EQ"
},
{
"pc": 207,
"op": "PUSH2",
"arg": "0x02b9"
},
{
"pc": 210,
"op": "JUMPI"
},
{
"pc": 211,
"op": "DUP1"
},
{
"pc": 212,
"op": "PUSH4",
"arg": "0xd9607482"
},
{
"pc": 217,
"op": "EQ"
},
{
"pc": 218,
"op": "PUSH2",
"arg": "0x02c6"
},
{
"pc": 221,
"op": "JUMPI"
},
{
"pc": 222,
"op": "DUP1"
},
{
"pc": 223,
"op": "PUSH4",
"arg": "0xea362937"
},
{
"pc": 228,
"op": "EQ"
},
{
"pc": 229,
"op": "PUSH2",
"arg": "0x02e7"
},
{
"pc": 232,
"op": "JUMPI"
},
{
"pc": 233,
"op": "DUP1"
},
{
"pc": 234,
"op": "PUSH4",
"arg": "0xedf26d9b"
},
{
"pc": 239,
"op": "EQ"
},
{
"pc": 240,
"op": "PUSH2",
"arg": "0x0308"
},
{
"pc": 243,
"op": "JUMPI"
},
{
"pc": 244,
"op": "DUP1"
},
{
"pc": 245,
"op": "PUSH4",
"arg": "0xfc7e286d"
},
{
"pc": 250,
"op": "EQ"
},
{
"pc": 251,
"op": "PUSH2",
"arg": "0x0345"
},
{
"pc": 254,
"op": "JUMPI"
},
{
"pc": 255,
"op": "PUSH2",
"arg": "0x0103"
},
{
"pc": 258,
"op": "JUMP"
},
{
"pc": 259,
"op": "JUMPDEST"
},
{
"pc": 260,
"op": "STOP"
},
{
"pc": 261,
"op": "JUMPDEST"
},
{
"pc": 262,
"op": "PUSH2",
"arg": "0x0110"
},
{
"pc": 265,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 267,
"op": "POP"
},
{
"pc": 268,
"op": "PUSH2",
"arg": "0x05ea"
},
{
"pc": 271,
"op": "JUMP"
},
{
"pc": 272,
"op": "JUMPDEST"
},
{
"pc": 273,
"op": "STOP"
},
{
"pc": 274,
"op": "JUMPDEST"
}
]
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 28ms:
{
"call2251": [
{
"pc": 2215,
"mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"stack": [
"(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"0x00",
"sload[0x02]",
"0x0a",
"0x00"
]
},
{
"pc": 2221,
"mstore": "mstore[(0x00 ADD 0x20)] = 0x0a",
"stack": [
"(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"0x00",
"sload[0x02]",
"(0x00 ADD 0x20)"
]
},
{
"pc": 2251,
"call": {
"gas": "0x00",
"to": "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"value": "(sload[0x02] ADD sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)])",
"inOffset": "mload[0x40]",
"inSize": "(mload[0x40] SUB mload[0x40])",
"outOffset": "mload[0x40]",
"outSize": "0x00"
},
"stackBefore": [
"(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"0x00",
"(sload[0x02] ADD sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)])",
"mload[0x40]"
]
}
],
"call2561": [
{
"pc": 2561,
"call": {
"gas": "0x00",
"to": "(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"value": "sload[0x02]",
"inOffset": "mload[0x40]",
"inSize": "(mload[0x40] SUB mload[0x40])",
"outOffset": "mload[0x40]",
"outSize": "0x00"
},
"stackBefore": [
"(caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"0x00",
"sload[0x02]",
"mload[0x40]"
]
}
],
"call1812": [
{
"pc": 1812,
"call": {
"gas": "0x00",
"to": "((((0x00 EXP 0x0100) DIV sload[0x09]) AND 0xffffffffffffffffffffffffffffffffffffffff) AND 0xffffffffffffffffffffffffffffffffffffffff)",
"value": "sload[0x01]",
"inOffset": "mload[0x40]",
"inSize": "(mload[0x40] SUB mload[0x40])",
"outOffset": "mload[0x40]",
"outSize": "0x00"
},
"stackBefore": [
"((((0x00 EXP 0x0100) DIV sload[0x09]) AND 0xffffffffffffffffffffffffffffffffffffffff) AND 0xffffffffffffffffffffffffffffffffffffffff)",
"0x00",
"sload[0x01]",
"mload[0x40]"
]
}
]
}
exec
/bin/bash -lc "sed -n '6380,6425p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"implementation_address": null,
"is_proxy": false,
"runtime_bytecode": {
"full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
"head": null,
"length": 5568,
"tail": null,
"truncated": false
},
"verified_source": false
},
"capability_graph": {
"address": "0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"block_number": null,
"chain_id": 1,
"codehash": "0xbf43ab865a7833ab42f9194a702d0d8f509b6b0233df29ada98c8613a8ca5f50",
"created_at": "2026-04-04T19:44:29.000000Z",
"graph_hash": "0x3ea70eaf6afa2caa4e1c4996d31461209c10c903d1f548df453d5fd67e52b254",
"graph_json": {
"edges": [
{
"from": "bb:0",
"to": "bb:259",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:261",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:57",
"type": "control_flow_fallthrough"
},
{
"from": "bb:57",
"to": "bb:274",
"type": "control_flow"
},
{
exec
/bin/bash -lc "sed -n '6930,6975p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
{
"from": "fn:0xd9607482",
"to": "bb:3929418039",
"type": "entry"
},
{
"from": "fn:0xea362937",
"to": "bb:3992087963",
"type": "entry"
},
{
"from": "fn:0xedf26d9b",
"to": "bb:4236126317",
"type": "entry"
},
{
"from": "bb:1578",
"to": "call:1812",
"type": "contains"
},
{
"from": "call:1812",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:2153",
"to": "call:2251",
"type": "contains"
},
{
"from": "call:2251",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:2512",
"to": "call:2561",
"type": "contains"
},
{
"from": "call:2561",
"to": "sink:call",
"type": "capability"
}
],
exec
/bin/bash -lc "rg -n 'compiler_json|solc|version' BYTECODE_BUNDLE.json | sed -n '1,80p'" in /tmp/codex-h9rar2qn
succeeded in 0ms:
6352: "version": "analysis_artifact_v1"
6360: "version": "analysis_artifact_v1"
6375: "compiler_json": {
7835: "version": "capability_graph_v1"
7839: "version": "capability_graph_v1"
exec
/bin/bash -lc "sed -n '6375,6388p' BYTECODE_BUNDLE.json" in /tmp/codex-h9rar2qn
succeeded in 0ms:
"compiler_json": {
"etherscan": {
"skipped": true
}
},
"implementation_address": null,
"is_proxy": false,
"runtime_bytecode": {
"full": "0x60606040523615610103576000357c0100000000000000000000000000000000000000000000000000000000900480630de9cacd1461010557806312065fe014610112578063130608331461013357806327e235e31461015a5780633ccfd60b14610181578063481c6a751461018e5780634afdd0e7146101c55780635294010f146101e6578063679dffb4146102075780638351a0d4146102285780638b3aa96714610249578063959499b61461026a578063978bbdb914610277578063bbd4e8c914610298578063d0e30db0146102b9578063d9607482146102c6578063ea362937146102e7578063edf26d9b14610308578063fc7e286d1461034557610103565b005b6101106004506105ea565b005b61011d60045061036c565b6040518082815260200191505060405180910390f35b61014460048035906020015061043a565b6040518082815260200191505060405180910390f35b61016b600480359060200150610404565b6040518082815260200191505060405180910390f35b61018c6004506107d4565b005b6101996004506103de565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d06004506103a8565b6040518082815260200191505060405180910390f35b6101f16004506103d5565b6040518082815260200191505060405180910390f35b61021260045061048d565b6040518082815260200191505060405180910390f35b6102336004506104c9565b6040518082815260200191505060405180910390f35b610254600450610505565b6040518082815260200191505060405180910390f35b61027560045061096c565b005b6102826004506103b1565b6040518082815260200191505060405180910390f35b6102a36004506103cc565b6040518082815260200191505060405180910390f35b6102c4600450610543565b005b6102d16004506103c3565b6040518082815260200191505060405180910390f35b6102f26004506103ba565b6040518082815260200191505060405180910390f35b610319600480359060200150610455565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61035660048035906020015061041f565b6040518082815260200191505060405180910390f35b6000600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506103a5565b90565b60036000505481565b60046000505481565b60056000505481565b60066000505481565b60076000505481565b60086000505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6000506020528060005260406000206000915090505481565b600b6000506020528060005260406000206000915090505481565b600d6000506020528060005260406000206000915090505481565b600e60005060205280600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506104c6565b90565b6000600c60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050549050610502565b90565b6000600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442039050610540565b90565b6007600081815054600101919050819055504260056000508190555033600e6000506000600760005054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555034600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828282505401925050819055506105e76105ea565b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505442031015156107d15760646004600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020402046001600050819055506001600050546064600360005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054020403600260005081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000600160005054604051809050600060405180830381858888f1935050505050600260005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540192505081905550600260005054600c60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282825054019250508190555042600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054420310151561096957600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054013073ffffffffffffffffffffffffffffffffffffffff16311115610968573373ffffffffffffffffffffffffffffffffffffffff166000600260005054600a60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505401604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610967576000600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055506000600a60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055505b5b5b5b565b600660005054600b60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050544203101515610adc576002600050543073ffffffffffffffffffffffffffffffffffffffff16311115610adb573373ffffffffffffffffffffffffffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1615610ada5742600b60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005081905550600d60005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600d60005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082828250540392505081905550610ad96105ea565b5b5b5b5b56",
"head": null,
"length": 5568,
"tail": null,
"truncated": false
},
exec
js_repl in /tmp/codex-h9rar2qn
succeeded in 5ms:
[
{
"pc": 1259,
"mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"stack": [
"0x00",
"0x0c",
"0x00"
]
},
{
"pc": 1265,
"mstore": "mstore[(0x00 ADD 0x20)] = 0x0c",
"stack": [
"0x00",
"(0x00 ADD 0x20)"
]
},
{
"pc": 1281,
"jump": "0x0502",
"stack": [
"sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)]"
]
},
{
"pc": 1284,
"jump": "?",
"stack": []
},
{
"pc": 1319,
"mstore": "mstore[0x00] = (caller AND 0xffffffffffffffffffffffffffffffffffffffff)",
"stack": [
"0x00",
"0x0b",
"0x00"
]
},
{
"pc": 1325,
"mstore": "mstore[(0x00 ADD 0x20)] = 0x0b",
"stack": [
"0x00",
"(0x00 ADD 0x20)"
]
},
{
"pc": 1343,
"jump": "0x0540",
"stack": [
"(sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)] SUB timestamp)"
]
},
{
"pc": 1346,
"jump": "sload[(((0x00 ADD 0x20) ADD 0x20) SHA3 0x00)]",
"stack": []
}
]
codex
{"no_findings":false,"summary":"Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).","findings":[{"severity":"high","category":"math","title":"Cooldown/lock check uses reversed subtraction, collapsing the wait period","exploit_scenario":"Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended.","recommendation":"Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.","evidence":"At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.","locations":["pc:0x621","pc:0x622","pc:0x625","pc:0x626","pc:0x7fb","pc:0x80c","pc:0x80f","pc:0x973","pc:0x9a4","pc:0x9a7","selector:0x3ccfd60b","selector:0x959499b6","selector:0x8351a0d4"]},{"severity":"medium","category":"other","title":"Fallback/unknown-selector path silently accepts ETH without crediting sender","exploit_scenario":"A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective.","recommendation":"Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.","evidence":"`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).","locations":["pc:0x5","pc:0x7","pc:0xff","pc:0x103","pc:0x104","pc:0x5a4","selector:0xd0e30db0","selector:0x0de9cacd"]},{"severity":"low","category":"other","title":"ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients","exploit_scenario":"The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users.","recommendation":"Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.","evidence":"Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.","locations":["pc:0x8cb","pc:0xa01","selector:0x3ccfd60b","selector:0x959499b6"]}]}
tokens used
86,049
{
"codex": {
"ran_at": "2026-04-04T19:52:08.679880+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 5568,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).",
"raw_final": {
"summary": "Bytecode review found one high-confidence arithmetic/accounting issue and two lower-confidence ETH-transfer hazards. No proxy/delegatecall pattern was present (`is_proxy=false`, `delegatecall_count=0`).",
"findings": [
{
"title": "Cooldown/lock check uses reversed subtraction, collapsing the wait period",
"category": "math",
"evidence": "At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.",
"severity": "high",
"locations": [
"pc:0x621",
"pc:0x622",
"pc:0x625",
"pc:0x626",
"pc:0x7fb",
"pc:0x80c",
"pc:0x80f",
"pc:0x973",
"pc:0x9a4",
"pc:0x9a7",
"selector:0x3ccfd60b",
"selector:0x959499b6",
"selector:0x8351a0d4"
],
"recommendation": "Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.",
"exploit_scenario": "Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended."
},
{
"title": "Fallback/unknown-selector path silently accepts ETH without crediting sender",
"category": "other",
"evidence": "`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).",
"severity": "medium",
"locations": [
"pc:0x5",
"pc:0x7",
"pc:0xff",
"pc:0x103",
"pc:0x104",
"pc:0x5a4",
"selector:0xd0e30db0",
"selector:0x0de9cacd"
],
"recommendation": "Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.",
"exploit_scenario": "A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective."
},
{
"title": "ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients",
"category": "other",
"evidence": "Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.",
"severity": "low",
"locations": [
"pc:0x8cb",
"pc:0xa01",
"selector:0x3ccfd60b",
"selector:0x959499b6"
],
"recommendation": "Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.",
"exploit_scenario": "The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x0103 0000000a: JUMPI 0000000b: PUSH1 0x00 0000000d: CALLDATALOAD 0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002c: SWAP1 0000002d: DIV 0000002e: DUP1 0000002f: PUSH4 0x0de9cacd 00000034: EQ 00000035: PUSH2 0x0105 00000038: JUMPI 00000039: DUP1 0000003a: PUSH4 0x12065fe0 0000003f: EQ 00000040: PUSH2 0x0112 00000043: JUMPI 00000044: DUP1 00000045: PUSH4 0x13060833 0000004a: EQ 0000004b: PUSH2 0x0133 0000004e: JUMPI 0000004f: DUP1 00000050: PUSH4 0x27e235e3 00000055: EQ 00000056: PUSH2 0x015a 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0x3ccfd60b 00000060: EQ 00000061: PUSH2 0x0181 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x481c6a75 0000006b: EQ 0000006c: PUSH2 0x018e 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x4afdd0e7 00000076: EQ 00000077: PUSH2 0x01c5 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x5294010f 00000081: EQ 00000082: PUSH2 0x01e6 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x679dffb4 0000008c: EQ 0000008d: PUSH2 0x0207 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0x8351a0d4 00000097: EQ 00000098: PUSH2 0x0228 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0x8b3aa967 000000a2: EQ 000000a3: PUSH2 0x0249 000000a6: JUMPI 000000a7: DUP1 000000a8: PUSH4 0x959499b6 000000ad: EQ 000000ae: PUSH2 0x026a 000000b1: JUMPI 000000b2: DUP1 000000b3: PUSH4 0x978bbdb9 000000b8: EQ 000000b9: PUSH2 0x0277 000000bc: JUMPI 000000bd: DUP1 000000be: PUSH4 0xbbd4e8c9 000000c3: EQ 000000c4: PUSH2 0x0298 000000c7: JUMPI 000000c8: DUP1 000000c9: PUSH4 0xd0e30db0 000000ce: EQ 000000cf: PUSH2 0x02b9 000000d2: JUMPI 000000d3: DUP1 000000d4: PUSH4 0xd9607482 000000d9: EQ 000000da: PUSH2 0x02c6 000000dd: JUMPI 000000de: DUP1 000000df: PUSH4 0xea362937 000000e4: EQ 000000e5: PUSH2 0x02e7 000000e8: JUMPI 000000e9: DUP1 000000ea: PUSH4 0xedf26d9b 000000ef: EQ 000000f0: PUSH2 0x0308 000000f3: JUMPI 000000f4: DUP1 000000f5: PUSH4 0xfc7e286d 000000fa: EQ 000000fb: PUSH2 0x0345 000000fe: JUMPI 000000ff: PUSH2 0x0103 00000102: JUMP 00000103: JUMPDEST 00000104: STOP 00000105: JUMPDEST 00000106: PUSH2 0x0110 00000109: PUSH1 0x04 0000010b: POP 0000010c: PUSH2 0x05ea 0000010f: JUMP 00000110: JUMPDEST 00000111: STOP 00000112: JUMPDEST 00000113: PUSH2 0x011d 00000116: PUSH1 0x04 00000118: POP 00000119: PUSH2 0x036c 0000011c: JUMP 0000011d: JUMPDEST 0000011e: PUSH1 0x40 00000120: MLOAD 00000121: DUP1 00000122: DUP3 00000123: DUP2 00000124: MSTORE 00000125: PUSH1 0x20 00000127: ADD 00000128: SWAP2 00000129: POP 0000012a: POP 0000012b: PUSH1 0x40 0000012d: MLOAD 0000012e: DUP1 0000012f: SWAP2 00000130: SUB 00000131: SWAP1 00000132: RETURN 00000133: JUMPDEST 00000134: PUSH2 0x0144 00000137: PUSH1 0x04 00000139: DUP1 0000013a: CALLDATALOAD 0000013b: SWAP1 0000013c: PUSH1 0x20 0000013e: ADD 0000013f: POP 00000140: PUSH2 0x043a 00000143: JUMP 00000144: JUMPDEST 00000145: PUSH1 0x40 00000147: MLOAD 00000148: DUP1 00000149: DUP3 0000014a: DUP2 0000014b: MSTORE 0000014c: PUSH1 0x20 0000014e: ADD 0000014f: SWAP2 00000150: POP 00000151: POP 00000152: PUSH1 0x40 00000154: MLOAD 00000155: DUP1 00000156: SWAP2 00000157: SUB 00000158: SWAP1 00000159: RETURN 0000015a: JUMPDEST 0000015b: PUSH2 0x016b 0000015e: PUSH1 0x04 00000160: DUP1 00000161: CALLDATALOAD 00000162: SWAP1 00000163: PUSH1 0x20 00000165: ADD 00000166: POP 00000167: PUSH2 0x0404 0000016a: JUMP 0000016b: JUMPDEST 0000016c: PUSH1 0x40 0000016e: MLOAD 0000016f: DUP1 00000170: DUP3 00000171: DUP2 00000172: MSTORE 00000173: PUSH1 0x20 00000175: ADD 00000176: SWAP2 00000177: POP 00000178: POP 00000179: PUSH1 0x40 0000017b: MLOAD 0000017c: DUP1 0000017d: SWAP2 0000017e: SUB 0000017f: SWAP1 00000180: RETURN 00000181: JUMPDEST 00000182: PUSH2 0x018c 00000185: PUSH1 0x04 00000187: POP 00000188: PUSH2 0x07d4 0000018b: JUMP 0000018c: JUMPDEST 0000018d: STOP 0000018e: JUMPDEST 0000018f: PUSH2 0x0199 00000192: PUSH1 0x04 00000194: POP 00000195: PUSH2 0x03de 00000198: JUMP 00000199: JUMPDEST 0000019a: PUSH1 0x40 0000019c: MLOAD 0000019d: DUP1 0000019e: DUP3 0000019f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001b4: AND 000001b5: DUP2 000001b6: MSTORE 000001b7: PUSH1 0x20 000001b9: ADD 000001ba: SWAP2 000001bb: POP 000001bc: POP 000001bd: PUSH1 0x40 000001bf: MLOAD 000001c0: DUP1 000001c1: SWAP2 000001c2: SUB 000001c3: SWAP1 000001c4: RETURN 000001c5: JUMPDEST 000001c6: PUSH2 0x01d0 000001c9: PUSH1 0x04 000001cb: POP 000001cc: PUSH2 0x03a8 000001cf: JUMP 000001d0: JUMPDEST 000001d1: PUSH1 0x40 000001d3: MLOAD 000001d4: DUP1 000001d5: DUP3 000001d6: DUP2 000001d7: MSTORE 000001d8: PUSH1 0x20 000001da: ADD 000001db: SWAP2 000001dc: POP 000001dd: POP 000001de: PUSH1 0x40 000001e0: MLOAD 000001e1: DUP1 000001e2: SWAP2 000001e3: SUB 000001e4: SWAP1 000001e5: RETURN 000001e6: JUMPDEST 000001e7: PUSH2 0x01f1 000001ea: PUSH1 0x04 000001ec: POP 000001ed: PUSH2 0x03d5 000001f0: JUMP 000001f1: JUMPDEST 000001f2: PUSH1 0x40 000001f4: MLOAD 000001f5: DUP1 000001f6: DUP3 000001f7: DUP2 000001f8: MSTORE 000001f9: PUSH1 0x20 000001fb: ADD 000001fc: SWAP2 000001fd: POP 000001fe: POP 000001ff: PUSH1 0x40 00000201: MLOAD 00000202: DUP1 00000203: SWAP2 00000204: SUB 00000205: SWAP1 00000206: RETURN 00000207: JUMPDEST 00000208: PUSH2 0x0212 0000020b: PUSH1 0x04 0000020d: POP 0000020e: PUSH2 0x048d 00000211: JUMP 00000212: JUMPDEST 00000213: PUSH1 0x40 00000215: MLOAD 00000216: DUP1 00000217: DUP3 00000218: DUP2 00000219: MSTORE 0000021a: PUSH1 0x20 0000021c: ADD 0000021d: SWAP2 0000021e: POP 0000021f: POP 00000220: PUSH1 0x40 00000222: MLOAD 00000223: DUP1 00000224: SWAP2 00000225: SUB 00000226: SWAP1 00000227: RETURN 00000228: JUMPDEST 00000229: PUSH2 0x0233 0000022c: PUSH1 0x04 0000022e: POP 0000022f: PUSH2 0x04c9 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH1 0x40 00000236: MLOAD 00000237: DUP1 00000238: DUP3 00000239: DUP2 0000023a: MSTORE 0000023b: PUSH1 0x20 0000023d: ADD 0000023e: SWAP2 0000023f: POP 00000240: POP 00000241: PUSH1 0x40 00000243: MLOAD 00000244: DUP1 00000245: SWAP2 00000246: SUB 00000247: SWAP1 00000248: RETURN 00000249: JUMPDEST 0000024a: PUSH2 0x0254 0000024d: PUSH1 0x04 0000024f: POP 00000250: PUSH2 0x0505 00000253: JUMP 00000254: JUMPDEST 00000255: PUSH1 0x40 00000257: MLOAD 00000258: DUP1 00000259: DUP3 0000025a: DUP2 0000025b: MSTORE 0000025c: PUSH1 0x20 0000025e: ADD 0000025f: SWAP2 00000260: POP 00000261: POP 00000262: PUSH1 0x40 00000264: MLOAD 00000265: DUP1 00000266: SWAP2 00000267: SUB 00000268: SWAP1 00000269: RETURN 0000026a: JUMPDEST 0000026b: PUSH2 0x0275 0000026e: PUSH1 0x04 00000270: POP 00000271: PUSH2 0x096c 00000274: JUMP 00000275: JUMPDEST 00000276: STOP 00000277: JUMPDEST 00000278: PUSH2 0x0282 0000027b: PUSH1 0x04 0000027d: POP 0000027e: PUSH2 0x03b1 00000281: JUMP 00000282: JUMPDEST 00000283: PUSH1 0x40 00000285: MLOAD 00000286: DUP1 00000287: DUP3 00000288: DUP2 00000289: MSTORE 0000028a: PUSH1 0x20 0000028c: ADD 0000028d: SWAP2 0000028e: POP 0000028f: POP 00000290: PUSH1 0x40 00000292: MLOAD 00000293: DUP1 00000294: SWAP2 00000295: SUB 00000296: SWAP1 00000297: RETURN 00000298: JUMPDEST 00000299: PUSH2 0x02a3 0000029c: PUSH1 0x04 0000029e: POP 0000029f: PUSH2 0x03cc 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH1 0x40 000002a6: MLOAD 000002a7: DUP1 000002a8: DUP3 000002a9: DUP2 000002aa: MSTORE 000002ab: PUSH1 0x20 000002ad: ADD 000002ae: SWAP2 000002af: POP 000002b0: POP 000002b1: PUSH1 0x40 000002b3: MLOAD 000002b4: DUP1 000002b5: SWAP2 000002b6: SUB 000002b7: SWAP1 000002b8: RETURN 000002b9: JUMPDEST 000002ba: PUSH2 0x02c4 000002bd: PUSH1 0x04 000002bf: POP 000002c0: PUSH2 0x0543 000002c3: JUMP 000002c4: JUMPDEST 000002c5: STOP 000002c6: JUMPDEST 000002c7: PUSH2 0x02d1 000002ca: PUSH1 0x04 000002cc: POP 000002cd: PUSH2 0x03c3 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH1 0x40 000002d4: MLOAD 000002d5: DUP1 000002d6: DUP3 000002d7: DUP2 000002d8: MSTORE 000002d9: PUSH1 0x20 000002db: ADD 000002dc: SWAP2 000002dd: POP 000002de: POP 000002df: PUSH1 0x40 000002e1: MLOAD 000002e2: DUP1 000002e3: SWAP2 000002e4: SUB 000002e5: SWAP1 000002e6: RETURN 000002e7: JUMPDEST 000002e8: PUSH2 0x02f2 000002eb: PUSH1 0x04 000002ed: POP 000002ee: PUSH2 0x03ba 000002f1: JUMP 000002f2: JUMPDEST 000002f3: PUSH1 0x40 000002f5: MLOAD 000002f6: DUP1 000002f7: DUP3 000002f8: DUP2 000002f9: MSTORE 000002fa: PUSH1 0x20 000002fc: ADD 000002fd: SWAP2 000002fe: POP 000002ff: POP 00000300: PUSH1 0x40 00000302: MLOAD 00000303: DUP1 00000304: SWAP2 00000305: SUB 00000306: SWAP1 00000307: RETURN 00000308: JUMPDEST 00000309: PUSH2 0x0319 0000030c: PUSH1 0x04 0000030e: DUP1 0000030f: CALLDATALOAD 00000310: SWAP1 00000311: PUSH1 0x20 00000313: ADD 00000314: POP 00000315: PUSH2 0x0455 00000318: JUMP 00000319: JUMPDEST 0000031a: PUSH1 0x40 0000031c: MLOAD 0000031d: DUP1 0000031e: DUP3 0000031f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000334: AND 00000335: DUP2 00000336: MSTORE 00000337: PUSH1 0x20 00000339: ADD 0000033a: SWAP2 0000033b: POP 0000033c: POP 0000033d: PUSH1 0x40 0000033f: MLOAD 00000340: DUP1 00000341: SWAP2 00000342: SUB 00000343: SWAP1 00000344: RETURN 00000345: JUMPDEST 00000346: PUSH2 0x0356 00000349: PUSH1 0x04 0000034b: DUP1 0000034c: CALLDATALOAD 0000034d: SWAP1 0000034e: PUSH1 0x20 00000350: ADD 00000351: POP 00000352: PUSH2 0x041f 00000355: JUMP 00000356: JUMPDEST 00000357: PUSH1 0x40 00000359: MLOAD 0000035a: DUP1 0000035b: DUP3 0000035c: DUP2 0000035d: MSTORE 0000035e: PUSH1 0x20 00000360: ADD 00000361: SWAP2 00000362: POP 00000363: POP 00000364: PUSH1 0x40 00000366: MLOAD 00000367: DUP1 00000368: SWAP2 00000369: SUB 0000036a: SWAP1 0000036b: RETURN 0000036c: JUMPDEST 0000036d: PUSH1 0x00 0000036f: PUSH1 0x0a 00000371: PUSH1 0x00 00000373: POP 00000374: PUSH1 0x00 00000376: CALLER 00000377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000038c: AND 0000038d: DUP2 0000038e: MSTORE 0000038f: PUSH1 0x20 00000391: ADD 00000392: SWAP1 00000393: DUP2 00000394: MSTORE 00000395: PUSH1 0x20 00000397: ADD 00000398: PUSH1 0x00 0000039a: KECCAK256 0000039b: PUSH1 0x00 0000039d: POP 0000039e: SLOAD 0000039f: SWAP1 000003a0: POP 000003a1: PUSH2 0x03a5 000003a4: JUMP 000003a5: JUMPDEST 000003a6: SWAP1 000003a7: JUMP 000003a8: JUMPDEST 000003a9: PUSH1 0x03 000003ab: PUSH1 0x00 000003ad: POP 000003ae: SLOAD 000003af: DUP2 000003b0: JUMP 000003b1: JUMPDEST 000003b2: PUSH1 0x04 000003b4: PUSH1 0x00 000003b6: POP 000003b7: SLOAD 000003b8: DUP2 000003b9: JUMP 000003ba: JUMPDEST 000003bb: PUSH1 0x05 000003bd: PUSH1 0x00 000003bf: POP 000003c0: SLOAD 000003c1: DUP2 000003c2: JUMP 000003c3: JUMPDEST 000003c4: PUSH1 0x06 000003c6: PUSH1 0x00 000003c8: POP 000003c9: SLOAD 000003ca: DUP2 000003cb: JUMP 000003cc: JUMPDEST 000003cd: PUSH1 0x07 000003cf: PUSH1 0x00 000003d1: POP 000003d2: SLOAD 000003d3: DUP2 000003d4: JUMP 000003d5: JUMPDEST 000003d6: PUSH1 0x08 000003d8: PUSH1 0x00 000003da: POP 000003db: SLOAD 000003dc: DUP2 000003dd: JUMP 000003de: JUMPDEST 000003df: PUSH1 0x09 000003e1: PUSH1 0x00 000003e3: SWAP1 000003e4: SLOAD 000003e5: SWAP1 000003e6: PUSH2 0x0100 000003e9: EXP 000003ea: SWAP1 000003eb: DIV 000003ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000401: AND 00000402: DUP2 00000403: JUMP 00000404: JUMPDEST 00000405: PUSH1 0x0a 00000407: PUSH1 0x00 00000409: POP 0000040a: PUSH1 0x20 0000040c: MSTORE 0000040d: DUP1 0000040e: PUSH1 0x00 00000410: MSTORE 00000411: PUSH1 0x40 00000413: PUSH1 0x00 00000415: KECCAK256 00000416: PUSH1 0x00 00000418: SWAP2 00000419: POP 0000041a: SWAP1 0000041b: POP 0000041c: SLOAD 0000041d: DUP2 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH1 0x0b 00000422: PUSH1 0x00 00000424: POP 00000425: PUSH1 0x20 00000427: MSTORE 00000428: DUP1 00000429: PUSH1 0x00 0000042b: MSTORE 0000042c: PUSH1 0x40 0000042e: PUSH1 0x00 00000430: KECCAK256 00000431: PUSH1 0x00 00000433: SWAP2 00000434: POP 00000435: SWAP1 00000436: POP 00000437: SLOAD 00000438: DUP2 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH1 0x0d 0000043d: PUSH1 0x00 0000043f: POP 00000440: PUSH1 0x20 00000442: MSTORE 00000443: DUP1 00000444: PUSH1 0x00 00000446: MSTORE 00000447: PUSH1 0x40 00000449: PUSH1 0x00 0000044b: KECCAK256 0000044c: PUSH1 0x00 0000044e: SWAP2 0000044f: POP 00000450: SWAP1 00000451: POP 00000452: SLOAD 00000453: DUP2 00000454: JUMP 00000455: JUMPDEST 00000456: PUSH1 0x0e 00000458: PUSH1 0x00 0000045a: POP 0000045b: PUSH1 0x20 0000045d: MSTORE 0000045e: DUP1 0000045f: PUSH1 0x00 00000461: MSTORE 00000462: PUSH1 0x40 00000464: PUSH1 0x00 00000466: KECCAK256 00000467: PUSH1 0x00 00000469: SWAP2 0000046a: POP 0000046b: SWAP1 0000046c: SWAP1 0000046d: SLOAD 0000046e: SWAP1 0000046f: PUSH2 0x0100 00000472: EXP 00000473: SWAP1 00000474: DIV 00000475: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000048a: AND 0000048b: DUP2 0000048c: JUMP 0000048d: JUMPDEST 0000048e: PUSH1 0x00 00000490: PUSH1 0x0d 00000492: PUSH1 0x00 00000494: POP 00000495: PUSH1 0x00 00000497: CALLER 00000498: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004ad: AND 000004ae: DUP2 000004af: MSTORE 000004b0: PUSH1 0x20 000004b2: ADD 000004b3: SWAP1 000004b4: DUP2 000004b5: MSTORE 000004b6: PUSH1 0x20 000004b8: ADD 000004b9: PUSH1 0x00 000004bb: KECCAK256 000004bc: PUSH1 0x00 000004be: POP 000004bf: SLOAD 000004c0: SWAP1 000004c1: POP 000004c2: PUSH2 0x04c6 000004c5: JUMP 000004c6: JUMPDEST 000004c7: SWAP1 000004c8: JUMP 000004c9: JUMPDEST 000004ca: PUSH1 0x00 000004cc: PUSH1 0x0c 000004ce: PUSH1 0x00 000004d0: POP 000004d1: PUSH1 0x00 000004d3: CALLER 000004d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e9: AND 000004ea: DUP2 000004eb: MSTORE 000004ec: PUSH1 0x20 000004ee: ADD 000004ef: SWAP1 000004f0: DUP2 000004f1: MSTORE 000004f2: PUSH1 0x20 000004f4: ADD 000004f5: PUSH1 0x00 000004f7: KECCAK256 000004f8: PUSH1 0x00 000004fa: POP 000004fb: SLOAD 000004fc: SWAP1 000004fd: POP 000004fe: PUSH2 0x0502 00000501: JUMP 00000502: JUMPDEST 00000503: SWAP1 00000504: JUMP 00000505: JUMPDEST 00000506: PUSH1 0x00 00000508: PUSH1 0x0b 0000050a: PUSH1 0x00 0000050c: POP 0000050d: PUSH1 0x00 0000050f: CALLER 00000510: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000525: AND 00000526: DUP2 00000527: MSTORE 00000528: PUSH1 0x20 0000052a: ADD 0000052b: SWAP1 0000052c: DUP2 0000052d: MSTORE 0000052e: PUSH1 0x20 00000530: ADD 00000531: PUSH1 0x00 00000533: KECCAK256 00000534: PUSH1 0x00 00000536: POP 00000537: SLOAD 00000538: TIMESTAMP 00000539: SUB 0000053a: SWAP1 0000053b: POP 0000053c: PUSH2 0x0540 0000053f: JUMP 00000540: JUMPDEST 00000541: SWAP1 00000542: JUMP 00000543: JUMPDEST 00000544: PUSH1 0x07 00000546: PUSH1 0x00 00000548: DUP2 00000549: DUP2 0000054a: POP 0000054b: SLOAD 0000054c: PUSH1 0x01 0000054e: ADD 0000054f: SWAP2 00000550: SWAP1 00000551: POP 00000552: DUP2 00000553: SWAP1 00000554: SSTORE 00000555: POP 00000556: TIMESTAMP 00000557: PUSH1 0x05 00000559: PUSH1 0x00 0000055b: POP 0000055c: DUP2 0000055d: SWAP1 0000055e: SSTORE 0000055f: POP 00000560: CALLER 00000561: PUSH1 0x0e 00000563: PUSH1 0x00 00000565: POP 00000566: PUSH1 0x00 00000568: PUSH1 0x07 0000056a: PUSH1 0x00 0000056c: POP 0000056d: SLOAD 0000056e: DUP2 0000056f: MSTORE 00000570: PUSH1 0x20 00000572: ADD 00000573: SWAP1 00000574: DUP2 00000575: MSTORE 00000576: PUSH1 0x20 00000578: ADD 00000579: PUSH1 0x00 0000057b: KECCAK256 0000057c: PUSH1 0x00 0000057e: PUSH2 0x0100 00000581: EXP 00000582: DUP2 00000583: SLOAD 00000584: DUP2 00000585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000059a: MUL 0000059b: NOT 0000059c: AND 0000059d: SWAP1 0000059e: DUP4 0000059f: MUL 000005a0: OR 000005a1: SWAP1 000005a2: SSTORE 000005a3: POP 000005a4: CALLVALUE 000005a5: PUSH1 0x0a 000005a7: PUSH1 0x00 000005a9: POP 000005aa: PUSH1 0x00 000005ac: CALLER 000005ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005c2: AND 000005c3: DUP2 000005c4: MSTORE 000005c5: PUSH1 0x20 000005c7: ADD 000005c8: SWAP1 000005c9: DUP2 000005ca: MSTORE 000005cb: PUSH1 0x20 000005cd: ADD 000005ce: PUSH1 0x00 000005d0: KECCAK256 000005d1: PUSH1 0x00 000005d3: DUP3 000005d4: DUP3 000005d5: DUP3 000005d6: POP 000005d7: SLOAD 000005d8: ADD 000005d9: SWAP3 000005da: POP 000005db: POP 000005dc: DUP2 000005dd: SWAP1 000005de: SSTORE 000005df: POP 000005e0: PUSH2 0x05e7 000005e3: PUSH2 0x05ea 000005e6: JUMP 000005e7: JUMPDEST 000005e8: JUMPDEST 000005e9: JUMP 000005ea: JUMPDEST 000005eb: PUSH1 0x06 000005ed: PUSH1 0x00 000005ef: POP 000005f0: SLOAD 000005f1: PUSH1 0x0b 000005f3: PUSH1 0x00 000005f5: POP 000005f6: PUSH1 0x00 000005f8: CALLER 000005f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000060e: AND 0000060f: DUP2 00000610: MSTORE 00000611: PUSH1 0x20 00000613: ADD 00000614: SWAP1 00000615: DUP2 00000616: MSTORE 00000617: PUSH1 0x20 00000619: ADD 0000061a: PUSH1 0x00 0000061c: KECCAK256 0000061d: PUSH1 0x00 0000061f: POP 00000620: SLOAD 00000621: TIMESTAMP 00000622: SUB 00000623: LT 00000624: ISZERO 00000625: ISZERO 00000626: PUSH2 0x07d1 00000629: JUMPI 0000062a: PUSH1 0x64 0000062c: PUSH1 0x04 0000062e: PUSH1 0x00 00000630: POP 00000631: SLOAD 00000632: PUSH1 0x64 00000634: PUSH1 0x03 00000636: PUSH1 0x00 00000638: POP 00000639: SLOAD 0000063a: PUSH1 0x0a 0000063c: PUSH1 0x00 0000063e: POP 0000063f: PUSH1 0x00 00000641: CALLER 00000642: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000657: AND 00000658: DUP2 00000659: MSTORE 0000065a: PUSH1 0x20 0000065c: ADD 0000065d: SWAP1 0000065e: DUP2 0000065f: MSTORE 00000660: PUSH1 0x20 00000662: ADD 00000663: PUSH1 0x00 00000665: KECCAK256 00000666: PUSH1 0x00 00000668: POP 00000669: SLOAD 0000066a: MUL 0000066b: DIV 0000066c: MUL 0000066d: DIV 0000066e: PUSH1 0x01 00000670: PUSH1 0x00 00000672: POP 00000673: DUP2 00000674: SWAP1 00000675: SSTORE 00000676: POP 00000677: PUSH1 0x01 00000679: PUSH1 0x00 0000067b: POP 0000067c: SLOAD 0000067d: PUSH1 0x64 0000067f: PUSH1 0x03 00000681: PUSH1 0x00 00000683: POP 00000684: SLOAD 00000685: PUSH1 0x0a 00000687: PUSH1 0x00 00000689: POP 0000068a: PUSH1 0x00 0000068c: CALLER 0000068d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006a2: AND 000006a3: DUP2 000006a4: MSTORE 000006a5: PUSH1 0x20 000006a7: ADD 000006a8: SWAP1 000006a9: DUP2 000006aa: MSTORE 000006ab: PUSH1 0x20 000006ad: ADD 000006ae: PUSH1 0x00 000006b0: KECCAK256 000006b1: PUSH1 0x00 000006b3: POP 000006b4: SLOAD 000006b5: MUL 000006b6: DIV 000006b7: SUB 000006b8: PUSH1 0x02 000006ba: PUSH1 0x00 000006bc: POP 000006bd: DUP2 000006be: SWAP1 000006bf: SSTORE 000006c0: POP 000006c1: PUSH1 0x09 000006c3: PUSH1 0x00 000006c5: SWAP1 000006c6: SLOAD 000006c7: SWAP1 000006c8: PUSH2 0x0100 000006cb: EXP 000006cc: SWAP1 000006cd: DIV 000006ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e3: AND 000006e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006f9: AND 000006fa: PUSH1 0x00 000006fc: PUSH1 0x01 000006fe: PUSH1 0x00 00000700: POP 00000701: SLOAD 00000702: PUSH1 0x40 00000704: MLOAD 00000705: DUP1 00000706: SWAP1 00000707: POP 00000708: PUSH1 0x00 0000070a: PUSH1 0x40 0000070c: MLOAD 0000070d: DUP1 0000070e: DUP4 0000070f: SUB 00000710: DUP2 00000711: DUP6 00000712: DUP9 00000713: DUP9 00000714: CALL 00000715: SWAP4 00000716: POP 00000717: POP 00000718: POP 00000719: POP 0000071a: POP 0000071b: PUSH1 0x02 0000071d: PUSH1 0x00 0000071f: POP 00000720: SLOAD 00000721: PUSH1 0x0d 00000723: PUSH1 0x00 00000725: POP 00000726: PUSH1 0x00 00000728: CALLER 00000729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000073e: AND 0000073f: DUP2 00000740: MSTORE 00000741: PUSH1 0x20 00000743: ADD 00000744: SWAP1 00000745: DUP2 00000746: MSTORE 00000747: PUSH1 0x20 00000749: ADD 0000074a: PUSH1 0x00 0000074c: KECCAK256 0000074d: PUSH1 0x00 0000074f: DUP3 00000750: DUP3 00000751: DUP3 00000752: POP 00000753: SLOAD 00000754: ADD 00000755: SWAP3 00000756: POP 00000757: POP 00000758: DUP2 00000759: SWAP1 0000075a: SSTORE 0000075b: POP 0000075c: PUSH1 0x02 0000075e: PUSH1 0x00 00000760: POP 00000761: SLOAD 00000762: PUSH1 0x0c 00000764: PUSH1 0x00 00000766: POP 00000767: PUSH1 0x00 00000769: CALLER 0000076a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000077f: AND 00000780: DUP2 00000781: MSTORE 00000782: PUSH1 0x20 00000784: ADD 00000785: SWAP1 00000786: DUP2 00000787: MSTORE 00000788: PUSH1 0x20 0000078a: ADD 0000078b: PUSH1 0x00 0000078d: KECCAK256 0000078e: PUSH1 0x00 00000790: DUP3 00000791: DUP3 00000792: DUP3 00000793: POP 00000794: SLOAD 00000795: ADD 00000796: SWAP3 00000797: POP 00000798: POP 00000799: DUP2 0000079a: SWAP1 0000079b: SSTORE 0000079c: POP 0000079d: TIMESTAMP 0000079e: PUSH1 0x0b 000007a0: PUSH1 0x00 000007a2: POP 000007a3: PUSH1 0x00 000007a5: CALLER 000007a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007bb: AND 000007bc: DUP2 000007bd: MSTORE 000007be: PUSH1 0x20 000007c0: ADD 000007c1: SWAP1 000007c2: DUP2 000007c3: MSTORE 000007c4: PUSH1 0x20 000007c6: ADD 000007c7: PUSH1 0x00 000007c9: KECCAK256 000007ca: PUSH1 0x00 000007cc: POP 000007cd: DUP2 000007ce: SWAP1 000007cf: SSTORE 000007d0: POP 000007d1: JUMPDEST 000007d2: JUMPDEST 000007d3: JUMP 000007d4: JUMPDEST 000007d5: PUSH1 0x06 000007d7: PUSH1 0x00 000007d9: POP 000007da: SLOAD 000007db: PUSH1 0x0b 000007dd: PUSH1 0x00 000007df: POP 000007e0: PUSH1 0x00 000007e2: CALLER 000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f8: AND 000007f9: DUP2 000007fa: MSTORE 000007fb: PUSH1 0x20 000007fd: ADD 000007fe: SWAP1 000007ff: DUP2 00000800: MSTORE 00000801: PUSH1 0x20 00000803: ADD 00000804: PUSH1 0x00 00000806: KECCAK256 00000807: PUSH1 0x00 00000809: POP 0000080a: SLOAD 0000080b: TIMESTAMP 0000080c: SUB 0000080d: LT 0000080e: ISZERO 0000080f: ISZERO 00000810: PUSH2 0x0969 00000813: JUMPI 00000814: PUSH1 0x02 00000816: PUSH1 0x00 00000818: POP 00000819: SLOAD 0000081a: PUSH1 0x0a 0000081c: PUSH1 0x00 0000081e: POP 0000081f: PUSH1 0x00 00000821: CALLER 00000822: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000837: AND 00000838: DUP2 00000839: MSTORE 0000083a: PUSH1 0x20 0000083c: ADD 0000083d: SWAP1 0000083e: DUP2 0000083f: MSTORE 00000840: PUSH1 0x20 00000842: ADD 00000843: PUSH1 0x00 00000845: KECCAK256 00000846: PUSH1 0x00 00000848: POP 00000849: SLOAD 0000084a: ADD 0000084b: ADDRESS 0000084c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000861: AND 00000862: BALANCE 00000863: GT 00000864: ISZERO 00000865: PUSH2 0x0968 00000868: JUMPI 00000869: CALLER 0000086a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000087f: AND 00000880: PUSH1 0x00 00000882: PUSH1 0x02 00000884: PUSH1 0x00 00000886: POP 00000887: SLOAD 00000888: PUSH1 0x0a 0000088a: PUSH1 0x00 0000088c: POP 0000088d: PUSH1 0x00 0000088f: CALLER 00000890: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008a5: AND 000008a6: DUP2 000008a7: MSTORE 000008a8: PUSH1 0x20 000008aa: ADD 000008ab: SWAP1 000008ac: DUP2 000008ad: MSTORE 000008ae: PUSH1 0x20 000008b0: ADD 000008b1: PUSH1 0x00 000008b3: KECCAK256 000008b4: PUSH1 0x00 000008b6: POP 000008b7: SLOAD 000008b8: ADD 000008b9: PUSH1 0x40 000008bb: MLOAD 000008bc: DUP1 000008bd: SWAP1 000008be: POP 000008bf: PUSH1 0x00 000008c1: PUSH1 0x40 000008c3: MLOAD 000008c4: DUP1 000008c5: DUP4 000008c6: SUB 000008c7: DUP2 000008c8: DUP6 000008c9: DUP9 000008ca: DUP9 000008cb: CALL 000008cc: SWAP4 000008cd: POP 000008ce: POP 000008cf: POP 000008d0: POP 000008d1: PUSH1 0x00 000008d3: PUSH1 0x00 000008d5: PUSH2 0x0100 000008d8: EXP 000008d9: DUP2 000008da: SLOAD 000008db: DUP2 000008dc: PUSH1 0xff 000008de: MUL 000008df: NOT 000008e0: AND 000008e1: SWAP1 000008e2: DUP4 000008e3: MUL 000008e4: OR 000008e5: SWAP1 000008e6: SSTORE 000008e7: POP 000008e8: PUSH1 0x00 000008ea: PUSH1 0x00 000008ec: SWAP1 000008ed: SLOAD 000008ee: SWAP1 000008ef: PUSH2 0x0100 000008f2: EXP 000008f3: SWAP1 000008f4: DIV 000008f5: PUSH1 0xff 000008f7: AND 000008f8: ISZERO 000008f9: PUSH2 0x0967 000008fc: JUMPI 000008fd: PUSH1 0x00 000008ff: PUSH1 0x0d 00000901: PUSH1 0x00 00000903: POP 00000904: PUSH1 0x00 00000906: CALLER 00000907: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000091c: AND 0000091d: DUP2 0000091e: MSTORE 0000091f: PUSH1 0x20 00000921: ADD 00000922: SWAP1 00000923: DUP2 00000924: MSTORE 00000925: PUSH1 0x20 00000927: ADD 00000928: PUSH1 0x00 0000092a: KECCAK256 0000092b: PUSH1 0x00 0000092d: POP 0000092e: DUP2 0000092f: SWAP1 00000930: SSTORE 00000931: POP 00000932: PUSH1 0x00 00000934: PUSH1 0x0a 00000936: PUSH1 0x00 00000938: POP 00000939: PUSH1 0x00 0000093b: CALLER 0000093c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000951: AND 00000952: DUP2 00000953: MSTORE 00000954: PUSH1 0x20 00000956: ADD 00000957: SWAP1 00000958: DUP2 00000959: MSTORE 0000095a: PUSH1 0x20 0000095c: ADD 0000095d: PUSH1 0x00 0000095f: KECCAK256 00000960: PUSH1 0x00 00000962: POP 00000963: DUP2 00000964: SWAP1 00000965: SSTORE 00000966: POP 00000967: JUMPDEST 00000968: JUMPDEST 00000969: JUMPDEST 0000096a: JUMPDEST 0000096b: JUMP 0000096c: JUMPDEST 0000096d: PUSH1 0x06 0000096f: PUSH1 0x00 00000971: POP 00000972: SLOAD 00000973: PUSH1 0x0b 00000975: PUSH1 0x00 00000977: POP 00000978: PUSH1 0x00 0000097a: CALLER 0000097b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000990: AND 00000991: DUP2 00000992: MSTORE 00000993: PUSH1 0x20 00000995: ADD 00000996: SWAP1 00000997: DUP2 00000998: MSTORE 00000999: PUSH1 0x20 0000099b: ADD 0000099c: PUSH1 0x00 0000099e: KECCAK256 0000099f: PUSH1 0x00 000009a1: POP 000009a2: SLOAD 000009a3: TIMESTAMP 000009a4: SUB 000009a5: LT 000009a6: ISZERO 000009a7: ISZERO 000009a8: PUSH2 0x0adc 000009ab: JUMPI 000009ac: PUSH1 0x02 000009ae: PUSH1 0x00 000009b0: POP 000009b1: SLOAD 000009b2: ADDRESS 000009b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009c8: AND 000009c9: BALANCE 000009ca: GT 000009cb: ISZERO 000009cc: PUSH2 0x0adb 000009cf: JUMPI 000009d0: CALLER 000009d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009e6: AND 000009e7: PUSH1 0x00 000009e9: PUSH1 0x02 000009eb: PUSH1 0x00 000009ed: POP 000009ee: SLOAD 000009ef: PUSH1 0x40 000009f1: MLOAD 000009f2: DUP1 000009f3: SWAP1 000009f4: POP 000009f5: PUSH1 0x00 000009f7: PUSH1 0x40 000009f9: MLOAD 000009fa: DUP1 000009fb: DUP4 000009fc: SUB 000009fd: DUP2 000009fe: DUP6 000009ff: DUP9 00000a00: DUP9 00000a01: CALL 00000a02: SWAP4 00000a03: POP 00000a04: POP 00000a05: POP 00000a06: POP 00000a07: PUSH1 0x00 00000a09: PUSH1 0x00 00000a0b: PUSH2 0x0100 00000a0e: EXP 00000a0f: DUP2 00000a10: SLOAD 00000a11: DUP2 00000a12: PUSH1 0xff 00000a14: MUL 00000a15: NOT 00000a16: AND 00000a17: SWAP1 00000a18: DUP4 00000a19: MUL 00000a1a: OR 00000a1b: SWAP1 00000a1c: SSTORE 00000a1d: POP 00000a1e: PUSH1 0x00 00000a20: PUSH1 0x00 00000a22: SWAP1 00000a23: SLOAD 00000a24: SWAP1 00000a25: PUSH2 0x0100 00000a28: EXP 00000a29: SWAP1 00000a2a: DIV 00000a2b: PUSH1 0xff 00000a2d: AND 00000a2e: ISZERO 00000a2f: PUSH2 0x0ada 00000a32: JUMPI 00000a33: TIMESTAMP 00000a34: PUSH1 0x0b 00000a36: PUSH1 0x00 00000a38: POP 00000a39: PUSH1 0x00 00000a3b: CALLER 00000a3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a51: AND 00000a52: DUP2 00000a53: MSTORE 00000a54: PUSH1 0x20 00000a56: ADD 00000a57: SWAP1 00000a58: DUP2 00000a59: MSTORE 00000a5a: PUSH1 0x20 00000a5c: ADD 00000a5d: PUSH1 0x00 00000a5f: KECCAK256 00000a60: PUSH1 0x00 00000a62: POP 00000a63: DUP2 00000a64: SWAP1 00000a65: SSTORE 00000a66: POP 00000a67: PUSH1 0x0d 00000a69: PUSH1 0x00 00000a6b: POP 00000a6c: PUSH1 0x00 00000a6e: CALLER 00000a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a84: AND 00000a85: DUP2 00000a86: MSTORE 00000a87: PUSH1 0x20 00000a89: ADD 00000a8a: SWAP1 00000a8b: DUP2 00000a8c: MSTORE 00000a8d: PUSH1 0x20 00000a8f: ADD 00000a90: PUSH1 0x00 00000a92: KECCAK256 00000a93: PUSH1 0x00 00000a95: POP 00000a96: SLOAD 00000a97: PUSH1 0x0d 00000a99: PUSH1 0x00 00000a9b: POP 00000a9c: PUSH1 0x00 00000a9e: CALLER 00000a9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ab4: AND 00000ab5: DUP2 00000ab6: MSTORE 00000ab7: PUSH1 0x20 00000ab9: ADD 00000aba: SWAP1 00000abb: DUP2 00000abc: MSTORE 00000abd: PUSH1 0x20 00000abf: ADD 00000ac0: PUSH1 0x00 00000ac2: KECCAK256 00000ac3: PUSH1 0x00 00000ac5: DUP3 00000ac6: DUP3 00000ac7: DUP3 00000ac8: POP 00000ac9: SLOAD 00000aca: SUB 00000acb: SWAP3 00000acc: POP 00000acd: POP 00000ace: DUP2 00000acf: SWAP1 00000ad0: SSTORE 00000ad1: POP 00000ad2: PUSH2 0x0ad9 00000ad5: PUSH2 0x05ea 00000ad8: JUMP 00000ad9: JUMPDEST 00000ada: JUMPDEST 00000adb: JUMPDEST 00000adc: JUMPDEST 00000add: JUMPDEST 00000ade: 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 | math | codex | Cooldown/lock check uses reversed subtraction, collapsing the wait period | 85 | no | — |
viewevidence_json{
"evidence": "At `pc:0x621-0x629` the contract loads slot `0x06`, then computes `mapping(slot0x0b, caller) - TIMESTAMP` via `TIMESTAMP; SUB`, followed by `LT` and a conditional jump. The same pattern appears again at `pc:0x7fb-0x813` and `pc:0x973-0x9ab`. A related view/helper path also returns `mapping(slot0x0b, caller) - TIMESTAMP`, corroborating the reversed subtraction. This is bytecode-level inference, but the opcode order is explicit.",
"locations": [
"pc:0x621",
"pc:0x622",
"pc:0x625",
"pc:0x626",
"pc:0x7fb",
"pc:0x80c",
"pc:0x80f",
"pc:0x973",
"pc:0x9a4",
"pc:0x9a7",
"selector:0x3ccfd60b",
"selector:0x959499b6",
"selector:0x8351a0d4"
],
"recommendation": "Rebuild the guard as `block.timestamp - lastActionTs >= cooldown` (or equivalent) using checked arithmetic, and add explicit tests for same-block, next-block, and full-cooldown cases. Any helper/view function that reports remaining time should also use the corrected direction.",
"exploit_scenario": "Selectors `0x3ccfd60b` and `0x959499b6` both gate ETH payouts with a timestamp check derived from `lastActionTs - block.timestamp`. In this old wrapping-arithmetic bytecode, once `block.timestamp` moves past the stored timestamp, the subtraction underflows to a huge value and the guard stops blocking. An attacker can therefore claim/withdraw again after only the next block instead of waiting the configured interval in slot `0x06`, draining rewards or principal much faster than intended."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205
call_targets:
0x4f0255319faa4a7915856300f5ff98a2fe86ae97, 0xee291517c6290faf94dee71647c27b9737b2a2d2
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"0xee291517c6290faf94dee71647c27b9737b2a2d2"
],
"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": "0x0de9cacd",
"selector": "0x0de9cacd",
"calldata_variants": [
"0x0de9cacd",
"0x0de9cacd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12065fe0",
"selector": "0x12065fe0",
"calldata_variants": [
"0x12065fe0",
"0x12065fe00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13060833",
"selector": "0x13060833",
"calldata_variants": [
"0x13060833",
"0x130608330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ccfd60b",
"selector": "0x3ccfd60b",
"calldata_variants": [
"0x3ccfd60b",
"0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x481c6a75",
"selector": "0x481c6a75",
"calldata_variants": [
"0x481c6a75",
"0x481c6a750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4afdd0e7",
"selector": "0x4afdd0e7",
"calldata_variants": [
"0x4afdd0e7",
"0x4afdd0e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5294010f",
"selector": "0x5294010f",
"calldata_variants": [
"0x5294010f",
"0x5294010f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1812,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2251,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2561,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205
call_targets:
0x4f0255319faa4a7915856300f5ff98a2fe86ae97, 0xee291517c6290faf94dee71647c27b9737b2a2d2
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x9af858dc7ec024c723e4910fbecf8ac04717b8b56b5551cc2b1231e8d9b3f205",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x4f0255319faa4a7915856300f5ff98a2fe86ae97",
"0xee291517c6290faf94dee71647c27b9737b2a2d2"
],
"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": "0x0de9cacd",
"selector": "0x0de9cacd",
"calldata_variants": [
"0x0de9cacd",
"0x0de9cacd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12065fe0",
"selector": "0x12065fe0",
"calldata_variants": [
"0x12065fe0",
"0x12065fe00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13060833",
"selector": "0x13060833",
"calldata_variants": [
"0x13060833",
"0x130608330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ccfd60b",
"selector": "0x3ccfd60b",
"calldata_variants": [
"0x3ccfd60b",
"0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x481c6a75",
"selector": "0x481c6a75",
"calldata_variants": [
"0x481c6a75",
"0x481c6a750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4afdd0e7",
"selector": "0x4afdd0e7",
"calldata_variants": [
"0x4afdd0e7",
"0x4afdd0e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5294010f",
"selector": "0x5294010f",
"calldata_variants": [
"0x5294010f",
"0x5294010f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1812,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2251,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2561,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | other | codex | Fallback/unknown-selector path silently accepts ETH without crediting sender | 75 | no | — |
viewevidence_json{
"evidence": "`CALLDATASIZE; ISZERO; PUSH2 0x0103; JUMPI` at startup sends empty-calldata calls to the default handler, and unmatched selectors fall through `PUSH2 0x0103; JUMP` at `pc:0xff-0x102`. The destination at `pc:0x103/0x104` is just `JUMPDEST; STOP`, with no revert and no storage updates. By contrast, deposit accounting (`slot0x0a[caller] += CALLVALUE`) only appears in the explicit deposit path starting at `pc:0x543` (`selector:0xd0e30db0`).",
"locations": [
"pc:0x5",
"pc:0x7",
"pc:0xff",
"pc:0x103",
"pc:0x104",
"pc:0x5a4",
"selector:0xd0e30db0",
"selector:0x0de9cacd"
],
"recommendation": "Make `receive`/fallback revert unless the transfer is meant to be a deposit, or route plain ETH into the same accounting path as the explicit deposit function(s). Add tests for empty calldata, bad selectors, and forced ETH delivery edge cases.",
"exploit_scenario": "A user who sends plain ETH to the contract, or calls it with an unknown selector and nonzero `msg.value`, reaches the default `STOP` path instead of the deposit bookkeeping. The ETH remains in contract balance, but the sender is never credited in the per-user storage used by withdrawal logic, so those funds are effectively lost from that sender's perspective."
}
|
| low | other | codex | ETH payouts are sent with stipend-only CALL semantics, which can lock funds for contract recipients | 65 | no | — |
viewevidence_json{
"evidence": "Detector findings flagged reachable value-bearing CALLs at `pc:0x714`, `pc:0x8cb`, and `pc:0xa01`. Manual stack reconstruction of the bytecode around the user-facing payout sites shows the CALL gas argument is built from `PUSH1 0x00` rather than `GAS`, so these are stipend-only ETH sends. This is an inference from opcode order, but the absence of a `GAS` opcode before the calls is explicit.",
"locations": [
"pc:0x8cb",
"pc:0xa01",
"selector:0x3ccfd60b",
"selector:0x959499b6"
],
"recommendation": "Use a modern low-level call pattern that forwards adequate gas and handles failures explicitly, then reorder state changes into checks-effects-interactions or add a reentrancy guard. If only EOAs are intended, enforce that explicitly rather than relying on stipend behavior.",
"exploit_scenario": "The payout sites at `pc:0x8cc` and `pc:0xa01` send ETH to `CALLER` using a `CALL` sequence with no `GAS` opcode and a pushed zero gas argument. That implies stipend-only value transfer semantics. EOAs will usually succeed, but many contract wallets/fallbacks will revert or need more than the stipend, causing claims/withdrawals to fail and potentially leaving funds stuck for those users."
}
|