Design pass v1: DeFi-flash visual system with real on-chain counters
Aurora ground, glass panels, gradient pill CTAs, Sora display face, live money ticker, stat band fed by chain totals (tallied in the indexer with one-time backfill), format showcase, Branded Voice FAQ accordions. CSP extended for Google Fonts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -46,5 +46,26 @@
|
||||
IAP.status('Purchase failed: ' + (e.message || e), 'bad');
|
||||
} finally { btn.disabled = false; }
|
||||
}
|
||||
async function loadStats() {
|
||||
try {
|
||||
const s = await (await fetch('/api/stats')).json();
|
||||
IAP.$('stMembers').textContent = (s.onchainMembers || 0).toLocaleString();
|
||||
IAP.$('stPurchases').textContent = (s.purchases || 0).toLocaleString();
|
||||
IAP.$('stPaid').textContent = IAP.fmtPol(s.paidInWei || '0');
|
||||
IAP.$('stPayouts').textContent = (s.payouts || 0).toLocaleString();
|
||||
} catch (e) {}
|
||||
}
|
||||
async function loadTicker() {
|
||||
try {
|
||||
const { events } = await (await fetch('/api/feed?n=30')).json();
|
||||
if (!events.length) return;
|
||||
const inner = IAP.$('tickerInner');
|
||||
inner.innerHTML = events.map(ev => '<span>' + IAP.describeEvent(ev, c) + '</span>').join('');
|
||||
IAP.$('ticker').hidden = false;
|
||||
} catch (e) {}
|
||||
}
|
||||
loadLadder();
|
||||
loadStats();
|
||||
loadTicker();
|
||||
setInterval(loadStats, 60000);
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user