Skip to content

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

Open
JHON12091986 wants to merge 27 commits into
codegraphtheory:mainfrom
JHON12091986:feature/compare
Open

feat: concurrent wallet scan with progress bar (Fixes #29)#54
JHON12091986 wants to merge 27 commits 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

leo-guinan and others added 27 commits June 4, 2026 11:08
- Add YAML-based bug report template with structured fields
- Add YAML-based feature/bounty request template with acceptance criteria
- Add config.yml (blank issues disabled)
- Triage all 6 open issues: label, comment, accept/reject
- Bug codegraphtheory#7, codegraphtheory#9 labeled and accepted
- Documentation codegraphtheory#8 labeled and accepted
- Bounties codegraphtheory#12, codegraphtheory#13 labeled and accepted
- Bug codegraphtheory#6 confirmed fixed and closed by PR codegraphtheory#10
- Remove unused dex_name variable (fixes F841 ruff error)
- Add complementary LIQ_VOL_RATIO_MIN check for inactive/dead pool detection
- Add mock-based tests for GPA holder fallback and DexScreener scoring
- Document SOLANA_RUG_LIQ_VOL_RATIO_MIN env var in README

Co-authored-by: KHHH2312 <khhh2312@users.noreply.github.com>
Closes codegraphtheory#22

Adds a 24h price sparkline to `--markdown` output using Unicode block characters. Renders from DexScreener `price_change_24h` data with green/red color prefix for strong moves. No new dependencies.

Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
…ory#24)

Closes codegraphtheory#24

Adds --export csv/jsonl to token and wallet commands. Both format flags and --export=value shorthand supported. 32 tests pass, ruff clean.
Co-authored-by: copernicusjones <copernicusjones@users.noreply.github.com>
Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
…degraphtheory#23)

Closes codegraphtheory#23. Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
…ory#29)

Closes codegraphtheory#29. Co-authored-by: KHHH2312 <khhh2312@users.noreply.github.com>
Closes codegraphtheory#27. Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
Closes codegraphtheory#26. Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
…ixes codegraphtheory#25)

Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
…degraphtheory#28)

Closes codegraphtheory#28. Co-authored-by: lb1192176991-lab <lb1192176991-lab@users.noreply.github.com>
Co-authored-by: a11ce <a11ce@users.noreply.github.com>
- Fix ruff import ordering in scripts/solana-rug.py
- Update CI to run all test files (test_checks.py + test_telegram_bot.py)
- Update release workflow to ship solana-rug.py instead of rugguard.py
- Remove old solana_rug/ package wrapper (replaced by rugguard/)
Remove scripts/rugguard.py (old monolithic file, replaced by rugguard/ package),
scripts/rugguard.py.rej, and tests/test_checks.py.rej (leftover patch rejects).
- Remove stale scripts/rugguard.py, .rej files
- Re-export all private test helpers in rugguard.__init__
- Fix test_holder_fallback_gpa to patch onchain module directly
- Update __all__ to include all re-exported symbols
@codegraphtheory codegraphtheory force-pushed the main branch 2 times, most recently from 793c101 to ddc26d6 Compare June 30, 2026 12:48
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

5 participants