diff --git a/address.go b/address.go index 8672497..75503ed 100644 --- a/address.go +++ b/address.go @@ -41,7 +41,7 @@ var ( // ErrUnknownAddressType describes an error where an address can not // decoded as a specific address type due to the string encoding - // begining with an identifier byte unknown to any standard or + // beginning with an identifier byte unknown to any standard or // registered (via chaincfg.Register) network. ErrUnknownAddressType = errors.New("unknown address type") @@ -265,7 +265,7 @@ func NewAddressPubKeyHash(pkHash []byte, net *chaincfg.Params) (*AddressPubKeyHa // newAddressPubKeyHash is the internal API to create a pubkey hash address // with a known leading identifier byte for a network, rather than looking // it up through its parameters. This is useful when creating a new address -// structure from a string encoding where the identifer byte is already +// structure from a string encoding where the identifier byte is already // known. func newAddressPubKeyHash(pkHash []byte, netID byte) (*AddressPubKeyHash, error) { // Check for a valid pubkey hash length. @@ -304,7 +304,7 @@ func (a *AddressPubKeyHash) String() string { } // Hash160 returns the underlying array of the pubkey hash. This can be useful -// when an array is more appropiate than a slice (for example, when used as map +// when an array is more appropriate than a slice (for example, when used as map // keys). func (a *AddressPubKeyHash) Hash160() *[ripemd160.Size]byte { return &a.hash @@ -332,7 +332,7 @@ func NewAddressScriptHashFromHash(scriptHash []byte, net *chaincfg.Params) (*Add // newAddressScriptHashFromHash is the internal API to create a script hash // address with a known leading identifier byte for a network, rather than // looking it up through its parameters. This is useful when creating a new -// address structure from a string encoding where the identifer byte is already +// address structure from a string encoding where the identifier byte is already // known. func newAddressScriptHashFromHash(scriptHash []byte, netID byte) (*AddressScriptHash, error) { // Check for a valid script hash length. @@ -371,7 +371,7 @@ func (a *AddressScriptHash) String() string { } // Hash160 returns the underlying array of the script hash. This can be useful -// when an array is more appropiate than a slice (for example, when used as map +// when an array is more appropriate than a slice (for example, when used as map // keys). func (a *AddressScriptHash) Hash160() *[ripemd160.Size]byte { return &a.hash diff --git a/address_test.go b/address_test.go index b6a990d..bbca3de 100644 --- a/address_test.go +++ b/address_test.go @@ -766,7 +766,7 @@ func TestAddresses(t *testing.T) { // Encode again and compare against the original. encoded := decoded.EncodeAddress() if test.encoded != encoded { - t.Errorf("%v: decoding and encoding produced different addressess: %v != %v", + t.Errorf("%v: decoding and encoding produced different addresses: %v != %v", test.name, test.encoded, encoded) return } diff --git a/base58/base58check.go b/base58/base58check.go index 7cdafee..402c323 100644 --- a/base58/base58check.go +++ b/base58/base58check.go @@ -28,7 +28,7 @@ func checksum(input []byte) (cksum [4]byte) { func CheckEncode(input []byte, version byte) string { b := make([]byte, 0, 1+len(input)+4) b = append(b, version) - b = append(b, input[:]...) + b = append(b, input...) cksum := checksum(b) b = append(b, cksum[:]...) return Encode(b) diff --git a/base58/base58check_test.go b/base58/base58check_test.go index 7c6350b..20a4177 100644 --- a/base58/base58check_test.go +++ b/base58/base58check_test.go @@ -37,11 +37,14 @@ func TestBase58Check(t *testing.T) { // test decoding res, version, err := base58.CheckDecode(test.out) - if err != nil { + switch { + case err != nil: t.Errorf("CheckDecode test #%d failed with err: %v", x, err) - } else if version != test.version { + + case version != test.version: t.Errorf("CheckDecode test #%d failed: got version: %d want: %d", x, version, test.version) - } else if string(res) != test.in { + + case string(res) != test.in: t.Errorf("CheckDecode test #%d failed: got: %s want: %s", x, res, test.in) } } @@ -56,7 +59,7 @@ func TestBase58Check(t *testing.T) { // bytes are missing). testString := "" for len := 0; len < 4; len++ { - testString = testString + "x" + testString += "x" _, _, err = base58.CheckDecode(testString) if err != base58.ErrInvalidFormat { t.Error("Checkdecode test failed, expected ErrInvalidFormat") diff --git a/bech32/bech32.go b/bech32/bech32.go index 1bc75a3..c1e0010 100644 --- a/bech32/bech32.go +++ b/bech32/bech32.go @@ -362,7 +362,7 @@ func ConvertBits(data []byte, fromBits, toBits uint8, pad bool) ([]byte, error) for _, b := range data { // Discard unused bits. - b = b << (8 - fromBits) + b <<= 8 - fromBits // How many bits remaining to extract from the input data. remFromBits := fromBits @@ -383,7 +383,7 @@ func ConvertBits(data []byte, fromBits, toBits uint8, pad bool) ([]byte, error) // Discard the bits we just extracted and get ready for // next iteration. - b = b << toExtract + b <<= toExtract remFromBits -= toExtract filledBits += toExtract @@ -399,7 +399,7 @@ func ConvertBits(data []byte, fromBits, toBits uint8, pad bool) ([]byte, error) // We pad any unfinished group if specified. if pad && filledBits > 0 { - nextByte = nextByte << (toBits - filledBits) + nextByte <<= toBits - filledBits regrouped = append(regrouped, nextByte) filledBits = 0 nextByte = 0 diff --git a/bloom/merkleblock.go b/bloom/merkleblock.go index d6796ba..b1da716 100644 --- a/bloom/merkleblock.go +++ b/bloom/merkleblock.go @@ -116,7 +116,7 @@ func NewMerkleBlock(block *btcutil.Block, filter *Filter) (*wire.MsgMerkleBlock, Flags: make([]byte, (len(mBlock.bits)+7)/8), } for _, hash := range mBlock.finalHashes { - msgMerkleBlock.AddTxHash(hash) + _ = msgMerkleBlock.AddTxHash(hash) } for i := uint32(0); i < uint32(len(mBlock.bits)); i++ { msgMerkleBlock.Flags[i/8] |= mBlock.bits[i] << (i % 8) diff --git a/certgen.go b/certgen.go index bbc45a4..52e2d9c 100644 --- a/certgen.go +++ b/certgen.go @@ -61,7 +61,7 @@ func NewTLSCertPair(organization string, validUntil time.Time, extraHosts []stri addIP := func(ipAddr net.IP) { for _, ip := range ipAddresses { - if bytes.Equal(ip, ipAddr) { + if ip.Equal(ipAddr) { return } } diff --git a/coinset/coins_test.go b/coinset/coins_test.go index d8ca496..dc02d9f 100644 --- a/coinset/coins_test.go +++ b/coinset/coins_test.go @@ -33,7 +33,7 @@ func (c *TestCoin) ValueAge() int64 { return int64(c.TxValue) * c.TxNumCon func NewCoin(index int64, value btcutil.Amount, numConfs int64) coinset.Coin { h := sha256.New() - h.Write([]byte(fmt.Sprintf("%d", index))) + _, _ = h.Write([]byte(fmt.Sprintf("%d", index))) hash, _ := chainhash.NewHash(h.Sum(nil)) c := &TestCoin{ TxHash: hash, diff --git a/gcs/builder/builder.go b/gcs/builder/builder.go index adef5c9..8b45d78 100644 --- a/gcs/builder/builder.go +++ b/gcs/builder/builder.go @@ -54,7 +54,7 @@ func RandomKey() ([gcs.KeySize]byte, error) { } // Copy the byte slice to a [gcs.KeySize]byte array and return it. - copy(key[:], randKey[:]) + copy(key[:], randKey) return key, nil } @@ -62,7 +62,7 @@ func RandomKey() ([gcs.KeySize]byte, error) { // truncating the bytes of the hash to the appopriate key size. func DeriveKey(keyHash *chainhash.Hash) [gcs.KeySize]byte { var key [gcs.KeySize]byte - copy(key[:], keyHash.CloneBytes()[:]) + copy(key[:], keyHash.CloneBytes()) return key } diff --git a/gcs/builder/builder_test.go b/gcs/builder/builder_test.go index 8e9566f..de04421 100644 --- a/gcs/builder/builder_test.go +++ b/gcs/builder/builder_test.go @@ -19,9 +19,6 @@ import ( ) var ( - // No need to allocate an err variable in every test - err error - // List of values for building a filter contents = [][]byte{ []byte("Alex"), diff --git a/gcs/gcs.go b/gcs/gcs.go index cfe215c..fbffb06 100644 --- a/gcs/gcs.go +++ b/gcs/gcs.go @@ -91,7 +91,7 @@ type Filter struct { // BuildGCSFilter builds a new GCS filter with the collision probability of // `1/(2**P)`, key `key`, and including every `[]byte` in `data` as a member of // the set. -func BuildGCSFilter(P uint8, M uint64, key [KeySize]byte, data [][]byte) (*Filter, error) { +func BuildGCSFilter(P uint8, M uint64, key [KeySize]byte, data [][]byte) (*Filter, error) { // nolint:gocritic // Some initial parameter checks: make sure we have data from which to // build the filter, and make sure our parameters will fit the hash // function we're using. @@ -174,7 +174,7 @@ func BuildGCSFilter(P uint8, M uint64, key [KeySize]byte, data [][]byte) (*Filte // FromBytes deserializes a GCS filter from a known N, P, and serialized filter // as returned by Bytes(). -func FromBytes(N uint32, P uint8, M uint64, d []byte) (*Filter, error) { +func FromBytes(N uint32, P uint8, M uint64, d []byte) (*Filter, error) { // nolint:gocritic // Basic sanity check. if P > 32 { return nil, ErrPTooBig @@ -200,7 +200,7 @@ func FromBytes(N uint32, P uint8, M uint64, d []byte) (*Filter, error) { // FromNBytes deserializes a GCS filter from a known P, and serialized N and // filter as returned by NBytes(). -func FromNBytes(P uint8, M uint64, d []byte) (*Filter, error) { +func FromNBytes(P uint8, M uint64, d []byte) (*Filter, error) { // nolint:gocritic buffer := bytes.NewBuffer(d) N, err := wire.ReadVarInt(buffer, varIntProtoVer) if err != nil { diff --git a/gcs/gcs_test.go b/gcs/gcs_test.go index 369b773..bb4d550 100644 --- a/gcs/gcs_test.go +++ b/gcs/gcs_test.go @@ -27,7 +27,7 @@ var ( // Filters are conserved between tests but we must define with an // interface which functions we're testing because the gcsFilter type // isn't exported - filter, filter2, filter3, filter4, filter5 *gcs.Filter + filter, filter2, filter3 *gcs.Filter // We need to use the same key for building and querying the filters key [gcs.KeySize]byte @@ -328,6 +328,8 @@ func TestGCSFilterMatchAnySuite(t *testing.T) { } for _, test := range funcs { + test := test + t.Run(test.name, func(t *testing.T) { contentsCopy := make([][]byte, len(contents2)) copy(contentsCopy, contents2) diff --git a/gcs/gcsbench_test.go b/gcs/gcsbench_test.go index 58795eb..ffb2599 100644 --- a/gcs/gcsbench_test.go +++ b/gcs/gcsbench_test.go @@ -28,7 +28,6 @@ func genRandFilterElements(numElements uint) ([][]byte, error) { var ( generatedFilter *gcs.Filter - filterErr error ) // BenchmarkGCSFilterBuild benchmarks building a filter. @@ -101,7 +100,7 @@ func BenchmarkGCSFilterMatch(b *testing.B) { var localMatch bool for i := 0; i < b.N; i++ { - localMatch, err = filter.Match(key, []byte("Nate")) + _, err = filter.Match(key, []byte("Nate")) if err != nil { b.Fatalf("unable to match filter: %v", err) } @@ -115,8 +114,6 @@ func BenchmarkGCSFilterMatch(b *testing.B) { } var ( - randElems1, _ = genRandFilterElements(1) - randElems10, _ = genRandFilterElements(10) randElems100, _ = genRandFilterElements(100) randElems1000, _ = genRandFilterElements(1000) randElems10000, _ = genRandFilterElements(10000) @@ -164,6 +161,8 @@ var matchAnyBenchmarks = []struct { // BenchmarkGCSFilterMatchAny benchmarks the sort-and-zip MatchAny impl. func BenchmarkGCSFilterZipMatchAny(b *testing.B) { for _, test := range matchAnyBenchmarks { + test := test + b.Run(test.name, func(b *testing.B) { b.ReportAllocs() @@ -188,6 +187,8 @@ func BenchmarkGCSFilterZipMatchAny(b *testing.B) { // BenchmarkGCSFilterMatchAny benchmarks the hash-join MatchAny impl. func BenchmarkGCSFilterHashMatchAny(b *testing.B) { for _, test := range matchAnyBenchmarks { + test := test + b.Run(test.name, func(b *testing.B) { b.ReportAllocs() @@ -212,6 +213,8 @@ func BenchmarkGCSFilterHashMatchAny(b *testing.B) { // BenchmarkGCSFilterMatchAny benchmarks the hybrid MatchAny impl. func BenchmarkGCSFilterMatchAny(b *testing.B) { for _, test := range matchAnyBenchmarks { + test := test + b.Run(test.name, func(b *testing.B) { b.ReportAllocs() diff --git a/hash160.go b/hash160.go index 599a0fe..fa26e09 100644 --- a/hash160.go +++ b/hash160.go @@ -13,7 +13,7 @@ import ( // Calculate the hash of hasher over buf. func calcHash(buf []byte, hasher hash.Hash) []byte { - hasher.Write(buf) + _, _ = hasher.Write(buf) return hasher.Sum(nil) } diff --git a/hdkeychain/bench_test.go b/hdkeychain/bench_test.go index 583eef0..7c86ca9 100644 --- a/hdkeychain/bench_test.go +++ b/hdkeychain/bench_test.go @@ -26,7 +26,7 @@ func BenchmarkDeriveHardened(b *testing.B) { b.StartTimer() for i := 0; i < b.N; i++ { - masterKey.Derive(hdkeychain.HardenedKeyStart) + _, _ = masterKey.Derive(hdkeychain.HardenedKeyStart) } } @@ -41,7 +41,7 @@ func BenchmarkDeriveNormal(b *testing.B) { b.StartTimer() for i := 0; i < b.N; i++ { - masterKey.Derive(0) + _, _ = masterKey.Derive(0) } } @@ -56,7 +56,7 @@ func BenchmarkPrivToPub(b *testing.B) { b.StartTimer() for i := 0; i < b.N; i++ { - masterKey.Neuter() + _, _ = masterKey.Neuter() } } @@ -64,7 +64,7 @@ func BenchmarkPrivToPub(b *testing.B) { // extended key. func BenchmarkDeserialize(b *testing.B) { for i := 0; i < b.N; i++ { - hdkeychain.NewKeyFromString(bip0032MasterPriv1) + _, _ = hdkeychain.NewKeyFromString(bip0032MasterPriv1) } } diff --git a/hdkeychain/extendedkey.go b/hdkeychain/extendedkey.go index a0c5e7b..929fe99 100644 --- a/hdkeychain/extendedkey.go +++ b/hdkeychain/extendedkey.go @@ -277,7 +277,7 @@ func (k *ExtendedKey) Derive(i uint32) (*ExtendedKey, error) { // data: // I = HMAC-SHA512(Key = chainCode, Data = data) hmac512 := hmac.New(sha512.New, k.chainCode) - hmac512.Write(data) + _, _ = hmac512.Write(data) ilr := hmac512.Sum(nil) // Split "I" into two 32-byte sequences Il and Ir where: @@ -380,7 +380,7 @@ func (k *ExtendedKey) DeriveNonStandard(i uint32) (*ExtendedKey, error) { binary.BigEndian.PutUint32(data[keyLen:], i) hmac512 := hmac.New(sha512.New, k.chainCode) - hmac512.Write(data) + _, _ = hmac512.Write(data) ilr := hmac512.Sum(nil) il := ilr[:len(ilr)/2] @@ -610,7 +610,7 @@ func NewMaster(seed []byte, net *chaincfg.Params) (*ExtendedKey, error) { // First take the HMAC-SHA512 of the master key and the seed data: // I = HMAC-SHA512(Key = "Bitcoin seed", Data = S) hmac512 := hmac.New(sha512.New, masterKey) - hmac512.Write(seed) + _, _ = hmac512.Write(seed) lr := hmac512.Sum(nil) // Split "I" into two 32-byte sequences Il and Ir where: diff --git a/hdkeychain/extendedkey_test.go b/hdkeychain/extendedkey_test.go index 37a42fa..dd6deb5 100644 --- a/hdkeychain/extendedkey_test.go +++ b/hdkeychain/extendedkey_test.go @@ -983,7 +983,7 @@ func TestZero(t *testing.T) { wantAddr := "1HT7xU2Ngenf7D4yocz2SAcnNLW7rK8d4E" addr, err := key.Address(&chaincfg.MainNetParams) if err != nil { - t.Errorf("Addres s #%d (%s): unexpected error: %v", i, + t.Errorf("Address #%d (%s): unexpected error: %v", i, testName, err) return false } diff --git a/wif_test.go b/wif_test.go index dec6dd6..589f2ac 100644 --- a/wif_test.go +++ b/wif_test.go @@ -64,6 +64,8 @@ func TestEncodeDecodeWIF(t *testing.T) { } for _, validCase := range validEncodeCases { + validCase := validCase + t.Run(validCase.name, func(t *testing.T) { priv, _ := btcec.PrivKeyFromBytes(btcec.S256(), validCase.privateKey) wif, err := NewWIF(priv, validCase.net, validCase.compress) @@ -122,6 +124,8 @@ func TestEncodeDecodeWIF(t *testing.T) { } for _, invalidCase := range invalidDecodeCases { + invalidCase := invalidCase + t.Run(invalidCase.name, func(t *testing.T) { decodedWif, err := DecodeWIF(invalidCase.wif) if decodedWif != nil {