402 lines
12 KiB
Bash
Executable File
402 lines
12 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script Organization and Cleanup
|
|
# Based on SCRIPT_ANALYSIS_REPORT.md recommendations
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${BLUE}MEV Bot Script Organization${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo ""
|
|
|
|
# Check if we're in the right directory
|
|
if [ ! -f "go.mod" ]; then
|
|
echo -e "${RED}❌ Error: Must be run from project root${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Create status before changes
|
|
echo -e "${BLUE}📊 Capturing git status before changes...${NC}"
|
|
git status --short > /tmp/mev-bot-git-status-before.txt
|
|
echo ""
|
|
|
|
# Create deprecated directory
|
|
echo -e "${BLUE}📁 Creating directories...${NC}"
|
|
mkdir -p scripts/deprecated
|
|
mkdir -p scripts/demos
|
|
echo -e "${GREEN}✅ Created scripts/deprecated/ and scripts/demos/${NC}"
|
|
echo ""
|
|
|
|
# Move redundant log management scripts to deprecated
|
|
echo -e "${BLUE}🗂️ Moving redundant log management scripts...${NC}"
|
|
|
|
DEPRECATED_SCRIPTS=(
|
|
"scripts/archive-logs.sh"
|
|
"scripts/quick-archive.sh"
|
|
"scripts/view-latest-archive.sh"
|
|
"scripts/rotate-logs.sh"
|
|
"scripts/setup-log-rotation.sh"
|
|
)
|
|
|
|
for script in "${DEPRECATED_SCRIPTS[@]}"; do
|
|
if [ -f "$script" ]; then
|
|
echo -e " Moving: $script → scripts/deprecated/"
|
|
git mv "$script" "scripts/deprecated/$(basename "$script")"
|
|
else
|
|
echo -e "${YELLOW} Skipped: $script (not found)${NC}"
|
|
fi
|
|
done
|
|
echo -e "${GREEN}✅ Moved ${#DEPRECATED_SCRIPTS[@]} scripts to deprecated/${NC}"
|
|
echo ""
|
|
|
|
# Move demo scripts
|
|
echo -e "${BLUE}🎬 Moving demo scripts...${NC}"
|
|
|
|
DEMO_SCRIPTS=(
|
|
"scripts/demo-production-logs.sh"
|
|
)
|
|
|
|
for script in "${DEMO_SCRIPTS[@]}"; do
|
|
if [ -f "$script" ]; then
|
|
echo -e " Moving: $script → scripts/demos/"
|
|
git mv "$script" "scripts/demos/$(basename "$script")"
|
|
else
|
|
echo -e "${YELLOW} Skipped: $script (not found)${NC}"
|
|
fi
|
|
done
|
|
echo -e "${GREEN}✅ Moved ${#DEMO_SCRIPTS[@]} scripts to demos/${NC}"
|
|
echo ""
|
|
|
|
# Create README for deprecated scripts
|
|
echo -e "${BLUE}📝 Creating README for deprecated scripts...${NC}"
|
|
cat > scripts/deprecated/README.md << 'EOF'
|
|
# Deprecated Scripts
|
|
|
|
These scripts have been moved here because their functionality is now handled by more comprehensive tools.
|
|
|
|
## Log Management Scripts (Superseded by log-manager.sh)
|
|
|
|
All of these scripts have been replaced by `scripts/log-manager.sh`, which provides:
|
|
|
|
- Real-time analysis with health scoring
|
|
- Performance monitoring with MEV-specific metrics
|
|
- Corruption detection and integrity validation
|
|
- Multi-channel alerting (email, Slack)
|
|
- Background monitoring daemon
|
|
- Operations dashboard generation
|
|
- Intelligent rotation (size and time-based)
|
|
- Advanced archiving with metadata
|
|
|
|
### Deprecated Scripts
|
|
|
|
1. **archive-logs.sh** → Use `./scripts/log-manager.sh archive`
|
|
2. **quick-archive.sh** → Use `./scripts/log-manager.sh full`
|
|
3. **view-latest-archive.sh** → Use `./scripts/log-manager.sh status`
|
|
4. **rotate-logs.sh** → Use `./scripts/log-manager.sh rotate`
|
|
5. **setup-log-rotation.sh** → Use `./scripts/log-manager.sh init`
|
|
|
|
## Migration Guide
|
|
|
|
**Instead of:**
|
|
```bash
|
|
./scripts/archive-logs.sh
|
|
```
|
|
|
|
**Use:**
|
|
```bash
|
|
./scripts/log-manager.sh archive
|
|
```
|
|
|
|
**Instead of:**
|
|
```bash
|
|
./scripts/quick-archive.sh --clear-logs
|
|
```
|
|
|
|
**Use:**
|
|
```bash
|
|
./scripts/log-manager.sh full
|
|
```
|
|
|
|
## Why These Were Deprecated
|
|
|
|
The individual log management scripts were created before the comprehensive `log-manager.sh` system was implemented. The new system provides:
|
|
|
|
- **Unified Interface**: Single command with multiple subcommands
|
|
- **Production Grade**: Health monitoring, alerting, and metrics
|
|
- **Better Maintenance**: One script to maintain instead of five
|
|
- **More Features**: Dashboard generation, daemon mode, performance tracking
|
|
- **Safer Operations**: Validation and corruption detection
|
|
|
|
## Can I Still Use These?
|
|
|
|
Yes, these scripts still work and are kept for backwards compatibility. However, it's recommended to migrate to `log-manager.sh` for better functionality and ongoing support.
|
|
|
|
## When Will These Be Removed?
|
|
|
|
These scripts will be kept for at least one major version release to allow for migration. They may be removed in a future version once all users have migrated to `log-manager.sh`.
|
|
|
|
---
|
|
|
|
**See:** `docs/SCRIPT_ANALYSIS_REPORT.md` for the full analysis
|
|
EOF
|
|
|
|
echo -e "${GREEN}✅ Created README for deprecated scripts${NC}"
|
|
echo ""
|
|
|
|
# Create README for demos
|
|
echo -e "${BLUE}📝 Creating README for demo scripts...${NC}"
|
|
cat > scripts/demos/README.md << 'EOF'
|
|
# Demo & Example Scripts
|
|
|
|
These scripts are for demonstration and testing purposes only. They should not be used in production environments.
|
|
|
|
## Available Demos
|
|
|
|
### demo-production-logs.sh
|
|
|
|
Demonstrates the production log management system capabilities.
|
|
|
|
**Purpose:** Show how the log-manager.sh system works
|
|
**Usage:**
|
|
```bash
|
|
./scripts/demos/demo-production-logs.sh
|
|
```
|
|
|
|
**What it does:**
|
|
- Generates sample log entries
|
|
- Runs log analysis
|
|
- Shows health checks
|
|
- Demonstrates alerting
|
|
- Creates performance reports
|
|
- Generates operations dashboard
|
|
|
|
**Note:** This is a demonstration script. For production log management, use `./scripts/log-manager.sh`
|
|
|
|
---
|
|
|
|
**See:** `docs/SCRIPT_ANALYSIS_REPORT.md` for more information
|
|
EOF
|
|
|
|
echo -e "${GREEN}✅ Created README for demo scripts${NC}"
|
|
echo ""
|
|
|
|
# Create index README for scripts directory
|
|
echo -e "${BLUE}📝 Creating scripts directory index...${NC}"
|
|
cat > scripts/README.md << 'EOF'
|
|
# MEV Bot Scripts Directory
|
|
|
|
This directory contains all operational, utility, and development scripts for the MEV Bot project.
|
|
|
|
## Core Scripts
|
|
|
|
### Build & Runtime
|
|
- **build.sh** - Universal Go build script with configurable options
|
|
- **run.sh** - Main MEV bot execution script with production environment loading
|
|
- **test.sh** - Basic test runner
|
|
|
|
### Log Management
|
|
- **log-manager.sh** ⭐ Production-grade log management system
|
|
- Real-time analysis and health monitoring
|
|
- Performance tracking with MEV metrics
|
|
- Corruption detection and alerting
|
|
- Background daemon and dashboard generation
|
|
- See: `./scripts/log-manager.sh --help`
|
|
|
|
## CI/CD & Quality Assurance
|
|
|
|
### Primary CI Pipeline
|
|
- **../harness/local-ci-pipeline.sh** - Comprehensive CI/CD pipeline
|
|
- **ci-precommit.sh** - Fast pre-commit validation (10-30s)
|
|
- **ci-quick.sh** - Quick CI pipeline (30-60s)
|
|
- **ci-dev.sh** - Development CI pipeline (1-2min)
|
|
- **ci-full.sh** - Full CI pipeline (3-5min)
|
|
- **ci-container.sh** - Containerized CI execution
|
|
- **ci-watch.sh** - Watch mode for continuous validation
|
|
|
|
### Testing
|
|
- **test-runner.sh** - Configurable test execution (levels: basic, unit, integration, comprehensive, audit)
|
|
- **run_audit_suite.sh** - Mathematical correctness audit
|
|
- **security-validation.sh** - Comprehensive security validation
|
|
- **quick-test.sh** - Quick fix validation (30s)
|
|
- **run-stress-tests.sh** - Stress testing
|
|
- **run-fork-tests.sh** - Blockchain fork testing
|
|
|
|
## Deployment & Production
|
|
|
|
### Contract Deployment
|
|
- **deploy-contracts.sh** - Deploy smart contracts to Arbitrum
|
|
- **verify-contracts.sh** - Verify contracts on Arbiscan
|
|
- **deploy-staging.sh** - Staging environment deployment
|
|
- **deploy-production.sh** - Full production deployment with Docker Compose
|
|
|
|
### Production Operations
|
|
- **production-start.sh** - Start production MEV bot
|
|
- **production-validation.sh** - Pre-deployment validation checks
|
|
- **pre-run-validation.sh** - Environment validation before startup
|
|
|
|
## Wallet Management
|
|
|
|
- **setup-keystore.sh** - Encrypt and securely store private keys (AES-256-CBC)
|
|
- **fund-bot-wallet.sh** - Fund MEV bot wallet using Foundry cast
|
|
- **check-wallet-balance.sh** - Check wallet balance on Arbitrum One
|
|
|
|
## Monitoring & Analysis
|
|
|
|
- **watch-live.sh** - Real-time MEV bot activity monitor
|
|
- **analyze.sh** - Comprehensive system analysis (tests, benchmarks, coverage, static analysis)
|
|
- **performance-profile.sh** - Performance profiling with pprof
|
|
|
|
## Development Utilities
|
|
|
|
### Environment Setup
|
|
- **setup-env.sh** - Environment variable setup
|
|
- **setup-dev.sh** - Development environment setup
|
|
- **fix-rpc-config.sh** - Fix RPC configuration issues
|
|
|
|
### Git Workflow
|
|
- **git-hooks-setup.sh** - Install git hooks
|
|
- **git-enhanced.sh** - Enhanced git workflow commands
|
|
- **git-local-server.sh** - Local git server simulation
|
|
|
|
### Data & Code Generation
|
|
- **fetch_arbiscan_tx.sh** - Fetch transaction data from Arbiscan
|
|
- **extract_multicall_fixture.sh** - Extract multicall fixtures for testing
|
|
- **refresh-mev-datasets.sh** - Update MEV research datasets
|
|
- **generate-bindings.sh** - Generate Go bindings for smart contracts
|
|
|
|
### Other Utilities
|
|
- **kill-bot.sh** - Stop running MEV bot processes
|
|
- **dependency-scan.sh** - Scan for dependency vulnerabilities
|
|
- **verify-organization.sh** - Verify project organization
|
|
- **24h-validation-test.sh** - 24-hour validation test
|
|
|
|
## Special Directories
|
|
|
|
### deprecated/
|
|
Contains scripts that have been superseded by better alternatives. See `deprecated/README.md` for migration guide.
|
|
|
|
**Replaced by log-manager.sh:**
|
|
- archive-logs.sh
|
|
- quick-archive.sh
|
|
- view-latest-archive.sh
|
|
- rotate-logs.sh
|
|
- setup-log-rotation.sh
|
|
|
|
### demos/
|
|
Contains demonstration and example scripts for testing purposes only. Not for production use.
|
|
|
|
## Quick Reference
|
|
|
|
### Development Workflow
|
|
```bash
|
|
# Setup
|
|
./scripts/setup-dev.sh
|
|
|
|
# Quick validation
|
|
./scripts/ci-precommit.sh
|
|
|
|
# Run tests
|
|
./scripts/test-runner.sh --level comprehensive --coverage
|
|
|
|
# Security check
|
|
./scripts/security-validation.sh
|
|
|
|
# Math audit
|
|
./scripts/run_audit_suite.sh
|
|
```
|
|
|
|
### Production Deployment
|
|
```bash
|
|
# Validate environment
|
|
./scripts/production-validation.sh
|
|
|
|
# Deploy contracts
|
|
./scripts/deploy-contracts.sh
|
|
|
|
# Setup wallet
|
|
./scripts/setup-keystore.sh
|
|
./scripts/check-wallet-balance.sh
|
|
|
|
# Deploy and start
|
|
./scripts/deploy-production.sh
|
|
./scripts/run.sh
|
|
```
|
|
|
|
### Monitoring
|
|
```bash
|
|
# Live activity monitor
|
|
./scripts/watch-live.sh
|
|
|
|
# Log management
|
|
./scripts/log-manager.sh analyze
|
|
./scripts/log-manager.sh health
|
|
./scripts/log-manager.sh dashboard
|
|
|
|
# Performance profiling
|
|
./scripts/performance-profile.sh
|
|
```
|
|
|
|
## Documentation
|
|
|
|
For detailed script analysis and recommendations, see:
|
|
- **docs/SCRIPT_ANALYSIS_REPORT.md** - Comprehensive script analysis
|
|
- **Makefile** - Build automation targets and workflows
|
|
|
|
## Contributing
|
|
|
|
When adding new scripts:
|
|
1. Make scripts executable: `chmod +x script-name.sh`
|
|
2. Add shebang: `#!/bin/bash` or `#!/usr/bin/env bash`
|
|
3. Use set -e for error handling
|
|
4. Add descriptive comments
|
|
5. Update this README
|
|
6. Add help text (use --help flag)
|
|
|
|
---
|
|
|
|
**Total Scripts:** 80+
|
|
**Active Scripts:** 50+
|
|
**Deprecated Scripts:** 5
|
|
**Demo Scripts:** 1
|
|
EOF
|
|
|
|
echo -e "${GREEN}✅ Created scripts directory index${NC}"
|
|
echo ""
|
|
|
|
# Capture status after changes
|
|
echo -e "${BLUE}📊 Capturing git status after changes...${NC}"
|
|
git status --short > /tmp/mev-bot-git-status-after.txt
|
|
echo ""
|
|
|
|
# Show summary
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${GREEN}✅ Script Organization Complete!${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}📝 Summary:${NC}"
|
|
echo -e " • Created: scripts/deprecated/"
|
|
echo -e " • Created: scripts/demos/"
|
|
echo -e " • Moved: ${#DEPRECATED_SCRIPTS[@]} scripts to deprecated/"
|
|
echo -e " • Moved: ${#DEMO_SCRIPTS[@]} scripts to demos/"
|
|
echo -e " • Created: 3 README files"
|
|
echo ""
|
|
echo -e "${BLUE}📊 Git Status Changes:${NC}"
|
|
echo -e "${YELLOW}Before:${NC}"
|
|
cat /tmp/mev-bot-git-status-before.txt | head -10
|
|
echo ""
|
|
echo -e "${YELLOW}After:${NC}"
|
|
git status --short | head -20
|
|
echo ""
|
|
echo -e "${BLUE}⏭️ Next Steps:${NC}"
|
|
echo -e " 1. Review changes: ${YELLOW}git diff --cached${NC}"
|
|
echo -e " 2. Commit changes: ${YELLOW}git commit -m \"refactor: organize scripts into logical directories\"${NC}"
|
|
echo -e " 3. Read report: ${YELLOW}docs/SCRIPT_ANALYSIS_REPORT.md${NC}"
|
|
echo ""
|