mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-04-11 07:56:50 +02:00
31238412acaa707c0b537fdc10b1a88a22767e71
Add comprehensive NIP-60 Cashu wallet functionality: - Create wallet-utils.ts with NIP-60 data structures and helpers: * TypeScript interfaces for WalletConfig, UnspentTokens, Transaction * Decryption functions for wallet config, tokens, and history * Balance calculation and formatting utilities * Transaction sorting and mint display helpers - Enhance WalletViewer component with full decryption support: * Integrate with applesauce-accounts for NIP-44 decryption * Auto-decrypt wallet events when active account is available * Display actual balance with breakdown by mint * Show transaction history with type icons and timestamps * Visual status indicators (locked/unlocked states) * Loading states during decryption * Error handling for decryption failures - Features: * Privacy-first: only decrypt for own wallet * Reactive updates when wallet events change * Support for multiple mints per wallet * Transaction type indicators (mint, melt, send, receive) * Human-readable timestamps and amounts This enables users to view their NIP-60 Cashu wallet balance and transaction history directly in Grimoire, with full NIP-44 encryption support through applesauce-accounts.
Grimoire
A Nostr protocol explorer and developer tool with a tiling window manager interface.
Features
- Tiling Windows - Each window is a Nostr "app" (profile viewer, event feed, NIP docs, etc.)
- Command Palette - Unix-style commands via
Cmd+Kto open apps and navigate - Multi-workspace - Virtual desktops with independent layouts
- Real-time - Reactive event subscriptions with automatic updates
Stack
React 19, TypeScript, Vite, TailwindCSS, Jotai, Dexie, Applesauce
Getting Started
npm install
npm run dev
Scripts
| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Build for production |
npm test |
Run tests in watch mode |
npm run lint |
Lint code |
npm run format |
Format code |
License
MIT
Languages
TypeScript
98.9%
CSS
0.8%
JavaScript
0.3%