from blockchain_analyzer import BlockchainAnalyzer from report_generator import BlockchainReportGenerator import argparse import logging import os def main(): parser = argparse.ArgumentParser(description='Analyze blockchain contract for suspicious activity') parser.add_argument('contract_address', help='The contract address to analyze') parser.add_argument('--verbose', '-v', action='store_true', help='Enable verbose logging') args = parser.parse_args() # Setup logging log_level = logging.DEBUG if args.verbose else logging.INFO logging.basicConfig( level=log_level, format='%(asctime)s - %(levelname)s - %(message)s' ) try: analyzer = BlockchainAnalyzer() analysis = analyzer.analyze_contract(args.contract_address) if analysis: report_generator = BlockchainReportGenerator() report_path = report_generator.generate_report(analysis) print(f"\nAnalysis complete!") print(f"Report generated at: {report_path}") print(f"Raw data and analysis files in: {os.path.join(os.getcwd(), 'data')}") else: logging.error(f"Failed to analyze contract {args.contract_address}") except Exception as e: logging.error(f"Error during analysis: {str(e)}") raise if __name__ == "__main__": main()