019bb50b-e120-724d-80e7-fccefb42de00
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 |
|---|---|---|---|---|
| 40331 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40332 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40333 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40334 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40335 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40336 | detector.run | complete | 1 / 3 | 3 months ago |
| 40337 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40472 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40473 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1056, in run
solc_path, solc_meta = _prepare_solc(chosen_version, workspace)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 190, in _prepare_solc
raise RuntimeError(f"solc version {default_version} is too old for supported toolchain")
RuntimeError: solc version 0.3.5 is too old for supported toolchain
{"no_findings":false,"summary":"Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.","findings":[{"severity":"medium","category":"access_control","title":"Any whitelisted account can grant withdrawal privileges to arbitrary addresses","exploit_scenario":"If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long‑term draining capability without an owner/administrator approval gate.","recommendation":"Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi‑sig), and consider separate roles for logging vs. fund withdrawal.","evidence":"`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.","locations":["contracts/Contract.sol:171","contracts/Contract.sol:52"]},{"severity":"low","category":"math","title":"Unchecked arithmetic can overflow donation/withdrawal accounting","exploit_scenario":"A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values.","recommendation":"Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.","evidence":"`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.","locations":["contracts/Contract.sol:206","contracts/Contract.sol:227","contracts/Contract.sol:228"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ds3yjjv3
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb51e-c874-7183-9d64-4870a0975f8e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading the bundle file**
exec
/bin/bash -lc 'cat /tmp/codex-ds3yjjv3/AUDIT_BUNDLE.txt' in /tmp/codex-ds3yjjv3 succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// A life-log, done for Charlyn Greeff, born 18 April 2016 @ 15h30 (1460993400)
// Mother: Mirana Hotz, 16 December 1977 (251078400)
// Father: Jaco Greeff, 11 June 1973 (108604800)
//
// version: 1.0.0
// source: https://github.com/jacogr/ethcontracts/tree/master/src/LifeLog
contract CharlyLifeLog {
// allow a maximum 20% withdrawal at any time
uint private constant MAX_WITHDRAW_DIV = 5; // 100/20
// allow one withdrawal every 6 months/180 days
uint private constant WITHDRAW_INTERVAL = 180 days;
thinking
**Analyzing Solidity contract security**
I’m auditing an old Solidity contract that uses `throw` and `send`, with no SafeMath for overflows. I’m checking for reentrancy, privilege escalation via whitelist management, potential DoS, and gas limitations on `send`. There are some access control concerns because any whitelisted address can add others, which could lead to privilege escalation if one key is compromised. The contract also relies on block timestamps and lacks owner-based restrictions, but the overall risks seem moderate with some design trade-offs. I’ll next gather line numbers for reporting.
exec
/bin/bash -lc 'nl -ba /tmp/codex-ds3yjjv3/contracts/Contract.sol' in /tmp/codex-ds3yjjv3 succeeded in 8ms:
1 // A life-log, done for Charlyn Greeff, born 18 April 2016 @ 15h30 (1460993400)
2 // Mother: Mirana Hotz, 16 December 1977 (251078400)
3 // Father: Jaco Greeff, 11 June 1973 (108604800)
4 //
5 // version: 1.0.0
6 // source: https://github.com/jacogr/ethcontracts/tree/master/src/LifeLog
7
8 contract CharlyLifeLog {
9 // allow a maximum 20% withdrawal at any time
10 uint private constant MAX_WITHDRAW_DIV = 5; // 100/20
11
12 // allow one withdrawal every 6 months/180 days
13 uint private constant WITHDRAW_INTERVAL = 180 days;
14
15 // all the actual events that can be created
16 event LogDonation(address indexed by, uint loggedAt, uint amount);
17 event LogWithdrawal(address indexed by, uint loggedAt, uint amount);
18 event LogPersonNew(address indexed by, uint loggedAt, uint index);
19 event LogPersonUpdate(address indexed by, uint loggedAt, uint index, string field);
20 event LogWhitelistAdd(address indexed by, uint loggedAt, address addr);
thinking
**Summarizing security findings and preparing report**
I'm gathering key security issues: unrestricted whitelist additions risk unauthorized withdrawals (medium severity), and unchecked arithmetic can overflow donation and withdrawal totals (low severity). I’ll highlight exploit scenarios, relevant code lines, and produce a JSON report reflecting these findings with clear categories and recommendations.
codex
{"no_findings":false,"summary":"Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.","findings":[{"severity":"medium","category":"access_control","title":"Any whitelisted account can grant withdrawal privileges to arbitrary addresses","exploit_scenario":"If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long‑term draining capability without an owner/administrator approval gate.","recommendation":"Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi‑sig), and consider separate roles for logging vs. fund withdrawal.","evidence":"`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.","locations":["contracts/Contract.sol:171","contracts/Contract.sol:52"]},{"severity":"low","category":"math","title":"Unchecked arithmetic can overflow donation/withdrawal accounting","exploit_scenario":"A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values.","recommendation":"Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.","evidence":"`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.","locations":["contracts/Contract.sol:206","contracts/Contract.sol:227","contracts/Contract.sol:228"]}]}
tokens used
10,850
{
"codex": {
"ran_at": "2026-01-13T02:11:30.920742+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.",
"raw_final": {
"summary": "Found an access-control privilege escalation in whitelist management and unchecked arithmetic that can corrupt accounting totals.",
"findings": [
{
"title": "Any whitelisted account can grant withdrawal privileges to arbitrary addresses",
"category": "access_control",
"evidence": "`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:171",
"contracts/Contract.sol:52"
],
"recommendation": "Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi\u2011sig), and consider separate roles for logging vs. fund withdrawal.",
"exploit_scenario": "If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long\u2011term draining capability without an owner/administrator approval gate."
},
{
"title": "Unchecked arithmetic can overflow donation/withdrawal accounting",
"category": "math",
"evidence": "`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.",
"severity": "low",
"locations": [
"contracts/Contract.sol:206",
"contracts/Contract.sol:227",
"contracts/Contract.sol:228"
],
"recommendation": "Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.",
"exploit_scenario": "A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00ce 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH3 0xb37044 00000018: DUP2 00000019: EQ 0000001a: PUSH2 0x00d9 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x09a399a7 00000024: EQ 00000025: PUSH2 0x00e2 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x0af658ca 0000002f: EQ 00000030: PUSH2 0x0192 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x0ce3151c 0000003a: EQ 0000003b: PUSH2 0x01c2 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0x2e1a7d4d 00000045: EQ 00000046: PUSH2 0x0232 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0x4a9b3f95 00000050: EQ 00000051: PUSH2 0x025f 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0x4b319713 0000005b: EQ 0000005c: PUSH2 0x02cf 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0x524fa7b9 00000066: EQ 00000067: PUSH2 0x02d8 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0x61591a7c 00000071: EQ 00000072: PUSH2 0x0305 00000075: JUMPI 00000076: DUP1 00000077: PUSH4 0x98866c1a 0000007c: EQ 0000007d: PUSH2 0x0335 00000080: JUMPI 00000081: DUP1 00000082: PUSH4 0x9b19251a 00000087: EQ 00000088: PUSH2 0x0365 0000008b: JUMPI 0000008c: DUP1 0000008d: PUSH4 0x9e7a13ad 00000092: EQ 00000093: PUSH2 0x0380 00000096: JUMPI 00000097: DUP1 00000098: PUSH4 0xa932ed0d 0000009d: EQ 0000009e: PUSH2 0x04a5 000000a1: JUMPI 000000a2: DUP1 000000a3: PUSH4 0xb60e72cc 000000a8: EQ 000000a9: PUSH2 0x04d2 000000ac: JUMPI 000000ad: DUP1 000000ae: PUSH4 0xb7e9f193 000000b3: EQ 000000b4: PUSH2 0x0540 000000b7: JUMPI 000000b8: DUP1 000000b9: PUSH4 0xcc6cb19a 000000be: EQ 000000bf: PUSH2 0x0549 000000c2: JUMPI 000000c3: DUP1 000000c4: PUSH4 0xed88c68e 000000c9: EQ 000000ca: PUSH2 0x0561 000000cd: JUMPI 000000ce: JUMPDEST 000000cf: PUSH2 0x0573 000000d2: PUSH2 0x0575 000000d5: PUSH2 0x0565 000000d8: JUMP 000000d9: JUMPDEST 000000da: PUSH2 0x0577 000000dd: PUSH1 0x01 000000df: SLOAD 000000e0: DUP2 000000e1: JUMP 000000e2: JUMPDEST 000000e3: PUSH1 0x40 000000e5: DUP1 000000e6: MLOAD 000000e7: PUSH1 0x20 000000e9: PUSH1 0x04 000000eb: DUP1 000000ec: CALLDATALOAD 000000ed: DUP1 000000ee: DUP3 000000ef: ADD 000000f0: CALLDATALOAD 000000f1: PUSH1 0x1f 000000f3: DUP2 000000f4: ADD 000000f5: DUP5 000000f6: SWAP1 000000f7: DIV 000000f8: DUP5 000000f9: MUL 000000fa: DUP6 000000fb: ADD 000000fc: DUP5 000000fd: ADD 000000fe: SWAP1 000000ff: SWAP6 00000100: MSTORE 00000101: DUP5 00000102: DUP5 00000103: MSTORE 00000104: PUSH2 0x0573 00000107: SWAP5 00000108: SWAP2 00000109: SWAP4 0000010a: PUSH1 0x24 0000010c: SWAP4 0000010d: SWAP1 0000010e: SWAP3 0000010f: SWAP2 00000110: DUP5 00000111: ADD 00000112: SWAP2 00000113: SWAP1 00000114: DUP2 00000115: SWAP1 00000116: DUP5 00000117: ADD 00000118: DUP4 00000119: DUP3 0000011a: DUP1 0000011b: DUP3 0000011c: DUP5 0000011d: CALLDATACOPY 0000011e: POP 0000011f: POP 00000120: PUSH1 0x40 00000122: DUP1 00000123: MLOAD 00000124: PUSH1 0x20 00000126: PUSH1 0x64 00000128: CALLDATALOAD 00000129: DUP1 0000012a: DUP12 0000012b: ADD 0000012c: CALLDATALOAD 0000012d: PUSH1 0x1f 0000012f: DUP2 00000130: ADD 00000131: DUP4 00000132: SWAP1 00000133: DIV 00000134: DUP4 00000135: MUL 00000136: DUP5 00000137: ADD 00000138: DUP4 00000139: ADD 0000013a: SWAP1 0000013b: SWAP5 0000013c: MSTORE 0000013d: DUP4 0000013e: DUP4 0000013f: MSTORE 00000140: SWAP8 00000141: SWAP10 00000142: DUP10 00000143: CALLDATALOAD 00000144: SWAP10 00000145: PUSH1 0x44 00000147: CALLDATALOAD 00000148: SWAP10 00000149: SWAP2 0000014a: SWAP9 0000014b: POP 0000014c: PUSH1 0x84 0000014e: SWAP8 0000014f: POP 00000150: SWAP3 00000151: SWAP6 00000152: POP 00000153: SWAP1 00000154: SWAP2 00000155: ADD 00000156: SWAP3 00000157: POP 00000158: DUP2 00000159: SWAP1 0000015a: DUP5 0000015b: ADD 0000015c: DUP4 0000015d: DUP3 0000015e: DUP1 0000015f: DUP3 00000160: DUP5 00000161: CALLDATACOPY 00000162: POP 00000163: SWAP5 00000164: SWAP7 00000165: POP 00000166: POP 00000167: POP 00000168: POP 00000169: POP 0000016a: POP 0000016b: POP 0000016c: PUSH1 0x01 0000016e: PUSH1 0xa0 00000170: PUSH1 0x02 00000172: EXP 00000173: SUB 00000174: CALLER 00000175: AND 00000176: PUSH1 0x00 00000178: SWAP1 00000179: DUP2 0000017a: MSTORE 0000017b: PUSH1 0x05 0000017d: PUSH1 0x20 0000017f: MSTORE 00000180: PUSH1 0x40 00000182: SWAP1 00000183: KECCAK256 00000184: SLOAD 00000185: PUSH1 0xff 00000187: AND 00000188: ISZERO 00000189: ISZERO 0000018a: PUSH2 0x0745 0000018d: JUMPI 0000018e: PUSH2 0x0002 00000191: JUMP 00000192: JUMPDEST 00000193: PUSH2 0x0573 00000196: PUSH1 0x04 00000198: CALLDATALOAD 00000199: PUSH1 0x24 0000019b: CALLDATALOAD 0000019c: PUSH1 0x01 0000019e: PUSH1 0xa0 000001a0: PUSH1 0x02 000001a2: EXP 000001a3: SUB 000001a4: CALLER 000001a5: AND 000001a6: PUSH1 0x00 000001a8: SWAP1 000001a9: DUP2 000001aa: MSTORE 000001ab: PUSH1 0x05 000001ad: PUSH1 0x20 000001af: MSTORE 000001b0: PUSH1 0x40 000001b2: SWAP1 000001b3: KECCAK256 000001b4: SLOAD 000001b5: PUSH1 0xff 000001b7: AND 000001b8: ISZERO 000001b9: ISZERO 000001ba: PUSH2 0x0a33 000001bd: JUMPI 000001be: PUSH2 0x0002 000001c1: JUMP 000001c2: JUMPDEST 000001c3: PUSH1 0x40 000001c5: DUP1 000001c6: MLOAD 000001c7: PUSH1 0x20 000001c9: PUSH1 0x24 000001cb: DUP1 000001cc: CALLDATALOAD 000001cd: PUSH1 0x04 000001cf: DUP2 000001d0: DUP2 000001d1: ADD 000001d2: CALLDATALOAD 000001d3: PUSH1 0x1f 000001d5: DUP2 000001d6: ADD 000001d7: DUP6 000001d8: SWAP1 000001d9: DIV 000001da: DUP6 000001db: MUL 000001dc: DUP7 000001dd: ADD 000001de: DUP6 000001df: ADD 000001e0: SWAP1 000001e1: SWAP7 000001e2: MSTORE 000001e3: DUP6 000001e4: DUP6 000001e5: MSTORE 000001e6: PUSH2 0x0573 000001e9: SWAP6 000001ea: DUP2 000001eb: CALLDATALOAD 000001ec: SWAP6 000001ed: SWAP2 000001ee: SWAP5 000001ef: PUSH1 0x44 000001f1: SWAP5 000001f2: SWAP3 000001f3: SWAP4 000001f4: SWAP1 000001f5: SWAP3 000001f6: ADD 000001f7: SWAP2 000001f8: DUP2 000001f9: SWAP1 000001fa: DUP5 000001fb: ADD 000001fc: DUP4 000001fd: DUP3 000001fe: DUP1 000001ff: DUP3 00000200: DUP5 00000201: CALLDATACOPY 00000202: POP 00000203: SWAP5 00000204: SWAP7 00000205: POP 00000206: POP 00000207: POP 00000208: POP 00000209: POP 0000020a: POP 0000020b: POP 0000020c: PUSH1 0x01 0000020e: PUSH1 0xa0 00000210: PUSH1 0x02 00000212: EXP 00000213: SUB 00000214: CALLER 00000215: AND 00000216: PUSH1 0x00 00000218: SWAP1 00000219: DUP2 0000021a: MSTORE 0000021b: PUSH1 0x05 0000021d: PUSH1 0x20 0000021f: MSTORE 00000220: PUSH1 0x40 00000222: SWAP1 00000223: KECCAK256 00000224: SLOAD 00000225: PUSH1 0xff 00000227: AND 00000228: ISZERO 00000229: ISZERO 0000022a: PUSH2 0x0c12 0000022d: JUMPI 0000022e: PUSH2 0x0002 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH2 0x0573 00000236: PUSH1 0x04 00000238: CALLDATALOAD 00000239: PUSH1 0x01 0000023b: PUSH1 0xa0 0000023d: PUSH1 0x02 0000023f: EXP 00000240: SUB 00000241: CALLER 00000242: AND 00000243: PUSH1 0x00 00000245: SWAP1 00000246: DUP2 00000247: MSTORE 00000248: PUSH1 0x05 0000024a: PUSH1 0x20 0000024c: MSTORE 0000024d: PUSH1 0x40 0000024f: DUP2 00000250: KECCAK256 00000251: SLOAD 00000252: PUSH1 0xff 00000254: AND 00000255: ISZERO 00000256: ISZERO 00000257: PUSH2 0x0d30 0000025a: JUMPI 0000025b: PUSH2 0x0002 0000025e: JUMP 0000025f: JUMPDEST 00000260: PUSH1 0x40 00000262: DUP1 00000263: MLOAD 00000264: PUSH1 0x20 00000266: PUSH1 0x24 00000268: DUP1 00000269: CALLDATALOAD 0000026a: PUSH1 0x04 0000026c: DUP2 0000026d: DUP2 0000026e: ADD 0000026f: CALLDATALOAD 00000270: PUSH1 0x1f 00000272: DUP2 00000273: ADD 00000274: DUP6 00000275: SWAP1 00000276: DIV 00000277: DUP6 00000278: MUL 00000279: DUP7 0000027a: ADD 0000027b: DUP6 0000027c: ADD 0000027d: SWAP1 0000027e: SWAP7 0000027f: MSTORE 00000280: DUP6 00000281: DUP6 00000282: MSTORE 00000283: PUSH2 0x0573 00000286: SWAP6 00000287: DUP2 00000288: CALLDATALOAD 00000289: SWAP6 0000028a: SWAP2 0000028b: SWAP5 0000028c: PUSH1 0x44 0000028e: SWAP5 0000028f: SWAP3 00000290: SWAP4 00000291: SWAP1 00000292: SWAP3 00000293: ADD 00000294: SWAP2 00000295: DUP2 00000296: SWAP1 00000297: DUP5 00000298: ADD 00000299: DUP4 0000029a: DUP3 0000029b: DUP1 0000029c: DUP3 0000029d: DUP5 0000029e: CALLDATACOPY 0000029f: POP 000002a0: SWAP5 000002a1: SWAP7 000002a2: POP 000002a3: POP 000002a4: POP 000002a5: POP 000002a6: POP 000002a7: POP 000002a8: POP 000002a9: PUSH1 0x01 000002ab: PUSH1 0xa0 000002ad: PUSH1 0x02 000002af: EXP 000002b0: SUB 000002b1: CALLER 000002b2: AND 000002b3: PUSH1 0x00 000002b5: SWAP1 000002b6: DUP2 000002b7: MSTORE 000002b8: PUSH1 0x05 000002ba: PUSH1 0x20 000002bc: MSTORE 000002bd: PUSH1 0x40 000002bf: SWAP1 000002c0: KECCAK256 000002c1: SLOAD 000002c2: PUSH1 0xff 000002c4: AND 000002c5: ISZERO 000002c6: ISZERO 000002c7: PUSH2 0x0de4 000002ca: JUMPI 000002cb: PUSH2 0x0002 000002ce: JUMP 000002cf: JUMPDEST 000002d0: PUSH2 0x0577 000002d3: PUSH1 0x02 000002d5: SLOAD 000002d6: DUP2 000002d7: JUMP 000002d8: JUMPDEST 000002d9: PUSH2 0x0573 000002dc: PUSH1 0x04 000002de: CALLDATALOAD 000002df: PUSH1 0x01 000002e1: PUSH1 0xa0 000002e3: PUSH1 0x02 000002e5: EXP 000002e6: SUB 000002e7: CALLER 000002e8: AND 000002e9: PUSH1 0x00 000002eb: SWAP1 000002ec: DUP2 000002ed: MSTORE 000002ee: PUSH1 0x05 000002f0: PUSH1 0x20 000002f2: MSTORE 000002f3: PUSH1 0x40 000002f5: SWAP1 000002f6: KECCAK256 000002f7: SLOAD 000002f8: PUSH1 0xff 000002fa: AND 000002fb: ISZERO 000002fc: ISZERO 000002fd: PUSH2 0x0eca 00000300: JUMPI 00000301: PUSH2 0x0002 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH2 0x0573 00000309: PUSH1 0x04 0000030b: CALLDATALOAD 0000030c: PUSH1 0x24 0000030e: CALLDATALOAD 0000030f: PUSH1 0x01 00000311: PUSH1 0xa0 00000313: PUSH1 0x02 00000315: EXP 00000316: SUB 00000317: CALLER 00000318: AND 00000319: PUSH1 0x00 0000031b: SWAP1 0000031c: DUP2 0000031d: MSTORE 0000031e: PUSH1 0x05 00000320: PUSH1 0x20 00000322: MSTORE 00000323: PUSH1 0x40 00000325: SWAP1 00000326: KECCAK256 00000327: SLOAD 00000328: PUSH1 0xff 0000032a: AND 0000032b: ISZERO 0000032c: ISZERO 0000032d: PUSH2 0x0f42 00000330: JUMPI 00000331: PUSH2 0x0002 00000334: JUMP 00000335: JUMPDEST 00000336: PUSH2 0x0573 00000339: PUSH1 0x04 0000033b: CALLDATALOAD 0000033c: PUSH1 0x24 0000033e: CALLDATALOAD 0000033f: PUSH1 0x01 00000341: PUSH1 0xa0 00000343: PUSH1 0x02 00000345: EXP 00000346: SUB 00000347: CALLER 00000348: AND 00000349: PUSH1 0x00 0000034b: SWAP1 0000034c: DUP2 0000034d: MSTORE 0000034e: PUSH1 0x05 00000350: PUSH1 0x20 00000352: MSTORE 00000353: PUSH1 0x40 00000355: SWAP1 00000356: KECCAK256 00000357: SLOAD 00000358: PUSH1 0xff 0000035a: AND 0000035b: ISZERO 0000035c: ISZERO 0000035d: PUSH2 0x0ffa 00000360: JUMPI 00000361: PUSH2 0x0002 00000364: JUMP 00000365: JUMPDEST 00000366: PUSH2 0x0589 00000369: PUSH1 0x04 0000036b: CALLDATALOAD 0000036c: PUSH1 0x05 0000036e: PUSH1 0x20 00000370: MSTORE 00000371: PUSH1 0x00 00000373: SWAP1 00000374: DUP2 00000375: MSTORE 00000376: PUSH1 0x40 00000378: SWAP1 00000379: KECCAK256 0000037a: SLOAD 0000037b: PUSH1 0xff 0000037d: AND 0000037e: DUP2 0000037f: JUMP 00000380: JUMPDEST 00000381: PUSH2 0x059d 00000384: PUSH1 0x04 00000386: CALLDATALOAD 00000387: PUSH1 0x03 00000389: DUP1 0000038a: SLOAD 0000038b: DUP3 0000038c: SWAP1 0000038d: DUP2 0000038e: LT 0000038f: ISZERO 00000390: PUSH2 0x0002 00000393: JUMPI 00000394: POP 00000395: PUSH1 0x00 00000397: MSTORE 00000398: PUSH1 0x07 0000039a: MUL 0000039b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 000003bc: DUP2 000003bd: ADD 000003be: SLOAD 000003bf: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c 000003e0: DUP3 000003e1: ADD 000003e2: SLOAD 000003e3: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d 00000404: DUP4 00000405: ADD 00000406: SLOAD 00000407: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e 00000428: DUP5 00000429: ADD 0000042a: SLOAD 0000042b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f 0000044c: DUP6 0000044d: ADD 0000044e: SLOAD 0000044f: PUSH1 0xff 00000451: SWAP5 00000452: SWAP1 00000453: SWAP5 00000454: AND 00000455: SWAP5 00000456: SWAP3 00000457: SWAP4 00000458: SWAP2 00000459: SWAP3 0000045a: SWAP1 0000045b: SWAP2 0000045c: SWAP1 0000045d: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f860 0000047e: DUP2 0000047f: ADD 00000480: SWAP1 00000481: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f861 000004a2: ADD 000004a3: DUP8 000004a4: JUMP 000004a5: JUMPDEST 000004a6: PUSH2 0x0573 000004a9: PUSH1 0x04 000004ab: CALLDATALOAD 000004ac: PUSH1 0x01 000004ae: PUSH1 0xa0 000004b0: PUSH1 0x02 000004b2: EXP 000004b3: SUB 000004b4: CALLER 000004b5: AND 000004b6: PUSH1 0x00 000004b8: SWAP1 000004b9: DUP2 000004ba: MSTORE 000004bb: PUSH1 0x05 000004bd: PUSH1 0x20 000004bf: MSTORE 000004c0: PUSH1 0x40 000004c2: SWAP1 000004c3: KECCAK256 000004c4: SLOAD 000004c5: PUSH1 0xff 000004c7: AND 000004c8: ISZERO 000004c9: ISZERO 000004ca: PUSH2 0x10af 000004cd: JUMPI 000004ce: PUSH2 0x0002 000004d1: JUMP 000004d2: JUMPDEST 000004d3: PUSH1 0x40 000004d5: DUP1 000004d6: MLOAD 000004d7: PUSH1 0x20 000004d9: PUSH1 0x04 000004db: DUP1 000004dc: CALLDATALOAD 000004dd: DUP1 000004de: DUP3 000004df: ADD 000004e0: CALLDATALOAD 000004e1: PUSH1 0x1f 000004e3: DUP2 000004e4: ADD 000004e5: DUP5 000004e6: SWAP1 000004e7: DIV 000004e8: DUP5 000004e9: MUL 000004ea: DUP6 000004eb: ADD 000004ec: DUP5 000004ed: ADD 000004ee: SWAP1 000004ef: SWAP6 000004f0: MSTORE 000004f1: DUP5 000004f2: DUP5 000004f3: MSTORE 000004f4: PUSH2 0x0573 000004f7: SWAP5 000004f8: SWAP2 000004f9: SWAP4 000004fa: PUSH1 0x24 000004fc: SWAP4 000004fd: SWAP1 000004fe: SWAP3 000004ff: SWAP2 00000500: DUP5 00000501: ADD 00000502: SWAP2 00000503: SWAP1 00000504: DUP2 00000505: SWAP1 00000506: DUP5 00000507: ADD 00000508: DUP4 00000509: DUP3 0000050a: DUP1 0000050b: DUP3 0000050c: DUP5 0000050d: CALLDATACOPY 0000050e: POP 0000050f: SWAP5 00000510: SWAP7 00000511: POP 00000512: POP 00000513: SWAP4 00000514: CALLDATALOAD 00000515: SWAP4 00000516: POP 00000517: POP 00000518: POP 00000519: POP 0000051a: PUSH1 0x01 0000051c: PUSH1 0xa0 0000051e: PUSH1 0x02 00000520: EXP 00000521: SUB 00000522: CALLER 00000523: AND 00000524: PUSH1 0x00 00000526: SWAP1 00000527: DUP2 00000528: MSTORE 00000529: PUSH1 0x05 0000052b: PUSH1 0x20 0000052d: MSTORE 0000052e: PUSH1 0x40 00000530: DUP2 00000531: KECCAK256 00000532: SLOAD 00000533: PUSH1 0xff 00000535: AND 00000536: ISZERO 00000537: ISZERO 00000538: PUSH2 0x113f 0000053b: JUMPI 0000053c: PUSH2 0x0002 0000053f: JUMP 00000540: JUMPDEST 00000541: PUSH2 0x0577 00000544: PUSH1 0x00 00000546: SLOAD 00000547: DUP2 00000548: JUMP 00000549: JUMPDEST 0000054a: PUSH2 0x0577 0000054d: PUSH1 0x04 0000054f: CALLDATALOAD 00000550: PUSH1 0x04 00000552: PUSH1 0x20 00000554: MSTORE 00000555: PUSH1 0x00 00000557: SWAP1 00000558: DUP2 00000559: MSTORE 0000055a: PUSH1 0x40 0000055c: SWAP1 0000055d: KECCAK256 0000055e: SLOAD 0000055f: DUP2 00000560: JUMP 00000561: JUMPDEST 00000562: PUSH2 0x0573 00000565: JUMPDEST 00000566: CALLVALUE 00000567: PUSH1 0x00 00000569: EQ 0000056a: ISZERO 0000056b: PUSH2 0x06cb 0000056e: JUMPI 0000056f: PUSH2 0x0002 00000572: JUMP 00000573: JUMPDEST 00000574: STOP 00000575: JUMPDEST 00000576: JUMP 00000577: JUMPDEST 00000578: PUSH1 0x40 0000057a: DUP1 0000057b: MLOAD 0000057c: SWAP2 0000057d: DUP3 0000057e: MSTORE 0000057f: MLOAD 00000580: SWAP1 00000581: DUP2 00000582: SWAP1 00000583: SUB 00000584: PUSH1 0x20 00000586: ADD 00000587: SWAP1 00000588: RETURN 00000589: JUMPDEST 0000058a: PUSH1 0x40 0000058c: DUP1 0000058d: MLOAD 0000058e: SWAP2 0000058f: ISZERO 00000590: ISZERO 00000591: DUP3 00000592: MSTORE 00000593: MLOAD 00000594: SWAP1 00000595: DUP2 00000596: SWAP1 00000597: SUB 00000598: PUSH1 0x20 0000059a: ADD 0000059b: SWAP1 0000059c: RETURN 0000059d: JUMPDEST 0000059e: PUSH1 0x40 000005a0: DUP1 000005a1: MLOAD 000005a2: DUP9 000005a3: ISZERO 000005a4: ISZERO 000005a5: DUP2 000005a6: MSTORE 000005a7: PUSH1 0x20 000005a9: DUP2 000005aa: ADD 000005ab: DUP9 000005ac: SWAP1 000005ad: MSTORE 000005ae: SWAP1 000005af: DUP2 000005b0: ADD 000005b1: DUP7 000005b2: SWAP1 000005b3: MSTORE 000005b4: PUSH1 0x60 000005b6: DUP2 000005b7: ADD 000005b8: DUP6 000005b9: SWAP1 000005ba: MSTORE 000005bb: PUSH1 0x80 000005bd: DUP2 000005be: ADD 000005bf: DUP5 000005c0: SWAP1 000005c1: MSTORE 000005c2: PUSH1 0xe0 000005c4: PUSH1 0xa0 000005c6: DUP3 000005c7: ADD 000005c8: DUP2 000005c9: DUP2 000005ca: MSTORE 000005cb: DUP5 000005cc: SLOAD 000005cd: PUSH1 0x02 000005cf: PUSH1 0x01 000005d1: DUP3 000005d2: AND 000005d3: ISZERO 000005d4: PUSH2 0x0100 000005d7: SWAP1 000005d8: DUP2 000005d9: MUL 000005da: PUSH1 0x00 000005dc: NOT 000005dd: ADD 000005de: SWAP1 000005df: SWAP3 000005e0: AND 000005e1: DIV 000005e2: SWAP3 000005e3: DUP5 000005e4: ADD 000005e5: DUP4 000005e6: SWAP1 000005e7: MSTORE 000005e8: SWAP1 000005e9: SWAP2 000005ea: PUSH1 0xc0 000005ec: DUP5 000005ed: ADD 000005ee: SWAP2 000005ef: DUP5 000005f0: ADD 000005f1: SWAP1 000005f2: DUP7 000005f3: SWAP1 000005f4: DUP1 000005f5: ISZERO 000005f6: PUSH2 0x0640 000005f9: JUMPI 000005fa: DUP1 000005fb: PUSH1 0x1f 000005fd: LT 000005fe: PUSH2 0x0615 00000601: JUMPI 00000602: PUSH2 0x0100 00000605: DUP1 00000606: DUP4 00000607: SLOAD 00000608: DIV 00000609: MUL 0000060a: DUP4 0000060b: MSTORE 0000060c: SWAP2 0000060d: PUSH1 0x20 0000060f: ADD 00000610: SWAP2 00000611: PUSH2 0x0640 00000614: JUMP 00000615: JUMPDEST 00000616: DUP3 00000617: ADD 00000618: SWAP2 00000619: SWAP1 0000061a: PUSH1 0x00 0000061c: MSTORE 0000061d: PUSH1 0x20 0000061f: PUSH1 0x00 00000621: KECCAK256 00000622: SWAP1 00000623: JUMPDEST 00000624: DUP2 00000625: SLOAD 00000626: DUP2 00000627: MSTORE 00000628: SWAP1 00000629: PUSH1 0x01 0000062b: ADD 0000062c: SWAP1 0000062d: PUSH1 0x20 0000062f: ADD 00000630: DUP1 00000631: DUP4 00000632: GT 00000633: PUSH2 0x0623 00000636: JUMPI 00000637: DUP3 00000638: SWAP1 00000639: SUB 0000063a: PUSH1 0x1f 0000063c: AND 0000063d: DUP3 0000063e: ADD 0000063f: SWAP2 00000640: JUMPDEST 00000641: POP 00000642: POP 00000643: DUP4 00000644: DUP2 00000645: SUB 00000646: DUP3 00000647: MSTORE 00000648: DUP5 00000649: SLOAD 0000064a: PUSH1 0x02 0000064c: PUSH1 0x01 0000064e: DUP3 0000064f: AND 00000650: ISZERO 00000651: PUSH2 0x0100 00000654: MUL 00000655: PUSH1 0x00 00000657: NOT 00000658: ADD 00000659: SWAP1 0000065a: SWAP2 0000065b: AND 0000065c: DIV 0000065d: DUP1 0000065e: DUP3 0000065f: MSTORE 00000660: PUSH1 0x20 00000662: SWAP2 00000663: SWAP1 00000664: SWAP2 00000665: ADD 00000666: SWAP1 00000667: DUP6 00000668: SWAP1 00000669: DUP1 0000066a: ISZERO 0000066b: PUSH2 0x06b5 0000066e: JUMPI 0000066f: DUP1 00000670: PUSH1 0x1f 00000672: LT 00000673: PUSH2 0x068a 00000676: JUMPI 00000677: PUSH2 0x0100 0000067a: DUP1 0000067b: DUP4 0000067c: SLOAD 0000067d: DIV 0000067e: MUL 0000067f: DUP4 00000680: MSTORE 00000681: SWAP2 00000682: PUSH1 0x20 00000684: ADD 00000685: SWAP2 00000686: PUSH2 0x06b5 00000689: JUMP 0000068a: JUMPDEST 0000068b: DUP3 0000068c: ADD 0000068d: SWAP2 0000068e: SWAP1 0000068f: PUSH1 0x00 00000691: MSTORE 00000692: PUSH1 0x20 00000694: PUSH1 0x00 00000696: KECCAK256 00000697: SWAP1 00000698: JUMPDEST 00000699: DUP2 0000069a: SLOAD 0000069b: DUP2 0000069c: MSTORE 0000069d: SWAP1 0000069e: PUSH1 0x01 000006a0: ADD 000006a1: SWAP1 000006a2: PUSH1 0x20 000006a4: ADD 000006a5: DUP1 000006a6: DUP4 000006a7: GT 000006a8: PUSH2 0x0698 000006ab: JUMPI 000006ac: DUP3 000006ad: SWAP1 000006ae: SUB 000006af: PUSH1 0x1f 000006b1: AND 000006b2: DUP3 000006b3: ADD 000006b4: SWAP2 000006b5: JUMPDEST 000006b6: POP 000006b7: POP 000006b8: SWAP10 000006b9: POP 000006ba: POP 000006bb: POP 000006bc: POP 000006bd: POP 000006be: POP 000006bf: POP 000006c0: POP 000006c1: POP 000006c2: POP 000006c3: PUSH1 0x40 000006c5: MLOAD 000006c6: DUP1 000006c7: SWAP2 000006c8: SUB 000006c9: SWAP1 000006ca: RETURN 000006cb: JUMPDEST 000006cc: PUSH1 0x40 000006ce: DUP1 000006cf: MLOAD 000006d0: TIMESTAMP 000006d1: DUP2 000006d2: MSTORE 000006d3: CALLVALUE 000006d4: PUSH1 0x20 000006d6: DUP3 000006d7: ADD 000006d8: MSTORE 000006d9: DUP2 000006da: MLOAD 000006db: PUSH1 0x01 000006dd: PUSH1 0xa0 000006df: PUSH1 0x02 000006e1: EXP 000006e2: SUB 000006e3: CALLER 000006e4: AND 000006e5: SWAP3 000006e6: PUSH32 0x0a1930b762a25b24b07de059d1e257f20e78aa16db8c0408da9f67eb0a1bf010 00000707: SWAP3 00000708: DUP3 00000709: SWAP1 0000070a: SUB 0000070b: ADD 0000070c: SWAP1 0000070d: LOG2 0000070e: PUSH1 0x01 00000710: PUSH1 0xa0 00000712: PUSH1 0x02 00000714: EXP 00000715: SUB 00000716: CALLER 00000717: AND 00000718: PUSH1 0x00 0000071a: SWAP1 0000071b: DUP2 0000071c: MSTORE 0000071d: PUSH1 0x04 0000071f: PUSH1 0x20 00000721: MSTORE 00000722: PUSH1 0x40 00000724: SWAP1 00000725: KECCAK256 00000726: DUP1 00000727: SLOAD 00000728: CALLVALUE 00000729: SWAP1 0000072a: DUP2 0000072b: ADD 0000072c: SWAP1 0000072d: SWAP2 0000072e: SSTORE 0000072f: PUSH1 0x01 00000731: DUP1 00000732: SLOAD 00000733: SWAP1 00000734: SWAP2 00000735: ADD 00000736: SWAP1 00000737: SSTORE 00000738: JUMP 00000739: JUMPDEST 0000073a: POP 0000073b: POP 0000073c: POP 0000073d: POP 0000073e: POP 0000073f: JUMPDEST 00000740: POP 00000741: POP 00000742: POP 00000743: POP 00000744: JUMP 00000745: JUMPDEST 00000746: PUSH1 0x00 00000748: CALLVALUE 00000749: GT 0000074a: ISZERO 0000074b: PUSH2 0x0753 0000074e: JUMPI 0000074f: PUSH2 0x0002 00000752: JUMP 00000753: JUMPDEST 00000754: PUSH1 0x40 00000756: DUP1 00000757: MLOAD 00000758: PUSH1 0x03 0000075a: SLOAD 0000075b: TIMESTAMP 0000075c: DUP3 0000075d: MSTORE 0000075e: PUSH1 0x20 00000760: DUP3 00000761: ADD 00000762: MSTORE 00000763: DUP2 00000764: MLOAD 00000765: PUSH1 0x01 00000767: PUSH1 0xa0 00000769: PUSH1 0x02 0000076b: EXP 0000076c: SUB 0000076d: CALLER 0000076e: AND 0000076f: SWAP3 00000770: PUSH32 0x5aa5b9d199f63ebcb0a81969bddfcc1f1d736706d8b97e5598df464c87b44044 00000791: SWAP3 00000792: DUP3 00000793: SWAP1 00000794: SUB 00000795: ADD 00000796: SWAP1 00000797: LOG2 00000798: PUSH1 0x03 0000079a: PUSH1 0x00 0000079c: POP 0000079d: DUP1 0000079e: SLOAD 0000079f: DUP1 000007a0: PUSH1 0x01 000007a2: ADD 000007a3: DUP3 000007a4: DUP2 000007a5: DUP2 000007a6: SLOAD 000007a7: DUP2 000007a8: DUP4 000007a9: SSTORE 000007aa: DUP2 000007ab: DUP2 000007ac: ISZERO 000007ad: GT 000007ae: PUSH2 0x07d0 000007b1: JUMPI 000007b2: PUSH1 0x07 000007b4: MUL 000007b5: DUP2 000007b6: PUSH1 0x07 000007b8: MUL 000007b9: DUP4 000007ba: PUSH1 0x00 000007bc: MSTORE 000007bd: PUSH1 0x20 000007bf: PUSH1 0x00 000007c1: KECCAK256 000007c2: SWAP2 000007c3: DUP3 000007c4: ADD 000007c5: SWAP2 000007c6: ADD 000007c7: PUSH2 0x07d0 000007ca: SWAP2 000007cb: SWAP1 000007cc: PUSH2 0x08a4 000007cf: JUMP 000007d0: JUMPDEST 000007d1: POP 000007d2: POP 000007d3: POP 000007d4: SWAP2 000007d5: SWAP1 000007d6: SWAP1 000007d7: PUSH1 0x00 000007d9: MSTORE 000007da: PUSH1 0x20 000007dc: PUSH1 0x00 000007de: KECCAK256 000007df: SWAP1 000007e0: PUSH1 0x07 000007e2: MUL 000007e3: ADD 000007e4: PUSH1 0x00 000007e6: POP 000007e7: PUSH1 0x40 000007e9: DUP1 000007ea: MLOAD 000007eb: PUSH1 0xe0 000007ed: DUP2 000007ee: ADD 000007ef: DUP3 000007f0: MSTORE 000007f1: PUSH1 0x01 000007f3: DUP1 000007f4: DUP3 000007f5: MSTORE 000007f6: TIMESTAMP 000007f7: PUSH1 0x20 000007f9: DUP4 000007fa: DUP2 000007fb: ADD 000007fc: DUP3 000007fd: SWAP1 000007fe: MSTORE 000007ff: PUSH1 0x00 00000801: SWAP5 00000802: DUP5 00000803: ADD 00000804: DUP6 00000805: SWAP1 00000806: MSTORE 00000807: PUSH1 0x60 00000809: DUP5 0000080a: ADD 0000080b: DUP11 0000080c: SWAP1 0000080d: MSTORE 0000080e: PUSH1 0x80 00000810: DUP5 00000811: ADD 00000812: DUP10 00000813: SWAP1 00000814: MSTORE 00000815: PUSH1 0xa0 00000817: DUP5 00000818: ADD 00000819: DUP12 0000081a: SWAP1 0000081b: MSTORE 0000081c: PUSH1 0xc0 0000081e: DUP5 0000081f: ADD 00000820: DUP9 00000821: SWAP1 00000822: MSTORE 00000823: DUP6 00000824: SLOAD 00000825: PUSH1 0xff 00000827: NOT 00000828: AND 00000829: DUP4 0000082a: OR 0000082b: DUP7 0000082c: SSTORE 0000082d: DUP6 0000082e: DUP4 0000082f: ADD 00000830: SWAP2 00000831: SWAP1 00000832: SWAP2 00000833: SSTORE 00000834: PUSH1 0x02 00000836: DUP1 00000837: DUP7 00000838: ADD 00000839: DUP6 0000083a: SWAP1 0000083b: SSTORE 0000083c: PUSH1 0x03 0000083e: DUP7 0000083f: ADD 00000840: DUP11 00000841: SWAP1 00000842: SSTORE 00000843: PUSH1 0x04 00000845: DUP7 00000846: ADD 00000847: DUP10 00000848: SWAP1 00000849: SSTORE 0000084a: DUP11 0000084b: MLOAD 0000084c: PUSH1 0x05 0000084e: DUP8 0000084f: ADD 00000850: DUP1 00000851: SLOAD 00000852: DUP2 00000853: DUP9 00000854: MSTORE 00000855: SWAP7 00000856: DUP5 00000857: SWAP1 00000858: KECCAK256 00000859: SWAP6 0000085a: SWAP8 0000085b: SWAP7 0000085c: SWAP1 0000085d: SWAP6 0000085e: SWAP5 0000085f: DUP2 00000860: AND 00000861: ISZERO 00000862: PUSH2 0x0100 00000865: MUL 00000866: PUSH1 0x00 00000868: NOT 00000869: ADD 0000086a: AND 0000086b: SWAP2 0000086c: SWAP1 0000086d: SWAP2 0000086e: DIV 0000086f: PUSH1 0x1f 00000871: SWAP1 00000872: DUP2 00000873: ADD 00000874: DUP4 00000875: SWAP1 00000876: DIV 00000877: DUP5 00000878: ADD 00000879: SWAP4 0000087a: SWAP2 0000087b: SWAP3 0000087c: DUP13 0000087d: ADD 0000087e: SWAP1 0000087f: DUP4 00000880: SWAP1 00000881: LT 00000882: PUSH2 0x0974 00000885: JUMPI 00000886: DUP1 00000887: MLOAD 00000888: PUSH1 0xff 0000088a: NOT 0000088b: AND 0000088c: DUP4 0000088d: DUP1 0000088e: ADD 0000088f: OR 00000890: DUP6 00000891: SSTORE 00000892: JUMPDEST 00000893: POP 00000894: PUSH2 0x09a4 00000897: SWAP3 00000898: SWAP2 00000899: POP 0000089a: PUSH2 0x093e 0000089d: JUMP 0000089e: JUMPDEST 0000089f: POP 000008a0: POP 000008a1: PUSH1 0x07 000008a3: ADD 000008a4: JUMPDEST 000008a5: DUP1 000008a6: DUP3 000008a7: GT 000008a8: ISZERO 000008a9: PUSH2 0x0952 000008ac: JUMPI 000008ad: DUP1 000008ae: SLOAD 000008af: PUSH1 0xff 000008b1: NOT 000008b2: AND 000008b3: DUP2 000008b4: SSTORE 000008b5: PUSH1 0x00 000008b7: PUSH1 0x01 000008b9: DUP3 000008ba: DUP2 000008bb: ADD 000008bc: DUP3 000008bd: SWAP1 000008be: SSTORE 000008bf: PUSH1 0x02 000008c1: DUP1 000008c2: DUP5 000008c3: ADD 000008c4: DUP4 000008c5: SWAP1 000008c6: SSTORE 000008c7: PUSH1 0x03 000008c9: DUP5 000008ca: ADD 000008cb: DUP4 000008cc: SWAP1 000008cd: SSTORE 000008ce: PUSH1 0x04 000008d0: DUP5 000008d1: ADD 000008d2: DUP4 000008d3: SWAP1 000008d4: SSTORE 000008d5: PUSH1 0x05 000008d7: DUP5 000008d8: ADD 000008d9: DUP1 000008da: SLOAD 000008db: DUP5 000008dc: DUP3 000008dd: SSTORE 000008de: SWAP1 000008df: SWAP3 000008e0: DUP2 000008e1: AND 000008e2: ISZERO 000008e3: PUSH2 0x0100 000008e6: MUL 000008e7: PUSH1 0x00 000008e9: NOT 000008ea: ADD 000008eb: AND 000008ec: DIV 000008ed: PUSH1 0x1f 000008ef: DUP2 000008f0: SWAP1 000008f1: LT 000008f2: PUSH2 0x0924 000008f5: JUMPI 000008f6: POP 000008f7: JUMPDEST 000008f8: POP 000008f9: PUSH1 0x06 000008fb: DUP3 000008fc: ADD 000008fd: PUSH1 0x00 000008ff: POP 00000900: DUP1 00000901: SLOAD 00000902: PUSH1 0x01 00000904: DUP2 00000905: PUSH1 0x01 00000907: AND 00000908: ISZERO 00000909: PUSH2 0x0100 0000090c: MUL 0000090d: SUB 0000090e: AND 0000090f: PUSH1 0x02 00000911: SWAP1 00000912: DIV 00000913: PUSH1 0x00 00000915: DUP3 00000916: SSTORE 00000917: DUP1 00000918: PUSH1 0x1f 0000091a: LT 0000091b: PUSH2 0x0956 0000091e: JUMPI 0000091f: POP 00000920: PUSH2 0x089e 00000923: JUMP 00000924: JUMPDEST 00000925: PUSH1 0x1f 00000927: ADD 00000928: PUSH1 0x20 0000092a: SWAP1 0000092b: DIV 0000092c: SWAP1 0000092d: PUSH1 0x00 0000092f: MSTORE 00000930: PUSH1 0x20 00000932: PUSH1 0x00 00000934: KECCAK256 00000935: SWAP1 00000936: DUP2 00000937: ADD 00000938: SWAP1 00000939: PUSH2 0x08f7 0000093c: SWAP2 0000093d: SWAP1 0000093e: JUMPDEST 0000093f: DUP1 00000940: DUP3 00000941: GT 00000942: ISZERO 00000943: PUSH2 0x0952 00000946: JUMPI 00000947: PUSH1 0x00 00000949: DUP2 0000094a: SSTORE 0000094b: PUSH1 0x01 0000094d: ADD 0000094e: PUSH2 0x093e 00000951: JUMP 00000952: JUMPDEST 00000953: POP 00000954: SWAP1 00000955: JUMP 00000956: JUMPDEST 00000957: PUSH1 0x1f 00000959: ADD 0000095a: PUSH1 0x20 0000095c: SWAP1 0000095d: DIV 0000095e: SWAP1 0000095f: PUSH1 0x00 00000961: MSTORE 00000962: PUSH1 0x20 00000964: PUSH1 0x00 00000966: KECCAK256 00000967: SWAP1 00000968: DUP2 00000969: ADD 0000096a: SWAP1 0000096b: PUSH2 0x089e 0000096e: SWAP2 0000096f: SWAP1 00000970: PUSH2 0x093e 00000973: JUMP 00000974: JUMPDEST 00000975: DUP3 00000976: DUP1 00000977: ADD 00000978: PUSH1 0x01 0000097a: ADD 0000097b: DUP6 0000097c: SSTORE 0000097d: DUP3 0000097e: ISZERO 0000097f: PUSH2 0x0892 00000982: JUMPI 00000983: SWAP2 00000984: DUP3 00000985: ADD 00000986: JUMPDEST 00000987: DUP3 00000988: DUP2 00000989: GT 0000098a: ISZERO 0000098b: PUSH2 0x0892 0000098e: JUMPI 0000098f: DUP3 00000990: MLOAD 00000991: DUP3 00000992: PUSH1 0x00 00000994: POP 00000995: SSTORE 00000996: SWAP2 00000997: PUSH1 0x20 00000999: ADD 0000099a: SWAP2 0000099b: SWAP1 0000099c: PUSH1 0x01 0000099e: ADD 0000099f: SWAP1 000009a0: PUSH2 0x0986 000009a3: JUMP 000009a4: JUMPDEST 000009a5: POP 000009a6: POP 000009a7: PUSH1 0xc0 000009a9: DUP3 000009aa: ADD 000009ab: MLOAD 000009ac: DUP2 000009ad: PUSH1 0x06 000009af: ADD 000009b0: PUSH1 0x00 000009b2: POP 000009b3: SWAP1 000009b4: DUP1 000009b5: MLOAD 000009b6: SWAP1 000009b7: PUSH1 0x20 000009b9: ADD 000009ba: SWAP1 000009bb: DUP3 000009bc: DUP1 000009bd: SLOAD 000009be: PUSH1 0x01 000009c0: DUP2 000009c1: PUSH1 0x01 000009c3: AND 000009c4: ISZERO 000009c5: PUSH2 0x0100 000009c8: MUL 000009c9: SUB 000009ca: AND 000009cb: PUSH1 0x02 000009cd: SWAP1 000009ce: DIV 000009cf: SWAP1 000009d0: PUSH1 0x00 000009d2: MSTORE 000009d3: PUSH1 0x20 000009d5: PUSH1 0x00 000009d7: KECCAK256 000009d8: SWAP1 000009d9: PUSH1 0x1f 000009db: ADD 000009dc: PUSH1 0x20 000009de: SWAP1 000009df: DIV 000009e0: DUP2 000009e1: ADD 000009e2: SWAP3 000009e3: DUP3 000009e4: PUSH1 0x1f 000009e6: LT 000009e7: PUSH2 0x0a03 000009ea: JUMPI 000009eb: DUP1 000009ec: MLOAD 000009ed: PUSH1 0xff 000009ef: NOT 000009f0: AND 000009f1: DUP4 000009f2: DUP1 000009f3: ADD 000009f4: OR 000009f5: DUP6 000009f6: SSTORE 000009f7: JUMPDEST 000009f8: POP 000009f9: PUSH2 0x0739 000009fc: SWAP3 000009fd: SWAP2 000009fe: POP 000009ff: PUSH2 0x093e 00000a02: JUMP 00000a03: JUMPDEST 00000a04: DUP3 00000a05: DUP1 00000a06: ADD 00000a07: PUSH1 0x01 00000a09: ADD 00000a0a: DUP6 00000a0b: SSTORE 00000a0c: DUP3 00000a0d: ISZERO 00000a0e: PUSH2 0x09f7 00000a11: JUMPI 00000a12: SWAP2 00000a13: DUP3 00000a14: ADD 00000a15: JUMPDEST 00000a16: DUP3 00000a17: DUP2 00000a18: GT 00000a19: ISZERO 00000a1a: PUSH2 0x09f7 00000a1d: JUMPI 00000a1e: DUP3 00000a1f: MLOAD 00000a20: DUP3 00000a21: PUSH1 0x00 00000a23: POP 00000a24: SSTORE 00000a25: SWAP2 00000a26: PUSH1 0x20 00000a28: ADD 00000a29: SWAP2 00000a2a: SWAP1 00000a2b: PUSH1 0x01 00000a2d: ADD 00000a2e: SWAP1 00000a2f: PUSH2 0x0a15 00000a32: JUMP 00000a33: JUMPDEST 00000a34: PUSH1 0x00 00000a36: CALLVALUE 00000a37: GT 00000a38: ISZERO 00000a39: PUSH2 0x0a41 00000a3c: JUMPI 00000a3d: PUSH2 0x0002 00000a40: JUMP 00000a41: JUMPDEST 00000a42: DUP1 00000a43: PUSH1 0x03 00000a45: PUSH1 0x00 00000a47: POP 00000a48: DUP4 00000a49: DUP2 00000a4a: SLOAD 00000a4b: DUP2 00000a4c: LT 00000a4d: ISZERO 00000a4e: PUSH2 0x0002 00000a51: JUMPI 00000a52: POP 00000a53: PUSH1 0x00 00000a55: MSTORE 00000a56: POP 00000a57: PUSH1 0x07 00000a59: DUP3 00000a5a: MUL 00000a5b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 00000a7c: ADD 00000a7d: DUP1 00000a7e: SLOAD 00000a7f: PUSH1 0xff 00000a81: NOT 00000a82: AND 00000a83: DUP3 00000a84: OR 00000a85: SWAP1 00000a86: SSTORE 00000a87: DUP1 00000a88: ISZERO 00000a89: PUSH2 0x0b6a 00000a8c: JUMPI 00000a8d: PUSH1 0x40 00000a8f: DUP1 00000a90: MLOAD 00000a91: TIMESTAMP 00000a92: DUP2 00000a93: MSTORE 00000a94: PUSH1 0x20 00000a96: DUP2 00000a97: ADD 00000a98: DUP5 00000a99: SWAP1 00000a9a: MSTORE 00000a9b: PUSH1 0x60 00000a9d: DUP2 00000a9e: DUP4 00000a9f: ADD 00000aa0: DUP2 00000aa1: SWAP1 00000aa2: MSTORE 00000aa3: PUSH1 0x06 00000aa5: SWAP1 00000aa6: DUP3 00000aa7: ADD 00000aa8: MSTORE 00000aa9: PUSH32 0x6163746976650000000000000000000000000000000000000000000000000000 00000aca: PUSH1 0x80 00000acc: DUP3 00000acd: ADD 00000ace: MSTORE 00000acf: SWAP1 00000ad0: MLOAD 00000ad1: PUSH1 0x01 00000ad3: PUSH1 0xa0 00000ad5: PUSH1 0x02 00000ad7: EXP 00000ad8: SUB 00000ad9: CALLER 00000ada: AND 00000adb: SWAP2 00000adc: PUSH1 0x00 00000ade: DUP1 00000adf: MLOAD 00000ae0: PUSH1 0x20 00000ae2: PUSH2 0x1209 00000ae5: DUP4 00000ae6: CODECOPY 00000ae7: DUP2 00000ae8: MLOAD 00000ae9: SWAP2 00000aea: MSTORE 00000aeb: SWAP2 00000aec: SWAP1 00000aed: DUP2 00000aee: SWAP1 00000aef: SUB 00000af0: PUSH1 0xa0 00000af2: ADD 00000af3: SWAP1 00000af4: LOG2 00000af5: TIMESTAMP 00000af6: PUSH1 0x03 00000af8: PUSH1 0x00 00000afa: POP 00000afb: DUP4 00000afc: DUP2 00000afd: SLOAD 00000afe: DUP2 00000aff: LT 00000b00: ISZERO 00000b01: PUSH2 0x0002 00000b04: JUMPI 00000b05: PUSH1 0x00 00000b07: DUP3 00000b08: DUP2 00000b09: MSTORE 00000b0a: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c 00000b2b: PUSH1 0x07 00000b2d: DUP4 00000b2e: MUL 00000b2f: ADD 00000b30: SWAP4 00000b31: SWAP1 00000b32: SWAP4 00000b33: SSTORE 00000b34: DUP2 00000b35: SLOAD 00000b36: DUP2 00000b37: LT 00000b38: ISZERO 00000b39: PUSH2 0x0002 00000b3c: JUMPI 00000b3d: POP 00000b3e: POP 00000b3f: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d 00000b60: PUSH1 0x07 00000b62: DUP5 00000b63: MUL 00000b64: ADD 00000b65: SSTORE 00000b66: PUSH2 0x0c0e 00000b69: JUMP 00000b6a: JUMPDEST 00000b6b: PUSH1 0x40 00000b6d: DUP1 00000b6e: MLOAD 00000b6f: TIMESTAMP 00000b70: DUP2 00000b71: MSTORE 00000b72: PUSH1 0x20 00000b74: DUP2 00000b75: ADD 00000b76: DUP5 00000b77: SWAP1 00000b78: MSTORE 00000b79: PUSH1 0x60 00000b7b: DUP2 00000b7c: DUP4 00000b7d: ADD 00000b7e: DUP2 00000b7f: SWAP1 00000b80: MSTORE 00000b81: PUSH1 0x08 00000b83: SWAP1 00000b84: DUP3 00000b85: ADD 00000b86: MSTORE 00000b87: PUSH32 0x696e616374697665000000000000000000000000000000000000000000000000 00000ba8: PUSH1 0x80 00000baa: DUP3 00000bab: ADD 00000bac: MSTORE 00000bad: SWAP1 00000bae: MLOAD 00000baf: PUSH1 0x01 00000bb1: PUSH1 0xa0 00000bb3: PUSH1 0x02 00000bb5: EXP 00000bb6: SUB 00000bb7: CALLER 00000bb8: AND 00000bb9: SWAP2 00000bba: PUSH1 0x00 00000bbc: DUP1 00000bbd: MLOAD 00000bbe: PUSH1 0x20 00000bc0: PUSH2 0x1209 00000bc3: DUP4 00000bc4: CODECOPY 00000bc5: DUP2 00000bc6: MLOAD 00000bc7: SWAP2 00000bc8: MSTORE 00000bc9: SWAP2 00000bca: SWAP1 00000bcb: DUP2 00000bcc: SWAP1 00000bcd: SUB 00000bce: PUSH1 0xa0 00000bd0: ADD 00000bd1: SWAP1 00000bd2: LOG2 00000bd3: TIMESTAMP 00000bd4: PUSH1 0x03 00000bd6: PUSH1 0x00 00000bd8: POP 00000bd9: DUP4 00000bda: DUP2 00000bdb: SLOAD 00000bdc: DUP2 00000bdd: LT 00000bde: ISZERO 00000bdf: PUSH2 0x0002 00000be2: JUMPI 00000be3: POP 00000be4: PUSH1 0x00 00000be6: MSTORE 00000be7: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d 00000c08: PUSH1 0x07 00000c0a: DUP5 00000c0b: MUL 00000c0c: ADD 00000c0d: SSTORE 00000c0e: JUMPDEST 00000c0f: POP 00000c10: POP 00000c11: JUMP 00000c12: JUMPDEST 00000c13: PUSH1 0x00 00000c15: CALLVALUE 00000c16: GT 00000c17: ISZERO 00000c18: PUSH2 0x0c20 00000c1b: JUMPI 00000c1c: PUSH2 0x0002 00000c1f: JUMP 00000c20: JUMPDEST 00000c21: PUSH1 0x40 00000c23: DUP1 00000c24: MLOAD 00000c25: TIMESTAMP 00000c26: DUP2 00000c27: MSTORE 00000c28: PUSH1 0x20 00000c2a: DUP2 00000c2b: ADD 00000c2c: DUP5 00000c2d: SWAP1 00000c2e: MSTORE 00000c2f: PUSH1 0x60 00000c31: DUP2 00000c32: DUP4 00000c33: ADD 00000c34: DUP2 00000c35: SWAP1 00000c36: MSTORE 00000c37: PUSH1 0x08 00000c39: SWAP1 00000c3a: DUP3 00000c3b: ADD 00000c3c: MSTORE 00000c3d: PUSH32 0x72656c6174696f6e000000000000000000000000000000000000000000000000 00000c5e: PUSH1 0x80 00000c60: DUP3 00000c61: ADD 00000c62: MSTORE 00000c63: SWAP1 00000c64: MLOAD 00000c65: PUSH1 0x01 00000c67: PUSH1 0xa0 00000c69: PUSH1 0x02 00000c6b: EXP 00000c6c: SUB 00000c6d: CALLER 00000c6e: AND 00000c6f: SWAP2 00000c70: PUSH1 0x00 00000c72: DUP1 00000c73: MLOAD 00000c74: PUSH1 0x20 00000c76: PUSH2 0x1209 00000c79: DUP4 00000c7a: CODECOPY 00000c7b: DUP2 00000c7c: MLOAD 00000c7d: SWAP2 00000c7e: MSTORE 00000c7f: SWAP2 00000c80: SWAP1 00000c81: DUP2 00000c82: SWAP1 00000c83: SUB 00000c84: PUSH1 0xa0 00000c86: ADD 00000c87: SWAP1 00000c88: LOG2 00000c89: DUP1 00000c8a: PUSH1 0x03 00000c8c: PUSH1 0x00 00000c8e: POP 00000c8f: DUP4 00000c90: DUP2 00000c91: SLOAD 00000c92: DUP2 00000c93: LT 00000c94: ISZERO 00000c95: PUSH2 0x0002 00000c98: JUMPI 00000c99: SWAP1 00000c9a: PUSH1 0x00 00000c9c: MSTORE 00000c9d: PUSH1 0x20 00000c9f: PUSH1 0x00 00000ca1: KECCAK256 00000ca2: SWAP1 00000ca3: PUSH1 0x07 00000ca5: MUL 00000ca6: ADD 00000ca7: PUSH1 0x00 00000ca9: POP 00000caa: PUSH1 0x06 00000cac: ADD 00000cad: PUSH1 0x00 00000caf: POP 00000cb0: SWAP1 00000cb1: DUP1 00000cb2: MLOAD 00000cb3: SWAP1 00000cb4: PUSH1 0x20 00000cb6: ADD 00000cb7: SWAP1 00000cb8: DUP3 00000cb9: DUP1 00000cba: SLOAD 00000cbb: PUSH1 0x01 00000cbd: DUP2 00000cbe: PUSH1 0x01 00000cc0: AND 00000cc1: ISZERO 00000cc2: PUSH2 0x0100 00000cc5: MUL 00000cc6: SUB 00000cc7: AND 00000cc8: PUSH1 0x02 00000cca: SWAP1 00000ccb: DIV 00000ccc: SWAP1 00000ccd: PUSH1 0x00 00000ccf: MSTORE 00000cd0: PUSH1 0x20 00000cd2: PUSH1 0x00 00000cd4: KECCAK256 00000cd5: SWAP1 00000cd6: PUSH1 0x1f 00000cd8: ADD 00000cd9: PUSH1 0x20 00000cdb: SWAP1 00000cdc: DIV 00000cdd: DUP2 00000cde: ADD 00000cdf: SWAP3 00000ce0: DUP3 00000ce1: PUSH1 0x1f 00000ce3: LT 00000ce4: PUSH2 0x0d00 00000ce7: JUMPI 00000ce8: DUP1 00000ce9: MLOAD 00000cea: PUSH1 0xff 00000cec: NOT 00000ced: AND 00000cee: DUP4 00000cef: DUP1 00000cf0: ADD 00000cf1: OR 00000cf2: DUP6 00000cf3: SSTORE 00000cf4: JUMPDEST 00000cf5: POP 00000cf6: PUSH2 0x073f 00000cf9: SWAP3 00000cfa: SWAP2 00000cfb: POP 00000cfc: PUSH2 0x093e 00000cff: JUMP 00000d00: JUMPDEST 00000d01: DUP3 00000d02: DUP1 00000d03: ADD 00000d04: PUSH1 0x01 00000d06: ADD 00000d07: DUP6 00000d08: SSTORE 00000d09: DUP3 00000d0a: ISZERO 00000d0b: PUSH2 0x0cf4 00000d0e: JUMPI 00000d0f: SWAP2 00000d10: DUP3 00000d11: ADD 00000d12: JUMPDEST 00000d13: DUP3 00000d14: DUP2 00000d15: GT 00000d16: ISZERO 00000d17: PUSH2 0x0cf4 00000d1a: JUMPI 00000d1b: DUP3 00000d1c: MLOAD 00000d1d: DUP3 00000d1e: PUSH1 0x00 00000d20: POP 00000d21: SSTORE 00000d22: SWAP2 00000d23: PUSH1 0x20 00000d25: ADD 00000d26: SWAP2 00000d27: SWAP1 00000d28: PUSH1 0x01 00000d2a: ADD 00000d2b: SWAP1 00000d2c: PUSH2 0x0d12 00000d2f: JUMP 00000d30: JUMPDEST 00000d31: PUSH1 0x00 00000d33: CALLVALUE 00000d34: GT 00000d35: ISZERO 00000d36: PUSH2 0x0d3e 00000d39: JUMPI 00000d3a: PUSH2 0x0002 00000d3d: JUMP 00000d3e: JUMPDEST 00000d3f: POP 00000d40: PUSH1 0x05 00000d42: ADDRESS 00000d43: PUSH1 0x01 00000d45: PUSH1 0xa0 00000d47: PUSH1 0x02 00000d49: EXP 00000d4a: SUB 00000d4b: AND 00000d4c: BALANCE 00000d4d: DIV 00000d4e: DUP1 00000d4f: DUP3 00000d50: GT 00000d51: DUP1 00000d52: PUSH2 0x0d5c 00000d55: JUMPI 00000d56: POP 00000d57: PUSH1 0x00 00000d59: SLOAD 00000d5a: TIMESTAMP 00000d5b: LT 00000d5c: JUMPDEST 00000d5d: ISZERO 00000d5e: PUSH2 0x0d66 00000d61: JUMPI 00000d62: PUSH2 0x0002 00000d65: JUMP 00000d66: JUMPDEST 00000d67: PUSH1 0x40 00000d69: DUP1 00000d6a: MLOAD 00000d6b: TIMESTAMP 00000d6c: DUP2 00000d6d: MSTORE 00000d6e: PUSH1 0x20 00000d70: DUP2 00000d71: ADD 00000d72: DUP5 00000d73: SWAP1 00000d74: MSTORE 00000d75: DUP2 00000d76: MLOAD 00000d77: PUSH1 0x01 00000d79: PUSH1 0xa0 00000d7b: PUSH1 0x02 00000d7d: EXP 00000d7e: SUB 00000d7f: CALLER 00000d80: AND 00000d81: SWAP3 00000d82: PUSH32 0xf9226daf630542048a23086c6af599511aac100ec8f532793cc9697d061bed7e 00000da3: SWAP3 00000da4: DUP3 00000da5: SWAP1 00000da6: SUB 00000da7: ADD 00000da8: SWAP1 00000da9: LOG2 00000daa: PUSH1 0x40 00000dac: MLOAD 00000dad: PUSH3 0xed4e00 00000db1: TIMESTAMP 00000db2: ADD 00000db3: PUSH1 0x00 00000db5: SWAP1 00000db6: DUP2 00000db7: SSTORE 00000db8: PUSH1 0x02 00000dba: DUP1 00000dbb: SLOAD 00000dbc: DUP6 00000dbd: ADD 00000dbe: SWAP1 00000dbf: SSTORE 00000dc0: PUSH1 0x01 00000dc2: PUSH1 0xa0 00000dc4: PUSH1 0x02 00000dc6: EXP 00000dc7: SUB 00000dc8: CALLER 00000dc9: AND 00000dca: SWAP2 00000dcb: DUP5 00000dcc: SWAP1 00000dcd: DUP3 00000dce: DUP2 00000dcf: DUP2 00000dd0: DUP2 00000dd1: DUP6 00000dd2: DUP9 00000dd3: DUP4 00000dd4: CALL 00000dd5: SWAP4 00000dd6: POP 00000dd7: POP 00000dd8: POP 00000dd9: POP 00000dda: ISZERO 00000ddb: ISZERO 00000ddc: PUSH2 0x0c0e 00000ddf: JUMPI 00000de0: PUSH2 0x0002 00000de3: JUMP 00000de4: JUMPDEST 00000de5: PUSH1 0x00 00000de7: CALLVALUE 00000de8: GT 00000de9: ISZERO 00000dea: PUSH2 0x0df2 00000ded: JUMPI 00000dee: PUSH2 0x0002 00000df1: JUMP 00000df2: JUMPDEST 00000df3: PUSH1 0x40 00000df5: DUP1 00000df6: MLOAD 00000df7: TIMESTAMP 00000df8: DUP2 00000df9: MSTORE 00000dfa: PUSH1 0x20 00000dfc: DUP2 00000dfd: ADD 00000dfe: DUP5 00000dff: SWAP1 00000e00: MSTORE 00000e01: PUSH1 0x60 00000e03: DUP2 00000e04: DUP4 00000e05: ADD 00000e06: DUP2 00000e07: SWAP1 00000e08: MSTORE 00000e09: PUSH1 0x04 00000e0b: SWAP1 00000e0c: DUP3 00000e0d: ADD 00000e0e: MSTORE 00000e0f: PUSH32 0x6e616d6500000000000000000000000000000000000000000000000000000000 00000e30: PUSH1 0x80 00000e32: DUP3 00000e33: ADD 00000e34: MSTORE 00000e35: SWAP1 00000e36: MLOAD 00000e37: PUSH1 0x01 00000e39: PUSH1 0xa0 00000e3b: PUSH1 0x02 00000e3d: EXP 00000e3e: SUB 00000e3f: CALLER 00000e40: AND 00000e41: SWAP2 00000e42: PUSH1 0x00 00000e44: DUP1 00000e45: MLOAD 00000e46: PUSH1 0x20 00000e48: PUSH2 0x1209 00000e4b: DUP4 00000e4c: CODECOPY 00000e4d: DUP2 00000e4e: MLOAD 00000e4f: SWAP2 00000e50: MSTORE 00000e51: SWAP2 00000e52: SWAP1 00000e53: DUP2 00000e54: SWAP1 00000e55: SUB 00000e56: PUSH1 0xa0 00000e58: ADD 00000e59: SWAP1 00000e5a: LOG2 00000e5b: DUP1 00000e5c: PUSH1 0x03 00000e5e: PUSH1 0x00 00000e60: POP 00000e61: DUP4 00000e62: DUP2 00000e63: SLOAD 00000e64: DUP2 00000e65: LT 00000e66: ISZERO 00000e67: PUSH2 0x0002 00000e6a: JUMPI 00000e6b: SWAP1 00000e6c: PUSH1 0x00 00000e6e: MSTORE 00000e6f: PUSH1 0x20 00000e71: PUSH1 0x00 00000e73: KECCAK256 00000e74: SWAP1 00000e75: PUSH1 0x07 00000e77: MUL 00000e78: ADD 00000e79: PUSH1 0x00 00000e7b: POP 00000e7c: PUSH1 0x05 00000e7e: ADD 00000e7f: PUSH1 0x00 00000e81: POP 00000e82: SWAP1 00000e83: DUP1 00000e84: MLOAD 00000e85: SWAP1 00000e86: PUSH1 0x20 00000e88: ADD 00000e89: SWAP1 00000e8a: DUP3 00000e8b: DUP1 00000e8c: SLOAD 00000e8d: PUSH1 0x01 00000e8f: DUP2 00000e90: PUSH1 0x01 00000e92: AND 00000e93: ISZERO 00000e94: PUSH2 0x0100 00000e97: MUL 00000e98: SUB 00000e99: AND 00000e9a: PUSH1 0x02 00000e9c: SWAP1 00000e9d: DIV 00000e9e: SWAP1 00000e9f: PUSH1 0x00 00000ea1: MSTORE 00000ea2: PUSH1 0x20 00000ea4: PUSH1 0x00 00000ea6: KECCAK256 00000ea7: SWAP1 00000ea8: PUSH1 0x1f 00000eaa: ADD 00000eab: PUSH1 0x20 00000ead: SWAP1 00000eae: DIV 00000eaf: DUP2 00000eb0: ADD 00000eb1: SWAP3 00000eb2: DUP3 00000eb3: PUSH1 0x1f 00000eb5: LT 00000eb6: PUSH2 0x0d00 00000eb9: JUMPI 00000eba: DUP1 00000ebb: MLOAD 00000ebc: PUSH1 0xff 00000ebe: NOT 00000ebf: AND 00000ec0: DUP4 00000ec1: DUP1 00000ec2: ADD 00000ec3: OR 00000ec4: DUP6 00000ec5: SSTORE 00000ec6: PUSH2 0x0cf4 00000ec9: JUMP 00000eca: JUMPDEST 00000ecb: PUSH1 0x00 00000ecd: CALLVALUE 00000ece: GT 00000ecf: ISZERO 00000ed0: PUSH2 0x0ed8 00000ed3: JUMPI 00000ed4: PUSH2 0x0002 00000ed7: JUMP 00000ed8: JUMPDEST 00000ed9: PUSH1 0x40 00000edb: DUP1 00000edc: MLOAD 00000edd: TIMESTAMP 00000ede: DUP2 00000edf: MSTORE 00000ee0: PUSH1 0x01 00000ee2: PUSH1 0xa0 00000ee4: PUSH1 0x02 00000ee6: EXP 00000ee7: SUB 00000ee8: DUP4 00000ee9: DUP2 00000eea: AND 00000eeb: PUSH1 0x20 00000eed: DUP4 00000eee: ADD 00000eef: MSTORE 00000ef0: DUP3 00000ef1: MLOAD 00000ef2: CALLER 00000ef3: SWAP1 00000ef4: SWAP2 00000ef5: AND 00000ef6: SWAP3 00000ef7: PUSH32 0xf322770c728e27409a4149dc5c836b593d091f33a1ca6752108e6a8f2494430b 00000f18: SWAP3 00000f19: DUP3 00000f1a: SWAP1 00000f1b: SUB 00000f1c: ADD 00000f1d: SWAP1 00000f1e: LOG2 00000f1f: PUSH1 0x01 00000f21: PUSH1 0xa0 00000f23: PUSH1 0x02 00000f25: EXP 00000f26: SUB 00000f27: AND 00000f28: PUSH1 0x00 00000f2a: SWAP1 00000f2b: DUP2 00000f2c: MSTORE 00000f2d: PUSH1 0x05 00000f2f: PUSH1 0x20 00000f31: MSTORE 00000f32: PUSH1 0x40 00000f34: SWAP1 00000f35: KECCAK256 00000f36: DUP1 00000f37: SLOAD 00000f38: PUSH1 0xff 00000f3a: NOT 00000f3b: AND 00000f3c: PUSH1 0x01 00000f3e: OR 00000f3f: SWAP1 00000f40: SSTORE 00000f41: JUMP 00000f42: JUMPDEST 00000f43: PUSH1 0x00 00000f45: CALLVALUE 00000f46: GT 00000f47: ISZERO 00000f48: PUSH2 0x0f50 00000f4b: JUMPI 00000f4c: PUSH2 0x0002 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: PUSH1 0x40 00000f53: DUP1 00000f54: MLOAD 00000f55: TIMESTAMP 00000f56: DUP2 00000f57: MSTORE 00000f58: PUSH1 0x20 00000f5a: DUP2 00000f5b: ADD 00000f5c: DUP5 00000f5d: SWAP1 00000f5e: MSTORE 00000f5f: PUSH1 0x60 00000f61: DUP2 00000f62: DUP4 00000f63: ADD 00000f64: DUP2 00000f65: SWAP1 00000f66: MSTORE 00000f67: PUSH1 0x0b 00000f69: SWAP1 00000f6a: DUP3 00000f6b: ADD 00000f6c: MSTORE 00000f6d: PUSH32 0x646174654f664269727468000000000000000000000000000000000000000000 00000f8e: PUSH1 0x80 00000f90: DUP3 00000f91: ADD 00000f92: MSTORE 00000f93: SWAP1 00000f94: MLOAD 00000f95: PUSH1 0x01 00000f97: PUSH1 0xa0 00000f99: PUSH1 0x02 00000f9b: EXP 00000f9c: SUB 00000f9d: CALLER 00000f9e: AND 00000f9f: SWAP2 00000fa0: PUSH1 0x00 00000fa2: DUP1 00000fa3: MLOAD 00000fa4: PUSH1 0x20 00000fa6: PUSH2 0x1209 00000fa9: DUP4 00000faa: CODECOPY 00000fab: DUP2 00000fac: MLOAD 00000fad: SWAP2 00000fae: MSTORE 00000faf: SWAP2 00000fb0: SWAP1 00000fb1: DUP2 00000fb2: SWAP1 00000fb3: SUB 00000fb4: PUSH1 0xa0 00000fb6: ADD 00000fb7: SWAP1 00000fb8: LOG2 00000fb9: DUP1 00000fba: PUSH1 0x03 00000fbc: PUSH1 0x00 00000fbe: POP 00000fbf: DUP4 00000fc0: DUP2 00000fc1: SLOAD 00000fc2: DUP2 00000fc3: LT 00000fc4: ISZERO 00000fc5: PUSH2 0x0002 00000fc8: JUMPI 00000fc9: POP 00000fca: PUSH1 0x00 00000fcc: MSTORE 00000fcd: POP 00000fce: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e 00000fef: PUSH1 0x07 00000ff1: SWAP1 00000ff2: SWAP3 00000ff3: MUL 00000ff4: SWAP2 00000ff5: SWAP1 00000ff6: SWAP2 00000ff7: ADD 00000ff8: SSTORE 00000ff9: JUMP 00000ffa: JUMPDEST 00000ffb: PUSH1 0x00 00000ffd: CALLVALUE 00000ffe: GT 00000fff: ISZERO 00001000: PUSH2 0x1008 00001003: JUMPI 00001004: PUSH2 0x0002 00001007: JUMP 00001008: JUMPDEST 00001009: PUSH1 0x40 0000100b: DUP1 0000100c: MLOAD 0000100d: TIMESTAMP 0000100e: DUP2 0000100f: MSTORE 00001010: PUSH1 0x20 00001012: DUP2 00001013: ADD 00001014: DUP5 00001015: SWAP1 00001016: MSTORE 00001017: PUSH1 0x60 00001019: DUP2 0000101a: DUP4 0000101b: ADD 0000101c: DUP2 0000101d: SWAP1 0000101e: MSTORE 0000101f: PUSH1 0x0b 00001021: SWAP1 00001022: DUP3 00001023: ADD 00001024: MSTORE 00001025: PUSH32 0x646174654f664465617468000000000000000000000000000000000000000000 00001046: PUSH1 0x80 00001048: DUP3 00001049: ADD 0000104a: MSTORE 0000104b: SWAP1 0000104c: MLOAD 0000104d: PUSH1 0x01 0000104f: PUSH1 0xa0 00001051: PUSH1 0x02 00001053: EXP 00001054: SUB 00001055: CALLER 00001056: AND 00001057: SWAP2 00001058: PUSH1 0x00 0000105a: DUP1 0000105b: MLOAD 0000105c: PUSH1 0x20 0000105e: PUSH2 0x1209 00001061: DUP4 00001062: CODECOPY 00001063: DUP2 00001064: MLOAD 00001065: SWAP2 00001066: MSTORE 00001067: SWAP2 00001068: SWAP1 00001069: DUP2 0000106a: SWAP1 0000106b: SUB 0000106c: PUSH1 0xa0 0000106e: ADD 0000106f: SWAP1 00001070: LOG2 00001071: DUP1 00001072: PUSH1 0x03 00001074: PUSH1 0x00 00001076: POP 00001077: DUP4 00001078: DUP2 00001079: SLOAD 0000107a: DUP2 0000107b: LT 0000107c: ISZERO 0000107d: PUSH2 0x0002 00001080: JUMPI 00001081: POP 00001082: PUSH1 0x00 00001084: MSTORE 00001085: POP 00001086: PUSH1 0x07 00001088: SWAP1 00001089: SWAP2 0000108a: MUL 0000108b: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f 000010ac: ADD 000010ad: SSTORE 000010ae: JUMP 000010af: JUMPDEST 000010b0: PUSH1 0x00 000010b2: CALLVALUE 000010b3: GT 000010b4: ISZERO 000010b5: PUSH2 0x10bd 000010b8: JUMPI 000010b9: PUSH2 0x0002 000010bc: JUMP 000010bd: JUMPDEST 000010be: DUP1 000010bf: PUSH1 0x01 000010c1: PUSH1 0xa0 000010c3: PUSH1 0x02 000010c5: EXP 000010c6: SUB 000010c7: AND 000010c8: CALLER 000010c9: PUSH1 0x01 000010cb: PUSH1 0xa0 000010cd: PUSH1 0x02 000010cf: EXP 000010d0: SUB 000010d1: AND 000010d2: EQ 000010d3: ISZERO 000010d4: ISZERO 000010d5: PUSH2 0x10dd 000010d8: JUMPI 000010d9: PUSH2 0x0002 000010dc: JUMP 000010dd: JUMPDEST 000010de: PUSH1 0x40 000010e0: DUP1 000010e1: MLOAD 000010e2: TIMESTAMP 000010e3: DUP2 000010e4: MSTORE 000010e5: SWAP1 000010e6: MLOAD 000010e7: PUSH1 0x01 000010e9: PUSH1 0xa0 000010eb: PUSH1 0x02 000010ed: EXP 000010ee: SUB 000010ef: CALLER 000010f0: AND 000010f1: SWAP2 000010f2: PUSH32 0xb1174177b1e536b4d6b97c975a189ab2ccd9037fa4c0b102f1a95ef7abcaa395 00001113: SWAP2 00001114: SWAP1 00001115: DUP2 00001116: SWAP1 00001117: SUB 00001118: PUSH1 0x20 0000111a: ADD 0000111b: SWAP1 0000111c: LOG2 0000111d: PUSH1 0x01 0000111f: PUSH1 0xa0 00001121: PUSH1 0x02 00001123: EXP 00001124: SUB 00001125: CALLER 00001126: AND 00001127: PUSH1 0x00 00001129: SWAP1 0000112a: DUP2 0000112b: MSTORE 0000112c: PUSH1 0x05 0000112e: PUSH1 0x20 00001130: MSTORE 00001131: PUSH1 0x40 00001133: SWAP1 00001134: KECCAK256 00001135: DUP1 00001136: SLOAD 00001137: PUSH1 0xff 00001139: NOT 0000113a: AND 0000113b: SWAP1 0000113c: SSTORE 0000113d: POP 0000113e: JUMP 0000113f: JUMPDEST 00001140: PUSH1 0x00 00001142: CALLVALUE 00001143: GT 00001144: ISZERO 00001145: PUSH2 0x114d 00001148: JUMPI 00001149: PUSH2 0x0002 0000114c: JUMP 0000114d: JUMPDEST 0000114e: POP 0000114f: DUP1 00001150: PUSH1 0x00 00001152: DUP2 00001153: EQ 00001154: ISZERO 00001155: PUSH2 0x115b 00001158: JUMPI 00001159: POP 0000115a: TIMESTAMP 0000115b: JUMPDEST 0000115c: CALLER 0000115d: PUSH1 0x01 0000115f: PUSH1 0xa0 00001161: PUSH1 0x02 00001163: EXP 00001164: SUB 00001165: AND 00001166: PUSH32 0x55126d301f76226fe91bfddf7e88369685733743a9738a17fd30c0cefbb9431f 00001187: TIMESTAMP 00001188: DUP4 00001189: DUP7 0000118a: PUSH1 0x40 0000118c: MLOAD 0000118d: DUP1 0000118e: DUP5 0000118f: DUP2 00001190: MSTORE 00001191: PUSH1 0x20 00001193: ADD 00001194: DUP4 00001195: DUP2 00001196: MSTORE 00001197: PUSH1 0x20 00001199: ADD 0000119a: DUP1 0000119b: PUSH1 0x20 0000119d: ADD 0000119e: DUP3 0000119f: DUP2 000011a0: SUB 000011a1: DUP3 000011a2: MSTORE 000011a3: DUP4 000011a4: DUP2 000011a5: DUP2 000011a6: MLOAD 000011a7: DUP2 000011a8: MSTORE 000011a9: PUSH1 0x20 000011ab: ADD 000011ac: SWAP2 000011ad: POP 000011ae: DUP1 000011af: MLOAD 000011b0: SWAP1 000011b1: PUSH1 0x20 000011b3: ADD 000011b4: SWAP1 000011b5: DUP1 000011b6: DUP4 000011b7: DUP4 000011b8: DUP3 000011b9: SWAP1 000011ba: PUSH1 0x00 000011bc: PUSH1 0x04 000011be: PUSH1 0x20 000011c0: DUP5 000011c1: PUSH1 0x1f 000011c3: ADD 000011c4: DIV 000011c5: PUSH1 0x0f 000011c7: MUL 000011c8: PUSH1 0x03 000011ca: ADD 000011cb: CALL 000011cc: POP 000011cd: SWAP1 000011ce: POP 000011cf: SWAP1 000011d0: DUP2 000011d1: ADD 000011d2: SWAP1 000011d3: PUSH1 0x1f 000011d5: AND 000011d6: DUP1 000011d7: ISZERO 000011d8: PUSH2 0x11f5 000011db: JUMPI 000011dc: DUP1 000011dd: DUP3 000011de: SUB 000011df: DUP1 000011e0: MLOAD 000011e1: PUSH1 0x01 000011e3: DUP4 000011e4: PUSH1 0x20 000011e6: SUB 000011e7: PUSH2 0x0100 000011ea: EXP 000011eb: SUB 000011ec: NOT 000011ed: AND 000011ee: DUP2 000011ef: MSTORE 000011f0: PUSH1 0x20 000011f2: ADD 000011f3: SWAP2 000011f4: POP 000011f5: JUMPDEST 000011f6: POP 000011f7: SWAP5 000011f8: POP 000011f9: POP 000011fa: POP 000011fb: POP 000011fc: POP 000011fd: PUSH1 0x40 000011ff: MLOAD 00001200: DUP1 00001201: SWAP2 00001202: SUB 00001203: SWAP1 00001204: LOG2 00001205: POP 00001206: POP 00001207: POP 00001208: JUMP 00001209: UNKNOWN(0x25) 0000120a: CALLER 0000120b: SELFDESTRUCT 0000120c: SWAP5 0000120d: BALANCE 0000120e: MSTORE8 0000120f: PUSH10 0x6e0bb72454179e4e4700 0000121a: LT 0000121b: DUP10 0000121c: UNKNOWN(0xFC) 0000121d: DUP11 0000121e: UNKNOWN(0xA7) 0000121f: UNKNOWN(0xC5) 00001220: UNKNOWN(0xB3) 00001221: UNKNOWN(0xC9) 00001222: UNKNOWN(0xDA) 00001223: UNKNOWN(0xD5) 00001224: PUSH19
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873
call_targets:
0x5a5eff38da95b0d58b6c616f2699168b480953c9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x5a5eff38da95b0d58b6c616f2699168b480953c9"
],
"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": "0x09a399a7",
"selector": "0x09a399a7",
"calldata_variants": [
"0x09a399a7",
"0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0af658ca",
"selector": "0x0af658ca",
"calldata_variants": [
"0x0af658ca",
"0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ce3151c",
"selector": "0x0ce3151c",
"calldata_variants": [
"0x0ce3151c",
"0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4a9b3f95",
"selector": "0x4a9b3f95",
"calldata_variants": [
"0x4a9b3f95",
"0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4b319713",
"selector": "0x4b319713",
"calldata_variants": [
"0x4b319713",
"0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x524fa7b9",
"selector": "0x524fa7b9",
"calldata_variants": [
"0x524fa7b9",
"0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x61591a7c",
"selector": "0x61591a7c",
"calldata_variants": [
"0x61591a7c",
"0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3540,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4555,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873
call_targets:
0x5a5eff38da95b0d58b6c616f2699168b480953c9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xcbe5a42d3d807d51fcddec56be7689bdcd9be41afed803f574a155d88561d873",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x5a5eff38da95b0d58b6c616f2699168b480953c9"
],
"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": "0x09a399a7",
"selector": "0x09a399a7",
"calldata_variants": [
"0x09a399a7",
"0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0af658ca",
"selector": "0x0af658ca",
"calldata_variants": [
"0x0af658ca",
"0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ce3151c",
"selector": "0x0ce3151c",
"calldata_variants": [
"0x0ce3151c",
"0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4a9b3f95",
"selector": "0x4a9b3f95",
"calldata_variants": [
"0x4a9b3f95",
"0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4b319713",
"selector": "0x4b319713",
"calldata_variants": [
"0x4b319713",
"0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x524fa7b9",
"selector": "0x524fa7b9",
"calldata_variants": [
"0x524fa7b9",
"0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x61591a7c",
"selector": "0x61591a7c",
"calldata_variants": [
"0x61591a7c",
"0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3540,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4555,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0x039dbc005da6d84d13e7d39ac51ea7425afb7e91d4bdc16b13c398d57652f359
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x039dbc005da6d84d13e7d39ac51ea7425afb7e91d4bdc16b13c398d57652f359",
"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": "0x09a399a7",
"selector": "0x09a399a7",
"calldata_variants": [
"0x09a399a7",
"0x09a399a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0af658ca",
"selector": "0x0af658ca",
"calldata_variants": [
"0x0af658ca",
"0x0af658ca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ce3151c",
"selector": "0x0ce3151c",
"calldata_variants": [
"0x0ce3151c",
"0x0ce3151c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4a9b3f95",
"selector": "0x4a9b3f95",
"calldata_variants": [
"0x4a9b3f95",
"0x4a9b3f950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4b319713",
"selector": "0x4b319713",
"calldata_variants": [
"0x4b319713",
"0x4b3197130000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x524fa7b9",
"selector": "0x524fa7b9",
"calldata_variants": [
"0x524fa7b9",
"0x524fa7b90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x61591a7c",
"selector": "0x61591a7c",
"calldata_variants": [
"0x61591a7c",
"0x61591a7c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|
| medium | access_control | codex | Any whitelisted account can grant withdrawal privileges to arbitrary addresses | 75 | no | — |
viewevidence_json{
"evidence": "`whitelistAdd` is only gated by `isOnWhitelist`, allowing any whitelisted account to add new members.",
"locations": [
"contracts/Contract.sol:171",
"contracts/Contract.sol:52"
],
"recommendation": "Restrict `whitelistAdd` to a dedicated admin/owner role (or require a multi\u2011sig), and consider separate roles for logging vs. fund withdrawal.",
"exploit_scenario": "If any whitelisted key is compromised (or a whitelisted user behaves maliciously), the attacker can call `whitelistAdd` to add their own address. They can then withdraw up to 20% of the contract balance every 180 days, effectively gaining long\u2011term draining capability without an owner/administrator approval gate."
}
|
| low | math | codex | Unchecked arithmetic can overflow donation/withdrawal accounting | 65 | no | — |
viewevidence_json{
"evidence": "`donations[msg.sender] += msg.value; totalDonated += msg.value; totalWithdrawn += amount;` without overflow checks.",
"locations": [
"contracts/Contract.sol:206",
"contracts/Contract.sol:227",
"contracts/Contract.sol:228"
],
"recommendation": "Use SafeMath (or Solidity >=0.8 with checked arithmetic) for all counter updates, or explicitly guard against overflow.",
"exploit_scenario": "A very large donation or withdrawal can overflow `donations`, `totalDonated`, or `totalWithdrawn`, corrupting these counters. While these values are not currently used for access control, they can become misleading or wrap to smaller values."
}
|