From 014dbd5c3af3dde8de6dafab9d2e15e523e97167 Mon Sep 17 00:00:00 2001 From: Preston Van Loon Date: Fri, 21 Feb 2025 13:46:19 -0600 Subject: [PATCH] Lint: Fix violations of non-constant format string in call (#14974) * Fix violations of non-constant format string in call * Changelog fragment --- .../doubly-linked-tree/proposer_boost.go | 6 ++---- beacon-chain/node/config.go | 2 +- beacon-chain/p2p/utils_test.go | 3 +-- beacon-chain/rpc/eth/builder/handlers.go | 2 +- beacon-chain/rpc/eth/events/events.go | 2 +- .../rpc/eth/node/handlers_peers_test.go | 2 +- .../rpc/prysm/v1alpha1/validator/proposer.go | 4 ++-- .../rpc/prysm/v1alpha1/validator/status.go | 2 +- .../v1alpha1/validator/sync_committee.go | 4 ++-- beacon-chain/sync/rpc_send_request.go | 2 +- changelog/pvl_fmt-fix.md | 3 +++ crypto/bls/signature_batch.go | 2 +- tools/analyzers/comparesame/analyzer.go | 4 ++-- tools/analyzers/cryptorand/analyzer.go | 5 ++--- tools/analyzers/maligned/analyzer.go | 2 +- tools/analyzers/properpermissions/analyzer.go | 13 +++++------- tools/analyzers/recursivelock/analyzer.go | 20 +++++++------------ validator/client/beacon-api/doppelganger.go | 2 +- 18 files changed, 35 insertions(+), 45 deletions(-) create mode 100644 changelog/pvl_fmt-fix.md diff --git a/beacon-chain/forkchoice/doubly-linked-tree/proposer_boost.go b/beacon-chain/forkchoice/doubly-linked-tree/proposer_boost.go index 0ebbd83de857..fc56102ff380 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/proposer_boost.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/proposer_boost.go @@ -1,8 +1,6 @@ package doublylinkedtree import ( - "fmt" - fieldparams "github.com/prysmaticlabs/prysm/v5/config/fieldparams" "github.com/prysmaticlabs/prysm/v5/config/params" ) @@ -15,7 +13,7 @@ func (f *ForkChoice) applyProposerBoostScore() error { if s.previousProposerBoostRoot != params.BeaconConfig().ZeroHash { previousNode, ok := s.nodeByRoot[s.previousProposerBoostRoot] if !ok || previousNode == nil { - log.WithError(errInvalidProposerBoostRoot).Errorf(fmt.Sprintf("invalid prev root %#x", s.previousProposerBoostRoot)) + log.WithError(errInvalidProposerBoostRoot).Errorf("invalid prev root %#x", s.previousProposerBoostRoot) } else { previousNode.balance -= s.previousProposerBoostScore } @@ -24,7 +22,7 @@ func (f *ForkChoice) applyProposerBoostScore() error { if s.proposerBoostRoot != params.BeaconConfig().ZeroHash { currentNode, ok := s.nodeByRoot[s.proposerBoostRoot] if !ok || currentNode == nil { - log.WithError(errInvalidProposerBoostRoot).Errorf(fmt.Sprintf("invalid current root %#x", s.proposerBoostRoot)) + log.WithError(errInvalidProposerBoostRoot).Errorf("invalid current root %#x", s.proposerBoostRoot) } else { proposerScore = (s.committeeWeight * params.BeaconConfig().ProposerScoreBoost) / 100 currentNode.balance += proposerScore diff --git a/beacon-chain/node/config.go b/beacon-chain/node/config.go index 327a903f400f..42216a05ff04 100644 --- a/beacon-chain/node/config.go +++ b/beacon-chain/node/config.go @@ -166,7 +166,7 @@ func configureExecutionSetting(cliCtx *cli.Context) error { } if !cliCtx.IsSet(flags.SuggestedFeeRecipient.Name) { - log.Warnf("In order to receive transaction fees from proposing blocks, " + + log.Warn("In order to receive transaction fees from proposing blocks, " + "you must provide flag --" + flags.SuggestedFeeRecipient.Name + " with a valid ethereum address when starting your beacon node. " + "Please see our documentation for more information on this requirement (https://docs.prylabs.network/docs/execution-node/fee-recipient).") return nil diff --git a/beacon-chain/p2p/utils_test.go b/beacon-chain/p2p/utils_test.go index fe9b2246afca..d50d4b959e6a 100644 --- a/beacon-chain/p2p/utils_test.go +++ b/beacon-chain/p2p/utils_test.go @@ -1,7 +1,6 @@ package p2p import ( - "fmt" "testing" "github.com/ethereum/go-ethereum/crypto" @@ -28,7 +27,7 @@ func TestVerifyConnectivity(t *testing.T) { {"123.123.123.123", 19000, false, "Dialing an unreachable IP: 123.123.123.123:19000"}, } for _, tc := range cases { - t.Run(fmt.Sprintf(tc.name), + t.Run(tc.name, func(t *testing.T) { verifyConnectivity(tc.address, tc.port, "tcp") logMessage := "IP address is not accessible" diff --git a/beacon-chain/rpc/eth/builder/handlers.go b/beacon-chain/rpc/eth/builder/handlers.go index c345f1e69cfd..f6dd1cce0f1a 100644 --- a/beacon-chain/rpc/eth/builder/handlers.go +++ b/beacon-chain/rpc/eth/builder/handlers.go @@ -126,7 +126,7 @@ func buildExpectedWithdrawalsData(withdrawals []*enginev1.Withdrawal) []*structs func handleWrapError(err error, message string, code int) *httputil.DefaultJsonError { return &httputil.DefaultJsonError{ - Message: errors.Wrapf(err, message).Error(), + Message: errors.Wrap(err, message).Error(), Code: code, } } diff --git a/beacon-chain/rpc/eth/events/events.go b/beacon-chain/rpc/eth/events/events.go index a9f858ad486d..b1ba8e2f1702 100644 --- a/beacon-chain/rpc/eth/events/events.go +++ b/beacon-chain/rpc/eth/events/events.go @@ -142,7 +142,7 @@ func newTopicRequest(topics []string) (*topicRequest, error) { } else if topicsForOpsFeed[name] { req.needOpsFeed = true } else { - return nil, errors.Wrapf(errInvalidTopicName, name) + return nil, errors.Wrap(errInvalidTopicName, name) } req.topics[name] = true } diff --git a/beacon-chain/rpc/eth/node/handlers_peers_test.go b/beacon-chain/rpc/eth/node/handlers_peers_test.go index 859d7efef23a..b910321cd7e0 100644 --- a/beacon-chain/rpc/eth/node/handlers_peers_test.go +++ b/beacon-chain/rpc/eth/node/handlers_peers_test.go @@ -239,7 +239,7 @@ func TestGetPeers(t *testing.T) { } } if !found { - t.Errorf("Expected ID '" + expectedId + "' not found") + t.Error("Expected ID '" + expectedId + "' not found") } } }) diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index bfff7b947c96..3c60fb263261 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -417,7 +417,7 @@ func (vs *Server) PrepareBeaconProposer( for _, r := range request.Recipients { recipient := hexutil.Encode(r.FeeRecipient) if !common.IsHexAddress(recipient) { - return nil, status.Errorf(codes.InvalidArgument, fmt.Sprintf("Invalid fee recipient address: %v", recipient)) + return nil, status.Errorf(codes.InvalidArgument, "Invalid fee recipient address: %v", recipient) } // Use default address if the burn address is return feeRecipient := primitives.ExecutionAddress(r.FeeRecipient) @@ -470,7 +470,7 @@ func (vs *Server) GetFeeRecipientByPubKey(ctx context.Context, request *ethpb.Fe }, nil } else { log.WithError(err).Error("An error occurred while retrieving fee recipient from db") - return nil, status.Errorf(codes.Internal, err.Error()) + return nil, status.Errorf(codes.Internal, "error=%s", err) } } return ðpb.FeeRecipientByPubKeyResponse{ diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/status.go b/beacon-chain/rpc/prysm/v1alpha1/validator/status.go index d801c9baba75..1d8e22d6b98d 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/status.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/status.go @@ -269,7 +269,7 @@ func (vs *Server) optimisticStatus(ctx context.Context) error { return nil } - return status.Errorf(codes.Unavailable, errOptimisticMode.Error()) + return status.Errorf(codes.Unavailable, "error=%v", errOptimisticMode) } // validatorStatus searches for the requested validator's state and deposit to retrieve its inclusion estimate. Also returns the validators index. diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/sync_committee.go b/beacon-chain/rpc/prysm/v1alpha1/validator/sync_committee.go index aa90df196d44..291b8fdef34a 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/sync_committee.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/sync_committee.go @@ -36,7 +36,7 @@ func (vs *Server) GetSyncMessageBlockRoot( // It also saves the sync committee message into the pending pool for block inclusion. func (vs *Server) SubmitSyncMessage(ctx context.Context, msg *ethpb.SyncCommitteeMessage) (*emptypb.Empty, error) { if err := vs.CoreService.SubmitSyncMessage(ctx, msg); err != nil { - return &emptypb.Empty{}, status.Errorf(core.ErrorReasonToGRPC(err.Reason), err.Err.Error()) + return &emptypb.Empty{}, status.Errorf(core.ErrorReasonToGRPC(err.Reason), "error=%s", err.Err) } return &emptypb.Empty{}, nil } @@ -105,7 +105,7 @@ func (vs *Server) SubmitSignedContributionAndProof( ) (*emptypb.Empty, error) { err := vs.CoreService.SubmitSignedContributionAndProof(ctx, s) if err != nil { - return &emptypb.Empty{}, status.Errorf(core.ErrorReasonToGRPC(err.Reason), err.Err.Error()) + return &emptypb.Empty{}, status.Errorf(core.ErrorReasonToGRPC(err.Reason), "error=%s", err.Err) } return &emptypb.Empty{}, nil } diff --git a/beacon-chain/sync/rpc_send_request.go b/beacon-chain/sync/rpc_send_request.go index 4de42eb27ad9..1be89a9cebfb 100644 --- a/beacon-chain/sync/rpc_send_request.go +++ b/beacon-chain/sync/rpc_send_request.go @@ -361,7 +361,7 @@ func readChunkedBlobSidecar(stream network.Stream, encoding encoder.NetworkEncod v, found := ctxMap[bytesutil.ToBytes4(ctxb)] if !found { - return b, errors.Wrapf(errBlobUnmarshal, fmt.Sprintf("unrecognized fork digest %#x", ctxb)) + return b, errors.Wrapf(errBlobUnmarshal, "unrecognized fork digest %#x", ctxb) } // Only deneb and electra are supported at this time, because we lack a fork-spanning interface/union type for blobs. // In electra, there's no changes to blob type. diff --git a/changelog/pvl_fmt-fix.md b/changelog/pvl_fmt-fix.md new file mode 100644 index 000000000000..5f0d71ad9874 --- /dev/null +++ b/changelog/pvl_fmt-fix.md @@ -0,0 +1,3 @@ +### Fixed + +- Lint: Fix violations of non-constant format string in call diff --git a/crypto/bls/signature_batch.go b/crypto/bls/signature_batch.go index 526d0c9430ba..607616e5950a 100644 --- a/crypto/bls/signature_batch.go +++ b/crypto/bls/signature_batch.go @@ -77,7 +77,7 @@ func (s *SignatureBatch) VerifyVerbosely() (bool, error) { } } - return false, errors.Errorf(errmsg) + return false, errors.New(errmsg) } // Copy the attached signature batch and return it diff --git a/tools/analyzers/comparesame/analyzer.go b/tools/analyzers/comparesame/analyzer.go index 44e69be60efb..e063f228a56c 100644 --- a/tools/analyzers/comparesame/analyzer.go +++ b/tools/analyzers/comparesame/analyzer.go @@ -47,10 +47,10 @@ func run(pass *analysis.Pass) (interface{}, error) { case token.EQL, token.NEQ, token.GEQ, token.LEQ, token.GTR, token.LSS: var xBuf, yBuf bytes.Buffer if err := printer.Fprint(&xBuf, pass.Fset, expr.X); err != nil { - pass.Reportf(expr.X.Pos(), err.Error()) + pass.Reportf(expr.X.Pos(), "error=%s", err) } if err := printer.Fprint(&yBuf, pass.Fset, expr.Y); err != nil { - pass.Reportf(expr.Y.Pos(), err.Error()) + pass.Reportf(expr.Y.Pos(), "error=%s", err) } if xBuf.String() == yBuf.String() { switch expr.Op { diff --git a/tools/analyzers/cryptorand/analyzer.go b/tools/analyzers/cryptorand/analyzer.go index 6abe13b84a25..937e44af05c7 100644 --- a/tools/analyzers/cryptorand/analyzer.go +++ b/tools/analyzers/cryptorand/analyzer.go @@ -4,7 +4,6 @@ package cryptorand import ( "errors" - "fmt" "go/ast" "strings" @@ -62,8 +61,8 @@ func run(pass *analysis.Pass) (interface{}, error) { for pkg, path := range aliases { for _, fn := range disallowedFns { if isPkgDot(stmt.Fun, pkg, fn) { - pass.Reportf(node.Pos(), fmt.Sprintf( - "%s: %s.%s() (from %s)", errWeakCrypto.Error(), pkg, fn, path)) + pass.Reportf(node.Pos(), + "%s: %s.%s() (from %s)", errWeakCrypto.Error(), pkg, fn, path) } } } diff --git a/tools/analyzers/maligned/analyzer.go b/tools/analyzers/maligned/analyzer.go index 1b4d4c9fb230..29f727400601 100644 --- a/tools/analyzers/maligned/analyzer.go +++ b/tools/analyzers/maligned/analyzer.go @@ -35,7 +35,7 @@ func run(pass *analysis.Pass) (interface{}, error) { inspection.Preorder(nodeFilter, func(node ast.Node) { if s, ok := node.(*ast.StructType); ok { if err := malign(node.Pos(), pass.TypesInfo.Types[s].Type.(*types.Struct)); err != nil { - pass.Reportf(node.Pos(), err.Error()) + pass.Reportf(node.Pos(), "error=%s", err) } } }) diff --git a/tools/analyzers/properpermissions/analyzer.go b/tools/analyzers/properpermissions/analyzer.go index fe5ffc3736b0..ac3dd8f04d65 100644 --- a/tools/analyzers/properpermissions/analyzer.go +++ b/tools/analyzers/properpermissions/analyzer.go @@ -6,7 +6,6 @@ package properpermissions import ( "errors" - "fmt" "go/ast" "golang.org/x/tools/go/analysis" @@ -75,13 +74,11 @@ func run(pass *analysis.Pass) (interface{}, error) { if isPkgDot(stmt.Fun, alias, fn) { pass.Reportf( node.Pos(), - fmt.Sprintf( - "%v: %s.%s() (from %s)", - errUnsafePackage, - alias, - fn, - pkg, - ), + "%v: %s.%s() (from %s)", + errUnsafePackage, + alias, + fn, + pkg, ) } } diff --git a/tools/analyzers/recursivelock/analyzer.go b/tools/analyzers/recursivelock/analyzer.go index 6434515765c0..d521c2a2e0e6 100644 --- a/tools/analyzers/recursivelock/analyzer.go +++ b/tools/analyzers/recursivelock/analyzer.go @@ -236,30 +236,24 @@ func checkForRecLocks(node ast.Node, pass *analysis.Pass, inspect *inspector.Ins if lockTracker.rLockSelector.isRelated(selMap, 0) { pass.Reportf( node.Pos(), - fmt.Sprintf( - "%v", - errNestedMixedLock, - ), + "%v", + errNestedMixedLock, ) } if lockTracker.rLockSelector.isEqual(selMap, 0) { pass.Reportf( node.Pos(), - fmt.Sprintf( - "%v", - lockmode.ErrorFound(), - ), + "%v", + lockmode.ErrorFound(), ) } else { if stack := hasNestedlock(lockTracker.rLockSelector, lockTracker.goroutinePos, selMap, call, inspect, pass, make(map[string]bool), lockmode.UnLockName()); stack != "" { pass.Reportf( node.Pos(), - fmt.Sprintf( - "%v\n%v", - lockmode.ErrorFound(), - stack, - ), + "%v\n%v", + lockmode.ErrorFound(), + stack, ) } } diff --git a/validator/client/beacon-api/doppelganger.go b/validator/client/beacon-api/doppelganger.go index 2fa3887156f6..f5a27ae43198 100644 --- a/validator/client/beacon-api/doppelganger.go +++ b/validator/client/beacon-api/doppelganger.go @@ -220,7 +220,7 @@ func buildResponse( func (c *beaconApiValidatorClient) indexToLiveness(ctx context.Context, epoch primitives.Epoch, indexes []string) (map[string]bool, error) { livenessResponse, err := c.liveness(ctx, epoch, indexes) if err != nil || livenessResponse.Data == nil { - return nil, errors.Wrapf(err, fmt.Sprintf("failed to get liveness for epoch %d", epoch)) + return nil, errors.Wrapf(err, "failed to get liveness for epoch %d", epoch) } indexToLiveness := make(map[string]bool, len(livenessResponse.Data))