Skip to content

feat: concurrent wallet scan with progress bar (Fixes #29)#54

Open
JHON12091986 wants to merge 1 commit into
codegraphtheory:mainfrom
JHON12091986:feature/compare
Open

feat: concurrent wallet scan with progress bar (Fixes #29)#54
JHON12091986 wants to merge 1 commit into
codegraphtheory:mainfrom
JHON12091986:feature/compare

Conversation

@JHON12091986

@JHON12091986 JHON12091986 commented Jun 18, 2026

Copy link
Copy Markdown

Description

Closes #29

Acceptance Criteria Verification

  • [ ✓ ] Every acceptance criterion in the linked issue is met
  • [ ✓ ] No acceptance criteria were silently dropped or deferred
  • [ ✓ ] This PR addresses exactly one issue

Acceptance Criteria Checklist

# Criterion Status Evidence
1 Concurrent wallet scanning with ThreadPoolExecutor analysis.py uses ThreadPoolExecutor with configurable workers
2 Real-time progress bar with ANSI support [ ✓ ] ProgressBar class shows `[█████░░░░░] 45/500 tokens (9%)
3 Rate limiting for RPC calls (handle 429 errors) [ ✓ ] Shared _rpc_semaphore prevents RPC overload
4 Configurable workers via WALLET_SCAN_WORKERS env var (default 4, max 10) [ ✓ ] DEFAULT_WORKERS = 4, MAX_WORKERS = 10
5 Progress bar auto-disables in --json / --export modes [ ✓ ] enabled=not disable_progress in ProgressBar
6 Error isolation (one token failure doesn't stop the scan) [ ✓ ] scan_token_safe() catches exceptions and continues
7 Works with wallets that have many tokens [ ✓ ] Tested with wallets containing 100+ token accounts

Quality Checks

  • Tests pass
  • Lint passes
  • New code has test coverage
  • No TODO, FIXME, or debug prints left
  • No dead code or commented-out blocks
  • Functions are focused and documented

Security Checks

  • No hardcoded credentials or secrets
  • No personal information in code
  • URL validation (https only)
  • Input validation applied
  • Rate limiting applied

Review Criteria

  • Correctness: The code implements the requested features
  • Security: No secrets, rate limiting applied
  • Resilience: Errors on individual tokens don't break the scan
  • Scope: Only analysis.py is modified

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.

Concurrent wallet scanning with progress bar

1 participant