fix: resolve all compilation issues across transport and lifecycle packages
- Fixed duplicate type declarations in transport package - Removed unused variables in lifecycle and dependency injection - Fixed big.Int arithmetic operations in uniswap contracts - Added missing methods to MetricsCollector (IncrementCounter, RecordLatency, etc.) - Fixed jitter calculation in TCP transport retry logic - Updated ComponentHealth field access to use transport type - Ensured all core packages build successfully All major compilation errors resolved: ✅ Transport package builds clean ✅ Lifecycle package builds clean ✅ Main MEV bot application builds clean ✅ Fixed method signature mismatches ✅ Resolved type conflicts and duplications 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
390
.golangci.yml
Normal file
390
.golangci.yml
Normal file
@@ -0,0 +1,390 @@
|
||||
# MEV Bot Parser - Go Linter Configuration
|
||||
# Optimized for production-ready MEV/DeFi applications
|
||||
|
||||
run:
|
||||
timeout: 10m
|
||||
issues-exit-code: 1
|
||||
tests: true
|
||||
skip-dirs:
|
||||
- vendor
|
||||
- node_modules
|
||||
skip-files:
|
||||
- ".*\\.pb\\.go$"
|
||||
- ".*_generated\\.go$"
|
||||
|
||||
output:
|
||||
format: colored-line-number
|
||||
print-issued-lines: true
|
||||
print-linter-name: true
|
||||
uniq-by-line: true
|
||||
sort-results: true
|
||||
|
||||
linters-settings:
|
||||
govet:
|
||||
check-shadowing: true
|
||||
settings:
|
||||
printf:
|
||||
funcs:
|
||||
- (github.com/fraktal/mev-beta/internal/logger).Logger.Error
|
||||
- (github.com/fraktal/mev-beta/internal/logger).Logger.Warn
|
||||
- (github.com/fraktal/mev-beta/internal/logger).Logger.Info
|
||||
- (github.com/fraktal/mev-beta/internal/logger).Logger.Debug
|
||||
enable:
|
||||
- atomicalign
|
||||
- deepequalerrors
|
||||
- fieldalignment
|
||||
- nilness
|
||||
- sortslice
|
||||
- unusedwrite
|
||||
|
||||
golint:
|
||||
min-confidence: 0.8
|
||||
|
||||
gofmt:
|
||||
simplify: true
|
||||
|
||||
goimports:
|
||||
local-prefixes: github.com/fraktal/mev-beta
|
||||
|
||||
gocyclo:
|
||||
min-complexity: 15
|
||||
|
||||
maligned:
|
||||
suggest-new: true
|
||||
|
||||
dupl:
|
||||
threshold: 100
|
||||
|
||||
goconst:
|
||||
min-len: 3
|
||||
min-occurrences: 3
|
||||
ignore-tests: false
|
||||
ignore-calls: true
|
||||
|
||||
depguard:
|
||||
list-type: blacklist
|
||||
packages:
|
||||
# Prevent usage of deprecated/unsafe packages
|
||||
- io/ioutil
|
||||
packages-with-error-message:
|
||||
- io/ioutil: "io/ioutil is deprecated, use os and io packages instead"
|
||||
|
||||
misspell:
|
||||
locale: US
|
||||
ignore-words:
|
||||
- someword
|
||||
|
||||
lll:
|
||||
line-length: 120
|
||||
tab-width: 1
|
||||
|
||||
unused:
|
||||
check-exported: false
|
||||
|
||||
unparam:
|
||||
check-exported: false
|
||||
|
||||
nakedret:
|
||||
max-func-lines: 30
|
||||
|
||||
prealloc:
|
||||
simple: true
|
||||
range-loops: true
|
||||
for-loops: false
|
||||
|
||||
gocritic:
|
||||
enabled-tags:
|
||||
- diagnostic
|
||||
- experimental
|
||||
- opinionated
|
||||
- performance
|
||||
- style
|
||||
disabled-checks:
|
||||
- dupImport
|
||||
- ifElseChain
|
||||
- octalLiteral
|
||||
- whyNoLint
|
||||
- wrapperFunc
|
||||
- importShadow
|
||||
- unnamedResult
|
||||
- unnecessaryBlock
|
||||
settings:
|
||||
captLocal:
|
||||
paramsOnly: true
|
||||
rangeValCopy:
|
||||
sizeThreshold: 64
|
||||
|
||||
gocognit:
|
||||
min-complexity: 20
|
||||
|
||||
nestif:
|
||||
min-complexity: 5
|
||||
|
||||
godox:
|
||||
keywords:
|
||||
- TODO
|
||||
- BUG
|
||||
- FIXME
|
||||
- HACK
|
||||
- XXX
|
||||
|
||||
errorlint:
|
||||
errorf: true
|
||||
asserts: true
|
||||
comparison: true
|
||||
|
||||
exhaustive:
|
||||
check-generated: false
|
||||
default-signifies-exhaustive: false
|
||||
|
||||
exportloopref:
|
||||
check-exported: false
|
||||
|
||||
forbidigo:
|
||||
forbid:
|
||||
- ^print.*$
|
||||
- ^fmt\.Print.*$
|
||||
- ^log\..*$
|
||||
# Prevent usage of panic in production code
|
||||
- 'panic\('
|
||||
exclude_godoc_examples: false
|
||||
|
||||
funlen:
|
||||
lines: 100
|
||||
statements: 50
|
||||
|
||||
gochecknoglobals:
|
||||
g: true
|
||||
|
||||
gochecknoinits:
|
||||
g: true
|
||||
|
||||
godot:
|
||||
capital: false
|
||||
period: true
|
||||
scope: declarations
|
||||
|
||||
gomnd:
|
||||
settings:
|
||||
mnd:
|
||||
checks: argument,case,condition,operation,return,assign
|
||||
ignored-numbers: 0,1,2,3,4,8,10,16,18,32,64,100,256,1000,1024
|
||||
ignored-functions: strings.SplitN,bytes.SplitN,strconv.FormatInt,make
|
||||
|
||||
gomodguard:
|
||||
allowed:
|
||||
modules:
|
||||
- github.com/ethereum/go-ethereum
|
||||
- github.com/stretchr/testify
|
||||
- github.com/holiman/uint256
|
||||
- github.com/shopspring/decimal
|
||||
blocked:
|
||||
modules:
|
||||
- github.com/ugorji/go:
|
||||
recommendations:
|
||||
- github.com/json-iterator/go
|
||||
reason: "ugorji/go has performance issues"
|
||||
|
||||
goheader:
|
||||
values:
|
||||
const:
|
||||
COMPANY: Fraktal
|
||||
PROJECT: MEV Beta
|
||||
template: |-
|
||||
Copyright {{ YEAR }} {{ COMPANY }}
|
||||
|
||||
This file is part of {{ PROJECT }}.
|
||||
|
||||
revive:
|
||||
min-confidence: 0.8
|
||||
severity: warning
|
||||
rules:
|
||||
- name: blank-imports
|
||||
- name: context-as-argument
|
||||
- name: context-keys-type
|
||||
- name: dot-imports
|
||||
- name: error-return
|
||||
- name: error-strings
|
||||
- name: error-naming
|
||||
- name: exported
|
||||
- name: if-return
|
||||
- name: increment-decrement
|
||||
- name: var-naming
|
||||
- name: var-declaration
|
||||
- name: package-comments
|
||||
- name: range
|
||||
- name: receiver-naming
|
||||
- name: time-naming
|
||||
- name: unexported-return
|
||||
- name: indent-error-flow
|
||||
- name: errorf
|
||||
- name: empty-block
|
||||
- name: superfluous-else
|
||||
- name: unused-parameter
|
||||
- name: unreachable-code
|
||||
- name: redefines-builtin-id
|
||||
- name: waitgroup-by-value
|
||||
- name: atomic
|
||||
- name: bare-return
|
||||
- name: bool-literal-in-expr
|
||||
- name: constant-logical-expr
|
||||
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
# Essential linters for MEV/DeFi applications
|
||||
- errcheck # Check that error returns are used
|
||||
- gosimple # Suggest simplifications
|
||||
- govet # Examine Go source code and report bugs
|
||||
- ineffassign # Detect ineffectual assignments
|
||||
- staticcheck # Advanced static analysis
|
||||
- typecheck # Type checking
|
||||
- unused # Find unused code
|
||||
|
||||
# Code quality linters
|
||||
- gocyclo # Check cyclomatic complexity
|
||||
- gofmt # Check formatting
|
||||
- goimports # Check import formatting
|
||||
- revive # Fast, configurable, extensible, flexible, and beautiful linter
|
||||
- misspell # Find commonly misspelled English words
|
||||
|
||||
# Performance and optimization linters
|
||||
- gocritic # Most opinionated Go source code linter
|
||||
- prealloc # Find slice declarations with non-zero initial length
|
||||
|
||||
# Security linters (critical for MEV applications)
|
||||
- gosec # Inspect source code for security problems
|
||||
|
||||
# Bug prevention linters
|
||||
- bodyclose # Check whether HTTP response body is closed successfully
|
||||
- errorlint # Find code that will cause problems with error wrapping
|
||||
- exportloopref # Check for pointers to enclosing loop variables
|
||||
- goconst # Find repeated strings that could be constants
|
||||
- godox # Detect FIXME, TODO and other comment keywords
|
||||
- gomnd # Detect magic numbers
|
||||
- gomodguard # Check for blocked module imports
|
||||
- goprintffuncname # Check printf-like functions are named with f at the end
|
||||
- nilerr # Find code that returns nil even though it checks that error is not nil
|
||||
- nolintlint # Reports ill-formed or insufficient nolint directives
|
||||
- rowserrcheck # Check whether Err of rows is checked successfully
|
||||
- sqlclosecheck # Check that sql.Rows and sql.Stmt are closed
|
||||
- unconvert # Remove unnecessary type conversions
|
||||
- unparam # Report unused function parameters
|
||||
- wastedassign # Find wasted assignment statements
|
||||
|
||||
# Style linters
|
||||
- gochecknoglobals # Check that no global variables exist
|
||||
- godot # Check if comments end in a period
|
||||
- lll # Report long lines
|
||||
- whitespace # Detection of unnecessary whitespaces
|
||||
|
||||
# Additional quality linters
|
||||
- dupl # Code clone detection
|
||||
- funlen # Tool for detection of long functions
|
||||
- gocognit # Compute and check the cognitive complexity of functions
|
||||
- nestif # Report deeply nested if statements
|
||||
- nlreturn # Check for new line before return
|
||||
- wsl # Whitespace Linter
|
||||
|
||||
issues:
|
||||
exclude-rules:
|
||||
# Exclude some linters from running on tests files
|
||||
- path: _test\.go
|
||||
linters:
|
||||
- gocyclo
|
||||
- errcheck
|
||||
- dupl
|
||||
- gosec
|
||||
- funlen
|
||||
- goconst
|
||||
- gochecknoglobals
|
||||
- lll
|
||||
- gomnd
|
||||
|
||||
# Exclude specific issues in generated files
|
||||
- path: ".*\\.pb\\.go"
|
||||
linters:
|
||||
- all
|
||||
|
||||
# Exclude magic number checks for common values in crypto/finance
|
||||
- text: "mnd: Magic number: 18,"
|
||||
linters:
|
||||
- gomnd
|
||||
- text: "mnd: Magic number: 1000000000000000000,"
|
||||
linters:
|
||||
- gomnd
|
||||
- text: "mnd: Magic number: 500,"
|
||||
linters:
|
||||
- gomnd
|
||||
- text: "mnd: Magic number: 3000,"
|
||||
linters:
|
||||
- gomnd
|
||||
- text: "mnd: Magic number: 10000,"
|
||||
linters:
|
||||
- gomnd
|
||||
|
||||
# Allow globals in main packages and configuration
|
||||
- path: cmd/
|
||||
linters:
|
||||
- gochecknoglobals
|
||||
- path: ".*config.*"
|
||||
linters:
|
||||
- gochecknoglobals
|
||||
|
||||
# Allow longer lines in test files for better readability
|
||||
- path: _test\.go
|
||||
text: "line is \\d+ characters"
|
||||
linters:
|
||||
- lll
|
||||
|
||||
# Allow certain complexity in parser code
|
||||
- path: pkg/arbitrum/.*parser.*
|
||||
linters:
|
||||
- gocyclo
|
||||
- gocognit
|
||||
- funlen
|
||||
|
||||
# Don't require comments on exported functions in test helpers
|
||||
- path: test/.*
|
||||
text: "exported (.+) should have comment"
|
||||
linters:
|
||||
- revive
|
||||
- golint
|
||||
|
||||
# Ignore unused parameters in interface implementations
|
||||
- text: "parameter '.*' seems to be unused, consider removing or renaming it as _"
|
||||
linters:
|
||||
- unparam
|
||||
- revive
|
||||
|
||||
# Allow TODO comments in development
|
||||
- text: "TODO.*"
|
||||
linters:
|
||||
- godox
|
||||
|
||||
exclude-use-default: false
|
||||
max-issues-per-linter: 0
|
||||
max-same-issues: 0
|
||||
new: false
|
||||
fix: false
|
||||
|
||||
severity:
|
||||
default-severity: error
|
||||
case-sensitive: false
|
||||
rules:
|
||||
- linters:
|
||||
- dupl
|
||||
- goconst
|
||||
- gomnd
|
||||
- lll
|
||||
- whitespace
|
||||
- nlreturn
|
||||
- wsl
|
||||
- godot
|
||||
severity: warning
|
||||
- linters:
|
||||
- gosec
|
||||
- errcheck
|
||||
- staticcheck
|
||||
- govet
|
||||
severity: error
|
||||
Reference in New Issue
Block a user