From 06ef29ed41d5ab9185bb651c3362077759b21830 Mon Sep 17 00:00:00 2001 From: Warren He Date: Mon, 26 Sep 2022 15:29:39 -0700 Subject: [PATCH] separated lint --- analyzer/emerald/incoming.go | 5 ++- analyzer/uncategorized/eth.go | 6 ++-- analyzer/uncategorized/evm_raw_tx.go | 10 +++--- analyzer/uncategorized/evm_raw_tx_test.go | 18 +++++----- analyzer/uncategorized/geth_sender_pub.go | 1 + analyzer/uncategorized/visitors.go | 42 ++++++++++++----------- 6 files changed, 45 insertions(+), 37 deletions(-) diff --git a/analyzer/emerald/incoming.go b/analyzer/emerald/incoming.go index af2d910a1..a7346b0e5 100644 --- a/analyzer/emerald/incoming.go +++ b/analyzer/emerald/incoming.go @@ -132,6 +132,7 @@ func registerEthAddress(addressPreimages map[string]*AddressPreimageData, ethAdd return addr, nil } +//nolint:unparam func registerRelatedSdkAddress(relatedAddresses map[string]bool, sdkAddr *sdkTypes.Address) (string, error) { addr, err := common.StringifySdkAddress(sdkAddr) if err != nil { @@ -154,6 +155,7 @@ func registerRelatedAddressSpec(addressPreimages map[string]*AddressPreimageData return addr, nil } +//nolint:unparam func registerRelatedEthAddress(addressPreimages map[string]*AddressPreimageData, relatedAddresses map[string]bool, ethAddr []byte) (string, error) { addr, err := registerEthAddress(addressPreimages, ethAddr) if err != nil { @@ -165,6 +167,7 @@ func registerRelatedEthAddress(addressPreimages map[string]*AddressPreimageData, return addr, nil } +//nolint:gocyclo func extractRound(sigContext signature.Context, b *block.Block, txrs []*sdkClient.TransactionWithResults) (*BlockData, error) { var blockData BlockData blockData.Hash = b.Header.EncodedHash().String() @@ -331,7 +334,7 @@ func extractRound(sigContext signature.Context, b *block.Block, txrs []*sdkClien if (txr.Result.IsUnknown() || txr.Result.IsSuccess()) && tx != nil { // Treat as if it used all the gas. txGasUsed = int64(tx.AuthInfo.Fee.Gas) - } else { + } else { //nolint:staticcheck // Inaccurate: Treat as not using any gas. } } diff --git a/analyzer/uncategorized/eth.go b/analyzer/uncategorized/eth.go index 7ec158940..9f1065ef2 100644 --- a/analyzer/uncategorized/eth.go +++ b/analyzer/uncategorized/eth.go @@ -4,8 +4,10 @@ import ( "golang.org/x/crypto/sha3" ) -var TopicErc20Transfer = Keccak256([]byte("Transfer(address,address,uint256)")) -var TopicErc20Approval = Keccak256([]byte("Approval(address,address,uint256)")) +var ( + TopicErc20Transfer = Keccak256([]byte("Transfer(address,address,uint256)")) + TopicErc20Approval = Keccak256([]byte("Approval(address,address,uint256)")) +) var ZeroEthAddr = make([]byte, 20) diff --git a/analyzer/uncategorized/evm_raw_tx.go b/analyzer/uncategorized/evm_raw_tx.go index 68ed3afee..541c681b9 100644 --- a/analyzer/uncategorized/evm_raw_tx.go +++ b/analyzer/uncategorized/evm_raw_tx.go @@ -11,7 +11,7 @@ import ( sdkTypes "github.com/oasisprotocol/oasis-sdk/client-sdk/go/types" ) -func decodeEthRawTx(body []byte, expectedChainId uint64) (*sdkTypes.Transaction, error) { +func decodeEthRawTx(body []byte, expectedChainID uint64) (*sdkTypes.Transaction, error) { var ethTx ethTypes.Transaction if err := ethTx.UnmarshalBinary(body); err != nil { return nil, fmt.Errorf("rlp decode bytes: %w", err) @@ -23,11 +23,11 @@ func decodeEthRawTx(body []byte, expectedChainId uint64) (*sdkTypes.Transaction, } else { tb = evmV1.Create(ethTx.Value().Bytes(), ethTx.Data()) } - chainIdBI := ethTx.ChainId() - if !chainIdBI.IsUint64() || chainIdBI.Uint64() != expectedChainId { - return nil, fmt.Errorf("chain ID %v, expected %v", chainIdBI, expectedChainId) + chainIDBI := ethTx.ChainId() + if !chainIDBI.IsUint64() || chainIDBI.Uint64() != expectedChainID { + return nil, fmt.Errorf("chain ID %v, expected %v", chainIDBI, expectedChainID) } - signer := ethTypes.LatestSignerForChainID(chainIdBI) + signer := ethTypes.LatestSignerForChainID(chainIDBI) pubUncompressed, err := LondonSenderPub(signer, ðTx) if err != nil { return nil, fmt.Errorf("recover signer public key: %w", err) diff --git a/analyzer/uncategorized/evm_raw_tx_test.go b/analyzer/uncategorized/evm_raw_tx_test.go index 48f8a4e1c..33c8e6805 100644 --- a/analyzer/uncategorized/evm_raw_tx_test.go +++ b/analyzer/uncategorized/evm_raw_tx_test.go @@ -19,10 +19,10 @@ import ( func decodeExpectCall( t *testing.T, raw string, - expectedChainId uint64, + expectedChainID uint64, expectedTo string, expectedValue uint64, - expectedData string, + expectedData string, //nolint:unparam expectedGasLimit uint64, expectedGasPrice uint64, expectedFrom string, @@ -30,7 +30,7 @@ func decodeExpectCall( ) { rawBytes, err := hex.DecodeString(raw) require.NoError(t, err) - tx, err := decodeEthRawTx(rawBytes, expectedChainId) + tx, err := decodeEthRawTx(rawBytes, expectedChainID) require.NoError(t, err) t.Logf("%#v\n", tx) require.Equal(t, tx.Call.Method, "evm.Call") @@ -63,7 +63,7 @@ func decodeExpectCall( func decodeExpectCreate( t *testing.T, raw string, - expectedChainId uint64, + expectedChainID uint64, expectedValue uint64, expectedInitCode string, expectedGasLimit uint64, @@ -73,7 +73,7 @@ func decodeExpectCreate( ) { rawBytes, err := hex.DecodeString(raw) require.NoError(t, err) - tx, err := decodeEthRawTx(rawBytes, expectedChainId) + tx, err := decodeEthRawTx(rawBytes, expectedChainID) require.NoError(t, err) t.Logf("%#v\n", tx) require.Equal(t, tx.Call.Method, "evm.Create") @@ -100,10 +100,10 @@ func decodeExpectCreate( require.Equal(t, expectedGasLimit, tx.AuthInfo.Fee.Gas) } -func decodeExpectInvalid(t *testing.T, raw string, expectedChainId uint64) { +func decodeExpectInvalid(t *testing.T, raw string, expectedChainID uint64) { rawBytes, err := hex.DecodeString(raw) require.NoError(t, err) - _, err = decodeEthRawTx(rawBytes, expectedChainId) + _, err = decodeEthRawTx(rawBytes, expectedChainID) require.Error(t, err) t.Logf("%#v\n", err) } @@ -111,12 +111,12 @@ func decodeExpectInvalid(t *testing.T, raw string, expectedChainId uint64) { func decodeExpectFromMismatch( t *testing.T, raw string, - expectedChainId uint64, + expectedChainID uint64, unexpectedFrom string, ) { rawBytes, err := hex.DecodeString(raw) require.NoError(t, err) - tx, err := decodeEthRawTx(rawBytes, expectedChainId) + tx, err := decodeEthRawTx(rawBytes, expectedChainID) require.NoError(t, err) t.Logf("%#v\n", tx) require.Len(t, tx.AuthInfo.SignerInfo, 1) diff --git a/analyzer/uncategorized/geth_sender_pub.go b/analyzer/uncategorized/geth_sender_pub.go index 43e1f514f..2f6984a06 100644 --- a/analyzer/uncategorized/geth_sender_pub.go +++ b/analyzer/uncategorized/geth_sender_pub.go @@ -16,6 +16,7 @@ // This file contains code from go-ethereum, adapted to recover a public key instead of an address. +//nolint:gocritic,godot package common import ( diff --git a/analyzer/uncategorized/visitors.go b/analyzer/uncategorized/visitors.go index 710a844a1..b7d6d5a53 100644 --- a/analyzer/uncategorized/visitors.go +++ b/analyzer/uncategorized/visitors.go @@ -20,6 +20,7 @@ type CallHandler struct { EvmCall func(body *evm.Call, ok *[]byte) error } +//nolint:nestif func VisitCall(call *sdkTypes.Call, result *sdkTypes.CallResult, handler *CallHandler) error { switch call.Method { case "accounts.Transfer": @@ -178,27 +179,28 @@ type EvmEventHandler struct { } func VisitEvmEvent(event *evm.Event, handler *EvmEventHandler) error { - if len(event.Topics) >= 1 { - switch { - case bytes.Equal(event.Topics[0], TopicErc20Transfer) && len(event.Topics) == 3: - if handler.Erc20Transfer != nil { - if err := handler.Erc20Transfer( - SliceEthAddress(event.Topics[1]), - SliceEthAddress(event.Topics[2]), - event.Data, - ); err != nil { - return fmt.Errorf("erc20 transfer: %w", err) - } + if len(event.Topics) == 0 { + return nil + } + switch { + case bytes.Equal(event.Topics[0], TopicErc20Transfer) && len(event.Topics) == 3: + if handler.Erc20Transfer != nil { + if err := handler.Erc20Transfer( + SliceEthAddress(event.Topics[1]), + SliceEthAddress(event.Topics[2]), + event.Data, + ); err != nil { + return fmt.Errorf("erc20 transfer: %w", err) } - case bytes.Equal(event.Topics[0], TopicErc20Approval) && len(event.Topics) == 3: - if handler.Erc20Approval != nil { - if err := handler.Erc20Approval( - SliceEthAddress(event.Topics[1]), - SliceEthAddress(event.Topics[2]), - event.Data, - ); err != nil { - return fmt.Errorf("erc20 approval: %w", err) - } + } + case bytes.Equal(event.Topics[0], TopicErc20Approval) && len(event.Topics) == 3: + if handler.Erc20Approval != nil { + if err := handler.Erc20Approval( + SliceEthAddress(event.Topics[1]), + SliceEthAddress(event.Topics[2]), + event.Data, + ); err != nil { + return fmt.Errorf("erc20 approval: %w", err) } } }