How spacemeshos/smapp-lite works
Smapp-Lite is a browser-based Spacemesh wallet. The main user journey is to create or import a wallet, unlock it, select an account and network, inspect account activity, and initiate wallet operations such as sending or receiving. The graph includes account-data refresh and persistence layers, plus documented-by-tree capabilities for key management, transaction types, messaging, and Ledger support. Runtime wiring beyond the sampled files is kept conservative; unsampled feature nodes are represented by their exact enclosing paths.
Main entry points: App.tsx Application router · WalletScreen.tsx Wallet dashboard · useAccountHandlers.ts Account handlers · useWallet.ts Wallet state
Components 22
Wallet setup
- Welcome and import
src/screens/welcome - Wallet creation
src/screens/createWallet - Wallet unlock
src/screens/UnlockScreen.tsx
Wallet operations
- Wallet dashboard
src/screens/WalletScreen.tsx - Keys and accounts
src/components/KeyManager.tsx - Send and spawn
src/components/sendTx - Receive funds
src/components/Receive.tsx - Activity and rewards
src/components/TxList.tsx - Sign and verify
src/components
Network and data
- Network selection
src/components/NetworksSeletion.tsx - Data refresher
src/hooks/useDataRefresher.ts - Account handlers
src/hooks/useAccountHandlers.ts - RPC requests
src/api/requests
State and security
- Account data
src/store/useAccountData.ts - Wallet state
src/store/useWallet.ts - Wallet crypto
src/utils/wallet.ts
Device integrations
- Ledger connection
src/store/useHardwareWallet.ts
Other components
- Wallet user
- Application router
src/App.tsx - Spacemesh RPC
- Browser storage
- Ledger device
Connections 24
- Wallet user → Application router: opens
- Application router → Welcome and import: routes
- Application router → Wallet creation: routes
- Application router → Wallet unlock: routes
- Application router → Wallet dashboard: routes
- Wallet user → Welcome and import: imports wallet
- Wallet user → Wallet creation: creates wallet
- Wallet user → Wallet unlock: unlocks
- Wallet user → Wallet dashboard: uses
- Wallet dashboard → Data refresher: refreshes data
- Data refresher → Account handlers: requests data
- Account handlers → RPC requests: calls
- RPC requests → Spacemesh RPC: queries
- Account handlers → Account data: stores results
- Wallet dashboard → Network selection: selects network
- Wallet user → Keys and accounts: manages
- Wallet user → Send and spawn: initiates transaction
- Wallet user → Receive funds: views receive details
- Wallet user → Activity and rewards: reviews activity
- Wallet user → Sign and verify: signs or verifies
- Wallet state → Wallet crypto: encrypts wallet
- Wallet state → Browser storage: reads and writes
- Wallet user → Ledger connection: connects device
- Ledger connection → Ledger device: communicates