Skip to content

Latest commit

 

History

History
77 lines (68 loc) · 5.17 KB

File metadata and controls

77 lines (68 loc) · 5.17 KB

Todo List for svmai CLI Tool Development

Phase 1: Research and Planning

  • 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.

Phase 2: Implementation

  • 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.

Phase 3: Documentation and Testing

  • 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.

Phase 4: Packaging and Delivery

  • 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.

Phase 5: Enhancements and Improvements

  • 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.