A comprehensive Electron-based desktop application for testing, simulating, and managing Solana programs through IDL (Interface Description Language) files. Built with React, TypeScript, and the latest Solana development tools.
- IDL Management: Upload, validate, and manage Anchor IDL files with comprehensive validation
- Program Simulation: Execute real Solana program simulations with account state tracking
- Test Framework: Build and run automated test suites for your Solana programs
- Project Management: Organize your work with full project lifecycle management
- Real Blockchain Integration: Connect to devnet, testnet, and mainnet for live testing
- Wallet Integration: Connect with popular Solana wallets using @solana/wallet-adapter
- Account State Management: Track and visualize account changes over time
- TypeScript Generation: Generate TypeScript interfaces from IDL definitions
- Import/Export: Comprehensive project and data export capabilities
- Performance Monitoring: Real-time performance metrics and optimization tools
- Frontend: React 18 with TypeScript
- Desktop Framework: Electron with Vite
- Solana Integration: @solana/web3.js, @coral-xyz/anchor
- Styling: Tailwind CSS with custom Solana theme
- Storage: electron-store, IndexedDB, File System APIs
- Testing: Jest with comprehensive test utilities
- Build System: Electron Builder with multi-platform support
- Node.js 18.x or higher
- npm or yarn package manager
- Git
-
Clone the repository
git clone https://github.com/yourusername/solana-test-hub.git cd solana-test-hub -
Install dependencies
npm install
-
Run in development mode
npm run dev
-
Build for production
npm run build
solana-test-hub/
βββ electron/
β βββ main/ # Electron main process
β βββ preload/ # Preload scripts for secure IPC
βββ src/
β βββ components/ # React components
β β βββ features/ # Feature-specific components
β β βββ ui/ # Reusable UI components
β βββ contexts/ # React context providers
β βββ services/ # Business logic and API services
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
βββ tests/ # Test files and utilities
βββ docs/ # Documentation
- IDL Uploader: Drag-and-drop interface for IDL file uploads
- IDL Validator: Comprehensive validation of Anchor IDL structure
- IDL Viewer: Interactive exploration of program definitions
- IDL Parser: Extract and process instruction and account definitions
- Program Simulation: Execute instructions against simulated Solana runtime
- Account State Tracking: Monitor account changes across simulations
- Transaction Building: Create complex multi-instruction transactions
- PDA Derivation: Automatic Program Derived Address calculation
- Test Case Builder: Visual interface for creating test scenarios
- Test Runner: Execute tests with parallel processing and timeout handling
- Result Analysis: Detailed reporting with performance metrics
- Test Templates: Pre-built test patterns for common scenarios
-
Create a New Project
- Launch the application
- Click "New Project" and select a template
- Choose your project directory
-
Upload IDL Files
- Navigate to the IDL Manager
- Drag and drop your Anchor IDL JSON files
- Review validation results
-
Run Simulations
- Go to the Simulation Lab
- Select your program and instruction
- Fill in account and parameter data
- Execute the simulation
-
Create Tests
- Use the Test Suite to build test cases
- Define assertions for account states
- Run tests and review results
The application supports extensive configuration through the Settings panel:
- Network Settings: Choose between devnet, testnet, and mainnet
- Wallet Configuration: Set up wallet connections
- Performance Tuning: Adjust simulation and test execution parameters
- UI Preferences: Customize themes and layout options
// Example: Connecting to Solana networks
import { SolanaRPCService } from './services/blockchain/solanaRPC';
const rpcService = new SolanaRPCService('devnet');
await rpcService.connect();
const accountInfo = await rpcService.getAccountInfo(publicKey);// Example: Wallet connection
import { WalletAdapter } from './services/blockchain/walletAdapter';
const wallet = new WalletAdapter();
await wallet.connect('phantom');
const signature = await wallet.signTransaction(transaction);The project includes comprehensive testing capabilities:
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Run specific test suites
npm run test:unit
npm run test:integration- Unit Tests: Component and service testing
- Integration Tests: Full workflow testing
- E2E Tests: Electron application testing
- Performance Tests: Load and stress testing
npm run build:devnpm run build:prod# Build for all platforms
npm run dist
# Build for specific platforms
npm run dist:win
npm run dist:mac
npm run dist:linuxThe project follows a structured 10-phase development approach:
- Foundation Setup: Project initialization and configuration
- Data Management: Context providers and storage services
- IDL Processing: Parser, validator, and management components
- Simulation Engine: Core simulation functionality
- Testing Framework: Test creation and execution
- Project Management: Project lifecycle and organization
- Blockchain Integration: Live network connectivity
- Production Features: Import/export and settings
- Performance & Quality: Optimization and error handling
- Production Deployment: Build system and CI/CD
- TypeScript: Strict typing throughout the application
- ESLint: Consistent code formatting and best practices
- Prettier: Automated code formatting
- Husky: Pre-commit hooks for quality assurance
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
- All code must be fully implemented (no placeholder code)
- Real functionality only (no mock data in production features)
- Comprehensive error handling
- Full TypeScript typing
- Test coverage for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs/ directory
- Issues: Report bugs via GitHub Issues
- Discussions: Join our GitHub Discussions
- Discord: Join our community Discord server
- Advanced program debugging capabilities
- Integration with Solana program libraries
- Enhanced visualization tools
- Multi-program testing scenarios
- Cloud-based project synchronization
- Plugin system for custom extensions
- β Core IDL management system
- β Basic simulation engine
- β Project management framework
- β Wallet integration
- β Cross-platform builds
The application is optimized for real-world usage with:
- Code Splitting: Lazy loading for optimal startup times
- Memory Management: Efficient cleanup and garbage collection
- Caching: Intelligent caching of simulation and parsing results
- Performance Monitoring: Real-time performance metrics
Security is a top priority:
- Secure IPC: Proper context isolation in Electron
- Wallet Security: Integration with secure wallet adapters
- Data Validation: Comprehensive input validation
- Error Handling: Secure error reporting without data leakage
- Lead Developer: Your Name
- Solana Integration: Team Member
- UI/UX Design: Designer
- Solana Foundation for the excellent development tools
- Anchor framework team for IDL standards
- Electron team for the desktop framework
- React and TypeScript communities
Built with β€οΈ for the Solana developer community