Files
stealth/frontend/src/App.jsx
LORDBABUINO 1c04b0b096 Feat: scaffold React frontend with Vite and Stealth theme
Three-screen state machine (input → loading → report) for analyzing
Bitcoin wallet descriptor privacy. Includes mock UTXO data with
ADDRESS_REUSE, DUST_SPEND, CONSOLIDATION, and CIOH vulnerability types.
2026-02-27 02:06:31 -03:00

35 lines
1.0 KiB
React

import { useState } from 'react'
import InputScreen from './screens/InputScreen'
import LoadingScreen from './screens/LoadingScreen'
import ReportScreen from './screens/ReportScreen'
import { analyzeWallet } from './services/walletService'
export default function App() {
const [screen, setScreen] = useState('input')
const [descriptor, setDescriptor] = useState('')
const [report, setReport] = useState(null)
async function handleAnalyze(desc) {
setDescriptor(desc)
setScreen('loading')
try {
const result = await analyzeWallet(desc)
setReport(result)
setScreen('report')
} catch (err) {
console.error('Analysis failed:', err)
setScreen('input')
}
}
function handleReset() {
setScreen('input')
setDescriptor('')
setReport(null)
}
if (screen === 'loading') return <LoadingScreen descriptor={descriptor} />
if (screen === 'report') return <ReportScreen report={report} descriptor={descriptor} onReset={handleReset} />
return <InputScreen onAnalyze={handleAnalyze} />
}