diff --git a/.golangci.yml b/.golangci.yml index 713c6660b5db8ac35e22d04bdb9904718dbae753..c776341cb1272923fac75d22e0a3023574523761 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -23,16 +23,17 @@ linters-settings: gocritic: # Which checks should be enabled; can't be combined with 'disabled-checks'; # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` + # To check which checks are enabled run `GL_DEBUG=gocritic ./build/bin/golangci-lint run` # By default list of stable checks is used. enabled-checks: - ruleguard - truncateCmp - # - defaultCaseOrder + # - defaultCaseOrder # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty disabled-checks: - regexpMust + - appendAssign # - hugeParam - rangeValCopy - exitAfterDefer @@ -44,17 +45,22 @@ linters-settings: - captLocal - commentFormatting - ifElseChain - - appendAssign + - importShadow + - paramTypeCombine + - builtinShadow + - typeUnparen # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks. # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". enabled-tags: - performance + - diagnostic + - opinionated disabled-tags: - experimental - ruleguard: - rules: "rules.go" settings: + ruleguard: + rules: "rules.go" hugeParam: # size in bytes that makes the warning trigger (default 80) sizeThreshold: 1000 diff --git a/Makefile b/Makefile index 25937319595b1a467f748598fa3f717ee3aec71d..49746f7937748d5d59aa0e9f2239ebe6703125cf 100644 --- a/Makefile +++ b/Makefile @@ -143,6 +143,7 @@ clean: go clean -cache rm -fr build/* cd libmdbx/ && make clean + ./build/bin/golangci-lint cache clean # The devtools target installs tools required for 'go generate'. # You need to put $GOBIN (or $GOPATH/bin) in your PATH to use 'go generate'. diff --git a/cmd/rpcdaemon/commands/eth_call.go b/cmd/rpcdaemon/commands/eth_call.go index ffa7a386f6ed49a6bf6ed914f505e4c3e2b88750..4f4175bcb4a34f7aec4fb0ce3847e4cd1980bced 100644 --- a/cmd/rpcdaemon/commands/eth_call.go +++ b/cmd/rpcdaemon/commands/eth_call.go @@ -401,7 +401,7 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi.CallArgs, if res.Err != nil { errString = res.Err.Error() } - return &accessListResult{Accesslist: &accessList, Error: errString, GasUsed: (hexutil.Uint64)(res.UsedGas)}, nil + return &accessListResult{Accesslist: &accessList, Error: errString, GasUsed: hexutil.Uint64(res.UsedGas)}, nil } prevTracer = tracer } diff --git a/common/hasher.go b/common/hasher.go index 168c21b675ea1c96872e58365e0f06db0d3a19c4..87cb09a309fa4a212093343008dc07e15e54405c 100644 --- a/common/hasher.go +++ b/common/hasher.go @@ -56,19 +56,3 @@ func HashData(data []byte) (Hash, error) { } return buf, nil } - -func HashTo(data []byte, to []byte) { - h := NewHasher() - defer ReturnHasherToPool(h) - h.Sha.Reset() - - _, err := h.Sha.Write(data) - if err != nil { - panic(err) - } - - _, err = h.Sha.Read(to) - if err != nil { - panic(err) - } -} diff --git a/common/path.go b/common/path.go index ca107fbf77aa27a36067d4f8323e5ee1ea30948e..3c76fdacd2f69c5e3c3c7e329884b68e160a3269 100644 --- a/common/path.go +++ b/common/path.go @@ -41,7 +41,7 @@ func FileExist(filePath string) bool { } // AbsolutePath returns datadir + filename, or filename if it is absolute. -func AbsolutePath(datadir string, filename string) string { +func AbsolutePath(datadir, filename string) string { if filepath.IsAbs(filename) { return filename } diff --git a/eth/stagedsync/stage_call_traces.go b/eth/stagedsync/stage_call_traces.go index b40865473d7ea6f09c5e931f686d8656c7b1c045..47a2dc8ff3442bf9227df9bb6ea30f85dca4a354 100644 --- a/eth/stagedsync/stage_call_traces.go +++ b/eth/stagedsync/stage_call_traces.go @@ -259,7 +259,9 @@ func UnwindCallTraces(u *UnwindState, s *StageState, tx kv.RwTx, cfg CallTracesC func DoUnwindCallTraces(logPrefix string, db kv.RwTx, from, to uint64, ctx context.Context, tmpdir string) error { froms := etl.NewCollector(logPrefix, tmpdir, etl.NewOldestEntryBuffer(etl.BufferOptimalSize)) + defer froms.Close() tos := etl.NewCollector(logPrefix, tmpdir, etl.NewOldestEntryBuffer(etl.BufferOptimalSize)) + defer tos.Close() logEvery := time.NewTicker(30 * time.Second) defer logEvery.Stop() @@ -359,7 +361,9 @@ func pruneCallTraces(tx kv.RwTx, logPrefix string, pruneTo uint64, ctx context.C defer logEvery.Stop() froms := etl.NewCollector(logPrefix, tmpdir, etl.NewOldestEntryBuffer(etl.BufferOptimalSize)) + defer froms.Close() tos := etl.NewCollector(logPrefix, tmpdir, etl.NewOldestEntryBuffer(etl.BufferOptimalSize)) + defer tos.Close() { traceCursor, err := tx.CursorDupSort(kv.CallTraceSet) diff --git a/eth/stagedsync/stage_hashstate.go b/eth/stagedsync/stage_hashstate.go index ed02a016fb51a639ae32e78316b6b211b1e24224..017e901c308e8d3dde7bf33f7d8d028c07af6187 100644 --- a/eth/stagedsync/stage_hashstate.go +++ b/eth/stagedsync/stage_hashstate.go @@ -160,11 +160,9 @@ func readPlainStateOnce( bufferSize := etl.BufferOptimalSize accCollector := etl.NewCollector(logPrefix, tmpdir, etl.NewSortableBuffer(bufferSize)) + defer accCollector.Close() storageCollector := etl.NewCollector(logPrefix, tmpdir, etl.NewSortableBuffer(bufferSize)) - defer func() { - accCollector.Close() - storageCollector.Close() - }() + defer storageCollector.Close() t := time.Now() logEvery := time.NewTicker(30 * time.Second) diff --git a/eth/stagedsync/stage_headers.go b/eth/stagedsync/stage_headers.go index 4fdc873bc7ae38c25d8a9df72bf4b1fc9757de1a..1e0cd663794a90fb9de676e48aea7b5c984f8f69 100644 --- a/eth/stagedsync/stage_headers.go +++ b/eth/stagedsync/stage_headers.go @@ -222,10 +222,10 @@ func HeadersPOS( prevProgress := headerNumber headerCollector := etl.NewCollector(logPrefix, cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize)) + defer headerCollector.Close() cfg.hd.SetHeadersCollector(headerCollector) // Cleanup after we finish backward sync defer func() { - headerCollector.Close() cfg.hd.SetHeadersCollector(nil) cfg.hd.Unsync() cfg.hd.SetFetching(false) diff --git a/rules.go b/rules.go index a56a624a9227d635701d0120540ba6276dfdaa11..73624f8bf846096755727298cb6acbe8c580e3e7 100644 --- a/rules.go +++ b/rules.go @@ -1,8 +1,10 @@ +//go:build gorules // +build gorules package gorules // https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module +// to apply changes in this file, please do: ./build/bin/golangci-lint cache clean import ( "github.com/quasilyte/go-ruleguard/dsl" //quasilyterules "github.com/quasilyte/ruleguard-rules-test"