From bd412acb2b96a6d6853fae06507a2a9fdd00e77d Mon Sep 17 00:00:00 2001 From: cryptorugmunch Date: Tue, 7 Jul 2026 17:48:53 +0700 Subject: [PATCH] refactor(domains): merge token/tokens + scanner/scanners, drop empty app/domain/ - Move app/domains/tokens/deployer.py -> app/domains/token/deployer.py. Delete app/domains/tokens/ (was a single-file shadow of the token domain). - Move app/domains/scanner/* into app/domains/scanners/core/. The 31 detector modules in app/domains/scanners/ + the core service are now a single coherent domain. - Update import paths in app/token_scanner.py and app/token_deployer.py. - Delete empty app/domain/ (singular, was a leftover scaffold). - Factory still loads 466 routes, mypy-gate clean. --- .../{scanner => scanners/core}/__init__.py | 2 +- .../{scanner => scanners/core}/market_data.py | 2 +- .../{scanner => scanners/core}/models.py | 0 .../{scanner => scanners/core}/modules.py | 0 .../{scanner => scanners/core}/service.py | 10 +++++----- app/domains/{tokens => token}/deployer.py | 0 app/domains/tokens/__init__.py | 19 ------------------- app/token_deployer.py | 12 ++++++------ app/token_scanner.py | 2 +- 9 files changed, 14 insertions(+), 33 deletions(-) rename app/domains/{scanner => scanners/core}/__init__.py (90%) rename app/domains/{scanner => scanners/core}/market_data.py (98%) rename app/domains/{scanner => scanners/core}/models.py (100%) rename app/domains/{scanner => scanners/core}/modules.py (100%) rename app/domains/{scanner => scanners/core}/service.py (97%) rename app/domains/{tokens => token}/deployer.py (100%) delete mode 100644 app/domains/tokens/__init__.py diff --git a/app/domains/scanner/__init__.py b/app/domains/scanners/core/__init__.py similarity index 90% rename from app/domains/scanner/__init__.py rename to app/domains/scanners/core/__init__.py index 64b7952..adb4b64 100644 --- a/app/domains/scanner/__init__.py +++ b/app/domains/scanners/core/__init__.py @@ -15,6 +15,6 @@ Architecture: - app/token_scanner.py Backward compatibility shim """ -from app.domains.scanner.service import ScanResult, quick_scan_text, scan_token +from app.domains.scanners.core.service import ScanResult, quick_scan_text, scan_token __all__ = ["ScanResult", "quick_scan_text", "scan_token"] diff --git a/app/domains/scanner/market_data.py b/app/domains/scanners/core/market_data.py similarity index 98% rename from app/domains/scanner/market_data.py rename to app/domains/scanners/core/market_data.py index 4fd7923..8b6bf4c 100644 --- a/app/domains/scanner/market_data.py +++ b/app/domains/scanners/core/market_data.py @@ -4,7 +4,7 @@ from typing import Any import httpx -from app.domains.scanner.models import SOLANA_RPC_ENDPOINTS +from app.domains.scanners.core.models import SOLANA_RPC_ENDPOINTS logger = __import__("app.core.logging", fromlist=["get_logger"]).get_logger(__name__) diff --git a/app/domains/scanner/models.py b/app/domains/scanners/core/models.py similarity index 100% rename from app/domains/scanner/models.py rename to app/domains/scanners/core/models.py diff --git a/app/domains/scanner/modules.py b/app/domains/scanners/core/modules.py similarity index 100% rename from app/domains/scanner/modules.py rename to app/domains/scanners/core/modules.py diff --git a/app/domains/scanner/service.py b/app/domains/scanners/core/service.py similarity index 97% rename from app/domains/scanner/service.py rename to app/domains/scanners/core/service.py index f149461..47396a4 100644 --- a/app/domains/scanner/service.py +++ b/app/domains/scanners/core/service.py @@ -4,7 +4,7 @@ import asyncio from typing import Any from app.core.logging import get_logger -from app.domains.scanner.modules import ( +from app.domains.scanners.core.modules import ( _get_deployer_info, _get_holder_data, ) @@ -12,9 +12,9 @@ from app.domains.scanner.modules import ( logger = get_logger(__name__) # Re-export ScanResult for backward compatibility -from app.domains.scanner.market_data import fetch_market_data # noqa: E402 -from app.domains.scanner.models import ScanResult # noqa: E402 -from app.domains.scanner.modules import ( # noqa: E402 +from app.domains.scanners.core.market_data import fetch_market_data # noqa: E402 +from app.domains.scanners.core.models import ScanResult # noqa: E402 +from app.domains.scanners.core.modules import ( # noqa: E402 _check_blockscout, _check_defi_scanner, _check_honeypot_is, @@ -297,4 +297,4 @@ async def quick_scan_text(token_address: str, chain: str = "solana") -> str: # Backward compatibility: re-export scan_token -from app.domains.scanner.service import scan_token # noqa: E402, F811 +from app.domains.scanners.core.service import scan_token # noqa: E402, F811 diff --git a/app/domains/tokens/deployer.py b/app/domains/token/deployer.py similarity index 100% rename from app/domains/tokens/deployer.py rename to app/domains/token/deployer.py diff --git a/app/domains/tokens/__init__.py b/app/domains/tokens/__init__.py deleted file mode 100644 index 3d1089f..0000000 --- a/app/domains/tokens/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -"""Tokens subsystem. - -Phase 3B of AUDIT-2026-Q3.md. - -Re-exports the canonical public API of the token deployer. Implementation -lives in app.tokens.deployer (moved verbatim from app.token_deployer on -2026-07-07). -""" -from app.domains.tokens.deployer import ( # noqa: F401 - ChainDeployer, - DeployParams, - DeploymentStorage, - EVMDeployer, - SolanaDeployer, - TokenDeployment, - TokenDeployerFactory, - TronDeployer, - get_storage, -) diff --git a/app/token_deployer.py b/app/token_deployer.py index 75df8ff..781509f 100644 --- a/app/token_deployer.py +++ b/app/token_deployer.py @@ -1,19 +1,19 @@ -"""token_deployer.py - DEPRECATED shim. Use app.domains.tokens.deployer. +"""token_deployer.py - DEPRECATED shim. Use app.domains.token.deployer. -Phase 4 of AUDIT-2026-Q3.md moved this to app/domains/tokens/deployer/. +Phase 4 of AUDIT-2026-Q3.md moved this to app/domains/token/deployer/. This shim re-exports the public surface for legacy callers. """ -from app.domains.tokens.deployer import * # noqa: F401,F403 -from app.domains.tokens.deployer import ( # noqa: F401 +from app.domains.token.deployer import * # noqa: F403 +from app.domains.token.deployer import ( # noqa: F401 ChainDeployer, - DeployParams, DeploymentStorage, + DeployParams, EVMDeployer, SolanaDeployer, TokenDeployerFactory, TokenDeployment, TronDeployer, + _storage, get_storage, logger, - _storage, ) diff --git a/app/token_scanner.py b/app/token_scanner.py index d0644b4..3407b4d 100644 --- a/app/token_scanner.py +++ b/app/token_scanner.py @@ -6,6 +6,6 @@ better organization (per architecture standard: NO file > 500 lines). This file re-exports the main API from the new modules. """ -from app.domains.scanner import ScanResult, quick_scan_text, scan_token +from app.domains.scanners.core import ScanResult, quick_scan_text, scan_token __all__ = ["ScanResult", "quick_scan_text", "scan_token"]