'use client'; import React, { useState, useEffect } from 'react'; import { Wallet, RefreshCw, Zap, TrendingUp, AlertCircle } from 'lucide-react'; export default function PlatformTreasuryWidget() { const [treasuryData, setTreasuryData] = useState(null); const [isLoading, setIsLoading] = useState(true); const [lastUpdated, setLastUpdated] = useState(null); const fetchTreasury = async () => { setIsLoading(true); try { const res = await fetch('/api/admin/treasury/balances'); const data = await res.json(); if (res.ok) { setTreasuryData(data.balances); setLastUpdated(new Date()); } } catch (e) { console.error('[Treasury Widget] Error:', e); } finally { setIsLoading(false); } }; useEffect(() => { fetchTreasury(); }, []); const networks = [ { id: 'SOLANA', color: 'text-emerald-500', bg: 'bg-emerald-50', icon: '🟢' }, { id: 'POLYGON', color: 'text-purple-500', bg: 'bg-purple-50', icon: '🟣' }, { id: 'TRON', color: 'text-red-500', bg: 'bg-red-50', icon: '🔴' }, { id: 'BSC', color: 'text-yellow-500', bg: 'bg-yellow-50', icon: '🟡' }, { id: 'ETH', color: 'text-blue-500', bg: 'bg-blue-50', icon: '🔵' }, { id: 'BITCOIN', color: 'text-orange-500', bg: 'bg-orange-50', icon: '🟠' } ]; return (

Platform Hazinesi

Sistem Genelindeki On-Chain Likidite

{lastUpdated && ( Son Güncelleme: {lastUpdated.toLocaleTimeString('tr-TR')} )}
{networks.map((net) => { const data = treasuryData?.[net.id]; const nativeSymbol = data?.nativeSymbol || net.id; const balance = data?.native || '0.00'; const tokenList = data?.tokens ? Object.entries(data.tokens) : []; return (
{net.icon} {net.id}

Ana Varlık

{balance}

{nativeSymbol}
{tokenList.length > 0 && (
{tokenList.map(([symbol, bal]) => (
{symbol as string} {bal as string}
))}
)} {balance === "Error" && (
Bağlantı Hatası
)}
); })}

Yukarıdaki bakiyeler platformun operasyonel cüzdanlarından (Platform Treasury) anlık olarak çekilir. Ödemeler bu likidite üzerinden karşılanmaktadır.

); }