Files
mev-beta/scripts/mev-tools.sh
Krypto Kajun 850223a953 fix(multicall): resolve critical multicall parsing corruption issues
- Added comprehensive bounds checking to prevent buffer overruns in multicall parsing
- Implemented graduated validation system (Strict/Moderate/Permissive) to reduce false positives
- Added LRU caching system for address validation with 10-minute TTL
- Enhanced ABI decoder with missing Universal Router and Arbitrum-specific DEX signatures
- Fixed duplicate function declarations and import conflicts across multiple files
- Added error recovery mechanisms with multiple fallback strategies
- Updated tests to handle new validation behavior for suspicious addresses
- Fixed parser test expectations for improved validation system
- Applied gofmt formatting fixes to ensure code style compliance
- Fixed mutex copying issues in monitoring package by introducing MetricsSnapshot
- Resolved critical security vulnerabilities in heuristic address extraction
- Progress: Updated TODO audit from 10% to 35% complete

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 00:12:55 -05:00

139 lines
4.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Global MEV Tools Manager
# This script provides tools to manage development environments across multiple projects
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
GLOBAL_CONFIG_DIR="$HOME/.config/mev-tools"
# Create global config directory
mkdir -p "$GLOBAL_CONFIG_DIR"
# Function to display usage
usage() {
echo "Usage: $0 [COMMAND]"
echo "Global tools for MEV development"
echo ""
echo "Commands:"
echo " install - Install global tools to PATH"
echo " setup-project - Setup a new project with standardized structure"
echo " update-tools - Update all global tools"
echo " check-env - Check if development environment is properly configured"
echo " help - Show this help"
echo ""
echo "Examples:"
echo " $0 install # Install tools to local bin"
echo " $0 setup-project my-project # Create new project"
}
# Function to install global tools
install_tools() {
echo "Installing global tools..."
# Create local bin directory
mkdir -p "$HOME/bin"
# Copy tools to bin (this script and others)
cp "$SCRIPT_DIR/../../scripts/test-runner.sh" "$HOME/bin/test-runner" 2>/dev/null || echo "test-runner not found in expected location"
cp "$SCRIPT_DIR/../../scripts/build.sh" "$HOME/bin/build-tool" 2>/dev/null || echo "build-tool not found in expected location"
cp "$SCRIPT_DIR/../../scripts/setup-dev.sh" "$HOME/bin/dev-setup" 2>/dev/null || echo "dev-setup not found in expected location"
cp "$SCRIPT_DIR/../../scripts/performance-profile.sh" "$HOME/bin/perf-profile" 2>/dev/null || echo "perf-profile not found in expected location"
# Make them executable
chmod +x "$HOME/bin/test-runner" "$HOME/bin/build-tool" "$HOME/bin/dev-setup" "$HOME/bin/perf-profile" 2>/dev/null || true
# Add to PATH if not already there
if [[ ":$PATH:" != *":$HOME/bin:"* ]]; then
echo "Adding $HOME/bin to PATH..."
echo 'export PATH="$HOME/bin:$PATH"' >> "$HOME/.bashrc"
echo "Please run 'source ~/.bashrc' or restart your shell to update PATH"
fi
echo "Tools installed successfully!"
echo "Available tools:"
echo " test-runner - Universal test runner"
echo " build-tool - Universal build tool"
echo " dev-setup - Development environment setup"
echo " perf-profile - Performance profiling tool"
}
# Function to setup a new project
setup_project() {
PROJECT_NAME="${1:-}"
if [ -z "$PROJECT_NAME" ]; then
echo "Usage: $0 setup-project <project-name>"
exit 1
fi
echo "Creating new project: $PROJECT_NAME"
"$SCRIPT_DIR/../../scripts/create-project-template.sh" "$PROJECT_NAME"
}
# Function to update tools
update_tools() {
echo "Updating global tools..."
echo "Note: In a real implementation, this would update tools from a central repository."
echo "For now, please manually update the scripts."
}
# Function to check environment
check_env() {
echo "Checking development environment..."
# Check Go
if command -v go &> /dev/null; then
echo "✓ Go $(go version | cut -d' ' -f3) installed"
else
echo "✗ Go not installed"
exit 1
fi
# Check Git
if command -v git &> /dev/null; then
echo "✓ Git $(git --version | cut -d' ' -f3) installed"
else
echo "✗ Git not installed"
exit 1
fi
# Check for global tools
if command -v test-runner &> /dev/null; then
echo "✓ test-runner available in PATH"
else
echo "⚠ test-runner not available in PATH"
fi
if command -v build-tool &> /dev/null; then
echo "✓ build-tool available in PATH"
else
echo "⚠ build-tool not available in PATH"
fi
echo "Environment check completed."
}
# Main command router
case "${1:-}" in
"install")
install_tools
;;
"setup-project")
setup_project "$2"
;;
"update-tools")
update_tools
;;
"check-env")
check_env
;;
"help"|"-h"|"--help")
usage
;;
*)
usage
if [ $# -gt 0 ]; then
exit 1
fi
;;
esac