4b64cf4f-6d3e-4315-aa91-154efe71239a
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 |
|---|---|---|---|---|
| 31458 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77374 | artifact.fetch | failed | 1 / 3 | 2 weeks ago |
| 77375 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 77376 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 77377 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 77378 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 77379 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:94832] OpenAI Codex v0.77.0 (research preview)
[codex:94832] --------
[codex:94832] workdir: /tmp/codex-multi-x205sn9q
[codex:94832] model: gpt-5.2-codex
[codex:94832] provider: openai
[codex:94832] approval: never
[codex:94832] sandbox: read-only
[codex:94832] reasoning effort: xhigh
[codex:94832] reasoning summaries: auto
[codex:94832] session id: 019b85b8-14bc-7343-b1d0-ebb3fd672a70
[codex:94832] --------
[codex:94832] user
[codex:94832] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:94832]
[codex:94832] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:94832]
[codex:94832] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:94832] - Gas inefficiency, code quality, naming, or best practices
[codex:94832] - Theoretical vulnerabilities without a clear extraction path
[codex:94832] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:94832] - Front-running unless it enables theft beyond MEV
[codex:94832] - DoS, griefing, or issues that don't result in attacker profit
[codex:94832] - Missing events, view function issues, or informational findings
[codex:94832]
[codex:94832] HIGH-VALUE PATTERNS TO HUNT:
[codex:94832] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:94832] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:94832] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:94832] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:94832] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:94832] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:94832] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:94832] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:94832] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:94832]
[codex:94832] For each finding, you MUST provide:
[codex:94832] 1. Exact file and line numbers of vulnerable code
[codex:94832] 2. Step-by-step exploit transaction sequence
[codex:94832] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:94832]
[codex:94832] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:94832]
[codex:94832] Output MUST be valid JSON matching the provided schema.
[codex:94832] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:94832] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:94832] mcp startup: no servers
[codex:94832]
[codex:94832] thinking
[codex:94832] **Preparing to review AUDIT_BUNDLE**
[codex:94832] exec
[codex:94832] /bin/bash -lc ls in /tmp/codex-multi-x205sn9q succeeded in 5ms:
[codex:94832] AUDIT_BUNDLE.txt
[codex:94832] codex-output-schema.json
[codex:94832] contracts
[codex:94832] exec
[codex:94832] /bin/bash -lc 'rg --files' in /tmp/codex-multi-x205sn9q succeeded in 8ms:
[codex:94832] codex-output-schema.json
[codex:94832] AUDIT_BUNDLE.txt
[codex:94832] contracts/Contract.sol
[codex:94832] exec
[codex:94832] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-x205sn9q succeeded in 5ms:
[codex:94832] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:94832]
[codex:94832] ================================================================================
[codex:94832] FILE: contracts/Contract.sol
[codex:94832] ================================================================================
[codex:94832] pragma solidity ^0.4.4;
[codex:94832]
[codex:94832] contract DigiPulse {
[codex:94832]
[codex:94832] // Token data for ERC20
[codex:94832] string public constant name = "DigiPulse";
[codex:94832] string public constant symbol = "DGT";
[codex:94832] uint8 public constant decimals = 8;
[codex:94832] mapping (address => uint256) public balanceOf;
[codex:94832]
[codex:94832] // Max available supply is 16581633 * 1e8 (incl. 100000 presale and 2% bounties)
[codex:94832] uint constant tokenSupply = 16125000 * 1e8;
[codex:94832] uint8 constant dgtRatioToEth = 250;
[codex:94832] uint constant raisedInPresale = 961735343125;
[codex:94832] mapping (address => uint256) ethBalanceOf;
[codex:94832]
[codex:94832]
[codex:94832]
[codex:94832] thinking
[codex:94832] **Analyzing Solidity token supply and bonus logic**
[codex:94832] thinking
[codex:94832] **Confirming tier bonus spillover and refund logic**
[codex:94832]
[codex:94832] I’m examining how token amounts spill between tiers and the arithmetic around bonuses and refunds. The tier logic seems sound for spillover calculations, and refunding ETH doesn’t reduce tokens, meaning contributors can keep tokens after refunding their ETH if the ICO fails. This allows getting tokens effectively for free if ICO fails, since tokens aren’t burned on refund. However, reaching conditions to trigger refunds with low total ETH raised seems costly in practice. The lack of access control on some functions won’t let attackers profit directly, but combined with bonus-related oversupply and refund mechanics, there’s a plausible path to extract tokens without losing ETH, which meets the criteria of value extraction from the contract.
[codex:94832] thinking
[codex:94832] **Analyzing potential overflow and naming conflicts**
[codex:94832]
[codex:94832] I’m checking for possible overflow bugs in token calculations, issues from having both a `balanceOf` mapping and function with the same name, and rounding or refund edge cases. Despite some quirks like missing access control on fund withdrawal to owner and refund logic that doesn’t burn tokens, I find no concrete exploitable profit paths. The structure and checks generally prevent exploits, and any potential profit from refunds keeping tokens hinges on external token value rather than contract flaws.
[codex:94832] codex
[codex:94832] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided sources.","findings":[]}
[codex:94832] tokens used
[codex:94832] 17,798
[codex:94832] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided sources.","findings":[]}
{
"codex": {
"ran_at": "2026-01-03T21:19:35.896337+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit paths found in the provided sources.",
"raw_final": {
"summary": "No concrete, exploitable profit paths found in the provided sources.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00ac 0000000a: JUMPI 0000000b: PUSH4 0xffffffff 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: PUSH1 0x00 00000030: CALLDATALOAD 00000031: DIV 00000032: AND 00000033: PUSH4 0x06fdde03 00000038: DUP2 00000039: EQ 0000003a: PUSH2 0x020e 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x12f20e2a 00000044: EQ 00000045: PUSH2 0x0299 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x18160ddd 0000004f: EQ 00000050: PUSH2 0x02b1 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0x313ce567 0000005a: EQ 0000005b: PUSH2 0x02d6 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0x560ed6a1 00000065: EQ 00000066: PUSH2 0x02ff 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0x70a08231 00000070: EQ 00000071: PUSH2 0x0314 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x7bd703e8 0000007b: EQ 0000007c: PUSH2 0x0345 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x95d89b41 00000086: EQ 00000087: PUSH2 0x0376 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0xa4399263 00000091: EQ 00000092: PUSH2 0x0401 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xa9059cbb 0000009c: EQ 0000009d: PUSH2 0x0416 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xe4b7fb73 000000a7: EQ 000000a8: PUSH2 0x043a 000000ab: JUMPI 000000ac: JUMPDEST 000000ad: PUSH2 0x020c 000000b0: JUMPDEST 000000b1: PUSH1 0x00 000000b3: DUP1 000000b4: DUP1 000000b5: DUP1 000000b6: DUP1 000000b7: DUP1 000000b8: DUP1 000000b9: PUSH4 0x59842980 000000be: TIMESTAMP 000000bf: GT 000000c0: PUSH2 0x00c8 000000c3: JUMPI 000000c4: PUSH1 0x00 000000c6: DUP1 000000c7: REVERT 000000c8: JUMPDEST 000000c9: PUSH4 0x59a8a2ff 000000ce: TIMESTAMP 000000cf: LT 000000d0: PUSH2 0x00d8 000000d3: JUMPI 000000d4: PUSH1 0x00 000000d6: DUP1 000000d7: REVERT 000000d8: JUMPDEST 000000d9: PUSH1 0x04 000000db: SLOAD 000000dc: PUSH2 0x0100 000000df: SWAP1 000000e0: DIV 000000e1: PUSH1 0xff 000000e3: AND 000000e4: ISZERO 000000e5: PUSH2 0x00ed 000000e8: JUMPI 000000e9: PUSH1 0x00 000000eb: DUP1 000000ec: REVERT 000000ed: JUMPDEST 000000ee: CALLVALUE 000000ef: ISZERO 000000f0: ISZERO 000000f1: PUSH2 0x00f9 000000f4: JUMPI 000000f5: PUSH1 0x00 000000f7: DUP1 000000f8: REVERT 000000f9: JUMPDEST 000000fa: PUSH1 0xfa 000000fc: PUSH5 0x02540be400 00000102: CALLVALUE 00000103: JUMPDEST 00000104: DIV 00000105: MUL 00000106: SWAP7 00000107: POP 00000108: PUSH1 0x03 0000010a: SLOAD 0000010b: PUSH7 0x05ba8f69b34800 00000113: SUB 00000114: DUP8 00000115: LT 00000116: ISZERO 00000117: ISZERO 00000118: PUSH2 0x0120 0000011b: JUMPI 0000011c: PUSH1 0x00 0000011e: DUP1 0000011f: REVERT 00000120: JUMPDEST 00000121: PUSH1 0x00 00000123: SWAP4 00000124: POP 00000125: JUMPDEST 00000126: PUSH1 0x04 00000128: DUP5 00000129: PUSH1 0xff 0000012b: AND 0000012c: LT 0000012d: ISZERO 0000012e: PUSH2 0x01ab 00000131: JUMPI 00000132: PUSH1 0x03 00000134: SLOAD 00000135: PUSH7 0x01550f7dca7000 0000013d: SWAP6 0000013e: DUP7 0000013f: ADD 00000140: SWAP6 00000141: SWAP4 00000142: POP 00000143: PUSH1 0x05 00000145: DUP6 00000146: MUL 00000147: PUSH1 0x73 00000149: SUB 0000014a: SWAP3 0000014b: POP 0000014c: DUP6 0000014d: SWAP1 0000014e: LT 0000014f: PUSH2 0x0157 00000152: JUMPI 00000153: PUSH2 0x019f 00000156: JUMP 00000157: JUMPDEST 00000158: DUP7 00000159: ISZERO 0000015a: ISZERO 0000015b: PUSH2 0x0163 0000015e: JUMPI 0000015f: PUSH2 0x01ab 00000162: JUMP 00000163: JUMPDEST 00000164: POP 00000165: PUSH1 0x03 00000167: SLOAD 00000168: DUP5 00000169: DUP8 0000016a: SUB 0000016b: ADD 0000016c: PUSH1 0x00 0000016e: DUP2 0000016f: SGT 00000170: ISZERO 00000171: PUSH2 0x018c 00000174: JUMPI 00000175: PUSH1 0x64 00000177: DUP2 00000178: DUP9 00000179: SUB 0000017a: PUSH1 0xff 0000017c: DUP5 0000017d: AND 0000017e: MUL 0000017f: JUMPDEST 00000180: DIV 00000181: DUP7 00000182: ADD 00000183: SWAP6 00000184: POP 00000185: DUP1 00000186: SWAP7 00000187: POP 00000188: PUSH2 0x019f 0000018b: JUMP 0000018c: JUMPDEST 0000018d: PUSH1 0x64 0000018f: PUSH1 0xff 00000191: DUP4 00000192: AND 00000193: DUP9 00000194: MUL 00000195: JUMPDEST 00000196: DIV 00000197: DUP7 00000198: ADD 00000199: SWAP6 0000019a: POP 0000019b: PUSH1 0x00 0000019d: SWAP7 0000019e: POP 0000019f: JUMPDEST 000001a0: JUMPDEST 000001a1: PUSH1 0x01 000001a3: SWAP1 000001a4: SWAP4 000001a5: ADD 000001a6: SWAP3 000001a7: PUSH2 0x0125 000001aa: JUMP 000001ab: JUMPDEST 000001ac: PUSH1 0x03 000001ae: DUP1 000001af: SLOAD 000001b0: DUP8 000001b1: ADD 000001b2: SWAP1 000001b3: SSTORE 000001b4: PUSH1 0x01 000001b6: PUSH1 0xa0 000001b8: PUSH1 0x02 000001ba: EXP 000001bb: SUB 000001bc: CALLER 000001bd: AND 000001be: PUSH1 0x00 000001c0: DUP2 000001c1: DUP2 000001c2: MSTORE 000001c3: PUSH1 0x01 000001c5: PUSH1 0x20 000001c7: SWAP1 000001c8: DUP2 000001c9: MSTORE 000001ca: PUSH1 0x40 000001cc: DUP1 000001cd: DUP4 000001ce: KECCAK256 000001cf: DUP1 000001d0: SLOAD 000001d1: CALLVALUE 000001d2: ADD 000001d3: SWAP1 000001d4: SSTORE 000001d5: SWAP1 000001d6: DUP3 000001d7: SWAP1 000001d8: MSTORE 000001d9: DUP1 000001da: DUP3 000001db: KECCAK256 000001dc: DUP1 000001dd: SLOAD 000001de: DUP11 000001df: ADD 000001e0: SWAP1 000001e1: SSTORE 000001e2: PUSH1 0x00 000001e4: DUP1 000001e5: MLOAD 000001e6: PUSH1 0x20 000001e8: PUSH2 0x08a4 000001eb: DUP4 000001ec: CODECOPY 000001ed: DUP2 000001ee: MLOAD 000001ef: SWAP2 000001f0: MSTORE 000001f1: SWAP1 000001f2: DUP10 000001f3: SWAP1 000001f4: MLOAD 000001f5: SWAP1 000001f6: DUP2 000001f7: MSTORE 000001f8: PUSH1 0x20 000001fa: ADD 000001fb: PUSH1 0x40 000001fd: MLOAD 000001fe: DUP1 000001ff: SWAP2 00000200: SUB 00000201: SWAP1 00000202: LOG3 00000203: JUMPDEST 00000204: POP 00000205: POP 00000206: POP 00000207: POP 00000208: POP 00000209: POP 0000020a: POP 0000020b: JUMP 0000020c: JUMPDEST 0000020d: STOP 0000020e: JUMPDEST 0000020f: CALLVALUE 00000210: ISZERO 00000211: PUSH2 0x0219 00000214: JUMPI 00000215: PUSH1 0x00 00000217: DUP1 00000218: REVERT 00000219: JUMPDEST 0000021a: PUSH2 0x0221 0000021d: PUSH2 0x045f 00000220: JUMP 00000221: JUMPDEST 00000222: PUSH1 0x40 00000224: MLOAD 00000225: PUSH1 0x20 00000227: DUP1 00000228: DUP3 00000229: MSTORE 0000022a: DUP2 0000022b: SWAP1 0000022c: DUP2 0000022d: ADD 0000022e: DUP4 0000022f: DUP2 00000230: DUP2 00000231: MLOAD 00000232: DUP2 00000233: MSTORE 00000234: PUSH1 0x20 00000236: ADD 00000237: SWAP2 00000238: POP 00000239: DUP1 0000023a: MLOAD 0000023b: SWAP1 0000023c: PUSH1 0x20 0000023e: ADD 0000023f: SWAP1 00000240: DUP1 00000241: DUP4 00000242: DUP4 00000243: PUSH1 0x00 00000245: JUMPDEST 00000246: DUP4 00000247: DUP2 00000248: LT 00000249: ISZERO 0000024a: PUSH2 0x025e 0000024d: JUMPI 0000024e: DUP1 0000024f: DUP3 00000250: ADD 00000251: MLOAD 00000252: DUP2 00000253: DUP5 00000254: ADD 00000255: MSTORE 00000256: JUMPDEST 00000257: PUSH1 0x20 00000259: ADD 0000025a: PUSH2 0x0245 0000025d: JUMP 0000025e: JUMPDEST 0000025f: POP 00000260: POP 00000261: POP 00000262: POP 00000263: SWAP1 00000264: POP 00000265: SWAP1 00000266: DUP2 00000267: ADD 00000268: SWAP1 00000269: PUSH1 0x1f 0000026b: AND 0000026c: DUP1 0000026d: ISZERO 0000026e: PUSH2 0x028b 00000271: JUMPI 00000272: DUP1 00000273: DUP3 00000274: SUB 00000275: DUP1 00000276: MLOAD 00000277: PUSH1 0x01 00000279: DUP4 0000027a: PUSH1 0x20 0000027c: SUB 0000027d: PUSH2 0x0100 00000280: EXP 00000281: SUB 00000282: NOT 00000283: AND 00000284: DUP2 00000285: MSTORE 00000286: PUSH1 0x20 00000288: ADD 00000289: SWAP2 0000028a: POP 0000028b: JUMPDEST 0000028c: POP 0000028d: SWAP3 0000028e: POP 0000028f: POP 00000290: POP 00000291: PUSH1 0x40 00000293: MLOAD 00000294: DUP1 00000295: SWAP2 00000296: SUB 00000297: SWAP1 00000298: RETURN 00000299: JUMPDEST 0000029a: CALLVALUE 0000029b: ISZERO 0000029c: PUSH2 0x02a4 0000029f: JUMPI 000002a0: PUSH1 0x00 000002a2: DUP1 000002a3: REVERT 000002a4: JUMPDEST 000002a5: PUSH2 0x020c 000002a8: PUSH1 0x04 000002aa: CALLDATALOAD 000002ab: PUSH2 0x0496 000002ae: JUMP 000002af: JUMPDEST 000002b0: STOP 000002b1: JUMPDEST 000002b2: CALLVALUE 000002b3: ISZERO 000002b4: PUSH2 0x02bc 000002b7: JUMPI 000002b8: PUSH1 0x00 000002ba: DUP1 000002bb: REVERT 000002bc: JUMPDEST 000002bd: PUSH2 0x02c4 000002c0: PUSH2 0x04fb 000002c3: JUMP 000002c4: JUMPDEST 000002c5: PUSH1 0x40 000002c7: MLOAD 000002c8: SWAP1 000002c9: DUP2 000002ca: MSTORE 000002cb: PUSH1 0x20 000002cd: ADD 000002ce: PUSH1 0x40 000002d0: MLOAD 000002d1: DUP1 000002d2: SWAP2 000002d3: SUB 000002d4: SWAP1 000002d5: RETURN 000002d6: JUMPDEST 000002d7: CALLVALUE 000002d8: ISZERO 000002d9: PUSH2 0x02e1 000002dc: JUMPI 000002dd: PUSH1 0x00 000002df: DUP1 000002e0: REVERT 000002e1: JUMPDEST 000002e2: PUSH2 0x02e9 000002e5: PUSH2 0x0502 000002e8: JUMP 000002e9: JUMPDEST 000002ea: PUSH1 0x40 000002ec: MLOAD 000002ed: PUSH1 0xff 000002ef: SWAP1 000002f0: SWAP2 000002f1: AND 000002f2: DUP2 000002f3: MSTORE 000002f4: PUSH1 0x20 000002f6: ADD 000002f7: PUSH1 0x40 000002f9: MLOAD 000002fa: DUP1 000002fb: SWAP2 000002fc: SUB 000002fd: SWAP1 000002fe: RETURN 000002ff: JUMPDEST 00000300: CALLVALUE 00000301: ISZERO 00000302: PUSH2 0x030a 00000305: JUMPI 00000306: PUSH1 0x00 00000308: DUP1 00000309: REVERT 0000030a: JUMPDEST 0000030b: PUSH2 0x020c 0000030e: PUSH2 0x0507 00000311: JUMP 00000312: JUMPDEST 00000313: STOP 00000314: JUMPDEST 00000315: CALLVALUE 00000316: ISZERO 00000317: PUSH2 0x031f 0000031a: JUMPI 0000031b: PUSH1 0x00 0000031d: DUP1 0000031e: REVERT 0000031f: JUMPDEST 00000320: PUSH2 0x02c4 00000323: PUSH1 0x01 00000325: PUSH1 0xa0 00000327: PUSH1 0x02 00000329: EXP 0000032a: SUB 0000032b: PUSH1 0x04 0000032d: CALLDATALOAD 0000032e: AND 0000032f: PUSH2 0x05c6 00000332: JUMP 00000333: JUMPDEST 00000334: PUSH1 0x40 00000336: MLOAD 00000337: SWAP1 00000338: DUP2 00000339: MSTORE 0000033a: PUSH1 0x20 0000033c: ADD 0000033d: PUSH1 0x40 0000033f: MLOAD 00000340: DUP1 00000341: SWAP2 00000342: SUB 00000343: SWAP1 00000344: RETURN 00000345: JUMPDEST 00000346: CALLVALUE 00000347: ISZERO 00000348: PUSH2 0x0350 0000034b: JUMPI 0000034c: PUSH1 0x00 0000034e: DUP1 0000034f: REVERT 00000350: JUMPDEST 00000351: PUSH2 0x02c4 00000354: PUSH1 0x01 00000356: PUSH1 0xa0 00000358: PUSH1 0x02 0000035a: EXP 0000035b: SUB 0000035c: PUSH1 0x04 0000035e: CALLDATALOAD 0000035f: AND 00000360: PUSH2 0x05e5 00000363: JUMP 00000364: JUMPDEST 00000365: PUSH1 0x40 00000367: MLOAD 00000368: SWAP1 00000369: DUP2 0000036a: MSTORE 0000036b: PUSH1 0x20 0000036d: ADD 0000036e: PUSH1 0x40 00000370: MLOAD 00000371: DUP1 00000372: SWAP2 00000373: SUB 00000374: SWAP1 00000375: RETURN 00000376: JUMPDEST 00000377: CALLVALUE 00000378: ISZERO 00000379: PUSH2 0x0381 0000037c: JUMPI 0000037d: PUSH1 0x00 0000037f: DUP1 00000380: REVERT 00000381: JUMPDEST 00000382: PUSH2 0x0221 00000385: PUSH2 0x0604 00000388: JUMP 00000389: JUMPDEST 0000038a: PUSH1 0x40 0000038c: MLOAD 0000038d: PUSH1 0x20 0000038f: DUP1 00000390: DUP3 00000391: MSTORE 00000392: DUP2 00000393: SWAP1 00000394: DUP2 00000395: ADD 00000396: DUP4 00000397: DUP2 00000398: DUP2 00000399: MLOAD 0000039a: DUP2 0000039b: MSTORE 0000039c: PUSH1 0x20 0000039e: ADD 0000039f: SWAP2 000003a0: POP 000003a1: DUP1 000003a2: MLOAD 000003a3: SWAP1 000003a4: PUSH1 0x20 000003a6: ADD 000003a7: SWAP1 000003a8: DUP1 000003a9: DUP4 000003aa: DUP4 000003ab: PUSH1 0x00 000003ad: JUMPDEST 000003ae: DUP4 000003af: DUP2 000003b0: LT 000003b1: ISZERO 000003b2: PUSH2 0x025e 000003b5: JUMPI 000003b6: DUP1 000003b7: DUP3 000003b8: ADD 000003b9: MLOAD 000003ba: DUP2 000003bb: DUP5 000003bc: ADD 000003bd: MSTORE 000003be: JUMPDEST 000003bf: PUSH1 0x20 000003c1: ADD 000003c2: PUSH2 0x0245 000003c5: JUMP 000003c6: JUMPDEST 000003c7: POP 000003c8: POP 000003c9: POP 000003ca: POP 000003cb: SWAP1 000003cc: POP 000003cd: SWAP1 000003ce: DUP2 000003cf: ADD 000003d0: SWAP1 000003d1: PUSH1 0x1f 000003d3: AND 000003d4: DUP1 000003d5: ISZERO 000003d6: PUSH2 0x028b 000003d9: JUMPI 000003da: DUP1 000003db: DUP3 000003dc: SUB 000003dd: DUP1 000003de: MLOAD 000003df: PUSH1 0x01 000003e1: DUP4 000003e2: PUSH1 0x20 000003e4: SUB 000003e5: PUSH2 0x0100 000003e8: EXP 000003e9: SUB 000003ea: NOT 000003eb: AND 000003ec: DUP2 000003ed: MSTORE 000003ee: PUSH1 0x20 000003f0: ADD 000003f1: SWAP2 000003f2: POP 000003f3: JUMPDEST 000003f4: POP 000003f5: SWAP3 000003f6: POP 000003f7: POP 000003f8: POP 000003f9: PUSH1 0x40 000003fb: MLOAD 000003fc: DUP1 000003fd: SWAP2 000003fe: SUB 000003ff: SWAP1 00000400: RETURN 00000401: JUMPDEST 00000402: CALLVALUE 00000403: ISZERO 00000404: PUSH2 0x040c 00000407: JUMPI 00000408: PUSH1 0x00 0000040a: DUP1 0000040b: REVERT 0000040c: JUMPDEST 0000040d: PUSH2 0x020c 00000410: PUSH2 0x063b 00000413: JUMP 00000414: JUMPDEST 00000415: STOP 00000416: JUMPDEST 00000417: CALLVALUE 00000418: ISZERO 00000419: PUSH2 0x0421 0000041c: JUMPI 0000041d: PUSH1 0x00 0000041f: DUP1 00000420: REVERT 00000421: JUMPDEST 00000422: PUSH2 0x020c 00000425: PUSH1 0x01 00000427: PUSH1 0xa0 00000429: PUSH1 0x02 0000042b: EXP 0000042c: SUB 0000042d: PUSH1 0x04 0000042f: CALLDATALOAD 00000430: AND 00000431: PUSH1 0x24 00000433: CALLDATALOAD 00000434: PUSH2 0x06d7 00000437: JUMP 00000438: JUMPDEST 00000439: STOP 0000043a: JUMPDEST 0000043b: CALLVALUE 0000043c: ISZERO 0000043d: PUSH2 0x0445 00000440: JUMPI 00000441: PUSH1 0x00 00000443: DUP1 00000444: REVERT 00000445: JUMPDEST 00000446: PUSH2 0x02c4 00000449: PUSH2 0x077b 0000044c: JUMP 0000044d: JUMPDEST 0000044e: PUSH1 0x40 00000450: MLOAD 00000451: SWAP1 00000452: DUP2 00000453: MSTORE 00000454: PUSH1 0x20 00000456: ADD 00000457: PUSH1 0x40 00000459: MLOAD 0000045a: DUP1 0000045b: SWAP2 0000045c: SUB 0000045d: SWAP1 0000045e: RETURN 0000045f: JUMPDEST 00000460: PUSH1 0x40 00000462: DUP1 00000463: MLOAD 00000464: SWAP1 00000465: DUP2 00000466: ADD 00000467: PUSH1 0x40 00000469: MSTORE 0000046a: PUSH1 0x09 0000046c: DUP2 0000046d: MSTORE 0000046e: PUSH32 0x4469676950756c73650000000000000000000000000000000000000000000000 0000048f: PUSH1 0x20 00000491: DUP3 00000492: ADD 00000493: MSTORE 00000494: DUP2 00000495: JUMP 00000496: JUMPDEST 00000497: PUSH1 0x04 00000499: SLOAD 0000049a: PUSH2 0x0100 0000049d: SWAP1 0000049e: DIV 0000049f: PUSH1 0xff 000004a1: AND 000004a2: ISZERO 000004a3: ISZERO 000004a4: PUSH2 0x04ac 000004a7: JUMPI 000004a8: PUSH1 0x00 000004aa: DUP1 000004ab: REVERT 000004ac: JUMPDEST 000004ad: PUSH1 0x01 000004af: PUSH1 0xa0 000004b1: PUSH1 0x02 000004b3: EXP 000004b4: SUB 000004b5: ADDRESS 000004b6: AND 000004b7: BALANCE 000004b8: DUP2 000004b9: SWAP1 000004ba: LT 000004bb: ISZERO 000004bc: PUSH2 0x04c4 000004bf: JUMPI 000004c0: PUSH1 0x00 000004c2: DUP1 000004c3: REVERT 000004c4: JUMPDEST 000004c5: PUSH1 0x02 000004c7: SLOAD 000004c8: PUSH1 0x01 000004ca: PUSH1 0xa0 000004cc: PUSH1 0x02 000004ce: EXP 000004cf: SUB 000004d0: AND 000004d1: DUP2 000004d2: ISZERO 000004d3: PUSH2 0x08fc 000004d6: MUL 000004d7: DUP3 000004d8: PUSH1 0x40 000004da: MLOAD 000004db: PUSH1 0x00 000004dd: PUSH1 0x40 000004df: MLOAD 000004e0: DUP1 000004e1: DUP4 000004e2: SUB 000004e3: DUP2 000004e4: DUP6 000004e5: DUP9 000004e6: DUP9 000004e7: CALL 000004e8: SWAP4 000004e9: POP 000004ea: POP 000004eb: POP 000004ec: POP 000004ed: ISZERO 000004ee: ISZERO 000004ef: PUSH2 0x04f7 000004f2: JUMPI 000004f3: PUSH1 0x00 000004f5: DUP1 000004f6: REVERT 000004f7: JUMPDEST 000004f8: JUMPDEST 000004f9: POP 000004fa: JUMP 000004fb: JUMPDEST 000004fc: PUSH1 0x03 000004fe: SLOAD 000004ff: JUMPDEST 00000500: SWAP1 00000501: JUMP 00000502: JUMPDEST 00000503: PUSH1 0x08 00000505: DUP2 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH1 0x04 0000050a: SLOAD 0000050b: PUSH1 0x00 0000050d: SWAP1 0000050e: PUSH1 0xff 00000510: AND 00000511: ISZERO 00000512: ISZERO 00000513: PUSH2 0x051b 00000516: JUMPI 00000517: PUSH1 0x00 00000519: DUP1 0000051a: REVERT 0000051b: JUMPDEST 0000051c: POP 0000051d: PUSH1 0x01 0000051f: PUSH1 0xa0 00000521: PUSH1 0x02 00000523: EXP 00000524: SUB 00000525: CALLER 00000526: AND 00000527: PUSH1 0x00 00000529: SWAP1 0000052a: DUP2 0000052b: MSTORE 0000052c: PUSH1 0x01 0000052e: PUSH1 0x20 00000530: MSTORE 00000531: PUSH1 0x40 00000533: SWAP1 00000534: KECCAK256 00000535: SLOAD 00000536: DUP1 00000537: ISZERO 00000538: ISZERO 00000539: PUSH2 0x0541 0000053c: JUMPI 0000053d: PUSH1 0x00 0000053f: DUP1 00000540: REVERT 00000541: JUMPDEST 00000542: PUSH1 0x01 00000544: PUSH1 0xa0 00000546: PUSH1 0x02 00000548: EXP 00000549: SUB 0000054a: CALLER 0000054b: AND 0000054c: PUSH1 0x00 0000054e: DUP2 0000054f: DUP2 00000550: MSTORE 00000551: PUSH1 0x01 00000553: PUSH1 0x20 00000555: MSTORE 00000556: PUSH1 0x40 00000558: DUP1 00000559: DUP3 0000055a: KECCAK256 0000055b: SWAP2 0000055c: SWAP1 0000055d: SWAP2 0000055e: SSTORE 0000055f: DUP3 00000560: ISZERO 00000561: PUSH2 0x08fc 00000564: MUL 00000565: SWAP1 00000566: DUP4 00000567: SWAP1 00000568: MLOAD 00000569: PUSH1 0x00 0000056b: PUSH1 0x40 0000056d: MLOAD 0000056e: DUP1 0000056f: DUP4 00000570: SUB 00000571: DUP2 00000572: DUP6 00000573: DUP9 00000574: DUP9 00000575: CALL 00000576: SWAP4 00000577: POP 00000578: POP 00000579: POP 0000057a: POP 0000057b: ISZERO 0000057c: ISZERO 0000057d: PUSH2 0x0585 00000580: JUMPI 00000581: PUSH1 0x00 00000583: DUP1 00000584: REVERT 00000585: JUMPDEST 00000586: CALLER 00000587: PUSH1 0x01 00000589: PUSH1 0xa0 0000058b: PUSH1 0x02 0000058d: EXP 0000058e: SUB 0000058f: AND 00000590: PUSH32 0xbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d 000005b1: DUP3 000005b2: PUSH1 0x40 000005b4: MLOAD 000005b5: SWAP1 000005b6: DUP2 000005b7: MSTORE 000005b8: PUSH1 0x20 000005ba: ADD 000005bb: PUSH1 0x40 000005bd: MLOAD 000005be: DUP1 000005bf: SWAP2 000005c0: SUB 000005c1: SWAP1 000005c2: LOG2 000005c3: JUMPDEST 000005c4: POP 000005c5: JUMP 000005c6: JUMPDEST 000005c7: PUSH1 0x01 000005c9: PUSH1 0xa0 000005cb: PUSH1 0x02 000005cd: EXP 000005ce: SUB 000005cf: DUP2 000005d0: AND 000005d1: PUSH1 0x00 000005d3: SWAP1 000005d4: DUP2 000005d5: MSTORE 000005d6: PUSH1 0x20 000005d8: DUP2 000005d9: SWAP1 000005da: MSTORE 000005db: PUSH1 0x40 000005dd: SWAP1 000005de: KECCAK256 000005df: SLOAD 000005e0: JUMPDEST 000005e1: SWAP2 000005e2: SWAP1 000005e3: POP 000005e4: JUMP 000005e5: JUMPDEST 000005e6: PUSH1 0x01 000005e8: PUSH1 0xa0 000005ea: PUSH1 0x02 000005ec: EXP 000005ed: SUB 000005ee: DUP2 000005ef: AND 000005f0: PUSH1 0x00 000005f2: SWAP1 000005f3: DUP2 000005f4: MSTORE 000005f5: PUSH1 0x01 000005f7: PUSH1 0x20 000005f9: MSTORE 000005fa: PUSH1 0x40 000005fc: SWAP1 000005fd: KECCAK256 000005fe: SLOAD 000005ff: JUMPDEST 00000600: SWAP2 00000601: SWAP1 00000602: POP 00000603: JUMP 00000604: JUMPDEST 00000605: PUSH1 0x40 00000607: DUP1 00000608: MLOAD 00000609: SWAP1 0000060a: DUP2 0000060b: ADD 0000060c: PUSH1 0x40 0000060e: MSTORE 0000060f: PUSH1 0x03 00000611: DUP2 00000612: MSTORE 00000613: PUSH32 0x4447540000000000000000000000000000000000000000000000000000000000 00000634: PUSH1 0x20 00000636: DUP3 00000637: ADD 00000638: MSTORE 00000639: DUP2 0000063a: JUMP 0000063b: JUMPDEST 0000063c: PUSH1 0x04 0000063e: SLOAD 0000063f: PUSH1 0xff 00000641: AND 00000642: ISZERO 00000643: PUSH2 0x064b 00000646: JUMPI 00000647: PUSH1 0x00 00000649: DUP1 0000064a: REVERT 0000064b: JUMPDEST 0000064c: PUSH1 0x04 0000064e: SLOAD 0000064f: PUSH2 0x0100 00000652: SWAP1 00000653: DIV 00000654: PUSH1 0xff 00000656: AND 00000657: ISZERO 00000658: PUSH2 0x0660 0000065b: JUMPI 0000065c: PUSH1 0x00 0000065e: DUP1 0000065f: REVERT 00000660: JUMPDEST 00000661: PUSH4 0x59a8a2ff 00000666: TIMESTAMP 00000667: GT 00000668: DUP1 00000669: PUSH2 0x067b 0000066c: JUMPI 0000066d: POP 0000066e: PUSH7 0x05ba8f69b34800 00000676: PUSH1 0x03 00000678: SLOAD 00000679: LT 0000067a: ISZERO 0000067b: JUMPDEST 0000067c: ISZERO 0000067d: ISZERO 0000067e: PUSH2 0x0686 00000681: JUMPI 00000682: PUSH1 0x00 00000684: DUP1 00000685: REVERT 00000686: JUMPDEST 00000687: PUSH10 0x01b1ae4d6e2ef5000000 00000692: ADDRESS 00000693: PUSH1 0x01 00000695: PUSH1 0xa0 00000697: PUSH1 0x02 00000699: EXP 0000069a: SUB 0000069b: AND 0000069c: BALANCE 0000069d: LT 0000069e: ISZERO 0000069f: PUSH2 0x06b4 000006a2: JUMPI 000006a3: PUSH1 0x04 000006a5: DUP1 000006a6: SLOAD 000006a7: PUSH1 0xff 000006a9: NOT 000006aa: AND 000006ab: PUSH1 0x01 000006ad: OR 000006ae: SWAP1 000006af: SSTORE 000006b0: PUSH2 0x06d4 000006b3: JUMP 000006b4: JUMPDEST 000006b5: PUSH2 0x06bc 000006b8: PUSH2 0x078b 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH2 0x06c4 000006c0: PUSH2 0x0805 000006c3: JUMP 000006c4: JUMPDEST 000006c5: PUSH1 0x04 000006c7: DUP1 000006c8: SLOAD 000006c9: PUSH2 0xff00 000006cc: NOT 000006cd: AND 000006ce: PUSH2 0x0100 000006d1: OR 000006d2: SWAP1 000006d3: SSTORE 000006d4: JUMPDEST 000006d5: JUMPDEST 000006d6: JUMP 000006d7: JUMPDEST 000006d8: PUSH1 0x01 000006da: PUSH1 0xa0 000006dc: PUSH1 0x02 000006de: EXP 000006df: SUB 000006e0: CALLER 000006e1: AND 000006e2: PUSH1 0x00 000006e4: SWAP1 000006e5: DUP2 000006e6: MSTORE 000006e7: PUSH1 0x20 000006e9: DUP2 000006ea: SWAP1 000006eb: MSTORE 000006ec: PUSH1 0x40 000006ee: SWAP1 000006ef: KECCAK256 000006f0: SLOAD 000006f1: DUP2 000006f2: SWAP1 000006f3: LT 000006f4: ISZERO 000006f5: PUSH2 0x06fd 000006f8: JUMPI 000006f9: PUSH1 0x00 000006fb: DUP1 000006fc: REVERT 000006fd: JUMPDEST 000006fe: PUSH1 0x01 00000700: PUSH1 0xa0 00000702: PUSH1 0x02 00000704: EXP 00000705: SUB 00000706: DUP3 00000707: AND 00000708: PUSH1 0x00 0000070a: SWAP1 0000070b: DUP2 0000070c: MSTORE 0000070d: PUSH1 0x20 0000070f: DUP2 00000710: SWAP1 00000711: MSTORE 00000712: PUSH1 0x40 00000714: SWAP1 00000715: KECCAK256 00000716: SLOAD 00000717: DUP2 00000718: DUP2 00000719: ADD 0000071a: GT 0000071b: PUSH2 0x0723 0000071e: JUMPI 0000071f: PUSH1 0x00 00000721: DUP1 00000722: REVERT 00000723: JUMPDEST 00000724: PUSH1 0x01 00000726: PUSH1 0xa0 00000728: PUSH1 0x02 0000072a: EXP 0000072b: SUB 0000072c: CALLER 0000072d: DUP2 0000072e: AND 0000072f: PUSH1 0x00 00000731: DUP2 00000732: DUP2 00000733: MSTORE 00000734: PUSH1 0x20 00000736: DUP2 00000737: SWAP1 00000738: MSTORE 00000739: PUSH1 0x40 0000073b: DUP1 0000073c: DUP3 0000073d: KECCAK256 0000073e: DUP1 0000073f: SLOAD 00000740: DUP7 00000741: SWAP1 00000742: SUB 00000743: SWAP1 00000744: SSTORE 00000745: SWAP3 00000746: DUP6 00000747: AND 00000748: DUP1 00000749: DUP3 0000074a: MSTORE 0000074b: SWAP1 0000074c: DUP4 0000074d: SWAP1 0000074e: KECCAK256 0000074f: DUP1 00000750: SLOAD 00000751: DUP6 00000752: ADD 00000753: SWAP1 00000754: SSTORE 00000755: SWAP2 00000756: PUSH1 0x00 00000758: DUP1 00000759: MLOAD 0000075a: PUSH1 0x20 0000075c: PUSH2 0x08a4 0000075f: DUP4 00000760: CODECOPY 00000761: DUP2 00000762: MLOAD 00000763: SWAP2 00000764: MSTORE 00000765: SWAP1 00000766: DUP5 00000767: SWAP1 00000768: MLOAD 00000769: SWAP1 0000076a: DUP2 0000076b: MSTORE 0000076c: PUSH1 0x20 0000076e: ADD 0000076f: PUSH1 0x40 00000771: MLOAD 00000772: DUP1 00000773: SWAP2 00000774: SUB 00000775: SWAP1 00000776: LOG3 00000777: JUMPDEST 00000778: POP 00000779: POP 0000077a: JUMP 0000077b: JUMPDEST 0000077c: PUSH1 0x03 0000077e: SLOAD 0000077f: PUSH7 0x05ba8f69b34800 00000787: SUB 00000788: JUMPDEST 00000789: SWAP1 0000078a: JUMP 0000078b: JUMPDEST 0000078c: PUSH20 0x8776a6fa922e65efcea2371692fefe4ab7c933ab 000007a1: PUSH1 0x00 000007a3: DUP2 000007a4: DUP2 000007a5: MSTORE 000007a6: PUSH1 0x20 000007a8: DUP2 000007a9: SWAP1 000007aa: MSTORE 000007ab: PUSH32 0x54b86b24e0739953f0796bb6750fe9b0cc308d045b20e7ada7524ca2b1c4aa81 000007cc: DUP1 000007cd: SLOAD 000007ce: PUSH5 0xdfebe4bc15 000007d4: SWAP1 000007d5: DUP2 000007d6: ADD 000007d7: SWAP1 000007d8: SWAP2 000007d9: SSTORE 000007da: PUSH1 0x03 000007dc: DUP1 000007dd: SLOAD 000007de: DUP3 000007df: ADD 000007e0: SWAP1 000007e1: SSTORE 000007e2: PUSH1 0x00 000007e4: DUP1 000007e5: MLOAD 000007e6: PUSH1 0x20 000007e8: PUSH2 0x08a4 000007eb: DUP4 000007ec: CODECOPY 000007ed: DUP2 000007ee: MLOAD 000007ef: SWAP2 000007f0: MSTORE 000007f1: SWAP1 000007f2: PUSH1 0x40 000007f4: MLOAD 000007f5: SWAP1 000007f6: DUP2 000007f7: MSTORE 000007f8: PUSH1 0x20 000007fa: ADD 000007fb: PUSH1 0x40 000007fd: MLOAD 000007fe: DUP1 000007ff: SWAP2 00000800: SUB 00000801: SWAP1 00000802: LOG3 00000803: JUMPDEST 00000804: JUMP 00000805: JUMPDEST 00000806: PUSH1 0x00 00000808: PUSH1 0x64 0000080a: PUSH1 0x62 0000080c: PUSH1 0x03 0000080e: SLOAD 0000080f: PUSH1 0x64 00000811: MUL 00000812: DUP2 00000813: ISZERO 00000814: ISZERO 00000815: PUSH2 0x081a 00000818: JUMPI 00000819: INVALID 0000081a: JUMPDEST 0000081b: DIV 0000081c: PUSH1 0x02 0000081e: MUL 0000081f: DUP2 00000820: ISZERO 00000821: ISZERO 00000822: PUSH2 0x0827 00000825: JUMPI 00000826: INVALID 00000827: JUMPDEST 00000828: PUSH20 0x663f98e9c37b9bba460d4d80ca48ef039eae4052 0000083d: PUSH1 0x00 0000083f: DUP2 00000840: DUP2 00000841: MSTORE 00000842: PUSH1 0x20 00000844: DUP2 00000845: SWAP1 00000846: MSTORE 00000847: PUSH32 0x9515311a1bc0dcec2209378e0cc30da473dc304936bce99a2a09e48741c7647e 00000868: DUP1 00000869: SLOAD 0000086a: SWAP5 0000086b: SWAP1 0000086c: SWAP4 0000086d: DIV 0000086e: SWAP4 0000086f: DUP5 00000870: ADD 00000871: SWAP1 00000872: SWAP3 00000873: SSTORE 00000874: PUSH1 0x03 00000876: DUP1 00000877: SLOAD 00000878: DUP5 00000879: ADD 0000087a: SWAP1 0000087b: SSTORE 0000087c: SWAP2 0000087d: SWAP3 0000087e: POP 0000087f: PUSH1 0x00 00000881: DUP1 00000882: MLOAD 00000883: PUSH1 0x20 00000885: PUSH2 0x08a4 00000888: DUP4 00000889: CODECOPY 0000088a: DUP2 0000088b: MLOAD 0000088c: SWAP2 0000088d: MSTORE 0000088e: DUP4 0000088f: PUSH1 0x40 00000891: MLOAD 00000892: SWAP1 00000893: DUP2 00000894: MSTORE 00000895: PUSH1 0x20 00000897: ADD 00000898: PUSH1 0x40 0000089a: MLOAD 0000089b: DUP1 0000089c: SWAP2 0000089d: SUB 0000089e: SWAP1 0000089f: LOG3 000008a0: JUMPDEST 000008a1: POP 000008a2: JUMP 000008a3: STOP 000008a4: UNKNOWN(0xDD) 000008a5: CALLCODE 000008a6: MSTORE 000008a7: UNKNOWN(0xAD) 000008a8: SHL 000008a9: UNKNOWN(0xE2) 000008aa: UNKNOWN(0xC8) 000008ab: SWAP12 000008ac: PUSH10 0xc2b068fc378daa952ba7 000008b7: CALL 000008b8: PUSH4 0xc4a11628 000008bd: CREATE2 000008be: GAS 000008bf: UNKNOWN(0x4D) 000008c0: CREATE2 000008c1: UNKNOWN(0x23) 000008c2: UNKNOWN(0xB3) 000008c3: UNKNOWN(0xEF) 000008c4: LOG1 000008c5: PUSH6 0x627a7a723058 000008cc: KECCAK256 000008cd: SELFBALANCE 000008ce: EXP 000008cf: UNKNOWN(0xC4) 000008d0: ORIGIN 000008d1: DIV 000008d2: SWAP1 000008d3: SAR 000008d4: UNKNOWN(0xC7) 000008d5: UNKNOWN(0xDB) 000008d6: SWAP14 000008d7: DIFFICULTY 000008d8: UNKNOWN(0x2D) 000008d9: DUP14 000008da: UNKNOWN(0xBF) 000008db: DUP7 000008dc: SWAP3 000008dd: UNKNOWN(0xC7) 000008de: UNKNOWN(0xE3) 000008df: EXP 000008e0: GT 000008e1: UNKNOWN(0xD5) 000008e2: PUSH26
| 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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12f20e2a",
"selector": "0x12f20e2a",
"calldata_variants": [
"0x12f20e2a",
"0x12f20e2a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560ed6a1",
"selector": "0x560ed6a1",
"calldata_variants": [
"0x560ed6a1",
"0x560ed6a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7bd703e8",
"selector": "0x7bd703e8",
"calldata_variants": [
"0x7bd703e8",
"0x7bd703e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 2256,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x21ea8cadbe3aec42b594820a02f204b9a54c31d58be776f6d3f5b224780d8a51
call_targets:
0x9aca6abfe63a5ae0dc6258cefb65207ec990aa4d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x21ea8cadbe3aec42b594820a02f204b9a54c31d58be776f6d3f5b224780d8a51",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9aca6abfe63a5ae0dc6258cefb65207ec990aa4d"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12f20e2a",
"selector": "0x12f20e2a",
"calldata_variants": [
"0x12f20e2a",
"0x12f20e2a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560ed6a1",
"selector": "0x560ed6a1",
"calldata_variants": [
"0x560ed6a1",
"0x560ed6a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7bd703e8",
"selector": "0x7bd703e8",
"calldata_variants": [
"0x7bd703e8",
"0x7bd703e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1255,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1397,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2213,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [
{
"pc": 2256,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 4
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x21ea8cadbe3aec42b594820a02f204b9a54c31d58be776f6d3f5b224780d8a51
call_targets:
0x9aca6abfe63a5ae0dc6258cefb65207ec990aa4d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x21ea8cadbe3aec42b594820a02f204b9a54c31d58be776f6d3f5b224780d8a51",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9aca6abfe63a5ae0dc6258cefb65207ec990aa4d"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12f20e2a",
"selector": "0x12f20e2a",
"calldata_variants": [
"0x12f20e2a",
"0x12f20e2a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560ed6a1",
"selector": "0x560ed6a1",
"calldata_variants": [
"0x560ed6a1",
"0x560ed6a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7bd703e8",
"selector": "0x7bd703e8",
"calldata_variants": [
"0x7bd703e8",
"0x7bd703e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1255,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1397,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2213,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": [
{
"pc": 2256,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x6483798a275d0449c8d92a2291cc7a7332148ef9b297b02de0d10e5a22273156
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 22,
"trace_id": "0x6483798a275d0449c8d92a2291cc7a7332148ef9b297b02de0d10e5a22273156",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x12f20e2a",
"selector": "0x12f20e2a",
"calldata_variants": [
"0x12f20e2a",
"0x12f20e2a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560ed6a1",
"selector": "0x560ed6a1",
"calldata_variants": [
"0x560ed6a1",
"0x560ed6a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7bd703e8",
"selector": "0x7bd703e8",
"calldata_variants": [
"0x7bd703e8",
"0x7bd703e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 2
}
|