Files
mev-beta/internal/utils/utils.go
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

39 lines
715 B
Go

package utils
import (
"math"
"math/big"
"time"
)
// FormatWeiToEther formats a wei amount to ether
func FormatWeiToEther(wei *big.Int) *big.Float {
ether := new(big.Float).SetInt(wei)
ether.Quo(ether, big.NewFloat(1e18))
return ether
}
// FormatTime formats a timestamp to a readable string
func FormatTime(timestamp uint64) string {
if timestamp > math.MaxInt64 {
return "Invalid timestamp: exceeds maximum value"
}
return time.Unix(int64(timestamp), 0).Format("2006-01-02 15:04:05")
}
// Min returns the smaller of two integers
func Min(a, b int) int {
if a < b {
return a
}
return b
}
// Max returns the larger of two integers
func Max(a, b int) int {
if a > b {
return a
}
return b
}