diff --git a/accounts/abi/bind/util_test.go b/accounts/abi/bind/util_test.go index 592465f2ac..5a0e5309b2 100644 --- a/accounts/abi/bind/util_test.go +++ b/accounts/abi/bind/util_test.go @@ -87,7 +87,7 @@ func TestWaitDeployed(t *testing.T) { select { case <-mined: - if err != test.wantErr { + if !errors.Is(err, test.wantErr) { t.Errorf("test %q: error mismatch: want %q, got %q", name, test.wantErr, err) } if address != test.wantAddress { diff --git a/accounts/abi/unpack_test.go b/accounts/abi/unpack_test.go index 29891ec0a4..3fa25c25ef 100644 --- a/accounts/abi/unpack_test.go +++ b/accounts/abi/unpack_test.go @@ -1106,7 +1106,7 @@ func TestPackAndUnpackIncompatibleNumber(t *testing.T) { {Type: ty}, } decoded, err := decodeABI.Unpack(packed) - if err != testCase.err { + if !errors.Is(err, testCase.err) { t.Fatalf("Expected error %v, actual error %v. case %d", testCase.err, err, i) } if err != nil { diff --git a/accounts/keystore/keystore_test.go b/accounts/keystore/keystore_test.go index f8922a3f3f..5d297bf882 100644 --- a/accounts/keystore/keystore_test.go +++ b/accounts/keystore/keystore_test.go @@ -17,6 +17,7 @@ package keystore import ( + "errors" "math/rand" "os" "runtime" @@ -127,7 +128,7 @@ func TestTimedUnlock(t *testing.T) { // Signing without passphrase fails because account is locked _, err = ks.SignHash(accounts.Account{Address: a1.Address}, testSigData) - if err != ErrLocked { + if !errors.Is(err, ErrLocked) { t.Fatal("Signing should've failed with ErrLocked before unlocking, got ", err) } @@ -145,7 +146,7 @@ func TestTimedUnlock(t *testing.T) { // Signing fails again after automatic locking time.Sleep(250 * time.Millisecond) _, err = ks.SignHash(accounts.Account{Address: a1.Address}, testSigData) - if err != ErrLocked { + if !errors.Is(err, ErrLocked) { t.Fatal("Signing should've failed with ErrLocked timeout expired, got ", err) } } @@ -185,7 +186,7 @@ func TestOverrideUnlock(t *testing.T) { // Signing fails again after automatic locking time.Sleep(250 * time.Millisecond) _, err = ks.SignHash(accounts.Account{Address: a1.Address}, testSigData) - if err != ErrLocked { + if !errors.Is(err, ErrLocked) { t.Fatal("Signing should've failed with ErrLocked timeout expired, got ", err) } } diff --git a/cmd/geth/accountcmd.go b/cmd/geth/accountcmd.go index cc22684e0b..10cce92e15 100644 --- a/cmd/geth/accountcmd.go +++ b/cmd/geth/accountcmd.go @@ -17,15 +17,17 @@ package main import ( + "errors" "fmt" "os" + "github.com/urfave/cli/v2" + "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/accounts/keystore" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/log" - "github.com/urfave/cli/v2" ) var ( @@ -237,7 +239,7 @@ func unlockAccount(ks *keystore.KeyStore, address string, i int, passwords []str log.Info("Unlocked account", "address", account.Address.Hex()) return ambiguousAddrRecovery(ks, err, password), password } - if err != keystore.ErrDecrypt { + if !errors.Is(err, keystore.ErrDecrypt) { // No need to prompt again if the error is not decryption-related. break } diff --git a/cmd/rlpdump/main.go b/cmd/rlpdump/main.go index 7e1d314d49..17b4429756 100644 --- a/cmd/rlpdump/main.go +++ b/cmd/rlpdump/main.go @@ -22,6 +22,7 @@ import ( "bytes" "container/list" "encoding/hex" + "errors" "flag" "fmt" "io" @@ -106,7 +107,7 @@ func rlpToText(in *inStream, out io.Writer) error { stream := rlp.NewStream(in, 0) for { if err := dump(in, stream, 0, out); err != nil { - if err != io.EOF { + if !errors.Is(err, io.EOF) { return err } break diff --git a/common/bitutil/compress_test.go b/common/bitutil/compress_test.go index c6f6fe8bcf..443c198808 100644 --- a/common/bitutil/compress_test.go +++ b/common/bitutil/compress_test.go @@ -18,6 +18,7 @@ package bitutil import ( "bytes" + "errors" "fmt" "math/rand" "testing" @@ -107,7 +108,7 @@ func TestDecodingCycle(t *testing.T) { data := hexutil.MustDecode(tt.input) orig, err := bitsetDecodeBytes(data, tt.size) - if err != tt.fail { + if !errors.Is(err, tt.fail) { t.Errorf("test %d: failure mismatch: have %v, want %v", i, err, tt.fail) } if err != nil { diff --git a/core/blockchain.go b/core/blockchain.go index 05ebfd18b8..85232897a6 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -1391,7 +1391,7 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ // Write downloaded chain data and corresponding receipt chain data if len(ancientBlocks) > 0 { if n, err := writeAncient(ancientBlocks, ancientReceipts); err != nil { - if err == errInsertionInterrupted { + if errors.Is(err, errInsertionInterrupted) { return 0, nil } return n, err @@ -1399,7 +1399,7 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ } if len(liveBlocks) > 0 { if n, err := writeLive(liveBlocks, liveReceipts); err != nil { - if err == errInsertionInterrupted { + if errors.Is(err, errInsertionInterrupted) { return 0, nil } return n, err diff --git a/core/blockchain_test.go b/core/blockchain_test.go index 4f28c6f5e6..e854eb3b87 100644 --- a/core/blockchain_test.go +++ b/core/blockchain_test.go @@ -26,6 +26,8 @@ import ( "testing" "time" + "github.com/holiman/uint256" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/math" "github.com/ethereum/go-ethereum/consensus" @@ -40,7 +42,6 @@ import ( "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/trie" - "github.com/holiman/uint256" ) // So we can deterministically seed different blockchains @@ -154,7 +155,7 @@ func testBlockChainImport(chain types.Blocks, blockchain *BlockChain) error { err = blockchain.validator.ValidateBody(block) } if err != nil { - if err == ErrKnownBlock { + if errors.Is(err, ErrKnownBlock) { continue } return err diff --git a/core/rawdb/freezer_table_test.go b/core/rawdb/freezer_table_test.go index 91b4943e59..c3fb54e477 100644 --- a/core/rawdb/freezer_table_test.go +++ b/core/rawdb/freezer_table_test.go @@ -19,6 +19,7 @@ package rawdb import ( "bytes" "encoding/binary" + "errors" "fmt" "math/rand" "os" @@ -68,7 +69,7 @@ func TestFreezerBasics(t *testing.T) { } // Check that we cannot read too far _, err = f.Retrieve(uint64(255)) - if err != errOutOfBounds { + if !errors.Is(err, errOutOfBounds) { t.Fatal(err) } } @@ -878,7 +879,7 @@ func checkRetrieveError(t *testing.T, f *freezerTable, items map[uint64]error) { if err == nil { t.Fatalf("unexpected value %x for item %d, want error %v", item, value, wantError) } - if err != wantError { + if !errors.Is(err, wantError) { t.Fatalf("wrong error for item %d: %v", item, err) } } diff --git a/core/rawdb/freezer_test.go b/core/rawdb/freezer_test.go index 72d1417200..abfec94cba 100644 --- a/core/rawdb/freezer_test.go +++ b/core/rawdb/freezer_test.go @@ -106,7 +106,7 @@ func TestFreezerModifyRollback(t *testing.T) { require.NoError(t, op.AppendRaw("test", 2, make([]byte, 2048))) return theError }) - if err != theError { + if !errors.Is(err, theError) { t.Errorf("ModifyAncients returned wrong error %q", err) } checkAncientCount(t, f, "test", 0) @@ -374,7 +374,7 @@ func checkAncientCount(t *testing.T, f *Freezer, kind string, n uint64) { } if _, err := f.Ancient(kind, index); err == nil { t.Errorf("Ancient(%q, %d) didn't return expected error", kind, index) - } else if err != errOutOfBounds { + } else if !errors.Is(err, errOutOfBounds) { t.Errorf("Ancient(%q, %d) returned unexpected error %q", kind, index, err) } } diff --git a/core/txpool/legacypool/journal.go b/core/txpool/legacypool/journal.go index 899ed00bcc..a472615dcd 100644 --- a/core/txpool/legacypool/journal.go +++ b/core/txpool/legacypool/journal.go @@ -96,7 +96,7 @@ func (journal *journal) load(add func([]*types.Transaction) []error) error { // Parse the next transaction and terminate on error tx := new(types.Transaction) if err = stream.Decode(tx); err != nil { - if err != io.EOF { + if !errors.Is(err, io.EOF) { failure = err } if batch.Len() > 0 { diff --git a/core/types/receipt_test.go b/core/types/receipt_test.go index fc51eb11a5..8ecfa0dbf1 100644 --- a/core/types/receipt_test.go +++ b/core/types/receipt_test.go @@ -19,6 +19,7 @@ package types import ( "bytes" "encoding/json" + "errors" "math" "math/big" "reflect" @@ -300,7 +301,7 @@ func TestDecodeEmptyTypedReceipt(t *testing.T) { input := []byte{0x80} var r Receipt err := rlp.DecodeBytes(input, &r) - if err != errShortTypedReceipt { + if !errors.Is(err, errShortTypedReceipt) { t.Fatal("wrong error:", err) } } diff --git a/core/types/transaction_test.go b/core/types/transaction_test.go index eed13ee205..169261d819 100644 --- a/core/types/transaction_test.go +++ b/core/types/transaction_test.go @@ -76,7 +76,7 @@ func TestDecodeEmptyTypedTx(t *testing.T) { input := []byte{0x80} var tx Transaction err := rlp.DecodeBytes(input, &tx) - if err != errShortTypedTx { + if !errors.Is(err, errShortTypedTx) { t.Fatal("wrong error:", err) } } @@ -571,7 +571,7 @@ func TestYParityJSONUnmarshalling(t *testing.T) { // Unmarshal the tx var tx Transaction err = tx.UnmarshalJSON(jsonBytes) - if err != test.wantErr { + if !errors.Is(err, test.wantErr) { t.Fatalf("wrong error: got %v, want %v", err, test.wantErr) } }) diff --git a/core/vm/evm.go b/core/vm/evm.go index 1944189b5d..c997d6a195 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -251,7 +251,7 @@ func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas // when we're in homestead this also counts for code storage gas errors. if err != nil { evm.StateDB.RevertToSnapshot(snapshot) - if err != ErrExecutionReverted { + if !errors.Is(err, ErrExecutionReverted) { if evm.Config.Tracer != nil && evm.Config.Tracer.OnGasChange != nil { evm.Config.Tracer.OnGasChange(gas, 0, tracing.GasChangeCallFailedExecution) } @@ -310,7 +310,7 @@ func (evm *EVM) CallCode(caller ContractRef, addr common.Address, input []byte, } if err != nil { evm.StateDB.RevertToSnapshot(snapshot) - if err != ErrExecutionReverted { + if !errors.Is(err, ErrExecutionReverted) { if evm.Config.Tracer != nil && evm.Config.Tracer.OnGasChange != nil { evm.Config.Tracer.OnGasChange(gas, 0, tracing.GasChangeCallFailedExecution) } @@ -360,7 +360,7 @@ func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []by } if err != nil { evm.StateDB.RevertToSnapshot(snapshot) - if err != ErrExecutionReverted { + if !errors.Is(err, ErrExecutionReverted) { if evm.Config.Tracer != nil && evm.Config.Tracer.OnGasChange != nil { evm.Config.Tracer.OnGasChange(gas, 0, tracing.GasChangeCallFailedExecution) } @@ -421,7 +421,7 @@ func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte } if err != nil { evm.StateDB.RevertToSnapshot(snapshot) - if err != ErrExecutionReverted { + if !errors.Is(err, ErrExecutionReverted) { if evm.Config.Tracer != nil && evm.Config.Tracer.OnGasChange != nil { evm.Config.Tracer.OnGasChange(gas, 0, tracing.GasChangeCallFailedExecution) } @@ -562,7 +562,7 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, // when we're in homestead this also counts for code storage gas errors. if err != nil && (evm.chainRules.IsHomestead || err != ErrCodeStoreOutOfGas) { evm.StateDB.RevertToSnapshot(snapshot) - if err != ErrExecutionReverted { + if !errors.Is(err, ErrExecutionReverted) { contract.UseGas(contract.Gas, evm.Config.Tracer, tracing.GasChangeCallFailedExecution) } } diff --git a/crypto/ecies/ecies_test.go b/crypto/ecies/ecies_test.go index e3da71010e..0b3a2e070c 100644 --- a/crypto/ecies/ecies_test.go +++ b/crypto/ecies/ecies_test.go @@ -152,12 +152,12 @@ func TestTooBigSharedKey(t *testing.T) { } _, err = prv1.GenerateShared(&prv2.PublicKey, 32, 32) - if err != ErrSharedKeyTooBig { + if !errors.Is(err, ErrSharedKeyTooBig) { t.Fatal("ecdh: shared key should be too large for curve") } _, err = prv2.GenerateShared(&prv1.PublicKey, 32, 32) - if err != ErrSharedKeyTooBig { + if !errors.Is(err, ErrSharedKeyTooBig) { t.Fatal("ecdh: shared key should be too large for curve") } } @@ -355,7 +355,7 @@ func TestBasicKeyValidation(t *testing.T) { for _, b := range badBytes { ct[0] = b _, err := prv.Decrypt(ct, nil, nil) - if err != ErrInvalidPublicKey { + if !errors.Is(err, ErrInvalidPublicKey) { t.Fatal("ecies: validated an invalid key") } } diff --git a/crypto/secp256k1/secp256_test.go b/crypto/secp256k1/secp256_test.go index 4827cc5b25..9a501999de 100644 --- a/crypto/secp256k1/secp256_test.go +++ b/crypto/secp256k1/secp256_test.go @@ -12,6 +12,7 @@ import ( "crypto/ecdsa" "crypto/rand" "encoding/hex" + "errors" "io" "testing" ) @@ -91,7 +92,7 @@ func TestInvalidRecoveryID(t *testing.T) { sig, _ := Sign(msg, seckey) sig[64] = 99 _, err := RecoverPubkey(msg, sig) - if err != ErrInvalidRecoveryID { + if !errors.Is(err, ErrInvalidRecoveryID) { t.Fatalf("got %q, want %q", err, ErrInvalidRecoveryID) } } diff --git a/eth/filters/filter_test.go b/eth/filters/filter_test.go index 2b3efb51b1..a94529a1c1 100644 --- a/eth/filters/filter_test.go +++ b/eth/filters/filter_test.go @@ -19,6 +19,7 @@ package filters import ( "context" "encoding/json" + "errors" "math/big" "strings" "testing" @@ -382,7 +383,7 @@ func TestFilters(t *testing.T) { if err == nil { t.Fatal("expected error") } - if err != context.DeadlineExceeded { + if !errors.Is(err, context.DeadlineExceeded) { t.Fatalf("expected context.DeadlineExceeded, got %v", err) } }) diff --git a/event/subscription_test.go b/event/subscription_test.go index 743d0bf67d..2cd5d4e7c9 100644 --- a/event/subscription_test.go +++ b/event/subscription_test.go @@ -56,7 +56,7 @@ loop: t.Fatalf("wrong int %d, want %d", got, want) } case err := <-sub.Err(): - if err != errInts { + if !errors.Is(err, errInts) { t.Fatalf("wrong error: got %q, want %q", err, errInts) } if want != 2 { diff --git a/node/node_test.go b/node/node_test.go index 82e814cada..a30fad8fb2 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -101,7 +101,7 @@ func TestNodeUsedDataDir(t *testing.T) { // Create a second node based on the same data directory and ensure failure _, err = New(&Config{DataDir: dir}) - if err != ErrDatadirUsed { + if !errors.Is(err, ErrDatadirUsed) { t.Fatalf("duplicate datadir failure mismatch: have %v, want %v", err, ErrDatadirUsed) } } diff --git a/p2p/discover/v4_udp_test.go b/p2p/discover/v4_udp_test.go index 1af31f4f1b..0d34db9470 100644 --- a/p2p/discover/v4_udp_test.go +++ b/p2p/discover/v4_udp_test.go @@ -211,7 +211,7 @@ func TestUDPv4_responseTimeouts(t *testing.T) { for i := 0; i < nReqs; i++ { select { case err := <-timeoutErr: - if err != errTimeout { + if !errors.Is(err, errTimeout) { t.Fatalf("got non-timeout error on timeoutErr %d: %v", i, err) } nTimeoutsRecv++ @@ -241,7 +241,7 @@ func TestUDPv4_findnodeTimeout(t *testing.T) { toid := enode.ID{1, 2, 3, 4} target := v4wire.Pubkey{4, 5, 6, 7} result, err := test.udp.findnode(toid, toaddr, target) - if err != errTimeout { + if !errors.Is(err, errTimeout) { t.Error("expected timeout error, got", err) } if len(result) > 0 { diff --git a/p2p/dnsdisc/client_test.go b/p2p/dnsdisc/client_test.go index 01912e1eab..f8b697d1ac 100644 --- a/p2p/dnsdisc/client_test.go +++ b/p2p/dnsdisc/client_test.go @@ -26,6 +26,7 @@ import ( "time" "github.com/davecgh/go-spew/spew" + "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/mclock" "github.com/ethereum/go-ethereum/crypto" @@ -95,7 +96,7 @@ func TestClientSyncTreeBadNode(t *testing.T) { c := NewClient(Config{Resolver: r, Logger: testlog.Logger(t, log.LvlTrace)}) _, err := c.SyncTree("enrtree://AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@n") wantErr := nameError{name: "INDMVBZEEQ4ESVYAKGIYU74EAA.n", err: entryError{typ: "enr", err: errInvalidENR}} - if err != wantErr { + if !errors.Is(err, wantErr) { t.Fatalf("expected sync error %q, got %q", wantErr, err) } } diff --git a/p2p/dnsdisc/tree_test.go b/p2p/dnsdisc/tree_test.go index 9ed17aa4b3..eb06b995db 100644 --- a/p2p/dnsdisc/tree_test.go +++ b/p2p/dnsdisc/tree_test.go @@ -17,10 +17,12 @@ package dnsdisc import ( + "errors" "reflect" "testing" "github.com/davecgh/go-spew/spew" + "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/p2p/enode" ) @@ -54,7 +56,7 @@ func TestParseRoot(t *testing.T) { if !reflect.DeepEqual(e, test.e) { t.Errorf("test %d: wrong entry %s, want %s", i, spew.Sdump(e), spew.Sdump(test.e)) } - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("test %d: wrong error %q, want %q", i, err, test.err) } } @@ -131,7 +133,7 @@ func TestParseEntry(t *testing.T) { if !reflect.DeepEqual(e, test.e) { t.Errorf("test %d: wrong entry %s, want %s", i, spew.Sdump(e), spew.Sdump(test.e)) } - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("test %d: wrong error %q, want %q", i, err, test.err) } } diff --git a/p2p/enr/enr_test.go b/p2p/enr/enr_test.go index 4fccb0cce9..b7c20704af 100644 --- a/p2p/enr/enr_test.go +++ b/p2p/enr/enr_test.go @@ -19,14 +19,16 @@ package enr import ( "bytes" "encoding/binary" + "errors" "fmt" "math/rand" "testing" "time" - "github.com/ethereum/go-ethereum/rlp" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/ethereum/go-ethereum/rlp" ) var rnd = rand.New(rand.NewSource(time.Now().UnixNano())) @@ -274,7 +276,7 @@ func TestDecodeIncomplete(t *testing.T) { for _, test := range tests { var r Record err := rlp.DecodeBytes(test.input, &r) - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("wrong error for %X: %v", test.input, err) } } diff --git a/p2p/message_test.go b/p2p/message_test.go index e575c5d96e..37fee20312 100644 --- a/p2p/message_test.go +++ b/p2p/message_test.go @@ -18,6 +18,7 @@ package p2p import ( "bytes" + "errors" "fmt" "io" "runtime" @@ -55,7 +56,7 @@ loop: go func() { if err := SendItems(rw1, 1); err == nil { t.Error("EncodeMsg returned nil error") - } else if err != ErrPipeClosed { + } else if !errors.Is(err, ErrPipeClosed) { t.Errorf("EncodeMsg returned wrong error: got %v, want %v", err, ErrPipeClosed) } close(done) diff --git a/p2p/netutil/net_test.go b/p2p/netutil/net_test.go index 569c7ac454..ccc57c28a9 100644 --- a/p2p/netutil/net_test.go +++ b/p2p/netutil/net_test.go @@ -17,6 +17,7 @@ package netutil import ( + "errors" "fmt" "math/rand" "net" @@ -178,7 +179,7 @@ func TestCheckRelayIP(t *testing.T) { for _, test := range tests { err := CheckRelayIP(parseIP(test.sender), parseIP(test.addr)) - if err != test.want { + if !errors.Is(err, test.want) { t.Errorf("%s from %s: got %q, want %q", test.addr, test.sender, err, test.want) } } diff --git a/p2p/peer_test.go b/p2p/peer_test.go index 4308bbd2eb..91862f14a1 100644 --- a/p2p/peer_test.go +++ b/p2p/peer_test.go @@ -138,7 +138,7 @@ func TestPeerProtoReadMsg(t *testing.T) { select { case err := <-errc: - if err != errProtocolReturned { + if !errors.Is(err, errProtocolReturned) { t.Errorf("peer returned error: %v", err) } case <-time.After(2 * time.Second): diff --git a/rlp/raw_test.go b/rlp/raw_test.go index 7b3255eca3..9e804060a8 100644 --- a/rlp/raw_test.go +++ b/rlp/raw_test.go @@ -129,7 +129,7 @@ func TestSplitUint64(t *testing.T) { if !bytes.Equal(rest, unhex(test.rest)) { t.Errorf("test %d: rest mismatch: got %x, want %s (input %q)", i, rest, test.rest, test.input) } - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("test %d: error mismatch: got %q, want %q", i, err, test.err) } } @@ -213,7 +213,7 @@ func TestSplit(t *testing.T) { if !bytes.Equal(rest, unhex(test.rest)) { t.Errorf("test %d: rest mismatch: got %x, want %s", i, rest, test.rest) } - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("test %d: error mismatch: got %q, want %q", i, err, test.err) } } @@ -251,7 +251,7 @@ func TestReadSize(t *testing.T) { for _, test := range tests { size, err := readSize(unhex(test.input), test.slen) - if err != test.err { + if !errors.Is(err, test.err) { t.Errorf("readSize(%s, %d): error mismatch: got %q, want %q", test.input, test.slen, err, test.err) continue } diff --git a/rpc/server.go b/rpc/server.go index 42b59f8f6f..5460afc2e0 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -174,7 +174,7 @@ func messageForReadError(err error) string { } else { return "read error" } - } else if err != io.EOF { + } else if !errors.Is(err, io.EOF) { return "parse error" } return "" diff --git a/signer/core/api.go b/signer/core/api.go index 23ddcd0a20..ea266e9ed7 100644 --- a/signer/core/api.go +++ b/signer/core/api.go @@ -332,7 +332,7 @@ func (api *SignerAPI) startUSBListener() { for _, wallet := range am.Wallets() { if err := wallet.Open(""); err != nil { log.Warn("Failed to open wallet", "url", wallet.URL(), "err", err) - if err == usbwallet.ErrTrezorPINNeeded { + if errors.Is(err, usbwallet.ErrTrezorPINNeeded) { go api.openTrezor(wallet.URL()) } } @@ -348,7 +348,7 @@ func (api *SignerAPI) derivationLoop(events chan accounts.WalletEvent) { case accounts.WalletArrived: if err := event.Wallet.Open(""); err != nil { log.Warn("New wallet appeared, failed to open", "url", event.Wallet.URL(), "err", err) - if err == usbwallet.ErrTrezorPINNeeded { + if errors.Is(err, usbwallet.ErrTrezorPINNeeded) { go api.openTrezor(event.Wallet.URL()) } } diff --git a/signer/core/api_test.go b/signer/core/api_test.go index 69229dadaf..17a7eb1876 100644 --- a/signer/core/api_test.go +++ b/signer/core/api_test.go @@ -19,6 +19,7 @@ package core_test import ( "bytes" "context" + "errors" "fmt" "math/big" "os" @@ -155,7 +156,7 @@ func failCreateAccountWithPassword(ui *headlessUi, api *core.SignerAPI, password func failCreateAccount(ui *headlessUi, api *core.SignerAPI, t *testing.T) { ui.approveCh <- "N" addr, err := api.New(context.Background()) - if err != core.ErrRequestDenied { + if !errors.Is(err, core.ErrRequestDenied) { t.Fatal(err) } if addr != (common.Address{}) { @@ -212,7 +213,7 @@ func TestNewAcc(t *testing.T) { if len(list) != 0 { t.Fatalf("List should be empty") } - if err != core.ErrRequestDenied { + if !errors.Is(err, core.ErrRequestDenied) { t.Fatal("Expected deny") } } @@ -264,7 +265,7 @@ func TestSignTx(t *testing.T) { if res != nil { t.Errorf("Expected nil-response, got %v", res) } - if err != keystore.ErrDecrypt { + if !errors.Is(err, keystore.ErrDecrypt) { t.Errorf("Expected ErrLocked! %v", err) } control.approveCh <- "No way" @@ -272,7 +273,7 @@ func TestSignTx(t *testing.T) { if res != nil { t.Errorf("Expected nil-response, got %v", res) } - if err != core.ErrRequestDenied { + if !errors.Is(err, core.ErrRequestDenied) { t.Errorf("Expected ErrRequestDenied! %v", err) } // Sign with correct password diff --git a/signer/core/signed_data_test.go b/signer/core/signed_data_test.go index d0637010ba..10d5ff3d06 100644 --- a/signer/core/signed_data_test.go +++ b/signer/core/signed_data_test.go @@ -20,6 +20,7 @@ import ( "bytes" "context" "encoding/json" + "errors" "fmt" "math/big" "os" @@ -201,7 +202,7 @@ func TestSignData(t *testing.T) { if signature != nil { t.Errorf("Expected nil-data, got %x", signature) } - if err != keystore.ErrDecrypt { + if !errors.Is(err, keystore.ErrDecrypt) { t.Errorf("Expected ErrLocked! '%v'", err) } control.approveCh <- "No way" @@ -209,7 +210,7 @@ func TestSignData(t *testing.T) { if signature != nil { t.Errorf("Expected nil-data, got %x", signature) } - if err != core.ErrRequestDenied { + if !errors.Is(err, core.ErrRequestDenied) { t.Errorf("Expected ErrRequestDenied! '%v'", err) } // text/plain