CRITICAL BUG FIX: - MultiHopScanner.updateTokenGraph() was EMPTY - adding no pools! - Result: Token graph had 0 pools, found 0 arbitrage paths - All opportunities showed estimatedProfitETH: 0.000000 FIX APPLIED: - Populated token graph with 8 high-liquidity Arbitrum pools: * WETH/USDC (0.05% and 0.3% fees) * USDC/USDC.e (0.01% - common arbitrage) * ARB/USDC, WETH/ARB, WETH/USDT * WBTC/WETH, LINK/WETH - These are REAL verified pool addresses with high volume AGGRESSIVE THRESHOLD CHANGES: - Min profit: 0.0001 ETH → 0.00001 ETH (10x lower, ~$0.02) - Min ROI: 0.05% → 0.01% (5x lower) - Gas multiplier: 5x → 1.5x (3.3x lower safety margin) - Max slippage: 3% → 5% (67% higher tolerance) - Max paths: 100 → 200 (more thorough scanning) - Cache expiry: 2min → 30sec (fresher opportunities) EXPECTED RESULTS (24h): - 20-50 opportunities with profit > $0.02 (was 0) - 5-15 execution attempts (was 0) - 1-2 successful executions (was 0) - $0.02-$0.20 net profit (was $0) WARNING: Aggressive settings may result in some losses Monitor closely for first 6 hours and adjust if needed Target: First profitable execution within 24 hours 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
392 lines
9.3 KiB
Markdown
392 lines
9.3 KiB
Markdown
# CI/CD and Audit Integration Guide
|
|
|
|
**Date**: October 28, 2025
|
|
**Status**: Production Ready
|
|
|
|
## Overview
|
|
|
|
This document describes the integrated CI/CD and auditing system for the MEV Bot project, combining:
|
|
|
|
- **Go Application CI/CD** (`harness/local-ci-pipeline.sh`) - Tests, linting, security scanning for Go code
|
|
- **Solidity Contract Auditing** (`harness/solidity-audit-pipeline.sh`) - Smart contract security analysis
|
|
- **Comprehensive Documentation** (`docs/solidity_audit_bundle.md`) - 100-point audit specifications
|
|
|
|
## Quick Start
|
|
|
|
### Run Complete CI/CD Pipeline
|
|
|
|
```bash
|
|
# Full pipeline (Go + Solidity)
|
|
./harness/local-ci-pipeline.sh
|
|
|
|
# Go tests only (fast)
|
|
HARNESS_SKIP_DOCKER=true HARNESS_SKIP_MATH_AUDIT=true ./harness/local-ci-pipeline.sh
|
|
|
|
# Solidity audit only
|
|
./harness/solidity-audit-pipeline.sh
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
```bash
|
|
# Go CI/CD Pipeline
|
|
export HARNESS_SKIP_DOCKER=true # Skip Docker build
|
|
export HARNESS_SKIP_MATH_AUDIT=true # Skip math precision tests
|
|
export HARNESS_SKIP_SECURITY=true # Skip security scans
|
|
export HARNESS_PARALLEL_JOBS=4 # Parallel test jobs
|
|
|
|
# Solidity Audit Pipeline
|
|
export HARNESS_SKIP_FOUNDRY=true # Skip Foundry tests
|
|
export HARNESS_SKIP_SLITHER=true # Skip Slither analysis
|
|
export HARNESS_SKIP_MYTHRIL=true # Skip Mythril symbolic execution
|
|
export HARNESS_VERBOSE=true # Verbose output
|
|
```
|
|
|
|
## Architecture
|
|
|
|
### 1. Go Application CI/CD (`harness/local-ci-pipeline.sh`)
|
|
|
|
**Purpose**: Continuous integration for Go codebase
|
|
|
|
**Steps**:
|
|
1. **Requirements Check** - Verify Go, git, container runtime
|
|
2. **Go Build** - Build binary with CGO support
|
|
3. **Unit Tests** - Run all Go tests with race detector
|
|
4. **Integration Tests** - Test contract interactions
|
|
5. **Linting** - golangci-lint, gofmt checks
|
|
6. **Security Scanning** - gosec, govulncheck
|
|
7. **Math Auditing** - Precision verification for arbitrage calculations
|
|
8. **Docker Build** - Container image creation
|
|
9. **Report Generation** - Consolidated pipeline results
|
|
|
|
**Usage**:
|
|
```bash
|
|
# Run complete pipeline
|
|
./harness/local-ci-pipeline.sh
|
|
|
|
# Quick CI (skip slow steps)
|
|
HARNESS_SKIP_DOCKER=true \\
|
|
HARNESS_SKIP_MATH_AUDIT=true \\
|
|
HARNESS_SKIP_SECURITY=true \\
|
|
./harness/local-ci-pipeline.sh
|
|
```
|
|
|
|
**Output**:
|
|
- Logs: `harness/logs/*.log`
|
|
- Reports: `harness/reports/pipeline-report.md`
|
|
- Test Coverage: `harness/reports/coverage/coverage.html`
|
|
|
|
### 2. Solidity Contract Auditing (`harness/solidity-audit-pipeline.sh`)
|
|
|
|
**Purpose**: Security analysis of smart contracts
|
|
|
|
**Tools Used**:
|
|
- **Foundry (forge)** - Gas analysis and testing
|
|
- **Slither** - Static analysis (Trail of Bits)
|
|
- **Mythril** - Symbolic execution security scanner
|
|
|
|
**Contracts Audited**:
|
|
- `contracts/ProductionArbitrageExecutor.sol` - Main arbitrage executor
|
|
- `contracts/balancer/FlashLoanReceiver.sol` - Flash loan integration
|
|
- `tests/contracts/ArbitrageTest.sol` - Test contracts
|
|
|
|
**Usage**:
|
|
```bash
|
|
# Run complete audit
|
|
./harness/solidity-audit-pipeline.sh
|
|
|
|
# Run specific tools
|
|
HARNESS_SKIP_SLITHER=true \\
|
|
HARNESS_SKIP_MYTHRIL=true \\
|
|
./harness/solidity-audit-pipeline.sh # Foundry only
|
|
```
|
|
|
|
**Output**:
|
|
- Logs: `harness/logs/solidity/*.log`
|
|
- Reports: `harness/reports/solidity/`
|
|
- `audit-summary.md` - Consolidated audit report
|
|
- `forge-gas.json` - Gas analysis
|
|
- `slither.json` - Static analysis results
|
|
- `mythril-*.json` - Symbolic execution results
|
|
|
|
### 3. 100-Point Audit System (`docs/solidity_audit_bundle.md`)
|
|
|
|
**Purpose**: Comprehensive scoring rubric for production readiness
|
|
|
|
**Categories** (100 points total):
|
|
- A. Architecture & Design (10 pts)
|
|
- B. Security Vulnerability Analysis (25 pts)
|
|
- C. Gas & Performance Optimization (20 pts)
|
|
- D. Testing & Coverage (15 pts)
|
|
- E. Tool-Based Analysis (20 pts)
|
|
- F. Documentation & Clarity (5 pts)
|
|
- G. CI/CD & Automation (5 pts)
|
|
- H. Foundry + Hardhat Parity (5 pts)
|
|
- I. Code Quality & Readability (5 pts)
|
|
- J. Protocol-Specific Checks (10 pts)
|
|
- K. Deployment & Production Readiness (10 pts)
|
|
|
|
**Scoring**:
|
|
```bash
|
|
# Generate audit score
|
|
python3 scripts/score_audit.py \\
|
|
--input harness/reports/solidity/merged.json \\
|
|
--out audit-score.md \\
|
|
--json audit-score.json
|
|
```
|
|
|
|
## Integration with GitHub Actions
|
|
|
|
The CI/CD system integrates with GitHub Actions via `.github/workflows/ci.yml`:
|
|
|
|
```yaml
|
|
name: CI Pipeline
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
go-ci:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: '1.25'
|
|
- name: Run Go CI Pipeline
|
|
run: |
|
|
HARNESS_SKIP_DOCKER=true \\
|
|
HARNESS_SKIP_MATH_AUDIT=true \\
|
|
./harness/local-ci-pipeline.sh
|
|
|
|
solidity-audit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Foundry
|
|
uses: foundry-rs/foundry-toolchain@v1
|
|
- name: Run Solidity Audit
|
|
run: ./harness/solidity-audit-pipeline.sh
|
|
```
|
|
|
|
## Docker-Based Execution
|
|
|
|
Both pipelines support Docker/Podman for reproducible builds:
|
|
|
|
```bash
|
|
# Using Docker
|
|
export HARNESS_RUNTIME=docker
|
|
./harness/local-ci-pipeline.sh
|
|
|
|
# Using Podman
|
|
export HARNESS_RUNTIME=podman
|
|
./harness/solidity-audit-pipeline.sh
|
|
```
|
|
|
|
## Local Development Workflow
|
|
|
|
### Pre-Commit Checks
|
|
|
|
```bash
|
|
# Fast pre-commit (< 30 seconds)
|
|
./scripts/ci-quick.sh
|
|
|
|
# Full pre-commit with security
|
|
./scripts/ci-precommit.sh
|
|
```
|
|
|
|
### Continuous Development
|
|
|
|
```bash
|
|
# Watch mode for continuous testing
|
|
./scripts/ci-watch.sh
|
|
|
|
# Development server with auto-rebuild
|
|
./scripts/ci-dev.sh
|
|
```
|
|
|
|
### Pre-Production Checklist
|
|
|
|
```bash
|
|
# 1. Run complete Go CI/CD
|
|
./harness/local-ci-pipeline.sh
|
|
|
|
# 2. Run Solidity audit
|
|
./harness/solidity-audit-pipeline.sh
|
|
|
|
# 3. Check math precision
|
|
./bin/math-audit validate
|
|
./bin/math-audit audit
|
|
|
|
# 4. Review audit reports
|
|
cat harness/reports/pipeline-report.md
|
|
cat harness/reports/solidity/audit-summary.md
|
|
|
|
# 5. Generate deployment artifacts
|
|
make build-production
|
|
docker build -t mev-bot:latest .
|
|
```
|
|
|
|
## Monitoring and Reporting
|
|
|
|
### Log Analysis
|
|
|
|
```bash
|
|
# View pipeline logs
|
|
tail -f harness/logs/*.log
|
|
|
|
# Check for errors
|
|
grep -r "ERROR\\|FAIL" harness/logs/
|
|
|
|
# Solidity audit logs
|
|
tail -f harness/logs/solidity/*.log
|
|
```
|
|
|
|
### Report Generation
|
|
|
|
```bash
|
|
# Generate consolidated report
|
|
cat harness/reports/pipeline-report.md
|
|
|
|
# View test coverage
|
|
open harness/reports/coverage/coverage.html
|
|
|
|
# Solidity audit summary
|
|
cat harness/reports/solidity/audit-summary.md
|
|
```
|
|
|
|
### Metrics Tracking
|
|
|
|
```bash
|
|
# Test pass rate
|
|
grep "PASS\\|FAIL" harness/logs/go-test.log | awk '{print $1}' | sort | uniq -c
|
|
|
|
# Security issues found
|
|
jq '.results | length' harness/reports/solidity/slither.json
|
|
|
|
# Gas consumption
|
|
jq '.tests | map(.gas) | add' harness/reports/solidity/forge-gas.json
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**1. Docker/Podman not found**
|
|
```bash
|
|
# Install Docker
|
|
curl -fsSL https://get.docker.com | sh
|
|
|
|
# Or use Podman
|
|
sudo apt install podman
|
|
```
|
|
|
|
**2. Go version mismatch**
|
|
```bash
|
|
# Check version
|
|
go version
|
|
|
|
# Upgrade to 1.25+
|
|
sudo rm -rf /usr/local/go
|
|
wget https://go.dev/dl/go1.25.0.linux-amd64.tar.gz
|
|
sudo tar -C /usr/local -xzf go1.25.0.linux-amd64.tar.gz
|
|
```
|
|
|
|
**3. Foundry not installed**
|
|
```bash
|
|
# Install Foundry
|
|
curl -L https://foundry.paradigm.xyz | bash
|
|
foundryup
|
|
```
|
|
|
|
**4. Slither/Mythril failures**
|
|
```bash
|
|
# Use Docker images instead of local installation
|
|
export HARNESS_RUNTIME=docker
|
|
./harness/solidity-audit-pipeline.sh
|
|
```
|
|
|
|
### Performance Optimization
|
|
|
|
**Parallel Execution**
|
|
```bash
|
|
# Increase parallel test jobs
|
|
export HARNESS_PARALLEL_JOBS=8
|
|
./harness/local-ci-pipeline.sh
|
|
```
|
|
|
|
**Caching**
|
|
```bash
|
|
# Use Go build cache
|
|
export GOCACHE=/tmp/go-cache
|
|
export GOMODCACHE=/tmp/go-mod-cache
|
|
```
|
|
|
|
**Skip Slow Steps**
|
|
```bash
|
|
# Development mode (fast)
|
|
HARNESS_SKIP_DOCKER=true \\
|
|
HARNESS_SKIP_SECURITY=true \\
|
|
HARNESS_SKIP_MATH_AUDIT=true \\
|
|
./harness/local-ci-pipeline.sh
|
|
```
|
|
|
|
## Production Deployment
|
|
|
|
### Final Checklist
|
|
|
|
- [ ] All Go tests passing (`./harness/local-ci-pipeline.sh`)
|
|
- [ ] No critical security issues (`gosec`, `govulncheck`)
|
|
- [ ] Solidity contracts audited (`./harness/solidity-audit-pipeline.sh`)
|
|
- [ ] No high/critical Slither findings
|
|
- [ ] Math precision verified (`./bin/math-audit audit`)
|
|
- [ ] Docker image builds successfully
|
|
- [ ] Documentation updated
|
|
- [ ] Audit score ≥ 80/100
|
|
|
|
### Deployment Commands
|
|
|
|
```bash
|
|
# 1. Tag release
|
|
git tag -a v1.0.0 -m "Production release"
|
|
git push origin v1.0.0
|
|
|
|
# 2. Build production binary
|
|
make build-production
|
|
|
|
# 3. Build Docker image
|
|
docker build -t mev-bot:v1.0.0 .
|
|
docker tag mev-bot:v1.0.0 mev-bot:latest
|
|
|
|
# 4. Push to registry
|
|
docker push mev-bot:v1.0.0
|
|
docker push mev-bot:latest
|
|
|
|
# 5. Deploy to production
|
|
kubectl apply -f k8s/production/
|
|
```
|
|
|
|
## References
|
|
|
|
- [Go CI/CD Pipeline](../harness/local-ci-pipeline.sh)
|
|
- [Solidity Audit Pipeline](../harness/solidity-audit-pipeline.sh)
|
|
- [Audit Bundle Specifications](../docs/solidity_audit_bundle.md)
|
|
- [GitHub Actions Workflows](../.github/workflows/)
|
|
- [Foundry Documentation](https://book.getfoundry.sh/)
|
|
- [Slither Security Scanner](https://github.com/crytic/slither)
|
|
- [Mythril Symbolic Execution](https://github.com/ConsenSys/mythril)
|
|
|
|
## Support
|
|
|
|
For issues or questions:
|
|
- Create an issue in the repository
|
|
- Review logs in `harness/logs/`
|
|
- Check reports in `harness/reports/`
|
|
- Consult the audit bundle documentation
|
|
|
|
---
|
|
|
|
**Last Updated**: October 28, 2025
|
|
**Version**: 1.0.0
|
|
**Status**: Production Ready ✅
|