- 001: Analyze Requirements - Gather and clarify all user requirements for the svmai tool. (Status: Completed)
- 002: Research Solana Wallet Structure - Understand the JSON format of Solana wallet files and how private keys are stored. (Status: Completed)
- Review Solana official documentation on keypair files.
- Examine examples of Solana wallet JSON files.
- Investigate the GitHub Agave repository for relevant CLI examples.
- Analyze the cloned Solana Program Library for insights.
- 003: Research Rust CLI Development - Explore best practices, libraries, and tools for building CLI applications in Rust.
- Identify suitable TUI libraries (e.g., ratatui, cursive).
- Research Rust crates for file system operations (search, read, write).
- Investigate Rust libraries for JSON parsing (e.g., serde_json).
- Research Rust libraries for interacting with Solana blockchain (e.g., solana-sdk, solana-client).
- Research Rust libraries for keychain/secure storage integration (e.g., keyring-rs).
- 004: Design Tool Architecture - Define the overall architecture of the svmai tool, including modules and their interactions.
- Outline the core components (file search, key validation, encryption, TUI, wallet management).
- Define data structures for storing wallet information and configuration.
- 005: Implement JSON File Search Module - Develop the functionality to search for .json files in a specified folder. (Status: Completed)
- Implement multi-threaded search for efficiency.
- 006: Implement Solana Key Validation - Develop the logic to confirm if a JSON file contains a valid Solana private key. (Status: Completed)
- Parse JSON content.
- Validate the format of the private key (array of numbers).
- 007: Implement Keychain Encryption - Integrate with user keychain services to encrypt and decrypt the configuration file storing private keys. (Status: Completed)
- Implement logic to handle keychain access (requesting permissions, error handling).
- Securely store and retrieve private keys.
- 008: Implement Wallet Management Features - Develop basic operations for managing saved keys. (Status: Completed)
- 009: Implement TUI Interface - Create a Text-based User Interface for interacting with the tool. (Status: Completed)
- Design TUI layout for displaying wallet balances and managing keys.
- Implement navigation and input handling.
- Add search/filter functionality for wallets.
- Enhance wallet details view with better token balance display.
- Implement batch operations menu.
- 010: Implement Balance Checking - Develop functionality to fetch and display balances for all stored wallets (SOL and SPL tokens). (Status: Completed)
- Integrate with Solana RPC API or a suitable library (e.g., Moralis API if appropriate and available).
- 011: Implement Batch Operations - Develop features for batch sending tokens. (Status: Completed)
- Define batch send parameters (token type, recipient addresses, amounts).
- 012: Implement Token Mixing - Develop features for mixing tokens between wallets. (Status: Completed)
- Clarify and implement the desired token mixing strategy.
- 013: Write Documentation - Create comprehensive documentation for the application. (Status: Completed)
- Document installation, usage, and features.
- Create detailed keyboard shortcut reference.
- Add troubleshooting guidance.
- Enhance developer documentation.
- 014: Test Functionality - Thoroughly test all features of the svmai tool. (Status: Completed)
- Unit tests for individual modules.
- Integration tests for overall functionality.
- Fix test isolation issues with unique environments for each test.
- Improve keychain state management in tests.
- 015: Package Application - Prepare the tool for distribution. (Status: Completed)
- Format code with cargo fmt.
- Optimize for performance.
- Ensure all tests pass.
- 016: Deliver Final Code - Provide the complete source code and packaged application to the user. (Status: Completed)
- Create detailed CHANGELOG.md.
- Update README.md with comprehensive documentation.
- Ensure all source files are properly organized and commented.
- 017: Enhance Error Handling - Improve error handling throughout the application. (Status: Completed)
- Add custom TransactionError type for transaction operations.
- Standardize error handling across all modules.
- Enhance error propagation and user-friendly messages.
- 018: Improve Code Quality - Enhance overall code quality and maintainability. (Status: Completed)
- Apply consistent formatting.
- Optimize file search performance.
- Enhance type safety and error handling.