TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

4b64cf4f-6d3e-4315-aa91-154efe71239a

failed
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 9:19 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Not yet
Best current signal
Authorization based on tx.origin
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable profit paths found in the provided sources.
View stderr
[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":[]}
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
4
EXT*/BALANCE
2
Total opcodes
1492
Flags
create_opcodes_present
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_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
view
trace_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
view
trace_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
view
trace_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
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}