refactor: move all remaining files to orig/ directory
Completed clean root directory structure: - Root now contains only: .git, .env, docs/, orig/ - Moved all remaining files and directories to orig/: - Config files (.claude, .dockerignore, .drone.yml, etc.) - All .env variants (except active .env) - Git config (.gitconfig, .github, .gitignore, etc.) - Tool configs (.golangci.yml, .revive.toml, etc.) - Documentation (*.md files, @prompts) - Build files (Dockerfiles, Makefile, go.mod, go.sum) - Docker compose files - All source directories (scripts, tests, tools, etc.) - Runtime directories (logs, monitoring, reports) - Dependency files (node_modules, lib, cache) - Special files (--delete) - Removed empty runtime directories (bin/, data/) V2 structure is now clean: - docs/planning/ - V2 planning documents - orig/ - Complete V1 codebase preserved - .env - Active environment config (not in git) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
144
orig/scripts/fix-decimal-and-thresholds.sh
Executable file
144
orig/scripts/fix-decimal-and-thresholds.sh
Executable file
@@ -0,0 +1,144 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Fix decimal handling and profit thresholds to enable proper arbitrage detection
|
||||
set -e
|
||||
|
||||
echo "🔧 Applying critical fixes for decimal handling and profit thresholds..."
|
||||
|
||||
# 1. Fix profit calculator to use proper decimals
|
||||
echo "📐 Fixing profit calculator decimal handling..."
|
||||
cat > /tmp/profit_calc_fix.go << 'EOF'
|
||||
// Add to pkg/profitcalc/profit_calc.go after imports
|
||||
|
||||
import "github.com/fraktal/mev-beta/pkg/tokens"
|
||||
|
||||
// Update CalculateProfit to use proper decimals
|
||||
func (pc *ProfitCalculator) CalculateProfitWithDecimals(
|
||||
amountIn *big.Int,
|
||||
amountOut *big.Int,
|
||||
tokenIn common.Address,
|
||||
tokenOut common.Address,
|
||||
gasEstimate uint64,
|
||||
) (*big.Int, error) {
|
||||
// Convert to normalized values (18 decimals) for calculation
|
||||
normalizedIn := tokens.NormalizeAmount(amountIn, tokenIn, tokens.WETH)
|
||||
normalizedOut := tokens.NormalizeAmount(amountOut, tokenOut, tokens.WETH)
|
||||
|
||||
// Calculate profit
|
||||
profit := new(big.Int).Sub(normalizedOut, normalizedIn)
|
||||
|
||||
// Subtract gas costs
|
||||
gasCost := new(big.Int).Mul(pc.gasPrice, big.NewInt(int64(gasEstimate)))
|
||||
netProfit := new(big.Int).Sub(profit, gasCost)
|
||||
|
||||
return netProfit, nil
|
||||
}
|
||||
EOF
|
||||
|
||||
# 2. Update arbitrage service to count opportunities properly
|
||||
echo "📊 Fixing opportunity counting..."
|
||||
cat > /tmp/arbitrage_counting_fix.patch << 'EOF'
|
||||
--- a/pkg/arbitrage/service.go
|
||||
+++ b/pkg/arbitrage/service.go
|
||||
@@ -700,6 +700,9 @@ func (sas *ArbitrageService) detectArbitrageOpportunities(event *SimpleSwapEven
|
||||
|
||||
// Process opportunity
|
||||
sas.processOpportunity(opportunity)
|
||||
+
|
||||
+ // Increment counter
|
||||
+ atomic.AddUint64(&sas.opportunitiesDetected, 1)
|
||||
}
|
||||
|
||||
duration := time.Since(start)
|
||||
EOF
|
||||
|
||||
# 3. Lower thresholds significantly
|
||||
echo "📉 Lowering profit thresholds..."
|
||||
cat > /tmp/threshold_fix.patch << 'EOF'
|
||||
--- a/pkg/profitcalc/profit_calc.go
|
||||
+++ b/pkg/profitcalc/profit_calc.go
|
||||
@@ -59,7 +59,7 @@ func NewProfitCalculator(logger *logger.Logger) *ProfitCalculator {
|
||||
return &ProfitCalculator{
|
||||
logger: logger,
|
||||
- minProfitThreshold: big.NewInt(1000000000000000), // 0.001 ETH
|
||||
+ minProfitThreshold: big.NewInt(10000000000000), // 0.00001 ETH (~$0.02)
|
||||
maxSlippage: 0.03,
|
||||
gasPrice: big.NewInt(100000000), // 0.1 gwei
|
||||
EOF
|
||||
|
||||
# 4. Fix the ROI calculation
|
||||
echo "💰 Fixing ROI calculations..."
|
||||
cat > /tmp/roi_fix.go << 'EOF'
|
||||
// Update ROI calculation to be reasonable
|
||||
func calculateROI(profit, amountIn *big.Int) float64 {
|
||||
if amountIn.Sign() == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
// Convert to float for percentage calculation
|
||||
profitFloat := new(big.Float).SetInt(profit)
|
||||
amountFloat := new(big.Float).SetInt(amountIn)
|
||||
|
||||
// ROI = (profit / amountIn) * 100
|
||||
roi := new(big.Float).Quo(profitFloat, amountFloat)
|
||||
roi.Mul(roi, big.NewFloat(100))
|
||||
|
||||
result, _ := roi.Float64()
|
||||
|
||||
// Cap at reasonable maximum (100% ROI)
|
||||
if result > 100 {
|
||||
return 100
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
EOF
|
||||
|
||||
# 5. Apply configuration updates
|
||||
echo "⚙️ Updating configuration files..."
|
||||
cat > /home/administrator/projects/mev-beta/config/arbitrage_config.yaml << 'EOF'
|
||||
# Optimized arbitrage detection settings
|
||||
detection:
|
||||
min_profit_threshold_eth: 0.00001 # $0.02 at $2000/ETH
|
||||
min_profit_threshold_usd: 0.01 # $0.01 minimum
|
||||
min_roi_percentage: 0.01 # 0.01% minimum ROI
|
||||
max_price_impact: 0.05 # 5% max price impact
|
||||
gas_price_gwei: 0.1 # Arbitrum typical
|
||||
gas_estimate_swap: 150000 # Typical swap gas
|
||||
|
||||
decimal_handling:
|
||||
normalize_to_18: true
|
||||
token_decimals:
|
||||
WETH: 18
|
||||
USDC: 6
|
||||
USDT: 6
|
||||
WBTC: 8
|
||||
DAI: 18
|
||||
ARB: 18
|
||||
|
||||
execution:
|
||||
enabled: false # Start in monitoring mode
|
||||
max_position_size_eth: 1.0
|
||||
slippage_tolerance: 0.005 # 0.5%
|
||||
deadline_seconds: 60
|
||||
EOF
|
||||
|
||||
# 6. Build and restart
|
||||
echo "🔨 Building bot with fixes..."
|
||||
cd /home/administrator/projects/mev-beta
|
||||
go build -o mev-bot cmd/mev-bot/main.go
|
||||
|
||||
echo "✅ Fixes applied successfully!"
|
||||
echo ""
|
||||
echo "📋 Summary of changes:"
|
||||
echo " • Decimal handling integrated for USDC(6), USDT(6), WBTC(8)"
|
||||
echo " • Profit threshold lowered to 0.00001 ETH (~$0.02)"
|
||||
echo " • ROI calculation fixed and capped at 100%"
|
||||
echo " • Opportunity counting fixed"
|
||||
echo " • Configuration optimized for Arbitrum"
|
||||
echo ""
|
||||
echo "🚀 To start the bot with fixes:"
|
||||
echo " ./mev-bot start"
|
||||
echo ""
|
||||
echo "📊 Monitor for opportunities:"
|
||||
echo " tail -f logs/mev_bot.log | grep -E 'Detected:|opportunity|profit'"
|
||||
Reference in New Issue
Block a user