019c0ea9-09c2-7372-be3e-5cedc6bce266
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 |
|---|---|---|---|---|
| 42166 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42167 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42168 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42169 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42170 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42171 | detector.run | complete | 1 / 3 | 2 months ago |
| 42172 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42477 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode analysis shows tx.origin-based authorization checks and multiple external CALL sites with computed target/value; some risk depends on how inputs are constrained, which is unclear from bytecode-only evidence.","findings":[{"severity":"high","category":"auth","title":"Authorization uses tx.origin","exploit_scenario":"If privileged paths rely on tx.origin, a phishing contract can trick a user into calling it; the phishing contract then calls this contract so tx.origin remains the user and any tx.origin check passes, enabling unauthorized privileged actions.","recommendation":"Replace tx.origin checks with msg.sender-based access control (owner/role mappings) and explicit authorization logic. If EOAs must be enforced, use EIP-1271/EIP-712 or a dedicated allowlist instead of tx.origin.","evidence":"Detector flagged multiple tx.origin guards in the control flow.","locations":["pc:143","pc:165","pc:190","pc:216","pc:246","pc:747","pc:769","pc:820","pc:850","pc:1231","pc:1253","pc:1304","pc:1334","pc:2104","pc:2126"]},{"severity":"low","category":"other","title":"External CALLs with computed target/value (potentially user-controlled)","exploit_scenario":"Several CALL sites use computed targets and values. If any of these are derived from calldata or mutable storage without strict validation, an attacker could redirect calls to arbitrary addresses, transfer ETH, or trigger reentrant behavior in an unexpected external contract. Bytecode-only evidence cannot confirm whether targets are fixed or validated.","recommendation":"Restrict call targets via allowlists, validate calldata-derived addresses/values, and follow checks-effects-interactions (or add reentrancy guards) around external calls that can send value.","evidence":"Detector evidence shows CALL opcodes with computed target/value; validation trace saw a constant target in one run but does not prove all paths are constant or validated.","locations":["pc:381","pc:684","pc:976","pc:1621","pc:1916","pc:2228","pc:2419","pc:2689"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-dgxlosdp
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f95-9044-71a2-ae94-3baa235a47ef
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-dgxlosdp succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat /tmp/codex-dgxlosdp/BYTECODE_BUNDLE.json' in /tmp/codex-dgxlosdp succeeded in 7ms:
{
"analysis_artifact": {
"address": "0x9dc55070584ca0a58cdfe98eeb32b9a48dc9885c",
"artifact_hash": "0xcbfc0821740a24f8f579dbe0ed123a78eb501aefc5cc3b3b1e9a07915c066590",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 165,
"type": "tx_origin_used"
},
{
"pc": 190,
"type": "tx_origin_used"
},
{
"pc": 216,
"type": "tx_origin_used"
},
{
codex
{"no_findings":false,"summary":"Bytecode analysis shows tx.origin-based authorization checks and multiple external CALL sites with computed target/value; some risk depends on how inputs are constrained, which is unclear from bytecode-only evidence.","findings":[{"severity":"high","category":"auth","title":"Authorization uses tx.origin","exploit_scenario":"If privileged paths rely on tx.origin, a phishing contract can trick a user into calling it; the phishing contract then calls this contract so tx.origin remains the user and any tx.origin check passes, enabling unauthorized privileged actions.","recommendation":"Replace tx.origin checks with msg.sender-based access control (owner/role mappings) and explicit authorization logic. If EOAs must be enforced, use EIP-1271/EIP-712 or a dedicated allowlist instead of tx.origin.","evidence":"Detector flagged multiple tx.origin guards in the control flow.","locations":["pc:143","pc:165","pc:190","pc:216","pc:246","pc:747","pc:769","pc:820","pc:850","pc:1231","pc:1253","pc:1304","pc:1334","pc:2104","pc:2126"]},{"severity":"low","category":"other","title":"External CALLs with computed target/value (potentially user-controlled)","exploit_scenario":"Several CALL sites use computed targets and values. If any of these are derived from calldata or mutable storage without strict validation, an attacker could redirect calls to arbitrary addresses, transfer ETH, or trigger reentrant behavior in an unexpected external contract. Bytecode-only evidence cannot confirm whether targets are fixed or validated.","recommendation":"Restrict call targets via allowlists, validate calldata-derived addresses/values, and follow checks-effects-interactions (or add reentrancy guards) around external calls that can send value.","evidence":"Detector evidence shows CALL opcodes with computed target/value; validation trace saw a constant target in one run but does not prove all paths are constant or validated.","locations":["pc:381","pc:684","pc:976","pc:1621","pc:1916","pc:2228","pc:2419","pc:2689"]}]}
tokens used
15,979
{
"codex": {
"ran_at": "2026-01-30T15:47:11.859597+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 8718,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode analysis shows tx.origin-based authorization checks and multiple external CALL sites with computed target/value; some risk depends on how inputs are constrained, which is unclear from bytecode-only evidence.",
"raw_final": {
"summary": "Bytecode analysis shows tx.origin-based authorization checks and multiple external CALL sites with computed target/value; some risk depends on how inputs are constrained, which is unclear from bytecode-only evidence.",
"findings": [
{
"title": "Authorization uses tx.origin",
"category": "auth",
"evidence": "Detector flagged multiple tx.origin guards in the control flow.",
"severity": "high",
"locations": [
"pc:143",
"pc:165",
"pc:190",
"pc:216",
"pc:246",
"pc:747",
"pc:769",
"pc:820",
"pc:850",
"pc:1231",
"pc:1253",
"pc:1304",
"pc:1334",
"pc:2104",
"pc:2126"
],
"recommendation": "Replace tx.origin checks with msg.sender-based access control (owner/role mappings) and explicit authorization logic. If EOAs must be enforced, use EIP-1271/EIP-712 or a dedicated allowlist instead of tx.origin.",
"exploit_scenario": "If privileged paths rely on tx.origin, a phishing contract can trick a user into calling it; the phishing contract then calls this contract so tx.origin remains the user and any tx.origin check passes, enabling unauthorized privileged actions."
},
{
"title": "External CALLs with computed target/value (potentially user-controlled)",
"category": "other",
"evidence": "Detector evidence shows CALL opcodes with computed target/value; validation trace saw a constant target in one run but does not prove all paths are constant or validated.",
"severity": "low",
"locations": [
"pc:381",
"pc:684",
"pc:976",
"pc:1621",
"pc:1916",
"pc:2228",
"pc:2419",
"pc:2689"
],
"recommendation": "Restrict call targets via allowlists, validate calldata-derived addresses/values, and follow checks-effects-interactions (or add reentrancy guards) around external calls that can send value.",
"exploit_scenario": "Several CALL sites use computed targets and values. If any of these are derived from calldata or mutable storage without strict validation, an attacker could redirect calls to arbitrary addresses, transfer ETH, or trigger reentrant behavior in an unexpected external contract. Bytecode-only evidence cannot confirm whether targets are fixed or validated."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0034 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x52d11238 00000019: EQ 0000001a: PUSH2 0x0039 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x89b09de7 00000024: EQ 00000025: PUSH2 0x005b 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xa70c1aba 0000002f: EQ 00000030: PUSH2 0x007b 00000033: JUMPI 00000034: JUMPDEST 00000035: PUSH1 0x00 00000037: DUP1 00000038: REVERT 00000039: JUMPDEST 0000003a: CALLVALUE 0000003b: DUP1 0000003c: ISZERO 0000003d: PUSH2 0x0045 00000040: JUMPI 00000041: PUSH1 0x00 00000043: DUP1 00000044: REVERT 00000045: JUMPDEST 00000046: POP 00000047: PUSH2 0x0059 0000004a: PUSH2 0x0054 0000004d: CALLDATASIZE 0000004e: PUSH1 0x04 00000050: PUSH2 0x0ce8 00000053: JUMP 00000054: JUMPDEST 00000055: PUSH2 0x008e 00000058: JUMP 00000059: JUMPDEST 0000005a: STOP 0000005b: JUMPDEST 0000005c: CALLVALUE 0000005d: DUP1 0000005e: ISZERO 0000005f: PUSH2 0x0067 00000062: JUMPI 00000063: PUSH1 0x00 00000065: DUP1 00000066: REVERT 00000067: JUMPDEST 00000068: POP 00000069: PUSH2 0x0059 0000006c: PUSH2 0x0076 0000006f: CALLDATASIZE 00000070: PUSH1 0x04 00000072: PUSH2 0x0ce8 00000075: JUMP 00000076: JUMPDEST 00000077: PUSH2 0x02ea 0000007a: JUMP 0000007b: JUMPDEST 0000007c: PUSH2 0x0059 0000007f: PUSH2 0x0089 00000082: CALLDATASIZE 00000083: PUSH1 0x04 00000085: PUSH2 0x0d0e 00000088: JUMP 00000089: JUMPDEST 0000008a: PUSH2 0x04ce 0000008d: JUMP 0000008e: JUMPDEST 0000008f: ORIGIN 00000090: PUSH20 0x8888888888e9997e64793849389a8faf5e8e547c 000000a5: EQ 000000a6: DUP1 000000a7: PUSH2 0x00bf 000000aa: JUMPI 000000ab: POP 000000ac: ORIGIN 000000ad: PUSH16 0x2fcecf3bc87acc58802cdb526c4f019d 000000be: EQ 000000bf: JUMPDEST 000000c0: DUP1 000000c1: PUSH2 0x00d9 000000c4: JUMPI 000000c5: POP 000000c6: ORIGIN 000000c7: PUSH16 0x60500bbe9c1364a558c70941ccb52422 000000d8: EQ 000000d9: JUMPDEST 000000da: DUP1 000000db: PUSH2 0x00f7 000000de: JUMPI 000000df: POP 000000e0: ORIGIN 000000e1: PUSH20 0x68cf50fe8348bb714c3c75370a43843d94a4b3da 000000f6: EQ 000000f7: JUMPDEST 000000f8: PUSH2 0x011c 000000fb: JUMPI 000000fc: PUSH1 0x40 000000fe: MLOAD 000000ff: PUSH3 0x461bcd 00000103: PUSH1 0xe5 00000105: SHL 00000106: DUP2 00000107: MSTORE 00000108: PUSH1 0x04 0000010a: ADD 0000010b: PUSH2 0x0113 0000010e: SWAP1 0000010f: PUSH2 0x0f40 00000112: JUMP 00000113: JUMPDEST 00000114: PUSH1 0x40 00000116: MLOAD 00000117: DUP1 00000118: SWAP2 00000119: SUB 0000011a: SWAP1 0000011b: REVERT 0000011c: JUMPDEST 0000011d: PUSH1 0x40 0000011f: MLOAD 00000120: PUSH4 0x095ea7b3 00000125: PUSH1 0xe0 00000127: SHL 00000128: DUP2 00000129: MSTORE 0000012a: PUSH1 0x01 0000012c: PUSH1 0x01 0000012e: PUSH1 0xa0 00000130: SHL 00000131: SUB 00000132: DUP3 00000133: AND 00000134: SWAP1 00000135: PUSH4 0x095ea7b3 0000013a: SWAP1 0000013b: PUSH2 0x0160 0000013e: SWAP1 0000013f: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 00000154: SWAP1 00000155: PUSH1 0x00 00000157: NOT 00000158: SWAP1 00000159: PUSH1 0x04 0000015b: ADD 0000015c: PUSH2 0x0f25 0000015f: JUMP 00000160: JUMPDEST 00000161: PUSH1 0x20 00000163: PUSH1 0x40 00000165: MLOAD 00000166: DUP1 00000167: DUP4 00000168: SUB 00000169: DUP2 0000016a: PUSH1 0x00 0000016c: DUP8 0000016d: DUP1 0000016e: EXTCODESIZE 0000016f: ISZERO 00000170: DUP1 00000171: ISZERO 00000172: PUSH2 0x017a 00000175: JUMPI 00000176: PUSH1 0x00 00000178: DUP1 00000179: REVERT 0000017a: JUMPDEST 0000017b: POP 0000017c: GAS 0000017d: CALL 0000017e: ISZERO 0000017f: DUP1 00000180: ISZERO 00000181: PUSH2 0x018e 00000184: JUMPI 00000185: RETURNDATASIZE 00000186: PUSH1 0x00 00000188: DUP1 00000189: RETURNDATACOPY 0000018a: RETURNDATASIZE 0000018b: PUSH1 0x00 0000018d: REVERT 0000018e: JUMPDEST 0000018f: POP 00000190: POP 00000191: POP 00000192: POP 00000193: PUSH1 0x40 00000195: MLOAD 00000196: RETURNDATASIZE 00000197: PUSH1 0x1f 00000199: NOT 0000019a: PUSH1 0x1f 0000019c: DUP3 0000019d: ADD 0000019e: AND 0000019f: DUP3 000001a0: ADD 000001a1: DUP1 000001a2: PUSH1 0x40 000001a4: MSTORE 000001a5: POP 000001a6: PUSH2 0x01b2 000001a9: SWAP2 000001aa: SWAP1 000001ab: DUP2 000001ac: ADD 000001ad: SWAP1 000001ae: PUSH2 0x0d7d 000001b1: JUMP 000001b2: JUMPDEST 000001b3: POP 000001b4: PUSH1 0x40 000001b6: MLOAD 000001b7: PUSH4 0x70a08231 000001bc: PUSH1 0xe0 000001be: SHL 000001bf: DUP2 000001c0: MSTORE 000001c1: PUSH1 0x00 000001c3: SWAP1 000001c4: PUSH1 0x01 000001c6: PUSH1 0x01 000001c8: PUSH1 0xa0 000001ca: SHL 000001cb: SUB 000001cc: DUP4 000001cd: AND 000001ce: SWAP1 000001cf: PUSH4 0x70a08231 000001d4: SWAP1 000001d5: PUSH2 0x01e2 000001d8: SWAP1 000001d9: ADDRESS 000001da: SWAP1 000001db: PUSH1 0x04 000001dd: ADD 000001de: PUSH2 0x0ef5 000001e1: JUMP 000001e2: JUMPDEST 000001e3: PUSH1 0x20 000001e5: PUSH1 0x40 000001e7: MLOAD 000001e8: DUP1 000001e9: DUP4 000001ea: SUB 000001eb: DUP2 000001ec: DUP7 000001ed: DUP1 000001ee: EXTCODESIZE 000001ef: ISZERO 000001f0: DUP1 000001f1: ISZERO 000001f2: PUSH2 0x01fa 000001f5: JUMPI 000001f6: PUSH1 0x00 000001f8: DUP1 000001f9: REVERT 000001fa: JUMPDEST 000001fb: POP 000001fc: GAS 000001fd: STATICCALL 000001fe: ISZERO 000001ff: DUP1 00000200: ISZERO 00000201: PUSH2 0x020e 00000204: JUMPI 00000205: RETURNDATASIZE 00000206: PUSH1 0x00 00000208: DUP1 00000209: RETURNDATACOPY 0000020a: RETURNDATASIZE 0000020b: PUSH1 0x00 0000020d: REVERT 0000020e: JUMPDEST 0000020f: POP 00000210: POP 00000211: POP 00000212: POP 00000213: PUSH1 0x40 00000215: MLOAD 00000216: RETURNDATASIZE 00000217: PUSH1 0x1f 00000219: NOT 0000021a: PUSH1 0x1f 0000021c: DUP3 0000021d: ADD 0000021e: AND 0000021f: DUP3 00000220: ADD 00000221: DUP1 00000222: PUSH1 0x40 00000224: MSTORE 00000225: POP 00000226: PUSH2 0x0232 00000229: SWAP2 0000022a: SWAP1 0000022b: DUP2 0000022c: ADD 0000022d: SWAP1 0000022e: PUSH2 0x0d9b 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH1 0x00 00000235: DUP1 00000236: SLOAD 00000237: SWAP2 00000238: SWAP3 00000239: POP 0000023a: PUSH1 0x01 0000023c: PUSH1 0x01 0000023e: PUSH1 0xa0 00000240: SHL 00000241: SUB 00000242: SWAP1 00000243: SWAP2 00000244: AND 00000245: SWAP1 00000246: PUSH4 0x18cbafe5 0000024b: SWAP1 0000024c: DUP4 0000024d: SWAP1 0000024e: PUSH2 0x0256 00000251: DUP7 00000252: PUSH2 0x0abe 00000255: JUMP 00000256: JUMPDEST 00000257: PUSH20 0x68cf50fe8348bb714c3c75370a43843d94a4b3da 0000026c: TIMESTAMP 0000026d: PUSH1 0x0f 0000026f: ADD 00000270: PUSH1 0x40 00000272: MLOAD 00000273: DUP7 00000274: PUSH4 0xffffffff 00000279: AND 0000027a: PUSH1 0xe0 0000027c: SHL 0000027d: DUP2 0000027e: MSTORE 0000027f: PUSH1 0x04 00000281: ADD 00000282: PUSH2 0x028f 00000285: SWAP6 00000286: SWAP5 00000287: SWAP4 00000288: SWAP3 00000289: SWAP2 0000028a: SWAP1 0000028b: PUSH2 0x0f70 0000028e: JUMP 0000028f: JUMPDEST 00000290: PUSH1 0x00 00000292: PUSH1 0x40 00000294: MLOAD 00000295: DUP1 00000296: DUP4 00000297: SUB 00000298: DUP2 00000299: PUSH1 0x00 0000029b: DUP8 0000029c: DUP1 0000029d: EXTCODESIZE 0000029e: ISZERO 0000029f: DUP1 000002a0: ISZERO 000002a1: PUSH2 0x02a9 000002a4: JUMPI 000002a5: PUSH1 0x00 000002a7: DUP1 000002a8: REVERT 000002a9: JUMPDEST 000002aa: POP 000002ab: GAS 000002ac: CALL 000002ad: ISZERO 000002ae: DUP1 000002af: ISZERO 000002b0: PUSH2 0x02bd 000002b3: JUMPI 000002b4: RETURNDATASIZE 000002b5: PUSH1 0x00 000002b7: DUP1 000002b8: RETURNDATACOPY 000002b9: RETURNDATASIZE 000002ba: PUSH1 0x00 000002bc: REVERT 000002bd: JUMPDEST 000002be: POP 000002bf: POP 000002c0: POP 000002c1: POP 000002c2: PUSH1 0x40 000002c4: MLOAD 000002c5: RETURNDATASIZE 000002c6: PUSH1 0x00 000002c8: DUP3 000002c9: RETURNDATACOPY 000002ca: PUSH1 0x1f 000002cc: RETURNDATASIZE 000002cd: SWAP1 000002ce: DUP2 000002cf: ADD 000002d0: PUSH1 0x1f 000002d2: NOT 000002d3: AND 000002d4: DUP3 000002d5: ADD 000002d6: PUSH1 0x40 000002d8: MSTORE 000002d9: PUSH2 0x02e5 000002dc: SWAP2 000002dd: SWAP1 000002de: DUP2 000002df: ADD 000002e0: SWAP1 000002e1: PUSH2 0x0d48 000002e4: JUMP 000002e5: JUMPDEST 000002e6: POP 000002e7: POP 000002e8: POP 000002e9: JUMP 000002ea: JUMPDEST 000002eb: ORIGIN 000002ec: PUSH20 0x8888888888e9997e64793849389a8faf5e8e547c 00000301: EQ 00000302: DUP1 00000303: PUSH2 0x031b 00000306: JUMPI 00000307: POP 00000308: ORIGIN 00000309: PUSH16 0x2fcecf3bc87acc58802cdb526c4f019d 0000031a: EQ 0000031b: JUMPDEST 0000031c: DUP1 0000031d: PUSH2 0x0335 00000320: JUMPI 00000321: POP 00000322: ORIGIN 00000323: PUSH16 0x60500bbe9c1364a558c70941ccb52422 00000334: EQ 00000335: JUMPDEST 00000336: DUP1 00000337: PUSH2 0x0353 0000033a: JUMPI 0000033b: POP 0000033c: ORIGIN 0000033d: PUSH20 0x68cf50fe8348bb714c3c75370a43843d94a4b3da 00000352: EQ 00000353: JUMPDEST 00000354: PUSH2 0x036f 00000357: JUMPI 00000358: PUSH1 0x40 0000035a: MLOAD 0000035b: PUSH3 0x461bcd 0000035f: PUSH1 0xe5 00000361: SHL 00000362: DUP2 00000363: MSTORE 00000364: PUSH1 0x04 00000366: ADD 00000367: PUSH2 0x0113 0000036a: SWAP1 0000036b: PUSH2 0x0f40 0000036e: JUMP 0000036f: JUMPDEST 00000370: PUSH1 0x40 00000372: MLOAD 00000373: PUSH4 0x095ea7b3 00000378: PUSH1 0xe0 0000037a: SHL 0000037b: DUP2 0000037c: MSTORE 0000037d: PUSH1 0x01 0000037f: PUSH1 0x01 00000381: PUSH1 0xa0 00000383: SHL 00000384: SUB 00000385: DUP3 00000386: AND 00000387: SWAP1 00000388: PUSH4 0x095ea7b3 0000038d: SWAP1 0000038e: PUSH2 0x03b3 00000391: SWAP1 00000392: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 000003a7: SWAP1 000003a8: PUSH1 0x00 000003aa: NOT 000003ab: SWAP1 000003ac: PUSH1 0x04 000003ae: ADD 000003af: PUSH2 0x0f25 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH1 0x20 000003b6: PUSH1 0x40 000003b8: MLOAD 000003b9: DUP1 000003ba: DUP4 000003bb: SUB 000003bc: DUP2 000003bd: PUSH1 0x00 000003bf: DUP8 000003c0: DUP1 000003c1: EXTCODESIZE 000003c2: ISZERO 000003c3: DUP1 000003c4: ISZERO 000003c5: PUSH2 0x03cd 000003c8: JUMPI 000003c9: PUSH1 0x00 000003cb: DUP1 000003cc: REVERT 000003cd: JUMPDEST 000003ce: POP 000003cf: GAS 000003d0: CALL 000003d1: ISZERO 000003d2: DUP1 000003d3: ISZERO 000003d4: PUSH2 0x03e1 000003d7: JUMPI 000003d8: RETURNDATASIZE 000003d9: PUSH1 0x00 000003db: DUP1 000003dc: RETURNDATACOPY 000003dd: RETURNDATASIZE 000003de: PUSH1 0x00 000003e0: REVERT 000003e1: JUMPDEST 000003e2: POP 000003e3: POP 000003e4: POP 000003e5: POP 000003e6: PUSH1 0x40 000003e8: MLOAD 000003e9: RETURNDATASIZE 000003ea: PUSH1 0x1f 000003ec: NOT 000003ed: PUSH1 0x1f 000003ef: DUP3 000003f0: ADD 000003f1: AND 000003f2: DUP3 000003f3: ADD 000003f4: DUP1 000003f5: PUSH1 0x40 000003f7: MSTORE 000003f8: POP 000003f9: PUSH2 0x0405 000003fc: SWAP2 000003fd: SWAP1 000003fe: DUP2 000003ff: ADD 00000400: SWAP1 00000401: PUSH2 0x0d7d 00000404: JUMP 00000405: JUMPDEST 00000406: POP 00000407: PUSH1 0x40 00000409: MLOAD 0000040a: PUSH4 0x70a08231 0000040f: PUSH1 0xe0 00000411: SHL 00000412: DUP2 00000413: MSTORE 00000414: PUSH1 0x00 00000416: SWAP1 00000417: PUSH1 0x01 00000419: PUSH1 0x01 0000041b: PUSH1 0xa0 0000041d: SHL 0000041e: SUB 0000041f: DUP4 00000420: AND 00000421: SWAP1 00000422: PUSH4 0x70a08231 00000427: SWAP1 00000428: PUSH2 0x0435 0000042b: SWAP1 0000042c: ADDRESS 0000042d: SWAP1 0000042e: PUSH1 0x04 00000430: ADD 00000431: PUSH2 0x0ef5 00000434: JUMP 00000435: JUMPDEST 00000436: PUSH1 0x20 00000438: PUSH1 0x40 0000043a: MLOAD 0000043b: DUP1 0000043c: DUP4 0000043d: SUB 0000043e: DUP2 0000043f: DUP7 00000440: DUP1 00000441: EXTCODESIZE 00000442: ISZERO 00000443: DUP1 00000444: ISZERO 00000445: PUSH2 0x044d 00000448: JUMPI 00000449: PUSH1 0x00 0000044b: DUP1 0000044c: REVERT 0000044d: JUMPDEST 0000044e: POP 0000044f: GAS 00000450: STATICCALL 00000451: ISZERO 00000452: DUP1 00000453: ISZERO 00000454: PUSH2 0x0461 00000457: JUMPI 00000458: RETURNDATASIZE 00000459: PUSH1 0x00 0000045b: DUP1 0000045c: RETURNDATACOPY 0000045d: RETURNDATASIZE 0000045e: PUSH1 0x00 00000460: REVERT 00000461: JUMPDEST 00000462: POP 00000463: POP 00000464: POP 00000465: POP 00000466: PUSH1 0x40 00000468: MLOAD 00000469: RETURNDATASIZE 0000046a: PUSH1 0x1f 0000046c: NOT 0000046d: PUSH1 0x1f 0000046f: DUP3 00000470: ADD 00000471: AND 00000472: DUP3 00000473: ADD 00000474: DUP1 00000475: PUSH1 0x40 00000477: MSTORE 00000478: POP 00000479: PUSH2 0x0485 0000047c: SWAP2 0000047d: SWAP1 0000047e: DUP2 0000047f: ADD 00000480: SWAP1 00000481: PUSH2 0x0d9b 00000484: JUMP 00000485: JUMPDEST 00000486: PUSH1 0x00 00000488: DUP1 00000489: SLOAD 0000048a: SWAP2 0000048b: SWAP3 0000048c: POP 0000048d: PUSH1 0x01 0000048f: PUSH1 0x01 00000491: PUSH1 0xa0 00000493: SHL 00000494: SUB 00000495: SWAP1 00000496: SWAP2 00000497: AND 00000498: SWAP1 00000499: PUSH4 0x38ed1739 0000049e: SWAP1 0000049f: DUP4 000004a0: SWAP1 000004a1: PUSH2 0x04a9 000004a4: DUP7 000004a5: PUSH2 0x0abe 000004a8: JUMP 000004a9: JUMPDEST 000004aa: ADDRESS 000004ab: TIMESTAMP 000004ac: PUSH1 0x0f 000004ae: ADD 000004af: PUSH1 0x40 000004b1: MLOAD 000004b2: DUP7 000004b3: PUSH4 0xffffffff 000004b8: AND 000004b9: PUSH1 0xe0 000004bb: SHL 000004bc: DUP2 000004bd: MSTORE 000004be: PUSH1 0x04 000004c0: ADD 000004c1: PUSH2 0x028f 000004c4: SWAP6 000004c5: SWAP5 000004c6: SWAP4 000004c7: SWAP3 000004c8: SWAP2 000004c9: SWAP1 000004ca: PUSH2 0x0fc3 000004cd: JUMP 000004ce: JUMPDEST 000004cf: ORIGIN 000004d0: PUSH20 0x8888888888e9997e64793849389a8faf5e8e547c 000004e5: EQ 000004e6: DUP1 000004e7: PUSH2 0x04ff 000004ea: JUMPI 000004eb: POP 000004ec: ORIGIN 000004ed: PUSH16 0x2fcecf3bc87acc58802cdb526c4f019d 000004fe: EQ 000004ff: JUMPDEST 00000500: DUP1 00000501: PUSH2 0x0519 00000504: JUMPI 00000505: POP 00000506: ORIGIN 00000507: PUSH16 0x60500bbe9c1364a558c70941ccb52422 00000518: EQ 00000519: JUMPDEST 0000051a: DUP1 0000051b: PUSH2 0x0537 0000051e: JUMPI 0000051f: POP 00000520: ORIGIN 00000521: PUSH20 0x68cf50fe8348bb714c3c75370a43843d94a4b3da 00000536: EQ 00000537: JUMPDEST 00000538: PUSH2 0x0553 0000053b: JUMPI 0000053c: PUSH1 0x40 0000053e: MLOAD 0000053f: PUSH3 0x461bcd 00000543: PUSH1 0xe5 00000545: SHL 00000546: DUP2 00000547: MSTORE 00000548: PUSH1 0x04 0000054a: ADD 0000054b: PUSH2 0x0113 0000054e: SWAP1 0000054f: PUSH2 0x0f40 00000552: JUMP 00000553: JUMPDEST 00000554: PUSH1 0x40 00000556: MLOAD 00000557: PUSH4 0x6eb1769f 0000055c: PUSH1 0xe1 0000055e: SHL 0000055f: DUP2 00000560: MSTORE 00000561: PUSH1 0x00 00000563: SWAP1 00000564: PUSH1 0x01 00000566: PUSH1 0x01 00000568: PUSH1 0xa0 0000056a: SHL 0000056b: SUB 0000056c: DUP5 0000056d: AND 0000056e: SWAP1 0000056f: PUSH4 0xdd62ed3e 00000574: SWAP1 00000575: PUSH2 0x0598 00000578: SWAP1 00000579: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0000058e: SWAP1 0000058f: ADDRESS 00000590: SWAP1 00000591: PUSH1 0x04 00000593: ADD 00000594: PUSH2 0x0f03 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH1 0x20 0000059b: PUSH1 0x40 0000059d: MLOAD 0000059e: DUP1 0000059f: DUP4 000005a0: SUB 000005a1: DUP2 000005a2: DUP7 000005a3: DUP1 000005a4: EXTCODESIZE 000005a5: ISZERO 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05b0 000005ab: JUMPI 000005ac: PUSH1 0x00 000005ae: DUP1 000005af: REVERT 000005b0: JUMPDEST 000005b1: POP 000005b2: GAS 000005b3: STATICCALL 000005b4: ISZERO 000005b5: DUP1 000005b6: ISZERO 000005b7: PUSH2 0x05c4 000005ba: JUMPI 000005bb: RETURNDATASIZE 000005bc: PUSH1 0x00 000005be: DUP1 000005bf: RETURNDATACOPY 000005c0: RETURNDATASIZE 000005c1: PUSH1 0x00 000005c3: REVERT 000005c4: JUMPDEST 000005c5: POP 000005c6: POP 000005c7: POP 000005c8: POP 000005c9: PUSH1 0x40 000005cb: MLOAD 000005cc: RETURNDATASIZE 000005cd: PUSH1 0x1f 000005cf: NOT 000005d0: PUSH1 0x1f 000005d2: DUP3 000005d3: ADD 000005d4: AND 000005d5: DUP3 000005d6: ADD 000005d7: DUP1 000005d8: PUSH1 0x40 000005da: MSTORE 000005db: POP 000005dc: PUSH2 0x05e8 000005df: SWAP2 000005e0: SWAP1 000005e1: DUP2 000005e2: ADD 000005e3: SWAP1 000005e4: PUSH2 0x0d9b 000005e7: JUMP 000005e8: JUMPDEST 000005e9: SWAP1 000005ea: POP 000005eb: PUSH1 0x00 000005ed: NOT 000005ee: DUP2 000005ef: LT 000005f0: ISZERO 000005f1: PUSH2 0x068c 000005f4: JUMPI 000005f5: PUSH1 0x40 000005f7: MLOAD 000005f8: PUSH4 0x095ea7b3 000005fd: PUSH1 0xe0 000005ff: SHL 00000600: DUP2 00000601: MSTORE 00000602: PUSH1 0x01 00000604: PUSH1 0x01 00000606: PUSH1 0xa0 00000608: SHL 00000609: SUB 0000060a: DUP5 0000060b: AND 0000060c: SWAP1 0000060d: PUSH4 0x095ea7b3 00000612: SWAP1 00000613: PUSH2 0x0638 00000616: SWAP1 00000617: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0000062c: SWAP1 0000062d: PUSH1 0x00 0000062f: NOT 00000630: SWAP1 00000631: PUSH1 0x04 00000633: ADD 00000634: PUSH2 0x0f25 00000637: JUMP 00000638: JUMPDEST 00000639: PUSH1 0x20 0000063b: PUSH1 0x40 0000063d: MLOAD 0000063e: DUP1 0000063f: DUP4 00000640: SUB 00000641: DUP2 00000642: PUSH1 0x00 00000644: DUP8 00000645: DUP1 00000646: EXTCODESIZE 00000647: ISZERO 00000648: DUP1 00000649: ISZERO 0000064a: PUSH2 0x0652 0000064d: JUMPI 0000064e: PUSH1 0x00 00000650: DUP1 00000651: REVERT 00000652: JUMPDEST 00000653: POP 00000654: GAS 00000655: CALL 00000656: ISZERO 00000657: DUP1 00000658: ISZERO 00000659: PUSH2 0x0666 0000065c: JUMPI 0000065d: RETURNDATASIZE 0000065e: PUSH1 0x00 00000660: DUP1 00000661: RETURNDATACOPY 00000662: RETURNDATASIZE 00000663: PUSH1 0x00 00000665: REVERT 00000666: JUMPDEST 00000667: POP 00000668: POP 00000669: POP 0000066a: POP 0000066b: PUSH1 0x40 0000066d: MLOAD 0000066e: RETURNDATASIZE 0000066f: PUSH1 0x1f 00000671: NOT 00000672: PUSH1 0x1f 00000674: DUP3 00000675: ADD 00000676: AND 00000677: DUP3 00000678: ADD 00000679: DUP1 0000067a: PUSH1 0x40 0000067c: MSTORE 0000067d: POP 0000067e: PUSH2 0x068a 00000681: SWAP2 00000682: SWAP1 00000683: DUP2 00000684: ADD 00000685: SWAP1 00000686: PUSH2 0x0d7d 00000689: JUMP 0000068a: JUMPDEST 0000068b: POP 0000068c: JUMPDEST 0000068d: DUP2 0000068e: PUSH2 0x071b 00000691: JUMPI 00000692: PUSH1 0x40 00000694: MLOAD 00000695: PUSH4 0x70a08231 0000069a: PUSH1 0xe0 0000069c: SHL 0000069d: DUP2 0000069e: MSTORE 0000069f: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000006b4: SWAP1 000006b5: PUSH4 0x70a08231 000006ba: SWAP1 000006bb: PUSH2 0x06c8 000006be: SWAP1 000006bf: ADDRESS 000006c0: SWAP1 000006c1: PUSH1 0x04 000006c3: ADD 000006c4: PUSH2 0x0ef5 000006c7: JUMP 000006c8: JUMPDEST 000006c9: PUSH1 0x20 000006cb: PUSH1 0x40 000006cd: MLOAD 000006ce: DUP1 000006cf: DUP4 000006d0: SUB 000006d1: DUP2 000006d2: DUP7 000006d3: DUP1 000006d4: EXTCODESIZE 000006d5: ISZERO 000006d6: DUP1 000006d7: ISZERO 000006d8: PUSH2 0x06e0 000006db: JUMPI 000006dc: PUSH1 0x00 000006de: DUP1 000006df: REVERT 000006e0: JUMPDEST 000006e1: POP 000006e2: GAS 000006e3: STATICCALL 000006e4: ISZERO 000006e5: DUP1 000006e6: ISZERO 000006e7: PUSH2 0x06f4 000006ea: JUMPI 000006eb: RETURNDATASIZE 000006ec: PUSH1 0x00 000006ee: DUP1 000006ef: RETURNDATACOPY 000006f0: RETURNDATASIZE 000006f1: PUSH1 0x00 000006f3: REVERT 000006f4: JUMPDEST 000006f5: POP 000006f6: POP 000006f7: POP 000006f8: POP 000006f9: PUSH1 0x40 000006fb: MLOAD 000006fc: RETURNDATASIZE 000006fd: PUSH1 0x1f 000006ff: NOT 00000700: PUSH1 0x1f 00000702: DUP3 00000703: ADD 00000704: AND 00000705: DUP3 00000706: ADD 00000707: DUP1 00000708: PUSH1 0x40 0000070a: MSTORE 0000070b: POP 0000070c: PUSH2 0x0718 0000070f: SWAP2 00000710: SWAP1 00000711: DUP2 00000712: ADD 00000713: SWAP1 00000714: PUSH2 0x0d9b 00000717: JUMP 00000718: JUMPDEST 00000719: SWAP2 0000071a: POP 0000071b: JUMPDEST 0000071c: PUSH1 0x00 0000071e: DUP1 0000071f: SLOAD 00000720: PUSH1 0x01 00000722: PUSH1 0x01 00000724: PUSH1 0xa0 00000726: SHL 00000727: SUB 00000728: AND 00000729: SWAP1 0000072a: PUSH4 0x38ed1739 0000072f: SWAP1 00000730: DUP5 00000731: SWAP1 00000732: PUSH2 0x073a 00000735: DUP8 00000736: PUSH2 0x0b51 00000739: JUMP 0000073a: JUMPDEST 0000073b: ADDRESS 0000073c: TIMESTAMP 0000073d: PUSH1 0x2d 0000073f: ADD 00000740: PUSH1 0x40 00000742: MLOAD 00000743: DUP7 00000744: PUSH4 0xffffffff 00000749: AND 0000074a: PUSH1 0xe0 0000074c: SHL 0000074d: DUP2 0000074e: MSTORE 0000074f: PUSH1 0x04 00000751: ADD 00000752: PUSH2 0x075f 00000755: SWAP6 00000756: SWAP5 00000757: SWAP4 00000758: SWAP3 00000759: SWAP2 0000075a: SWAP1 0000075b: PUSH2 0x0fc3 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH1 0x00 00000762: PUSH1 0x40 00000764: MLOAD 00000765: DUP1 00000766: DUP4 00000767: SUB 00000768: DUP2 00000769: PUSH1 0x00 0000076b: DUP8 0000076c: DUP1 0000076d: EXTCODESIZE 0000076e: ISZERO 0000076f: DUP1 00000770: ISZERO 00000771: PUSH2 0x0779 00000774: JUMPI 00000775: PUSH1 0x00 00000777: DUP1 00000778: REVERT 00000779: JUMPDEST 0000077a: POP 0000077b: GAS 0000077c: CALL 0000077d: ISZERO 0000077e: DUP1 0000077f: ISZERO 00000780: PUSH2 0x078d 00000783: JUMPI 00000784: RETURNDATASIZE 00000785: PUSH1 0x00 00000787: DUP1 00000788: RETURNDATACOPY 00000789: RETURNDATASIZE 0000078a: PUSH1 0x00 0000078c: REVERT 0000078d: JUMPDEST 0000078e: POP 0000078f: POP 00000790: POP 00000791: POP 00000792: PUSH1 0x40 00000794: MLOAD 00000795: RETURNDATASIZE 00000796: PUSH1 0x00 00000798: DUP3 00000799: RETURNDATACOPY 0000079a: PUSH1 0x1f 0000079c: RETURNDATASIZE 0000079d: SWAP1 0000079e: DUP2 0000079f: ADD 000007a0: PUSH1 0x1f 000007a2: NOT 000007a3: AND 000007a4: DUP3 000007a5: ADD 000007a6: PUSH1 0x40 000007a8: MSTORE 000007a9: PUSH2 0x07b5 000007ac: SWAP2 000007ad: SWAP1 000007ae: DUP2 000007af: ADD 000007b0: SWAP1 000007b1: PUSH2 0x0d48 000007b4: JUMP 000007b5: JUMPDEST 000007b6: POP 000007b7: PUSH1 0x40 000007b9: MLOAD 000007ba: PUSH4 0x70a08231 000007bf: PUSH1 0xe0 000007c1: SHL 000007c2: DUP2 000007c3: MSTORE 000007c4: PUSH1 0x00 000007c6: SWAP1 000007c7: PUSH1 0x01 000007c9: PUSH1 0x01 000007cb: PUSH1 0xa0 000007cd: SHL 000007ce: SUB 000007cf: DUP6 000007d0: AND 000007d1: SWAP1 000007d2: PUSH4 0x70a08231 000007d7: SWAP1 000007d8: PUSH2 0x07e5 000007db: SWAP1 000007dc: ADDRESS 000007dd: SWAP1 000007de: PUSH1 0x04 000007e0: ADD 000007e1: PUSH2 0x0ef5 000007e4: JUMP 000007e5: JUMPDEST 000007e6: PUSH1 0x20 000007e8: PUSH1 0x40 000007ea: MLOAD 000007eb: DUP1 000007ec: DUP4 000007ed: SUB 000007ee: DUP2 000007ef: DUP7 000007f0: DUP1 000007f1: EXTCODESIZE 000007f2: ISZERO 000007f3: DUP1 000007f4: ISZERO 000007f5: PUSH2 0x07fd 000007f8: JUMPI 000007f9: PUSH1 0x00 000007fb: DUP1 000007fc: REVERT 000007fd: JUMPDEST 000007fe: POP 000007ff: GAS 00000800: STATICCALL 00000801: ISZERO 00000802: DUP1 00000803: ISZERO 00000804: PUSH2 0x0811 00000807: JUMPI 00000808: RETURNDATASIZE 00000809: PUSH1 0x00 0000080b: DUP1 0000080c: RETURNDATACOPY 0000080d: RETURNDATASIZE 0000080e: PUSH1 0x00 00000810: REVERT 00000811: JUMPDEST 00000812: POP 00000813: POP 00000814: POP 00000815: POP 00000816: PUSH1 0x40 00000818: MLOAD 00000819: RETURNDATASIZE 0000081a: PUSH1 0x1f 0000081c: NOT 0000081d: PUSH1 0x1f 0000081f: DUP3 00000820: ADD 00000821: AND 00000822: DUP3 00000823: ADD 00000824: DUP1 00000825: PUSH1 0x40 00000827: MSTORE 00000828: POP 00000829: PUSH2 0x0835 0000082c: SWAP2 0000082d: SWAP1 0000082e: DUP2 0000082f: ADD 00000830: SWAP1 00000831: PUSH2 0x0d9b 00000834: JUMP 00000835: JUMPDEST 00000836: SWAP1 00000837: POP 00000838: ORIGIN 00000839: PUSH20 0x8888888888e9997e64793849389a8faf5e8e547c 0000084e: EQ 0000084f: ISZERO 00000850: PUSH2 0x08f3 00000853: JUMPI 00000854: PUSH1 0x00 00000856: DUP1 00000857: SLOAD 00000858: PUSH1 0x01 0000085a: PUSH1 0x01 0000085c: PUSH1 0xa0 0000085e: SHL 0000085f: SUB 00000860: AND 00000861: SWAP1 00000862: PUSH4 0x38ed1739 00000867: SWAP1 00000868: DUP4 00000869: SWAP1 0000086a: PUSH2 0x0872 0000086d: DUP9 0000086e: PUSH2 0x0abe 00000871: JUMP 00000872: JUMPDEST 00000873: ADDRESS 00000874: TIMESTAMP 00000875: PUSH1 0x2d 00000877: ADD 00000878: PUSH1 0x40 0000087a: MLOAD 0000087b: DUP7 0000087c: PUSH4 0xffffffff 00000881: AND 00000882: PUSH1 0xe0 00000884: SHL 00000885: DUP2 00000886: MSTORE 00000887: PUSH1 0x04 00000889: ADD 0000088a: PUSH2 0x0897 0000088d: SWAP6 0000088e: SWAP5 0000088f: SWAP4 00000890: SWAP3 00000891: SWAP2 00000892: SWAP1 00000893: PUSH2 0x0fc3 00000896: JUMP 00000897: JUMPDEST 00000898: PUSH1 0x00 0000089a: PUSH1 0x40 0000089c: MLOAD 0000089d: DUP1 0000089e: DUP4 0000089f: SUB 000008a0: DUP2 000008a1: PUSH1 0x00 000008a3: DUP8 000008a4: DUP1 000008a5: EXTCODESIZE 000008a6: ISZERO 000008a7: DUP1 000008a8: ISZERO 000008a9: PUSH2 0x08b1 000008ac: JUMPI 000008ad: PUSH1 0x00 000008af: DUP1 000008b0: REVERT 000008b1: JUMPDEST 000008b2: POP 000008b3: GAS 000008b4: CALL 000008b5: ISZERO 000008b6: DUP1 000008b7: ISZERO 000008b8: PUSH2 0x08c5 000008bb: JUMPI 000008bc: RETURNDATASIZE 000008bd: PUSH1 0x00 000008bf: DUP1 000008c0: RETURNDATACOPY 000008c1: RETURNDATASIZE 000008c2: PUSH1 0x00 000008c4: REVERT 000008c5: JUMPDEST 000008c6: POP 000008c7: POP 000008c8: POP 000008c9: POP 000008ca: PUSH1 0x40 000008cc: MLOAD 000008cd: RETURNDATASIZE 000008ce: PUSH1 0x00 000008d0: DUP3 000008d1: RETURNDATACOPY 000008d2: PUSH1 0x1f 000008d4: RETURNDATASIZE 000008d5: SWAP1 000008d6: DUP2 000008d7: ADD 000008d8: PUSH1 0x1f 000008da: NOT 000008db: AND 000008dc: DUP3 000008dd: ADD 000008de: PUSH1 0x40 000008e0: MSTORE 000008e1: PUSH2 0x08ed 000008e4: SWAP2 000008e5: SWAP1 000008e6: DUP2 000008e7: ADD 000008e8: SWAP1 000008e9: PUSH2 0x0d48 000008ec: JUMP 000008ed: JUMPDEST 000008ee: POP 000008ef: PUSH2 0x0ab8 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH1 0x00 000008f6: SLOAD 000008f7: PUSH1 0x01 000008f9: PUSH1 0x01 000008fb: PUSH1 0xa0 000008fd: SHL 000008fe: SUB 000008ff: AND 00000900: PUSH4 0x38ed1739 00000905: PUSH2 0x0926 00000908: PUSH1 0x04 0000090a: PUSH2 0x091a 0000090d: DUP6 0000090e: PUSH1 0x03 00000910: PUSH4 0xffffffff 00000915: PUSH2 0x0bc5 00000918: AND 00000919: JUMP 0000091a: JUMPDEST 0000091b: SWAP1 0000091c: PUSH4 0xffffffff 00000921: PUSH2 0x0c08 00000924: AND 00000925: JUMP 00000926: JUMPDEST 00000927: PUSH1 0x00 00000929: PUSH2 0x0931 0000092c: DUP9 0000092d: PUSH2 0x0abe 00000930: JUMP 00000931: JUMPDEST 00000932: ADDRESS 00000933: TIMESTAMP 00000934: PUSH1 0x2d 00000936: ADD 00000937: PUSH1 0x40 00000939: MLOAD 0000093a: DUP7 0000093b: PUSH4 0xffffffff 00000940: AND 00000941: PUSH1 0xe0 00000943: SHL 00000944: DUP2 00000945: MSTORE 00000946: PUSH1 0x04 00000948: ADD 00000949: PUSH2 0x0956 0000094c: SWAP6 0000094d: SWAP5 0000094e: SWAP4 0000094f: SWAP3 00000950: SWAP2 00000951: SWAP1 00000952: PUSH2 0x0fc3 00000955: JUMP 00000956: JUMPDEST 00000957: PUSH1 0x00 00000959: PUSH1 0x40 0000095b: MLOAD 0000095c: DUP1 0000095d: DUP4 0000095e: SUB 0000095f: DUP2 00000960: PUSH1 0x00 00000962: DUP8 00000963: DUP1 00000964: EXTCODESIZE 00000965: ISZERO 00000966: DUP1 00000967: ISZERO 00000968: PUSH2 0x0970 0000096b: JUMPI 0000096c: PUSH1 0x00 0000096e: DUP1 0000096f: REVERT 00000970: JUMPDEST 00000971: POP 00000972: GAS 00000973: CALL 00000974: ISZERO 00000975: DUP1 00000976: ISZERO 00000977: PUSH2 0x0984 0000097a: JUMPI 0000097b: RETURNDATASIZE 0000097c: PUSH1 0x00 0000097e: DUP1 0000097f: RETURNDATACOPY 00000980: RETURNDATASIZE 00000981: PUSH1 0x00 00000983: REVERT 00000984: JUMPDEST 00000985: POP 00000986: POP 00000987: POP 00000988: POP 00000989: PUSH1 0x40 0000098b: MLOAD 0000098c: RETURNDATASIZE 0000098d: PUSH1 0x00 0000098f: DUP3 00000990: RETURNDATACOPY 00000991: PUSH1 0x1f 00000993: RETURNDATASIZE 00000994: SWAP1 00000995: DUP2 00000996: ADD 00000997: PUSH1 0x1f 00000999: NOT 0000099a: AND 0000099b: DUP3 0000099c: ADD 0000099d: PUSH1 0x40 0000099f: MSTORE 000009a0: PUSH2 0x09ac 000009a3: SWAP2 000009a4: SWAP1 000009a5: DUP2 000009a6: ADD 000009a7: SWAP1 000009a8: PUSH2 0x0d48 000009ab: JUMP 000009ac: JUMPDEST 000009ad: POP 000009ae: PUSH1 0x40 000009b0: MLOAD 000009b1: PUSH4 0x70a08231 000009b6: PUSH1 0xe0 000009b8: SHL 000009b9: DUP2 000009ba: MSTORE 000009bb: PUSH1 0x01 000009bd: PUSH1 0x01 000009bf: PUSH1 0xa0 000009c1: SHL 000009c2: SUB 000009c3: DUP6 000009c4: AND 000009c5: SWAP1 000009c6: PUSH4 0xa9059cbb 000009cb: SWAP1 000009cc: PUSH20 0x68cf50fe8348bb714c3c75370a43843d94a4b3da 000009e1: SWAP1 000009e2: DUP4 000009e3: SWAP1 000009e4: PUSH4 0x70a08231 000009e9: SWAP1 000009ea: PUSH2 0x09f7 000009ed: SWAP1 000009ee: ADDRESS 000009ef: SWAP1 000009f0: PUSH1 0x04 000009f2: ADD 000009f3: PUSH2 0x0ef5 000009f6: JUMP 000009f7: JUMPDEST 000009f8: PUSH1 0x20 000009fa: PUSH1 0x40 000009fc: MLOAD 000009fd: DUP1 000009fe: DUP4 000009ff: SUB 00000a00: DUP2 00000a01: DUP7 00000a02: DUP1 00000a03: EXTCODESIZE 00000a04: ISZERO 00000a05: DUP1 00000a06: ISZERO 00000a07: PUSH2 0x0a0f 00000a0a: JUMPI 00000a0b: PUSH1 0x00 00000a0d: DUP1 00000a0e: REVERT 00000a0f: JUMPDEST 00000a10: POP 00000a11: GAS 00000a12: STATICCALL 00000a13: ISZERO 00000a14: DUP1 00000a15: ISZERO 00000a16: PUSH2 0x0a23 00000a19: JUMPI 00000a1a: RETURNDATASIZE 00000a1b: PUSH1 0x00 00000a1d: DUP1 00000a1e: RETURNDATACOPY 00000a1f: RETURNDATASIZE 00000a20: PUSH1 0x00 00000a22: REVERT 00000a23: JUMPDEST 00000a24: POP 00000a25: POP 00000a26: POP 00000a27: POP 00000a28: PUSH1 0x40 00000a2a: MLOAD 00000a2b: RETURNDATASIZE 00000a2c: PUSH1 0x1f 00000a2e: NOT 00000a2f: PUSH1 0x1f 00000a31: DUP3 00000a32: ADD 00000a33: AND 00000a34: DUP3 00000a35: ADD 00000a36: DUP1 00000a37: PUSH1 0x40 00000a39: MSTORE 00000a3a: POP 00000a3b: PUSH2 0x0a47 00000a3e: SWAP2 00000a3f: SWAP1 00000a40: DUP2 00000a41: ADD 00000a42: SWAP1 00000a43: PUSH2 0x0d9b 00000a46: JUMP 00000a47: JUMPDEST 00000a48: PUSH1 0x40 00000a4a: MLOAD 00000a4b: DUP4 00000a4c: PUSH4 0xffffffff 00000a51: AND 00000a52: PUSH1 0xe0 00000a54: SHL 00000a55: DUP2 00000a56: MSTORE 00000a57: PUSH1 0x04 00000a59: ADD 00000a5a: PUSH2 0x0a64 00000a5d: SWAP3 00000a5e: SWAP2 00000a5f: SWAP1 00000a60: PUSH2 0x0f25 00000a63: JUMP 00000a64: JUMPDEST 00000a65: PUSH1 0x20 00000a67: PUSH1 0x40 00000a69: MLOAD 00000a6a: DUP1 00000a6b: DUP4 00000a6c: SUB 00000a6d: DUP2 00000a6e: PUSH1 0x00 00000a70: DUP8 00000a71: DUP1 00000a72: EXTCODESIZE 00000a73: ISZERO 00000a74: DUP1 00000a75: ISZERO 00000a76: PUSH2 0x0a7e 00000a79: JUMPI 00000a7a: PUSH1 0x00 00000a7c: DUP1 00000a7d: REVERT 00000a7e: JUMPDEST 00000a7f: POP 00000a80: GAS 00000a81: CALL 00000a82: ISZERO 00000a83: DUP1 00000a84: ISZERO 00000a85: PUSH2 0x0a92 00000a88: JUMPI 00000a89: RETURNDATASIZE 00000a8a: PUSH1 0x00 00000a8c: DUP1 00000a8d: RETURNDATACOPY 00000a8e: RETURNDATASIZE 00000a8f: PUSH1 0x00 00000a91: REVERT 00000a92: JUMPDEST 00000a93: POP 00000a94: POP 00000a95: POP 00000a96: POP 00000a97: PUSH1 0x40 00000a99: MLOAD 00000a9a: RETURNDATASIZE 00000a9b: PUSH1 0x1f 00000a9d: NOT 00000a9e: PUSH1 0x1f 00000aa0: DUP3 00000aa1: ADD 00000aa2: AND 00000aa3: DUP3 00000aa4: ADD 00000aa5: DUP1 00000aa6: PUSH1 0x40 00000aa8: MSTORE 00000aa9: POP 00000aaa: PUSH2 0x0ab6 00000aad: SWAP2 00000aae: SWAP1 00000aaf: DUP2 00000ab0: ADD 00000ab1: SWAP1 00000ab2: PUSH2 0x0d7d 00000ab5: JUMP 00000ab6: JUMPDEST 00000ab7: POP 00000ab8: JUMPDEST 00000ab9: POP 00000aba: POP 00000abb: POP 00000abc: POP 00000abd: JUMP 00000abe: JUMPDEST 00000abf: PUSH1 0x40 00000ac1: DUP1 00000ac2: MLOAD 00000ac3: PUSH1 0x02 00000ac5: DUP1 00000ac6: DUP3 00000ac7: MSTORE 00000ac8: PUSH1 0x60 00000aca: DUP1 00000acb: DUP4 00000acc: ADD 00000acd: DUP5 00000ace: MSTORE 00000acf: SWAP3 00000ad0: DUP4 00000ad1: SWAP3 00000ad2: SWAP2 00000ad3: SWAP1 00000ad4: PUSH1 0x20 00000ad6: DUP4 00000ad7: ADD 00000ad8: SWAP1 00000ad9: DUP1 00000ada: CODESIZE 00000adb: DUP4 00000adc: CODECOPY 00000add: ADD 00000ade: SWAP1 00000adf: POP 00000ae0: POP 00000ae1: SWAP1 00000ae2: POP 00000ae3: DUP3 00000ae4: DUP2 00000ae5: PUSH1 0x00 00000ae7: DUP2 00000ae8: MLOAD 00000ae9: DUP2 00000aea: LT 00000aeb: PUSH2 0x0af0 00000aee: JUMPI 00000aef: INVALID 00000af0: JUMPDEST 00000af1: PUSH1 0x20 00000af3: MUL 00000af4: PUSH1 0x20 00000af6: ADD 00000af7: ADD 00000af8: SWAP1 00000af9: PUSH1 0x01 00000afb: PUSH1 0x01 00000afd: PUSH1 0xa0 00000aff: SHL 00000b00: SUB 00000b01: AND 00000b02: SWAP1 00000b03: DUP2 00000b04: PUSH1 0x01 00000b06: PUSH1 0x01 00000b08: PUSH1 0xa0 00000b0a: SHL 00000b0b: SUB 00000b0c: AND 00000b0d: DUP2 00000b0e: MSTORE 00000b0f: POP 00000b10: POP 00000b11: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000b26: DUP2 00000b27: PUSH1 0x01 00000b29: DUP2 00000b2a: MLOAD 00000b2b: DUP2 00000b2c: LT 00000b2d: PUSH2 0x0b32 00000b30: JUMPI 00000b31: INVALID 00000b32: JUMPDEST 00000b33: PUSH1 0x01 00000b35: PUSH1 0x01 00000b37: PUSH1 0xa0 00000b39: SHL 00000b3a: SUB 00000b3b: SWAP1 00000b3c: SWAP3 00000b3d: AND 00000b3e: PUSH1 0x20 00000b40: SWAP3 00000b41: DUP4 00000b42: MUL 00000b43: SWAP2 00000b44: SWAP1 00000b45: SWAP2 00000b46: ADD 00000b47: SWAP1 00000b48: SWAP2 00000b49: ADD 00000b4a: MSTORE 00000b4b: SWAP1 00000b4c: POP 00000b4d: SWAP2 00000b4e: SWAP1 00000b4f: POP 00000b50: JUMP 00000b51: JUMPDEST 00000b52: PUSH1 0x40 00000b54: DUP1 00000b55: MLOAD 00000b56: PUSH1 0x02 00000b58: DUP1 00000b59: DUP3 00000b5a: MSTORE 00000b5b: PUSH1 0x60 00000b5d: DUP1 00000b5e: DUP4 00000b5f: ADD 00000b60: DUP5 00000b61: MSTORE 00000b62: SWAP3 00000b63: DUP4 00000b64: SWAP3 00000b65: SWAP2 00000b66: SWAP1 00000b67: PUSH1 0x20 00000b69: DUP4 00000b6a: ADD 00000b6b: SWAP1 00000b6c: DUP1 00000b6d: CODESIZE 00000b6e: DUP4 00000b6f: CODECOPY 00000b70: ADD 00000b71: SWAP1 00000b72: POP 00000b73: POP 00000b74: SWAP1 00000b75: POP 00000b76: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000b8b: DUP2 00000b8c: PUSH1 0x00 00000b8e: DUP2 00000b8f: MLOAD 00000b90: DUP2 00000b91: LT 00000b92: PUSH2 0x0b97 00000b95: JUMPI 00000b96: INVALID 00000b97: JUMPDEST 00000b98: PUSH1 0x20 00000b9a: MUL 00000b9b: PUSH1 0x20 00000b9d: ADD 00000b9e: ADD 00000b9f: SWAP1 00000ba0: PUSH1 0x01 00000ba2: PUSH1 0x01 00000ba4: PUSH1 0xa0 00000ba6: SHL 00000ba7: SUB 00000ba8: AND 00000ba9: SWAP1 00000baa: DUP2 00000bab: PUSH1 0x01 00000bad: PUSH1 0x01 00000baf: PUSH1 0xa0 00000bb1: SHL 00000bb2: SUB 00000bb3: AND 00000bb4: DUP2 00000bb5: MSTORE 00000bb6: POP 00000bb7: POP 00000bb8: DUP3 00000bb9: DUP2 00000bba: PUSH1 0x01 00000bbc: DUP2 00000bbd: MLOAD 00000bbe: DUP2 00000bbf: LT 00000bc0: PUSH2 0x0b32 00000bc3: JUMPI 00000bc4: INVALID 00000bc5: JUMPDEST 00000bc6: PUSH1 0x00 00000bc8: DUP3 00000bc9: PUSH2 0x0bd4 00000bcc: JUMPI 00000bcd: POP 00000bce: PUSH1 0x00 00000bd0: PUSH2 0x0c02 00000bd3: JUMP 00000bd4: JUMPDEST 00000bd5: DUP3 00000bd6: DUP3 00000bd7: MUL 00000bd8: DUP3 00000bd9: DUP5 00000bda: DUP3 00000bdb: DUP2 00000bdc: PUSH2 0x0be1 00000bdf: JUMPI 00000be0: INVALID 00000be1: JUMPDEST 00000be2: DIV 00000be3: EQ 00000be4: PUSH2 0x0bff 00000be7: JUMPI 00000be8: PUSH1 0x40 00000bea: MLOAD 00000beb: PUSH3 0x461bcd 00000bef: PUSH1 0xe5 00000bf1: SHL 00000bf2: DUP2 00000bf3: MSTORE 00000bf4: PUSH1 0x04 00000bf6: ADD 00000bf7: PUSH2 0x0113 00000bfa: SWAP1 00000bfb: PUSH2 0x0f60 00000bfe: JUMP 00000bff: JUMPDEST 00000c00: SWAP1 00000c01: POP 00000c02: JUMPDEST 00000c03: SWAP3 00000c04: SWAP2 00000c05: POP 00000c06: POP 00000c07: JUMP 00000c08: JUMPDEST 00000c09: PUSH1 0x00 00000c0b: DUP1 00000c0c: DUP3 00000c0d: GT 00000c0e: PUSH2 0x0c29 00000c11: JUMPI 00000c12: PUSH1 0x40 00000c14: MLOAD 00000c15: PUSH3 0x461bcd 00000c19: PUSH1 0xe5 00000c1b: SHL 00000c1c: DUP2 00000c1d: MSTORE 00000c1e: PUSH1 0x04 00000c20: ADD 00000c21: PUSH2 0x0113 00000c24: SWAP1 00000c25: PUSH2 0x0f50 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: PUSH1 0x00 00000c2c: DUP3 00000c2d: DUP5 00000c2e: DUP2 00000c2f: PUSH2 0x0c34 00000c32: JUMPI 00000c33: INVALID 00000c34: JUMPDEST 00000c35: DIV 00000c36: SWAP5 00000c37: SWAP4 00000c38: POP 00000c39: POP 00000c3a: POP 00000c3b: POP 00000c3c: JUMP 00000c3d: JUMPDEST 00000c3e: DUP1 00000c3f: CALLDATALOAD 00000c40: PUSH2 0x0c02 00000c43: DUP2 00000c44: PUSH2 0x109a 00000c47: JUMP 00000c48: JUMPDEST 00000c49: PUSH1 0x00 00000c4b: DUP3 00000c4c: PUSH1 0x1f 00000c4e: DUP4 00000c4f: ADD 00000c50: SLT 00000c51: PUSH2 0x0c59 00000c54: JUMPI 00000c55: PUSH1 0x00 00000c57: DUP1 00000c58: REVERT 00000c59: JUMPDEST 00000c5a: DUP2 00000c5b: MLOAD 00000c5c: PUSH2 0x0c6c 00000c5f: PUSH2 0x0c67 00000c62: DUP3 00000c63: PUSH2 0x1026 00000c66: JUMP 00000c67: JUMPDEST 00000c68: PUSH2 0x0fff 00000c6b: JUMP 00000c6c: JUMPDEST 00000c6d: SWAP2 00000c6e: POP 00000c6f: DUP2 00000c70: DUP2 00000c71: DUP4 00000c72: MSTORE 00000c73: PUSH1 0x20 00000c75: DUP5 00000c76: ADD 00000c77: SWAP4 00000c78: POP 00000c79: PUSH1 0x20 00000c7b: DUP2 00000c7c: ADD 00000c7d: SWAP1 00000c7e: POP 00000c7f: DUP4 00000c80: DUP6 00000c81: PUSH1 0x20 00000c83: DUP5 00000c84: MUL 00000c85: DUP3 00000c86: ADD 00000c87: GT 00000c88: ISZERO 00000c89: PUSH2 0x0c91 00000c8c: JUMPI 00000c8d: PUSH1 0x00 00000c8f: DUP1 00000c90: REVERT 00000c91: JUMPDEST 00000c92: PUSH1 0x00 00000c94: JUMPDEST 00000c95: DUP4 00000c96: DUP2 00000c97: LT 00000c98: ISZERO 00000c99: PUSH2 0x0cbd 00000c9c: JUMPI 00000c9d: DUP2 00000c9e: PUSH2 0x0ca7 00000ca1: DUP9 00000ca2: DUP3 00000ca3: PUSH2 0x0cdd 00000ca6: JUMP 00000ca7: JUMPDEST 00000ca8: DUP5 00000ca9: MSTORE 00000caa: POP 00000cab: PUSH1 0x20 00000cad: SWAP3 00000cae: DUP4 00000caf: ADD 00000cb0: SWAP3 00000cb1: SWAP2 00000cb2: SWAP1 00000cb3: SWAP2 00000cb4: ADD 00000cb5: SWAP1 00000cb6: PUSH1 0x01 00000cb8: ADD 00000cb9: PUSH2 0x0c94 00000cbc: JUMP 00000cbd: JUMPDEST 00000cbe: POP 00000cbf: POP 00000cc0: POP 00000cc1: POP 00000cc2: SWAP3 00000cc3: SWAP2 00000cc4: POP 00000cc5: POP 00000cc6: JUMP 00000cc7: JUMPDEST 00000cc8: DUP1 00000cc9: MLOAD 00000cca: PUSH2 0x0c02 00000ccd: DUP2 00000cce: PUSH2 0x10b1 00000cd1: JUMP 00000cd2: JUMPDEST 00000cd3: DUP1 00000cd4: CALLDATALOAD 00000cd5: PUSH2 0x0c02 00000cd8: DUP2 00000cd9: PUSH2 0x10ba 00000cdc: JUMP 00000cdd: JUMPDEST 00000cde: DUP1 00000cdf: MLOAD 00000ce0: PUSH2 0x0c02 00000ce3: DUP2 00000ce4: PUSH2 0x10ba 00000ce7: JUMP 00000ce8: JUMPDEST 00000ce9: PUSH1 0x00 00000ceb: PUSH1 0x20 00000ced: DUP3 00000cee: DUP5 00000cef: SUB 00000cf0: SLT 00000cf1: ISZERO 00000cf2: PUSH2 0x0cfa 00000cf5: JUMPI 00000cf6: PUSH1 0x00 00000cf8: DUP1 00000cf9: REVERT 00000cfa: JUMPDEST 00000cfb: PUSH1 0x00 00000cfd: PUSH2 0x0d06 00000d00: DUP5 00000d01: DUP5 00000d02: PUSH2 0x0c3d 00000d05: JUMP 00000d06: JUMPDEST 00000d07: SWAP5 00000d08: SWAP4 00000d09: POP 00000d0a: POP 00000d0b: POP 00000d0c: POP 00000d0d: JUMP 00000d0e: JUMPDEST 00000d0f: PUSH1 0x00 00000d11: DUP1 00000d12: PUSH1 0x40 00000d14: DUP4 00000d15: DUP6 00000d16: SUB 00000d17: SLT 00000d18: ISZERO 00000d19: PUSH2 0x0d21 00000d1c: JUMPI 00000d1d: PUSH1 0x00 00000d1f: DUP1 00000d20: REVERT 00000d21: JUMPDEST 00000d22: PUSH1 0x00 00000d24: PUSH2 0x0d2d 00000d27: DUP6 00000d28: DUP6 00000d29: PUSH2 0x0c3d 00000d2c: JUMP 00000d2d: JUMPDEST 00000d2e: SWAP3 00000d2f: POP 00000d30: POP 00000d31: PUSH1 0x20 00000d33: PUSH2 0x0d3e 00000d36: DUP6 00000d37: DUP3 00000d38: DUP7 00000d39: ADD 00000d3a: PUSH2 0x0cd2 00000d3d: JUMP 00000d3e: JUMPDEST 00000d3f: SWAP2 00000d40: POP 00000d41: POP 00000d42: SWAP3 00000d43: POP 00000d44: SWAP3 00000d45: SWAP1 00000d46: POP 00000d47: JUMP 00000d48: JUMPDEST 00000d49: PUSH1 0x00 00000d4b: PUSH1 0x20 00000d4d: DUP3 00000d4e: DUP5 00000d4f: SUB 00000d50: SLT 00000d51: ISZERO 00000d52: PUSH2 0x0d5a 00000d55: JUMPI 00000d56: PUSH1 0x00 00000d58: DUP1 00000d59: REVERT 00000d5a: JUMPDEST 00000d5b: DUP2 00000d5c: MLOAD 00000d5d: PUSH8 0xffffffffffffffff 00000d66: DUP2 00000d67: GT 00000d68: ISZERO 00000d69: PUSH2 0x0d71 00000d6c: JUMPI 00000d6d: PUSH1 0x00 00000d6f: DUP1 00000d70: REVERT 00000d71: JUMPDEST 00000d72: PUSH2 0x0d06 00000d75: DUP5 00000d76: DUP3 00000d77: DUP6 00000d78: ADD 00000d79: PUSH2 0x0c48 00000d7c: JUMP 00000d7d: JUMPDEST 00000d7e: PUSH1 0x00 00000d80: PUSH1 0x20 00000d82: DUP3 00000d83: DUP5 00000d84: SUB 00000d85: SLT 00000d86: ISZERO 00000d87: PUSH2 0x0d8f 00000d8a: JUMPI 00000d8b: PUSH1 0x00 00000d8d: DUP1 00000d8e: REVERT 00000d8f: JUMPDEST 00000d90: PUSH1 0x00 00000d92: PUSH2 0x0d06 00000d95: DUP5 00000d96: DUP5 00000d97: PUSH2 0x0cc7 00000d9a: JUMP 00000d9b: JUMPDEST 00000d9c: PUSH1 0x00 00000d9e: PUSH1 0x20 00000da0: DUP3 00000da1: DUP5 00000da2: SUB 00000da3: SLT 00000da4: ISZERO 00000da5: PUSH2 0x0dad 00000da8: JUMPI 00000da9: PUSH1 0x00 00000dab: DUP1 00000dac: REVERT 00000dad: JUMPDEST 00000dae: PUSH1 0x00 00000db0: PUSH2 0x0d06 00000db3: DUP5 00000db4: DUP5 00000db5: PUSH2 0x0cdd 00000db8: JUMP 00000db9: JUMPDEST 00000dba: PUSH1 0x00 00000dbc: PUSH2 0x0dc5 00000dbf: DUP4 00000dc0: DUP4 00000dc1: PUSH2 0x0ddc 00000dc4: JUMP 00000dc5: JUMPDEST 00000dc6: POP 00000dc7: POP 00000dc8: PUSH1 0x20 00000dca: ADD 00000dcb: SWAP1 00000dcc: JUMP 00000dcd: JUMPDEST 00000dce: PUSH2 0x0dd6 00000dd1: DUP2 00000dd2: PUSH2 0x1079 00000dd5: JUMP 00000dd6: JUMPDEST 00000dd7: DUP3 00000dd8: MSTORE 00000dd9: POP 00000dda: POP 00000ddb: JUMP 00000ddc: JUMPDEST 00000ddd: PUSH2 0x0dd6 00000de0: DUP2 00000de1: PUSH2 0x105a 00000de4: JUMP 00000de5: JUMPDEST 00000de6: PUSH1 0x00 00000de8: PUSH2 0x0df0 00000deb: DUP3 00000dec: PUSH2 0x104d 00000def: JUMP 00000df0: JUMPDEST 00000df1: PUSH2 0x0dfa 00000df4: DUP2 00000df5: DUP6 00000df6: PUSH2 0x1051 00000df9: JUMP 00000dfa: JUMPDEST 00000dfb: SWAP4 00000dfc: POP 00000dfd: PUSH2 0x0e05 00000e00: DUP4 00000e01: PUSH2 0x1047 00000e04: JUMP 00000e05: JUMPDEST 00000e06: DUP1 00000e07: PUSH1 0x00 00000e09: JUMPDEST 00000e0a: DUP4 00000e0b: DUP2 00000e0c: LT 00000e0d: ISZERO 00000e0e: PUSH2 0x0e33 00000e11: JUMPI 00000e12: DUP2 00000e13: MLOAD 00000e14: PUSH2 0x0e1d 00000e17: DUP9 00000e18: DUP3 00000e19: PUSH2 0x0db9 00000e1c: JUMP 00000e1d: JUMPDEST 00000e1e: SWAP8 00000e1f: POP 00000e20: PUSH2 0x0e28 00000e23: DUP4 00000e24: PUSH2 0x1047 00000e27: JUMP 00000e28: JUMPDEST 00000e29: SWAP3 00000e2a: POP 00000e2b: POP 00000e2c: PUSH1 0x01 00000e2e: ADD 00000e2f: PUSH2 0x0e09 00000e32: JUMP 00000e33: JUMPDEST 00000e34: POP 00000e35: SWAP5 00000e36: SWAP6 00000e37: SWAP5 00000e38: POP 00000e39: POP 00000e3a: POP 00000e3b: POP 00000e3c: POP 00000e3d: JUMP 00000e3e: JUMPDEST 00000e3f: PUSH2 0x0dd6 00000e42: DUP2 00000e43: PUSH2 0x1084 00000e46: JUMP 00000e47: JUMPDEST 00000e48: PUSH1 0x00 00000e4a: PUSH2 0x0e54 00000e4d: PUSH1 0x0d 00000e4f: DUP4 00000e50: PUSH2 0x1051 00000e53: JUMP 00000e54: JUMPDEST 00000e55: PUSH13 0x1058d8d95cdcc811195b9a5959 00000e63: PUSH1 0x9a 00000e65: SHL 00000e66: DUP2 00000e67: MSTORE 00000e68: PUSH1 0x20 00000e6a: ADD 00000e6b: SWAP3 00000e6c: SWAP2 00000e6d: POP 00000e6e: POP 00000e6f: JUMP 00000e70: JUMPDEST 00000e71: PUSH1 0x00 00000e73: PUSH2 0x0e7d 00000e76: PUSH1 0x1a 00000e78: DUP4 00000e79: PUSH2 0x1051 00000e7c: JUMP 00000e7d: JUMPDEST 00000e7e: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00000e9f: DUP2 00000ea0: MSTORE 00000ea1: PUSH1 0x20 00000ea3: ADD 00000ea4: SWAP3 00000ea5: SWAP2 00000ea6: POP 00000ea7: POP 00000ea8: JUMP 00000ea9: JUMPDEST 00000eaa: PUSH1 0x00 00000eac: PUSH2 0x0eb6 00000eaf: PUSH1 0x21 00000eb1: DUP4 00000eb2: PUSH2 0x1051 00000eb5: JUMP 00000eb6: JUMPDEST 00000eb7: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 00000ed8: DUP2 00000ed9: MSTORE 00000eda: PUSH1 0x77 00000edc: PUSH1 0xf8 00000ede: SHL 00000edf: PUSH1 0x20 00000ee1: DUP3 00000ee2: ADD 00000ee3: MSTORE 00000ee4: PUSH1 0x40 00000ee6: ADD 00000ee7: SWAP3 00000ee8: SWAP2 00000ee9: POP 00000eea: POP 00000eeb: JUMP 00000eec: JUMPDEST 00000eed: PUSH2 0x0dd6 00000ef0: DUP2 00000ef1: PUSH2 0x1076 00000ef4: JUMP 00000ef5: JUMPDEST 00000ef6: PUSH1 0x20 00000ef8: DUP2 00000ef9: ADD 00000efa: PUSH2 0x0c02 00000efd: DUP3 00000efe: DUP5 00000eff: PUSH2 0x0ddc 00000f02: JUMP 00000f03: JUMPDEST 00000f04: PUSH1 0x40 00000f06: DUP2 00000f07: ADD 00000f08: PUSH2 0x0f11 00000f0b: DUP3 00000f0c: DUP6 00000f0d: PUSH2 0x0dcd 00000f10: JUMP 00000f11: JUMPDEST 00000f12: PUSH2 0x0f1e 00000f15: PUSH1 0x20 00000f17: DUP4 00000f18: ADD 00000f19: DUP5 00000f1a: PUSH2 0x0ddc 00000f1d: JUMP 00000f1e: JUMPDEST 00000f1f: SWAP4 00000f20: SWAP3 00000f21: POP 00000f22: POP 00000f23: POP 00000f24: JUMP 00000f25: JUMPDEST 00000f26: PUSH1 0x40 00000f28: DUP2 00000f29: ADD 00000f2a: PUSH2 0x0f33 00000f2d: DUP3 00000f2e: DUP6 00000f2f: PUSH2 0x0dcd 00000f32: JUMP 00000f33: JUMPDEST 00000f34: PUSH2 0x0f1e 00000f37: PUSH1 0x20 00000f39: DUP4 00000f3a: ADD 00000f3b: DUP5 00000f3c: PUSH2 0x0eec 00000f3f: JUMP 00000f40: JUMPDEST 00000f41: PUSH1 0x20 00000f43: DUP1 00000f44: DUP3 00000f45: MSTORE 00000f46: DUP2 00000f47: ADD 00000f48: PUSH2 0x0c02 00000f4b: DUP2 00000f4c: PUSH2 0x0e47 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: PUSH1 0x20 00000f53: DUP1 00000f54: DUP3 00000f55: MSTORE 00000f56: DUP2 00000f57: ADD 00000f58: PUSH2 0x0c02 00000f5b: DUP2 00000f5c: PUSH2 0x0e70 00000f5f: JUMP 00000f60: JUMPDEST 00000f61: PUSH1 0x20 00000f63: DUP1 00000f64: DUP3 00000f65: MSTORE 00000f66: DUP2 00000f67: ADD 00000f68: PUSH2 0x0c02 00000f6b: DUP2 00000f6c: PUSH2 0x0ea9 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: PUSH1 0xa0 00000f73: DUP2 00000f74: ADD 00000f75: PUSH2 0x0f7e 00000f78: DUP3 00000f79: DUP9 00000f7a: PUSH2 0x0eec 00000f7d: JUMP 00000f7e: JUMPDEST 00000f7f: PUSH2 0x0f8b 00000f82: PUSH1 0x20 00000f84: DUP4 00000f85: ADD 00000f86: DUP8 00000f87: PUSH2 0x0e3e 00000f8a: JUMP 00000f8b: JUMPDEST 00000f8c: DUP2 00000f8d: DUP2 00000f8e: SUB 00000f8f: PUSH1 0x40 00000f91: DUP4 00000f92: ADD 00000f93: MSTORE 00000f94: PUSH2 0x0f9d 00000f97: DUP2 00000f98: DUP7 00000f99: PUSH2 0x0de5 00000f9c: JUMP 00000f9d: JUMPDEST 00000f9e: SWAP1 00000f9f: POP 00000fa0: PUSH2 0x0fac 00000fa3: PUSH1 0x60 00000fa5: DUP4 00000fa6: ADD 00000fa7: DUP6 00000fa8: PUSH2 0x0dcd 00000fab: JUMP 00000fac: JUMPDEST 00000fad: PUSH2 0x0fb9 00000fb0: PUSH1 0x80 00000fb2: DUP4 00000fb3: ADD 00000fb4: DUP5 00000fb5: PUSH2 0x0eec 00000fb8: JUMP 00000fb9: JUMPDEST 00000fba: SWAP7 00000fbb: SWAP6 00000fbc: POP 00000fbd: POP 00000fbe: POP 00000fbf: POP 00000fc0: POP 00000fc1: POP 00000fc2: JUMP 00000fc3: JUMPDEST 00000fc4: PUSH1 0xa0 00000fc6: DUP2 00000fc7: ADD 00000fc8: PUSH2 0x0fd1 00000fcb: DUP3 00000fcc: DUP9 00000fcd: PUSH2 0x0eec 00000fd0: JUMP 00000fd1: JUMPDEST 00000fd2: PUSH2 0x0fde 00000fd5: PUSH1 0x20 00000fd7: DUP4 00000fd8: ADD 00000fd9: DUP8 00000fda: PUSH2 0x0e3e 00000fdd: JUMP 00000fde: JUMPDEST 00000fdf: DUP2 00000fe0: DUP2 00000fe1: SUB 00000fe2: PUSH1 0x40 00000fe4: DUP4 00000fe5: ADD 00000fe6: MSTORE 00000fe7: PUSH2 0x0ff0 00000fea: DUP2 00000feb: DUP7 00000fec: PUSH2 0x0de5 00000fef: JUMP 00000ff0: JUMPDEST 00000ff1: SWAP1 00000ff2: POP 00000ff3: PUSH2 0x0fac 00000ff6: PUSH1 0x60 00000ff8: DUP4 00000ff9: ADD 00000ffa: DUP6 00000ffb: PUSH2 0x0ddc 00000ffe: JUMP 00000fff: JUMPDEST 00001000: PUSH1 0x40 00001002: MLOAD 00001003: DUP2 00001004: DUP2 00001005: ADD 00001006: PUSH8 0xffffffffffffffff 0000100f: DUP2 00001010: GT 00001011: DUP3 00001012: DUP3 00001013: LT 00001014: OR 00001015: ISZERO 00001016: PUSH2 0x101e 00001019: JUMPI 0000101a: PUSH1 0x00 0000101c: DUP1 0000101d: REVERT 0000101e: JUMPDEST 0000101f: PUSH1 0x40 00001021: MSTORE 00001022: SWAP2 00001023: SWAP1 00001024: POP 00001025: JUMP 00001026: JUMPDEST 00001027: PUSH1 0x00 00001029: PUSH8 0xffffffffffffffff 00001032: DUP3 00001033: GT 00001034: ISZERO 00001035: PUSH2 0x103d 00001038: JUMPI 00001039: PUSH1 0x00 0000103b: DUP1 0000103c: REVERT 0000103d: JUMPDEST 0000103e: POP 0000103f: PUSH1 0x20 00001041: SWAP1 00001042: DUP2 00001043: MUL 00001044: ADD 00001045: SWAP1 00001046: JUMP 00001047: JUMPDEST 00001048: PUSH1 0x20 0000104a: ADD 0000104b: SWAP1 0000104c: JUMP 0000104d: JUMPDEST 0000104e: MLOAD 0000104f: SWAP1 00001050: JUMP 00001051: JUMPDEST 00001052: SWAP1 00001053: DUP2 00001054: MSTORE 00001055: PUSH1 0x20 00001057: ADD 00001058: SWAP1 00001059: JUMP 0000105a: JUMPDEST 0000105b: PUSH1 0x00 0000105d: PUSH2 0x0c02 00001060: DUP3 00001061: PUSH2 0x106a 00001064: JUMP 00001065: JUMPDEST 00001066: ISZERO 00001067: ISZERO 00001068: SWAP1 00001069: JUMP 0000106a: JUMPDEST 0000106b: PUSH1 0x01 0000106d: PUSH1 0x01 0000106f: PUSH1 0xa0 00001071: SHL 00001072: SUB 00001073: AND 00001074: SWAP1 00001075: JUMP 00001076: JUMPDEST 00001077: SWAP1 00001078: JUMP 00001079: JUMPDEST 0000107a: PUSH1 0x00 0000107c: PUSH2 0x0c02 0000107f: DUP3 00001080: PUSH2 0x108f 00001083: JUMP 00001084: JUMPDEST 00001085: PUSH1 0x00 00001087: PUSH2 0x0c02 0000108a: DUP3 0000108b: PUSH2 0x1076 0000108e: JUMP 0000108f: JUMPDEST 00001090: PUSH1 0x00 00001092: PUSH2 0x0c02 00001095: DUP3 00001096: PUSH2 0x105a 00001099: JUMP 0000109a: JUMPDEST 0000109b: PUSH2 0x10a3 0000109e: DUP2 0000109f: PUSH2 0x105a 000010a2: JUMP 000010a3: JUMPDEST 000010a4: DUP2 000010a5: EQ 000010a6: PUSH2 0x10ae 000010a9: JUMPI 000010aa: PUSH1 0x00 000010ac: DUP1 000010ad: REVERT 000010ae: JUMPDEST 000010af: POP 000010b0: JUMP 000010b1: JUMPDEST 000010b2: PUSH2 0x10a3 000010b5: DUP2 000010b6: PUSH2 0x1065 000010b9: JUMP 000010ba: JUMPDEST 000010bb: PUSH2 0x10a3 000010be: DUP2 000010bf: PUSH2 0x1076 000010c2: JUMP 000010c3: INVALID 000010c4: LOG3 000010c5: PUSH6 0x627a7a723158 000010cc: KECCAK256 000010cd: CALLDATALOAD 000010ce: DIFFICULTY 000010cf: UNKNOWN(0x1F) 000010d0: EQ 000010d1: DUP1 000010d2: UNKNOWN(0xAC) 000010d3: CALLDATASIZE 000010d4: PUSH8 0x1925390024713c4d 000010dd: DUP4 000010de: EQ 000010df: UNKNOWN(0xDC) 000010e0: UNKNOWN(0xC3) 000010e1: UNKNOWN(0xE0) 000010e2: SLT 000010e3: UNKNOWN(0xCF) 000010e4: DUP15 000010e5: SWAP11 000010e6: LOG1 000010e7: UNKNOWN(0xD7) 000010e8: GASPRICE 000010e9: BLOBHASH 000010ea: SHL 000010eb: SAR 000010ec: LOG0 000010ed: PUSH13 0x6578706572696d656e74616cf5 000010fb: PUSH5 0x736f6c6343 00001101: STOP 00001102: SDIV 00001103: UNKNOWN(0x0C) 00001104: STOP 00001105: BLOCKHASH
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x52d11238",
"selector": "0x52d11238",
"calldata_variants": [
"0x52d11238",
"0x52d112380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89b09de7",
"selector": "0x89b09de7",
"calldata_variants": [
"0x89b09de7",
"0x89b09de70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa70c1aba",
"selector": "0xa70c1aba",
"calldata_variants": [
"0xa70c1aba",
"0xa70c1aba0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 165,
"type": "tx_origin_used"
},
{
"pc": 190,
"type": "tx_origin_used"
},
{
"pc": 216,
"type": "tx_origin_used"
},
{
"pc": 246,
"type": "tx_origin_used"
},
{
"pc": 769,
"type": "tx_origin_used"
},
{
"pc": 794,
"type": "tx_origin_used"
},
{
"pc": 820,
"type": "tx_origin_used"
},
{
"pc": 850,
"type": "tx_origin_used"
},
{
"pc": 1253,
"type": "tx_origin_used"
},
{
"pc": 1278,
"type": "tx_origin_used"
},
{
"pc": 1304,
"type": "tx_origin_used"
},
{
"pc": 1334,
"type": "tx_origin_used"
},
{
"pc": 2126,
"type": "tx_origin_used"
},
{
"pc": 143,
"type": "tx_origin_used"
},
{
"pc": 172,
"type": "tx_origin_used"
},
{
"pc": 198,
"type": "tx_origin_used"
},
{
"pc": 224,
"type": "tx_origin_used"
},
{
"pc": 747,
"type": "tx_origin_used"
},
{
"pc": 776,
"type": "tx_origin_used"
},
{
"pc": 802,
"type": "tx_origin_used"
},
{
"pc": 828,
"type": "tx_origin_used"
},
{
"pc": 1231,
"type": "tx_origin_used"
},
{
"pc": 1260,
"type": "tx_origin_used"
},
{
"pc": 1286,
"type": "tx_origin_used"
},
{
"pc": 1312,
"type": "tx_origin_used"
},
{
"pc": 2104,
"type": "tx_origin_used"
}
]
}
|
| high | auth | codex | Authorization uses tx.origin | 85 | no | — |
viewevidence_json{
"evidence": "Detector flagged multiple tx.origin guards in the control flow.",
"locations": [
"pc:143",
"pc:165",
"pc:190",
"pc:216",
"pc:246",
"pc:747",
"pc:769",
"pc:820",
"pc:850",
"pc:1231",
"pc:1253",
"pc:1304",
"pc:1334",
"pc:2104",
"pc:2126"
],
"recommendation": "Replace tx.origin checks with msg.sender-based access control (owner/role mappings) and explicit authorization logic. If EOAs must be enforced, use EIP-1271/EIP-712 or a dedicated allowlist instead of tx.origin.",
"exploit_scenario": "If privileged paths rely on tx.origin, a phishing contract can trick a user into calling it; the phishing contract then calls this contract so tx.origin remains the user and any tx.origin check passes, enabling unauthorized privileged actions."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xc6e0d1e8ba1b2c3b0dbeb9fd9a827eb483491131c0870e33b6b1cb9a3f4b1188
call_targets:
0x9dc55070584ca0a58cdfe98eeb32b9a48dc9885c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xc6e0d1e8ba1b2c3b0dbeb9fd9a827eb483491131c0870e33b6b1cb9a3f4b1188",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9dc55070584ca0a58cdfe98eeb32b9a48dc9885c"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x52d11238",
"selector": "0x52d11238",
"calldata_variants": [
"0x52d11238",
"0x52d112380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89b09de7",
"selector": "0x89b09de7",
"calldata_variants": [
"0x89b09de7",
"0x89b09de70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa70c1aba",
"selector": "0xa70c1aba",
"calldata_variants": [
"0xa70c1aba",
"0xa70c1aba0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 381,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 684,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 976,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [
{
"pc": 165,
"type": "tx_origin_used"
},
{
"pc": 190,
"type": "tx_origin_used"
},
{
"pc": 216,
"type": "tx_origin_used"
},
{
"pc": 246,
"type": "tx_origin_used"
},
{
"pc": 769,
"type": "tx_origin_used"
},
{
"pc": 794,
"type": "tx_origin_used"
},
{
"pc": 820,
"type": "tx_origin_used"
},
{
"pc": 850,
"type": "tx_origin_used"
},
{
"pc": 1253,
"type": "tx_origin_used"
},
{
"pc": 1278,
"type": "tx_origin_used"
},
{
"pc": 1304,
"type": "tx_origin_used"
},
{
"pc": 1334,
"type": "tx_origin_used"
},
{
"pc": 2126,
"type": "tx_origin_used"
},
{
"pc": 143,
"type": "tx_origin_used"
},
{
"pc": 172,
"type": "tx_origin_used"
},
{
"pc": 198,
"type": "tx_origin_used"
},
{
"pc": 224,
"type": "tx_origin_used"
},
{
"pc": 747,
"type": "tx_origin_used"
},
{
"pc": 776,
"type": "tx_origin_used"
},
{
"pc": 802,
"type": "tx_origin_used"
},
{
"pc": 828,
"type": "tx_origin_used"
},
{
"pc": 1231,
"type": "tx_origin_used"
},
{
"pc": 1260,
"type": "tx_origin_used"
},
{
"pc": 1286,
"type": "tx_origin_used"
},
{
"pc": 1312,
"type": "tx_origin_used"
},
{
"pc": 2104,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 8
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xc6e0d1e8ba1b2c3b0dbeb9fd9a827eb483491131c0870e33b6b1cb9a3f4b1188
call_targets:
0x9dc55070584ca0a58cdfe98eeb32b9a48dc9885c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xc6e0d1e8ba1b2c3b0dbeb9fd9a827eb483491131c0870e33b6b1cb9a3f4b1188",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9dc55070584ca0a58cdfe98eeb32b9a48dc9885c"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x52d11238",
"selector": "0x52d11238",
"calldata_variants": [
"0x52d11238",
"0x52d112380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89b09de7",
"selector": "0x89b09de7",
"calldata_variants": [
"0x89b09de7",
"0x89b09de70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa70c1aba",
"selector": "0xa70c1aba",
"calldata_variants": [
"0xa70c1aba",
"0xa70c1aba0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 381,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 684,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 976,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": [
{
"pc": 165,
"type": "tx_origin_used"
},
{
"pc": 190,
"type": "tx_origin_used"
},
{
"pc": 216,
"type": "tx_origin_used"
},
{
"pc": 246,
"type": "tx_origin_used"
},
{
"pc": 769,
"type": "tx_origin_used"
},
{
"pc": 794,
"type": "tx_origin_used"
},
{
"pc": 820,
"type": "tx_origin_used"
},
{
"pc": 850,
"type": "tx_origin_used"
},
{
"pc": 1253,
"type": "tx_origin_used"
},
{
"pc": 1278,
"type": "tx_origin_used"
},
{
"pc": 1304,
"type": "tx_origin_used"
},
{
"pc": 1334,
"type": "tx_origin_used"
},
{
"pc": 2126,
"type": "tx_origin_used"
},
{
"pc": 143,
"type": "tx_origin_used"
},
{
"pc": 172,
"type": "tx_origin_used"
},
{
"pc": 198,
"type": "tx_origin_used"
},
{
"pc": 224,
"type": "tx_origin_used"
},
{
"pc": 747,
"type": "tx_origin_used"
},
{
"pc": 776,
"type": "tx_origin_used"
},
{
"pc": 802,
"type": "tx_origin_used"
},
{
"pc": 828,
"type": "tx_origin_used"
},
{
"pc": 1231,
"type": "tx_origin_used"
},
{
"pc": 1260,
"type": "tx_origin_used"
},
{
"pc": 1286,
"type": "tx_origin_used"
},
{
"pc": 1312,
"type": "tx_origin_used"
},
{
"pc": 2104,
"type": "tx_origin_used"
}
]
}
|
| low | other | codex | External CALLs with computed target/value (potentially user-controlled) | 65 | no | — |
viewevidence_json{
"evidence": "Detector evidence shows CALL opcodes with computed target/value; validation trace saw a constant target in one run but does not prove all paths are constant or validated.",
"locations": [
"pc:381",
"pc:684",
"pc:976",
"pc:1621",
"pc:1916",
"pc:2228",
"pc:2419",
"pc:2689"
],
"recommendation": "Restrict call targets via allowlists, validate calldata-derived addresses/values, and follow checks-effects-interactions (or add reentrancy guards) around external calls that can send value.",
"exploit_scenario": "Several CALL sites use computed targets and values. If any of these are derived from calldata or mutable storage without strict validation, an attacker could redirect calls to arbitrary addresses, transfer ETH, or trigger reentrant behavior in an unexpected external contract. Bytecode-only evidence cannot confirm whether targets are fixed or validated."
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 14
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 14
}
|