10x every page: real interactions, kill fake content, wire everything

- ChatWidget: remove illegal seeds, real localStorage per-handle chat,
  honest bot replies about market/forum/funds
- ForumBoard: wire to real forumState (loadForum/addThread/vote), kill
  fake stats and illegal seed posts
- Home page: privacy features list reflects reality, footer links real
- Links: kill all alert() calls, replace fake onions with real clearnet
  privacy resources + internal route grid
- Support: per-coin copied state, env-driven addresses, real BTC addr
- Inner circle: wire to AccountContext, tier system from LUX balance,
  remove hardcoded admin/shadow credentials and fake trading signals
- Drop box: real sealed-note localStorage system, honest about no
  anonymous upload capability, real file picker with receipt
- Messages: fully functional per-handle localStorage chat, AI-style
  contextual bot replies, clear history, honest about local storage
- Wallets: pivot from fake PayPal accounts to Digital Access Passes,
  wire Buy Now to cart via ShopProduct interface
- Testimonials: wire submit form to localStorage, interactive star
  rating 1-10, display submitted reviews above the fold
- Raffle: use real merchant BTC address, real per-handle entry storage,
  honest LUX-only prize disclaimer, fix 0x address
- Drops/Lotto: real number picker 1-49 with Quick Pick, ticket
  submission, match display against drawn numbers, demo disclaimer
- Sanctuary: real 4-4-6-2 breathing timer, meditation passage with
  timer, candle-lighting with localStorage notes
- Game: full playable Void Pong with canvas physics, CPU AI, scoring,
  rally counter, localStorage high score
- Security analysis: honest architecture breakdown with real grades,
  layer-by-layer analysis, practical OPSEC guide, fiction banner
- Trust: compute real scores from actual localStorage data (LUX,
  USD, forum posts, testimonials), FAQ accordion

Made-with: Cursor
This commit is contained in:
drjones
2026-04-16 00:55:28 -07:00
parent 9da373a190
commit 2f928fbdc4
36 changed files with 3837 additions and 2354 deletions

View File

@@ -1,68 +1,190 @@
"use client";
import { useState } from "react";
import Link from "next/link";
import ThemedLayout from "@/components/layouts/ThemedLayout";
import { getMerchantBtcAddress, isMerchantBtcConfigured } from "@/lib/merchantBtc";
import { useCart } from "@/contexts/CartContext";
import type { ShopProduct } from "@/lib/shopCatalog";
export default function PayPalMarket() {
const btcAddr = getMerchantBtcAddress();
const btcReady = isMerchantBtcConfigured();
type Pass = {
id: string;
name: string;
description: string;
features: string[];
price: number;
currency: "USD";
tier: "standard" | "elevated" | "handler" | "principal";
luxReward: number;
};
const wallets = [
{ id: 1, balance: "$1,240.00", price: "0.002 BTC", type: "Personal" },
{ id: 2, balance: "$3,500.00", price: "0.005 BTC", type: "Business" },
{ id: 3, balance: "$8,900.00", price: "0.012 BTC", type: "Business Premier" },
{ id: 4, balance: "$12,000.00", price: "0.018 BTC", type: "Corporate" },
];
const PASSES: Pass[] = [
{
id: "pass_standard",
name: "Standard Pass",
description: "Base access — unlocks buyer profile, order vault, and forum post quota.",
features: ["Buyer account", "Full market access", "Order vault receipts", "Forum posting"],
price: 9.99,
currency: "USD",
tier: "standard",
luxReward: 100,
},
{
id: "pass_elevated",
name: "Elevated Pass",
description: "Enhanced access — priority queue on drops, barter board priority lane, and expanded vault quota.",
features: ["Everything in Standard", "Drop queue priority", "Barter priority lane", "2× LUX on orders", "Expanded vault keys"],
price: 29.99,
currency: "USD",
tier: "elevated",
luxReward: 350,
},
{
id: "pass_handler",
name: "Handler Pass",
description: "Vendor-level access — stall listing, exchange board elevated visibility, direct forum ring IV key.",
features: ["Everything in Elevated", "Vendor stall listing", "Exchange elevated visibility", "Ring IV forum key", "Inner Circle Handler tier"],
price: 74.99,
currency: "USD",
tier: "handler",
luxReward: 1000,
},
{
id: "pass_principal",
name: "Principal Pass",
description: "Maximum tier — all access surfaces unlocked, relay contact, and lore archive key.",
features: ["All access surfaces", "Operator relay contact", "Full lore archive key", "Inner Circle Principal", "Priority dispute resolution"],
price: 199.99,
currency: "USD",
tier: "principal",
luxReward: 3000,
},
];
const TIER_COLORS: Record<Pass["tier"], string> = {
standard: "from-gray-600 to-gray-500",
elevated: "from-cyan-700 to-blue-600",
handler: "from-purple-700 to-purple-500",
principal: "from-amber-600 to-yellow-500",
};
const TIER_BORDER: Record<Pass["tier"], string> = {
standard: "border-gray-600/40",
elevated: "border-cyan-600/40",
handler: "border-purple-600/40",
principal: "border-amber-500/40",
};
export default function DigitalPassesPage() {
const { addToCart } = useCart();
const [added, setAdded] = useState<string | null>(null);
const handleAdd = (pass: Pass) => {
const product: ShopProduct = {
id: pass.id,
name: pass.name,
description: pass.description,
price: pass.price,
currency: pass.currency,
category: "Access Pass",
sellerId: "cyberlux",
};
addToCart(product, 1);
setAdded(pass.id);
setTimeout(() => setAdded(null), 1800);
};
return (
<ThemedLayout theme="retro" title="The Wallet Exchange">
<div className="max-w-4xl mx-auto pt-12 font-mono text-[#0f0]">
<ThemedLayout theme="retro" title="Digital Access Passes">
<div className="mx-auto max-w-5xl px-4 pt-12 pb-20 font-mono">
<header className="border-b-4 border-[#0f0] pb-8 mb-12">
<h1 className="text-5xl font-black uppercase tracking-tighter">The Wallet Exchange</h1>
<p className="text-sm mt-4">Verified PayPal Wallets. Instant Delivery.</p>
<div className="text-[10px] uppercase tracking-widest text-[#0f0]/60 mb-2">CyberLux Store</div>
<h1 className="text-4xl font-black uppercase tracking-tighter text-[#0f0]">Digital Access Passes</h1>
<p className="mt-4 text-sm text-[#0f0]/70 max-w-2xl">
One-time purchases that expand your CyberLux access tier and award permanent LUX credits. Passes are
virtual payment via USD balance (funded by Bitcoin verify) or checkout. No physical delivery.
</p>
<div className="mt-4 flex flex-wrap gap-3">
<Link
href="/account/add-funds"
className="border border-[#0f0] px-4 py-2 text-xs font-bold uppercase text-[#0f0] hover:bg-[#0f0]/10 transition-all"
>
Add Funds First
</Link>
<Link
href="/inner-circle"
className="border border-[#0f0]/40 px-4 py-2 text-xs font-bold uppercase text-[#0f0]/60 hover:border-[#0f0] hover:text-[#0f0] transition-all"
>
Inner Circle
</Link>
</div>
</header>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8 mb-12">
{wallets.map(w => (
<div key={w.id} className="border-2 border-[#0f0] p-8 bg-black/40 hover:bg-[#0f0]/10 transition-all">
<div className="flex justify-between items-start mb-6">
<div className="text-3xl font-bold">{w.balance}</div>
<div className="text-[10px] bg-[#0f0] text-black px-2 py-1 font-bold uppercase">{w.type}</div>
</div>
<div className="space-y-2 text-xs opacity-60 mb-8">
<div>{">"} Verified Email: YES</div>
<div>{">"} Linked Bank: YES</div>
<div>{">"} Transaction History: 12+ Months</div>
</div>
<div className="flex justify-between items-center">
<div className="text-xl font-bold">{w.price}</div>
<button className="bg-[#0f0] text-black px-6 py-2 font-bold uppercase text-xs hover:bg-[#0f0]/80 transition-all">
Buy Now
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
{PASSES.map((pass) => {
const isAdded = added === pass.id;
return (
<div
key={pass.id}
className={`border-2 bg-black/40 p-8 transition-all hover:bg-[#0f0]/5 ${TIER_BORDER[pass.tier]}`}
>
<div className="mb-5 flex items-start justify-between gap-3">
<div>
<div
className={`mb-2 inline-block rounded bg-gradient-to-r ${TIER_COLORS[pass.tier]} px-3 py-1 text-[10px] font-black uppercase text-white`}
>
{pass.tier}
</div>
<h3 className="text-xl font-black uppercase text-[#0f0]">{pass.name}</h3>
</div>
<div className="text-right">
<div className="text-2xl font-black text-[#0f0]">${pass.price}</div>
<div className="text-[10px] text-[#0f0]/50">+{pass.luxReward} LUX</div>
</div>
</div>
<p className="mb-5 text-sm text-[#0f0]/70 leading-relaxed">{pass.description}</p>
<ul className="mb-6 space-y-1.5">
{pass.features.map((f) => (
<li key={f} className="flex items-center gap-2 text-xs text-[#0f0]/80">
<span className="text-[#0f0]">{">"}</span>
{f}
</li>
))}
</ul>
<button
type="button"
onClick={() => handleAdd(pass)}
className={`w-full py-3 font-black uppercase text-sm transition-all ${
isAdded
? "bg-[#0f0] text-black"
: "border-2 border-[#0f0] text-[#0f0] hover:bg-[#0f0] hover:text-black"
}`}
>
{isAdded ? "✓ Added to Cart" : `Add to Cart — $${pass.price}`}
</button>
</div>
</div>
))}
);
})}
</div>
<div className="bg-[#0f0]/10 border-2 border-[#0f0] p-8 mb-12">
<h3 className="text-xl font-bold mb-4 uppercase">Payment Instructions</h3>
<p className="text-xs mb-6 leading-relaxed">
Bitcoin payments use the same merchant address as CyberLux checkout. After the transaction is
confirmed on-chain, verify the txid on the checkout page to add USD to your spendable balance.
</p>
<div className="bg-black text-white p-4 font-bold break-all mb-4 border border-[#0f0] text-[11px] leading-relaxed">
{btcReady ? btcAddr : "[Set NEXT_PUBLIC_MERCHANT_BTC_ADDRESS in .env.local]"}
</div>
<div className="flex items-center gap-4 opacity-50">
<div className="w-10 h-10 border-2 border-[#0f0] flex items-center justify-center font-bold">E</div>
<div className="text-[8px] uppercase">
Escrow Assured<br />by ShadowGuard
</div>
<div className="mt-12 border-4 border-[#0f0]/20 bg-[#001200] p-8 text-sm">
<h3 className="mb-4 font-black uppercase text-[#0f0]">How Passes Work</h3>
<ul className="space-y-2 text-[#0f0]/70 text-xs">
<li>{">"} Passes are digital items checkout with USD balance (Bitcoin-funded) or other accepted payment.</li>
<li>{">"} On purchase, LUX credits are applied to your handle and tier is updated in the Inner Circle.</li>
<li>{">"} All state is client-side. Export your account bundle from /dashboard to back it up.</li>
<li>{">"} No refunds on digital passes once LUX has been applied to your account.</li>
</ul>
<div className="mt-6 flex gap-4">
<Link href="/checkout" className="text-xs text-[#0f0] hover:underline">Go to Checkout </Link>
<Link href="/dashboard" className="text-xs text-[#0f0]/60 hover:text-[#0f0]">Your Dashboard</Link>
</div>
</div>
<div className="text-center text-[10px] opacity-40 uppercase tracking-widest">
Node 24 // Shadow Network // Est. 2024
<div className="mt-8 text-center text-[10px] text-[#0f0]/30 uppercase tracking-widest">
CyberLux Digital Passes · Client-side entitlement system · Est. 2024
</div>
</div>
</ThemedLayout>