docs+status: fix Token-2022 audit findings; Phase 1 live
- TOKEN_CLASSIFICATION.md: ASCII decision-flow diagram updated to match the Rev-2 prose (program → extension → lock → empty → non-empty protected → route), no longer routes all Token-2022 to UNSUPPORTED. - CLAUDE.md: removed stale "Token-2022 support" from out-of-scope; documents the gated Token-2022 policy + that classifier code still skips it for now. - status.json: Phase 1 (Wallet Scanner) marked done — app deployed live at feedthepyre.com (app at /, tracker at /status, api at /api), scan verified end-to-end through the public stack. Reviewed by a doc-consistency audit agent (verdict after fixes: consistent). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
CLAUDE.md
16
CLAUDE.md
@@ -51,14 +51,24 @@ add application/business logic unless explicitly asked.
|
|||||||
- Automatic Pump.fun launch
|
- Automatic Pump.fun launch
|
||||||
- User-contributed Essence vault
|
- User-contributed Essence vault
|
||||||
- Custom PYRE Solana program (Anchor)
|
- Custom PYRE Solana program (Anchor)
|
||||||
- Token-2022 support
|
|
||||||
- NFT handling (incl. compressed NFTs)
|
- NFT handling (incl. compressed NFTs)
|
||||||
- Automatic valuable-token sacrifice
|
- Automatic valuable-token sacrifice
|
||||||
- Custodial signing
|
- Custodial signing
|
||||||
- Background wallet automation
|
- Background wallet automation
|
||||||
|
- On-chain swap routing (TRANSMUTABLE) and Token-2022 confidential-transfer /
|
||||||
|
fee-harvest flows
|
||||||
|
|
||||||
v0.1 ships: wallet connect → scan token accounts → classify → close eligible
|
**Token-2022 IS in v0.1 scope** (Rev 2 — most new/pump.fun tokens are Token-2022),
|
||||||
empty ATAs (optionally burn obvious junk) → return rent to user → show receipt.
|
supported conservatively with account+mint **extension gating**: confidential
|
||||||
|
transfer / withheld transfer fees / frozen / unknown extensions are skipped;
|
||||||
|
transfer-hook & permanent-delegate mints are cleanable but flagged. See
|
||||||
|
[`docs/PYRE_MVP_DESIGN.md`](docs/PYRE_MVP_DESIGN.md) §7.1. (Note: the classifier
|
||||||
|
code currently still skips all Token-2022 as a safe subset until the
|
||||||
|
extension-aware implementation lands.)
|
||||||
|
|
||||||
|
v0.1 ships: wallet connect → scan token accounts (classic SPL + Token-2022) →
|
||||||
|
classify → close eligible empty ATAs (optionally burn obvious junk) → return rent
|
||||||
|
to user → show receipt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -175,15 +175,20 @@ non-destructive category — **Unknown means skip.**
|
|||||||
|
|
||||||
```
|
```
|
||||||
scan account
|
scan account
|
||||||
├─ not classic SPL? ───────────────────────────────► UNSUPPORTED
|
├─ unknown/other token program (not SPL or Token-2022)? ─► UNSUPPORTED
|
||||||
├─ bad metadata / layout / unhandled extension? ───► UNSUPPORTED
|
├─ Token-2022 unsafe/unknown extension
|
||||||
├─ NFT / cNFT / LP / receipt / staked / major /
|
│ (confidential transfer / withheld fee / unrecognized)? ► UNSUPPORTED
|
||||||
│ valuable / SOL-WSOL / suspicious / frozen /
|
├─ bad metadata / unsupported layout? ───────────────────► UNSUPPORTED
|
||||||
│ delegated / over-threshold? ────────────────────► PROTECTED_SKIP
|
├─ frozen or delegated? (regardless of balance) ────────► PROTECTED_SKIP
|
||||||
├─ balance == 0? ──────────────────────────────────► EMPTY_CLOSE_ONLY
|
├─ balance == 0? (closes regardless of mint identity) ──► EMPTY_CLOSE_ONLY
|
||||||
├─ safe swap route + passes risk checks? ──────────► TRANSMUTABLE
|
├─ NON-empty & NFT / cNFT / LP / receipt / staked / major /
|
||||||
└─ otherwise (burnable junk, no safe route) ───────► INCINERATE_ONLY
|
│ valuable / SOL-WSOL / suspicious / over-threshold? ───► PROTECTED_SKIP
|
||||||
|
├─ NON-empty & safe swap route + passes risk checks? ────► TRANSMUTABLE
|
||||||
|
└─ otherwise (burnable junk, no safe route) ─────────────► INCINERATE_ONLY
|
||||||
```
|
```
|
||||||
|
(Transfer-hook & permanent-delegate Token-2022 mints pass the program/extension
|
||||||
|
gates — they are cleanable — but are flagged and excluded from swap. See design
|
||||||
|
doc §7.1.)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -147,10 +147,10 @@
|
|||||||
<section class="overall">
|
<section class="overall">
|
||||||
<div class="overall-head">
|
<div class="overall-head">
|
||||||
<h2>Overall MVP Progress</h2>
|
<h2>Overall MVP Progress</h2>
|
||||||
<span class="overall-pct">27%</span>
|
<span class="overall-pct">29%</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="bar"><span style="width: 27%"></span></div>
|
<div class="bar"><span style="width: 29%"></span></div>
|
||||||
<p class="count">14 of 51 phase deliverables complete</p>
|
<p class="count">15 of 51 phase deliverables complete</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<h2 class="section">Development Phases</h2>
|
<h2 class="section">Development Phases</h2>
|
||||||
@@ -172,12 +172,12 @@
|
|||||||
<li class="item done"><span class="mark">✓</span><span>Environment templates</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Environment templates</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</article>
|
</article>
|
||||||
<article class="card in_progress">
|
<article class="card done">
|
||||||
<header class="card-head">
|
<header class="card-head">
|
||||||
<h3><span class="phase-id">Phase 1</span> Wallet Scanner</h3>
|
<h3><span class="phase-id">Phase 1</span> Wallet Scanner</h3>
|
||||||
<span class="badge in_progress">IN PROGRESS</span>
|
<span class="badge done">DONE</span>
|
||||||
</header>
|
</header>
|
||||||
<p class="count">6 / 7 complete</p>
|
<p class="count">7 / 7 complete</p>
|
||||||
<ul class="checklist">
|
<ul class="checklist">
|
||||||
<li class="item done"><span class="mark">✓</span><span>Wallet connect frontend</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Wallet connect frontend</span></li>
|
||||||
<li class="item done"><span class="mark">✓</span><span>Scan endpoint (POST /api/scan)</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Scan endpoint (POST /api/scan)</span></li>
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
<li class="item done"><span class="mark">✓</span><span>Basic classification (conservative, 43 tests)</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Basic classification (conservative, 43 tests)</span></li>
|
||||||
<li class="item done"><span class="mark">✓</span><span>Scan results UI (grouped)</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Scan results UI (grouped)</span></li>
|
||||||
<li class="item done"><span class="mark">✓</span><span>Protected/skipped UI</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Protected/skipped UI</span></li>
|
||||||
<li class="item"><span class="mark">○</span><span>Deploy app + live-wallet e2e verification</span></li>
|
<li class="item done"><span class="mark">✓</span><span>Deployed live at feedthepyre.com + scan verified e2e</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</article>
|
</article>
|
||||||
<article class="card todo">
|
<article class="card todo">
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"name": "Wallet Scanner",
|
"name": "Wallet Scanner",
|
||||||
"state": "in_progress",
|
"state": "done",
|
||||||
"items": [
|
"items": [
|
||||||
{ "label": "Wallet connect frontend", "done": true },
|
{ "label": "Wallet connect frontend", "done": true },
|
||||||
{ "label": "Scan endpoint (POST /api/scan)", "done": true },
|
{ "label": "Scan endpoint (POST /api/scan)", "done": true },
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
{ "label": "Basic classification (conservative, 43 tests)", "done": true },
|
{ "label": "Basic classification (conservative, 43 tests)", "done": true },
|
||||||
{ "label": "Scan results UI (grouped)", "done": true },
|
{ "label": "Scan results UI (grouped)", "done": true },
|
||||||
{ "label": "Protected/skipped UI", "done": true },
|
{ "label": "Protected/skipped UI", "done": true },
|
||||||
{ "label": "Deploy app + live-wallet e2e verification", "done": false }
|
{ "label": "Deployed live at feedthepyre.com + scan verified e2e", "done": true }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user