Skip to content

Commit 4975897

Browse files
committed
fix lint errors
1 parent d02917c commit 4975897

File tree

3 files changed

+43
-29
lines changed

3 files changed

+43
-29
lines changed

spv/verify.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import (
88
"github.com/bitcoin-sv/go-sdk/transaction/chaintracker"
99
)
1010

11-
func Verify(t *transaction.Transaction, chainTracker chaintracker.ChainTracker, feeModel transaction.FeeModel) (bool, error) {
11+
func Verify(t *transaction.Transaction,
12+
chainTracker chaintracker.ChainTracker,
13+
feeModel transaction.FeeModel) (bool, error) {
1214
verifiedTxids := make(map[string]struct{})
1315
txQueue := []*transaction.Transaction{t}
1416
if chainTracker == nil {

spv/verify_test.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"testing"
66

77
"github.com/bitcoin-sv/go-sdk/transaction"
8-
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
99
)
1010

1111
const BRC62Hex = "0100beef01fe636d0c0007021400fe507c0c7aa754cef1f7889d5fd395cf1f785dd7de98eed895dbedfe4e5bc70d1502ac4e164f5bc16746bb0868404292ac8318bbac3800e4aad13a014da427adce3e010b00bc4ff395efd11719b277694cface5aa50d085a0bb81f613f70313acd28cf4557010400574b2d9142b8d28b61d88e3b2c3f44d858411356b49a28a4643b6d1a6a092a5201030051a05fc84d531b5d250c23f4f886f6812f9fe3f402d61607f977b4ecd2701c19010000fd781529d58fc2523cf396a7f25440b409857e7e221766c57214b1d38c7b481f01010062f542f45ea3660f86c013ced80534cb5fd4c19d66c56e7e8c5d4bf2d40acc5e010100b121e91836fd7cd5102b654e9f72f3cf6fdbfd0b161c53a9c54b12c841126331020100000001cd4e4cac3c7b56920d1e7655e7e260d31f29d9a388d04910f1bbd72304a79029010000006b483045022100e75279a205a547c445719420aa3138bf14743e3f42618e5f86a19bde14bb95f7022064777d34776b05d816daf1699493fcdf2ef5a5ab1ad710d9c97bfb5b8f7cef3641210263e2dee22b1ddc5e11f6fab8bcd2378bdd19580d640501ea956ec0e786f93e76ffffffff013e660000000000001976a9146bfd5c7fbe21529d45803dbcf0c87dd3c71efbc288ac0000000001000100000001ac4e164f5bc16746bb0868404292ac8318bbac3800e4aad13a014da427adce3e000000006a47304402203a61a2e931612b4bda08d541cfb980885173b8dcf64a3471238ae7abcd368d6402204cbf24f04b9aa2256d8901f0ed97866603d2be8324c2bfb7a37bf8fc90edd5b441210263e2dee22b1ddc5e11f6fab8bcd2378bdd19580d640501ea956ec0e786f93e76ffffffff013c660000000000001976a9146bfd5c7fbe21529d45803dbcf0c87dd3c71efbc288ac0000000000"
@@ -14,18 +14,18 @@ const BEEF = "AQC+7wH+kQYNAAcCVAIKXThHm90iVbs15AIfFQEYl5xesbHCXMkYy9SqoR1vNVUAAZ
1414

1515
func TestSPVVerify(t *testing.T) {
1616
tx, err := transaction.NewTransactionFromBEEFHex(BRC62Hex)
17-
assert.NoError(t, err)
17+
require.NoError(t, err)
1818
verified, err := Verify(tx, &GullibleHeadersClient{}, nil)
19-
assert.NoError(t, err)
20-
assert.True(t, verified)
19+
require.NoError(t, err)
20+
require.True(t, verified)
2121
}
2222

2323
func TestSPVVerifyScripts(t *testing.T) {
2424
buf, err := base64.StdEncoding.DecodeString(BEEF)
25-
assert.NoError(t, err)
25+
require.NoError(t, err)
2626
tx, err := transaction.NewTransactionFromBEEF(buf)
27-
assert.NoError(t, err)
27+
require.NoError(t, err)
2828
verified, err := VerifyScripts(tx)
29-
assert.NoError(t, err)
30-
assert.True(t, verified)
29+
require.NoError(t, err)
30+
require.True(t, verified)
3131
}

transaction/chaintracker/whatsonchain.go

+32-20
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package chaintracker
22

33
import (
4-
"bytes"
4+
"context"
55
"encoding/json"
66
"fmt"
77
"net/http"
@@ -39,29 +39,41 @@ func NewWhatsOnChain(network Network, apiKey string) *WhatsOnChain {
3939
}
4040
}
4141

42-
func (w *WhatsOnChain) GetBlockHeader(height uint32) (*BlockHeader, error) {
43-
if req, err := http.NewRequest("GET", fmt.Sprintf("https://api.whatsonchain.com/v1/bsv/%s/block/%d/header", w.Network, height), bytes.NewBuffer([]byte{})); err != nil {
42+
// Assuming BlockHeader is defined elsewhere
43+
func (w *WhatsOnChain) GetBlockHeader(height uint32) (header *BlockHeader, err error) {
44+
url := fmt.Sprintf("https://api.whatsonchain.com/v1/bsv/%s/block/%d/header", w.Network, height)
45+
req, err := http.NewRequestWithContext(context.Background(), "GET", url, nil)
46+
if err != nil {
4447
return nil, err
45-
} else {
46-
req.Header.Set("Authorization", w.ApiKey)
47-
if resp, err := http.DefaultClient.Do(req); err != nil {
48-
return nil, err
49-
} else {
50-
defer resp.Body.Close()
51-
if resp.StatusCode == 404 {
52-
return nil, nil
53-
}
54-
if resp.StatusCode != 200 {
55-
return nil, fmt.Errorf("failed to verify merkleroot for height %d because of an error: %v", height, resp.Status)
56-
}
57-
header := &BlockHeader{}
58-
if err := json.NewDecoder(resp.Body).Decode(header); err != nil {
59-
return nil, err
60-
}
48+
}
49+
50+
req.Header.Set("Authorization", w.ApiKey)
6151

62-
return header, nil
52+
resp, err := http.DefaultClient.Do(req)
53+
if err != nil {
54+
return nil, err
55+
}
56+
// Ensure resp.Body.Close() is called and its error is handled
57+
defer func() {
58+
closeErr := resp.Body.Close()
59+
if closeErr != nil && err == nil {
60+
err = closeErr
6361
}
62+
}()
63+
64+
if resp.StatusCode == http.StatusNotFound {
65+
return nil, nil
6466
}
67+
if resp.StatusCode != http.StatusOK {
68+
return nil, fmt.Errorf("failed to verify merkleroot for height %d: %v", height, resp.Status)
69+
}
70+
71+
header = &BlockHeader{}
72+
if err := json.NewDecoder(resp.Body).Decode(header); err != nil {
73+
return nil, err
74+
}
75+
76+
return header, nil
6577
}
6678

6779
func (w *WhatsOnChain) IsValidRootForHeight(root *chainhash.Hash, height uint32) (bool, error) {

0 commit comments

Comments
 (0)