Skip to content

Conversation

@ECHOAD
Copy link
Collaborator

@ECHOAD ECHOAD commented Nov 17, 2025

Overview

This PR introduces a completely rewritten wallet interface with significant improvements in user experience, performance, and maintainability. The new implementation follows a config-first approach and modern React patterns.

🌟 Key Features & Improvements

✨ Modern UI/UX Overhaul

  • Responsive Design: Mobile-first approach with adaptive layouts
  • Enhanced Dashboard: Comprehensive overview with real-time data visualization
  • Improved Navigation: Intuitive sidebar with collapsible functionality
  • Interactive Charts: Real-time balance and staking history with hover tooltips
  • Live Data Updates: Real-time transaction monitoring and status updates

🔧 Config-First Architecture

  • Manifest-Driven UI: Dynamic interface generation based on configuration
  • Flexible Action System: Configurable transaction types and workflows
  • Chain-Agnostic Design: Multi-chain support through configuration
  • Customizable Validators: Dynamic validator management and display

📱 Enhanced Components

Dashboard

  • Real-time Balance Cards: Live updates with 24h change indicators
  • Staking Overview: Comprehensive staking metrics with visual representations
  • Transaction History: Enhanced transaction display with filtering capabilities
  • Node Management: Intuitive validator control panel

Account Management

  • Multi-Account Support: Seamless switching between wallet accounts
  • Address Portfolio: Detailed view of all addresses with balances and status
  • Enhanced Search: Advanced filtering and search capabilities

Governance

  • Proposal Management: Complete governance interface with voting capabilities
  • Voting Power Display: Clear representation of user voting influence
  • Poll System: Interactive polling with real-time results

Key Management

  • Secure Key Handling: Enhanced security warnings and practices
  • Import/Export Functions: Streamlined wallet import/export workflow
  • Multi-format Support: Support for various key formats and standards

🔄 State Management & Data Flow

  • Optimized Hooks: Custom hooks for efficient data fetching and caching
  • React Query Integration: Intelligent caching and background updates
  • Zustand Store: Lightweight, performant state management
  • Real-time Updates: Live data synchronization across components

🎯 Performance Optimizations

  • Code Splitting: Lazy loading of components for faster initial load
  • Memoization: Optimized re-renders with React.memo and useMemo
  • Bundle Optimization: Tree shaking and import optimization
  • Efficient Animations: Smooth transitions with Framer Motion

🔒 Security Enhancements

  • Enhanced Warnings: Clear security messaging for sensitive operations
  • Safe Key Display: Controlled private key revelation with confirmations
  • Input Validation: Comprehensive form validation and error handling

📋 Technical Details

Configuration System

  • Dynamic Actions: Actions defined through manifest configuration
  • Customizable UI: Interface elements driven by configuration
  • Flexible Theming: CSS custom properties for easy customization
  • Multi-chain Ready: Chain-specific configurations and behaviors

🧪 Testing & Quality Assurance

  • Type Safety: Full TypeScript coverage with strict mode enabled
  • Error-Free Build: Zero TypeScript errors and warnings
  • Import Validation: All imports optimized and verified
  • Component Testing: Thoroughly tested component interactions

🚀 Migration Benefits

For Users

  • Faster Load Times: Optimized bundle size and dependencies
  • Better UX: Intuitive interface with modern design patterns
  • Real-time Data: Live updates without page refreshes
  • Mobile Support: Fully responsive across all device sizes

For Developers

  • Maintainable Code: Clean architecture with clear patterns
  • Config-Driven: Easy customization through configuration
  • Modern Stack: Latest React patterns and best practices

📦 Breaking Changes

  • New Routing Structure: Updated route organization and navigation
  • Component API Changes: Some component props and interfaces updated
  • Configuration Requirements: New manifest structure required
  • Styling Updates: CSS custom properties and design system changes

🔄 Backwards Compatibility

  • Data Migration: Existing wallet data preserved and migrated
  • API Compatibility: Maintains compatibility with existing backend APIs
  • Configuration Bridge: Smooth transition from old to new config format

XJuanCarlosXD and others added 30 commits October 1, 2025 21:57
…ntegration with `useDS` for fetching data.

- Reorganize imports for consistency, applying absolute paths where applicable.
- Introduced `LucideIcon` component for dynamic icon rendering.
- Adjusted and extended `manifest.json` with updated transaction utilities and configurations.
- Replaced inline property setup with externalized configurations in `canopy/chain.json`.
… error handling, and performance.

- Introduced `AccountsProvider` for centralized account management and state synchronization.
- Enhanced `chain.json` with new endpoints and updated configurations.
- Simplified `Navbar` and fixed account-related state inconsistencies.
… `AddressRow`, and monitoring cards (`MetricsCard`, `SystemResourcesCard`, `PerformanceMetricsCard`, `NetworkStatsCard`) for improved modularity and visualization.

- Updated `chain.json` fee configurations for consistency.
- Removed `Send` page and migrated relevant logic to components for better reusability.
- Enhanced `FormRenderer` to support contextual templates, dynamic data sources, and feature buttons.
- Introduced utility functions in `templaterFunctions` for standardized coin formatting.
…formance and modularity; add FieldControl component for better field management
…mation workflows, and templated dynamic rules. Refactor manifest structure and introduce utility functions for contextual templating.
…ular context providers

- Migrated to ToastProvider for centralized toast management.
- Added support for templated and dynamic toast content via `manifestRuntime`.
- Introduced new field types (`switch`, `optionCard`) in `FieldControl` for enhanced user interaction.
- Enhanced `ActionRunner` with toast notifications for lifecycle events (`onInit`, `onBeforeSubmit`, `onSuccess`, `onError`, `onFinally`).
- Redesigned default toast UI with customizable actions.
- Integrated Radix UI Theme for consistent styling.
- Updated dependencies including `@radix-ui/themes` and `@radix-ui/react-switch`.
…nced validation, and templated visibility rules in `FieldControl`. Introduce multi-step forms and advanced wizard navigation in `ActionRunner` with step-specific validations. Expand templating utilities with safer evaluation and dynamic context inclusion. Enhance `RecentTransactionsCard` sorting and status handling while refining validators and error messages.
…idation rules across components; extend `templaterFunctions` with new denom conversion utilities; enhance `TableSelect` and `ActionRunner` with dynamic rules, advanced UX, and auto-populate features; update `manifest.json` for improved staking workflows.
…for transaction types, improve padding for better layout, and integrate new hooks for balance and staking history calculations.
…ter positioning and duration, implement useCopyToClipboard hook for improved clipboard functionality, and refactor ActionRunner to support prefilled data.
…ter positioning and duration, implement useCopyToClipboard hook for improved clipboard functionality, and refactor ActionRunner to support prefilled data.
…ter positioning and duration, implement useCopyToClipboard hook for improved clipboard functionality, and refactor ActionRunner to support prefilled data.
…ter positioning and duration, implement useCopyToClipboard hook for improved clipboard functionality, and refactor ActionRunner to support prefilled data.
…ate balance computations, switch to `lucide-react` icons for consistency, adjust percentage precision, and clean up unused logic.
…allet static files, adjust Dockerfile for new wallet build, and modify chain.json for local RPC settings.
ECHOAD and others added 26 commits November 18, 2025 12:47
- Add base: "./" to vite.config.ts to generate relative asset paths
- Add build/new-wallet target to Makefile for Docker build

This fixes asset loading issues when deploying behind Traefik reverse proxy.
Vite was generating absolute paths (/assets/...) which don't work with
reverse proxies, unlike Next.js which uses relative paths (./_next/...).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive debugging guide for Traefik path issues
- Add assetsDir config to vite.config.ts for clarity
- Document Traefik StripPrefix middleware configuration needed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Use /wallet/ base path in production mode to match deployment URL.
This ensures assets are loaded with absolute paths that work with
Traefik reverse proxy configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add .env.example with VITE_BASE_PATH configuration
- Update vite.config.ts to use environment variable with fallbacks
- Add comprehensive README.md with deployment instructions
- Default production base path: /wallet/
- Configurable via VITE_BASE_PATH environment variable

This allows flexible deployment to different paths without code changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update loader.ts to use import.meta.env.BASE_URL when constructing
plugin paths. This ensures plugin resources load correctly when the
app is deployed in a subdirectory (e.g., /wallet/).

Fixes issue where plugin files were being requested from /plugin/
instead of /wallet/plugin/ in production.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
… RPC configuration, AI settings, and related backend server components.
…, and plugin loading, alongside a debug staking transaction command.
…gement, dashboard components, and a stake transaction debug script.
…h Radix-UI components. Remove outdated deployment debug documentation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants